From 22d0f55d7b6950f2f0c8155b14362615660d241a Mon Sep 17 00:00:00 2001 From: Skip Date: Mon, 18 Jul 2022 02:42:00 -0400 Subject: [PATCH] Encounter Order Rework --- Travesty/Fish/Fish.gd | 32 +++++++++- Travesty/Fish/Fish.tscn | 19 +++--- Travesty/Hazards/Fork/FishFork.png | Bin 0 -> 8470 bytes Travesty/Hazards/Fork/FishFork.png.import | 34 +++++++++++ Travesty/Hazards/Fork/Fork.gd | 50 +++++++++------ Travesty/Hazards/Fork/Fork.tscn | 27 +++++--- Travesty/Hazards/Heater/Heater.gd | 66 ++++++++++++-------- Travesty/Hazards/Heater/Heater.tscn | 68 ++++++++++++++++----- Travesty/Hazards/Knife/Knife.tscn | 14 +++-- Travesty/Hazards/Piranha/Piranha.gd | 37 +++++++++-- Travesty/Hazards/Piranha/Piranha.tscn | 21 +++++-- Travesty/Hazards/Piranha/Sword.png | Bin 0 -> 4340 bytes Travesty/Hazards/Piranha/Sword.png.import | 34 +++++++++++ Travesty/Hazards/Poison/Poison.gd | 2 +- Travesty/Hazards/Poison/Poison.tscn | 4 +- Travesty/Hazards/Squid/Dead_Eye.png | Bin 0 -> 6891 bytes Travesty/Hazards/Squid/Dead_Eye.png.import | 34 +++++++++++ Travesty/Hazards/Squid/Squid.gd | 22 ++++++- Travesty/Hazards/Squid/Squid.tscn | 23 ++++--- Travesty/Tank/Tank.gd | 55 +++++++++++++---- Travesty/Tank/Tank.tscn | 38 +++++++++--- Travesty/Tank/Water_Surface.png | Bin 0 -> 28290 bytes Travesty/Tank/Water_Surface.png.import | 34 +++++++++++ Travesty/project.godot | 4 +- 24 files changed, 493 insertions(+), 125 deletions(-) create mode 100644 Travesty/Hazards/Fork/FishFork.png create mode 100644 Travesty/Hazards/Fork/FishFork.png.import create mode 100644 Travesty/Hazards/Piranha/Sword.png create mode 100644 Travesty/Hazards/Piranha/Sword.png.import create mode 100644 Travesty/Hazards/Squid/Dead_Eye.png create mode 100644 Travesty/Hazards/Squid/Dead_Eye.png.import create mode 100644 Travesty/Tank/Water_Surface.png create mode 100644 Travesty/Tank/Water_Surface.png.import diff --git a/Travesty/Fish/Fish.gd b/Travesty/Fish/Fish.gd index 258b910..f1abc98 100644 --- a/Travesty/Fish/Fish.gd +++ b/Travesty/Fish/Fish.gd @@ -2,12 +2,16 @@ extends KinematicBody2D export var swim_length = 150 export var swim_cooldown = 1 +var casual = false # True prevents restarting from beginning after dying var destination # The position the fish will move to _on_SwimTimer_timeout() var pellets_consumed = 0 # Tracks the number of clean pellets eaten var invincible = false # Used during cutscenes such as returning home, etc var poisoned = false # Used in Hazards/Poison/Poison.gd to determine if fish is dying of poison -var poison_mutation = true # True when fish can eat and shoot poison pellets +var poison_mutating = false # Used in poison mutation cutscene +var poison_mutation = false # True when fish can eat and shoot poison pellets +var dash_mutation = false var pellets = 0 # Tracks the number of poison pellets eaten but not shot yet +var do_not_rotate = false # Used in Fork.tscn cutscene to stop fish from auto-rotating onready var mouth = $Positions/Mouth.position # Used for eating and shooting poison pellets onready var mouth_inhale = $Positions/MouthInhale.position # Used for eating poison pellets onready var tail = $Positions/Tail.position # Used for shooting poison pellets @@ -32,10 +36,14 @@ func _on_SwimTimer_timeout() -> void: destination = Vector2(move_toward(position.x, get_global_mouse_position().x, swim_length), new_y) $TweenSwim.interpolate_property(self, "position", position, destination, 1, Tween.TRANS_CUBIC, Tween.EASE_IN_OUT) $TweenSwim.start() + else: + if poison_mutating: + destination.x = house_right_entrance.get_global_position().x + destination.y = house_right_entrance.get_global_position().y + 100 func _process(delta: float) -> void: - if destination: + if destination and not do_not_rotate: var v if invincible: # Smoothly rotate fish to face destination v = destination - global_position @@ -71,6 +79,24 @@ func fire_pellet() -> void: pellets -= 1 +func dash() -> void: + $SwimTimer.stop() + if invincible and get_parent().phase == get_parent().Phase.KNIFE and get_node_or_null("/root/Tank/Fork"): + get_node("/root/Tank/FishFork").visible = false + destination = Vector2(position.x - (swim_length*3.5), position.y) + invincible = false + if get_node_or_null("/root/Tank/Fork"): + get_node("/root/Tank/Fork").retract() + get_parent().get_node("SurviveTimer").start() + do_not_rotate = false + else: + var new_y = clamp(move_toward(position.y, get_global_mouse_position().y, swim_length*3), 110, 1040) + destination = Vector2(move_toward(position.x, get_global_mouse_position().x, swim_length*3), new_y) + $TweenSwim.interpolate_property(self, "position", position, destination, 1, Tween.TRANS_CUBIC, Tween.EASE_IN_OUT) + $TweenSwim.start() + $SwimTimer.start() + + func go_inside() -> void: invincible = true destination = house_left_entrance.get_global_position() @@ -102,6 +128,8 @@ func belly_up(_cause: String) -> void: print("You died on account of " + _cause + ". :(") # flip fish upside-down # modulate tank red + if not casual: + get_parent().phase = get_parent().Phase.START get_tree().reload_current_scene() diff --git a/Travesty/Fish/Fish.tscn b/Travesty/Fish/Fish.tscn index f9d1444..8cd144a 100644 --- a/Travesty/Fish/Fish.tscn +++ b/Travesty/Fish/Fish.tscn @@ -5,7 +5,7 @@ [ext_resource path="res://Fish/Fish2.png" type="Texture" id=3] [ext_resource path="res://Fish/Thasadith-BoldItalic.ttf" type="DynamicFontData" id=4] -[sub_resource type="SpriteFrames" id=3] +[sub_resource type="SpriteFrames" id=1] animations = [ { "frames": [ ExtResource( 1 ), ExtResource( 3 ) ], "loop": true, @@ -13,11 +13,11 @@ animations = [ { "speed": 2.0 } ] -[sub_resource type="CapsuleShape2D" id=1] +[sub_resource type="CapsuleShape2D" id=2] radius = 17.0 height = 88.0 -[sub_resource type="CapsuleShape2D" id=2] +[sub_resource type="CapsuleShape2D" id=3] radius = 21.0 height = 80.0 @@ -37,21 +37,24 @@ swim_length = 200 [node name="AnimatedSprite" type="AnimatedSprite" parent="."] position = Vector2( -12, -17 ) scale = Vector2( -0.5, 0.5 ) -frames = SubResource( 3 ) +frames = SubResource( 1 ) +frame = 1 playing = true [node name="CollisionShape2D" type="CollisionShape2D" parent="."] visible = false position = Vector2( -18, 3 ) rotation = 1.5708 -shape = SubResource( 1 ) +shape = SubResource( 2 ) -[node name="Hitbox" type="Area2D" parent="." groups=["Fish"]] +[node name="Hitbox" type="Area2D" parent="." groups=[ +"Fish", +]] [node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox"] position = Vector2( -8, 1 ) rotation = 1.5708 -shape = SubResource( 2 ) +shape = SubResource( 3 ) [node name="SwimTimer" type="Timer" parent="."] autostart = true @@ -86,9 +89,9 @@ margin_left = -137.0 margin_top = -200.0 margin_right = 138.0 margin_bottom = -80.0 +custom_fonts/normal_font = SubResource( 4 ) custom_colors/default_color = Color( 0.945098, 0.352941, 0.160784, 1 ) custom_constants/line_separation = -6 -custom_fonts/normal_font = SubResource( 4 ) bbcode_enabled = true bbcode_text = "[center]Wait, something's wrong with these flakes! [shake] Must... resist... eating...!" diff --git a/Travesty/Hazards/Fork/FishFork.png b/Travesty/Hazards/Fork/FishFork.png new file mode 100644 index 0000000000000000000000000000000000000000..65e9ab20f8c2ee80011dde9f5063a4ce9f41cc33 GIT binary patch literal 8470 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 void: -# $Timer.start() -# -# -#func _on_Timer_timeout() -> void: -# _reposition() -# yield($Tween, "tween_completed") -# _stab() -# yield($AnimationPlayer, "animation_finished") -# _retract() +func _process(delta: float) -> void: + if retracting: + position.y -= 1 + if position.y < -100: + var knife_scene = load("res://Hazards/Knife/Knife.tscn") + var knife = knife_scene.instance() + get_parent().add_child(knife) + fish.invincible = false + queue_free() - -func _reposition() -> void: - var tween_duration = 1 - $Tween.interpolate_property(self, "position:x", position.x, rand_range(400, 2000), tween_duration, Tween.TRANS_BACK, Tween.EASE_IN_OUT) - $Tween.start() +func _on_Timer_timeout() -> void: + fish.do_not_rotate = true + $TweenPrep.interpolate_property(fish, "position", fish.position.x, interception.x, 1, Tween.TRANS_BACK, Tween.EASE_IN, 0.5) + $TweenPrep.interpolate_property(self, "position:x", position.x, interception.x+230, 0.5, Tween.TRANS_BACK, Tween.EASE_IN) + $TweenPrep.start() + yield($TweenPrep, "tween_completed") +# $TweenStab.interpolate_property(self, "position:y", get_global_position().y, interception.y+530, 0.2, Tween.TRANS_CIRC, Tween.EASE_IN) +# $TweenStab.start() + $AnimationPlayer.play("Stab") + yield($AnimationPlayer, "animation_finished") + sticker.visible = true + get_parent()._think() + fish.dash_mutation = true func _stab() -> void: $AnimationPlayer.play("Stab") +# yield($AnimationPlayer, "animation_finished") + sticker.visible = true + print("Sticker's z_index = " + str(sticker.z_index)) -func _retract() -> void: +func retract() -> void: $AnimationPlayer.play_backwards("Stab") - + yield($AnimationPlayer, "animation_finished") + retracting = true + func destroy() -> void: queue_free() diff --git a/Travesty/Hazards/Fork/Fork.tscn b/Travesty/Hazards/Fork/Fork.tscn index b7635ea..3dbbcdb 100644 --- a/Travesty/Hazards/Fork/Fork.tscn +++ b/Travesty/Hazards/Fork/Fork.tscn @@ -3,7 +3,7 @@ [ext_resource path="res://Hazards/Fork/Fork.gd" type="Script" id=1] [ext_resource path="res://Hazards/Fork/Fork.png" type="Texture" id=2] -[sub_resource type="Animation" id=2] +[sub_resource type="Animation" id=1] resource_name = "Stab" length = 0.1 tracks/0/type = "value" @@ -54,13 +54,16 @@ tracks/3/keys = { "values": [ Vector2( 0, 0 ), Vector2( 0, -400 ) ] } -[sub_resource type="RectangleShape2D" id=3] +[sub_resource type="RectangleShape2D" id=2] extents = Vector2( 22.25, 28.25 ) -[node name="Fork" type="Sprite"] +[node name="Fork" type="Sprite" groups=[ +"Fork", +]] position = Vector2( 550, 570 ) rotation = 3.14159 scale = Vector2( 2, 2 ) +z_index = -1 texture = ExtResource( 2 ) region_enabled = true region_rect = Rect2( 0, -400, 300, 470 ) @@ -68,22 +71,28 @@ script = ExtResource( 1 ) [node name="ForkAbove" type="Sprite" parent="."] position = Vector2( 220.499, 278.001 ) +z_index = 1 texture = ExtResource( 2 ) region_enabled = true region_rect = Rect2( 200, 10, 300, 100 ) -[node name="Timer" type="Timer" parent="."] -wait_time = 1.75 +[node name="Delay" type="Timer" parent="."] +wait_time = 1.5 +one_shot = true +autostart = true [node name="AnimationPlayer" type="AnimationPlayer" parent="."] -anims/Stab = SubResource( 2 ) +anims/Stab = SubResource( 1 ) [node name="Hitbox" type="Area2D" parent="."] +visible = false [node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox"] position = Vector2( 108.749, 205.75 ) -shape = SubResource( 3 ) +shape = SubResource( 2 ) -[node name="Tween" type="Tween" parent="."] +[node name="TweenPrep" type="Tween" parent="."] -[connection signal="timeout" from="Timer" to="." method="_on_Timer_timeout"] +[node name="TweenStab" type="Tween" parent="."] + +[connection signal="timeout" from="Delay" to="." method="_on_Timer_timeout"] diff --git a/Travesty/Hazards/Heater/Heater.gd b/Travesty/Hazards/Heater/Heater.gd index a94b1ea..81d5f3d 100644 --- a/Travesty/Hazards/Heater/Heater.gd +++ b/Travesty/Hazards/Heater/Heater.gd @@ -1,34 +1,48 @@ extends Node2D +var hp = 5 +var immune = false +var immune_timer = 0 + -enum { TOP, MID, BOT } -var active_channel = TOP onready var fish = get_node("/root/Tank/Fish") func _ready(): - pass +# $Piranha.set_process(false) + $Wire/AnimatedSprite.frame = 0 + _spawn_piranha() #delete me later -func _on_Timer_timeout() -> void: - active_channel += 1 - - if active_channel == TOP: - var areas = $TopChannel.get_overlapping_areas() - for area in areas: - if area.is_in_group("Fish"): - var destination = $TopChannel/CollisionShape2D.position - $TopChannel/CollisionShape2D.extents - $TweenPush.interpolate_property(fish, "position:x", position.x, destination.x, 1.5, Tween.TRANS_CIRC, Tween.EASE_IN_OUT) - print("Pushing fish back!") - fish.get_node("TweenSwim").stop_all() - if active_channel == MID: - var areas = $MidChannel.get_overlapping_areas() - for area in areas: - if area.is_in_group("Fish"): - print("Pushing fish back!") - fish.get_node("TweenSwim").stop_all() - if active_channel == BOT: - var areas = $TopChannel.get_overlapping_areas() - for area in areas: - if area.is_in_group("Fish"): - print("Pushing fish back!") - fish.get_node("TweenSwim").stop_all() +func _on_Hitbox_area_entered(area): + if area.is_in_group("Fish") and $InvulnTimer.time_left == 0: + $AnimationPlayer.play("recoil") + hp -= 1 + if hp == 4: + $Wire/AnimatedSprite.frame = 0 + elif hp == 3: + _spawn_piranha() +# var piranha_scene = load("res://Hazards/Piranha/Piranha.tscn") +# var piranha = piranha_scene.instance() +# get_parent().add_child(piranha) +# piranha.position = Vector2(300, -300) + + elif hp > 0 and hp < 3: + $Wire/AnimatedSprite.frame = 1 + elif hp < 1: + $Wire/AnimatedSprite.frame = 2 + get_parent().blackout() + + +func _spawn_piranha(): + #$AnimationPlayer.play("drop") + #yield($AnimationPlayer, "animation_finished") + var piranha_scene = load("res://Hazards/Piranha/Piranha.tscn") + var piranha = piranha_scene.instance() +# piranha.set_process(false) + get_parent().add_child(piranha) + piranha.position = Vector2(300, -300) + $TweenDrop.interpolate_property(piranha, "position:y", piranha.get_global_position().y, 600, 0.5, Tween.TRANS_BACK, Tween.EASE_IN) + $TweenDrop.start() + yield($TweenDrop, "tween_completed") + print("dropped") +# piranha.set_process(true) diff --git a/Travesty/Hazards/Heater/Heater.tscn b/Travesty/Hazards/Heater/Heater.tscn index c2ccbe5..68d2b9f 100644 --- a/Travesty/Hazards/Heater/Heater.tscn +++ b/Travesty/Hazards/Heater/Heater.tscn @@ -1,11 +1,11 @@ -[gd_scene load_steps=7 format=2] +[gd_scene load_steps=9 format=2] [ext_resource path="res://Hazards/Heater/Heater2.png" type="Texture" id=1] [ext_resource path="res://Hazards/Heater/Heater3.png" type="Texture" id=2] [ext_resource path="res://Hazards/Heater/Heater1.png" type="Texture" id=3] [ext_resource path="res://Hazards/Heater/Heater.gd" type="Script" id=4] -[sub_resource type="SpriteFrames" id=1] +[sub_resource type="SpriteFrames" id=2] animations = [ { "frames": [ ExtResource( 3 ), ExtResource( 1 ), ExtResource( 2 ) ], "loop": true, @@ -13,28 +13,68 @@ animations = [ { "speed": 5.0 } ] -[sub_resource type="CapsuleShape2D" id=2] +[sub_resource type="CapsuleShape2D" id=1] radius = 81.0 height = 714.0 +[sub_resource type="Animation" id=4] +resource_name = "drop" +length = 0.5 + +[sub_resource type="Animation" id=3] +resource_name = "recoil" +length = 2.1 +tracks/0/type = "value" +tracks/0/path = NodePath("Wire:rotation_degrees") +tracks/0/interp = 2 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.3, 0.6, 0.9, 1, 1.1 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ 0.0, -11.0, 5.0, 0.0, -1.0, 0.0 ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("Wire/AnimatedSprite:modulate") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2.1 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ Color( 1, 1, 1, 1 ), Color( 1, 0, 0, 1 ), Color( 0, 0, 0, 1 ), Color( 1, 1, 1, 1 ), Color( 1, 0, 0, 1 ), Color( 0, 0, 0, 1 ), Color( 1, 1, 1, 1 ), Color( 1, 0, 0, 1 ), Color( 0, 0, 0, 1 ), Color( 1, 1, 1, 1 ), Color( 1, 0, 0, 1 ), Color( 0, 0, 0, 1 ), Color( 1, 1, 1, 1 ), Color( 1, 0, 0, 1 ), Color( 0, 0, 0, 1 ), Color( 1, 1, 1, 1 ), Color( 1, 0, 0, 1 ), Color( 0, 0, 0, 1 ), Color( 1, 1, 1, 1 ), Color( 1, 0, 0, 1 ), Color( 0, 0, 0, 1 ), Color( 1, 0.999998, 0.999998, 1 ) ] +} + [node name="Heater" type="Node2D"] +position = Vector2( 1665, 497 ) script = ExtResource( 4 ) -[node name="PivotPoint" type="Position2D" parent="."] -position = Vector2( 3, -494 ) +[node name="Wire" type="Position2D" parent="."] +position = Vector2( 4, -482 ) -[node name="Sprite" type="AnimatedSprite" parent="PivotPoint"] -position = Vector2( 0, 494 ) -frames = SubResource( 1 ) +[node name="AnimatedSprite" type="AnimatedSprite" parent="Wire"] +position = Vector2( -1, 482 ) +frames = SubResource( 2 ) -[node name="Hitbox" type="Area2D" parent="."] +[node name="Hitbox" type="Area2D" parent="Wire"] +position = Vector2( -4, 482 ) -[node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox"] +[node name="CollisionShape2D" type="CollisionShape2D" parent="Wire/Hitbox"] position = Vector2( 0, 29 ) -shape = SubResource( 2 ) +shape = SubResource( 1 ) -[node name="Timer" type="Timer" parent="."] +[node name="InvulnTimer" type="Timer" parent="."] +wait_time = 2.1 +one_shot = true -[node name="TweenPush" type="Tween" parent="."] +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +anims/drop = SubResource( 4 ) +anims/recoil = SubResource( 3 ) -[connection signal="timeout" from="Timer" to="." method="_on_Timer_timeout"] +[node name="TweenDrop" type="Tween" parent="."] + +[connection signal="area_entered" from="Wire/Hitbox" to="." method="_on_Hitbox_area_entered"] diff --git a/Travesty/Hazards/Knife/Knife.tscn b/Travesty/Hazards/Knife/Knife.tscn index 5602f37..d41837b 100644 --- a/Travesty/Hazards/Knife/Knife.tscn +++ b/Travesty/Hazards/Knife/Knife.tscn @@ -1,9 +1,9 @@ [gd_scene load_steps=5 format=2] [ext_resource path="res://Hazards/Knife/Knife.gd" type="Script" id=1] -[ext_resource path="res://Hazards/Fork/Fork.png" type="Texture" id=2] +[ext_resource path="res://Hazards/Knife/Knife.png" type="Texture" id=2] -[sub_resource type="Animation" id=2] +[sub_resource type="Animation" id=1] resource_name = "Stab" length = 0.1 tracks/0/type = "value" @@ -54,10 +54,12 @@ tracks/3/keys = { "values": [ Vector2( 0, 0 ), Vector2( 0, -400 ) ] } -[sub_resource type="RectangleShape2D" id=3] +[sub_resource type="RectangleShape2D" id=2] extents = Vector2( 22.25, 28.25 ) -[node name="Fork" type="Sprite"] +[node name="Fork" type="Sprite" groups=[ +"Knife", +]] position = Vector2( 550, 570 ) rotation = 3.14159 scale = Vector2( 2, 2 ) @@ -76,13 +78,13 @@ region_rect = Rect2( 200, 10, 300, 100 ) wait_time = 1.75 [node name="AnimationPlayer" type="AnimationPlayer" parent="."] -anims/Stab = SubResource( 2 ) +anims/Stab = SubResource( 1 ) [node name="Hitbox" type="Area2D" parent="."] [node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox"] position = Vector2( 108.749, 205.75 ) -shape = SubResource( 3 ) +shape = SubResource( 2 ) [node name="Tween" type="Tween" parent="."] diff --git a/Travesty/Hazards/Piranha/Piranha.gd b/Travesty/Hazards/Piranha/Piranha.gd index 342dc60..5788a1c 100644 --- a/Travesty/Hazards/Piranha/Piranha.gd +++ b/Travesty/Hazards/Piranha/Piranha.gd @@ -1,8 +1,11 @@ extends Node2D - +export var hp : int = 3 # Number of hits before dying onready var fish = get_node("/root/Tank/Fish") - +var moving = true +var dest_counter : int = 0 +var next_dest = 60 +var destination : Vector2 func _ready(): pass @@ -10,9 +13,33 @@ func _ready(): func _process(delta: float) -> void: $SwordPivot.rotation_degrees += 1 + if dest_counter >= next_dest: + destination = _select_destination() + next_dest = rand_range(60,1200) # second number lower = move more frequently + dest_counter = 0 + else: + dest_counter +=1 + if moving: + $TweenSwim.interpolate_property(self, "position", get_global_position(), destination, .175, Tween.TRANS_CUBIC, Tween.EASE_IN_OUT) #number lower = faster + $TweenSwim.start() + + +func _select_destination() -> Vector2: + var dest = Vector2(rand_range(200, 1500), rand_range(200, 880)) + return dest func _on_SwordHitbox_area_entered(area: Area2D) -> void: - pass # Replace with function body. -# if is_in_group("Fish"): -# fish.belly_up() + if area.is_in_group("Fish"): + fish.belly_up("Piranha") + + +func _on_Blindzone_area_entered(area: Area2D) -> void: + if area.is_in_group("Fish"): + moving = false + $TweenSwim.stop_all() + + +func _on_Blindzone_area_exited(area): + if area.is_in_group("Fish"): + moving = true diff --git a/Travesty/Hazards/Piranha/Piranha.tscn b/Travesty/Hazards/Piranha/Piranha.tscn index b4b403e..71fbbc8 100644 --- a/Travesty/Hazards/Piranha/Piranha.tscn +++ b/Travesty/Hazards/Piranha/Piranha.tscn @@ -1,13 +1,14 @@ -[gd_scene load_steps=7 format=2] +[gd_scene load_steps=8 format=2] [ext_resource path="res://Hazards/Piranha/Piranha2.png" type="Texture" id=1] [ext_resource path="res://Hazards/Piranha/Piranha1.png" type="Texture" id=2] [ext_resource path="res://Hazards/Piranha/Piranha.gd" type="Script" id=3] +[ext_resource path="res://Hazards/Piranha/Sword.png" type="Texture" id=4] -[sub_resource type="CapsuleShape2D" id=2] +[sub_resource type="CapsuleShape2D" id=1] height = 644.0 -[sub_resource type="SpriteFrames" id=1] +[sub_resource type="SpriteFrames" id=2] animations = [ { "frames": [ ExtResource( 2 ), ExtResource( 1 ) ], "loop": true, @@ -26,22 +27,28 @@ position = Vector2( 4, 1 ) rotation = 6.28319 [node name="Sword" type="Sprite" parent="SwordPivot"] +position = Vector2( 470, -0.0022583 ) +rotation = 1.5708 +scale = Vector2( 2, 2 ) +texture = ExtResource( 4 ) [node name="SwordHitbox" type="Area2D" parent="SwordPivot"] [node name="StandinArt" type="Polygon2D" parent="SwordPivot/SwordHitbox"] +visible = false position = Vector2( -212, 8.00004 ) polygon = PoolVector2Array( 458, -9, 467, -28, 524, -29, 523, -56, 546, -56, 547, -32, 781, -29, 906, -8, 782, 12, 549, 10, 550, 37, 526, 37, 524, 10, 466, 10 ) [node name="CollisionShape2D" type="CollisionShape2D" parent="SwordPivot/SwordHitbox"] position = Vector2( 344, -6.00815e-05 ) rotation = 1.5708 -shape = SubResource( 2 ) +shape = SubResource( 1 ) [node name="AnimatedSprite" type="AnimatedSprite" parent="."] position = Vector2( 67, -25 ) scale = Vector2( 0.5, 0.5 ) -frames = SubResource( 1 ) +frames = SubResource( 2 ) +frame = 1 playing = true [node name="Blindzone" type="Area2D" parent="."] @@ -50,4 +57,8 @@ playing = true position = Vector2( 2, 5 ) shape = SubResource( 3 ) +[node name="TweenSwim" type="Tween" parent="."] + [connection signal="area_entered" from="SwordPivot/SwordHitbox" to="." method="_on_SwordHitbox_area_entered"] +[connection signal="area_entered" from="Blindzone" to="." method="_on_Blindzone_area_entered"] +[connection signal="area_exited" from="Blindzone" to="." method="_on_Blindzone_area_exited"] diff --git a/Travesty/Hazards/Piranha/Sword.png b/Travesty/Hazards/Piranha/Sword.png new file mode 100644 index 0000000000000000000000000000000000000000..68575b5ac8b07f28b5fec182984d6d37276e0271 GIT binary patch literal 4340 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 void: $DissolveTimer.start() if not projectile and area.is_in_group("Fish") and not fish.invincible: - if fish.poisoned == false and not fish.poison_mutation: # Eat the pellet as poison + if fish.poisoned == false and not fish.poison_mutation and modulate != Color(1,1,1,1): # Eat the pellet as poison print("A poison pellet has inflicted poison on the fish.") fish.poisoned = true visible = false diff --git a/Travesty/Hazards/Poison/Poison.tscn b/Travesty/Hazards/Poison/Poison.tscn index bea4bcf..34ed3b0 100644 --- a/Travesty/Hazards/Poison/Poison.tscn +++ b/Travesty/Hazards/Poison/Poison.tscn @@ -20,7 +20,9 @@ extents = Vector2( 17.5, 19 ) [sub_resource type="RectangleShape2D" id=3] extents = Vector2( 28, 25 ) -[node name="Poison" type="RigidBody2D" groups=["Pellets"]] +[node name="Poison" type="RigidBody2D" groups=[ +"Pellets", +]] modulate = Color( 0, 0.862745, 0, 1 ) collision_layer = 16 collision_mask = 6 diff --git a/Travesty/Hazards/Squid/Dead_Eye.png b/Travesty/Hazards/Squid/Dead_Eye.png new file mode 100644 index 0000000000000000000000000000000000000000..2be5d9370e937e57a7ab6751a91d82c5186412f5 GIT binary patch literal 6891 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 q;EU=Q9pG}wq_a(bCwp(x3z%htTN2>U; void: - if area.is_in_group("Fish"): - area.kill() + if area.is_in_group("Projectile"): + hp -= 1 + if hp < 1: + _die() + + +func _die() -> void: + $DeadEye.visible = true + fish.blackout() func _on_Timer_timeout(): @@ -26,3 +39,8 @@ func _reposition() -> void: $Tween.interpolate_property($Tentacle, "position:y", $Tentacle.position.y, rand_range(0, 900), tween_duration, Tween.TRANS_BACK, Tween.EASE_IN_OUT) $Tween.start() yield($Tween, "tween_completed") + + +func _on_Hurtbox_area_entered(area: Area2D) -> void: + if area.is_in_group("Fish"): + fish.belly_up("a tentacle") diff --git a/Travesty/Hazards/Squid/Squid.tscn b/Travesty/Hazards/Squid/Squid.tscn index a1fda46..6b79c19 100644 --- a/Travesty/Hazards/Squid/Squid.tscn +++ b/Travesty/Hazards/Squid/Squid.tscn @@ -1,12 +1,12 @@ -[gd_scene load_steps=5 format=2] +[gd_scene load_steps=6 format=2] [ext_resource path="res://Hazards/Squid/Squid2.png" type="Texture" id=1] [ext_resource path="res://Hazards/Squid/Tentacle.png" type="Texture" id=2] [ext_resource path="res://Hazards/Squid/Squid.gd" type="Script" id=3] +[ext_resource path="res://Hazards/Squid/Dead_Eye.png" type="Texture" id=4] -[sub_resource type="Animation" id=2] +[sub_resource type="Animation" id=1] resource_name = "Stab" -length = 0.3 tracks/0/type = "value" tracks/0/path = NodePath("Tentacle:position:x") tracks/0/interp = 1 @@ -14,7 +14,7 @@ tracks/0/loop_wrap = true tracks/0/imported = false tracks/0/enabled = true tracks/0/keys = { -"times": PoolRealArray( 0, 0.3 ), +"times": PoolRealArray( 0, 1 ), "transitions": PoolRealArray( 1, 1 ), "update": 0, "values": [ -900.0, 0.0 ] @@ -28,11 +28,11 @@ position = Vector2( -900, 0 ) texture = ExtResource( 2 ) centered = false -[node name="Hitbox" type="Area2D" parent="Tentacle"] +[node name="Hurtbox" type="Area2D" parent="Tentacle"] visible = false position = Vector2( 900, 0 ) -[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Tentacle/Hitbox"] +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Tentacle/Hurtbox"] polygon = PoolVector2Array( 202, 11, 430, 2, 666, 10, 880, 40, 1008, 76, 1019, 100, 992, 121, 336, 163, 8, 200, 9, 34 ) [node name="Sprite" type="Sprite" parent="."] @@ -43,7 +43,7 @@ __meta__ = { } [node name="AnimationPlayer" type="AnimationPlayer" parent="."] -anims/Stab = SubResource( 2 ) +anims/Stab = SubResource( 1 ) [node name="Timer" type="Timer" parent="."] wait_time = 3.0 @@ -57,5 +57,12 @@ visible = false [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hitbox"] polygon = PoolVector2Array( 131, 9, 234, 56, 364, 67, 413, 149, 592, 41, 699, 37, 779, 65, 835, 93, 863, 144, 701, 177, 731, 252, 746, 331, 731, 405, 684, 477, 801, 528, 846, 694, 917, 775, 979, 770, 1207, 512, 1280, 498, 1285, 518, 1191, 596, 1123, 773, 1079, 832, 1231, 815, 1355, 875, 1415, 973, 1407, 1022, 1321, 943, 1120, 926, 903, 961, 1031, 1045, 1052, 1078, -1, 1081, 4, 179, 70, 30 ) -[connection signal="area_entered" from="Tentacle/Hitbox" to="." method="_on_Hitbox_area_entered"] +[node name="DeadEye" type="Sprite" parent="."] +visible = false +position = Vector2( 466, 741 ) +texture = ExtResource( 4 ) + +[node name="TweenSpawn" type="Tween" parent="."] + +[connection signal="area_entered" from="Tentacle/Hurtbox" to="." method="_on_Hurtbox_area_entered"] [connection signal="timeout" from="Timer" to="." method="_on_Timer_timeout"] diff --git a/Travesty/Tank/Tank.gd b/Travesty/Tank/Tank.gd index a854703..d3c4ac4 100644 --- a/Travesty/Tank/Tank.gd +++ b/Travesty/Tank/Tank.gd @@ -3,7 +3,7 @@ extends Node2D #enum { PLAYING, GOING_IN, INSIDE, COMING_OUT} #var status = PLAYING -enum Phase { START, CLEAN, POISON, KNIFE, SQUID, HEATER, ANGLER, NEXT } +enum Phase { START, CLEAN, KNIFE, HEATER, POISON, SQUID, ANGLER, NEXT } var phase = Phase.START @@ -14,8 +14,13 @@ func _ready() -> void: func _input(event: InputEvent) -> void: +# if event.is_action_pressed("skip"): +# blackout() #glitchy af, don't use unless I refactor code entirely if event is InputEventMouseButton and event.button_index == BUTTON_LEFT and event.pressed: - $Fish.fire_pellet() # Fire a pellet if appropriate and able + if $Fish.dash_mutation: + $Fish.dash() + elif $Fish.poison_mutation: + $Fish.fire_pellet() # Fire a pellet if appropriate and able static func random_position(area: CollisionShape2D) -> Vector2: @@ -47,17 +52,30 @@ func blackout() -> void: next_phase() $House/HouseEyes.visible = false $House/HouseRight.z_index = $House/HouseLeft.z_index - print(phase) - if phase == Phase.POISON: - $SurviveTimer.start() - if phase == Phase.KNIFE: - var fork_scene = load("res://Hazards/Fork/Fork.tscn") - var fork = fork_scene.instance() - add_child(fork) if phase == Phase.SQUID: var squid_scene = load("res://Hazards/Squid/Squid.tscn") var squid = squid_scene.instance() add_child(squid) + var poison_scene = load("res://Hazards/Poison/Poison.tscn") + var poison = poison_scene.instance() + add_child(poison) + poison.position = $House/RightEntrance.get_global_position() + $Fish.poison_mutating = true + $Fish.poison_mutation = true + if phase == Phase.POISON: + $SurviveTimer.start() + if phase == Phase.HEATER: + for knife in get_tree().get_nodes_in_group("Knife"): + knife.queue_free() + for fork in get_tree().get_nodes_in_group("Fork"): + fork.queue_free() + var heater_scene = load("res://Hazards/Heater/Heater.tscn") + var heater = heater_scene.instance() + add_child(heater) + if phase == Phase.KNIFE: + var fork_scene = load("res://Hazards/Fork/Fork.tscn") + var fork = fork_scene.instance() + add_child(fork) if not phase == Phase.CLEAN: $Fish.position = $House/RightEntrance.get_global_position() + Vector2(0,-100) $Fish.global_rotation_degrees = 180 @@ -69,7 +87,10 @@ func blackout() -> void: $TweenBlackout.interpolate_property(self, "modulate", modulate, Color(1,1,1,1), 2, Tween.TRANS_LINEAR, Tween.EASE_IN) $TweenBlackout.start() yield($TweenBlackout, "tween_completed") - $Fish.invincible = false + + if not phase == Phase.KNIFE: + $Fish.invincible = false + _think() @@ -93,11 +114,21 @@ func _think() -> void: thought.bbcode_text = \ "\n[center][tornado]ooOOoo! " + \ "Does it really rain yummy treats in here? :D" - if phase == Phase.POISON: + elif phase == Phase.POISON: $Fish/ThoughtBubble.visible = true thought.bbcode_text = \ - "[center]Wait, something's wrong with these flakes!\n" + \ + "\n[center]Wait, something's wrong with these flakes!\n" + \ "[shake]Must... resist... eating...!" + elif phase == Phase.KNIFE: + $Fish/ThoughtBubble.visible = true + thought.bbcode_text = \ + "[center]WTF?! That was close!! Let's turn this tragedy into " + \ + "a travesty!\n([rainbow]DASH[/rainbow] unlocked!)" + elif phase == Phase.SQUID: + $Fish/ThoughtBubble.visible = true + thought.bbcode_text = \ + "[center]HOLY...! Wait a minute; I've got an idea!\n" + \ + "([rainbow]TAIL CANNON[/rainbow] unlocked!)" # Tween the $Thought.bbcode_text's percent_visible property diff --git a/Travesty/Tank/Tank.tscn b/Travesty/Tank/Tank.tscn index bf4ec70..b35209e 100644 --- a/Travesty/Tank/Tank.tscn +++ b/Travesty/Tank/Tank.tscn @@ -1,13 +1,15 @@ -[gd_scene load_steps=13 format=2] +[gd_scene load_steps=15 format=2] [ext_resource path="res://Tank/Water.png" type="Texture" id=1] [ext_resource path="res://Tank/Tank.gd" type="Script" id=2] +[ext_resource path="res://Tank/Water_Surface.png" type="Texture" id=3] [ext_resource path="res://Fish/Fish.tscn" type="PackedScene" id=4] [ext_resource path="res://Tank/Gravel.png" type="Texture" id=5] [ext_resource path="res://Tank/Travis.png" type="Texture" id=6] [ext_resource path="res://Tank/House_Left_B.png" type="Texture" id=7] [ext_resource path="res://Tank/House_Eyes.png" type="Texture" id=8] [ext_resource path="res://Tank/House_Right_B.png" type="Texture" id=9] +[ext_resource path="res://Hazards/Fork/FishFork.png" type="Texture" id=10] [sub_resource type="RectangleShape2D" id=1] extents = Vector2( 20, 540 ) @@ -44,8 +46,13 @@ centered = false margin_right = 1920.0 margin_bottom = 100.0 color = Color( 0.588235, 0.588235, 0.980392, 1 ) +__meta__ = { +"_edit_use_anchors_": false +} -[node name="Edges" type="StaticBody2D" parent="." groups=["Tank"]] +[node name="Edges" type="StaticBody2D" parent="." groups=[ +"Tank", +]] visible = false collision_layer = 4 collision_mask = 18 @@ -74,20 +81,32 @@ autostart = true collision_layer = 8 collision_mask = 2 +[node name="TankTop" type="Sprite" parent="Surface"] +texture = ExtResource( 3 ) +centered = false + [node name="WaterSurface" type="CollisionShape2D" parent="Surface"] position = Vector2( 960, 88 ) shape = SubResource( 2 ) -[node name="ColorRect" type="ColorRect" parent="Surface"] -margin_top = 95.0 +[node name="TankTopRim" type="Node2D" parent="Surface"] +z_index = 5 + +[node name="ColorRect" type="ColorRect" parent="Surface/TankTopRim"] +margin_top = 86.0 margin_right = 1920.0 -margin_bottom = 115.0 -color = Color( 0.588235, 0.588235, 0.980392, 1 ) +margin_bottom = 124.0 +color = Color( 0, 0, 0, 1 ) +__meta__ = { +"_edit_use_anchors_": false +} [node name="Fish" parent="." instance=ExtResource( 4 )] position = Vector2( 617, 494 ) -[node name="TankFloor" type="Area2D" parent="." groups=["TankFloor"]] +[node name="TankFloor" type="Area2D" parent="." groups=[ +"TankFloor", +]] visible = false position = Vector2( 960, 1070 ) @@ -132,5 +151,10 @@ position = Vector2( 160, 245 ) wait_time = 10.0 one_shot = true +[node name="FishFork" type="Sprite" parent="."] +visible = false +position = Vector2( 1049, 867 ) +texture = ExtResource( 10 ) + [connection signal="timeout" from="HazardSpawner/HazardTimer" to="." method="_on_HazardTimer_timeout"] [connection signal="timeout" from="SurviveTimer" to="." method="_on_SurviveTimer_timeout"] diff --git a/Travesty/Tank/Water_Surface.png b/Travesty/Tank/Water_Surface.png new file mode 100644 index 0000000000000000000000000000000000000000..f5f1bd26ccc7a8b1c7a288c3ae1f0253027f2390 GIT binary patch literal 28290 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 literal 0 HcmV?d00001 diff --git a/Travesty/Tank/Water_Surface.png.import b/Travesty/Tank/Water_Surface.png.import new file mode 100644 index 0000000..1b081c6 --- /dev/null +++ b/Travesty/Tank/Water_Surface.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Water_Surface.png-d0c80c67a87f4c20c76ff21635cdc9c4.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Tank/Water_Surface.png" +dest_files=[ "res://.import/Water_Surface.png-d0c80c67a87f4c20c76ff21635cdc9c4.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=true +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/Travesty/project.godot b/Travesty/project.godot index a044d12..35cb097 100644 --- a/Travesty/project.godot +++ b/Travesty/project.godot @@ -24,9 +24,9 @@ window/stretch/aspect="keep" [input] -dash={ +skip={ "deadzone": 0.5, -"events": [ Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"button_mask":0,"position":Vector2( 0, 0 ),"global_position":Vector2( 0, 0 ),"factor":1.0,"button_index":1,"pressed":false,"doubleclick":false,"script":null) +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":90,"unicode":0,"echo":false,"script":null) ] }