Files
gamedev-the-steward/scripts/simulation/SimulationManager.gd
T
2026-06-17 19:47:49 +02:00

62 lines
1.0 KiB
GDScript

extends Node
var npcs: Array[SimNPC] = []
var tick_interval := 1.0
var tick_timer := 0.0
var tick_count := 0
var names := [
"Rafi", "Mira", "Adem", "Nura", "Sahin",
"Lejla", "Tarik", "Hana", "Idris", "Zejd"
]
var professions := [
"farmer",
"woodcutter",
"guard",
"scholar",
"wanderer"
]
func _ready() -> void:
randomize()
generate_npcs()
print("--- Simulation started ---")
func _process(delta: float) -> void:
tick_timer += delta
if tick_timer >= tick_interval:
tick_timer -= tick_interval
simulate_tick()
func generate_npcs() -> void:
for i in range(10):
var npc := SimNPC.new(
i,
names[i],
professions.pick_random(),
randf_range(1.0, 10.0),
randf_range(1.0, 10.0)
)
npcs.append(npc)
func simulate_tick() -> void:
tick_count += 1
print("--- Tick ", tick_count, " ---")
for npc in npcs:
npc.simulate_tick()
print(
npc.npc_name,
" | ",
npc.profession,
" | task: ",
npc.current_task,
" | hunger: ",
round(npc.hunger),
" | energy: ",
round(npc.energy)
)