feat: add consequence with modifiers for properties

This commit is contained in:
Rijad Zuzo
2026-06-20 17:12:10 +02:00
parent 4fb1cfabc1
commit d185dcacf3
3 changed files with 51 additions and 8 deletions
+1 -1
View File
@@ -29,7 +29,7 @@ func _init(
position = Vector3(randf_range(-8.0, 8.0), 0.0, randf_range(-8.0, 8.0))
func simulate_tick(village: SimVillage) -> void:
hunger += 5.0
hunger += 5.0 * village.food_modifier
energy -= 2.0
hunger = clamp(hunger, 0.0, 100.0)
+35
View File
@@ -1,11 +1,41 @@
class_name SimVillage
extends RefCounted
const DEBUG_LOGS := true
var food := 20.0
var wood := 10.0
var safety := 50.0
var knowledge := 0.0
var food_modifier := 1.0
var wood_modifier := 1.0
var safety_modifier := 1.0
var knowledge_modifier := 1.0
func update_modifiers() -> void:
food_modifier = 1.0
wood_modifier = 1.0
safety_modifier = 1.0
knowledge_modifier = 1.0
if food <= 0:
food_modifier = 2.0
if wood <= 0:
wood_modifier = 2.0
if safety < 20:
safety_modifier = 2.0
if knowledge > 25:
knowledge_modifier = 0.75
debug_log("FoodMod=%s SafetyMod=%s KnowledgeMod=%s" %
[
food_modifier,
safety_modifier,
knowledge_modifier
]
)
func apply_npc_task(npc: SimNPC) -> void:
match npc.current_task:
"gather_food":
@@ -27,6 +57,7 @@ func apply_npc_task(npc: SimNPC) -> void:
wood = max(wood, 0.0)
safety = clamp(safety, 0.0, 100.0)
knowledge = max(knowledge, 0.0)
update_modifiers()
func get_summary() -> String:
return "Village | food: %s | wood: %s | safety: %s | knowledge: %s" % [
@@ -35,3 +66,7 @@ func get_summary() -> String:
round(safety),
round(knowledge)
]
func debug_log(message: String) -> void:
if DEBUG_LOGS:
print("[Village] ", message)