Commit Graph

848 Commits

Author SHA1 Message Date
0747fcaa9a refactor(09-13): replace core.drawTip/core.playSound callsites with direct interfaces
- ui/save.tsx: core.drawTip(validation.message) -> TipStore.get('main-tip')?.drawTip(...) (C:drawTip)

- ui/settings.tsx: core.playSound('confirm.opus') -> props.state.soundPlayer.play('confirm.opus') (C:playSound)

- no client singleton; no new naming; no import type
2026-10-12 16:13:35 +08:00
12bb67b5db refactor(09-13): remove legacy fallback layer and de-wire index.ts
- delete fallback/{index,audio,ui,weather,load}.ts (A-7/A-1/A-4)

- index.ts: drop patchAll import/call and export * from './fallback'

- create() keeps createRender(); no new naming
2026-10-12 16:12:25 +08:00
8819faa93b docs(09): sync roadmap progress for plans 09-13..09-16 (task 7 batch) 2026-10-12 15:52:26 +08:00
a91fb7a165 fix(09): add A-5-1 to 09-13 non-ALT connected-elimination list 2026-10-11 20:06:34 +08:00
bbd8674455 docs(09): record task 7 (first refactor batch: ALT entries) scope 2026-10-11 19:40:57 +08:00
569b6ddab6 docs(09): record task 6 (legacy interface replacement-feasibility audit) scope 2026-10-11 17:31:37 +08:00
537bcbee02 docs(09): mark plan 09-12 complete in roadmap progress 2026-10-11 17:30:48 +08:00
d90220841e docs(09-12): complete legacy interface replacement audit (section C + summary)
- Add section C: replaceability of all 67 core.* deduplicated members with call sites
- Add summary table, five-class counts, and five-batch refactor ordering
- Machine-readable counts: ENTRY=99, DIRECT=0, ADAPT=25, ALT=40, NONE=8, TBD=26
- Read-only: no source changes (baseline-diff guard green)
2026-10-11 17:29:43 +08:00
1118545879 docs(09-12): author legacy replacement audit section 0 + section A
- Add 09-LEGACY-REPLACEMENT-AUDIT.md with judgement criteria (D-46..D-49)
- Section 0: scope, five-class definitions, per-entry schema, counting keys
- Section A: replaceability of 32 residual legacy interfaces (A-1..A-7)
- Read-only: no source changes (baseline-diff guard green)
2026-10-11 17:25:55 +08:00
08f24f25f7 docs(09): add plan 09-12 for task 6 legacy interface replacement audit 2026-10-11 17:09:59 +08:00
4cf1f00ef7 docs(09): mark plan 09-11 complete in roadmap progress 2026-10-11 16:35:37 +08:00
f35ca20b67 docs(09-11): author legacy interface audit section C + summary
- 补齐 09-LEGACY-INTERFACES-AUDIT.md 的 C 节(core.* 调用点:去重成员 67 + 228 条 file:line + 每文件计数)与汇总表
- C-COUNT: 228;写入 09-11-SUMMARY.md(A/B/C 计数、OI-1..OI-5 裁定、只读确认)
- 全程只读:两包(client-base/client-modules)源码零改动
2026-10-11 16:34:38 +08:00
1c5afe4cb7 docs(09-11): author legacy interface audit sections 0/A/B
- 新增只读统计文档 09-LEGACY-INTERFACES-AUDIT.md 的第 0 节(口径与范围)与 A 节(残余 legacy 接口 A-1..A-7)、B 节(@deprecated)
- A-COUNT: 32,B-COUNT: 0(两包内实测无 @deprecated)
- 逐条 file:line 锚点,锚点取自执行日实测(未修改任何源码)
2026-10-11 16:31:01 +08:00
e371490741 docs(09): record task 5 (legacy interface read-only audit) scope 2026-10-11 16:18:58 +08:00
741e8e09ce docs(09): add plan 09-11 for task 5 legacy interface read-only audit
Task 5 (D-42..D-45): produce a read-only statistics doc covering exactly packages-user/client-base and packages-user/client-modules. Categories: A residual legacy interfaces, B @deprecated, C core.* call sites. Zero source edits.
2026-10-11 16:18:29 +08:00
00379e1861 chore: 微调四个 UI 的代码 2026-10-11 16:02:43 +08:00
109ff4b860 docs(09): mark plan 09-10 complete in roadmap progress 2026-10-11 15:59:26 +08:00
b9eb62bc62 docs(09-10): complete review-fix R-1..R-8 plan summary 2026-10-11 15:58:50 +08:00
fc159ce11f feat(09-10): apply R-2/R-3/R-4/R-5/R-6/R-7 review fixes to equipbox, toolbox & shop
- R-2: render descriptions via TextContent (equipbox/toolbox/shop)
- R-3: add jsDoc to top-level definitions
- R-4: add JSX section comments
- R-5: un-export IHeroAttrItem and IShopItemEntry
- R-6: isNil for literals, ! for objects (no === null / undefined)
- R-7: move top-level openShop call into onMounted
2026-10-11 15:57:14 +08:00
4c383f6999 feat(09-10): apply R-1/R-2/R-3/R-4/R-6/R-8 review fixes to book & bookDetail
- R-1: remove self-drawn full-screen background in book/bookDetail
- R-2: render special description via TextContent
- R-3: add jsDoc to top-level definitions
- R-4: add JSX section comments
- R-6: null checks use truthiness (no !== null)
- R-8: replace 'getBaseEnemy' in enemy with instanceof EnemyView
2026-10-11 15:52:10 +08:00
cb133685f2 docs(09): add plan 09-10 for task 3 review fixes R-1..R-8 across five UIs 2026-10-11 15:31:23 +08:00
e958244775 docs(09): record additional review fixes R-6..R-8 (isNil/! checks, no top-level side effects, instanceof discrimination) 2026-10-11 15:23:17 +08:00
48dbf4ba2a docs(09): record task 3 review fixes R-1..R-5 (TextContent, jsDoc, JSX comments, no unnecessary exports) 2026-10-11 15:18:24 +08:00
a495928c55 docs(09): mark plan 09-09 complete in roadmap progress 2026-10-11 14:58:32 +08:00
149f99e3a2 docs(09-09): complete shop UI plan summary 2026-10-11 14:57:31 +08:00
c8849f1f64 feat(09-09): add shop quantity selector, buy/sell and exit
- 4-button quantity << < n > >> (step 10/1), clamped to stock (buy) or owned (sell), remembered per item and per mode
- price info row shows buy/sell/stock/owned/total above buttons
- buy/sell via props.shopSystem.buyItem/sellItem; openShop(props.shop) in setup; exit via controller.close
2026-10-11 14:56:13 +08:00
2531940d45 feat(09-09): add shop UI layout, shop list and price info
- new shop.tsx exporting Shop/ShopUI/ShopProps/IShopItemEntry
- top buy/sell mode toggle; left scrollable shop list sorted by num with stock right-aligned
- right column name / description / price info (buy via getPrice)
2026-10-11 14:55:19 +08:00
2c127a0e56 docs(09): mark plan 09-08 complete in roadmap progress 2026-10-11 14:44:11 +08:00
16b9f40b36 docs(09-08): complete toolbox 道具栏 plan
- 记录 Task 0 汇报关卡已满足与 OI-T1..OI-T5 最终裁定
- 记录布局 / 列表 / 交互与静态门禁结果
2026-10-11 14:43:37 +08:00
08f9b41e93 feat(09-08): toolbox 单击选中 / 再点使用 / 右下退出
- 单击道具行选中,再次点击已选中项调用 heroState.items.useItem
- 右下退出按钮调用 props.controller.close(props.instance)
- 无丢弃 / 拖拽(D-36)

- 已忽略全角/半角措辞
2026-10-11 14:42:44 +08:00
f039ebc542 feat(09-08): toolbox 道具栏三列布局与道具列表
- 新增 toolbox.tsx:永久道具 / 可消耗道具 / 道具信息三列布局
- 以 heroState.items.iterateItems() 枚举背包,过滤 hideInToolbox
- 各组按数量降序、数量相同按图块数字升序
- 行渲染 <icon> + raw.name + core.formatBigNumber(count)
- 右列展示 raw.name 与 raw.text;列表 / 说明纵向 <Scroll noscroll>
- 右下退出按钮(本任务仅视觉占位)
2026-10-11 14:42:12 +08:00
e575944df5 docs(09): mark plan 09-07 complete in roadmap progress 2026-10-11 14:32:23 +08:00
2059c68e25 docs(09-07): complete equipbox plan summary 2026-10-11 14:31:49 +08:00
ba0732eb1d feat(09-07): add equipbox interactions and exit
- click select; re-click owned equip calls hero.equip.equip(uid, slot, true)
- drag owned to slot equips; drag equipped slot unequips (render action events)
- bottom-right exit calls props.controller.close(props.instance)
2026-10-11 14:30:50 +08:00
2217e0994e feat(09-07): add equipbox layout and data enumeration
- new ui/equipbox.tsx: left status column, right desc/slot/owned regions
- owned equipment sorted by item.num; slots from hero.equip.slots
- diff via hero.equip.compareEquip (-1 = no equipment)
2026-10-11 14:28:20 +08:00
1fe68b9f2b docs(09): record task 3 review findings (no UI background; TextContent for long text) 2026-10-11 14:16:12 +08:00
e321753058 docs(09): mark plan 09-06 complete in roadmap progress 2026-10-11 13:47:59 +08:00
11aaafeaef docs(09-06): complete book enemy handbook plan
- bookDetail.tsx: independent detail UI (base/computed, special list, critical table)
- book.tsx: handbook list UI (enemyContext, dedupe by code, 9 columns, open detail)
- static symbol + CRLF + scope gates all pass; OI-4..OI-6 recorded
2026-10-11 13:46:24 +08:00
0f0b2770fe feat(09-06): add enemy handbook list UI (book.tsx)
- Book / BookUI bound to props.state.enemyContext
- dedupe enemies by base.code, vertical Scroll list
- 9 columns: icon/name/specials/hp/atk/def/money/exp + damage/critical/reduce/1-def
- critical via calculateEnemyCritical (base path); 1-def via with(isolated +1 def)
- click row opens BookDetailUI; bottom-right exit closes instance
2026-10-11 13:44:43 +08:00
04fc4ff81e feat(09-06): add independent enemy detail UI (bookDetail.tsx)
- BookDetail / BookDetailUI over IEnemy | IEnemyView input
- base/computed toggle via getBaseEnemy/getComputedEnemy
- special list via iterateSpecials + getSpecialName/getDescription
- critical table via calculateEnemyCritical (base) / calculateViewCritical (computed)
- bottom-left toggle, bottom-right back (controller.close)
2026-10-11 13:43:05 +08:00
8951c54c88 fix(09-minimum-browser-runnable): revise 09-09 plan per checker feedback 2026-10-10 22:23:01 +08:00
7f0c90e3af docs(09): finalize shop plan (09-09) - GAP-S4 resolved, OI-S6 confirmed, drop hotkey name caveat 2026-10-10 20:18:37 +08:00
5bace98025 feat: 导出商店系统 2026-10-10 20:07:04 +08:00
88b4571da5 feat: 商店系统 2026-10-10 19:58:48 +08:00
3a6269be60 feat: 导出 shop 接口 2026-10-10 19:47:43 +08:00
6d24d826bc docs(09): un-defer shop interface note (interface provided) 2026-10-10 19:40:57 +08:00
ff71899f12 docs(09): create phase plan (09-09 shop) 2026-10-10 19:38:58 +08:00
7140ae6987 feat: 商店接口 2026-10-10 19:35:44 +08:00
e2b44441c7 fix(09): revise plans based on checker feedback 2026-10-10 19:20:47 +08:00
337d28c1d7 docs(09): revise book/equipbox/toolbox plans to consume new data-end interfaces
- book: wire base-attribute critical/damage via calculateEnemyCritical; rename calculateCritical->calculateViewCritical; @user/data-system dependency already declared (no package.json change)
- equipbox: single-equipment delta via compareEquip(uid,-1,slot)/(-1,uid,slot)
- toolbox: enumerate owned items via IHeroItems.iterateItems() (drop saveState workaround)
2026-10-10 19:12:37 +08:00