fix bugs
This commit is contained in:
@@ -40,6 +40,7 @@
|
||||
- ✅ 角色性格
|
||||
- ✅ 境界突破机制
|
||||
- ✅ 角色间的相互关系
|
||||
- ✅ 角色感知范围
|
||||
- [ ] 角色特殊能力
|
||||
- [ ] 角色绰号
|
||||
- [ ] 角色Buffs系统:增益/减益效果、状态管理
|
||||
@@ -70,6 +71,7 @@
|
||||
- ✅ 动作完成时的自动结算机制
|
||||
- ✅ 多人动作:动作发起与动作响应
|
||||
- ✅ 影响人际关系的LLM动作(LLM Action)
|
||||
- ✅ 系统性的动作注册与运行逻辑
|
||||
- [ ] 更丰富的角色动作
|
||||
|
||||
### 🎭 事件系统
|
||||
@@ -109,6 +111,8 @@
|
||||
- ✅ 长期规划和目标导向行为
|
||||
- ✅ 突发动作响应系统(对外界刺激的即时反应)
|
||||
- ✅ LLM驱动的NPC对话、思考、互动
|
||||
- ✅ LLM生成小片段剧情
|
||||
- ✅ 根据任务需求分别接入max/flash模型
|
||||
- [ ] 动态剧情生成
|
||||
- [ ] NPC观测空间设计
|
||||
|
||||
@@ -118,12 +122,12 @@
|
||||
- [ ] 背景故事框架
|
||||
|
||||
### 特殊
|
||||
- [ ] 夺舍
|
||||
- [ ] 重生
|
||||
- [ ] 夺舍 & 重生
|
||||
- [ ] 阵法
|
||||
- [ ] 机缘
|
||||
- [ ] 天劫 & 心魔
|
||||
- [ ] 可灵活自定义的世界法则
|
||||
- [ ] 占卜 & 谶纬
|
||||
|
||||
## 使用方法
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ from src.classes.action import TimedAction
|
||||
from src.classes.event import Event
|
||||
from src.classes.region import CityRegion
|
||||
from src.classes.alignment import Alignment
|
||||
from src.classes.technique import TechniqueAttribute
|
||||
|
||||
|
||||
class DevourMortals(TimedAction):
|
||||
@@ -12,8 +13,8 @@ class DevourMortals(TimedAction):
|
||||
与普通修炼相比,经验获取显著更高。
|
||||
"""
|
||||
|
||||
COMMENT = "在城镇吞噬凡人,获得大量修行经验(邪修)"
|
||||
DOABLES_REQUIREMENTS = "仅限城市区域,且角色阵营为‘邪’,且未处于瓶颈"
|
||||
COMMENT = "在城镇吞噬凡人,获得大量修行经验(邪功法)"
|
||||
DOABLES_REQUIREMENTS = "仅限城市区域,且当前功法为‘邪’,且未处于瓶颈"
|
||||
PARAMS = {}
|
||||
|
||||
duration_months = 2
|
||||
@@ -31,7 +32,8 @@ class DevourMortals(TimedAction):
|
||||
region = self.avatar.tile.region
|
||||
if not isinstance(region, CityRegion):
|
||||
return False
|
||||
if self.avatar.alignment != Alignment.EVIL:
|
||||
tech = self.avatar.technique
|
||||
if tech.attribute != TechniqueAttribute.EVIL:
|
||||
return False
|
||||
return not self.avatar.cultivation_progress.is_in_bottleneck()
|
||||
|
||||
|
||||
@@ -102,4 +102,23 @@ extra_breakthrough_success_rate = defaultdict(
|
||||
{
|
||||
Root.HEAVEN: 0.1,
|
||||
},
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
def format_root_cn(root: "Root") -> str:
|
||||
"""
|
||||
将 Root 显示为中文短名 + 组成,例如:
|
||||
- 天(金、木、水、火、土)
|
||||
- 风(木、水)
|
||||
- 金(金)
|
||||
回退:若无法获取组成则仅显示短名。
|
||||
"""
|
||||
# Root 成员的 value 为中文名(如“风灵根”、“天灵根”)
|
||||
name = getattr(root, "value", str(root))
|
||||
short_name = name.replace("灵根", "") if isinstance(name, str) else str(root)
|
||||
elements = getattr(root, "elements", None)
|
||||
if not elements:
|
||||
return short_name
|
||||
# RootElement.__str__ 返回其中文值,因此直接 str(e)
|
||||
elements_cn = "、".join(str(e) for e in elements)
|
||||
return f"{short_name}({elements_cn})"
|
||||
@@ -4,6 +4,7 @@ from src.classes.avatar import Avatar, Gender
|
||||
from src.classes.tile import TileType
|
||||
from src.utils.text_wrap import wrap_text
|
||||
from src.classes.relation import Relation
|
||||
from src.classes.root import format_root_cn
|
||||
|
||||
# 顶部状态栏高度(像素)
|
||||
STATUS_BAR_HEIGHT = 32
|
||||
@@ -156,7 +157,7 @@ def draw_tooltip_for_avatar(pygame_mod, screen, colors, font, avatar: Avatar):
|
||||
f"境界: {str(avatar.cultivation_progress)}",
|
||||
f"HP: {avatar.hp}",
|
||||
f"MP: {avatar.mp}",
|
||||
f"灵根: {str(avatar.root)}",
|
||||
f"灵根: {format_root_cn(avatar.root)}",
|
||||
f"功法: {avatar.technique.name}({avatar.technique.attribute}·{avatar.technique.grade.value})",
|
||||
f"个性: {', '.join([persona.name for persona in avatar.personas])}",
|
||||
f"位置: ({avatar.pos_x}, {avatar.pos_y})",
|
||||
|
||||
Reference in New Issue
Block a user