mirror of
https://github.com/Shu-Ying/noname-shuying.git
synced 2026-10-10 11:00:03 +08:00
3.0 KiB
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,恢复本次基线覆盖包,不会触碰游戏安装目录。