Release beta 1.0.3 Mora wallet updates

This commit is contained in:
JWeBot Contributors
2026-10-16 15:44:34 +08:00
parent 22edf6ff15
commit bf6b738baa
50 changed files with 551 additions and 213 deletions
@@ -956,7 +956,7 @@ def _shop_text(state: dict[str, Any], player: dict[str, Any]) -> str:
lines = [
(
f"{_player_prefix(state, player)}第 {state['round_number']} 回合"
f" {phase_name};金币 {player['gold']};生命 {player['hp']};"
f" {phase_name};摩拉 {player['gold']};生命 {player['hp']};"
f"教练 {player['coach_level']} 级;战术{player['tactic']};"
f"阵容 {power['power']:.1f};商店{lock}"
)
@@ -1143,7 +1143,7 @@ def _auto_manage_ai(
)
text = (
f"{player['display_name']} 自动运营:{'、'.join(actions)};"
f"金币 {player['gold']},五人首发战力 "
f"摩拉 {player['gold']},五人首发战力 "
f"{lineup_power(player)['power']:.1f}。"
)
stories.append(
@@ -1571,7 +1571,7 @@ def _settle_pve(
)
text = (
f"{player['display_name']} {'完成' if won else '未完成'}"
f"{event_name}目标 {adjusted:.1f}/{target},获得 {reward} 金币。"
f"{event_name}目标 {adjusted:.1f}/{target},获得 {reward} 摩拉。"
)
stories.append(_story(state, "pve_result", text, result))
lines.append(_host_text(text))
@@ -2326,7 +2326,7 @@ def _team_power_line(state: dict[str, Any], key: str) -> str:
else f"{player.get('coach_level', 1)}级"
)
return (
f"{player['display_name']} #{state['season_number']}:金币 {player['gold']};"
f"{player['display_name']} #{state['season_number']}:摩拉 {player['gold']};"
f"生命 {player['hp']};教练 {coach_text};战术{player['tactic']};"
f"阵容 {power['power']:.1f};商店{'已锁' if player['shop_locked'] else '未锁'}"
)
@@ -2417,7 +2417,7 @@ def _training_match_part(
f"{_team_name(winner)} 以 {item['score']} 拿下本图。"
),
(
f"金币:{_team_name(winner)} +{TRAINING_WIN_GOLD},"
f"摩拉:{_team_name(winner)} +{TRAINING_WIN_GOLD},"
f"{_team_name(loser)} +{TRAINING_LOSS_GOLD}。"
),
]
@@ -2433,7 +2433,7 @@ def _training_bye_part(state: dict[str, Any], key: str, round_number: int) -> st
)
return (
f"训练赛第 {round_number} 轮:{_team_name(player)} 与本地陪练队完成热身。\n"
f"{hook}\n金币:{_team_name(player)} +{TRAINING_BYE_GOLD}。"
f"{hook}\n摩拉:{_team_name(player)} +{TRAINING_BYE_GOLD}。"
)
@@ -2461,7 +2461,7 @@ def _settle_training_round(
if cursor == 0:
intro = (
f"欢迎来到{state['event_title']}!你们已经到达酒店宾馆,"
f"训练赛共 {len(rounds)} 轮。训练赛不扣生命,只产出运营金币。"
f"训练赛共 {len(rounds)} 轮。训练赛不扣生命,只产出运营摩拉。"
)
parts.append(intro)
stories.append(_story(state, "training_open", intro))
@@ -2670,7 +2670,7 @@ def _series_report_parts(
state["players"][winner_key]["gold"] = int(state["players"][winner_key]["gold"]) + reward
final_text = (
f"系列赛结束,{_team_name(state['players'][winner_key])} 以 {result['score']} 击败 "
f"{_team_name(state['players'][loser_key])},获得 {reward} 金币。"
f"{_team_name(state['players'][loser_key])},获得 {reward} 摩拉。"
"这笔钱可以马上用于 /刷新、/选1~/选6 或锁店等下一轮运营。"
)
parts[-1] = parts[-1] + "\n" + final_text
@@ -2745,7 +2745,7 @@ def _special_event_parts(
)
text = (
f"{_team_name(player)} {'完成' if won else '勉强应付'}{event_kind}:"
f"{hook}获得 {reward} 金币。"
f"{hook}获得 {reward} 摩拉。"
)
parts.append(text)
stories.append(_story(state, "special_event", text, {"person_key": key}))
@@ -3141,7 +3141,7 @@ class CsMajorAutochess:
story = _story(state, "tactic_selected", text, {"person_key": person_key, "tactic": tactic})
return respond(state, text, stories=[story])
if action == "coach":
return respond(state, "教练现在由第一轮选秀决定,本届不能用金币升级教练。")
return respond(state, "教练现在由第一轮选秀决定,本届不能用摩拉升级教练。")
if action == "buy":
values = _parse_indices(arguments)
if len(values) != 1 or not 1 <= values[0] <= SHOP_SIZE:
@@ -3152,7 +3152,7 @@ class CsMajorAutochess:
return respond(state, "这个商店位置已经购买或没有候选")
card = CARD_BY_ID[str(card_id)]
if int(player["gold"]) < int(card["cost"]):
return respond(state, f"金币不足:{card['name']} 需要 {card['cost']},当前 {player['gold']}")
return respond(state, f"摩拉不足:{card['name']} 需要 {card['cost']},当前 {player['gold']}")
existing = any(
unit["card_id"] == card_id
for unit in [*player["board"], *player["bench"]]
@@ -3166,7 +3166,7 @@ class CsMajorAutochess:
star, upgraded = _merge_purchase(player, str(card_id))
player["shop"][slot] = None
text = (
f"{display_name} 签下 {card['name']},花费 {card['cost']} 金币;"
f"{display_name} 签下 {card['name']},花费 {card['cost']} 摩拉;"
f"当前 {star} 星,余额 {player['gold']}。"
)
if upgraded:
@@ -3175,7 +3175,7 @@ class CsMajorAutochess:
return respond(state, text, stories=[story])
if action == "refresh":
if int(player["gold"]) < REFRESH_COST:
return respond(state, f"刷新需要 {REFRESH_COST} 金币,当前 {player['gold']}")
return respond(state, f"刷新需要 {REFRESH_COST} 摩拉,当前 {player['gold']}")
player["gold"] -= REFRESH_COST
player["shop"] = _draw_shop(
state,
@@ -3222,7 +3222,7 @@ class CsMajorAutochess:
refund = int(card["cost"]) * int(unit["copies"])
player["gold"] += refund
state["pool"][card["id"]] += int(unit["copies"])
return respond(state, f"{display_name} 出售 {card['name']},返还 {refund} 金币。")
return respond(state, f"{display_name} 出售 {card['name']},返还 {refund} 摩拉。")
if action == "ready":
if person_key not in state.get("ready_keys", []):