From 3997d6e378f86acc476fd96a264baa5bad5b7e4f Mon Sep 17 00:00:00 2001 From: Sagi Dayan Date: Sat, 3 Oct 2020 22:50:07 -0400 Subject: [PATCH] Code cleanup + state machine for player - WIP --- assets/HUD/time_hud.png | Bin 0 -> 4991 bytes assets/HUD/time_hud.png.import | 34 +++ project.godot | 23 ++ src/Actors/LightBeam.gd | 26 ++ src/Actors/LightBeam.tscn | 138 +++++++++ src/Actors/Player.gd | 274 +++++++++++------- src/Actors/Player.tscn | 13 + src/Actors/WiseOldDude/WiseOldDude.tscn | 33 +++ src/Actors/WiseOldDude/wize_old_dude.png | Bin 0 -> 14251 bytes .../WiseOldDude/wize_old_dude.png.import | 34 +++ src/Actors/ligt_beam.png | Bin 0 -> 788 bytes src/Actors/ligt_beam.png.import | 34 +++ src/CutScenes/ChallengeCutscene.gd | 101 +++++++ src/CutScenes/ChallengeCutscene.tscn | 112 +++++++ src/CutScenes/DialogBubble/DialogBubble.gd | 49 ++++ src/CutScenes/DialogBubble/DialogBubble.tscn | 107 +++++++ src/CutScenes/DialogBubble/hud_stats_bg.png | Bin 0 -> 2720 bytes .../DialogBubble/hud_stats_bg.png.import | 34 +++ src/CutScenes/red-wizzard-large.png | Bin 0 -> 137690 bytes src/CutScenes/red-wizzard-large.png.import | 34 +++ src/GameWorld/GameWorld.gd | 27 ++ src/GameWorld/GameWorld.tscn | 121 ++++++++ src/HUD/HUD.gd | 12 +- src/HUD/HUD.tscn | 63 +++- src/Menu/MainMenu.tscn | 33 +-- src/Menu/PauseMenu.tscn | 1 + src/Scripts/CutScene.gd | 21 ++ src/Singletons/GameState.gd | 18 +- src/Singletons/Utils.gd | 13 + 29 files changed, 1217 insertions(+), 138 deletions(-) create mode 100644 assets/HUD/time_hud.png create mode 100644 assets/HUD/time_hud.png.import create mode 100644 src/Actors/LightBeam.gd create mode 100644 src/Actors/LightBeam.tscn create mode 100644 src/Actors/WiseOldDude/WiseOldDude.tscn create mode 100644 src/Actors/WiseOldDude/wize_old_dude.png create mode 100644 src/Actors/WiseOldDude/wize_old_dude.png.import create mode 100644 src/Actors/ligt_beam.png create mode 100644 src/Actors/ligt_beam.png.import create mode 100644 src/CutScenes/ChallengeCutscene.gd create mode 100644 src/CutScenes/ChallengeCutscene.tscn create mode 100644 src/CutScenes/DialogBubble/DialogBubble.gd create mode 100644 src/CutScenes/DialogBubble/DialogBubble.tscn create mode 100644 src/CutScenes/DialogBubble/hud_stats_bg.png create mode 100644 src/CutScenes/DialogBubble/hud_stats_bg.png.import create mode 100644 src/CutScenes/red-wizzard-large.png create mode 100644 src/CutScenes/red-wizzard-large.png.import create mode 100644 src/GameWorld/GameWorld.gd create mode 100644 src/GameWorld/GameWorld.tscn create mode 100644 src/Scripts/CutScene.gd create mode 100644 src/Singletons/Utils.gd diff --git a/assets/HUD/time_hud.png b/assets/HUD/time_hud.png new file mode 100644 index 0000000000000000000000000000000000000000..3f286d92d961b0f1ae5cfd833e016bba5197867d GIT binary patch literal 4991 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 void: + $AnimationPlayer.play("lights_on") + +func _physics_process(delta: float) -> void: + if emitting: + position = position + (direction * speed * delta) + + + + +func _on_Area2D_body_entered(body: Node) -> void: + call_deferred("_disable_area") + emitting = false + $AnimationPlayer.play("lights_out") + yield($AnimationPlayer, "animation_finished") + queue_free() + pass # Replace with function body. + +func _disable_area(): + print("beam area off") + $Area2D/CollisionShape2D.disabled = true diff --git a/src/Actors/LightBeam.tscn b/src/Actors/LightBeam.tscn new file mode 100644 index 0000000..98afef5 --- /dev/null +++ b/src/Actors/LightBeam.tscn @@ -0,0 +1,138 @@ +[gd_scene load_steps=11 format=2] + +[ext_resource path="res://src/Actors/ligt_beam.png" type="Texture" id=1] +[ext_resource path="res://src/Actors/LightBeam.gd" type="Script" id=2] + +[sub_resource type="Gradient" id=1] +offsets = PoolRealArray( 0, 0.189655, 0.366379, 0.616379, 1 ) +colors = PoolColorArray( 1, 1, 1, 1, 0, 0.992157, 0.894118, 1, 0.844238, 0.964844, 0.95297, 0.826387, 0.0330963, 0.941406, 0.852792, 0.712057, 0.0627451, 0.992157, 0.901961, 0.203922 ) + +[sub_resource type="GradientTexture" id=2] +gradient = SubResource( 1 ) + +[sub_resource type="Curve" id=3] +_data = [ Vector2( 0.00784314, 0.894318 ), 0.0, 1.34604, 0, 0, Vector2( 1, 0.237591 ), 0.0, 0.0, 0, 0 ] + +[sub_resource type="CurveTexture" id=4] +curve = SubResource( 3 ) + +[sub_resource type="ParticlesMaterial" id=5] +emission_shape = 1 +emission_sphere_radius = 1.0 +flag_disable_z = true +direction = Vector3( 0, 0, 0 ) +gravity = Vector3( 0, 0, 0 ) +angular_velocity = 0.2 +angular_velocity_random = 1.0 +orbit_velocity = 0.0 +orbit_velocity_random = 0.0 +angle = 90.0 +angle_random = 0.6 +scale = 0.7 +scale_random = 0.5 +scale_curve = SubResource( 4 ) +color_ramp = SubResource( 2 ) + +[sub_resource type="CircleShape2D" id=6] +radius = 3.0 + +[sub_resource type="Animation" id=8] +resource_name = "lights_on" +length = 0.5 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath("Light2D:texture_scale") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.25, 0.5 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ 1.0, 1.5, 1.0 ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("Light2D:rotation_degrees") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 0.25, 0.5 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ 0.0, -86.4, 33.4 ] +} + +[sub_resource type="Animation" id=7] +resource_name = "lights_out" +length = 0.5 +step = 0.25 +tracks/0/type = "value" +tracks/0/path = NodePath("Light2D:energy") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.5 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ 2.0, 0.0 ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("Light2D:texture_scale") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 0.25, 0.5 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ 2.0, 1.5, 2.0 ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("Light2D:rotation_degrees") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0, 0.25, 0.5 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ 0.0, -86.4, 0.0 ] +} + +[node name="LightBeam" type="Particles2D"] +amount = 50 +lifetime = 0.4 +explosiveness = 0.1 +local_coords = false +process_material = SubResource( 5 ) +texture = ExtResource( 1 ) +script = ExtResource( 2 ) + +[node name="Light2D" type="Light2D" parent="."] +rotation = -0.253422 +texture = ExtResource( 1 ) +texture_scale = 0.8 +energy = 2.0 +range_item_cull_mask = 15375 +shadow_enabled = true +shadow_item_cull_mask = 28 + +[node name="Area2D" type="Area2D" parent="."] +collision_layer = 0 +collision_mask = 2147483660 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"] +shape = SubResource( 6 ) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +autoplay = "lights_on" +anims/lights_on = SubResource( 8 ) +anims/lights_out = SubResource( 7 ) +[connection signal="body_entered" from="Area2D" to="." method="_on_Area2D_body_entered"] diff --git a/src/Actors/Player.gd b/src/Actors/Player.gd index b66b819..2af2651 100644 --- a/src/Actors/Player.gd +++ b/src/Actors/Player.gd @@ -9,12 +9,13 @@ export var gravity: = 500.0 export var max_gravity:= 450.0 export var respawn_position:=Vector2.ZERO export var wall_slide_friction:=.2 -export var wall_jump_speed_factor := Vector2(2.5 ,.85) +export var wall_jump_speed_factor := Vector2(1 ,.8) export var dash_thrust = 500.0 export var max_wall_slide_gravity := 100.0 var LandingDust = load("res://src/Actors/LandingDust.tscn") var JumpDust = load("res://src/Actors/JumpDust.tscn") +var LightBeam = load("res://src/Actors/LightBeam.tscn") signal landed @@ -23,13 +24,21 @@ signal died var _velocity: Vector2 = Vector2.ZERO var _landing_position:Vector2 = Vector2.ZERO -var _in_air = false; var _is_wall_jumping := false -var _alive := false; -var _is_wall_sliding := false; -var _is_dashing := false; -var _can_dash := true; -var _is_attaking := false; +var _alive := false +var _can_dash := true +var _is_jump_canceled := false +var _direction := Vector2.ZERO + +enum States { + IDLE, + IN_AIR, + DASHING, + WALL_SLIDING, + ATTACKING +} + +var _state = States.IDLE enum Direction{ RIGHT = 1, @@ -39,7 +48,8 @@ enum Direction{ export var abilities:= { "dash": false, "wall_jump": false, - "attack": false + "attack": false, + "light_beam": false } func _ready() -> void: $AnimationPlayer.play("fade_in") @@ -47,92 +57,142 @@ func _ready() -> void: func _physics_process(delta: float) -> void: if _alive: - var is_jump_canceled: = Input.is_action_just_released("jump") and !_is_wall_jumping and _velocity.y < 0.0 - var direction: = get_direction() - var prev_wall_slide_state = _is_wall_sliding - _is_wall_sliding = _velocity.y >=0 and is_on_wall() and _in_air - _velocity = calculate_move_velocity(direction,is_jump_canceled, delta) - if _is_wall_sliding and not prev_wall_slide_state: - _velocity.y=0 + _update_state() + _input_check() + _velocity = calculate_move_velocity(_direction,_is_jump_canceled, delta) _velocity = move_and_slide(_velocity, Vector2.UP) - update_sprite(direction) - if is_on_floor() and !_is_dashing: _can_dash = true; - if is_on_floor() and _in_air and !_is_dashing: - var dust = LandingDust.instance() - dust.position = position - get_parent().add_child(dust) - _in_air = false - _is_wall_jumping = false - emit_signal("landed", position) - if _is_wall_sliding: - _is_wall_jumping = false - -func get_direction() -> Vector2: - var right_strength = min(Input.get_action_strength("direction_right") , 1) - var left_strength = min(Input.get_action_strength("direction_left"), 1) - return Vector2( - right_strength - left_strength if _in_air or not _is_attaking else 0, - -1.0 if Input.is_action_just_pressed("jump") and (is_on_floor() or _is_wall_sliding) else 1.0 - ) - -func calculate_move_velocity(direction:Vector2, is_jump_canceled:bool, delta:float)->Vector2: - var output: = _velocity - - var current_gravity = gravity * wall_slide_friction if _is_wall_sliding else gravity - - output.x = lerp(_velocity.x, run_speed * direction.x, .09 if _in_air else .5) - - output.y += current_gravity * delta - - if direction.y == -1.0: # we are jumping - _in_air = true - if _is_wall_sliding: - # wall jump - var walljump__x_direction = -1 * direction.x - _is_wall_jumping = true - var desired = (run_speed * wall_jump_speed_factor.x * walljump__x_direction) - output.x = desired - output.y = jump_power * wall_jump_speed_factor.y * direction.y - else: - #jump - output.y = jump_power * direction.y - var dust = JumpDust.instance() - dust.position = position; - get_parent().add_child(dust) - emit_signal("jumping", position) - - if not _is_dashing: - if is_jump_canceled: - output.y = 0 - if output.y < max_gravity * -1: - output.y = max_gravity - if output.y > 0 and !is_on_floor(): - _in_air = true; - if _is_dashing: - return _velocity - - if _is_wall_sliding and output.y > max_wall_slide_gravity: - output.y = max_wall_slide_gravity - - var dash_velocity := Vector2( - $Sprite.scale.x * dash_thrust, - 0 - ) - - if Input.is_action_just_pressed("dash") and _can_dash: + update_sprite(_direction) + +func _input_check() -> void: + if GameState.get_state() == GameState.States.GAME: + _is_jump_canceled = Input.is_action_just_released("jump") and !_is_wall_jumping and _velocity.y < 0.0; + _get_direction() + _check_dash() + if Input.is_action_just_pressed("attack") and abilities.attack: + _attack() + else: + _direction = Vector2.ZERO + + + + + +func _update_state(new_state:int = -1): + var auto_update = new_state == -1; + if new_state == -1: + new_state = _state + if _state == States.DASHING: return + if _state == States.ATTACKING: return + if _state == States.IDLE: + if _velocity.y > 0 and not is_on_floor(): + # Falling from ground + new_state = States.IN_AIR + elif _state == States.IN_AIR: + if is_on_floor(): + _on_landed() + new_state = States.IDLE + elif _velocity.y >=0 and is_on_wall(): + if _state != States.WALL_SLIDING: + _velocity.y=0 + new_state = States.WALL_SLIDING + elif _state == States.WALL_SLIDING: + if is_on_floor() or not is_on_wall(): + new_state = States.IDLE + else: new_state = States.IDLE + _transition_state(_state, new_state, auto_update) + +func _transition_state(old_state, new_state, auto_update): + if new_state != old_state: + print("[Player]: State Update: [%s] -> [%s] | Automatic: %s" % [old_state, new_state, auto_update]) + _state = new_state + if old_state == States.IDLE: + # idle -> attak = ground attack - stop _velocity.x + if new_state == States.ATTACKING: + _direction.x = 0; + _velocity.x = 0; + if old_state == States.DASHING: + if new_state == States.IDLE: + _can_dash = true + if old_state == States.WALL_SLIDING: + if new_state == States.IDLE: + _on_landed() + +func _on_landed(): + _can_dash = true + var dust = LandingDust.instance() + dust.position = position + get_parent().add_child(dust) + emit_signal("landed", position) + +func _on_jump(wall_jump:bool = false): + var dust:Node = JumpDust.instance() + dust.position = position; + get_parent().add_child(dust) + if wall_jump: + dust.position.x += 2 * -$Sprite.scale.x + dust.get_node("Sprite").rotate(deg2rad(90) * -$Sprite.scale.x) + emit_signal("jumping", position) + +func _get_direction() -> void: + var right_strength = round(Input.get_action_strength("direction_right")) + var left_strength = round(Input.get_action_strength("direction_left")) + var vertical_movement = right_strength - left_strength if not _state == States.DASHING else 0 + var is_in_jumpable_state = _state == States.IDLE or _state == States.WALL_SLIDING + _direction = Vector2( + vertical_movement, + -1.0 if Input.is_action_just_pressed("jump") and is_in_jumpable_state else 1.0 + ) +func _check_dash(): + if Input.is_action_just_pressed("dash") and _can_dash and abilities.dash: + var dash_velocity := Vector2($Sprite.scale.x * dash_thrust,0) _can_dash = false - _is_dashing = true # turn off gravity while dashing # Wall dash first - if _is_wall_sliding: + if _state == States.WALL_SLIDING: dash_velocity.x = $Sprite.scale.x * dash_thrust * -1 if dash_velocity.x < 0 : $DashParticlesLeft.emitting = true; else: $DashParticlesRight.emitting = true - output = dash_velocity + _velocity = dash_velocity $DashTimeout.start() + _update_state(States.DASHING) # turn off gravity while dashing + +func calculate_move_velocity(direction:Vector2, is_jump_canceled:bool, delta:float)->Vector2: + var output: = _velocity + var current_gravity = gravity * wall_slide_friction if _state == States.WALL_SLIDING else gravity + + output.x = lerp(_velocity.x, run_speed * direction.x, .1 if _state == States.IN_AIR else .5) + + output.y += current_gravity * delta + + if _state == States.DASHING: + return _velocity + + if direction.y == -1.0: # we are jumping + var wall_jump := false + if _state == States.WALL_SLIDING and abilities.wall_jump: + # wall jump + wall_jump = true + var walljump__x_direction = -1 * direction.x + var desired = (run_speed * wall_jump_speed_factor.x * walljump__x_direction) + output.x = desired + output.y = jump_power * wall_jump_speed_factor.y * direction.y + else: + #jump + output.y = jump_power * direction.y + _update_state(States.IN_AIR) + _on_jump(wall_jump) + else: + if is_jump_canceled: + output.y = 0 + if output.y < max_gravity * -1: + output.y = max_gravity + + + if _state == States.WALL_SLIDING and output.y > max_wall_slide_gravity: + output.y = max_wall_slide_gravity return output; @@ -147,40 +207,45 @@ func _revive(): func update_sprite(_direction:Vector2) -> void: var air_animation = "jump" if _velocity.y <= 0 else "fall" - if _is_attaking: return + if _state == States.ATTACKING: return var attack = Input.is_action_just_pressed("attack") and abilities.attack - if _velocity.x > .5 and not _is_wall_sliding: + if _velocity.x > .5 and not _state == States.WALL_SLIDING: $Sprite.scale = Vector2(1,1) $AnimationPlayer.play("run" if is_on_floor() else air_animation) - elif _velocity.x < -.5 and not _is_wall_sliding: + elif _velocity.x < -.5 and not _state == States.WALL_SLIDING: $Sprite.scale = Vector2(-1,1) $AnimationPlayer.play("run" if is_on_floor() else air_animation) else: - if not _in_air: $AnimationPlayer.play("idle") + if not _state == States.IN_AIR: $AnimationPlayer.play("idle") - if _is_wall_sliding: + if _state == States.WALL_SLIDING: $AnimationPlayer.play("wall_slide") return - if attack: - _is_attaking = true - AudioManager.play_sfx(AudioManager.Sfx.PLAYER_ATTACK) - var attack_animation = "attack_right" if $Sprite.scale.x > 0 else "attack_left" - $AnimationPlayer.play(attack_animation) - $AnimationPlayer.playback_speed = 2.5 - $AnimationPlayer.seek(0) - yield($AnimationPlayer, "animation_finished") - $AnimationPlayer.playback_speed = 1 - _is_attaking = false - return - if _in_air: + if _state == States.IN_AIR: $AnimationPlayer.play(air_animation) return - if _is_dashing: + if _state == States.DASHING: $AnimationPlayer.play("jump") return - +func _attack(): + if _state == States.DASHING: + var beam = LightBeam.instance() + beam.direction = Vector2($Sprite.scale.x, 0) + beam.position = $Sprite/LightBeamInitPoint.get_global_transform().get_origin() + get_parent().add_child(beam) + $DashTimeout.stop() + _on_DashTimeout_timeout(false) + _update_state(States.ATTACKING) + AudioManager.play_sfx(AudioManager.Sfx.PLAYER_ATTACK) + var attack_animation = "attack_right" if $Sprite.scale.x > 0 else "attack_left" + $AnimationPlayer.play(attack_animation) + $AnimationPlayer.playback_speed = 2.5 + yield($AnimationPlayer, "animation_finished") + $AnimationPlayer.seek(0) + $AnimationPlayer.playback_speed = 1 + _update_state(States.IDLE) func _on_die_animation_done(): emit_signal("died") @@ -201,11 +266,12 @@ func setAbility(ability:String, enabled:bool=false): else: pass -func _on_DashTimeout_timeout() -> void: +func _on_DashTimeout_timeout(timed_out=true) -> void: + $AnimationPlayer.playback_speed = 1 $DashParticlesLeft.emitting = false $DashParticlesRight.emitting = false _velocity.x = run_speed * _velocity.normalized().x; - _is_dashing = false + if timed_out: _update_state(States.IN_AIR) pass # Replace with function body. diff --git a/src/Actors/Player.tscn b/src/Actors/Player.tscn index 23b1d6a..294bcd9 100644 --- a/src/Actors/Player.tscn +++ b/src/Actors/Player.tscn @@ -836,6 +836,9 @@ collision_mask = 2 position = Vector2( 14, -6 ) shape = SubResource( 2 ) +[node name="LightBeamInitPoint" type="Position2D" parent="Sprite"] +position = Vector2( 14, 2 ) + [node name="AnimationPlayer" type="AnimationPlayer" parent="."] autoplay = "idle" anims/attack_left = SubResource( 3 ) @@ -881,5 +884,15 @@ position = Vector2( 0, -8.04107 ) enabled = true cast_to = Vector2( -5.2, 0 ) collision_mask = 8 + +[node name="Camera2D" type="Camera2D" parent="."] +current = true +limit_left = -45 +limit_smoothed = true +drag_margin_h_enabled = true +drag_margin_v_enabled = true +smoothing_enabled = true +drag_margin_left = 0.09 +drag_margin_right = 0.09 [connection signal="body_entered" from="Sprite/SordRange" to="." method="_on_SordRange_body_entered"] [connection signal="timeout" from="DashTimeout" to="." method="_on_DashTimeout_timeout"] diff --git a/src/Actors/WiseOldDude/WiseOldDude.tscn b/src/Actors/WiseOldDude/WiseOldDude.tscn new file mode 100644 index 0000000..94b673e --- /dev/null +++ b/src/Actors/WiseOldDude/WiseOldDude.tscn @@ -0,0 +1,33 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://src/Actors/WiseOldDude/wize_old_dude.png" type="Texture" id=1] + +[sub_resource type="Animation" id=1] +resource_name = "idle" +length = 0.8 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath("Sprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.2, 0.4, 0.6, 0.8 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 1, +"values": [ 17, 18, 19, 20, 21 ] +} + +[node name="WiseOldDude" type="Node2D"] + +[node name="Sprite" type="Sprite" parent="."] +position = Vector2( 0, -16 ) +texture = ExtResource( 1 ) +vframes = 6 +hframes = 9 +frame = 18 + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +autoplay = "idle" +anims/idle = SubResource( 1 ) diff --git a/src/Actors/WiseOldDude/wize_old_dude.png b/src/Actors/WiseOldDude/wize_old_dude.png new file mode 100644 index 0000000000000000000000000000000000000000..8eee12a6617e1da4f07fde9b1c22ffba5fabede2 GIT binary patch literal 14251 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 literal 0 HcmV?d00001 diff --git a/src/Actors/WiseOldDude/wize_old_dude.png.import b/src/Actors/WiseOldDude/wize_old_dude.png.import new file mode 100644 index 0000000..30cbfd9 --- /dev/null +++ b/src/Actors/WiseOldDude/wize_old_dude.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/wize_old_dude.png-2d29b22f4c54a0aed9056fec7199f29e.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://src/Actors/WiseOldDude/wize_old_dude.png" +dest_files=[ "res://.import/wize_old_dude.png-2d29b22f4c54a0aed9056fec7199f29e.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 +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/src/Actors/ligt_beam.png b/src/Actors/ligt_beam.png new file mode 100644 index 0000000000000000000000000000000000000000..bf1be27b43612308772d3bed1cca150fe5ca312c GIT binary patch literal 788 zcmV+v1MB>WP)EX>4Tx04R}tkv&MmKpe$iQ$;D24t5ZA$WWauh>AFB6^c+H)C#RSm|Xe=O&XFE z7e~Rh;NZt%)xpJCR|i)?5c~jfa&%I3krMxx6k5c1aNLh~_a1le0HIM~n$)O(glehxvqHp#<}RSz%!#}COuCaB^HYvtaLCdnHupFaZJ^8$``U8 ztDLtuYn2*n-IKpCoYz;DxlVH!Ni1Rs5=1Ddp^OS_#A($@v5=Klt6PRhXRclEMj~`^9lSMu47OpjmgE?_jyxaSVhbA)v0f**E%0*zm#}~-w6I)VdR1_WLtNpd zEO4{rC}Vsth=`rcTrJ-=R&HPdD;O<5l@SrO*Oi&uCGTeDP4>i(Pxe>vpT;K#;ZV`E SBi(xd0000= dialog.size(): + # we are done + _done = true + dismiss() + return + var sentence = dialog[_position] + $NinePatchRect/Label.text = sentence.text + $AnimationPlayer.play("show_text") + yield($AnimationPlayer, "animation_finished") + if sentence.callback != null: + sentence.callback() + +func _input(event: InputEvent) -> void: + if not _started: return + if Input.is_action_just_pressed("jump"): + if allow_fast_skip: dismiss() + else: + _position += 1 + $AnimationPlayer.play_backwards("show_text") + yield($AnimationPlayer, "animation_finished") + _show_text() + + + +func dismiss(): + $AnimationPlayer.play_backwards("slide_in") + yield($AnimationPlayer, "animation_finished") + emit_signal("dialog_finished") + queue_free() diff --git a/src/CutScenes/DialogBubble/DialogBubble.tscn b/src/CutScenes/DialogBubble/DialogBubble.tscn new file mode 100644 index 0000000..7b12424 --- /dev/null +++ b/src/CutScenes/DialogBubble/DialogBubble.tscn @@ -0,0 +1,107 @@ +[gd_scene load_steps=7 format=2] + +[ext_resource path="res://src/CutScenes/DialogBubble/DialogBubble.gd" type="Script" id=1] +[ext_resource path="res://src/CutScenes/DialogBubble/hud_stats_bg.png" type="Texture" id=2] +[ext_resource path="res://assets/Theme/slkscr.ttf" type="DynamicFontData" id=3] + +[sub_resource type="DynamicFont" id=1] +size = 17 +outline_size = 1 +outline_color = Color( 0, 0, 0, 1 ) +font_data = ExtResource( 3 ) + +[sub_resource type="Animation" id=2] +resource_name = "show_text" +length = 0.2 +tracks/0/type = "value" +tracks/0/path = NodePath("NinePatchRect/Label:modulate") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.2 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ] +} + +[sub_resource type="Animation" id=3] +length = 0.5 +tracks/0/type = "value" +tracks/0/path = NodePath("NinePatchRect:margin_bottom") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.5 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ 135.0, -15.0 ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("NinePatchRect:margin_top") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 0.5 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ 300.0, 150.0 ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("NinePatchRect/Label:modulate") +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": 0, +"values": [ Color( 1, 1, 1, 0 ) ] +} + +[node name="DialogBubble" type="Control"] +anchor_right = 1.0 +anchor_bottom = 1.0 +script = ExtResource( 1 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="NinePatchRect" type="NinePatchRect" parent="."] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 40.0 +margin_top = 300.0 +margin_right = -40.0 +margin_bottom = 135.0 +texture = ExtResource( 2 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Label" type="Label" parent="NinePatchRect"] +modulate = Color( 1, 1, 1, 0 ) +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 20.0 +margin_top = 20.0 +margin_right = -20.0 +margin_bottom = -20.0 +custom_fonts/font = SubResource( 1 ) +custom_colors/font_color = Color( 1, 1, 1, 0.890196 ) +text = "Hello there young one!" +align = 1 +autowrap = true +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +anims/show_text = SubResource( 2 ) +anims/slide_in = SubResource( 3 ) diff --git a/src/CutScenes/DialogBubble/hud_stats_bg.png b/src/CutScenes/DialogBubble/hud_stats_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..becfd716e7cf52208cc12111d2c7344ea66b8072 GIT binary patch literal 2720 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≧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 void: + $Player/Camera2D.limit_bottom = 250 + $Player/Camera2D.limit_left = -45 + $Player/Camera2D.limit_right = 700 + + + + + +func _on_OldDudeIntroArea_body_entered(body: Node) -> void: + if body.name == 'Player': + AudioManager.play_music(AudioManager.Music.Abandon) + GameState.start_cutscene() + var scene = (load(_Cutscenes.old_man_intro)).instance() + add_child(scene) + scene.start_scene($Player/Camera2D) + yield(scene, "cutscene_finished") + GameState.end_cutscene() + pass # Replace with function body. diff --git a/src/GameWorld/GameWorld.tscn b/src/GameWorld/GameWorld.tscn new file mode 100644 index 0000000..a6ee253 --- /dev/null +++ b/src/GameWorld/GameWorld.tscn @@ -0,0 +1,121 @@ +[gd_scene load_steps=11 format=2] + +[ext_resource path="res://src/HUD/HUD.tscn" type="PackedScene" id=1] +[ext_resource path="res://assets/Tiles/SolidsTileMap.tscn" type="PackedScene" id=2] +[ext_resource path="res://src/Actors/Player.tscn" type="PackedScene" id=3] +[ext_resource path="res://assets/Tiles/background_0.png" type="Texture" id=4] +[ext_resource path="res://src/GameWorld/GameWorld.gd" type="Script" id=5] +[ext_resource path="res://assets/Tiles/background_1.png" type="Texture" id=6] +[ext_resource path="res://assets/Tiles/background_2.png" type="Texture" id=7] +[ext_resource path="res://src/Actors/WiseOldDude/WiseOldDude.tscn" type="PackedScene" id=8] +[ext_resource path="res://assets/Tiles/SemiSolidsTileMap.tscn" type="PackedScene" id=9] + +[sub_resource type="RectangleShape2D" id=1] +extents = Vector2( 7, 37 ) + +[node name="GameWorld" type="Node2D"] +script = ExtResource( 5 ) + +[node name="HUD" parent="." instance=ExtResource( 1 )] + +[node name="ParallaxBackground" type="ParallaxBackground" parent="."] + +[node name="ParallaxLayer" type="ParallaxLayer" parent="ParallaxBackground"] +motion_scale = Vector2( 0.6, 1 ) + +[node name="NinePatchRect" type="NinePatchRect" parent="ParallaxBackground/ParallaxLayer"] +margin_left = -142.0 +margin_top = -103.0 +margin_right = 443.0 +margin_bottom = 255.0 +texture = ExtResource( 4 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="NinePatchRect2" type="NinePatchRect" parent="ParallaxBackground/ParallaxLayer"] +margin_left = 443.0 +margin_top = -103.0 +margin_right = 1028.0 +margin_bottom = 255.0 +texture = ExtResource( 4 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="ParallaxLayer2" type="ParallaxLayer" parent="ParallaxBackground"] +motion_scale = Vector2( 0.8, 1 ) + +[node name="NinePatchRect" type="NinePatchRect" parent="ParallaxBackground/ParallaxLayer2"] +margin_left = -142.0 +margin_top = -103.0 +margin_right = 443.0 +margin_bottom = 255.0 +texture = ExtResource( 6 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="NinePatchRect2" type="NinePatchRect" parent="ParallaxBackground/ParallaxLayer2"] +margin_left = 443.0 +margin_top = -103.0 +margin_right = 1028.0 +margin_bottom = 255.0 +texture = ExtResource( 6 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="ParallaxLayer3" type="ParallaxLayer" parent="ParallaxBackground"] +motion_scale = Vector2( 0.9, 1 ) + +[node name="NinePatchRect" type="NinePatchRect" parent="ParallaxBackground/ParallaxLayer3"] +margin_left = -142.0 +margin_top = -103.0 +margin_right = 443.0 +margin_bottom = 255.0 +texture = ExtResource( 7 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="NinePatchRect2" type="NinePatchRect" parent="ParallaxBackground/ParallaxLayer3"] +margin_left = 443.0 +margin_top = -103.0 +margin_right = 1028.0 +margin_bottom = 255.0 +texture = ExtResource( 7 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="SolidPlatforms" type="Node2D" parent="."] + +[node name="SemiSolidsTileMap" parent="SolidPlatforms" instance=ExtResource( 9 )] +tile_data = PoolIntArray( 524316, 1, 0, 524317, 1, 1, 524318, 1, 1, 524319, 1, 1, 524320, 1, 1, 524321, 1, 1, 524322, 1, 2, 589852, 1, 65536, 589853, 1, 65537, 589854, 1, 65537, 589855, 1, 65537, 589856, 1, 65537, 589857, 1, 65537, 589858, 1, 65538, 655375, 0, 0, 655376, 0, 131076, 655377, 0, 1, 655378, 0, 1, 655379, 0, 131076, 655380, 0, 1, 655381, 0, 1, 655382, 0, 1, 655383, 0, 131076, 655384, 0, 131076, 655385, 0, 1, 655386, 0, 131076, 655387, 0, 2, 655388, 1, 65536, 655389, 1, 65537, 655390, 1, 65537, 655391, 1, 65537, 655392, 1, 65537, 655393, 1, 65537, 655394, 1, 65538, 720911, 0, 65541, 720912, 0, 65537, 720913, 0, 65537, 720914, 0, 65537, 720915, 0, 65537, 720916, 0, 65537, 720917, 0, 65537, 720918, 0, 65537, 720919, 0, 65537, 720920, 0, 3, 720921, 0, 131073, 720922, 0, 4, 720923, 0, 131074, 720924, 1, 65536, 720925, 1, 0, 720926, 1, 131073, 720927, 1, 131073, 720928, 1, 131073, 720929, 1, 0, 720930, 1, 65538, 786447, 0, 65541, 786448, 0, 65537, 786449, 0, 65537, 786450, 0, 65537, 786451, 0, 65537, 786452, 0, 65537, 786453, 0, 65537, 786454, 0, 65537, 786455, 0, 65537, 786456, 0, 65538, 786457, 1, 0, 786458, 1, 1, 786459, 1, 1, 786460, 1, 0, 786461, 1, 65538, 786462, 0, 0, 786463, 0, 131076, 786464, 0, 2, 786465, 1, 65536, 786466, 1, 65538, 851983, 0, 65541, 851984, 0, 65537, 851985, 0, 65537, 851986, 0, 65537, 851987, 0, 65537, 851988, 0, 65537, 851989, 0, 65537, 851990, 0, 65537, 851991, 0, 65537, 851992, 0, 65538, 851993, 1, 65536, 851994, 1, 65537, 851995, 1, 65537, 851996, 1, 65537, 851997, 1, 65538, 851998, 0, 65541, 851999, 0, 65537, 852000, 0, 65539, 852001, 1, 65536, 852002, 1, 65538, 917519, 0, 131072, 917520, 0, 4, 917521, 0, 131073, 917522, 0, 131073, 917523, 0, 4, 917524, 0, 4, 917525, 0, 131073, 917526, 0, 131073, 917527, 0, 4, 917528, 0, 131074, 917529, 1, 131072, 917530, 1, 131073, 917531, 1, 131073, 917532, 1, 131073, 917533, 1, 131074, 917534, 0, 65541, 917535, 0, 65537, 917536, 0, 65539, 917537, 1, 131072, 917538, 1, 131074, 983070, 0, 131072, 983071, 0, 131073, 983072, 0, 131074 ) + +[node name="SolidsTileMap" parent="SolidPlatforms" instance=ExtResource( 2 )] +tile_data = PoolIntArray( -65544, 0, 0, -65543, 0, 1, -65542, 0, 1, -65541, 0, 131076, -65540, 0, 1, -65539, 0, 1, -65538, 0, 1, -65537, 0, 2, -131041, 0, 0, -131040, 0, 131076, -131039, 0, 131076, -131038, 0, 1, -131037, 0, 131076, -131036, 0, 1, -131035, 0, 1, -131034, 0, 1, -131033, 0, 131076, -131032, 0, 1, -131031, 0, 1, -131030, 0, 131076, -131029, 0, 1, -131028, 0, 2, -8, 0, 65541, -7, 0, 65537, -6, 0, 65537, -5, 0, 65537, -4, 0, 65537, -3, 0, 65537, -2, 0, 65537, -1, 0, 65539, -65505, 0, 131072, -65504, 0, 4, -65503, 0, 5, -65502, 0, 3, -65501, 0, 4, -65500, 0, 131073, -65499, 0, 5, -65498, 0, 65537, -65497, 0, 65537, -65496, 0, 65537, -65495, 0, 65537, -65494, 0, 65537, -65493, 0, 65537, -65492, 0, 65538, 65528, 0, 65541, 65529, 0, 65537, 65530, 0, 65537, 65531, 0, 65537, 65532, 0, 65537, 65533, 0, 65537, 65534, 0, 65537, 65535, 0, 65538, 33, 0, 131072, 34, 0, 131074, 37, 0, 65536, 38, 0, 65537, 39, 0, 65537, 40, 0, 65537, 41, 0, 65537, 42, 0, 65537, 43, 0, 65537, 44, 0, 65539, 131064, 0, 65536, 131065, 0, 65537, 131066, 0, 65537, 131067, 0, 65537, 131068, 0, 65537, 131069, 0, 65537, 131070, 0, 65537, 131071, 0, 65538, 65573, 0, 65536, 65574, 0, 65537, 65575, 0, 65537, 65576, 0, 65537, 65577, 0, 65537, 65578, 0, 65537, 65579, 0, 65537, 65580, 0, 65539, 196600, 0, 65541, 196601, 0, 65537, 196602, 0, 65537, 196603, 0, 65537, 196604, 0, 65537, 196605, 0, 65537, 196606, 0, 65537, 196607, 0, 65539, 131109, 0, 65536, 131110, 0, 65537, 131111, 0, 65537, 131112, 0, 65537, 131113, 0, 65537, 131114, 0, 65537, 131115, 0, 65537, 131116, 0, 65538, 262136, 0, 65541, 262137, 0, 65537, 262138, 0, 65537, 262139, 0, 65537, 262140, 0, 65537, 262141, 0, 65537, 262142, 0, 65537, 262143, 0, 65538, 196645, 0, 65541, 196646, 0, 65537, 196647, 0, 65537, 196648, 0, 65537, 196649, 0, 65537, 196650, 0, 65537, 196651, 0, 65537, 196652, 0, 65539, 327672, 0, 65541, 327673, 0, 65537, 327674, 0, 65537, 327675, 0, 65537, 327676, 0, 65537, 327677, 0, 65537, 327678, 0, 65537, 327679, 0, 65538, 262181, 0, 65541, 262182, 0, 65537, 262183, 0, 65537, 262184, 0, 65537, 262185, 0, 65537, 262186, 0, 65537, 262187, 0, 65537, 262188, 0, 65539, 393208, 0, 65536, 393209, 0, 65537, 393210, 0, 65537, 393211, 0, 65537, 393212, 0, 65537, 393213, 0, 65537, 393214, 0, 65537, 393215, 0, 65538, 327717, 0, 131072, 327718, 0, 131073, 327719, 0, 5, 327720, 0, 65537, 327721, 0, 65537, 327722, 0, 65537, 327723, 0, 65537, 327724, 0, 65538, 458744, 0, 65541, 458745, 0, 65537, 458746, 0, 65537, 458747, 0, 65537, 458748, 0, 65537, 458749, 0, 65537, 458750, 0, 65537, 458751, 0, 65538, 393255, 0, 65536, 393256, 0, 65537, 393257, 0, 65537, 393258, 0, 65537, 393259, 0, 65537, 393260, 0, 65539, 524280, 0, 65541, 524281, 0, 65537, 524282, 0, 65537, 524283, 0, 65537, 524284, 0, 65537, 524285, 0, 65537, 524286, 0, 65537, 524287, 0, 65538, 458791, 0, 131072, 458792, 0, 131073, 458793, 0, 131073, 458794, 0, 4, 458795, 0, 5, 458796, 0, 65538, 589816, 0, 65541, 589817, 0, 65537, 589818, 0, 65537, 589819, 0, 65537, 589820, 0, 65537, 589821, 0, 65537, 589822, 0, 65537, 589823, 0, 65538, 524331, 0, 65541, 524332, 0, 65538, 655352, 0, 65536, 655353, 0, 65537, 655354, 0, 65537, 655355, 0, 65537, 655356, 0, 65537, 655357, 0, 65537, 655358, 0, 65537, 655359, 0, 65539, 589867, 0, 65541, 589868, 0, 65538, 720888, 0, 65541, 720889, 0, 65537, 720890, 0, 65537, 720891, 0, 65537, 720892, 0, 65537, 720893, 0, 65537, 720894, 0, 65537, 720895, 0, 131075, 655360, 0, 2, 655399, 0, 0, 655400, 0, 1, 655401, 0, 1, 655402, 0, 131076, 655403, 0, 131077, 655404, 0, 65539, 786424, 0, 65541, 786425, 0, 65537, 786426, 0, 65537, 786427, 0, 65537, 786428, 0, 65537, 786429, 0, 65537, 786430, 0, 65537, 786431, 0, 65537, 720896, 0, 131075, 720897, 0, 2, 720920, 0, 0, 720921, 0, 2, 720935, 0, 131072, 720936, 0, 131073, 720937, 0, 131073, 720938, 0, 4, 720939, 0, 4, 720940, 0, 131074, 851960, 0, 65536, 851961, 0, 65537, 851962, 0, 65537, 851963, 0, 65537, 851964, 0, 65537, 851965, 0, 65537, 851966, 0, 65537, 851967, 0, 65537, 786432, 0, 65537, 786433, 0, 131075, 786434, 0, 2, 786456, 0, 65541, 786457, 0, 65538, 786466, 0, 0, 786467, 0, 2, 917496, 0, 65541, 917497, 0, 65537, 917498, 0, 65537, 917499, 0, 65537, 917500, 0, 65537, 917501, 0, 65537, 917502, 0, 65537, 917503, 0, 65537, 851968, 0, 65537, 851969, 0, 65537, 851970, 0, 131075, 851971, 0, 2, 851987, 0, 0, 851988, 0, 2, 851992, 0, 65536, 851993, 0, 65539, 852002, 0, 65541, 852003, 0, 65539, 983032, 0, 65541, 983033, 0, 65537, 983034, 0, 65537, 983035, 0, 65537, 983036, 0, 65537, 983037, 0, 65537, 983038, 0, 65537, 983039, 0, 65537, 917504, 0, 65537, 917505, 0, 65537, 917506, 0, 65537, 917507, 0, 131075, 917508, 0, 1, 917509, 0, 131076, 917510, 0, 1, 917511, 0, 1, 917512, 0, 1, 917513, 0, 131076, 917514, 0, 131076, 917515, 0, 131076, 917516, 0, 131076, 917517, 0, 131076, 917518, 0, 1, 917519, 0, 131076, 917520, 0, 131076, 917521, 0, 1, 917522, 0, 1, 917523, 0, 131077, 917524, 0, 131075, 917525, 0, 1, 917526, 0, 131076, 917527, 0, 1, 917528, 0, 131077, 917529, 0, 131075, 917530, 0, 131076, 917531, 0, 1, 917532, 0, 1, 917533, 0, 131076, 917534, 0, 1, 917535, 0, 1, 917536, 0, 131076, 917537, 0, 131076, 917538, 0, 131077, 917539, 0, 131075, 917540, 0, 1, 917541, 0, 1, 917542, 0, 131076, 917543, 0, 1, 917544, 0, 1, 917545, 0, 1, 917546, 0, 1, 917547, 0, 1, 917548, 0, 2, 1048568, 0, 65536, 1048569, 0, 65537, 1048570, 0, 65537, 1048571, 0, 65537, 1048572, 0, 65537, 1048573, 0, 65537, 1048574, 0, 65537, 1048575, 0, 65537, 983040, 0, 65537, 983041, 0, 65537, 983042, 0, 65537, 983043, 0, 65537, 983044, 0, 65537, 983045, 0, 65537, 983046, 0, 65537, 983047, 0, 65537, 983048, 0, 65537, 983049, 0, 65537, 983050, 0, 65537, 983051, 0, 65537, 983052, 0, 65537, 983053, 0, 65537, 983054, 0, 65537, 983055, 0, 65537, 983056, 0, 65537, 983057, 0, 65537, 983058, 0, 65537, 983059, 0, 65537, 983060, 0, 65537, 983061, 0, 65537, 983062, 0, 65537, 983063, 0, 65537, 983064, 0, 65537, 983065, 0, 65537, 983066, 0, 65537, 983067, 0, 65537, 983068, 0, 65537, 983069, 0, 65537, 983070, 0, 65537, 983071, 0, 65537, 983072, 0, 65537, 983073, 0, 65537, 983074, 0, 65537, 983075, 0, 65537, 983076, 0, 65537, 983077, 0, 65537, 983078, 0, 65537, 983079, 0, 65537, 983080, 0, 65537, 983081, 0, 65537, 983082, 0, 65537, 983083, 0, 65537, 983084, 0, 65539, 1114104, 0, 131072, 1114105, 0, 131073, 1114106, 0, 131073, 1114107, 0, 131073, 1114108, 0, 131073, 1114109, 0, 131073, 1114110, 0, 131073, 1114111, 0, 4, 1048576, 0, 131073, 1048577, 0, 131073, 1048578, 0, 131073, 1048579, 0, 131073, 1048580, 0, 131073, 1048581, 0, 131073, 1048582, 0, 131073, 1048583, 0, 4, 1048584, 0, 131073, 1048585, 0, 131073, 1048586, 0, 131073, 1048587, 0, 4, 1048588, 0, 4, 1048589, 0, 131073, 1048590, 0, 4, 1048591, 0, 131073, 1048592, 0, 4, 1048593, 0, 4, 1048594, 0, 4, 1048595, 0, 131073, 1048596, 0, 131073, 1048597, 0, 131073, 1048598, 0, 131073, 1048599, 0, 4, 1048600, 0, 4, 1048601, 0, 131073, 1048602, 0, 4, 1048603, 0, 131073, 1048604, 0, 4, 1048605, 0, 131073, 1048606, 0, 131073, 1048607, 0, 4, 1048608, 0, 131073, 1048609, 0, 4, 1048610, 0, 131073, 1048611, 0, 4, 1048612, 0, 4, 1048613, 0, 131073, 1048614, 0, 131073, 1048615, 0, 4, 1048616, 0, 4, 1048617, 0, 131073, 1048618, 0, 4, 1048619, 0, 131073, 1048620, 0, 131074 ) + +[node name="WiseOldDude" parent="." instance=ExtResource( 8 )] +position = Vector2( 643, 161 ) + +[node name="CutsceneAreas" type="Node2D" parent="."] + +[node name="OldDudeIntroArea" type="Area2D" parent="CutsceneAreas"] +position = Vector2( 560, 182 ) +collision_layer = 0 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="CutsceneAreas/OldDudeIntroArea"] +position = Vector2( 0, -27 ) +shape = SubResource( 1 ) + +[node name="Player" parent="." instance=ExtResource( 3 )] +position = Vector2( 77, 218 ) +abilities = { +"attack": true, +"dash": true, +"light_beam": true, +"wall_jump": true +} +[connection signal="body_entered" from="CutsceneAreas/OldDudeIntroArea" to="." method="_on_OldDudeIntroArea_body_entered"] diff --git a/src/HUD/HUD.gd b/src/HUD/HUD.gd index 74768c5..a30f3ca 100644 --- a/src/HUD/HUD.gd +++ b/src/HUD/HUD.gd @@ -16,18 +16,24 @@ func _physics_process(delta: float) -> void: var fresh_data = GameState.get_run_data() for key in fresh_data: if not fresh_data[key] == _data_ref[key]: - print("[%s]: %s -> %s" % [str(key), str(_data_ref[key]), str(fresh_data[key])]) match(str(key)): "coins": $UI/CoinLabel.text = str(fresh_data.coins) - $UI/CoinLabel/AnimationPlayer.seek(0) - $UI/CoinLabel/AnimationPlayer.play("updated") + _play_update_label_animation($UI/CoinLabel/AnimationPlayer) "deaths": $UI/DeathsLabel.text = str(fresh_data.deaths) + _play_update_label_animation($UI/DeathsLabel/AnimationPlayer) + "time": + var time_remaining = (GameState.GAME_TIMEOUT_MIN * 60) - fresh_data.time + $UI/TimeLabel.text = Utils.parse_seconds_to_display_str(time_remaining) pass _data_ref = fresh_data +func _play_update_label_animation(player:AnimationPlayer): + player.seek(0) + player.play("updated") + func _handle_pause(): if Input.is_action_just_pressed("pause"): if _paused: diff --git a/src/HUD/HUD.tscn b/src/HUD/HUD.tscn index cef3a4f..dcfc0ed 100644 --- a/src/HUD/HUD.tscn +++ b/src/HUD/HUD.tscn @@ -1,10 +1,11 @@ -[gd_scene load_steps=7 format=2] +[gd_scene load_steps=9 format=2] [ext_resource path="res://src/HUD/HUD.gd" type="Script" id=1] [ext_resource path="res://src/Menu/PauseMenu.tscn" type="PackedScene" id=2] [ext_resource path="res://assets/Theme/Theme.tres" type="Theme" id=3] [ext_resource path="res://assets/HUD/coins_hud.png" type="Texture" id=4] [ext_resource path="res://assets/HUD/lifes_icon.png" type="Texture" id=5] +[ext_resource path="res://assets/HUD/time_hud.png" type="Texture" id=6] [sub_resource type="Animation" id=1] resource_name = "updated" @@ -22,6 +23,22 @@ tracks/0/keys = { "values": [ Vector2( 2, 2 ), Vector2( 1, 1 ) ] } +[sub_resource type="Animation" id=2] +resource_name = "updated" +length = 0.2 +tracks/0/type = "value" +tracks/0/path = NodePath(".:rect_scale") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.2 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Vector2( 2, 2 ), Vector2( 1, 1 ) ] +} + [node name="HUD" type="CanvasLayer"] script = ExtResource( 1 ) PauseMenu = ExtResource( 2 ) @@ -35,10 +52,11 @@ __meta__ = { [node name="Coin" type="TextureRect" parent="UI"] margin_left = 18.0 -margin_top = 13.0 -margin_right = 27.0 +margin_top = 8.0 +margin_right = 32.0 margin_bottom = 22.0 texture = ExtResource( 4 ) +expand = true __meta__ = { "_edit_use_anchors_": false } @@ -58,18 +76,18 @@ __meta__ = { anims/updated = SubResource( 1 ) [node name="Deaths" type="TextureRect" parent="UI"] -margin_left = 11.0 -margin_top = 22.0 -margin_right = 33.0 -margin_bottom = 44.0 +margin_left = 80.0 +margin_top = 4.0 +margin_right = 102.0 +margin_bottom = 26.0 texture = ExtResource( 5 ) expand = true [node name="DeathsLabel" type="Label" parent="UI"] -margin_left = 38.0 -margin_top = 30.0 -margin_right = 78.0 -margin_bottom = 44.0 +margin_left = 107.0 +margin_top = 13.0 +margin_right = 147.0 +margin_bottom = 27.0 theme = ExtResource( 3 ) text = "0" __meta__ = { @@ -77,3 +95,26 @@ __meta__ = { } [node name="AnimationPlayer" type="AnimationPlayer" parent="UI/DeathsLabel"] +anims/updated = SubResource( 2 ) + +[node name="Time" type="TextureRect" parent="UI"] +margin_left = 152.0 +margin_top = 8.0 +margin_right = 167.0 +margin_bottom = 23.0 +texture = ExtResource( 6 ) +expand = true +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="TimeLabel" type="Label" parent="UI"] +margin_left = 174.0 +margin_top = 13.0 +margin_right = 214.0 +margin_bottom = 27.0 +theme = ExtResource( 3 ) +text = "0" +__meta__ = { +"_edit_use_anchors_": false +} diff --git a/src/Menu/MainMenu.tscn b/src/Menu/MainMenu.tscn index e914348..a9b78ea 100644 --- a/src/Menu/MainMenu.tscn +++ b/src/Menu/MainMenu.tscn @@ -8,27 +8,27 @@ [ext_resource path="res://src/Menu/MainMenu.gd" type="Script" id=6] [ext_resource path="res://assets/Theme/menu_font.tres" type="DynamicFont" id=7] -[sub_resource type="Gradient" id=2] +[sub_resource type="Gradient" id=1] colors = PoolColorArray( 0.996094, 0.996094, 0.996094, 1, 1, 1, 1, 0 ) -[sub_resource type="GradientTexture" id=3] -gradient = SubResource( 2 ) +[sub_resource type="GradientTexture" id=2] +gradient = SubResource( 1 ) -[sub_resource type="Curve" id=7] +[sub_resource type="Curve" id=3] min_value = -200.0 max_value = 200.0 _data = [ Vector2( 0, 7.83957 ), 0.0, 166.434, 0, 0, Vector2( 1, 44.2032 ), -4.82953, 0.0, 0, 0 ] -[sub_resource type="CurveTexture" id=8] -curve = SubResource( 7 ) +[sub_resource type="CurveTexture" id=4] +curve = SubResource( 3 ) -[sub_resource type="Curve" id=4] +[sub_resource type="Curve" id=5] _data = [ Vector2( 0, 0.285227 ), 0.0, 0.0, 0, 0, Vector2( 1, 1 ), 0.0, 0.0, 0, 0 ] -[sub_resource type="CurveTexture" id=5] -curve = SubResource( 4 ) +[sub_resource type="CurveTexture" id=6] +curve = SubResource( 5 ) -[sub_resource type="ParticlesMaterial" id=6] +[sub_resource type="ParticlesMaterial" id=7] emission_shape = 2 emission_box_extents = Vector3( 10, 1, 1 ) flag_disable_z = true @@ -39,14 +39,13 @@ initial_velocity = 20.0 initial_velocity_random = 0.7 orbit_velocity = 0.0 orbit_velocity_random = 0.0 -linear_accel_curve = SubResource( 8 ) +linear_accel_curve = SubResource( 4 ) scale = 3.0 scale_random = 1.0 -scale_curve = SubResource( 5 ) -color_ramp = SubResource( 3 ) +scale_curve = SubResource( 6 ) +color_ramp = SubResource( 2 ) -[sub_resource type="Animation" id=1] -resource_name = "main" +[sub_resource type="Animation" id=8] length = 6.0 loop = true step = 1.0 @@ -160,7 +159,7 @@ amount = 50 lifetime = 2.5 speed_scale = 0.4 explosiveness = 0.1 -process_material = SubResource( 6 ) +process_material = SubResource( 7 ) [node name="Sprite3" type="Sprite" parent="Node2D"] light_mask = 4 @@ -170,7 +169,7 @@ centered = false [node name="AnimationPlayer" type="AnimationPlayer" parent="Node2D"] autoplay = "main" -anims/main = SubResource( 1 ) +anims/main = SubResource( 8 ) [node name="CanvasLayer" type="CanvasLayer" parent="."] diff --git a/src/Menu/PauseMenu.tscn b/src/Menu/PauseMenu.tscn index f09e86b..b8a885b 100644 --- a/src/Menu/PauseMenu.tscn +++ b/src/Menu/PauseMenu.tscn @@ -68,6 +68,7 @@ pause_mode = 2 script = ExtResource( 3 ) [node name="CanvasLayer" type="CanvasLayer" parent="."] +layer = 3 [node name="TextureRect" type="TextureRect" parent="CanvasLayer"] self_modulate = Color( 1, 1, 1, 0 ) diff --git a/src/Scripts/CutScene.gd b/src/Scripts/CutScene.gd new file mode 100644 index 0000000..b5033a1 --- /dev/null +++ b/src/Scripts/CutScene.gd @@ -0,0 +1,21 @@ +extends Node2D + +class_name CutScene + +signal cutscene_finished + +export var scene:PackedScene + +var _main_camera_ref:Camera2D +var _camera:Camera2D + + +func start_scene(camera:Camera2D): + var scene_inst = scene.instance() + add_child(scene_inst) + scene_inst.connect("tree_exited", self, "_on_scene_exited") + pass + +func end_scene(): + emit_signal("cutscene_finished") + queue_free() diff --git a/src/Singletons/GameState.gd b/src/Singletons/GameState.gd index a851290..bbc7901 100644 --- a/src/Singletons/GameState.gd +++ b/src/Singletons/GameState.gd @@ -8,7 +8,7 @@ enum States{ GAME, PUSE, STATS, - CUT_SCENE, + CUTSCENE, } var _SAVE_FILE_PATH = "user://data" # Change key in release @@ -16,9 +16,11 @@ var _ENCRYPTION_KEY = "fas3uyf076HJsiUDs24dfI9" var _SCENES := { States.MAIN_MENU: "res://src/Menu/MainMenu.tscn", - States.GAME: "res://src/Levels/LevelTemplate/LevelTemplate.tscn", + States.GAME: "res://src/GameWorld/GameWorld.tscn", } +var GAME_TIMEOUT_MIN = 10 + var _data := { "statistics": { "deaths": 0, @@ -51,6 +53,11 @@ var _state = States.INTRO func _ready() -> void: load_data() print(get_statistics()) + +func _physics_process(delta: float) -> void: + if _state == States.GAME: + _run_data.time += delta + _data.statistics.total_time_played += delta func load_data(): var data_file = File.new() @@ -77,13 +84,18 @@ func start_new_game(): _data.statistics.runs += 1 save_data() get_tree().change_scene_to(load(_SCENES[_state])) +func start_cutscene(): + _state = States.CUTSCENE +func end_cutscene(): + _state = States.GAME func get_heigh_score(): return _data.heigh_score.duplicate() func get_statistics(): return _data.statistics.duplicate() func get_run_data(): return _run_data.duplicate() - +func get_state(): + return int(_state) func go_to_main_menu(): _state = States.MAIN_MENU save_data() diff --git a/src/Singletons/Utils.gd b/src/Singletons/Utils.gd new file mode 100644 index 0000000..9fd1eb8 --- /dev/null +++ b/src/Singletons/Utils.gd @@ -0,0 +1,13 @@ +extends Node + +func parse_seconds_to_display_str(_seconds:float, show_hours:bool=false)->String: + var rounded_input = int(floor(_seconds)) + var hours_in_seconds = 3600 + var minute_in_seconds = 60 + + var hours = 0 + var minutes_seconds_str = "%02d:%02d" % [(rounded_input / minute_in_seconds) % 60, rounded_input % 60] + if show_hours: + return "%02d:%s" % [floor(rounded_input / hours_in_seconds), minutes_seconds_str] + return minutes_seconds_str +