A little cleanup

This commit is contained in:
2ndbeam 2024-05-19 23:33:24 +03:00
commit bedeee894a
15 changed files with 21 additions and 124 deletions

View file

@ -0,0 +1,44 @@
extends Node2D
class_name Projectile
@export var speed : float = 300
@export var rotation_speed : float = 0
@export var damage : float = 1
@export var collider : Area2D
@export var lifetime : float = 10
var faction: Game.Faction = Game.Faction.None
var destination_angle : float
var target : Node2D = self
func _ready():
get_tree().create_timer(lifetime).timeout.connect(queue_free)
collider.body_entered.connect(_on_collision)
func _physics_process(delta):
if rotation_speed == 0: destination_angle = global_rotation_degrees
else: destination_angle = rad_to_deg(global_position.angle_to_point(target.global_position))
global_position += speed * delta * global_transform.x
var destination_difference : float
if abs(destination_angle - global_rotation_degrees) <= 180:
destination_difference = destination_angle - global_rotation_degrees
else:
destination_difference = global_rotation_degrees - destination_angle
if destination_difference != clamp(destination_difference, -1, 1):
global_rotation_degrees += sign(destination_difference) * rotation_speed * delta
else:
global_rotation_degrees = destination_angle
func _on_collision(body):
match body.collision_layer:
1:
if body.ship.faction != faction:
if target != self:
target.queue_free()
body.ship.shield.deal_damage(damage)
queue_free()
2:
if target != self:
target.queue_free()
queue_free()