v1.1.0
Curse Maven Snippet
What's new
--------------------------------------------------------------------------------
【1.1.0】★ 羁绊系统(本模组第一个正式大版本)
--------------------------------------------------------------------------------
—— 给"好感度满 384 之后"设计后续:本体对满级之后没有任何回报,本版补上。
设计规格见【第二部分】二、各节;本条记录本版**实际改动了什么**。
【新增:羁绊系统】
· 新数据层:Forge capability(键 loser_master:bond),跟着魂符走,无上限
· 四个来源:陪伴 / 并肩 / 共枕 / 赠礼(规格见【2.2 ~ 2.4】)
· 分身来源:本体好感来源折算表(见【2.5】)
· 五级羁绊效果(见【2.6】)
· Jade 羁绊显示(见【2.7】)
· 自定义网络包:羁绊值/吸收层只同步给跟踪该女仆的玩家,不广播
· 升级时给主人一条提示:暗示台词 + 完整效果
【新增:物品】
· 礼物盒(7 纸 + 1 线 + 1 任意染料,形状配方)
· 五种礼物各自注册为独立物品:GIFT_SWEET / GIFT_FLOWER / GIFT_SHINY /
GIFT_BOOK / GIFT_CAKE(创造栏用 ModItems.allGifts() 动态遍历)
· bond_heart:成就图标载体(隐藏,不进创造栏)
【新增:成就(两个)】
· 同床共枕(goal,minecraft:red_bed):第一次共枕睡满时授予
· 哪儿也不去(challenge,自画 16×16 爱心):羁绊等级达到「此心安处」时授予
· parent 挂在 touhou_little_maid:favorability/favorability_increased_max
(已解包核实存在,父链一路到根 favorability/maid_sit_joy)
【新增:共枕机制】
· 玩家躺下 sleepTimer ≥ 6 tick → 女仆过来躺到紧邻的空闲原版床上,+10
· 入睡三件套 / 手动维护 BedBlock.OCCUPIED / 起床后 30 tick 稳定期
· 每 tick 判定挂 **ServerTickEvent.START**(不是 END):
玩家的 sleepTimer 是在实体 tick 期间自己 +1 的,timer == 100 时原版在
同一帧 wakeUp();挂 END 读到的很可能是"已经被叫醒之后"的状态
(isSleeping() == false、isSleepingLongEnough() 也变回 false)
→ 标志永远记不上 → 睡满却拿不到 +10 与成就。
· 静态状态表除业务路径 remove 外,还要在 ServerStoppedEvent 里 resetAll()
(先 wakeCotsFor(level, null) 把还在床上的女仆放下来释放床位,再清表),
否则长期运行/反复开关存档会残留 UUID
· 仅"跟随主人(Home 模式关闭)且未坐下"的女仆参与
【修改:配方迁移】
· 两个道具的合成从工作台移到祭坛(touhou_little_maid:altar_crafting,无序):
春风祝颂你的旅途 = 下界合金锭 ×1 + 不死图腾 ×3 + 粉红色羊毛 ×2,P 点 1
"爱的回响" = 粉红色花簇 ×2 + 蛋糕 ×1 + 虞美人 ×3,P 点 1
· 旧的工作台配方已删除
【修改:道具贴图与名称颜色】
· 更改了两个道具的贴图:32×32,含 4 帧动画(.png.mcmeta,frametime=4)
爱的回响:立体爱心(高光 + 右下阴影)+ 金粉双层扩散环
春风祝颂:饱满红花(五片分离花瓣 + 金色花心 + 金粒子)
· 更改了两个道具的名称颜色(原先都是白色):
爱的回响 = 亮粉色、春风祝颂 = 金色
做法:覆盖 Item.getName(ItemStack),并删掉 tooltip 里重复的那行粉色名字
细节:玩家用铁砧改过名字时尊重玩家命名,不强行染色
【修改:道具简介文案】
· 三个道具的简介改成台词口吻(保留关键操作提示):
礼物盒 "把它和心意一起,包成一份惊喜"
爱的回响 "潜行时,把它交到她手里——她会明白你的心意"
春风祝颂 "放进她的饰品栏吧——危险来临时,春风会替你托住她"
· 女仆语音统一加「<女仆真名>」前缀(**仅限女仆亲口说的台词**:
赠礼、共枕;旁白/系统叙述与"名字尚未确定"的场合不加)
【修改:"让她不要坐下"补丁】
· isAntiSitItem 的禁坐清单加入礼物判定(BondSourceGift.isGift(stack)),
即清单变为:爱的回响 + 五种礼物
· 新增 handleGiftIfMatching 方法,与既有 handleEchoIfMatching 并列;
两者**共用同一张 LAST_ECHO_TICK 去重表**(同一玩家同一 tick 的两个入口
只能生效一次,否则一份礼物会被送两次)
· MaidInteractionHandler 的其余逻辑一字未动
【修复】
· 潜行右击女仆不再把她弄成"坐着却还能走"的错乱状态
(根因:本体 SwitchSittingEvent 也监听 InteractMaidEvent 并会自行取消事件,
导致我们的监听器收不到;解法:更早拦截 EntityInteract + HIGHEST + receiveCanceled)
· 「春风祝颂」的"清除所有负面效果"从 1.0.x 起就失效
(构建脚本把 removeEffect 静默改成了 hasEffect)—— 已修复并加构建护栏
· 升级时不再清除低等级效果(原先升到 256 会把 128 的抗性提升清掉)
· 四级伤害吸收不再"每秒补满"(原先会导致女仆永久无敌)
· 台词里的 %s 不再出现"未替换的原文"
(根因:String.format 要求占位符与参数数量严格相等 + 兜底吞掉了异常)
· 共枕两个真机 bug:
① "睡满却不结算"——PENDING_SETTLE 标记被"玩家仍在睡"分支每 tick 清掉
② "挖床后乱飞"——检测提升为每 tick,并改为"温和放人"(不再瞬移+锁位)
· 共枕三处探针遗留缺陷:睡满竞态、"任意一只女仆"结算、静态状态泄漏
This mod has no additional files

