claude-code-best
a58a36c35a
fix: 修复战斗中 PP 不递减的问题
...
projectPokemon 读取 maxPp 属性名错误,Showdown 使用小写 maxpp,
导致 maxPp 回退到当前 pp 值,UI 显示的 PP 总是满的。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-24 11:48:40 +08:00
claude-code-best
e9405e4a8a
feat: 战斗引擎全面升级 — 捕获/逃跑/多对手/AI/道具/状态
...
- 新增 capture.ts:Gen 9 捕获率计算,支持精灵球/状态/时间修正
- 实现逃跑概率公式 (Gen 9) 和失败累计机制
- createBattle 支持多对手 OpponentEntry[],AI 换人考虑属性克制
- AI 选招改为优先克制招式,避免蓄力招式和被抵抗招
- 野生招式从 Dex.data.Learnsets 按等级获取,替换硬编码映射
- 实现 Potion/SuperPotion/FullRestore 等回复药效果
- 野生对手随机持有道具(5%树果/专属、3%属性增强道具)
- 新增 VolatileStatus 类型,BattlePokemon 添加 volatileStatus
- needsSwitch 检测改为更健壮的 p1Fainted + hasAliveBench 逻辑
- 解决 #3 物品使用、#4 逃跑、#5 多精灵对战、#6 AI、#7 野生招式、
#10 捕获系统、#11 volatile状态、#12 天气/地形、#19 野生道具
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-24 11:48:40 +08:00
claude-code-best
ecf2dbde44
feat: 又一大波改动
2026-04-23 11:20:24 +08:00
claude-code-best
77e8d15482
feat: 解决显示问题
2026-04-22 14:24:41 +08:00
claude-code-best
72cfb83de3
feat: 一大坨优化
2026-04-22 13:33:02 +08:00
claude-code-best
8bf645364f
fix: 处理精灵倒下后的强制换人和战斗结束判定
...
executeTurn 在精灵倒下时未处理 @pkmn/sim 的强制换人要求,
导致 "Not all choices done" 错误。现在:
- 检测 active Pokémon 是否倒下,自动切换到下一只
- 无可用精灵时使用 pass,让引擎正常判定胜负
- AI 侧同样处理强制换人
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-22 09:03:39 +08:00
claude-code-best
bfd14206a9
fix: 修复 BattleView 渲染 @pkmn/sim 原始 move 对象导致的 React 报错
...
projectPokemon 中 moveSlots 的 name 字段可能为 undefined,
导致整个对象被当作 React child 渲染。现在优先从 Dex 查询招式名称。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-22 08:37:03 +08:00
claude-code-best
f22caf0e97
feat: 集成 Battle tab 到 BuddyPanel,重命名 data/ 为 dex/ 规避 gitignore
...
- BuddyPanel 新增 Battle tab,BattleFlow 加 isActive 控制
- BattleFlow configSelect 阶段支持 ↑↓ 选择物种
- packages/pokemon/src/data/ → dex/,解决根 .gitignore 匹配问题
- 全量 Tab→2空格 缩进转换
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-22 08:35:19 +08:00
claude-code-best
363ba39cad
refactor: 消除 engine.ts 重复 break 和 evolution.test.ts 的 as any
...
- engine.ts: 移除 switch case 中多余的 break 语句
- evolution.test.ts: 用完整 Creature 对象替代 as any 类型转换
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-22 04:40:59 +08:00
claude-code-best
7c64199fc5
fix: 修复战斗系统 bug(switch 映射、async learnableMoves、类型安全)
...
- engine.ts: switch 动作改为映射 creatureId 到 party slot index
- settlement.ts: 改用 for-of 循环支持 async learnableMoves 检测
- types.ts: miss 事件增加 side 字段,消除 as any
- BattleFlow.tsx: handleAction 改为 async 支持 await settleBattle
- battle.test.ts: 补充缺失的 async 标记
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-22 04:12:13 +08:00
claude-code-best
74682b2a82
refactor: 代码优化 — 扩展类型覆盖、修复变量遮蔽、移除未使用导入
...
- engine.ts: 扩展 getSpeciesMoves 覆盖全部 18 种属性
- settlement.ts: 重命名 species → oppSpecies 避免遮蔽外层变量
- storage.ts: addItemToBag/removeItemFromBag 深拷贝 bag items 避免修改原对象
- BattleFlow.tsx: 移除未使用导入和条件 useInput 调用(React hooks 规则)
- BattleView.tsx: 移除未使用的 BattlePokemon/MoveOption/Dex 导入
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-22 00:49:48 +08:00
claude-code-best
fa8e45e933
test: 新增数据层测试 + 引擎修复
...
- 新增 pkmn.test.ts: stat 映射测试
- 新增 species.test.ts: 物种数据测试
- 新增 xpTable.test.ts: XP 公式测试
- 新增 evMapping.test.ts: EV 映射测试
- 新增 names.test.ts: 多语言名称测试
- 新增 fallback.test.ts: 精灵 fallback 测试
- 修复 engine.ts 类型
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-22 00:45:57 +08:00
claude-code-best
a3fc348421
feat: Phase 2 — 战斗引擎 @pkmn 薄适配层
...
- 安装 @pkmn/protocol @pkmn/client @pkmn/view
- 新建 battle/types.ts: BattleState, BattlePokemon, BattleEvent, PlayerAction 等
- 新建 battle/adapter.ts: Creature→PokemonSet 转换, 野生对手生成
- 新建 battle/engine.ts: createBattle() + executeTurn() 薄封装 @pkmn/sim
- 新建 battle/handler.ts: @pkmn/protocol Handler→BattleEvent 转换
- 新建 battle/ai.ts: 随机合法招式 AI 决策
- 新建 battle/settlement.ts: 战后结算 XP/EV/升级/进化/招式学习
- 新建 battle/index.ts: 统一导出
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-22 00:31:42 +08:00