feat: add consequence with modifiers for properties
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user