class_name SimVillage extends RefCounted var food := 20.0 var wood := 10.0 var safety := 50.0 var knowledge := 0.0 func apply_npc_task(npc: SimNPC) -> void: match npc.current_task: "gather_food": food += 2.0 "gather_wood": wood += 2.0 "patrol": safety += 1.0 "study": knowledge += 1.0 "eat": food -= 1.0 "rest": pass "wander": safety -= 0.2 food = max(food, 0.0) wood = max(wood, 0.0) safety = clamp(safety, 0.0, 100.0) knowledge = max(knowledge, 0.0) func get_summary() -> String: return "Village | food: %s | wood: %s | safety: %s | knowledge: %s" % [ round(food), round(wood), round(safety), round(knowledge) ]