From b1a736745c1513f9df17ef9be50ed9104d28e83a Mon Sep 17 00:00:00 2001 From: Haze Weathers Date: Tue, 23 May 2023 12:38:59 -0400 Subject: [PATCH] re-implement i-frames (closes #103) --- maps/boss/boss1_arena.tscn | 1 + objects/player/player_scholar.gd | 6 ++++-- objects/player/player_scholar.tscn | 7 +++++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/maps/boss/boss1_arena.tscn b/maps/boss/boss1_arena.tscn index 491c466..01aee7f 100644 --- a/maps/boss/boss1_arena.tscn +++ b/maps/boss/boss1_arena.tscn @@ -47,6 +47,7 @@ tile_data = PoolIntArray( -65537, 0, 0, -131072, 0, 0, -131071, 0, 0, -131070, 0 [node name="Player" parent="." instance=ExtResource( 2 )] position = Vector2( 48, 160 ) +use_iframes = true [node name="Ladder" type="TileMap" parent="."] tile_set = ExtResource( 14 ) diff --git a/objects/player/player_scholar.gd b/objects/player/player_scholar.gd index ffbc17f..f47bcfd 100644 --- a/objects/player/player_scholar.gd +++ b/objects/player/player_scholar.gd @@ -8,6 +8,8 @@ const ArrowProjectile = preload("res://objects/player/arrow_projectile.tscn") const DeathSplatter = preload("res://objects/player/player_death_particles.tscn") # EXPORTS # +## whether to be temporarily invulnerable after respawning +export var use_iframes: bool = false ## horizontal movement speed export var walk_speed: float = 50.0 ## frames until walk speed peak (at 60fps reference) @@ -26,8 +28,7 @@ export var jump_force: float = 150.0 export var jump_release_force: float = 0.25 ## impulse added when double jumping export var double_jump_force: float = 122.0 -## blinking time -export var blinking_time: float = 10.0 + # velocity var velocity: Vector2 = Vector2.ZERO @@ -63,6 +64,7 @@ func _ready() -> void: # set up state chart state_chart.initialize() state_chart.set_guard_property("can_respawn", true) + state_chart.set_guard_property("use_iframes", use_iframes) # state chart debug $StateDebugLayer/StateChartDebug.target = state_chart diff --git a/objects/player/player_scholar.tscn b/objects/player/player_scholar.tscn index 714f1c4..459c4c9 100644 --- a/objects/player/player_scholar.tscn +++ b/objects/player/player_scholar.tscn @@ -1128,9 +1128,16 @@ script = ExtResource( 11 ) [node name="Respawn" type="Node" parent="StateChart/Root/Health"] script = ExtResource( 11 ) +[node name="If Iframes" type="Node" parent="StateChart/Root/Health/Respawn"] +script = ExtResource( 10 ) +to = NodePath("../../Vulnerable") +delay = 0.5 +guard_expression = "use_iframes" + [node name="On Timeout" type="Node" parent="StateChart/Root/Health/Respawn"] script = ExtResource( 10 ) to = NodePath("../../Vulnerable") +guard_expression = "!use_iframes" [node name="Dead" type="Node" parent="StateChart/Root/Health"] script = ExtResource( 11 )