diff --git a/main.tscn b/main.tscn index b28bcd2..18115bd 100644 --- a/main.tscn +++ b/main.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=18 format=3 uid="uid://cxo6bq26huau7"] +[gd_scene load_steps=16 format=3 uid="uid://cxo6bq26huau7"] [ext_resource type="PackedScene" uid="uid://cmaovvr15b3qk" path="res://player/player.tscn" id="2_1bvp3"] [ext_resource type="Texture2D" uid="uid://d3fpq76anm4t7" path="res://world/Background Prototype/Background prototype.png" id="3_kek77"] @@ -15,8 +15,6 @@ [ext_resource type="PackedScene" uid="uid://cqn67nwyrtq3k" path="res://ui/journal/journal.tscn" id="10_w48qg"] [ext_resource type="PackedScene" uid="uid://cpe4s6vsn0ujd" path="res://enemies/boss/boss.tscn" id="11_efxa6"] [ext_resource type="Script" uid="uid://gul4u5tw1vxk" path="res://bg_image.gd" id="13_vivmo"] -[ext_resource type="PackedScene" uid="uid://bwtdls58ajair" path="res://items/unique_items/upslash/upslash.tscn" id="16_yaehf"] -[ext_resource type="PackedScene" uid="uid://bbpf28ohayd8n" path="res://items/unique_items/backslash/backslash.tscn" id="17_074og"] [node name="main" type="Node2D"] @@ -106,12 +104,6 @@ colors = Array[Color]([Color(0, 0.6441987, 0.6693053, 1), Color(0.90588236, 0.15 script = ExtResource("10_efxa6") boss = ExtResource("11_efxa6") -[node name="Upslash" parent="." instance=ExtResource("16_yaehf")] -position = Vector2(264, -3143) - -[node name="Backslash" parent="." instance=ExtResource("17_074og")] -position = Vector2(-48, -3137) - [connection signal="active_item_changed" from="Player" to="UIOverlay/ItemUI" method="_on_player_active_item_changed"] [connection signal="health_changed" from="Player" to="UIOverlay/Healthbar" method="_on_player_health_changed"] [connection signal="max_hp_changed" from="Player" to="UIOverlay/Healthbar" method="_on_player_max_hp_changed"] diff --git a/traps/bear_trap.gd b/traps/bear_trap.gd index 50973e8..c72ff75 100644 --- a/traps/bear_trap.gd +++ b/traps/bear_trap.gd @@ -6,25 +6,23 @@ extends Trap var closed = false func damage_target(target: CollisionObject2D): + # Checks whether the player or an enemy has been hit if(target.get_collision_layer_value(3)): target.hurt(player_damage, Vector2.ZERO) else: target.hurt(enemy_damage, Vector2.ZERO) - +# Bear Traps are static, hence it is sufficient to check for others entering the trap func _on_area_2d_area_entered(area: Area2D) -> void: - if not closed: - damage_target(area) - closed = true - $AnimatedSprite2D.play("close") - await $AnimatedSprite2D.animation_finished - await get_tree().create_timer(0.1).timeout - queue_free() - + close_on(area) func _on_area_2d_body_entered(body: Node2D) -> void: + close_on(body) + +# Play the animation and assign the damage +func close_on(target): if not closed: - damage_target(body) + damage_target(target) closed = true $AnimatedSprite2D.play("close") await $AnimatedSprite2D.animation_finished diff --git a/traps/morning_star.gd b/traps/morning_star.gd index 5551208..43a7e24 100644 --- a/traps/morning_star.gd +++ b/traps/morning_star.gd @@ -1,34 +1,28 @@ extends Trap @onready var ball : Area2D = $Area2D -var anglespeed = 0.3 +var angular_speed = 0.3 var player_damage = 1 var enemy_damage = 10 @onready var dmg_id = Global.next_dmg_id var id_refreshing = false func _ready() -> void: + # Randomize starting position and rotation direction rotate(randf() * TAU) - anglespeed = anglespeed * (2 * randi_range(0,1) - 1) + angular_speed = angular_speed * (2 * randi_range(0,1) - 1) func _process(delta: float) -> void: - rotate(anglespeed * delta * TAU) + rotate(angular_speed * delta * TAU) for target in ball.get_overlapping_areas(): damage_target(target) - + for target in ball.get_overlapping_bodies(): damage_target(target) func damage_target(target: CollisionObject2D): + # Targets are knocked away from the ball var dir = (ball.global_position - target.global_position).normalized() if(target.get_collision_layer_value(3)): target.hurt(player_damage, dir) else: target.hurt(enemy_damage, 2.5*dir, dmg_id) - refresh_id() - -func refresh_id(): - if not id_refreshing: - id_refreshing = true - await get_tree().create_timer(0.2).timeout - id_refreshing = false - dmg_id = Global.next_dmg_id