Adding hunger mechanic
This commit is contained in:
@@ -4,6 +4,7 @@ class_name WaterDisplay
|
||||
|
||||
@export var character_path: NodePath
|
||||
@export var show_bladder: bool = true
|
||||
@export var show_food: bool = true
|
||||
@export var show_water: bool = true
|
||||
|
||||
var _character: GridCharacterController = null
|
||||
@@ -13,11 +14,11 @@ func _ready() -> void:
|
||||
_resolve_character()
|
||||
if _character:
|
||||
_character.vitals_changed.connect(_on_vitals_changed)
|
||||
_on_vitals_changed(_character.get_water_level(), _character.get_bladder_level(), _character.is_water_low(), _character.is_bladder_full())
|
||||
_on_vitals_changed(_character.get_water_level(), _character.get_bladder_level(), _character.is_water_low(), _character.is_bladder_full(), _character.get_food_level(), _character.is_food_low())
|
||||
|
||||
func _process(_delta: float) -> void:
|
||||
if Engine.is_editor_hint():
|
||||
_update_text(0.0, 0.0, false, false)
|
||||
_update_text(0.0, 0.0, false, false, 0.0, false)
|
||||
|
||||
func _resolve_character() -> void:
|
||||
if character_path != NodePath():
|
||||
@@ -25,13 +26,20 @@ func _resolve_character() -> void:
|
||||
else:
|
||||
_character = get_parent() as GridCharacterController
|
||||
|
||||
func _on_vitals_changed(water_level: float, bladder_level: float, needs_water: bool, needs_bathroom: bool) -> void:
|
||||
_update_text(water_level, bladder_level, needs_water, needs_bathroom)
|
||||
func _on_vitals_changed(water_level: float, bladder_level: float, needs_water: bool, needs_bathroom: bool, food_level: float, needs_food: bool) -> void:
|
||||
_update_text(water_level, bladder_level, needs_water, needs_bathroom, food_level, needs_food)
|
||||
|
||||
func _update_text(water_level: float, bladder_level: float, needs_water: bool, needs_bathroom: bool) -> void:
|
||||
func _update_text(water_level: float, bladder_level: float, needs_water: bool, needs_bathroom: bool, food_level: float, needs_food: bool) -> void:
|
||||
var parts: Array[String] = []
|
||||
if show_water:
|
||||
parts.append("Water: %4d ml%s" % [int(water_level), " !" if needs_water else ""])
|
||||
if show_bladder:
|
||||
parts.append("Bladder: %4d ml%s" % [int(bladder_level), " !" if needs_bathroom else ""])
|
||||
text = " | ".join(parts)
|
||||
if show_food:
|
||||
parts.append("Food: %4d kcal%s" % [int(food_level), " !" if needs_food else ""])
|
||||
if show_food and parts.size() >= 3:
|
||||
var first_line := " | ".join(parts.slice(0, 2))
|
||||
var second_line := " | ".join(parts.slice(2, parts.size()))
|
||||
text = first_line + "\n" + second_line
|
||||
else:
|
||||
text = " | ".join(parts)
|
||||
|
||||
Reference in New Issue
Block a user