diff --git a/src/classes/effect.py b/src/classes/effect.py index 4fb0b6e..97e895a 100644 --- a/src/classes/effect.py +++ b/src/classes/effect.py @@ -9,7 +9,15 @@ if TYPE_CHECKING: def load_effect_from_str(value: object) -> dict[str, Any] | list[dict[str, Any]]: """ - 将 effects 字段解析为 dict 或 list(仅支持标准 JSON 字符串)。 + 将 effects 字段解析为 dict 或 list(支持宽松JSON格式)。 + + 支持的格式: + 1. 标准JSON: {"extra_battle_strength_points": 3} + 2. 单引号: {'extra_battle_strength_points': 3} + 3. 无引号key: {extra_battle_strength_points: 3} + 4. 混合格式: {extra_battle_strength_points: 3, 'legal_actions': ['DevourMortals']} + 5. 条件数组: [{when: 'condition', effect1: value1}, ...] + - value 为 None/空字符串/'nan' 时返回 {} - 解析失败时返回 {} - 支持返回 dict(单个effect)或 list[dict](多个条件effect) @@ -21,11 +29,59 @@ def load_effect_from_str(value: object) -> dict[str, Any] | list[dict[str, Any]] s = str(value).strip() if not s or s == "nan": return {} + + # 先尝试标准 JSON 解析 try: obj = json.loads(s) if isinstance(obj, (dict, list)): return obj return {} + except Exception: + pass + + # 尝试宽松解析:单引号转双引号 + 无引号key处理 + try: + import re + + # 1. 先保护所有引号内的内容(包括单引号和双引号字符串) + strings = [] + def save_string(match): + strings.append(match.group(0)) + return f"__STRING_{len(strings)-1}__" + + relaxed = s + # 保护双引号字符串 + relaxed = re.sub(r'"(?:[^"\\]|\\.)*"', save_string, relaxed) + # 保护单引号字符串 + relaxed = re.sub(r"'(?:[^'\\]|\\.)*'", save_string, relaxed) + + # 2. 给无引号的key添加引号(此时所有字符串都已被保护) + # 匹配: 开始位置后的标识符 + 冒号 + relaxed = re.sub(r'([{\[,]\s*)([a-zA-Z_][a-zA-Z0-9_]*)(\s*):', r'\1"__KEY_\2__"\3:', relaxed) + + # 3. 恢复字符串,并将单引号转为双引号 + for i, s_val in enumerate(strings): + # 如果是单引号字符串,转为双引号 + if s_val.startswith("'"): + # 需要转义内部的双引号,但要先恢复其中的__STRING_占位符 + content = s_val[1:-1] # 去掉单引号 + # 恢复内部的字符串占位符 + for j, inner_str in enumerate(strings): + if f"__STRING_{j}__" in content and j != i: + content = content.replace(f"__STRING_{j}__", inner_str) + # 转义处理 + content = content.replace('\\', '\\\\').replace('"', '\\"') + s_val = f'"{content}"' + relaxed = relaxed.replace(f"__STRING_{i}__", s_val) + + # 4. 恢复key(去掉__KEY_标记) + relaxed = relaxed.replace('"__KEY_', '"').replace('__"', '"') + + # 5. 尝试解析 + obj = json.loads(relaxed) + if isinstance(obj, (dict, list)): + return obj + return {} except Exception: return {} diff --git a/src/classes/effects.py b/src/classes/effects.py index 0f1701a..678e9c2 100644 --- a/src/classes/effects.py +++ b/src/classes/effects.py @@ -150,6 +150,70 @@ LEGAL_ACTIONS = "legal_actions" - "DevourMortals": 吞噬凡人(邪道法宝) """ +# ============================================================================= +# CSV 配置格式规范 +# ============================================================================= + +""" +## CSV 中 effects 列的写法(支持宽松JSON格式) + +### 基础格式(推荐) +``` +{extra_battle_strength_points: 3} +{extra_battle_strength_points: 2, extra_max_hp: 50} +{legal_actions: ['DevourMortals'], extra_battle_strength_points: 2} +``` + +### 格式规则 +1. ✅ 无引号key(推荐): {extra_battle_strength_points: 3} +2. ✅ 单引号: {'extra_battle_strength_points': 3} +3. ✅ 双引号: {"extra_battle_strength_points": 3} +4. ✅ 混合使用: {key1: 1, 'key2': 2, "key3": 3} + +### 条件effect(when 子句) +当 effect 需要根据条件生效时,使用 when 字段: + +``` +# 单条件 +[{when: 'avatar.weapon.type == WeaponType.SWORD', extra_battle_strength_points: 3}] + +# 多条件(满足任一条件即生效,effects会累加) +[ + {when: 'avatar.weapon.type == WeaponType.SWORD', extra_weapon_proficiency_gain: 1.0, extra_battle_strength_points: 3}, + {when: 'avatar.alignment == Alignment.EVIL', extra_cultivate_exp: 20} +] +``` + +### 动态表达式(eval) +对于需要运行时计算的值,使用字符串形式的表达式: + +``` +{extra_battle_strength_points: 'avatar.weapon.special_data.get("devoured_souls", 0) // 100 * 0.1'} +``` + +注意: +- eval 表达式在 Avatar.effects property 中动态计算 +- 可访问的变量:avatar, WeaponType, EquipmentGrade, Alignment +- 表达式失败时默认为 0 + +### 实际示例 + +```csv +# weapon.csv +id,name,effects +1,本命剑匣,{extra_battle_strength_points: 3} +4,镇魂钟,{extra_battle_strength_points: 2, extra_observation_radius: 1} +6,万魂幡,{legal_actions: ['DevourMortals'], extra_battle_strength_points: 'avatar.weapon.special_data.get("devoured_souls", 0) // 100 * 0.1'} + +# persona.csv - 条件effect +32,剑痴,[{when: 'avatar.weapon.type == WeaponType.SWORD', extra_weapon_proficiency_gain: 1.0, extra_battle_strength_points: 3}] +46,音律大师,[{when: 'avatar.weapon.type == WeaponType.ZITHER or avatar.weapon.type == WeaponType.FLUTE', extra_weapon_proficiency_gain: 1.0, extra_battle_strength_points: 3}] + +# technique.csv - 负面effect +28,血神噬魂大法,{extra_breakthrough_success_rate: -0.1, extra_cultivate_exp: 50} +``` +""" + # ============================================================================= # Effect 合并规则 # ============================================================================= @@ -161,7 +225,7 @@ Effects 通过 src/classes/effect.py 中的 _merge_effects() 函数合并。 1. 列表类型 (如 legal_actions): 取并集(去重) 2. 数值类型 (如 extra_*): 累加 3. 其他类型: 后者覆盖前者 -4. 动态表达式 (如 "eval(...)"): 在 Avatar.effects property 中 eval 计算 +4. 动态表达式 (字符串形式): 在 Avatar.effects property 中 eval 计算 合并顺序(从低到高优先级): 1. 宗门 (sect) diff --git a/static/game_configs/auxiliary.csv b/static/game_configs/auxiliary.csv index 7362060..af5e7a4 100644 --- a/static/game_configs/auxiliary.csv +++ b/static/game_configs/auxiliary.csv @@ -1,9 +1,9 @@ id,name,grade,sect_id,desc,effects -,名称,等级(普通/宝物/法宝),所属宗门ID(见sect.csv),描述/提示词,"JSON形式" -2,灵舟,法宝,9,小舟承灵气,御风渡海,千里一瞬.,"{""extra_move_step"": 1}" -3,千里镜,法宝,3,澄澈如镜,观千里之外,洞察先机.,"{""extra_observation_radius"": 2}" -5,聚灵阵盘,法宝,5,刻阵成盘,聚纳灵机,修行事半功倍.,"{""extra_cultivate_exp"": 50}" -7,万欲同心结,法宝,6,情意同心,双修之道相互映照,修为更精进.,"{""extra_dual_cultivation_exp"": 100}" -8,影遁披风,法宝,8,融身影界,来去无踪,伏击出其不意.,"{""extra_move_step"": 1, ""extra_observation_radius"": 1}" -9,百兽驭兽符,法宝,2,以兽纹灵符加持,唤引兽心,御兽更易.,"{""extra_catch_success_rate"": 0.1}" +,名称,等级(普通/宝物/法宝),所属宗门ID(见sect.csv),描述/提示词,"JSON形式(支持宽松格式,见effects.py说明)" +2,灵舟,法宝,9,小舟承灵气,御风渡海,千里一瞬.,{extra_move_step: 1} +3,千里镜,法宝,3,澄澈如镜,观千里之外,洞察先机.,{extra_observation_radius: 2} +5,聚灵阵盘,法宝,5,刻阵成盘,聚纳灵机,修行事半功倍.,{extra_cultivate_exp: 50} +7,万欲同心结,法宝,6,情意同心,双修之道相互映照,修为更精进.,{extra_dual_cultivation_exp: 100} +8,影遁披风,法宝,8,融身影界,来去无踪,伏击出其不意.,"{extra_move_step: 1, extra_observation_radius: 1}" +9,百兽驭兽符,法宝,2,以兽纹灵符加持,唤引兽心,御兽更易.,{extra_catch_success_rate: 0.1} diff --git a/static/game_configs/persona.csv b/static/game_configs/persona.csv index 8eb2a73..1e2f974 100644 --- a/static/game_configs/persona.csv +++ b/static/game_configs/persona.csv @@ -1,37 +1,37 @@ id,name,exclusion_names,desc,rarity,condition,effects -,,和本persona互斥的persona的名称,描述/用于LLM输入的文本,稀有度(N/R/SR/SSR),选取条件(可用avatar字段/Alignment中文或英文等),"JSON形式" +,,和本persona互斥的persona的名称,描述/用于LLM输入的文本,稀有度(N/R/SR/SSR),选取条件(可用avatar字段/Alignment中文或英文等),"JSON形式(支持宽松格式,见effects.py说明)" 1,理性,无常;随性,你总是会用逻辑来思考问题,做事会谋定而后动。,N, 2,无常,理性;极端正义;极端邪恶;沉思,目标飘忽不定,不会长期坚持一个目标。,N, 3,怠惰,冒险;极端正义;极端邪恶,你总是会拖延,不想努力,更热衷于享受人生。,N, 4,冒险,怠惰;惜命,你总是会冒险,喜欢刺激,总想放手一搏。,N, 5,随性,理性;极端正义;极端邪恶,你总是会随机应变,性子到哪里了就是哪里,没有一定之规。,N, 6,贪财,,你对灵石和财富有着强烈的渴望。,N, -7,药师,,喜欢在山林中寻找各种奇花异草和灵药,对植物有着敏锐的直觉和深厚的兴趣。你认为大自然的恩赐需要用心去发现和珍惜。,R,,"{""extra_harvest_items"": 1}" -8,猎者,,享受在野外追踪猎物的刺激感,对各种动物的习性了如指掌,喜欢捕猎野兽。情况允许也会御兽。,R,,"{""extra_hunt_items"": 1}" +7,药师,,喜欢在山林中寻找各种奇花异草和灵药,对植物有着敏锐的直觉和深厚的兴趣。你认为大自然的恩赐需要用心去发现和珍惜。,R,,{extra_harvest_items: 1} +8,猎者,,享受在野外追踪猎物的刺激感,对各种动物的习性了如指掌,喜欢捕猎野兽。情况允许也会御兽。,R,,{extra_hunt_items: 1} 9,沉思,无常,你总是会深思熟虑,思考问题比较有哲理。,N, -10,惜命,冒险;极端正义;极端邪恶,你总是会珍惜自己的生命,不会轻易冒险。,R,,"{""extra_escape_success_rate"": 0.15}" +10,惜命,冒险;极端正义;极端邪恶,你总是会珍惜自己的生命,不会轻易冒险。,R,,{extra_escape_success_rate: 0.15} 11,友爱,孤僻;淡漠;好斗;复仇;极端正义;极端邪恶,你重视同伴与和谐,乐于助人,倾向通过协作与沟通化解矛盾。,N, 12,复仇,友爱;淡漠,"你绝不轻易放下仇怨,为了复仇愿意付出代价与时间。你必须立刻进行复仇行动。",N,, 13,孤僻,友爱,你喜欢独处,避免与人深交,更信赖自己的判断与行动。,N, 14,淡漠,友爱;复仇;好斗;极端正义;极端邪恶,你情感克制,对外界冷静疏离,不轻易被他人或事件影响。,N, -15,好斗,友爱;淡漠;惜命;胆小,你直面冲突,偏好以力量与对抗解决问题,并格外热衷增加己身战力。,R,,"{""extra_battle_strength_points"": 1}" +15,好斗,友爱;淡漠;惜命;胆小,你直面冲突,偏好以力量与对抗解决问题,并格外热衷增加己身战力。,R,,{extra_battle_strength_points: 1} 16,鲁莽,理性;沉思;惜命,你行事冲动、少考虑后果,常凭直觉立刻行动。,N, -17,胆小,冒险;好斗;复仇;极端正义;极端邪恶,你谨小慎微,容易畏惧风险,倾向回避正面冲突。,N,,"{""extra_escape_success_rate"": 0.1}" +17,胆小,冒险;好斗;复仇;极端正义;极端邪恶,你谨小慎微,容易畏惧风险,倾向回避正面冲突。,N,,{extra_escape_success_rate: 0.1} 18,霸道,友爱;胆小,你行事强势,不讲道理,习惯以自己的利益为先,倾向多吃多占、压人一步,对他人的反对不以为意。,N, -19,修行痴迷,无常;怠惰;随性,你将绝大多数时间用于修炼,厌恶与修行无关的社交与享乐。,R,,"{""extra_cultivate_exp"": 30}" +19,修行痴迷,无常;怠惰;随性,你将绝大多数时间用于修炼,厌恶与修行无关的社交与享乐。,R,,{extra_cultivate_exp: 30} 20,内向,外向,你更享受独处与自我思考,倾向回避不必要的社交与长谈。,N, 21,外向,孤僻;淡漠;内向,你乐于与人交流,主动结识伙伴,倾向接受对话和合作。,N, 22,刻薄,友爱;热情,你在对话中倾向以讽刺、嘲弄、挖苦的方式表达自己,更容易引发冲突与对立;你通常不愿迅速进入友好关系,更可能在不顺利的交流后滋生敌意或结仇。,N, 23,热情,孤僻;淡漠;刻薄,你待人友好、积极回应,倾向用鼓励与赞美拉近距离;你更愿意主动展开善意的交流,乐于合作与分享,N, -24,极端正义,内向;极端邪恶,你对邪恶深恶痛绝,对正义的理想抱有近乎偏执的追求。,SR,avatar.alignment == "正","{""extra_breakthrough_success_rate"": 0.05}" -25,极端邪恶,内向;极端正义,你推崇权力与恐惧,为达目的不择手段,对善良嗤之以鼻。,SR,avatar.alignment == "邪","{""extra_breakthrough_success_rate"": -0.05, ""extra_cultivate_exp"": 20}" -26,开放,腼腆,你对待和他人结为道侣或者双修比较随意,R,,"{""extra_dual_cultivation_exp"": 30}" +24,极端正义,内向;极端邪恶,你对邪恶深恶痛绝,对正义的理想抱有近乎偏执的追求。,SR,avatar.alignment == "正",{extra_breakthrough_success_rate: 0.05} +25,极端邪恶,内向;极端正义,你推崇权力与恐惧,为达目的不择手段,对善良嗤之以鼻。,SR,avatar.alignment == "邪","{extra_breakthrough_success_rate: -0.05, extra_cultivate_exp: 20}" +26,开放,腼腆,你对待和他人结为道侣或者双修比较随意,R,,{extra_dual_cultivation_exp: 30} 27,腼腆,开放,你对待和他人结为道侣或者双修比较谨慎,N, 28,舔狗,孤僻;淡漠;刻薄;腼腆,你对异性中外貌出众者格外友善,倾向主动接近、帮助与合作。,N, 29,嫉妒,友爱;热情,你对在修为、外貌或财富等方面远超于你的人容易产生敌意,更倾向对其冷淡、挑衅或打压。,N, 30,穿越者,,你来自现代社会,怀念现代社会的一切,你的思考(thinking)必须是现代化的思考,SR, -31,气运之子,,天生气运加身,更易遇到奇遇,战斗力也略有提升,SSR,,"{""extra_fortune_probability"": 0.05, ""extra_battle_strength_points"": 2, ""extra_breakthrough_success_rate"": 0.05}" -32,剑痴,怠惰;胆小,以剑入道,剑即是命。你认为剑道至上,战力强悍,但对剑道之外的事物兴趣寥寥。,SR,,"[{""extra_weapon_proficiency_gain"": 1.0, ""when"": ""avatar.weapon.type == WeaponType.SWORD""}, {""extra_battle_strength_points"": 3, ""when"": ""avatar.weapon.type == WeaponType.SWORD""}]" +31,气运之子,,天生气运加身,更易遇到奇遇,战斗力也略有提升,SSR,,"{extra_fortune_probability: 0.05, extra_battle_strength_points: 2, extra_breakthrough_success_rate: 0.05}" +32,剑痴,怠惰;胆小,以剑入道,剑即是命。你认为剑道至上,战力强悍,但对剑道之外的事物兴趣寥寥。,SR,,"[{when: 'avatar.weapon.type == WeaponType.SWORD', extra_weapon_proficiency_gain: 1.0, extra_battle_strength_points: 3}]" 33,散修,,无宗门庇护,四处寻找机缘,警惕性高,善于观察周围环境以自保求存。,N, 34,城府深,鲁莽;热情;外向,深藏不露,行事谨慎,善于算计。你不轻易暴露实力和想法,观察力敏锐,总在暗中盘算。,R, 35,忠诚,孤僻;淡漠;刻薄,重承诺守信义,对认定的人绝不背叛,愿为之赴死。你视背叛为最大耻辱。,R, @@ -40,18 +40,18 @@ id,name,exclusion_names,desc,rarity,condition,effects 38,疑心重,热情;外向;友爱,对任何人都保持怀疑,不轻易信任,时刻警惕他人可能的背叛和算计。,N, 39,体修,惜命;胆小,专注肉身淬炼,体魄强健,近战无敌。你相信肉身才是修行的根本,法术只是旁门左道。,R, 40,炼丹师,好斗,精通丹道,对灵药敏感,擅长炼制丹药。你认为丹药是修行的关键,战斗并非你的专长。,R, -41,福缘深厚,,天生福运,逢凶化吉。虽不如气运之子,但也常有小幸运眷顾。,SR,,"{""extra_fortune_probability"": 0.02}" -42,剑修,怠惰,对剑道有着深厚的兴趣和独特的天赋,持剑修炼时事半功倍。,R,,"[{""extra_weapon_proficiency_gain"": 0.5, ""when"": ""avatar.weapon.type == WeaponType.SWORD""}, {""extra_battle_strength_points"": 1, ""when"": ""avatar.weapon.type == WeaponType.SWORD""}]" -43,刀修,怠惰,专精刀法,对刀道有着独特的理解,持刀修炼时事半功倍。,R,,"[{""extra_weapon_proficiency_gain"": 0.5, ""when"": ""avatar.weapon.type == WeaponType.SABER""}, {""extra_battle_strength_points"": 1, ""when"": ""avatar.weapon.type == WeaponType.SABER""}]" -44,枪修,怠惰,精通枪法,百兵之王在手,修炼速度远超常人。,R,,"[{""extra_weapon_proficiency_gain"": 0.5, ""when"": ""avatar.weapon.type == WeaponType.SPEAR""}, {""extra_battle_strength_points"": 1, ""when"": ""avatar.weapon.type == WeaponType.SPEAR""}]" -45,棍修,怠惰,棍棒在手,天下我有。对棍法有着天生的悟性。,R,,"[{""extra_weapon_proficiency_gain"": 0.5, ""when"": ""avatar.weapon.type == WeaponType.STAFF""}, {""extra_battle_strength_points"": 1, ""when"": ""avatar.weapon.type == WeaponType.STAFF""}]" -46,音律大师,怠惰,精通音律之道,琴笛在手,可攻可守,修炼速度远超常人。,SR,,"[{""extra_weapon_proficiency_gain"": 1.0, ""when"": ""avatar.weapon.type == WeaponType.ZITHER or avatar.weapon.type == WeaponType.FLUTE""}, {""extra_battle_strength_points"": 3, ""when"": ""avatar.weapon.type == WeaponType.ZITHER or avatar.weapon.type == WeaponType.FLUTE""}]" -47,暗器高手,怠惰,擅长使用暗器,出手诡秘莫测,修炼暗器技巧时事半功倍。,R,,"[{""extra_weapon_proficiency_gain"": 0.5, ""when"": ""avatar.weapon.type == WeaponType.HIDDEN_WEAPON""}, {""extra_battle_strength_points"": 1, ""when"": ""avatar.weapon.type == WeaponType.HIDDEN_WEAPON""}]" -48,扇修,怠惰,精通扇法,举手投足间尽显风流,持扇修炼时事半功倍。,R,,"[{""extra_weapon_proficiency_gain"": 0.5, ""when"": ""avatar.weapon.type == WeaponType.FAN""}, {""extra_battle_strength_points"": 1, ""when"": ""avatar.weapon.type == WeaponType.FAN""}]" -49,鞭修,怠惰,精通鞭法,软兵器在手,刚柔并济,修炼速度远超常人。,R,,"[{""extra_weapon_proficiency_gain"": 0.5, ""when"": ""avatar.weapon.type == WeaponType.WHIP""}, {""extra_battle_strength_points"": 1, ""when"": ""avatar.weapon.type == WeaponType.WHIP""}]" -50,刀痴,怠惰;胆小,以刀入道,刀即是命。你认为刀法至上,战力强悍,但对刀道之外的事物兴趣寥寥。,SR,,"[{""extra_weapon_proficiency_gain"": 1.0, ""when"": ""avatar.weapon.type == WeaponType.SABER""}, {""extra_battle_strength_points"": 3, ""when"": ""avatar.weapon.type == WeaponType.SABER""}]" -51,枪痴,怠惰;胆小,以枪入道,枪即是命。你认为枪法至上,战力强悍,但对枪道之外的事物兴趣寥寥。,SR,,"[{""extra_weapon_proficiency_gain"": 1.0, ""when"": ""avatar.weapon.type == WeaponType.SPEAR""}, {""extra_battle_strength_points"": 3, ""when"": ""avatar.weapon.type == WeaponType.SPEAR""}]" -52,棍圣,怠惰;胆小,以棍入道,棍即是命。棍法通神,一棍在手,天下无敌,但对棍道之外的事物兴趣寥寥。,SR,,"[{""extra_weapon_proficiency_gain"": 1.0, ""when"": ""avatar.weapon.type == WeaponType.STAFF""}, {""extra_battle_strength_points"": 3, ""when"": ""avatar.weapon.type == WeaponType.STAFF""}]" -53,扇痴,怠惰;胆小,以扇入道,扇即是命。你认为扇法至上,战力强悍,但对扇道之外的事物兴趣寥寥。,SR,,"[{""extra_weapon_proficiency_gain"": 1.0, ""when"": ""avatar.weapon.type == WeaponType.FAN""}, {""extra_battle_strength_points"": 3, ""when"": ""avatar.weapon.type == WeaponType.FAN""}]" -54,鞭痴,怠惰;胆小,以鞭入道,鞭即是命。你认为鞭法至上,战力强悍,但对鞭道之外的事物兴趣寥寥。,SR,,"[{""extra_weapon_proficiency_gain"": 1.0, ""when"": ""avatar.weapon.type == WeaponType.WHIP""}, {""extra_battle_strength_points"": 3, ""when"": ""avatar.weapon.type == WeaponType.WHIP""}]" -55,暗影宗师,怠惰;胆小,暗器之道登峰造极,杀人于无形。出手必见血,战力惊人,但对暗器之外的事物兴趣寥寥。,SR,,"[{""extra_weapon_proficiency_gain"": 1.0, ""when"": ""avatar.weapon.type == WeaponType.HIDDEN_WEAPON""}, {""extra_battle_strength_points"": 3, ""when"": ""avatar.weapon.type == WeaponType.HIDDEN_WEAPON""}]" +41,福缘深厚,,天生福运,逢凶化吉。虽不如气运之子,但也常有小幸运眷顾。,SR,,{extra_fortune_probability: 0.02} +42,剑修,怠惰,对剑道有着深厚的兴趣和独特的天赋,持剑修炼时事半功倍。,R,,"[{when: 'avatar.weapon.type == WeaponType.SWORD', extra_weapon_proficiency_gain: 0.5, extra_battle_strength_points: 1}]" +43,刀修,怠惰,专精刀法,对刀道有着独特的理解,持刀修炼时事半功倍。,R,,"[{when: 'avatar.weapon.type == WeaponType.SABER', extra_weapon_proficiency_gain: 0.5, extra_battle_strength_points: 1}]" +44,枪修,怠惰,精通枪法,百兵之王在手,修炼速度远超常人。,R,,"[{when: 'avatar.weapon.type == WeaponType.SPEAR', extra_weapon_proficiency_gain: 0.5, extra_battle_strength_points: 1}]" +45,棍修,怠惰,棍棒在手,天下我有。对棍法有着天生的悟性。,R,,"[{when: 'avatar.weapon.type == WeaponType.STAFF', extra_weapon_proficiency_gain: 0.5, extra_battle_strength_points: 1}]" +46,音律大师,怠惰,精通音律之道,琴笛在手,可攻可守,修炼速度远超常人。,SR,,"[{when: 'avatar.weapon.type == WeaponType.ZITHER or avatar.weapon.type == WeaponType.FLUTE', extra_weapon_proficiency_gain: 1.0, extra_battle_strength_points: 3}]" +47,暗器高手,怠惰,擅长使用暗器,出手诡秘莫测,修炼暗器技巧时事半功倍。,R,,"[{when: 'avatar.weapon.type == WeaponType.HIDDEN_WEAPON', extra_weapon_proficiency_gain: 0.5, extra_battle_strength_points: 1}]" +48,扇修,怠惰,精通扇法,举手投足间尽显风流,持扇修炼时事半功倍。,R,,"[{when: 'avatar.weapon.type == WeaponType.FAN', extra_weapon_proficiency_gain: 0.5, extra_battle_strength_points: 1}]" +49,鞭修,怠惰,精通鞭法,软兵器在手,刚柔并济,修炼速度远超常人。,R,,"[{when: 'avatar.weapon.type == WeaponType.WHIP', extra_weapon_proficiency_gain: 0.5, extra_battle_strength_points: 1}]" +50,刀痴,怠惰;胆小,以刀入道,刀即是命。你认为刀法至上,战力强悍,但对刀道之外的事物兴趣寥寥。,SR,,"[{when: 'avatar.weapon.type == WeaponType.SABER', extra_weapon_proficiency_gain: 1.0, extra_battle_strength_points: 3}]" +51,枪痴,怠惰;胆小,以枪入道,枪即是命。你认为枪法至上,战力强悍,但对枪道之外的事物兴趣寥寥。,SR,,"[{when: 'avatar.weapon.type == WeaponType.SPEAR', extra_weapon_proficiency_gain: 1.0, extra_battle_strength_points: 3}]" +52,棍圣,怠惰;胆小,以棍入道,棍即是命。棍法通神,一棍在手,天下无敌,但对棍道之外的事物兴趣寥寥。,SR,,"[{when: 'avatar.weapon.type == WeaponType.STAFF', extra_weapon_proficiency_gain: 1.0, extra_battle_strength_points: 3}]" +53,扇痴,怠惰;胆小,以扇入道,扇即是命。你认为扇法至上,战力强悍,但对扇道之外的事物兴趣寥寥。,SR,,"[{when: 'avatar.weapon.type == WeaponType.FAN', extra_weapon_proficiency_gain: 1.0, extra_battle_strength_points: 3}]" +54,鞭痴,怠惰;胆小,以鞭入道,鞭即是命。你认为鞭法至上,战力强悍,但对鞭道之外的事物兴趣寥寥。,SR,,"[{when: 'avatar.weapon.type == WeaponType.WHIP', extra_weapon_proficiency_gain: 1.0, extra_battle_strength_points: 3}]" +55,暗影宗师,怠惰;胆小,暗器之道登峰造极,杀人于无形。出手必见血,战力惊人,但对暗器之外的事物兴趣寥寥。,SR,,"[{when: 'avatar.weapon.type == WeaponType.HIDDEN_WEAPON', extra_weapon_proficiency_gain: 1.0, extra_battle_strength_points: 3}]" diff --git a/static/game_configs/root.csv b/static/game_configs/root.csv index 654264e..6f8bc59 100644 --- a/static/game_configs/root.csv +++ b/static/game_configs/root.csv @@ -1,5 +1,5 @@ id,key,name,element_list,desc,effects -,,,元素列表以分号分隔(示例:金;木),描述不会在代码中使用,"JSON,例:{""extra_breakthrough_success_rate"": 0.1}" +,,,元素列表以分号分隔(示例:金;木),描述不会在代码中使用,"JSON形式(支持宽松格式,见effects.py说明)" 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} diff --git a/static/game_configs/sect.csv b/static/game_configs/sect.csv index 6ec1045..b68494c 100644 --- a/static/game_configs/sect.csv +++ b/static/game_configs/sect.csv @@ -1,11 +1,11 @@ id,name,desc,member_act_style,alignment,weight,preferred_weapon,effects -,,宗门名称与描述,宗门成员行事风格,阵营(正/中/邪),权重(默认1),倾向兵器类型,effects(JSON) +,,宗门名称与描述,宗门成员行事风格,阵营(正/中/邪),权重(默认1),倾向兵器类型,"effects(JSON形式,支持宽松格式,见effects.py说明)" 1,明心剑宗,通玄界东方第一宗,以无上剑道称雄于世。云纹禁制为不传心法。,清明克己,行止如一。重剑与心法并重,讲究明心见性。,正,1,剑, 2,百兽宗,以驯养灵兽闻名,豢养各种妖兽灵怪为战力。,你言语直接,重视力量与血性,崇尚狩猎与搏斗。,邪,1,鞭, 3,水镜宗,正道十宗之一,实则严守中立。拥有仙界异宝"彻天水镜"可预知未来。,你处事冷静圆融,喜以柔克刚,擅借力与反制。,中,1,扇, 4,冥王宗,行走幽冥之道,术法阴冷狠厉。,你言辞冷厉少情,敬畏因果而不惧杀伐,偏向效率与结果。,邪,1,扇, 5,朱勾宗,邪宗大派。以炼器、机关、暗杀闻名于世,素来阴毒冷僻。,你直面欲望与代价,不惧黑暗,以攻伐见长。,邪,1,暗器, -6,合欢宗,以情入道,靠双修增进修为,善驭人心,长于权变。,你辞令婉转,善于拿捏人欲与局势,以柔制刚。,中,1,琴,"{""legal_actions"": [""DualCultivation""]}" +6,合欢宗,以情入道,靠双修增进修为,善驭人心,长于权变。,你辞令婉转,善于拿捏人欲与局势,以柔制刚。,中,1,琴,{legal_actions: ['DualCultivation']} 7,镇魂宗,铁血风格,擅安魂、封邪、渡厄,兼有刚烈镇压之术。,你肃穆沉稳,重安魂镇邪,少言而果决。,正,1,棍, 8,幽魂噬影宗,镇宗典籍《幽冥录》。幽明气为根基。,你行事隐秘果断,重结果轻虚名,擅潜行与出其不意。,邪,1,刀, 9,千帆城,炼器大宗,巧匠云集。著名法宝有灵灭丝、定魂蓝星、天罗网、万里极光壁、飞翼等。商旅云集,自成体系。,你务实精明,重交易与信誉,崇尚规则与秩序。,中,1,枪, diff --git a/static/game_configs/technique.csv b/static/game_configs/technique.csv index 77d8e6c..7acf194 100644 --- a/static/game_configs/technique.csv +++ b/static/game_configs/technique.csv @@ -1,5 +1,5 @@ id,name,technique_root,grade,desc,weight,condition,sect,effects -,名称,属性,品阶(上中下),描述/提示词,抽样权重,条件,所属宗门,"JSON,例:{""extra_cultivate_exp"": 50}" +,名称,属性,品阶(上中下),描述/提示词,抽样权重,条件,所属宗门,"JSON形式(支持宽松格式,见effects.py说明)" 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,,千帆城, diff --git a/static/game_configs/weapon.csv b/static/game_configs/weapon.csv index 7e101fc..c684010 100644 --- a/static/game_configs/weapon.csv +++ b/static/game_configs/weapon.csv @@ -1,24 +1,24 @@ id,name,weapon_type,grade,sect_id,desc,effects -,名称,兵器类型,等级(普通/宝物/法宝),所属宗门ID(见sect.csv),描述/提示词,"JSON形式" -1,本命剑匣,剑,法宝,1,以心御剑,匣启如霆,剑意随心破万法.,"{""extra_battle_strength_points"": 3}" -4,镇魂钟,棍,法宝,7,钟鸣摄魄,定魂镇邪,护心安魂.,"{""extra_battle_strength_points"": 2, ""extra_observation_radius"": 1}" -6,万魂幡,扇,法宝,4,幡起万魂啾啾,阴风过境.,"{""legal_actions"": [""DevourMortals""], ""extra_battle_strength_points"": ""eval(avatar.weapon.special_data.get('devoured_souls', 0) // 100 * 0.1)""}" -1001,普通剑,剑,普通,,平凡无奇的剑。,"{""extra_battle_strength_points"": 1}" -1002,普通刀,刀,普通,,平凡无奇的刀。,"{""extra_battle_strength_points"": 1}" -1003,普通枪,枪,普通,,平凡无奇的枪。,"{""extra_battle_strength_points"": 1}" -1004,普通棍,棍,普通,,平凡无奇的棍。,"{""extra_battle_strength_points"": 1}" -1005,普通扇,扇,普通,,平凡无奇的扇。,"{""extra_battle_strength_points"": 1}" -1006,普通鞭,鞭,普通,,平凡无奇的鞭。,"{""extra_battle_strength_points"": 1}" -1007,普通琴,琴,普通,,平凡无奇的琴。,"{""extra_battle_strength_points"": 1}" -1008,普通笛,笛,普通,,平凡无奇的笛。,"{""extra_battle_strength_points"": 1}" -1009,普通暗器,暗器,普通,,平凡无奇的暗器。,"{""extra_battle_strength_points"": 1}" -2001,青霜剑,剑,宝物,,剑身寒气逼人,剑锋如霜。,"{""extra_battle_strength_points"": 2}" -2002,破军刀,刀,宝物,,刀势霸道凌厉,破军杀阵。,"{""extra_battle_strength_points"": 2}" -2003,龙吟枪,枪,宝物,,枪出如龙,势如破竹。,"{""extra_battle_strength_points"": 2, ""extra_max_hp"": 50}" -2004,降魔杵,棍,宝物,,降妖除魔,正气凛然。,"{""extra_battle_strength_points"": 2, ""extra_max_hp"": 50}" -2005,紫罗扇,扇,宝物,,扇动间紫气缭绕,洞悉先机。,"{""extra_battle_strength_points"": 2, ""extra_observation_radius"": 1}" -2006,蛟龙鞭,鞭,宝物,,鞭身如蛟龙盘旋,柔中带刚。,"{""extra_battle_strength_points"": 2}" -2007,瑶光琴,琴,宝物,,琴音悠扬,助人悟道。,"{""extra_battle_strength_points"": 2, ""cultivation_speed_rate"": 1.1}" -2008,凤鸣笛,笛,宝物,,笛声如凤鸣九天,清心宁神。,"{""extra_battle_strength_points"": 2, ""cultivation_speed_rate"": 1.1}" -2009,追魂刺,暗器,宝物,,暗器如影随形,取人性命于无声。,"{""extra_battle_strength_points"": 2}" +,名称,兵器类型,等级(普通/宝物/法宝),所属宗门ID(见sect.csv),描述/提示词,"JSON形式(支持宽松格式,见effects.py说明)" +1,本命剑匣,剑,法宝,1,以心御剑,匣启如霆,剑意随心破万法.,{extra_battle_strength_points: 3} +4,镇魂钟,棍,法宝,7,钟鸣摄魄,定魂镇邪,护心安魂.,"{extra_battle_strength_points: 2, extra_observation_radius: 1}" +6,万魂幡,扇,法宝,4,幡起万魂啾啾,阴风过境.,"{legal_actions: ['DevourMortals'], extra_battle_strength_points: 'avatar.weapon.special_data.get(""devoured_souls"", 0) // 100 * 0.1'}" +1001,普通剑,剑,普通,,平凡无奇的剑。,{extra_battle_strength_points: 1} +1002,普通刀,刀,普通,,平凡无奇的刀。,{extra_battle_strength_points: 1} +1003,普通枪,枪,普通,,平凡无奇的枪。,{extra_battle_strength_points: 1} +1004,普通棍,棍,普通,,平凡无奇的棍。,{extra_battle_strength_points: 1} +1005,普通扇,扇,普通,,平凡无奇的扇。,{extra_battle_strength_points: 1} +1006,普通鞭,鞭,普通,,平凡无奇的鞭。,{extra_battle_strength_points: 1} +1007,普通琴,琴,普通,,平凡无奇的琴。,{extra_battle_strength_points: 1} +1008,普通笛,笛,普通,,平凡无奇的笛。,{extra_battle_strength_points: 1} +1009,普通暗器,暗器,普通,,平凡无奇的暗器。,{extra_battle_strength_points: 1} +2001,青霜剑,剑,宝物,,剑身寒气逼人,剑锋如霜。,{extra_battle_strength_points: 2} +2002,破军刀,刀,宝物,,刀势霸道凌厉,破军杀阵。,{extra_battle_strength_points: 2} +2003,龙吟枪,枪,宝物,,枪出如龙,势如破竹。,"{extra_battle_strength_points: 2, extra_max_hp: 50}" +2004,降魔杵,棍,宝物,,降妖除魔,正气凛然。,"{extra_battle_strength_points: 2, extra_max_hp: 50}" +2005,紫罗扇,扇,宝物,,扇动间紫气缭绕,洞悉先机。,"{extra_battle_strength_points: 2, extra_observation_radius: 1}" +2006,蛟龙鞭,鞭,宝物,,鞭身如蛟龙盘旋,柔中带刚。,{extra_battle_strength_points: 2} +2007,瑶光琴,琴,宝物,,琴音悠扬,助人悟道。,"{extra_battle_strength_points: 2, cultivation_speed_rate: 1.1}" +2008,凤鸣笛,笛,宝物,,笛声如凤鸣九天,清心宁神。,"{extra_battle_strength_points: 2, cultivation_speed_rate: 1.1}" +2009,追魂刺,暗器,宝物,,暗器如影随形,取人性命于无声。,{extra_battle_strength_points: 2}