Fixed weapons scenes inheritance

This commit is contained in:
2025-11-08 02:23:42 +03:00
parent 32fa3dca57
commit 8f7e7aa78f
40 changed files with 277 additions and 412 deletions
+12 -7
View File
@@ -5,14 +5,16 @@ extends Node2D
enum Belonging { PLAYER, ENEMY }
@export var belonging: Belonging
@export_range(1, 100) var bullet_per_shot : int = 1
@export_range(0, 360) var sector_angle : int
@export var bullet_per_shot : int = 1
@export var sector_angle : int = 0
@export var Projectile : PackedScene
@export var reloaders : Array[AbstractReloader]
var belonging: Belonging
var _reloaders : Array[AbstractReloader]
@@ -26,28 +28,31 @@ func _physics_process(delta: float) -> void:
reloader.process(delta)
func shoot() -> void:
func shoot(ship_velocity: Vector2) -> void:
if not _can_shoot(): return
for i in range(bullet_per_shot):
var projectile := _create_projectile()
var projectile := _create_projectile(ship_velocity)
get_tree().current_scene.add_child(projectile)
for reloader in _reloaders:
reloader.shoot()
func _create_projectile() -> Node:
var projectile := Projectile.instantiate()
func _create_projectile(ship_velocity: Vector2) -> Node:
var projectile : AbstractProjectile = Projectile.instantiate()
projectile.global_position = global_position
projectile.ship_velocity = ship_velocity
match belonging:
Belonging.PLAYER:
projectile.direction = Vector2.RIGHT
projectile.collide_enemies = true
projectile.rotation_degrees = 90
Belonging.ENEMY:
projectile.direction = Vector2.LEFT
projectile.collide_player = true
projectile.rotation_degrees = -90
if sector_angle > 0:
var sector_rad := deg_to_rad(sector_angle)