状态联动:当五个属性互相纠缠
问题
饱食度、水分、生命、心情、心智不是孤立的——饱食度/水分归零每天扣血、两者都大于 75 额外回血、生食恢复饱食度却扣心情还可能中毒。如果把这些联动规则分散写在各个资源脚本里,改动一处数值就要翻遍整个项目,极易出错。
思考
这些状态的本质是一张「有向依赖图」:某个状态变化,会触发另几个状态的连锁反应。与其把规则散落各处,不如让状态机统一持有并维护这些联动。
解决
用状态机内聚所有状态与联动规则。外部系统(事件、资源、成长)只提交「意图」,由状态机统一计算最终的状态变化。
反思
状态机把「规则」和「触发」分开了,但后来发现真正难的不是技术,而是「平衡」——比如食物中毒的概率、生食扣多少心情,这些数值直接影响玩家的情绪曲线,是需要反复测试调整的设计题。





