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