Reworked player controller

This commit is contained in:
2025-11-09 22:30:22 +03:00
parent 213a0d60ed
commit 22aaeab0aa
23 changed files with 181 additions and 158 deletions
@@ -18,6 +18,8 @@ region = Rect2(32, 16, 16, 16)
radius = 2.0
[node name="CannonProjectile" instance=ExtResource("1_20qwt")]
collision_layer = 0
collision_mask = 0
script = ExtResource("2_x3axw")
damage = SubResource("Resource_bb01p")
speed = 600
@@ -18,6 +18,8 @@ region = Rect2(0, 0, 16, 16)
radius = 1.0
[node name="GatlingProjectile" instance=ExtResource("1_3tgt7")]
collision_layer = 0
collision_mask = 0
script = ExtResource("2_hbgoq")
damage = SubResource("Resource_ndegg")
speed = 600
@@ -16,6 +16,8 @@ size = Vector2(4, 4)
radius = 1.0
[node name="LaserProjectile" instance=ExtResource("1_3a8fg")]
collision_layer = 0
collision_mask = 0
script = ExtResource("2_je1a2")
damage = SubResource("Resource_bytws")
speed = 500
@@ -47,6 +47,8 @@ radius = 1.0
height = 6.0
[node name="LauncherProjectile" instance=ExtResource("1_0mcat")]
collision_layer = 0
collision_mask = 0
script = ExtResource("2_6hdsf")
damage = SubResource("Resource_kxgpk")
speed = 300
@@ -2,18 +2,9 @@ extends AbstractProjectile
@export var deceleration : int
@export var livetime : int
func _ready() -> void:
super._ready()
var livetime_timer := Timer.new()
add_child(livetime_timer)
livetime_timer.wait_time = livetime
livetime_timer.one_shot = true
livetime_timer.timeout.connect(queue_free)
livetime_timer.start()
@onready var livetime_timer := $LivetimeTimer
func _physics_process(delta: float) -> void:
@@ -27,3 +18,7 @@ func _process_acceleration(delta: float) -> void:
_velocity -= _velocity.normalized() * current_deceleration
else:
_velocity = Vector2.ZERO
func _on_livetime_timer_timeout() -> void:
queue_free()
@@ -18,9 +18,10 @@ region = Rect2(0, 16, 16, 16)
radius = 7.0
[node name="MinelayerProjectile" instance=ExtResource("1_ufc4r")]
collision_layer = 0
collision_mask = 0
script = ExtResource("2_hwwfa")
deceleration = 100
livetime = 60
damage = SubResource("Resource_px1i2")
speed = 200
@@ -29,3 +30,10 @@ texture = SubResource("AtlasTexture_ckqco")
[node name="CollisionShape2D" parent="." index="1"]
shape = SubResource("CircleShape2D_ufc4r")
[node name="LivetimeTimer" type="Timer" parent="." index="3"]
wait_time = 60.0
one_shot = true
autostart = true
[connection signal="timeout" from="LivetimeTimer" to="." method="_on_livetime_timer_timeout"]
@@ -10,13 +10,15 @@ value = 20
metadata/_custom_type_script = "uid://c27v705giygv4"
[sub_resource type="PlaceholderTexture2D" id="PlaceholderTexture2D_dlvdm"]
size = Vector2(4, 6)
size = Vector2(6, 4)
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_5enq5"]
radius = 1.0
height = 4.0
[node name="PlasmaProjectile" instance=ExtResource("1_x58hw")]
collision_layer = 0
collision_mask = 0
script = ExtResource("2_0deih")
damage = SubResource("Resource_5enq5")
speed = 450
@@ -23,6 +23,8 @@ radius = 1.0
height = 4.0
[node name="RailgunProjectile" instance=ExtResource("1_rfd1j")]
collision_layer = 0
collision_mask = 0
script = ExtResource("1_hycpq")
damage = SubResource("Resource_u82jm")
speed = 900
@@ -18,6 +18,8 @@ region = Rect2(48, 0, 16, 16)
radius = 1.0
[node name="ShrapnelProjectile" instance=ExtResource("1_yu2c6")]
collision_layer = 0
collision_mask = 0
script = ExtResource("2_2jiy6")
max_distance = 350
damage = SubResource("Resource_klguu")
@@ -16,6 +16,8 @@ size = Vector2(12, 12)
radius = 5.0
[node name="TeslaProjectile" instance=ExtResource("1_1oexk")]
collision_layer = 0
collision_mask = 0
script = ExtResource("2_q73is")
damage = SubResource("Resource_1121u")
speed = 900