From bf45bf404cf976756e0cbe9a12447b906beda3c2 Mon Sep 17 00:00:00 2001 From: Skip Date: Sat, 16 Jul 2022 18:09:42 -0400 Subject: [PATCH] Huge Update Changes abound on pretty much everything. --- Travesty/Fish/Fish.gd | 19 ++-- Travesty/Hazards/Fork.7z | Bin 0 -> 34141 bytes Travesty/Hazards/Fork/Fork.gd | 71 +++++++++------ Travesty/Hazards/Fork/Fork.tscn | 141 +++++++++++++++++++++++++++++- Travesty/Hazards/Poison/Poison.gd | 34 +++---- Travesty/Tank/Tank.gd | 1 - Travesty/Tank/Tank.tscn | 4 +- 7 files changed, 215 insertions(+), 55 deletions(-) create mode 100644 Travesty/Hazards/Fork.7z diff --git a/Travesty/Fish/Fish.gd b/Travesty/Fish/Fish.gd index faf1870..3e03964 100644 --- a/Travesty/Fish/Fish.gd +++ b/Travesty/Fish/Fish.gd @@ -7,19 +7,21 @@ var destination # The position the fish will move to _on_SwimTimer_timeout() 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 pellets = 0 # Tracks the number of poison pellets eaten but not shot yet -onready var mouth = $Positions/Mouth.position # Used for eating poison pellets -onready var mouth_inhale = $Positions/MouthInhale.position -onready var tail = $Positions/Booty +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 func _ready(): $SwimTimer.wait_time = swim_cooldown + func _on_SwimTimer_timeout() -> void: # Swim toward mouse destination = Vector2(move_toward(position.x, get_global_mouse_position().x, swim_length), move_toward(position.y, get_global_mouse_position().y, swim_length)) $Tween.interpolate_property(self, "position", position, destination, 1, Tween.TRANS_CUBIC, Tween.EASE_IN_OUT) $Tween.start() + _fire_pellet() func _process(delta: float) -> void: @@ -39,13 +41,16 @@ func _process(delta: float) -> void: func _fire_pellet() -> void: - if pellets > 0: + pellets = 1 # This is just hax so we don't have to eat pellets first to fire them + if pellets > 0: # But usually we require fish to eat pellets before he shoots them var poison_scene = load("res://Hazards/Poison/Poison.tscn") var poison = poison_scene.instance() - add_child(poison) - poison.position = position + poison.friendly = true # This will prevent the fish from auto-eating it the second it spawns + get_parent().add_child(poison) # We add this projectile to the /tank/ so they don't move with the fish + poison.position = get_global_position() # 'position' returns the local position, but we need where it's at in relation to the tank #poison.direction = position.angle_to_point(mouth) - poison.applied_force = Vector2(mouth.get_global_position(), tail.get_global_position()) + poison.applied_force = 50 * ($Positions/Mouth.get_global_position() - $Positions/Tail.get_global_position()) + pellets -= 1 func kill(cause: String) -> void: diff --git a/Travesty/Hazards/Fork.7z b/Travesty/Hazards/Fork.7z new file mode 100644 index 0000000000000000000000000000000000000000..c85164a7c1154bce28669f7b8674177bf38c5535 GIT binary patch literal 34141 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 void: +# _reposition() +# _rewind() +# print("rewinding") +# yield($AnimationPlayer, "animation_finished") +# print("rewound") +# $Timer.start() + pass + + +func _reposition() -> void: + var tween_duration = 0.5 + $Tween.interpolate_property(self, "position:x", position.x, rand_range(400, 2000), tween_duration, Tween.TRANS_BACK, Tween.EASE_IN_OUT) + $Tween.start() +# yield($Tween, "finished") + + +func _on_Timer_timeout() -> void: + _stab() + + +func _stab() -> void: + playingforwards = true + $AnimationPlayer.play("Stab") + + +func _rewind() -> void: + if playingforwards: + playingforwards = false + $AnimationPlayer.play_backwards("Stab") + #yield($AnimationPlayer, "animation_finished") + #_reposition() + + +#static func random_position(area: CollisionShape2D) -> Vector2: +# var _topleft : Vector2 = area.global_position - area.shape.extents +# var _botright : Vector2 = area.global_position + area.shape.extents +# var _x = rand_range(_topleft.x, _botright.x) +# var _y = rand_range(_topleft.y, _botright.y) +# return Vector2(_x, _y) diff --git a/Travesty/Hazards/Fork/Fork.tscn b/Travesty/Hazards/Fork/Fork.tscn index bb665cf..b148362 100644 --- a/Travesty/Hazards/Fork/Fork.tscn +++ b/Travesty/Hazards/Fork/Fork.tscn @@ -1,8 +1,132 @@ -[gd_scene load_steps=3 format=2] +[gd_scene load_steps=6 format=2] [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=1] +length = 0.001 +tracks/0/type = "value" +tracks/0/path = NodePath(".:position") +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": 0, +"values": [ Vector2( 550, 577 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:region_rect") +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": 0, +"values": [ Rect2( 0, 0, 300, 470 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("ForkAbove:region_enabled") +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": [ true ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("ForkAbove:region_rect") +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": [ Rect2( 200, 410, 300, 100 ) ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("Hitbox:position") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 0, 0 ) ] +} + +[sub_resource type="Animation" id=2] +resource_name = "Stab" +length = 2.5 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath(".:region_rect") +tracks/0/interp = 2 +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": [ Rect2( 0, -400, 300, 470 ), Rect2( 0, 0, 300, 470 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("ForkAbove:region_rect") +tracks/1/interp = 2 +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": [ Rect2( 200, 10, 300, 100 ), Rect2( 200, 410, 300, 100 ) ] +} +tracks/2/type = "method" +tracks/2/path = NodePath(".") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 1.5, 2 ), +"transitions": PoolRealArray( 1, 1 ), +"values": [ { +"args": [ ], +"method": "_rewind" +}, { +"args": [ ], +"method": "_reposition" +} ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("Hitbox:position") +tracks/3/interp = 2 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0, 0.5 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Vector2( 0, 0 ), Vector2( 0, -400 ) ] +} + +[sub_resource type="RectangleShape2D" id=3] +extents = Vector2( 22.25, 28.25 ) + [node name="Fork" type="Sprite"] position = Vector2( 550, 577 ) rotation = 3.14159 @@ -18,4 +142,19 @@ texture = ExtResource( 2 ) region_enabled = true region_rect = Rect2( 200, 410, 300, 100 ) +[node name="Timer" type="Timer" parent="."] +wait_time = 3.0 + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +anims/RESET = SubResource( 1 ) +anims/Stab = SubResource( 2 ) + +[node name="Hitbox" type="Area2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox"] +position = Vector2( 108.749, 205.75 ) +shape = SubResource( 3 ) + [node name="Tween" type="Tween" parent="."] + +[connection signal="timeout" from="Timer" to="." method="_on_Timer_timeout"] diff --git a/Travesty/Hazards/Poison/Poison.gd b/Travesty/Hazards/Poison/Poison.gd index 5581f6c..ff493c8 100644 --- a/Travesty/Hazards/Poison/Poison.gd +++ b/Travesty/Hazards/Poison/Poison.gd @@ -3,6 +3,7 @@ extends RigidBody2D export var poisoned_color : Color = Color(0,200,0,255) var fish : Node var direction +var friendly = false func _ready(): fish = get_node("/root/Tank/Fish") @@ -10,22 +11,23 @@ func _ready(): func _on_Hitbox_area_entered(area: Area2D) -> void: - if area.is_in_group("Fish") and fish.poisoned == false and not fish.poison_mutation: - print("A poison pellet has inflicted poison on the fish.") - fish.poisoned = true - visible = false - $Timer.start() - $TweenPoison.interpolate_property(area.get_parent(), "modulate", modulate, poisoned_color, 2.0, Tween.TRANS_LINEAR, Tween.EASE_IN) - $TweenPoison.start() - elif area.is_in_group("Fish") and fish.poison_mutation and fish.pellets < 10: - fish.pellets += 1 - #$TweenEat.interpolate_property(self, "position", position, get_node("/root/Tank/Fish/Positions/MouthInhale").get_global_position(), 0.5, Tween.TRANS_EXPO, Tween.EASE_IN, 0.5) - $TweenEat.interpolate_property(self, "position", position, get_node("/root/Tank/Fish/Positions/Mouth").get_global_position(), 0.5, Tween.TRANS_EXPO, Tween.EASE_IN) - $TweenEat.interpolate_property(self, "scale", scale, Vector2(0.1, 0.1), 0.5, Tween.TRANS_LINEAR, Tween.EASE_IN) - $TweenEat.start() - print(get_node("/root/Tank/Fish/Positions/Mouth").get_global_position()) - yield($TweenEat, "tween_completed") - queue_free() + if not friendly: + if area.is_in_group("Fish") and fish.poisoned == false and not fish.poison_mutation: + print("A poison pellet has inflicted poison on the fish.") + fish.poisoned = true + visible = false + $Timer.start() + $TweenPoison.interpolate_property(area.get_parent(), "modulate", modulate, poisoned_color, 2.0, Tween.TRANS_LINEAR, Tween.EASE_IN) + $TweenPoison.start() + elif area.is_in_group("Fish") and fish.poison_mutation and fish.pellets < 10: + fish.pellets += 1 + #$TweenEat.interpolate_property(self, "position", position, get_node("/root/Tank/Fish/Positions/MouthInhale").get_global_position(), 0.5, Tween.TRANS_EXPO, Tween.EASE_IN, 0.5) + $TweenEat.interpolate_property(self, "position", position, get_node("/root/Tank/Fish/Positions/Mouth").get_global_position(), 0.5, Tween.TRANS_EXPO, Tween.EASE_IN) + $TweenEat.interpolate_property(self, "scale", scale, Vector2(0.1, 0.1), 0.5, Tween.TRANS_LINEAR, Tween.EASE_IN) + $TweenEat.start() + print(get_node("/root/Tank/Fish/Positions/Mouth").get_global_position()) + yield($TweenEat, "tween_completed") + queue_free() static func choose(choices): diff --git a/Travesty/Tank/Tank.gd b/Travesty/Tank/Tank.gd index 9bf3985..57b89db 100644 --- a/Travesty/Tank/Tank.gd +++ b/Travesty/Tank/Tank.gd @@ -11,7 +11,6 @@ func _ready() -> void: static func random_position(area: CollisionShape2D) -> Vector2: - # Returns a random position found within the given CollisionShape2D. var _topleft : Vector2 = area.global_position - area.shape.extents var _botright : Vector2 = area.global_position + area.shape.extents var _x = rand_range(_topleft.x, _botright.x) diff --git a/Travesty/Tank/Tank.tscn b/Travesty/Tank/Tank.tscn index 2817993..7ce69ca 100644 --- a/Travesty/Tank/Tank.tscn +++ b/Travesty/Tank/Tank.tscn @@ -21,8 +21,6 @@ script = ExtResource( 2 ) position = Vector2( 960, 540 ) texture = ExtResource( 1 ) -[node name="Fork" parent="." instance=ExtResource( 3 )] - [node name="Edges" type="StaticBody2D" parent="." groups=["Tank"]] collision_layer = 4 collision_mask = 18 @@ -64,4 +62,6 @@ color = Color( 0.588235, 0.588235, 0.980392, 1 ) [node name="Fish" parent="." instance=ExtResource( 4 )] position = Vector2( 596, 543 ) +[node name="Fork" parent="." instance=ExtResource( 3 )] + [connection signal="timeout" from="HazardSpawner/HazardTimer" to="." method="_on_HazardTimer_timeout"]