38 lines
668 B
GDScript
38 lines
668 B
GDScript
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)
|
|
]
|