PlayerData and EnemyData reworked for WeaponData

This commit is contained in:
2025-12-17 22:02:54 +03:00
parent 36e6a9bb10
commit d55047239a
19 changed files with 80 additions and 45 deletions
+12 -11
View File
@@ -4,12 +4,6 @@ extends Node
const AREA_COUNT = 3
const WEAPON_GROUPS : Array[Array] = [
[ "gatling", "railgun", "shrapnel", ],
[ "laser", "plasma", "tesla", ],
[ "minelayer", "launcher", "cannon", ],
]
var local_seed_rng : RandomNumberGenerator = RandomNumberGenerator.new()
var area_seed_rng : RandomNumberGenerator = RandomNumberGenerator.new()
@@ -41,9 +35,16 @@ func _fill_areas(data : WorldData) -> void:
func _fill_weapons(data : WorldData) -> void:
for i in range(WEAPON_GROUPS.size()):
var group := WEAPON_GROUPS[i]
if group.size() == 0: continue
var weapon_by_group : Dictionary[String, Array] = {}
for weapon in SaveManager.WEAPONS:
if not weapon.group in weapon_by_group:
weapon_by_group[weapon.group] = [] as Array[WeaponData]
weapon_by_group[weapon.group].append(weapon)
for group in weapon_by_group:
var array : Array[WeaponData] = weapon_by_group[group]
if array.size() == 0: continue
var index := weapon_rng.randi_range(1, group.size()) - 1
data.player_start_weapon_ids.append(group[index])
var index := weapon_rng.randi_range(1, array.size()) - 1
data.player_start_weapons.append(array[index])