extends RigidBody2D var Speed = 1200 var DespawnTimer: float = 5 var timer: float = 0 @export var EnemyBullet: bool = false # rotato is here to fix a fucking bug. Thanks engine! @export var rotato: float var Direction: Vector2 = Vector2(0, 0) func _integrate_forces(_state: PhysicsDirectBodyState2D): self.linear_velocity = Direction * Speed self.rotation_degrees = rotato # Direction using trig Direction = Vector2(cos(deg_to_rad(rotato)), sin(deg_to_rad(rotato))) # Flip it correctly when rotated if rotato > 90 and rotato <= 270: get_node("Sprite2D").flip_v = true func _physics_process(delta: float): # Despawn to stop game from lagging timer += delta if timer >= DespawnTimer: self.queue_free() func _on_body_entered(body: Node) -> void: # Bullets collide into each other sometimes. Remove it by putting bullets into a group. if !body.is_in_group("Bullet") and EnemyBullet != true and body.is_in_group("Enemy"): body.set("Health", body.get("Health") - 1) get_node("AudioStreamPlayer").play() DespawnTimer = timer + 1 # Don't disappear the bullet, the Audio needs to play! self.collision_layer = 0b0000 self.collision_mask = 0b0000 self.visible = false # for the player elif !body.is_in_group("Bullet") and EnemyBullet == true and body.is_in_group("Player"): body.TakeDamage()