update
This commit is contained in:
@@ -222,10 +222,10 @@ class CultivationProgress:
|
||||
|
||||
|
||||
breakthrough_success_rate_by_realm = {
|
||||
Realm.Qi_Refinement: 0.8,
|
||||
Realm.Foundation_Establishment: 0.6,
|
||||
Realm.Core_Formation: 0.4,
|
||||
Realm.Nascent_Soul: 0.2,
|
||||
Realm.Qi_Refinement: 0.8, # 练气,80%
|
||||
Realm.Foundation_Establishment: 0.6, # 筑基,60%
|
||||
Realm.Core_Formation: 0.4, # 金丹,40%
|
||||
Realm.Nascent_Soul: 0.2, # 元婴,20%
|
||||
}
|
||||
|
||||
breakthrough_fail_reduce_lifespan_by_realm = {
|
||||
|
||||
@@ -59,17 +59,15 @@ def _build_root_members_from_csv() -> Dict[str, tuple]:
|
||||
element_names = [s.strip() for s in elements_field.split(sep) if str(s).strip()]
|
||||
element_members: List[RootElement] = []
|
||||
for en in element_names:
|
||||
try:
|
||||
# RootElement 的值即为中文名,因此可直接用中文构造
|
||||
element_members.append(RootElement(en))
|
||||
except Exception as e:
|
||||
raise ValueError(f"root.csv 中未知的元素名称: {en}") from e
|
||||
element_members.append(RootElement(en))
|
||||
members[key] = (cn_name, tuple(element_members))
|
||||
return members
|
||||
|
||||
|
||||
# 动态创建 Root 枚举(使用 mixin 作为 type,使 __new__ 生效)
|
||||
Root = Enum("Root", _build_root_members_from_csv(), type=_RootMixin)
|
||||
# 某些环境下函数式创建的 Enum 可能未正确采用 mixin 的 __str__,这里显式绑定确保生效
|
||||
Root.__str__ = _RootMixin.__str__
|
||||
|
||||
|
||||
# 元素到灵气类型的一一对应
|
||||
@@ -94,21 +92,12 @@ def _load_extra_breakthrough_success_rate_from_csv() -> Dict["Root", float]:
|
||||
从 root.csv 载入各灵根的额外突破成功率,默认0。
|
||||
列名:extra_breakthrough_success_rate
|
||||
"""
|
||||
df = game_configs.get("root")
|
||||
if df is None:
|
||||
return {}
|
||||
df = game_configs["root"]
|
||||
bonuses: Dict["Root", float] = {}
|
||||
for _, row in df.iterrows():
|
||||
key = str(row["key"]).strip()
|
||||
try:
|
||||
root_member = getattr(Root, key)
|
||||
except AttributeError:
|
||||
# CSV 中的 key 未在 Root 中注册(理论不可能),跳过
|
||||
continue
|
||||
try:
|
||||
bonus = float(row.get("extra_breakthrough_success_rate", 0) or 0)
|
||||
except Exception:
|
||||
bonus = 0.0
|
||||
root_member = getattr(Root, key)
|
||||
bonus = float(row.get("extra_breakthrough_success_rate", 0) or 0)
|
||||
bonuses[root_member] = bonus
|
||||
return bonuses
|
||||
|
||||
|
||||
@@ -144,7 +144,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"灵根: {avatar.root.value}",
|
||||
f"灵根: {str(avatar.root)}",
|
||||
f"个性: {', '.join([persona.name for persona in avatar.personas])}",
|
||||
f"位置: ({avatar.pos_x}, {avatar.pos_y})",
|
||||
]
|
||||
|
||||
@@ -89,16 +89,16 @@ def make_avatars(world: World, count: int = 12, current_month_stamp: MonthStamp
|
||||
avatars[avatar.id] = avatar
|
||||
# —— 为演示添加少量示例关系 ——
|
||||
avatar_list = list(avatars.values())
|
||||
# if len(avatar_list) >= 2:
|
||||
# avatar_list[0].set_relation(avatar_list[1], Relation.ENEMY)
|
||||
# if len(avatar_list) >= 4:
|
||||
# avatar_list[2].set_relation(avatar_list[3], Relation.FRIEND)
|
||||
# if len(avatar_list) >= 6:
|
||||
# # 师徒(随意指派方向,关系对称)
|
||||
# avatar_list[4].set_relation(avatar_list[5], Relation.MASTER_APPRENTICE)
|
||||
# if len(avatar_list) >= 8:
|
||||
# # 情侣
|
||||
# avatar_list[6].set_relation(avatar_list[7], Relation.LOVERS)
|
||||
if len(avatar_list) >= 2:
|
||||
avatar_list[0].set_relation(avatar_list[1], Relation.ENEMY)
|
||||
if len(avatar_list) >= 4:
|
||||
avatar_list[2].set_relation(avatar_list[3], Relation.FRIEND)
|
||||
if len(avatar_list) >= 6:
|
||||
# 师徒(随意指派方向,关系对称)
|
||||
avatar_list[4].set_relation(avatar_list[5], Relation.MASTER_APPRENTICE)
|
||||
if len(avatar_list) >= 8:
|
||||
# 情侣
|
||||
avatar_list[6].set_relation(avatar_list[7], Relation.LOVERS)
|
||||
return avatars
|
||||
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ ai:
|
||||
max_decide_num: 3
|
||||
|
||||
game:
|
||||
init_npc_num: 3
|
||||
init_npc_num: 6
|
||||
npc_birth_rate_per_month: 0.001
|
||||
|
||||
df:
|
||||
|
||||
Reference in New Issue
Block a user