Alternative way to place tovers and enemies

This commit is contained in:
2025-04-30 21:29:28 +02:00
parent fee9cb99cf
commit 9859ddfe87
6 changed files with 110 additions and 9 deletions

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=9 format=3 uid="uid://ctbmgsp8dfel3"]
[gd_scene load_steps=10 format=3 uid="uid://ctbmgsp8dfel3"]
[ext_resource type="Script" uid="uid://3gn70ilm20tw" path="res://Game/Traps/traps.gd" id="1_6fgim"]
[ext_resource type="Texture2D" uid="uid://dn22pudsmyrrg" path="res://Assets/Traps/Mine/49.png" id="2_6m2fs"]
@ -36,6 +36,8 @@ animations = [{
[sub_resource type="CircleShape2D" id="CircleShape2D_uiyu1"]
[sub_resource type="CircleShape2D" id="CircleShape2D_57sxm"]
[node name="Mine" type="Node2D"]
script = ExtResource("1_6fgim")
@ -56,3 +58,9 @@ autoplay = "idle"
[node name="CollisionShape2D" type="CollisionShape2D" parent="CharacterBody2D/Area2D"]
scale = Vector2(6, 6)
shape = SubResource("CircleShape2D_uiyu1")
[node name="Area2D" type="Area2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
shape = SubResource("CircleShape2D_57sxm")
debug_color = Color(0.811824, 0.00210331, 0.983083, 0.42)

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=5 format=3 uid="uid://pqy8rrvjthgl"]
[gd_scene load_steps=6 format=3 uid="uid://pqy8rrvjthgl"]
[ext_resource type="Texture2D" uid="uid://4bah0c8unbl8" path="res://Assets/Traps/Sticks/Tile2_59.png" id="1_dnq4b"]
[ext_resource type="Script" uid="uid://3gn70ilm20tw" path="res://Game/Traps/traps.gd" id="1_metvu"]
@ -7,6 +7,9 @@
[sub_resource type="CircleShape2D" id="CircleShape2D_m1bdk"]
radius = 32.0
[sub_resource type="RectangleShape2D" id="RectangleShape2D_metvu"]
size = Vector2(49.5, 18)
[node name="StickTrap" type="Node2D"]
script = ExtResource("1_metvu")
@ -28,3 +31,10 @@ offset = Vector2(-10, 0)
position = Vector2(5, 0)
scale = Vector2(0.8, 0.8)
shape = SubResource("CircleShape2D_m1bdk")
[node name="Area2D" type="Area2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
position = Vector2(4.25, 11)
shape = SubResource("RectangleShape2D_metvu")
debug_color = Color(0.811824, 0.00210331, 0.983083, 0.42)

View File

@ -16,6 +16,18 @@ func _ready() -> void:
func _process(delta: float) -> void:
if follower:
position = get_viewport().get_mouse_position()
if name.contains("Mine"):
if get_node("Area2D").get_overlapping_bodies().size() > 1 or self.get_node("CharacterBody2D") not in get_parent().get_node("TrapArea").get_overlapping_bodies():
get_node("CharacterBody2D/AnimatedSprite2D").modulate = Color(255, 0, 0, 0.3)
else:
get_node("CharacterBody2D/AnimatedSprite2D").modulate = Color(1, 1, 1, 1)
if name.contains("StickTrap") or name.contains("Wall"):
if get_node("Area2D").get_overlapping_bodies().size() > 1 or self.get_node("CharacterBody2D") not in get_parent().get_node("TrapArea").get_overlapping_bodies():
get_node("CharacterBody2D/Sprite2D").modulate = Color(255, 0, 0, 0.3)
get_node("CharacterBody2D/Sprite2D2").modulate = Color(255, 0, 0, 0.3)
else:
get_node("CharacterBody2D/Sprite2D").modulate = Color(1, 1, 1, 1)
get_node("CharacterBody2D/Sprite2D2").modulate = Color(1, 1, 1, 1)
func get_if_moving_state():
return follower
@ -23,7 +35,8 @@ func get_if_moving_state():
func _input(event):
if event is InputEventMouseButton and event.button_index == MOUSE_BUTTON_LEFT and event.pressed:
if abs(position) <= get_viewport().get_mouse_position():
follower = false
if get_node("Area2D").get_overlapping_bodies().size() <= 1 and self.get_node("CharacterBody2D") in get_parent().get_node("TrapArea").get_overlapping_bodies():
follower = false
func Explode_Mine() -> void:
get_node("CharacterBody2D/AnimatedSprite2D").scale = Vector2(1,1)

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=8 format=3 uid="uid://cc5j50rtwlfld"]
[gd_scene load_steps=9 format=3 uid="uid://cc5j50rtwlfld"]
[ext_resource type="Script" uid="uid://3gn70ilm20tw" path="res://Game/Traps/traps.gd" id="1_3ht3o"]
[ext_resource type="Texture2D" uid="uid://ri5c5u8gbjde" path="res://Assets/Traps/Wall/Tile2_49.png" id="1_y07rg"]
@ -24,6 +24,9 @@ corner_radius_bottom_left = 20
[sub_resource type="RectangleShape2D" id="RectangleShape2D_3ht3o"]
size = Vector2(38, 59)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_xk2lx"]
size = Vector2(20, 59)
[node name="Wall" type="Node2D"]
script = ExtResource("1_3ht3o")
@ -40,7 +43,7 @@ position = Vector2(2.38419e-07, -0.999999)
scale = Vector2(0.8, 0.8)
shape = SubResource("RectangleShape2D_bxxpj")
[node name="Tile257" type="Sprite2D" parent="CharacterBody2D"]
[node name="Sprite2D" type="Sprite2D" parent="CharacterBody2D"]
position = Vector2(3, 13)
scale = Vector2(1, 0.923)
texture = ExtResource("2_3ht3o")
@ -65,6 +68,13 @@ shape = SubResource("RectangleShape2D_3ht3o")
[node name="Timer" type="Timer" parent="CharacterBody2D"]
wait_time = 0.3
[node name="Area2D" type="Area2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
position = Vector2(0, -1.5)
shape = SubResource("RectangleShape2D_xk2lx")
debug_color = Color(0.811824, 0.00210331, 0.983083, 0.42)
[connection signal="body_shape_entered" from="CharacterBody2D/Area2D" to="." method="_on_area_2d_body_shape_entered"]
[connection signal="body_shape_exited" from="CharacterBody2D/Area2D" to="." method="_on_area_2d_body_shape_exited"]
[connection signal="timeout" from="CharacterBody2D/Timer" to="." method="_on_timer_timeout"]