【游戏功能】
测试组半夜报了一口"事故":打甲壳怪的战斗里,同一个普攻一会儿飘十四一会儿飘二十,伤害数字忽大忽小,怀疑扣血的计算表坏了。查了一整晚,账没坏——是甲在变:怪的身上泡着五层瘴,每层让甲软一成五,甲一软刀就深,数字自然越飘越大。这笔冤案的原型就是今天要拆的蚀甲瘴——看"腐蚀系"怎么不用一刀,把最硬的甲泡成一摊烂泥。
一、上瘴、浸甲、兑现三段
蚀甲瘴的循环三段。上瘴段:一支裹着紫雾的箭钉在怪身上,雾从箭头漫开缠住甲壳,头顶多点亮起一颗紫色的瘴点——上瘴段是全技能的立约:一箭一层,五层封顶,瘴点就是层数的账本,几颗亮着甲就软几成。浸甲段:每一层瘴都记着自己的五秒寿命,新箭命中会续上最老的一层——浸甲段是全技能的核心:软甲不是一次性的,是持续的浸泡,断箭就散层、续箭就保层,"保持浸泡"成了输出的前置功课;每层软一成五,五层泡满甲效只剩两成半,最硬的壳等于不存在。兑现段:普攻的数字越打越大——十、十四、十九、二十五一路涨上去——兑现段是全技能的回报:瘴不直接掉血,它把每一刀都磨得更深,涨上来的数字就是浸泡的利息。三段的核心是"软比碎狠":破甲锥一下敲掉一层甲响亮干脆,蚀甲瘴不出一声就让甲自己烂掉——响的破甲吓人,闷的腐蚀才要命。
完整演示在这,默认自动循环:
fx-corrode
二、幂尔框架实现:层数是一张各自到期的表
蚀甲瘴的账本就是一张各自到期的层数表——
local Corrode = {}
local COR_CAP = 5 -- 至多五层
local COR_SOFT = 0.15 -- 每层软一成五
local COR_LIFE = 5.0 -- 每层五秒
local stacks = {}
function SL:ShootCorrode(target)
if #stacks >= COR_CAP then
table.remove(stacks, 1) -- 满层挤掉最老的一层
end
table.insert(stacks, COR_LIFE)
SL:ShowTipAbove(target, "蚀甲" .. #stacks .. "层")
end
function SL:SoftFactor()
return #stacks * COR_SOFT -- 甲软了几成
end
function SL:OnTick(dt)
for i = #stacks, 1, -1 do
stacks[i] = stacks[i] - dt
if stacks[i] <= 0 then
table.remove(stacks, i) -- 到期的层自己散掉
end
end
end
function SL:PlayerHit(base)
return math.round(base * (1 + SL:SoftFactor()))
end
return Corrode
各自到期是全技能的筋骨:stacks[i] 每层记自己的表、倒序遍历边减边删——增删都从表尾走,层才不会串位;普攻扣血的入口统一走 PlayerHit,软甲的放大只在这一处生效,账就永远不会两处对不上。
三、浸甲的演出规格
紫雾是全技能的脸面:七团半透明的紫晕绕着怪慢慢转,层越高雾越多越浓——雾的浓度就是甲的烂度,干干净净的壳和泡在紫雾里的壳一眼就分得出。瘴点是全技能的账本:血条上方五颗小方点,泡到几层亮几颗——亮一颗甲软一成五,五颗全亮就是剥甲完成;瘴点上方再标一行小字"甲效八成五",把账本直接念给玩家听。中箭要"钉":箭不是飘上去的是钉上去的,命中那一瞬壳上炸一圈紫环——钉住的箭才有"附着"的感觉。涨数字要"渐变":十、十四、十九、二十五一路变大,未泡时灰字、泡上后金字的字号也大一档——涨不是一条平线是一条上坡。层散要"轻":到期的那颗瘴点暗下去不配音效——散层是日常不是事件,响一声反而像出了事。
四、定价与三条瘴规
腐蚀系的定价一句话:一箭一层、每层软一成五、五层泡满、每层五秒——五层泡满等于甲效只剩两成半,普攻翻倍还拐弯;可这翻倍的每一刀都拿"先花十秒泡瘴"垫了底,腐蚀的账要连本带利一起算。三条瘴规:其一,瘴不掉血——蚀甲瘴扣的是甲不是命,壳烂了人还活着一口气的怪照样拍你;其二,层数各自计时——五秒一层各自到期,断箭就掉层,层不是永久焊在壳上的;其三,收益只在普攻——软甲放大的是每一刀的深度,它不改技能倍率不追加特效,瘴是磨刀石不是刀。与破甲锥对照着看:同是"拆甲",破甲锥一锥下去当场碎一层、碎了就没了——快,但只此一锤;蚀甲瘴一层一层泡、泡满五层才见全功——慢,但泡住之后每一刀都在吃利息,削弱族的两个门派在"碎"与"烂"上分了家。
五、蚀甲瘴的浸泡学:先软后硬才是硬
蚀甲瘴真正交付的是"输出的顺序":它把"先泡后打"变成一种纪律——五层没泡满之前每一刀都在亏,泡满之后每一刀都在赚,顺序对了同一个技能打出两个身价。老玩家的用法是"双管齐下":左手一箭一箭续瘴保层,右手普攻一刀一刀吃利息——瘴箭和普攻从来不是两个技能,是一套连招的上下句。对观战者,金色的数字一层一层涨上去是最有"复利感"的镜头:没有爆发的火光,只有数字稳步变大——看懂的人知道这叫滚利息,看不懂的人只觉得怪怎么越打越脆。工程收尾记一笔:瘴点账本要放在血条正上方——层数是玩家每一箭的决策依据,账本放偏了玩家就是在盲投;亮几颗、散几颗、甲效几成,三笔账要一眼读完。最后留给数值组的一句话:一成五五层对十秒泡满的节奏,利息回本要三刀——蚀甲瘴的定价不是软甲几成,是"泡满前的十秒里玩家愿不愿意空手陪它耗"——愿意耗的玩家,之后每一刀都是赚的。
写完再留一句给做腐蚀系的同学:软甲最容易做成"攻击力减半的开关",而它本该是一层一层看得见烂掉的壳——瘴点要当账本亮着、雾要跟着层数变浓、数字要走出上坡——浸泡立住了,玩家才会把软甲当成一门功课而不是一个开关。
补一个演示彩蛋位:第五层瘴点亮的那一帧,五颗点会连成一条紫线横在血条上——连线的一瞬甲效跳到两成半,确认一过,这只怪就再也不配叫硬骨头了。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【语法算法】 上一版的炮台索敌逻辑有个隐蔽报错:炮台永远打同一个怪——即使那只怪已经死了,索敌的游标也不挪窝。追到底索敌的游…
【语法算法】 先抛一个坑:打不完的火系怪怎么办?火抗怪火打不动,换冰系技能要切装备要换面板——切完黄花菜都凉了。元素转换的答…
【语法算法】 上个月的事故复盘会上有个数字被念了三遍:四成——策划写的是"同伴陪疼四成",代码落下去成了"陪疼四十点",两只…
【语法算法】 单行代码拆解:弹射初速=-420——弹射的全部动力就这一行的负初速。负号朝上、四百二十是弹射的初速大小——踩上…
【语法算法】 上一版的减速类模块全按"乘以零点五"来写,帧率无关的版本照搬了这套写法——结果高帧率机上减速效果好,低帧率机上…
【语法算法】 先抛一个坑:怎么把散在四处的怪聚到一起打?逐个拉是笨办法,一个范围技又只能打一片——引力球的答案是一个会动的吸…