Added danger

This commit is contained in:
2026-06-30 19:27:46 +03:00
parent 20e297999b
commit ab159b899d
18 changed files with 216 additions and 5 deletions
+53
View File
@@ -0,0 +1,53 @@
@tool
class_name Danger
extends ColorRect
const DAMAGE_VALUE = 50.0
const COLLISION_OFFSET = Vector2(8, 8)
var _player : Player
@onready var damage_timer : Timer = $DamageTimer
@onready var collision : CollisionShape2D = $Area2D/CollisionShape2D
func _ready() -> void:
_setup_collision()
func _physics_process(_delta: float) -> void:
if Engine.is_editor_hint():
_setup_collision()
func _setup_collision() -> void:
collision.shape.size = size - COLLISION_OFFSET
collision.position = (size)/2
func _hit_player() -> bool:
if not _player: return false
SoundManager.play_sfx_stream(SoundManager.sfx_stream_danger, global_position)
_player.deal_damage(DAMAGE_VALUE)
return true
func _on_body_entered(body: Node2D) -> void:
if not body is Player: return
_player = body
_hit_player()
damage_timer.start()
func _on_body_exited(body: Node2D) -> void:
if not body is Player: return
damage_timer.stop()
_player = null
func _on_damage_timer_timeout() -> void:
if not _hit_player():
damage_timer.stop()
+1
View File
@@ -0,0 +1 @@
uid://bol2bemjm438o
+35
View File
@@ -0,0 +1,35 @@
[gd_scene format=3 uid="uid://dxqq07mde0b4a"]
[ext_resource type="Shader" uid="uid://c58hxwayyl757" path="res://game/shaders/danger.gdshader" id="1_3ra4u"]
[ext_resource type="Script" uid="uid://bol2bemjm438o" path="res://game/entities/danger/danger.gd" id="2_oh0ew"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_jttxq"]
shader = ExtResource("1_3ra4u")
shader_parameter/palette = PackedColorArray(0.36862746, 0.99215686, 0.5529412, 1, 0.23921569, 0.23137255, 0.37254903, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
shader_parameter/palette_size = 2
shader_parameter/chance = 0.3
shader_parameter/edge_width = 10.0
[sub_resource type="RectangleShape2D" id="RectangleShape2D_bhunq"]
resource_local_to_scene = true
size = Vector2(2, 2)
[node name="Danger" type="ColorRect" unique_id=554396375]
material = SubResource("ShaderMaterial_jttxq")
offset_right = 10.0
offset_bottom = 10.0
script = ExtResource("2_oh0ew")
[node name="Area2D" type="Area2D" parent="." unique_id=1925024065]
collision_layer = 4
collision_mask = 2
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D" unique_id=1370118603]
position = Vector2(5, 5)
shape = SubResource("RectangleShape2D_bhunq")
[node name="DamageTimer" type="Timer" parent="." unique_id=38832097]
[connection signal="body_entered" from="Area2D" to="." method="_on_body_entered"]
[connection signal="body_exited" from="Area2D" to="." method="_on_body_exited"]
[connection signal="timeout" from="DamageTimer" to="." method="_on_damage_timer_timeout"]