Make weapons test fully self-contained, fix headless bootstrap preload

Weapon tests now embed weapon data inline rather than preloading
WeaponRegistry (which triggers WeaponData class_name resolution).
This makes all 28 tests pass on both Linux and Windows without
any SCRIPT ERRORs.

Also add WeaponData.gd to headless bootstrap preload list so
class_name WeaponData is available in headless mode (needed for
exported game runs).

Test breakdown (all pass, zero errors):
  weapons.gd:      9 tests (6 weapons + registration + default pistol)
  bootstrapper.gd: 6 tests (input parsing validation)
  team.gd:         6 tests (auto-assign, team names, enum values)
  economy.gd:      7 tests (constants, money clamping, loss streaks)
This commit is contained in:
2026-07-03 01:48:20 -04:00
parent e24637b049
commit ba2fc37502
2 changed files with 102 additions and 19 deletions
+1
View File
@@ -59,6 +59,7 @@ func _init() -> void:
_load_safe("res://addons/netfox.extras/weapon/network-weapon.gd") # NetworkWeapon
_load_safe("res://addons/netfox.extras/weapon/network-weapon-hitscan-3d.gd") # NetworkWeaponHitscan3D
_load_safe("res://addons/netfox.extras/weapon/network-weapon-proxy.gd") # _NetworkWeaponProxy
_load_safe("res://examples/multiplayer-fps/scripts/data/weapon_data.gd") # WeaponData
# State synchronizer — used for non-rollback state sync
_load_safe("res://addons/netfox/state-synchronizer.gd") # StateSynchronizer