fix bugs
This commit is contained in:
@@ -24,11 +24,6 @@ class DevourMortals(TimedAction):
|
||||
tr.devoured_souls = min(10000, int(tr.devoured_souls) + gain)
|
||||
|
||||
def can_start(self) -> bool:
|
||||
region = self.avatar.tile.region
|
||||
# 需持有万魂幡且行为被允许
|
||||
tr = getattr(self.avatar, "treasure", None)
|
||||
if tr is None or tr.name != "万魂幡":
|
||||
return False
|
||||
legal = self.avatar.effects.get("legal_actions", [])
|
||||
return "DevourMortals" in legal
|
||||
|
||||
|
||||
@@ -1,18 +1,14 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import ast
|
||||
from typing import Any, Callable, Optional
|
||||
|
||||
|
||||
def load_effect_from_str(value: object) -> dict[str, Any]:
|
||||
"""
|
||||
解析 effects 字符串为 dict:
|
||||
- 支持裸键值对格式(如 'k': ['v'])
|
||||
- 支持 JSON 格式(双引号)
|
||||
- 支持 Python 字面量(单引号)
|
||||
将 effects 字段解析为 dict(仅支持标准 JSON 字符串)。
|
||||
- value 为 None/空字符串/'nan' 时返回 {}
|
||||
- 解析非 dict 则返回 {}
|
||||
- 解析失败或结果非 dict 返回 {}
|
||||
"""
|
||||
if value is None:
|
||||
return {}
|
||||
@@ -21,26 +17,11 @@ def load_effect_from_str(value: object) -> dict[str, Any]:
|
||||
s = str(value).strip()
|
||||
if not s or s == "nan":
|
||||
return {}
|
||||
# 使用全局配置中的分隔符将占位分隔符替换回逗号,便于解析
|
||||
try:
|
||||
from src.utils.config import CONFIG
|
||||
sep = str(getattr(getattr(CONFIG, "df", {}), "ids_separator", ","))
|
||||
if sep and sep != ",":
|
||||
s = s.replace(sep, ",")
|
||||
except Exception:
|
||||
pass
|
||||
# 如果不是以 { 开头,则添加花括号包裹
|
||||
if not s.startswith("{"):
|
||||
s = "{" + s + "}"
|
||||
try:
|
||||
obj = json.loads(s)
|
||||
return obj if isinstance(obj, dict) else {}
|
||||
except Exception:
|
||||
try:
|
||||
obj = ast.literal_eval(s)
|
||||
return obj if isinstance(obj, dict) else {}
|
||||
except Exception:
|
||||
return {}
|
||||
return {}
|
||||
|
||||
|
||||
def _merge_effects(base: dict[str, object], addition: dict[str, object]) -> dict[str, object]:
|
||||
|
||||
@@ -53,7 +53,8 @@ def _load_treasures() -> tuple[Dict[int, Treasure], Dict[str, Treasure], Dict[in
|
||||
if raw_sect is not None and str(raw_sect).strip() and str(raw_sect).strip() != "nan":
|
||||
sect_id = int(float(raw_sect))
|
||||
|
||||
effects = load_effect_from_str(row.get("effects", ""))
|
||||
raw_effects_val = row.get("effects", "")
|
||||
effects = load_effect_from_str(raw_effects_val)
|
||||
|
||||
sect_obj: Optional[Sect] = sects_by_id.get(int(sect_id)) if sect_id is not None else None
|
||||
|
||||
@@ -66,6 +67,8 @@ def _load_treasures() -> tuple[Dict[int, Treasure], Dict[str, Treasure], Dict[in
|
||||
sect=sect_obj,
|
||||
)
|
||||
|
||||
# no-op
|
||||
|
||||
treasures_by_id[t.id] = t
|
||||
treasures_by_name[t.name] = t
|
||||
if t.sect_id is not None and t.sect_id not in treasures_by_sect_id:
|
||||
|
||||
@@ -15,7 +15,7 @@ ai:
|
||||
max_decide_num: 4
|
||||
|
||||
game:
|
||||
init_npc_num: 6
|
||||
init_npc_num: 4
|
||||
sect_num: 2 # init_npc_num大于sect_num时,会随机选择sect_num个宗门
|
||||
npc_birth_rate_per_month: 0.001
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ id,name,exclusion_ids,desc,weight,condition
|
||||
12,复仇,11;14,你绝不轻易放下仇怨,为了复仇愿意付出代价与时间。你必须立刻进行复仇行动。,1,
|
||||
13,孤僻,11,你喜欢独处,避免与人深交,更信赖自己的判断与行动。,1,
|
||||
14,淡漠,11;12;15;24;25,你情感克制,对外界冷静疏离,不轻易被他人或事件影响。,1,
|
||||
15,好斗,11;14;10;17,你直面冲突,偏好以力量与对抗解决问题,并格外热衷增加己身战力。,1000,
|
||||
15,好斗,11;14;10;17,你直面冲突,偏好以力量与对抗解决问题,并格外热衷增加己身战力。,1,
|
||||
16,鲁莽,1;9;10,你行事冲动、少考虑后果,常凭直觉立刻行动。,1,
|
||||
17,胆小,4;15;12;24;25,你谨小慎微,容易畏惧风险,倾向回避正面冲突。,1,
|
||||
18,霸道,11;17,你行事强势,不讲道理,习惯以自己的利益为先,倾向多吃多占、压人一步,对他人的反对不以为意。,1,
|
||||
|
||||
|
@@ -1,5 +1,5 @@
|
||||
id,key,name,element_list,desc,effects
|
||||
,,元素列表以分号分隔(示例:金;木),描述不会在代码中使用,JSON/字面量,例:{"extra_breakthrough_success_rate": 0.1}
|
||||
,,,元素列表以分号分隔(示例:金;木),描述不会在代码中使用,"JSON,例:{""extra_breakthrough_success_rate"": 0.1}"
|
||||
1,GOLD,金灵根,金,刚强果断;攻击力强,适合剑修,
|
||||
2,WOOD,木灵根,木,仁厚坚韧;擅恢复、毒术与木属性法术,
|
||||
3,WATER,水灵根,水,智慧圆融;身法轻盈,善辅助与隐匿,
|
||||
@@ -9,5 +9,5 @@ id,key,name,element_list,desc,effects
|
||||
7,ICE,冰灵根,金;水,控制力强;持久性好,
|
||||
8,WIND,风灵根,木;水,身法卓绝;难以捉摸,
|
||||
9,DARK,暗灵根,火;土,隐匿系;擅幻术与诡道,
|
||||
10,HEAVEN,天灵根,金;木;水;火;土,资质通天;五行皆通,修行全面,"extra_breakthrough_success_rate": 0.1
|
||||
10,HEAVEN,天灵根,金;木;水;火;土,资质通天;五行皆通,修行全面,"{""extra_breakthrough_success_rate"": 0.1}"
|
||||
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 108.
|
@@ -3,9 +3,9 @@ id,name,desc,member_act_style,alignment,sect_surnames,male_sect_given_names,fema
|
||||
1,明心剑宗,通玄界东方第一宗,以无上剑道称雄于世。云纹禁制为不传心法。,清明克己,行止如一。重剑与心法并重,讲究明心见性。,正,明;心;剑;霄;玄;霁;衡;孤;徽;肃,澄川;宏石;磐岳;霆岱;寂岚;久安;宸秋;烁离;沧岳;砺锋;炎洲;远歌,采微;霏岚;韶华;绮澜;珠影;远岫;若水;凝香;雪瑶;南絮;轻萝;宛竹,1,
|
||||
2,百兽宗,以驯养灵兽闻名,豢养各种妖兽灵怪为战力。,你言语直接,重视力量与血性,崇尚狩猎与搏斗。,邪,,驼王;飞熊;虎魄;狼行;熊罡;白猿;石坚;山岚;青鬃;玄爪;金瞳;裂爪;破角;狂鬃;赤鬣;苍隼;啸风;裂岩,狐绮;白貂;青翎;雪牙;赤羽;玄狸;灵爪;月狐;银鳞;霜蹄;云貉;绒尾;锦狐;轻蹄,1,
|
||||
3,水镜宗,正道十宗之一,实则严守中立。拥有仙界异宝"彻天水镜"可预知未来。,你处事冷静圆融,喜以柔克刚,擅借力与反制。,中,水;镜;寒;霜;冰;清;沐;澜;渊;泉,涟光;沧浪;泽远;浩川;泊舟;涓石;溪原;涵舟;泠曜;漪岑;淞岳;涔雨,漫霖;洛漪;潋月;涵烟;沁波;翠波;漫葭;汀兰;潭歌;涓玥;澧宁;潇然,1,
|
||||
4,冥王宗,行走幽冥之道,术法阴冷狠厉。,你言辞冷厉少情,敬畏因果而不惧杀伐,偏向效率与结果。,邪,冥;王;玄;幽;夜;白;冷;狱;魇;阴,血燎;焚魄;灰燼;殁川;绝尘;厌离;朔寒;邪风;归墟;朽骨;朔月;止戈,寒绫;霜瑶;凄歌;素鸢;祭宁;黛魂;夙梦;绫雪;凛珑;霁月;旷音;凝岚,1000,
|
||||
4,冥王宗,行走幽冥之道,术法阴冷狠厉。,你言辞冷厉少情,敬畏因果而不惧杀伐,偏向效率与结果。,邪,冥;王;玄;幽;夜;白;冷;狱;魇;阴,血燎;焚魄;灰灭;殁川;绝尘;厌离;朔寒;邪风;归墟;朽骨;朔月;止戈,寒绫;霜瑶;凄歌;素鸢;祭宁;黛魂;夙梦;绫雪;凛珑;霁月;旷音;凝岚,1000,
|
||||
5,朱勾宗,邪宗大派。以炼器、机关、暗杀闻名于世,素来阴毒冷僻。,你直面欲望与代价,不惧黑暗,以攻伐见长。,邪,朱;绯;刃;戮;蚀;渊;钧;鸦;墨;殷,暗阑;机括;鬼匣;夜禁;幻锁;残锋;暗弦;影栅;幽钩;断线;潜匿;迷踪,玄簪;霜绡;纤罗;碎玉;影裳;轻弦;凝黛;凝烟;冷珥;素纱;凛钗;寒袖,1,
|
||||
6,合欢宗,以情入道,靠双修增进修为,善驭人心,长于权变。,你辞令婉转,善于拿捏人欲与局势,以柔制刚。,中,合;欢;苏;陆;柳;花;月;楚;顾;白,流烟;迟夜;长陌;归舟;暮成;远辞;行止;轻寒;沉香;野鹤;乘风,婉心;轻柔;疏影;如梦;绮念;惜香;慕雪;倾城;绯烟;晚晴;素袖;霁眉;绸缪;静妍,1000,'legal_actions': ['DualCultivation']
|
||||
6,合欢宗,以情入道,靠双修增进修为,善驭人心,长于权变。,你辞令婉转,善于拿捏人欲与局势,以柔制刚。,中,合;欢;苏;陆;柳;花;月;楚;顾;白,流烟;迟夜;长陌;归舟;暮成;远辞;行止;轻寒;沉香;野鹤;乘风,婉心;轻柔;疏影;如梦;绮念;惜香;慕雪;倾城;绯烟;晚晴;素袖;霁眉;绸缪;静妍,1000,"{""legal_actions"": [""DualCultivation""]}"
|
||||
7,镇魂宗,铁血风格,擅安魂、封邪、渡厄,兼有刚烈镇压之术。,你肃穆沉稳,重安魂镇邪,少言而果决。,正,厉;卢;镇;魂;钟;青;凌;白;楚;顾,安魄;靖川;霁阳;季衡;砺甲;烁锋;昊戈;祁光;漠石;启封;殷策;定魄,清宁;素铃;靖霜;澄心;霁雪;安祈;净月;宁枝;祷绫;明槐;采霁;定寒,1,
|
||||
8,幽魂噬影宗,镇宗典籍《幽冥录》。幽明气为根基。,你行事隐秘果断,重结果轻虚名,擅潜行与出其不意。,邪,冥;阎;鬼;幽;归;应;阴;碧;夜;魅,噬影;无藏;绝响;断痕;影渊;暗行;潜踪;魄隐;迷雾;空蝉;断念;裂隙,影绫;暗萝;霜绡;素鹭;玄绮;凝灯;绫岚;凛铃;朔华;漠音;宵岑;泠歌,1,
|
||||
9,千帆城,炼器大宗,巧匠云集。著名法宝有灵灭丝、定魂蓝星、天罗网、万里极光壁、飞翼等。商旅云集,自成体系。,你务实精明,重交易与信誉,崇尚规则与秩序。,中,商;楚;顾;白;苏;林;叶;秦;赵;魏,持衡;清评;问价;立契;通衡;问道;理市;衡准;守约;筑匠;铸衡;估算,素蓝;明衡;巧心;青帆;绫舟;观星;衡绫;星槎;织霓;采绫;芸巧;霁行;砚秋;镶玑;绘蓝;银梭;珩心,1,
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 5 and column 73.
|
@@ -1,5 +1,5 @@
|
||||
id,name,technique_root,grade,desc,weight,condition,sect,effects
|
||||
,名称,属性,品阶(上中下),描述/提示词,抽样权重,条件,所属宗门,JSON/字面量,例:{"extra_cultivate_exp":50}
|
||||
,名称,属性,品阶(上中下),描述/提示词,抽样权重,条件,所属宗门,"JSON,例:{""extra_cultivate_exp"": 50}"
|
||||
1,太乙金光锻体诀,金,下品,运太乙金光淬骨炼筋,金罡护体,刀兵难侵。,1,,,
|
||||
2,金阳破甲术,金,中品,融金阳之炽与锋,一往破敌,破甲断魄。,1,,,
|
||||
4,青木长春诀,木,下品,借青木长春之机,涓涓养元,稳固根基。,1,,,
|
||||
@@ -18,19 +18,19 @@ id,name,technique_root,grade,desc,weight,condition,sect,effects
|
||||
23,玄夜无相法,暗,中品,夜行无相,出入无痕,摄人心魄。,1,,,
|
||||
25,九天淬体雷诀,雷,下品,引九天霆罡击体,筋骨再生,爆发如雷。,1,,,
|
||||
26,九霄养雷法,雷,中品,引九霄真雷,养气通窍,威势赫然。,1,,,
|
||||
28,血神噬魂大法,邪,下品,以血神邪念淬炼,杀伐狠辣,损阴德。,1,,,"extra_breakthrough_success_rate": -0.1; "extra_cultivate_exp": 50
|
||||
29,冥狱吞灵大法,邪,中品,循冥狱之道吞噬灵魄,逆乱阴阳,速成之途。,1,,,"extra_breakthrough_success_rate": -0.1; "extra_cultivate_exp": 50
|
||||
28,血神噬魂大法,邪,下品,以血神邪念淬炼,杀伐狠辣,损阴德。,1,,,"{""extra_breakthrough_success_rate"": -0.1, ""extra_cultivate_exp"": 50}"
|
||||
29,冥狱吞灵大法,邪,中品,循冥狱之道吞噬灵魄,逆乱阴阳,速成之途。,1,,,"{""extra_breakthrough_success_rate"": -0.1, ""extra_cultivate_exp"": 50}"
|
||||
30,明心归一剑典,金,上品,以剑返本归一,明镜止水,一剑断妄。,10,,明心剑宗,
|
||||
31,霆光明志剑,雷,上品,以霆光贯剑意,电掣雷行,破虚斩障。,10,,明心剑宗,
|
||||
32,离火明心诀,火,上品,以离火照见自心,去蔽存真,剑随心行。,10,,明心剑宗,
|
||||
33,御兽玄纲,木,上品,以木灵沟通群兽,血脉契合,驱策如臂。,10,,百兽宗,
|
||||
34,蛮荒镇骨体,土,上品,以厚土淬锻筋骨,躯壳如山,血勇不挫。,10,,百兽宗,
|
||||
35,血啸狩魂诀,邪,上品,以嗜血啸魄摄魂,狩猎杀伐,越战越猛。,10,,百兽宗,"extra_breakthrough_success_rate": -0.1; "extra_cultivate_exp": 50
|
||||
35,血啸狩魂诀,邪,上品,以嗜血啸魄摄魂,狩猎杀伐,越战越猛。,10,,百兽宗,"{""extra_breakthrough_success_rate"": -0.1, ""extra_cultivate_exp"": 50}"
|
||||
36,彻天水镜观,水,上品,以彻天水镜观机,借势化力,先机在握。,10,,水镜宗,
|
||||
37,寒漪反斩法,冰,上品,以寒漪回折之势,四两拨千斤,刚柔相济。,10,,水镜宗,
|
||||
38,镜花游身步,风,上品,以轻风流转为引,身化水月,进退自如。,10,,水镜宗,
|
||||
39,幽冥镇狱经,暗,上品,引幽冥阴煞镇压万灵,寒魄凝骨,万劫不侵。,10,,冥王宗,
|
||||
40,冥焰噬神法,邪,上品,以冥焰噬神,逆夺生机,吞灵化魄。,10,,冥王宗,"extra_breakthrough_success_rate": -0.1; "extra_cultivate_exp": 50
|
||||
40,冥焰噬神法,邪,上品,以冥焰噬神,逆夺生机,吞灵化魄。,10,,冥王宗,"{""extra_breakthrough_success_rate"": -0.1, ""extra_cultivate_exp"": 50}"
|
||||
41,黄泉引魄步,冰,上品,以玄寒引魄入泉,步步生霜,摄魂夺魄。,10,,冥王宗,
|
||||
42,赤狱炼锋诀,火,上品,以赤狱真火炼锋,法器通灵,杀机更盛。,10,,朱勾宗,
|
||||
43,魇丝摄魂术,暗,上品,以魇丝无声摄魄,藏形夺命,来去无迹。,10,,朱勾宗,
|
||||
@@ -43,7 +43,7 @@ id,name,technique_root,grade,desc,weight,condition,sect,effects
|
||||
50,金章封煞术,金,上品,以金章为印,封煞束灵,斩乱镇邪。,10,,镇魂宗,
|
||||
51,幽冥无相诀,暗,上品,隐形无相,出没幽明,摄心夺魄于无声。,10,,幽魂噬影宗,
|
||||
52,噬影穿行步,风,上品,以风掠影,穿行缝隙,先至而不留痕。,10,,幽魂噬影宗,
|
||||
53,冥狱吞魄经,邪,上品,循幽冥吞魄之道,化敌为养,速成险绝。,10,,幽魂噬影宗,"extra_breakthrough_success_rate": -0.1; "extra_cultivate_exp": 50
|
||||
53,冥狱吞魄经,邪,上品,循幽冥吞魄之道,化敌为养,速成险绝。,10,,幽魂噬影宗,"{""extra_breakthrough_success_rate"": -0.1, ""extra_cultivate_exp"": 50}"
|
||||
54,天罗机巧篇,金,上品,精研机巧阵枢,百变应敌,器术合一。,10,,千帆城,
|
||||
55,蓝星定魂阵,土,上品,以厚土定魂为基,阵锁心神,稳如磐石。,10,,千帆城,
|
||||
56,飞翼乘风术,风,上品,乘风而行,纵横千里,御器齐驱。,10,,千帆城,
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 112.
|
@@ -1,12 +1,12 @@
|
||||
id,name,sect_id,desc,effects
|
||||
,名称,所属宗门ID(见sect.csv),描述/提示词,效果键值对(不含花括号),例:"extra_move_step":1
|
||||
1,本命剑匣,1,以心御剑,匣启如霆,剑意随心破万法.,"extra_battle_strength_points": 3
|
||||
2,灵舟,9,小舟承灵气,御风渡海,千里一瞬.,"extra_move_step": 1
|
||||
3,千里镜,3,澄澈如镜,观千里之外,洞察先机.,"extra_observation_radius": 2
|
||||
4,镇魂钟,7,钟鸣摄魄,定魂镇邪,护心安魂.,"extra_battle_strength_points": 3; "extra_observation_radius": 1
|
||||
5,聚灵阵盘,5,刻阵成盘,聚纳灵机,修行事半功倍.,"extra_cultivate_exp": 50
|
||||
6,万魂幡,4,幡起万魂啾啾,阴风过境.,"legal_actions": ["DevourMortals"]; "extra_battle_strength_points": eval(avatar.treasure.devoured_souls // 100 * 0.1)
|
||||
7,万欲同心结,6,情意同心,双修之道相互映照,修为更精进.,"extra_dual_cultivation_exp": 100
|
||||
8,影遁披风,8,融身影界,来去无踪,伏击出其不意.,"extra_move_step": 1; "extra_observation_radius": 1
|
||||
,名称,所属宗门ID(见sect.csv),描述/提示词,"JSON,例:{""extra_move_step"": 1}"
|
||||
1,本命剑匣,1,以心御剑,匣启如霆,剑意随心破万法.,"{""extra_battle_strength_points"": 3}"
|
||||
2,灵舟,9,小舟承灵气,御风渡海,千里一瞬.,"{""extra_move_step"": 1}"
|
||||
3,千里镜,3,澄澈如镜,观千里之外,洞察先机.,"{""extra_observation_radius"": 2}"
|
||||
4,镇魂钟,7,钟鸣摄魄,定魂镇邪,护心安魂.,"{""extra_battle_strength_points"": 3, ""extra_observation_radius"": 1}"
|
||||
5,聚灵阵盘,5,刻阵成盘,聚纳灵机,修行事半功倍.,"{""extra_cultivate_exp"": 50}"
|
||||
6,万魂幡,4,幡起万魂啾啾,阴风过境.,"{""legal_actions"": [""DevourMortals""], ""extra_battle_strength_points"": ""eval(avatar.treasure.devoured_souls // 100 * 0.1)""}"
|
||||
7,万欲同心结,6,情意同心,双修之道相互映照,修为更精进.,"{""extra_dual_cultivation_exp"": 100}"
|
||||
8,影遁披风,8,融身影界,来去无踪,伏击出其不意.,"{""extra_move_step"": 1, ""extra_observation_radius"": 1}"
|
||||
|
||||
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 99.
|
Reference in New Issue
Block a user