Files
2026-07-10 17:26:23 +02:00

20 lines
911 B
GDScript

class_name WeaponDef
extends Resource
## Data-only description of a weapon type. Never mutated at runtime.
enum Size {ANCILLIARY, SMALL, MEDIUM, LARGE, HUGE}
enum Type {BALLISTIC, ENERGY, MISSILE, TORPEDO}
@export var display_name := "Weapon Cannon"
@export var weapon_scene: PackedScene # the mounted body — consumed by slots in Part 3
@export var ammo: AmmoDef # what it fires
@export var fire_interval := 1.5 # seconds between shots
@export var muzzle_speed_scale := 1.0 # multiplier over ammo.muzzle_speed (barrel length)
@export var size := Size.MEDIUM
@export var type := Type.BALLISTIC
@export var traverse_speed_deg := 30.0 # yaw slew rate, degrees/second
@export var elevation_speed_deg := 20.0 # pitch slew rate, degrees/second
@export var elevation_min_deg := -10.0 # how far the barrel can depress
@export var elevation_max_deg := 60.0 # how far it can elevate