Files
2026-05-20 16:13:24 +08:00

40 lines
792 B
GDScript

extends Resource
class_name WaveData
enum SpawnType {
FIXED,
RANDOM
}
@export var from: int
@export var to: int
@export var wave_time := 20.0
@export var units: Array[WaveUnitData]
@export var spawn_type := SpawnType.RANDOM
@export var fixed_spawn_time := 1.0
@export var min_spawn_time := 1.0
@export var max_spawn_time := 1.0
func get_randon_unit_scene() -> PackedScene:
if units.is_empty():
printerr("No Units.")
return null
var enemies: Array[PackedScene]
var weights: Array[float]
for unit in units:
enemies.append(unit.unit_scene)
weights.append(unit.weight)
var rng := RandomNumberGenerator.new()
var random_unit = enemies[rng.rand_weighted(weights)]
return random_unit
func is_vaild_index(index: int) -> bool:
return index >= from and index <= to