Files
cultivation-world-simulator/src/classes/effects.py
2025-11-11 23:57:46 +08:00

186 lines
4.9 KiB
Python

"""
Effects 效果系统
================
本文件定义了游戏中所有合法的 effect 字段。
Effects 通过角色的 avatar.effects 属性合并并生效。
Effect 来源:
- 宗门 (sect)
- 功法 (technique)
- 灵根 (root)
- 特质 (persona)
- 法宝 (treasure)
"""
# =============================================================================
# Effect 常量定义
# =============================================================================
# --- 战斗相关 ---
EXTRA_BATTLE_STRENGTH_POINTS = "extra_battle_strength_points"
"""
额外战斗力点数
类型: int
结算: src/classes/battle.py
说明: 直接增加角色的战斗力数值
"""
EXTRA_OBSERVATION_RADIUS = "extra_observation_radius"
"""
额外观察半径
类型: int
结算: [待实现]
说明: 增加角色的观察范围
"""
# --- 修炼相关 ---
EXTRA_CULTIVATE_EXP = "extra_cultivate_exp"
"""
额外修炼经验
类型: int
结算: src/classes/action/cultivate.py
说明: 每次修炼时额外获得的经验值
"""
EXTRA_BREAKTHROUGH_SUCCESS_RATE = "extra_breakthrough_success_rate"
"""
额外突破成功率
类型: float (范围: -1.0 ~ 1.0)
结算: src/classes/action/breakthrough.py
说明: 修改突破时的成功率,可以为负值降低成功率
"""
# --- 双修相关 ---
EXTRA_DUAL_CULTIVATION_EXP = "extra_dual_cultivation_exp"
"""
额外双修经验
类型: int
结算: src/classes/mutual_action/dual_cultivation.py
说明: 双修时发起者额外获得的经验值
"""
# --- 采集相关 ---
EXTRA_HARVEST_ITEMS = "extra_harvest_items"
"""
额外采集物品数量
类型: int
结算: src/classes/action/harvest.py
说明: 采集植物时额外获得的物品数量
"""
EXTRA_HUNT_ITEMS = "extra_hunt_items"
"""
额外狩猎物品数量
类型: int
结算: src/classes/action/hunt.py
说明: 狩猎动物时额外获得的物品数量
"""
# --- 移动相关 ---
EXTRA_MOVE_STEP = "extra_move_step"
"""
额外移动步数
类型: int
结算: [待实现]
说明: 每次移动时可以多移动的步数
"""
# --- 捕捉相关 ---
EXTRA_CATCH_SUCCESS_RATE = "extra_catch_success_rate"
"""
额外捕捉成功率
类型: float (范围: 0.0 ~ 1.0)
结算: src/classes/action/catch.py
说明: 捕捉灵兽时增加的成功率
"""
# --- 逃跑相关 ---
EXTRA_ESCAPE_SUCCESS_RATE = "extra_escape_success_rate"
"""
额外逃跑成功率
类型: float (范围: 0.0 ~ 1.0)
结算: src/classes/battle.py
说明: 从对方身边逃离时增加的成功率
"""
# --- 奇遇相关 ---
EXTRA_FORTUNE_PROBABILITY = "extra_fortune_probability"
"""
额外奇遇概率
类型: float (范围: 0.0 ~ 1.0)
结算: src/classes/fortune.py
说明: 增加触发奇遇事件的概率
"""
# --- 特殊权限 ---
LEGAL_ACTIONS = "legal_actions"
"""
合法动作列表
类型: list[str]
结算: 各个 action 的权限检查
说明: 允许角色执行的特殊动作列表
可用值:
- "DualCultivation": 双修(合欢宗专属)
- "DevourMortals": 吞噬凡人(邪道法宝)
"""
# =============================================================================
# Effect 合并规则
# =============================================================================
"""
Effects 通过 src/classes/effect.py 中的 _merge_effects() 函数合并。
合并规则:
1. 列表类型 (如 legal_actions): 取并集(去重)
2. 数值类型 (如 extra_*): 累加
3. 其他类型: 后者覆盖前者
4. 动态表达式 (如 "eval(...)"): 在 Avatar.effects property 中 eval 计算
合并顺序(从低到高优先级):
1. 宗门 (sect)
2. 功法 (technique)
3. 灵根 (root)
4. 特质 (persona) - 遍历所有 personas
5. 法宝 (treasure)
最终结果通过 Avatar.effects 属性获取(实时计算)。
"""
# =============================================================================
# 所有合法 Effect 字段清单
# =============================================================================
ALL_EFFECTS = [
# 战斗相关
"extra_battle_strength_points", # int - 额外战斗力
"extra_observation_radius", # int - 额外观察半径
# 修炼相关
"extra_cultivate_exp", # int - 额外修炼经验
"extra_breakthrough_success_rate", # float - 额外突破成功率
# 双修相关
"extra_dual_cultivation_exp", # int - 额外双修经验
# 采集相关
"extra_harvest_items", # int - 额外采集物品数量
"extra_hunt_items", # int - 额外狩猎物品数量
# 移动相关
"extra_move_step", # int - 额外移动步数
# 捕捉相关
"extra_catch_success_rate", # float - 额外捕捉成功率
# 逃跑相关
"extra_escape_success_rate", # float - 额外逃跑成功率
# 奇遇相关
"extra_fortune_probability", # float - 额外奇遇概率
# 特殊权限
"legal_actions", # list[str] - 合法动作列表
]