Files
noname-shuying/mengsan/docs/ui-hand-fan.md
T
Diuse d0e0792538 fixed # 补全梦三怪物、卡牌
fixed # 修复天书乱斗中,过关技能不会重置次数的问题
2026-10-03 04:42:19 +08:00

3.0 KiB

梦三扇形手牌:本次候选变更

参考与范围

依据用户本地 36.png(扇形)、37.png(悬停)、38.png(目标牌拖动)与39.png(无目标牌拖动)。 仅扩展现有梦三 ui/hand/ 子模块;不改十周年UI源码,不复制真实卡面,不搬动卡牌父容器,不自行调用 useCard()。 卡面仍沿用当前引擎/主题;不是尖塔卡面的重绘。

排列与悬停

  • fanSlots() 将全部可见真实手牌以中心对称展开;中心最高,两端降低并旋转,最多左右13度。
  • 桌面卡牌112×156,小屏82×114;张数增加时收窄间距,不依赖横向滚动。
  • 悬停时归正、上抬62像素并放大1.35倍,置于手牌最上层;保持原生选中/可用状态。
  • 原生布局写入的 transform 不被删除;梦三CSS仅在启用时覆盖,退出恢复。

输入

  • 主动出牌阶段、真实单张手牌且费用足够:位移9像素进入拖动。
  • 单目标牌:卡牌自动置于手牌横向中心,指针拖动一条金色细线;指向合法目标后松手,经 game.check() 再调用 ui.click.ok()。
  • 金线参照本地十周年 effects/config.js 的 rgb(250,220,140) 与2.6线宽;独立SVG,不加载其私有动画接口,不用尖塔箭头/骨节。
  • 无需手动指定目标(包括引擎自动分配全部目标)的牌:卡牌随指针,上移至少60像素且越过手牌区上边缘后松手确认。没有在移动途中扣费或使用。
  • 手动多目标:用户确认保留原来的选目标与确认;本模块只保留选中卡牌,不自动替用户选齐目标或提交。
  • 技能虚拟牌、响应、复杂选择、自定义替换处理、已存在选择等不接管,继续走原引擎交互。
  • 短点击保留原生行为;无合法目标、费用不足、Escape、右键、失焦、指针取消回收拖动,不能误出牌。

生命周期与安全

新 fan.js 负责命名空间变量、悬停和拖动位置;input.js 负责局部输入转接。 mode.js 向挂载函数传入现有引擎的 get/_status/canPayCard/isActiveCardUse,未改变出牌经济。 选牌和试选目标调用期间同步暂设 touchnocheck,避免移动途中自动确认;finally恢复原值及属性是否存在。 只在当前事件身份未改变时取消自身选择;换事件、换容器、会话结束后不提交旧事件。 卸载移除监听、SVG、观察器、标记与变量,保留真实卡牌和其他扩展的属性;重复卸载安全。

证据边界与交付

已运行独立浏览器场景,使用本次真实子模块、原生 ui.click.card 函数体;目标选择、确认及 game.check 服务仍为测试替身。 这不等于完整游戏、十周年布局、技能、真实触屏或AI实测通过。需用户进入梦三核对真实卡面尺寸与目标点击。 交付为候选源码包和可应用补丁;已安装源码保持原字节未改动。回滚脚本只接受候选副本ZIP,恢复本次基线覆盖包,不会触碰游戏安装目录。