add oxygen timer
BIN
audio/sounds/bubble.wav
Normal file
23
audio/sounds/bubble.wav.import
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamSample"
|
||||||
|
path="res://.import/bubble.wav-a98a00dfb7436d513676d9e46828bcbe.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://audio/sounds/bubble.wav"
|
||||||
|
dest_files=[ "res://.import/bubble.wav-a98a00dfb7436d513676d9e46828bcbe.sample" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=0
|
|
@ -26,6 +26,7 @@ const a_scrump_die = preload("res://audio/sounds/scrump_die.wav")
|
||||||
const a_die_robot = preload("res://audio/sounds/die_robot.wav")
|
const a_die_robot = preload("res://audio/sounds/die_robot.wav")
|
||||||
const a_gover = preload("res://audio/sounds/gover.wav")
|
const a_gover = preload("res://audio/sounds/gover.wav")
|
||||||
const a_boss_hurt = preload("res://audio/sounds/boss_hurt.wav")
|
const a_boss_hurt = preload("res://audio/sounds/boss_hurt.wav")
|
||||||
|
const a_bubble = preload("res://audio/sounds/bubble.wav")
|
||||||
|
|
||||||
|
|
||||||
#Plays a sound
|
#Plays a sound
|
||||||
|
|
BIN
graphics/hud/oxygen.png
Normal file
After Width: | Height: | Size: 180 B |
35
graphics/hud/oxygen.png.import
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/oxygen.png-bc27b1760336003353c838235a4cb02c.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://graphics/hud/oxygen.png"
|
||||||
|
dest_files=[ "res://.import/oxygen.png-bc27b1760336003353c838235a4cb02c.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=false
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
BIN
graphics/hud/oxygen_blips.png
Normal file
After Width: | Height: | Size: 164 B |
35
graphics/hud/oxygen_blips.png.import
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/oxygen_blips.png-3f20e6a3a7f5eebc14154a2e2292ed5d.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://graphics/hud/oxygen_blips.png"
|
||||||
|
dest_files=[ "res://.import/oxygen_blips.png-3f20e6a3a7f5eebc14154a2e2292ed5d.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=false
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
BIN
graphics/hud/oxygen_meter.png
Normal file
After Width: | Height: | Size: 127 B |
35
graphics/hud/oxygen_meter.png.import
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/oxygen_meter.png-65332a0e74d166901bfa7ecd6045514f.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://graphics/hud/oxygen_meter.png"
|
||||||
|
dest_files=[ "res://.import/oxygen_meter.png-65332a0e74d166901bfa7ecd6045514f.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=false
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
Before Width: | Height: | Size: 305 B After Width: | Height: | Size: 310 B |
BIN
graphics/player/sg_jump_mario.png
Normal file
After Width: | Height: | Size: 310 B |
35
graphics/player/sg_jump_mario.png.import
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/sg_jump_mario.png-0ac179e6059bca84ad0a66bbae81613a.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://graphics/player/sg_jump_mario.png"
|
||||||
|
dest_files=[ "res://.import/sg_jump_mario.png-0ac179e6059bca84ad0a66bbae81613a.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=false
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
BIN
graphics/player/sg_jump_megaman.png
Normal file
After Width: | Height: | Size: 304 B |
35
graphics/player/sg_jump_megaman.png.import
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/sg_jump_megaman.png-088fd02f02cca9a2725c777667c983a2.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://graphics/player/sg_jump_megaman.png"
|
||||||
|
dest_files=[ "res://.import/sg_jump_megaman.png-088fd02f02cca9a2725c777667c983a2.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=false
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
Before Width: | Height: | Size: 435 B After Width: | Height: | Size: 457 B |
|
@ -1,8 +1,14 @@
|
||||||
[gd_scene load_steps=8 format=2]
|
[gd_scene load_steps=10 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://graphics/enemy/turtle.png" type="Texture" id=1]
|
[ext_resource path="res://graphics/enemy/turtle.png" type="Texture" id=1]
|
||||||
[ext_resource path="res://objects/enemy/turtle.gd" type="Script" id=2]
|
[ext_resource path="res://objects/enemy/turtle.gd" type="Script" id=2]
|
||||||
[ext_resource path="res://objects/enemy/death_particles.tscn" type="PackedScene" id=3]
|
[ext_resource path="res://objects/enemy/death_particles.tscn" type="PackedScene" id=3]
|
||||||
|
[ext_resource path="res://shaders/1px_border.gdshader" type="Shader" id=4]
|
||||||
|
|
||||||
|
[sub_resource type="ShaderMaterial" id=6]
|
||||||
|
shader = ExtResource( 4 )
|
||||||
|
shader_param/border_color = Color( 0, 0, 0, 1 )
|
||||||
|
shader_param/border_corners = false
|
||||||
|
|
||||||
[sub_resource type="Animation" id=1]
|
[sub_resource type="Animation" id=1]
|
||||||
length = 0.001
|
length = 0.001
|
||||||
|
@ -53,6 +59,7 @@ position = Vector2( 8.5, 4 )
|
||||||
|
|
||||||
[node name="Sprite" type="Sprite" parent="ToFlip"]
|
[node name="Sprite" type="Sprite" parent="ToFlip"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
material = SubResource( 6 )
|
||||||
position = Vector2( -9.5, -9 )
|
position = Vector2( -9.5, -9 )
|
||||||
texture = ExtResource( 1 )
|
texture = ExtResource( 1 )
|
||||||
centered = false
|
centered = false
|
||||||
|
|
|
@ -15,8 +15,10 @@ func _physics_process(delta):
|
||||||
sprite.position.x = sin(lifetime * 4.0) * 4.0
|
sprite.position.x = sin(lifetime * 4.0) * 4.0
|
||||||
position.y -= speed * delta
|
position.y -= speed * delta
|
||||||
|
|
||||||
func _on_area_entered(area):
|
func _on_Bubble_body_entered(body):
|
||||||
if area.is_in_group("player_hitbox") or area.is_in_group("arrow"):
|
|
||||||
sprite.frame_coords.y = 1
|
sprite.frame_coords.y = 1
|
||||||
speed = 0.0
|
speed = 0.0
|
||||||
get_tree().create_timer(0.5, false).connect("timeout", self, "queue_free")
|
get_tree().create_timer(0.5, false).connect("timeout", self, "queue_free")
|
||||||
|
if body.is_in_group("player"):
|
||||||
|
body.oxygen_timer.start()
|
||||||
|
Audio.play_sound(Audio.a_bubble,Audio.ac_die)
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
[ext_resource path="res://objects/environment/bubble/bubble.gd" type="Script" id=2]
|
[ext_resource path="res://objects/environment/bubble/bubble.gd" type="Script" id=2]
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id=1]
|
[sub_resource type="RectangleShape2D" id=1]
|
||||||
extents = Vector2( 2, 2 )
|
extents = Vector2( 5, 5 )
|
||||||
|
|
||||||
[node name="Bubble" type="Area2D"]
|
[node name="Bubble" type="Area2D"]
|
||||||
script = ExtResource( 2 )
|
script = ExtResource( 2 )
|
||||||
|
@ -18,3 +18,4 @@ vframes = 2
|
||||||
shape = SubResource( 1 )
|
shape = SubResource( 1 )
|
||||||
|
|
||||||
[connection signal="area_entered" from="." to="." method="_on_area_entered"]
|
[connection signal="area_entered" from="." to="." method="_on_area_entered"]
|
||||||
|
[connection signal="body_entered" from="." to="." method="_on_Bubble_body_entered"]
|
||||||
|
|
|
@ -12,6 +12,8 @@ onready var arrow_counter = $ArrowCounter
|
||||||
onready var lives_counter = $LivesCounter
|
onready var lives_counter = $LivesCounter
|
||||||
onready var high_counter = $HighCounter
|
onready var high_counter = $HighCounter
|
||||||
onready var time_counter = $TimeCounter
|
onready var time_counter = $TimeCounter
|
||||||
|
onready var oxygen = $Oxygen
|
||||||
|
onready var oxygen_meter = $Oxygen/OxygenMeter
|
||||||
|
|
||||||
export var song_name = "♫Music"
|
export var song_name = "♫Music"
|
||||||
export (Color) var bonus_color
|
export (Color) var bonus_color
|
||||||
|
@ -31,6 +33,9 @@ func _ready():
|
||||||
tween.tween_property(music, "rect_position:x", 254.0 - music.rect_size.x, 1.0)
|
tween.tween_property(music, "rect_position:x", 254.0 - music.rect_size.x, 1.0)
|
||||||
tween.tween_interval(3.0)
|
tween.tween_interval(3.0)
|
||||||
tween.tween_property(music, "rect_position:x", 256.0, 1.0)
|
tween.tween_property(music, "rect_position:x", 256.0, 1.0)
|
||||||
|
#Show oxygen meter when underwater
|
||||||
|
var player = get_tree().get_nodes_in_group("player").pop_back()
|
||||||
|
if player.underwater == true: oxygen.visible = true
|
||||||
|
|
||||||
func shard_popup(shard_number):
|
func shard_popup(shard_number):
|
||||||
#Change text to song name
|
#Change text to song name
|
||||||
|
@ -79,3 +84,7 @@ func _physics_process(delta):
|
||||||
time_counter.modulate = bonus_color
|
time_counter.modulate = bonus_color
|
||||||
else:
|
else:
|
||||||
time_counter.modulate = Color.white
|
time_counter.modulate = Color.white
|
||||||
|
#Oxygen meter
|
||||||
|
var player = get_tree().get_nodes_in_group("player").pop_back()
|
||||||
|
oxygen_meter.scale.x = player.oxygen_timer.time_left
|
||||||
|
#if oxygen_meter.scale.x > 15: oxygen_meter.scale.x = 15
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
[gd_scene load_steps=14 format=2]
|
[gd_scene load_steps=16 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://graphics/hud/stars_hud.png" type="Texture" id=1]
|
[ext_resource path="res://graphics/hud/stars_hud.png" type="Texture" id=1]
|
||||||
[ext_resource path="res://graphics/hud/lives_head.png" type="Texture" id=2]
|
[ext_resource path="res://graphics/hud/lives_head.png" type="Texture" id=2]
|
||||||
|
@ -10,6 +10,8 @@
|
||||||
[ext_resource path="res://ui/2ndpuberty_outline.tres" type="Material" id=8]
|
[ext_resource path="res://ui/2ndpuberty_outline.tres" type="Material" id=8]
|
||||||
[ext_resource path="res://shaders/1px_border.gdshader" type="Shader" id=9]
|
[ext_resource path="res://shaders/1px_border.gdshader" type="Shader" id=9]
|
||||||
[ext_resource path="res://ui/theme.tres" type="Theme" id=10]
|
[ext_resource path="res://ui/theme.tres" type="Theme" id=10]
|
||||||
|
[ext_resource path="res://graphics/hud/oxygen.png" type="Texture" id=11]
|
||||||
|
[ext_resource path="res://graphics/hud/oxygen_meter.png" type="Texture" id=12]
|
||||||
|
|
||||||
[sub_resource type="ShaderMaterial" id=1]
|
[sub_resource type="ShaderMaterial" id=1]
|
||||||
|
|
||||||
|
@ -173,3 +175,15 @@ margin_bottom = 192.0
|
||||||
theme = ExtResource( 10 )
|
theme = ExtResource( 10 )
|
||||||
text = "§time bonus"
|
text = "§time bonus"
|
||||||
align = 2
|
align = 2
|
||||||
|
|
||||||
|
[node name="Oxygen" type="Sprite" parent="."]
|
||||||
|
visible = false
|
||||||
|
position = Vector2( 16, 18 )
|
||||||
|
texture = ExtResource( 11 )
|
||||||
|
|
||||||
|
[node name="OxygenMeter" type="Sprite" parent="Oxygen"]
|
||||||
|
position = Vector2( -2, -1 )
|
||||||
|
rotation = 3.14159
|
||||||
|
scale = Vector2( 15, 1 )
|
||||||
|
texture = ExtResource( 12 )
|
||||||
|
flip_v = true
|
||||||
|
|
|
@ -28,7 +28,8 @@ export var jump_force: float = 150.0
|
||||||
export var jump_release_force: float = 0.25
|
export var jump_release_force: float = 0.25
|
||||||
## impulse added when double jumping
|
## impulse added when double jumping
|
||||||
export var double_jump_force: float = 122.0
|
export var double_jump_force: float = 122.0
|
||||||
|
## if on turn on oxygentimer to kill player
|
||||||
|
export var underwater = false
|
||||||
|
|
||||||
# velocity
|
# velocity
|
||||||
var velocity: Vector2 = Vector2.ZERO
|
var velocity: Vector2 = Vector2.ZERO
|
||||||
|
@ -50,7 +51,8 @@ onready var airborne_shape: CollisionShape2D = $"%AirborneShape"
|
||||||
onready var ladder_detector: RayCast2D = $"%LadderDetector"
|
onready var ladder_detector: RayCast2D = $"%LadderDetector"
|
||||||
onready var death_splatter_position: Position2D = $"%DeathSplatterPosition"
|
onready var death_splatter_position: Position2D = $"%DeathSplatterPosition"
|
||||||
onready var pushable_detector: RayCast2D = $"%PushableDetector"
|
onready var pushable_detector: RayCast2D = $"%PushableDetector"
|
||||||
|
onready var oxygen_timer = $OxygenTimer
|
||||||
|
onready var oxygen_origin = oxygen_timer.wait_time
|
||||||
|
|
||||||
# OVERRIDES #
|
# OVERRIDES #
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
|
@ -238,6 +240,8 @@ func _on_Dead_state_entered() -> void:
|
||||||
# fade into the ether
|
# fade into the ether
|
||||||
graphics.visible = false
|
graphics.visible = false
|
||||||
state_chart.send_event("respawn")
|
state_chart.send_event("respawn")
|
||||||
|
#refill oxygen
|
||||||
|
oxygen_timer.start()
|
||||||
|
|
||||||
func _on_Respawn_state_entered() -> void:
|
func _on_Respawn_state_entered() -> void:
|
||||||
global_position = Game.respawn_point
|
global_position = Game.respawn_point
|
||||||
|
@ -378,3 +382,7 @@ func _on_Hitbox_body_entered(body: Node) -> void:
|
||||||
func _on_Ducking_event_received(event):
|
func _on_Ducking_event_received(event):
|
||||||
if event == "jump":
|
if event == "jump":
|
||||||
position.y -= 1
|
position.y -= 1
|
||||||
|
|
||||||
|
|
||||||
|
func _on_OxygenTimer_timeout():
|
||||||
|
if underwater: die()
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[gd_scene load_steps=44 format=2]
|
[gd_scene load_steps=47 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://objects/player/player.gd" type="Script" id=1]
|
[ext_resource path="res://objects/player/player.gd" type="Script" id=1]
|
||||||
[ext_resource path="res://graphics/player/sg_duck.png" type="Texture" id=2]
|
[ext_resource path="res://graphics/player/palettes/default.png" type="Texture" id=2]
|
||||||
[ext_resource path="res://shaders/recolor_border.shader" type="Shader" id=3]
|
[ext_resource path="res://shaders/recolor_border.shader" type="Shader" id=3]
|
||||||
[ext_resource path="res://graphics/player/sg_idle.png" type="Texture" id=4]
|
[ext_resource path="res://graphics/player/sg_idle.png" type="Texture" id=4]
|
||||||
[ext_resource path="res://addons/godot_state_charts/parallel_state.gd" type="Script" id=5]
|
[ext_resource path="res://addons/godot_state_charts/parallel_state.gd" type="Script" id=5]
|
||||||
|
@ -23,11 +23,14 @@
|
||||||
[ext_resource path="res://graphics/player/sg_push.png" type="Texture" id=21]
|
[ext_resource path="res://graphics/player/sg_push.png" type="Texture" id=21]
|
||||||
[ext_resource path="res://graphics/player/sg_blink.png" type="Texture" id=22]
|
[ext_resource path="res://graphics/player/sg_blink.png" type="Texture" id=22]
|
||||||
[ext_resource path="res://graphics/player/sg_stim.png" type="Texture" id=23]
|
[ext_resource path="res://graphics/player/sg_stim.png" type="Texture" id=23]
|
||||||
|
[ext_resource path="res://graphics/player/sg_duck.png" type="Texture" id=24]
|
||||||
|
[ext_resource path="res://graphics/player/sg_jump_megaman.png" type="Texture" id=25]
|
||||||
|
|
||||||
[sub_resource type="ShaderMaterial" id=1]
|
[sub_resource type="ShaderMaterial" id=1]
|
||||||
shader = ExtResource( 3 )
|
shader = ExtResource( 3 )
|
||||||
shader_param/border_color = Color( 0, 0, 0, 1 )
|
shader_param/border_color = Color( 0, 0, 0, 1 )
|
||||||
shader_param/border_corners = true
|
shader_param/border_corners = true
|
||||||
|
shader_param/palette = ExtResource( 2 )
|
||||||
|
|
||||||
[sub_resource type="Curve" id=13]
|
[sub_resource type="Curve" id=13]
|
||||||
_data = [ Vector2( 0, 1 ), 0.0, -0.0636948, 0, 0, Vector2( 1, 0 ), -3.43886, 0.0, 0, 0 ]
|
_data = [ Vector2( 0, 1 ), 0.0, -0.0636948, 0, 0, Vector2( 1, 0 ), -3.43886, 0.0, 0, 0 ]
|
||||||
|
@ -265,7 +268,7 @@ tracks/0/keys = {
|
||||||
"times": PoolRealArray( 0 ),
|
"times": PoolRealArray( 0 ),
|
||||||
"transitions": PoolRealArray( 1 ),
|
"transitions": PoolRealArray( 1 ),
|
||||||
"update": 1,
|
"update": 1,
|
||||||
"values": [ ExtResource( 2 ) ]
|
"values": [ ExtResource( 24 ) ]
|
||||||
}
|
}
|
||||||
tracks/1/type = "value"
|
tracks/1/type = "value"
|
||||||
tracks/1/path = NodePath("Graphics/Sprite:hframes")
|
tracks/1/path = NodePath("Graphics/Sprite:hframes")
|
||||||
|
@ -513,6 +516,58 @@ tracks/3/keys = {
|
||||||
"values": [ 0.0 ]
|
"values": [ 0.0 ]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id=21]
|
||||||
|
resource_name = "jump2"
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/path = NodePath("Graphics/Sprite:texture")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PoolRealArray( 0 ),
|
||||||
|
"transitions": PoolRealArray( 1 ),
|
||||||
|
"update": 1,
|
||||||
|
"values": [ ExtResource( 25 ) ]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/path = NodePath("Graphics/Sprite:hframes")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PoolRealArray( 0 ),
|
||||||
|
"transitions": PoolRealArray( 1 ),
|
||||||
|
"update": 1,
|
||||||
|
"values": [ 1 ]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/path = NodePath("Graphics/Sprite:frame")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PoolRealArray( 0 ),
|
||||||
|
"transitions": PoolRealArray( 1 ),
|
||||||
|
"update": 1,
|
||||||
|
"values": [ 0 ]
|
||||||
|
}
|
||||||
|
tracks/3/type = "value"
|
||||||
|
tracks/3/path = NodePath("Graphics/Sprite:rotation_degrees")
|
||||||
|
tracks/3/interp = 1
|
||||||
|
tracks/3/loop_wrap = true
|
||||||
|
tracks/3/imported = false
|
||||||
|
tracks/3/enabled = true
|
||||||
|
tracks/3/keys = {
|
||||||
|
"times": PoolRealArray( 0 ),
|
||||||
|
"transitions": PoolRealArray( 1 ),
|
||||||
|
"update": 0,
|
||||||
|
"values": [ 0.0 ]
|
||||||
|
}
|
||||||
|
|
||||||
[sub_resource type="Animation" id=17]
|
[sub_resource type="Animation" id=17]
|
||||||
resource_name = "push"
|
resource_name = "push"
|
||||||
length = 0.8
|
length = 0.8
|
||||||
|
@ -908,6 +963,7 @@ anims/fall = SubResource( 15 )
|
||||||
anims/fall_scared = SubResource( 14 )
|
anims/fall_scared = SubResource( 14 )
|
||||||
anims/idle = SubResource( 6 )
|
anims/idle = SubResource( 6 )
|
||||||
anims/jump = SubResource( 8 )
|
anims/jump = SubResource( 8 )
|
||||||
|
anims/jump2 = SubResource( 21 )
|
||||||
anims/push = SubResource( 17 )
|
anims/push = SubResource( 17 )
|
||||||
anims/shoot_airborne = SubResource( 11 )
|
anims/shoot_airborne = SubResource( 11 )
|
||||||
anims/shoot_grounded = SubResource( 10 )
|
anims/shoot_grounded = SubResource( 10 )
|
||||||
|
@ -1254,6 +1310,10 @@ theme = ExtResource( 7 )
|
||||||
custom_styles/bg = SubResource( 4 )
|
custom_styles/bg = SubResource( 4 )
|
||||||
script = ExtResource( 8 )
|
script = ExtResource( 8 )
|
||||||
|
|
||||||
|
[node name="OxygenTimer" type="Timer" parent="."]
|
||||||
|
wait_time = 20.0
|
||||||
|
autostart = true
|
||||||
|
|
||||||
[connection signal="body_entered" from="Hitbox" to="." method="_on_Hitbox_body_entered"]
|
[connection signal="body_entered" from="Hitbox" to="." method="_on_Hitbox_body_entered"]
|
||||||
[connection signal="state_physics_processing" from="StateChart/Root/Movement" to="." method="_process_movement"]
|
[connection signal="state_physics_processing" from="StateChart/Root/Movement" to="." method="_process_movement"]
|
||||||
[connection signal="state_entered" from="StateChart/Root/Movement/Grounded" to="." method="_on_Grounded_state_entered"]
|
[connection signal="state_entered" from="StateChart/Root/Movement/Grounded" to="." method="_on_Grounded_state_entered"]
|
||||||
|
@ -1289,3 +1349,4 @@ script = ExtResource( 8 )
|
||||||
[connection signal="state_physics_processing" from="StateChart/Root/Movement/Climbing" to="." method="_process_climbing"]
|
[connection signal="state_physics_processing" from="StateChart/Root/Movement/Climbing" to="." method="_process_climbing"]
|
||||||
[connection signal="state_entered" from="StateChart/Root/Health/Respawn" to="." method="_on_Respawn_state_entered"]
|
[connection signal="state_entered" from="StateChart/Root/Health/Respawn" to="." method="_on_Respawn_state_entered"]
|
||||||
[connection signal="state_entered" from="StateChart/Root/Health/Dead" to="." method="_on_Dead_state_entered"]
|
[connection signal="state_entered" from="StateChart/Root/Health/Dead" to="." method="_on_Dead_state_entered"]
|
||||||
|
[connection signal="timeout" from="OxygenTimer" to="." method="_on_OxygenTimer_timeout"]
|
||||||
|
|