This commit is contained in:
bridge
2025-11-22 15:57:59 +08:00
parent 6a6cc9e1c5
commit a65a23726e
14 changed files with 103 additions and 214 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 487 KiB

After

Width:  |  Height:  |  Size: 668 KiB

View File

@@ -45,7 +45,7 @@ class Alignment(Enum):
t = str(text).strip().lower()
if t in {"", "righteous", "right"}:
return Alignment.RIGHTEOUS
if t in {"", "neutral", "middle", "center"}:
if t in {"", "中立", "neutral", "middle", "center"}:
return Alignment.NEUTRAL
if t in {"", "evil"}:
return Alignment.EVIL
@@ -54,7 +54,7 @@ class Alignment(Enum):
alignment_strs = {
Alignment.RIGHTEOUS: "",
Alignment.NEUTRAL: "",
Alignment.NEUTRAL: "",
Alignment.EVIL: "",
}

View File

@@ -535,23 +535,6 @@ class Avatar(AvatarSaveMixin, AvatarLoadMixin):
"""
self.age.update_age(current_month_stamp, self.birth_month_stamp)
def get_age_info(self) -> dict:
"""
获取年龄相关信息
返回:
包含年龄、期望寿命、死亡概率等信息的字典
"""
current_age, expected_lifespan = self.age.get_lifespan_progress()
death_probability = self.age.get_death_probability()
return {
"current_age": round(current_age, 2),
"expected_lifespan": expected_lifespan,
"is_elderly": self.age.is_elderly(),
"death_probability": round(death_probability, 4),
"realm": self.cultivation_progress.realm.value
}
def is_in_region(self, region: Region|None) -> bool:
current_region = self.tile.region
@@ -640,25 +623,6 @@ class Avatar(AvatarSaveMixin, AvatarLoadMixin):
if to_sidebar:
self._pending_events.append(event)
def get_action_space_str(self) -> str:
action_space = self.get_action_space()
action_space_str = json.dumps(action_space, ensure_ascii=False)
return action_space_str
def get_action_space(self) -> list[dict]:
"""
获取动作空间
"""
from src.classes.actions import ALL_ACTUAL_ACTION_NAMES
actual_actions = [self.create_action(action_cls_name) for action_cls_name in ALL_ACTUAL_ACTION_NAMES]
doable_actions: list[Action] = []
for action in actual_actions:
# 用 can_start 的无参形式,用于“是否在动作空间中显示”
ok, _reason = action.can_start()
if ok:
doable_actions.append(action)
action_space = [action.name for action in doable_actions]
return action_space
def get_expanded_info(
self,
@@ -827,13 +791,6 @@ class Avatar(AvatarSaveMixin, AvatarLoadMixin):
from src.classes.relations import clear_relation
clear_relation(self, other)
def _get_relations_summary_str(self, max_count: int = 8) -> str:
entries: list[str] = []
for other in self.relations.keys():
entries.append(self.get_other_avatar_info(other))
if not entries:
return ""
return "".join(entries[:max_count])
def get_co_region_avatars(self, avatars: List["Avatar"]) -> List["Avatar"]:
"""

View File

@@ -12,11 +12,6 @@ if TYPE_CHECKING:
# 战斗力参数参考文明6思想但适配本项目数值体系
_STRENGTH_LOG_SCALE: float = 10.0 # 修为强度的对数缩放10×ln(1+level)
_GRADE_POINTS = {
TechniqueGrade.LOWER: 0.0,
TechniqueGrade.MIDDLE: 3.0,
TechniqueGrade.UPPER: 6.0,
}
_SUPPRESSION_POINTS: float = 3.0 # 属性克制即加固定战斗力点数
_CIV6_K: float = 0.04 # 伤害指数系数e^(K×差值)
_WIN_BETA: float = 0.15 # 胜率逻辑函数斜率
@@ -31,17 +26,15 @@ _PAIR_BIAS: float = 1.1 # 成对偏置:让败者再多一
def get_base_strength(self_avatar: "Avatar") -> float:
"""
基础战斗力:与对手无关。
= 10×ln(1+修为等级) + 品阶点数(0/3/6)
= 10×ln(1+修为等级) + 额外效果点数
"""
level = max(1, self_avatar.cultivation_progress.level)
strength_from_level = _STRENGTH_LOG_SCALE * math.log1p(level)
grade_points = 0.0
if self_avatar.technique is not None:
grade_points = _GRADE_POINTS.get(self_avatar.technique.grade, 0.0)
# 来自效果的额外战斗力点数(例如法宝带来的被动加成)
# 来自效果的额外战斗力点数(例如功法、法宝带来的被动加成)
extra_raw = self_avatar.effects.get("extra_battle_strength_points", 0)
extra_points = float(extra_raw or 0.0)
return strength_from_level + grade_points + extra_points
return strength_from_level + extra_points
def _combat_strength_vs(opponent: "Avatar", self_avatar: "Avatar") -> float:

View File

@@ -252,47 +252,10 @@ def get_technique_by_sect(sect) -> Technique:
return random.choices(candidates, weights=weights, k=1)[0]
def get_grade_bonus(grade: TechniqueGrade) -> float:
if grade is TechniqueGrade.UPPER:
return 0.10
if grade is TechniqueGrade.MIDDLE:
return 0.05
return 0.0
def get_suppression_bonus(att_attr: TechniqueAttribute, def_attr: TechniqueAttribute) -> float:
return 0.10 if def_attr in SUPPRESSION.get(att_attr, set()) else 0.0
# 相对品阶优势加成:按“品阶差×步进”的方式计算
# - 品阶映射:下品=0中品=1上品=2
# - 每级差距步进5%最大±10%
_GRADE_RANK: dict[TechniqueGrade, int] = {
TechniqueGrade.LOWER: 0,
TechniqueGrade.MIDDLE: 1,
TechniqueGrade.UPPER: 2,
}
def get_grade_advantage_bonus(attacker_grade: Optional[TechniqueGrade], defender_grade: Optional[TechniqueGrade]) -> float:
"""
根据双方品阶差计算进攻方的相对加成:
- diff = rank(att) - rank(def)
- bonus = 0.05 × diff夹紧到 [-0.10, 0.10]
- 任一为空则视为无加成
返回:进攻方概率或伤害的相对加成(可为负)。
"""
if attacker_grade is None or defender_grade is None:
return 0.0
diff = _GRADE_RANK[attacker_grade] - _GRADE_RANK[defender_grade]
bonus = 0.05 * diff
if bonus > 0.10:
bonus = 0.10
if bonus < -0.10:
bonus = -0.10
return bonus
# 将功法属性映射为默认的灵根(邪功法不返回)
def attribute_to_root(attr: TechniqueAttribute) -> Optional[Root]:

View File

@@ -35,6 +35,8 @@ game_instance = {
"is_paused": True # 默认启动为暂停状态,等待前端连接唤醒
}
# 触发配置重载的标记 (technique.csv updated)
# 简易的命令行参数检查 (不使用 argparse 以避免冲突和时序问题)
IS_DEV_MODE = "--dev" in sys.argv
@@ -411,20 +413,6 @@ def get_map():
"regions": regions_data
}
@app.post("/api/step")
async def step_world():
"""手动触发一帧(一个月)"""
sim = game_instance["sim"]
if not sim:
return {"error": "Sim not initialized"}
events = await sim.step()
return {
"message": "Step executed",
"event_count": len(events),
"events_sample": [str(e) for e in events[:5]]
}
@app.post("/api/control/pause")
def pause_game():

View File

@@ -1,16 +0,0 @@
from fastapi import FastAPI
import uvicorn
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
@app.get("/api/state")
def get_state():
return {"status": "ok"}
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8001)

View File

@@ -20,12 +20,22 @@ EFFECT_DESC_MAP = {
"extra_escape_success_rate": "逃跑成功率",
"extra_observation_radius": "感知范围",
"extra_move_step": "移动步长",
"legal_actions": "特殊能力",
}
ACTION_DESC_MAP = {
"DualCultivation": "双修",
"DevourMortals": "吞噬凡人",
}
def format_value(key: str, value: Any) -> str:
"""
格式化效果数值
"""
if key == "legal_actions" and isinstance(value, list):
actions = [ACTION_DESC_MAP.get(str(a), str(a)) for a in value]
return "".join(actions)
if isinstance(value, (int, float)):
# 处理百分比类型的字段
if "rate" in key or "probability" in key or "chance" in key or "multiplier" in key or "gain" in key:
@@ -69,10 +79,13 @@ def format_effects_to_text(effects: dict[str, Any] | list[dict[str, Any]]) -> st
# 跳过 eval 表达式或者无法解析的 key或者直接显示 key
name = EFFECT_DESC_MAP.get(k, k)
# 如果是 eval 表达式(字符串形式)
if isinstance(v, str) and v.startswith("eval("):
# 尝试提取简单的描述,或者显示"特殊效果"
val_str = "特殊效果"
# 如果是 eval 表达式(字符串形式)或者看起来像代码
if isinstance(v, str):
if v.startswith("eval(") or "avatar." in v or "//" in v:
# 尝试提取简单的描述,或者显示"特殊效果"
val_str = "特殊效果(动态)"
else:
val_str = format_value(k, v)
else:
val_str = format_value(k, v)

View File

@@ -1,5 +1,5 @@
id,name,exclusion_names,desc,rarity,condition,effects
,,和本persona互斥的persona的名称,描述/用于LLM输入的文本,稀有度(N/R/SR/SSR),选取条件(可用avatar字段/Alignment中文或英文等),"JSON形式支持宽松格式见effects.py说明"
,,和本persona互斥的persona的名称,描述/用于LLM输入的文本,稀有度(N/R/SR/SSR),选取条件(可用avatar字段/Alignment中文或英文等),JSON形式支持宽松格式见effects.py说明
1,理性,无常;随性,你总是会用逻辑来思考问题,做事会谋定而后动。,N,
2,无常,理性;极端正义;极端邪恶;沉思,目标飘忽不定,不会长期坚持一个目标。,N,
3,怠惰,冒险;极端正义;极端邪恶,你总是会拖延,不想努力,更热衷于享受人生。,N,
@@ -11,7 +11,7 @@ id,name,exclusion_names,desc,rarity,condition,effects
9,沉思,无常,你总是会深思熟虑,思考问题比较有哲理。,N,
10,惜命,冒险;极端正义;极端邪恶,你总是会珍惜自己的生命,不会轻易冒险。,R,,{extra_escape_success_rate: 0.15}
11,友爱,孤僻;淡漠;好斗;复仇;极端正义;极端邪恶,你重视同伴与和谐,乐于助人,倾向通过协作与沟通化解矛盾。,N,
12,复仇,友爱;淡漠,"你绝不轻易放下仇怨,为了复仇愿意付出代价与时间。你必须立刻进行复仇行动。",N,,
12,复仇,友爱;淡漠,你绝不轻易放下仇怨,为了复仇愿意付出代价与时间。你必须立刻进行复仇行动。,N,,
13,孤僻,友爱,你喜欢独处,避免与人深交,更信赖自己的判断与行动。,N,
14,淡漠,友爱;复仇;好斗;极端正义;极端邪恶,你情感克制,对外界冷静疏离,不轻易被他人或事件影响。,N,
15,好斗,友爱;淡漠;惜命;胆小,你直面冲突,偏好以力量与对抗解决问题,并格外热衷增加己身战力。,R,,{extra_battle_strength_points: 1}
@@ -23,8 +23,8 @@ id,name,exclusion_names,desc,rarity,condition,effects
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}"
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,
@@ -32,26 +32,25 @@ id,name,exclusion_names,desc,rarity,condition,effects
30,穿越者,,你来自现代社会怀念现代社会的一切你的思考thinking必须是现代化的思考,SR,
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,
36,狠辣,友爱;热情;胆小,行事果决狠辣,不留后患,斩草必除根。你认为心慈手软只会害了自己,N,
37,生者,无常;随性,经历过一世,对未来有模糊预知,行事更有目的性。你比常人更清楚什么重要,什么是陷阱,SSR,
38,疑心重,热情;外向;友爱,对任何人都保持怀疑,不轻易信任,时刻警惕他人可能的背叛和算计,N,
39,体修,惜命;胆小,专注肉身淬炼,体魄强健,近战无敌。你相信肉身才是修行的根本,法术只是旁门左道,R,
40,炼丹师,好斗,精通丹道,对灵药敏感,擅长炼制丹药。你认为丹药是修行的关键,战斗并非你的专长,R,
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}]"
33,心机深沉,鲁莽;热情;外向,深藏不露,行事谨慎,善于算计。你不轻易暴露实力和想法,观察力敏锐,总在暗中盘算,R,
34,忠诚,孤僻;淡漠;刻薄,重承诺守信义,对认定的人绝不背叛,愿为之赴死。你视背叛为最大耻辱,R,
35,狠辣,友爱;热情;胆小,行事果决狠辣,不留后患,斩草必除根。你认为心慈手软只会害了自己,N,
36,重生者,无常;随性,经历过一世,对未来有模糊预知,行事更有目的性。你比常人更清楚什么重要,什么是陷阱,SSR,
37,疑心,热情;外向;友爱,对任何人都保持怀疑,不轻易信任,时刻警惕他人可能的背叛和算计,N,
38,体修,惜命;胆小,专注肉身淬炼,体魄强健,近战无敌。你相信肉身才是修行的根本,法术只是旁门左道,R,
39,炼丹师,好斗,精通丹道,对灵药敏感,擅长炼制丹药。你认为丹药是修行的关键,战斗并非你的专长,R,
40,福缘深厚,,天生福运,逢凶化吉。虽不如气运之子,但也常有小幸运眷顾,SR,,{extra_fortune_probability: 0.02}
41,剑修,怠惰,对剑道有着深厚的兴趣和独特的天赋,持剑修炼时事半功倍,R,,"[{when: 'avatar.weapon.type == WeaponType.SWORD', extra_weapon_proficiency_gain: 0.5, extra_battle_strength_points: 1}]"
42,,怠惰,专精刀法,对刀道有着独特的理解,持修炼时事半功倍。,R,,"[{when: 'avatar.weapon.type == WeaponType.SABER', extra_weapon_proficiency_gain: 0.5, extra_battle_strength_points: 1}]"
43,,怠惰,精通枪法,百兵之王在手,修炼速度远超常人,R,,"[{when: 'avatar.weapon.type == WeaponType.SPEAR', extra_weapon_proficiency_gain: 0.5, extra_battle_strength_points: 1}]"
44,,怠惰,棍棒在手,天下我有。对棍法有着天生的悟性,R,,"[{when: 'avatar.weapon.type == WeaponType.STAFF', extra_weapon_proficiency_gain: 0.5, extra_battle_strength_points: 1}]"
45,音律大师,怠惰,精通音律之道,琴笛在手,可攻可守,修炼速度远超常人,SR,,"[{when: 'avatar.weapon.type == WeaponType.ZITHER or avatar.weapon.type == WeaponType.FLUTE', extra_weapon_proficiency_gain: 1.0, extra_battle_strength_points: 3}]"
46,暗器高手,怠惰,擅长使用暗器,出手诡秘莫测,修炼暗器技巧时事半功倍,R,,"[{when: 'avatar.weapon.type == WeaponType.HIDDEN_WEAPON', extra_weapon_proficiency_gain: 0.5, extra_battle_strength_points: 1}]"
47,扇修,怠惰,精通扇法,举手投足间尽显风流,持扇修炼时事半功倍。,R,,"[{when: 'avatar.weapon.type == WeaponType.FAN', extra_weapon_proficiency_gain: 0.5, extra_battle_strength_points: 1}]"
48,,怠惰,精通法,软兵器在手,刚柔并济,修炼速度远超常人,R,,"[{when: 'avatar.weapon.type == WeaponType.WHIP', extra_weapon_proficiency_gain: 0.5, extra_battle_strength_points: 1}]"
49,刀痴,怠惰;胆小,以刀入道,刀即是命。你认为刀法至上,战力强悍,但对刀道之外的事物兴趣寥寥,SR,,"[{when: 'avatar.weapon.type == WeaponType.SABER', extra_weapon_proficiency_gain: 1.0, extra_battle_strength_points: 3}]"
50,,怠惰;胆小,入道,即是命。你认为法至上,战力强悍,但对道之外的事物兴趣寥寥。,SR,,"[{when: 'avatar.weapon.type == WeaponType.SPEAR', extra_weapon_proficiency_gain: 1.0, extra_battle_strength_points: 3}]"
51,棍圣,怠惰;胆小,入道,即是命。棍法通神,一棍在手,天下无敌,但对道之外的事物兴趣寥寥。,SR,,"[{when: 'avatar.weapon.type == WeaponType.STAFF', extra_weapon_proficiency_gain: 1.0, extra_battle_strength_points: 3}]"
52,扇痴,怠惰;胆小,入道,即是命。你认为扇法至上,战力强悍,但对道之外的事物兴趣寥寥。,SR,,"[{when: 'avatar.weapon.type == WeaponType.FAN', extra_weapon_proficiency_gain: 1.0, extra_battle_strength_points: 3}]"
53,,怠惰;胆小,入道,即是命。你认为法至上,战力强悍,但对道之外的事物兴趣寥寥。,SR,,"[{when: 'avatar.weapon.type == WeaponType.WHIP', extra_weapon_proficiency_gain: 1.0, extra_battle_strength_points: 3}]"
54,暗影宗师,怠惰;胆小,暗器之道登峰造极,杀人于无形。出手必见血,战力惊人,但对暗器之外的事物兴趣寥寥。,SR,,"[{when: 'avatar.weapon.type == WeaponType.HIDDEN_WEAPON', extra_weapon_proficiency_gain: 1.0, extra_battle_strength_points: 3}]"
Can't render this file because it contains an unexpected character in line 26 and column 136.

View File

@@ -1,11 +1,11 @@
id,name,desc,member_act_style,alignment,weight,preferred_weapon,effects
,,宗门名称与描述,宗门成员行事风格,阵营(正/中/邪),权重(默认1),倾向兵器类型,"effects(JSON形式支持宽松格式见effects.py说明)"
,,宗门名称与描述,宗门成员行事风格,阵营(正/中/邪),权重(默认1),倾向兵器类型,"effects(JSON形式支持宽松格式见effects.py说明)"
1,明心剑宗,通玄界东方第一宗,以无上剑道称雄于世。云纹禁制为不传心法。,清明克己,行止如一。重剑与心法并重,讲究明心见性。,,1,,
2,百兽宗,以驯养灵兽闻名,豢养各种妖兽灵怪为战力。,你言语直接,重视力量与血性,崇尚狩猎与搏斗。,,1,,
3,水镜宗,正道十宗之一,实则严守中立。拥有仙界异宝"彻天水镜"可预知未来。,你处事冷静圆融,喜以柔克刚,擅借力与反制。,,1,,
3,水镜宗,正道十宗之一,实则严守中立。拥有仙界异宝"彻天水镜"可预知未来。,你处事冷静圆融,喜以柔克刚,擅借力与反制。,,1,,
4,冥王宗,行走幽冥之道,术法阴冷狠厉。,你言辞冷厉少情,敬畏因果而不惧杀伐,偏向效率与结果。,,1,,
5,朱勾宗,邪宗大派。以炼器、机关、暗杀闻名于世,素来阴毒冷僻。,你直面欲望与代价,不惧黑暗,以攻伐见长。,,1,暗器,
6,合欢宗,以情入道,靠双修增进修为,善驭人心,长于权变。,你辞令婉转,善于拿捏人欲与局势,以柔制刚。,,1,,{legal_actions: ['DualCultivation']}
6,合欢宗,以情入道,靠双修增进修为,善驭人心,长于权变。,你辞令婉转,善于拿捏人欲与局势,以柔制刚。,,1,,{legal_actions: ['DualCultivation']}
7,镇魂宗,铁血风格,擅安魂、封邪、渡厄,兼有刚烈镇压之术。,你肃穆沉稳,重安魂镇邪,少言而果决。,,1,,
8,幽魂噬影宗,镇宗典籍《幽冥录》。幽明气为根基。,你行事隐秘果断,重结果轻虚名,擅潜行与出其不意。,,1,,
9,千帆城,炼器大宗,巧匠云集。著名法宝有灵灭丝、定魂蓝星、天罗网、万里极光壁、飞翼等。商旅云集,自成体系。,你务实精明,重交易与信誉,崇尚规则与秩序。,,1,,
9,千帆城,炼器大宗,巧匠云集。著名法宝有灵灭丝、定魂蓝星、天罗网、万里极光壁、飞翼等。商旅云集,自成体系。,你务实精明,重交易与信誉,崇尚规则与秩序。,,1,,
Can't render this file because it contains an unexpected character in line 5 and column 73.

View File

@@ -1,50 +1,49 @@
id,name,technique_root,grade,desc,weight,condition,sect,effects
,名称,属性,品阶(上中下),描述/提示词,抽样权重,条件,所属宗门,"JSON形式支持宽松格式见effects.py说明"
,名称,属性,品阶(上中下),描述/提示词,抽样权重,条件,所属宗门,JSON形式支持宽松格式见effects.py说明
1,太乙金光锻体诀,,下品,运太乙金光淬骨炼筋,金罡护体,刀兵难侵。,1,,,
2,金阳破甲术,,中品,融金阳之炽与锋,一往破敌,破甲断魄。,1,,,
2,金阳破甲术,,中品,融金阳之炽与锋,一往破敌,破甲断魄。,1,,,"{""extra_battle_strength_points"": 3}"
4,青木长春诀,,下品,借青木长春之机,涓涓养元,稳固根基。,1,,,
5,碧林长生法,,中品,汲林海生机,法源不竭,柔而不折。,1,,,
5,碧林长生法,,中品,汲林海生机,法源不竭,柔而不折。,1,,,"{""extra_battle_strength_points"": 3}"
7,玄冥敛息诀,,下品,以玄冥静息收摄心神,润物无声。,1,,,
8,玄水化海术,,中品,以玄水化百川,绵延不绝,攻守随势。,1,,,
8,玄水化海术,,中品,以玄水化百川,绵延不绝,攻守随势。,1,,,"{""extra_battle_strength_points"": 3}"
10,南明离火心诀,,下品,承南明离火之炽,鼓荡心魄,炼魂淬魄。,1,,,
11,赤炎炼真诀,,中品,以赤炎炼真元,去伪存真,攻势如潮。,1,,,
11,赤炎炼真诀,,中品,以赤炎炼真元,去伪存真,攻势如潮。,1,,,"{""extra_battle_strength_points"": 3}"
13,厚土镇魄诀,,下品,以厚土安神定魄,稳如山嶽,不动如山。,1,,,
14,玄黄定岳法,,中品,以玄黄凝岳势,千钧一力,镇压四方。,1,,,
14,玄黄定岳法,,中品,以玄黄凝岳势,千钧一力,镇压四方。,1,,,"{""extra_battle_strength_points"": 3}"
16,玄冰凝真诀,,下品,以玄冰凝灵,清寒护体,心湖如镜。,1,,,
17,冰魄玄寒法,,中品,御玄寒之魄,封江冻海,以静制动。,1,,,
17,冰魄玄寒法,,中品,御玄寒之魄,封江冻海,以静制动。,1,,,"{""extra_battle_strength_points"": 3}"
19,御风术,,下品,以清风导息,轻身迅行,形如掠影。,1,,,
20,清风御行法,,中品,驭风行空,攻守兼备,灵动飘逸。,1,,,
20,清风御行法,,中品,驭风行空,攻守兼备,灵动飘逸。,1,,,"{""extra_battle_strength_points"": 3}"
22,幽冥潜形术,,下品,以幽冥藏形,锋芒尽敛,伺机而动。,1,,,
23,玄夜无相法,,中品,夜行无相,出入无痕,摄人心魄。,1,,,
23,玄夜无相法,,中品,夜行无相,出入无痕,摄人心魄。,1,,,"{""extra_battle_strength_points"": 3}"
25,九天淬体雷诀,,下品,引九天霆罡击体,筋骨再生,爆发如雷。,1,,,
26,九霄养雷法,,中品,引九霄真雷,养气通窍,威势赫然。,1,,,
26,九霄养雷法,,中品,引九霄真雷,养气通窍,威势赫然。,1,,,"{""extra_battle_strength_points"": 3}"
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}"
36,彻天水镜观,,上品,以彻天水镜观机,借势化力,先机在握。,10,,水镜宗,
37,寒漪反斩法,,上品,以寒漪回折之势,四两拨千斤,刚柔相济。,10,,水镜宗,
38,镜花游身步,,上品,以轻风流转为引,身化水月,进退自如。,10,,水镜宗,
39,幽冥镇狱经,,上品,引幽冥阴煞镇压万灵,寒魄凝骨,万劫不侵。,10,,冥王宗,
40,冥焰噬神法,,上品,以冥焰噬神,逆夺生机,吞灵化魄。,10,,冥王宗,"{extra_breakthrough_success_rate: -0.1, extra_cultivate_exp: 50}"
41,黄泉引魄步,,上品,以玄寒引魄入泉,步步生霜,摄魂夺魄。,10,,冥王宗,
42,赤狱炼锋诀,,上品,以赤狱真火炼锋,法器通灵,杀机更盛。,10,,朱勾宗,
43,魇丝摄魂术,,上品,以魇丝无声摄魄,藏形夺命,来去无迹。,10,,朱勾宗,
44,噬心傀儡经,,上品,以金罡刻阵,傀儡载魄,攻守如一。,10,,朱勾宗,
45,双修合和典,,上品,以清润相济,合气生生,周天圆满。,10,,合欢宗,
46,魅月摄情术,,上品,以魅月摄心,惑而不乱,借情化力。,10,,合欢宗,
47,绮罗化影步,,上品,以轻纱化影,形随意转,柔中带锋。,10,,合欢宗,
48,镇岳定魂经,,上品,以玄黄定岳势,安神定魄,万邪难侵。,10,,镇魂宗,
49,霆狱伏邪法,,上品,引九霄霆威压邪,刚猛无俦,镇压不返。,10,,镇魂宗,
50,金章封煞术,,上品,以金章为印,封煞束灵,斩乱镇邪。,10,,镇魂宗,
51,幽冥无相诀,,上品,隐形无相,出没幽明,摄心夺魄于无声。,10,,幽魂噬影宗,
52,噬影穿行步,,上品,以风掠影,穿行缝隙,先至而不留痕。,10,,幽魂噬影宗,
53,冥狱吞魄经,,上品,循幽冥吞魄之道,化敌为养,速成险绝。,10,,幽魂噬影宗,"{extra_breakthrough_success_rate: -0.1, extra_cultivate_exp: 50}"
54,天罗机巧篇,,上品,精研机巧阵枢,百变应敌,器术合一。,10,,千帆城,
55,蓝星定魂阵,,上品,以厚土定魂为基,阵锁心神,稳如磐石。,10,,千帆城,
56,飞翼乘风术,,上品,乘风而行,纵横千里,御器齐驱。,10,,千帆城,
29,冥狱吞灵大法,,中品,循冥狱之道吞噬灵魄,逆乱阴阳,速成之途。,1,,,"{""extra_breakthrough_success_rate"": -0.1, ""extra_cultivate_exp"": 50, ""extra_battle_strength_points"": 3}"
30,明心归一剑典,,上品,以剑返本归一,明镜止水,一剑断妄。,10,,明心剑宗,"{""extra_battle_strength_points"": 6}"
31,霆光明志剑,,上品,以霆光贯剑意,电掣雷行,破虚斩障。,10,,明心剑宗,"{""extra_battle_strength_points"": 6}"
32,离火明心诀,,上品,以离火照见自心,去蔽存真,剑随心行。,10,,明心剑宗,"{""extra_battle_strength_points"": 6}"
33,御兽玄纲,,上品,以木灵沟通群兽,血脉契合,驱策如臂。,10,,百兽宗,"{""extra_battle_strength_points"": 6}"
34,蛮荒镇骨体,,上品,以厚土淬锻筋骨,躯壳如山,血勇不挫。,10,,百兽宗,"{""extra_battle_strength_points"": 6}"
35,血啸狩魂诀,,上品,以嗜血啸魄摄魂,狩猎杀伐,越战越猛。,10,,百兽宗,"{""extra_breakthrough_success_rate"": -0.1, ""extra_cultivate_exp"": 50, ""extra_battle_strength_points"": 6}"
36,彻天水镜观,,上品,以彻天水镜观机,借势化力,先机在握。,10,,水镜宗,"{""extra_battle_strength_points"": 6}"
37,寒漪反斩法,,上品,以寒漪回折之势,四两拨千斤,刚柔相济。,10,,水镜宗,"{""extra_battle_strength_points"": 6}"
38,镜花游身步,,上品,以轻风流转为引,身化水月,进退自如。,10,,水镜宗,"{""extra_battle_strength_points"": 6}"
39,幽冥镇狱经,,上品,引幽冥阴煞镇压万灵,寒魄凝骨,万劫不侵。,10,,冥王宗,"{""extra_battle_strength_points"": 6}"
40,冥焰噬神法,,上品,以冥焰噬神,逆夺生机,吞灵化魄。,10,,冥王宗,"{""extra_breakthrough_success_rate"": -0.1, ""extra_cultivate_exp"": 50, ""extra_battle_strength_points"": 6}"
41,黄泉引魄步,,上品,以玄寒引魄入泉,步步生霜,摄魂夺魄。,10,,冥王宗,"{""extra_battle_strength_points"": 6}"
42,赤狱炼锋诀,,上品,以赤狱真火炼锋,法器通灵,杀机更盛。,10,,朱勾宗,"{""extra_battle_strength_points"": 6}"
43,魇丝摄魂术,,上品,以魇丝无声摄魄,藏形夺命,来去无迹。,10,,朱勾宗,"{""extra_battle_strength_points"": 6}"
44,噬心傀儡经,,上品,以金罡刻阵,傀儡载魄,攻守如一。,10,,朱勾宗,"{""extra_battle_strength_points"": 6}"
45,双修合和典,,上品,以清润相济,合气生生,周天圆满。,10,,合欢宗,"{""extra_battle_strength_points"": 6}"
46,魅月摄情术,,上品,以魅月摄心,惑而不乱,借情化力。,10,,合欢宗,"{""extra_battle_strength_points"": 6}"
47,绮罗化影步,,上品,以轻纱化影,形随意转,柔中带锋。,10,,合欢宗,"{""extra_battle_strength_points"": 6}"
48,镇岳定魂经,,上品,以玄黄定岳势,安神定魄,万邪难侵。,10,,镇魂宗,"{""extra_battle_strength_points"": 6}"
49,霆狱伏邪法,,上品,引九霄霆威压邪,刚猛无俦,镇压不返。,10,,镇魂宗,"{""extra_battle_strength_points"": 6}"
50,金章封煞术,,上品,以金章为印,封煞束灵,斩乱镇邪。,10,,镇魂宗,"{""extra_battle_strength_points"": 6}"
51,幽冥无相诀,,上品,隐形无相,出没幽明,摄心夺魄于无声。,10,,幽魂噬影宗,"{""extra_battle_strength_points"": 6}"
52,噬影穿行步,,上品,以风掠影,穿行缝隙,先至而不留痕。,10,,幽魂噬影宗,"{""extra_battle_strength_points"": 6}"
53,冥狱吞魄经,,上品,循幽冥吞魄之道,化敌为养,速成险绝。,10,,幽魂噬影宗,"{""extra_breakthrough_success_rate"": -0.1, ""extra_cultivate_exp"": 50, ""extra_battle_strength_points"": 6}"
54,天罗机巧篇,,上品,精研机巧阵枢,百变应敌,器术合一。,10,,千帆城,"{""extra_battle_strength_points"": 6}"
55,蓝星定魂阵,,上品,以厚土定魂为基,阵锁心神,稳如磐石。,10,,千帆城,"{""extra_battle_strength_points"": 6}"
56,飞翼乘风术,,上品,乘风而行,纵横千里,御器齐驱。,10,,千帆城,"{""extra_battle_strength_points"": 6}"
1 id name technique_root grade desc weight condition sect effects
2 名称 属性 品阶(上中下) 描述/提示词 抽样权重 条件 所属宗门 JSON形式(支持宽松格式,见effects.py说明)
3 1 太乙金光锻体诀 下品 运太乙金光淬骨炼筋,金罡护体,刀兵难侵。 1
4 2 金阳破甲术 中品 融金阳之炽与锋,一往破敌,破甲断魄。 1 {"extra_battle_strength_points": 3}
5 4 青木长春诀 下品 借青木长春之机,涓涓养元,稳固根基。 1
6 5 碧林长生法 中品 汲林海生机,法源不竭,柔而不折。 1 {"extra_battle_strength_points": 3}
7 7 玄冥敛息诀 下品 以玄冥静息收摄心神,润物无声。 1
8 8 玄水化海术 中品 以玄水化百川,绵延不绝,攻守随势。 1 {"extra_battle_strength_points": 3}
9 10 南明离火心诀 下品 承南明离火之炽,鼓荡心魄,炼魂淬魄。 1
10 11 赤炎炼真诀 中品 以赤炎炼真元,去伪存真,攻势如潮。 1 {"extra_battle_strength_points": 3}
11 13 厚土镇魄诀 下品 以厚土安神定魄,稳如山嶽,不动如山。 1
12 14 玄黄定岳法 中品 以玄黄凝岳势,千钧一力,镇压四方。 1 {"extra_battle_strength_points": 3}
13 16 玄冰凝真诀 下品 以玄冰凝灵,清寒护体,心湖如镜。 1
14 17 冰魄玄寒法 中品 御玄寒之魄,封江冻海,以静制动。 1 {"extra_battle_strength_points": 3}
15 19 御风术 下品 以清风导息,轻身迅行,形如掠影。 1
16 20 清风御行法 中品 驭风行空,攻守兼备,灵动飘逸。 1 {"extra_battle_strength_points": 3}
17 22 幽冥潜形术 下品 以幽冥藏形,锋芒尽敛,伺机而动。 1
18 23 玄夜无相法 中品 夜行无相,出入无痕,摄人心魄。 1 {"extra_battle_strength_points": 3}
19 25 九天淬体雷诀 下品 引九天霆罡击体,筋骨再生,爆发如雷。 1
20 26 九霄养雷法 中品 引九霄真雷,养气通窍,威势赫然。 1 {"extra_battle_strength_points": 3}
21 28 血神噬魂大法 下品 以血神邪念淬炼,杀伐狠辣,损阴德。 1 {extra_breakthrough_success_rate: -0.1, extra_cultivate_exp: 50}
22 29 冥狱吞灵大法 中品 循冥狱之道吞噬灵魄,逆乱阴阳,速成之途。 1 {extra_breakthrough_success_rate: -0.1, extra_cultivate_exp: 50} {"extra_breakthrough_success_rate": -0.1, "extra_cultivate_exp": 50, "extra_battle_strength_points": 3}
23 30 明心归一剑典 上品 以剑返本归一,明镜止水,一剑断妄。 10 明心剑宗 {"extra_battle_strength_points": 6}
24 31 霆光明志剑 上品 以霆光贯剑意,电掣雷行,破虚斩障。 10 明心剑宗 {"extra_battle_strength_points": 6}
25 32 离火明心诀 上品 以离火照见自心,去蔽存真,剑随心行。 10 明心剑宗 {"extra_battle_strength_points": 6}
26 33 御兽玄纲 上品 以木灵沟通群兽,血脉契合,驱策如臂。 10 百兽宗 {"extra_battle_strength_points": 6}
27 34 蛮荒镇骨体 上品 以厚土淬锻筋骨,躯壳如山,血勇不挫。 10 百兽宗 {"extra_battle_strength_points": 6}
28 35 血啸狩魂诀 上品 以嗜血啸魄摄魂,狩猎杀伐,越战越猛。 10 百兽宗 {extra_breakthrough_success_rate: -0.1, extra_cultivate_exp: 50} {"extra_breakthrough_success_rate": -0.1, "extra_cultivate_exp": 50, "extra_battle_strength_points": 6}
29 36 彻天水镜观 上品 以彻天水镜观机,借势化力,先机在握。 10 水镜宗 {"extra_battle_strength_points": 6}
30 37 寒漪反斩法 上品 以寒漪回折之势,四两拨千斤,刚柔相济。 10 水镜宗 {"extra_battle_strength_points": 6}
31 38 镜花游身步 上品 以轻风流转为引,身化水月,进退自如。 10 水镜宗 {"extra_battle_strength_points": 6}
32 39 幽冥镇狱经 上品 引幽冥阴煞镇压万灵,寒魄凝骨,万劫不侵。 10 冥王宗 {"extra_battle_strength_points": 6}
33 40 冥焰噬神法 上品 以冥焰噬神,逆夺生机,吞灵化魄。 10 冥王宗 {extra_breakthrough_success_rate: -0.1, extra_cultivate_exp: 50} {"extra_breakthrough_success_rate": -0.1, "extra_cultivate_exp": 50, "extra_battle_strength_points": 6}
34 41 黄泉引魄步 上品 以玄寒引魄入泉,步步生霜,摄魂夺魄。 10 冥王宗 {"extra_battle_strength_points": 6}
35 42 赤狱炼锋诀 上品 以赤狱真火炼锋,法器通灵,杀机更盛。 10 朱勾宗 {"extra_battle_strength_points": 6}
36 43 魇丝摄魂术 上品 以魇丝无声摄魄,藏形夺命,来去无迹。 10 朱勾宗 {"extra_battle_strength_points": 6}
37 44 噬心傀儡经 上品 以金罡刻阵,傀儡载魄,攻守如一。 10 朱勾宗 {"extra_battle_strength_points": 6}
38 45 双修合和典 上品 以清润相济,合气生生,周天圆满。 10 合欢宗 {"extra_battle_strength_points": 6}
39 46 魅月摄情术 上品 以魅月摄心,惑而不乱,借情化力。 10 合欢宗 {"extra_battle_strength_points": 6}
40 47 绮罗化影步 上品 以轻纱化影,形随意转,柔中带锋。 10 合欢宗 {"extra_battle_strength_points": 6}
41 48 镇岳定魂经 上品 以玄黄定岳势,安神定魄,万邪难侵。 10 镇魂宗 {"extra_battle_strength_points": 6}
42 49 霆狱伏邪法 上品 引九霄霆威压邪,刚猛无俦,镇压不返。 10 镇魂宗 {"extra_battle_strength_points": 6}
43 50 金章封煞术 上品 以金章为印,封煞束灵,斩乱镇邪。 10 镇魂宗 {"extra_battle_strength_points": 6}
44 51 幽冥无相诀 上品 隐形无相,出没幽明,摄心夺魄于无声。 10 幽魂噬影宗 {"extra_battle_strength_points": 6}
45 52 噬影穿行步 上品 以风掠影,穿行缝隙,先至而不留痕。 10 幽魂噬影宗 {"extra_battle_strength_points": 6}
46 53 冥狱吞魄经 上品 循幽冥吞魄之道,化敌为养,速成险绝。 10 幽魂噬影宗 {extra_breakthrough_success_rate: -0.1, extra_cultivate_exp: 50} {"extra_breakthrough_success_rate": -0.1, "extra_cultivate_exp": 50, "extra_battle_strength_points": 6}
47 54 天罗机巧篇 上品 精研机巧阵枢,百变应敌,器术合一。 10 千帆城 {"extra_battle_strength_points": 6}
48 55 蓝星定魂阵 上品 以厚土定魂为基,阵锁心神,稳如磐石。 10 千帆城 {"extra_battle_strength_points": 6}
49 56 飞翼乘风术 上品 乘风而行,纵横千里,御器齐驱。 10 千帆城 {"extra_battle_strength_points": 6}

View File

@@ -72,22 +72,28 @@ async function handleClearObjective() {
<div class="stats-grid">
<StatItem label="境界" :value="data.realm" :sub-value="data.level" />
<StatItem label="年龄" :value="formatAge(data.age, data.lifespan)" />
<StatItem label="HP" :value="formatHp(data.hp.cur, data.hp.max)" />
<StatItem label="灵石" :value="data.magic_stone" />
<StatItem label="MP" :value="formatHp(data.mp.cur, data.mp.max)" />
<StatItem
label="阵营"
:value="data.alignment"
full-width
:on-click="() => showDetail(data.alignment_detail)"
/>
<StatItem
label="宗门"
:value="data.sect?.name || '散修'"
:sub-value="data.sect?.rank"
:on-click="data.sect ? () => showDetail(data.sect) : undefined"
/>
<StatItem
label="灵根"
:value="data.root"
full-width
:on-click="() => showDetail(data.root_detail)"
/>
<StatItem label="灵石" :value="data.magic_stone" />
</div>
<!-- Thinking -->
@@ -110,12 +116,6 @@ async function handleClearObjective() {
:item="data.technique"
@click="showDetail(data.technique)"
/>
<EntityRow
v-if="data.sect"
:item="data.sect"
:meta="data.sect.rank"
@click="showDetail(data.sect)"
/>
<EntityRow
v-if="data.weapon"
:item="data.weapon"

View File

@@ -1,7 +1,6 @@
<script setup lang="ts">
import { computed, ref, onMounted, onUnmounted, watch } from 'vue';
import { useUiStore } from '@/stores/ui';
import type { AvatarDetail, RegionDetail } from '@/types/core';
import { useUiStore } from '../../../../stores/ui';
// Sub-components
import AvatarDetailView from './AvatarDetail.vue';

View File

@@ -2,12 +2,6 @@
* 格式化工具
*/
export function formatNumber(num: number): string {
if (num >= 10000) {
return (num / 10000).toFixed(1) + '万';
}
return num.toString();
}
export function formatHp(current: number, max: number): string {
return `${Math.floor(current)} / ${max}`;