【游戏功能】
heat = heat + dt——一行每帧加热的代码,炖出了火候全部的味道:开打越久,刀越热——生的二十六、半熟四十、火候到了五十八,五秒不出手,火又凉回去。今天拆火候,看"文火系"怎么把一场架,演成一口越烧越旺的灶。
一、生火、保温、熄灶三段
火候的循环三段。生火段:刚交手的那五秒,刀是生的——二十六点的素字、素白的刀光,出刀的节奏还得自己找——生火段是全技能的冷启动:火没起来的时候谁都不好看,挨打照旧、输出垫底,急不得,灶要一口柴一口柴地喂。保温段:交手满五秒刀转半熟,满十二秒火候到——保温段的规矩只有一条:手别停——出刀续火,停手就是在往灶里浇凉水,五秒不出手,火头肉眼可见地矮下去。熄灶段:脱战或者凉透了,火色从红退回灰,刀又变回生的那把——熄灶段是全技能的节气:火候是活物,不是攒出来的存款,凉了就得重烧。三段的核心是"热即状态":这门功夫不涨伤害不挂标记,它只是让你的刀需要一段预热的时光。
完整演示在这,默认自动循环:
fx-simmer
二、幂尔框架实现:灶膛是一个只进慢火的表
火候的账本挂在交手时长上,三档封顶——
local Simmer = {}
local HEAT_FULL = 12 -- 十二秒火候到
local HEAT_HALF = 5 -- 五秒半熟
local COOL_IDLE = 5 -- 五秒不出手开始凉
local DMG = { 26, 40, 58 }
local stove = { heat = 0, idle = 0 }
function SL:OnTick(dt)
stove.heat = math.min(HEAT_FULL, stove.heat + dt) -- 交手即加热
stove.idle = stove.idle + dt
if stove.idle >= COOL_IDLE then
stove.heat = math.max(0, stove.heat - 6 * dt) -- 停手浇凉水
end
end
function SL:Swing()
stove.idle = 0 -- 出刀拨火
local s = stageOf()
SL:PlayActorAct("self", "attack")
SL:ScheduleDelay(0.17, function()
SL:HitActor("target", DMG[s + 1])
SL:ShowTipAbove("target", "-" .. DMG[s + 1])
if s == 2 then SL:ShakeCamera(4, 0.2) end -- 火候到的排面
end)
end
local function stageOf()
return stove.heat >= HEAT_FULL and 2
or (stove.heat >= HEAT_HALF and 1 or 0)
end
return Simmer
出刀拨火是全技能的灶规:Swing 里那一行 idle 归零,就是往灶里添的那一铲柴——火候系的输出节奏,本质是添柴的节奏。
三、灶温的演出规格
火色是全技能的温度计:头顶一道灶温条从灰到橙到红三段爬,身上的红气随档位加浓——火色到了红,观众不用看数字就知道这把刀烫手。三档的数字三副面孔:生的素白小字、半熟的橙字带"半熟"小标、火候到的红字大一号带震屏——账面随着火色一路升格,读条就是读账。熄灶的过程要"凉"得可见:红气一层层变薄、灶温条一格格回灰,最后归于生刀的素白——凉透要给足过程,突然熄火的灶是事故。保温的细节藏在节奏里:出刀的间隔只要不超五秒,火色就一丝不掉——刀刀相衔的人在保温,缩手缩脚的人在熄灶,同一口灶两种人生。
四、定价与三条灶规
文火系的定价一句话:五秒半熟、十二秒火候、五秒停手开凉——五十八对二十六翻了一倍多,价码是把前十二秒的输出当柴烧。三条灶规:其一,火不认人——换目标火照烧,灶温记在交火上不记在谁身上,狼来了一波换一波,火头不断就照旧滚烫;其二,断招不断火——被打断连招,灶温照旧,火候系的账记在时间上,不记在招式上;其三,脱战即熄——拉开距离五秒,火从头凉,逃出灶台的人别想带着余温再回来。与背水一战对照着看:同是"状态加成",背水压血线——越险越狠,进疯区就开闸;火候熬时长——越久越烫,进熟区要等灶,增益系的两个门派在"赌一瞬"还是"熬一灶"上分了家。
五、文火系的节奏学:热刀要养,快攻要戒
火候真正改写的是玩家的开局面子:头十二秒的输出惨不忍睹,性子急的人在这段里把心态打没了——文火系第一课就是戒急:前十二秒不是白挨,是把刀炖熟的成本,熬过去,后面每一刀都是加价的。老玩家的打法因此长出了一套"护灶"的章法:前十二秒以走位保命为主、出刀只为续火,火候一到立刻转守为攻——灶温条就是战局的换挡灯。对观战者,红气渐浓的过程本身就是一出慢热的戏:前半场看着替他急,后半场看着替他爽。工程收尾记一笔:凉灶的六格每秒要画在灶温条上而不是靠脑补——凉的进度看得见,玩家才知道"还差五秒又能开火"。最后留给数值组的一句话:翻倍的账面对十二秒的柴钱,期望值平平——文火系的收益在"越打越顺"的势能里,势能不进伤害栏,进手感。
打多波怪还有一层续火的账:一波打完下一波接上,中间的空档就是灶的生死线——老手清尾怪时特意留两只陪练,刀口收着点、火候拖着点,硬是把保温期拖到下一波进场地。会过日子的火候玩家,连转场都转得像添柴,火从第一波烧到最后一只怪,就没断过香。
写完再留一句给做文火系的同学:越战越勇最容易做成"击杀叠层",而它本该是一口需要看住的灶——火色要爬得慢、凉要凉得明、添柴的规矩要立得清,灶温养出来了,玩家的每一步都带着火气。
补一个演示彩蛋位:火候到了之后,刀刃的余温会在地上拖出一串暗红的灼点——走过的路都带着温度,这串灼点不烧人不掉血,它只是让"这把刀现在很烫"这件事,一路看得见。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【语法算法】 上一版的炮台索敌逻辑有个隐蔽报错:炮台永远打同一个怪——即使那只怪已经死了,索敌的游标也不挪窝。追到底索敌的游…
【语法算法】 先抛一个坑:打不完的火系怪怎么办?火抗怪火打不动,换冰系技能要切装备要换面板——切完黄花菜都凉了。元素转换的答…
【语法算法】 上个月的事故复盘会上有个数字被念了三遍:四成——策划写的是"同伴陪疼四成",代码落下去成了"陪疼四十点",两只…
【语法算法】 单行代码拆解:弹射初速=-420——弹射的全部动力就这一行的负初速。负号朝上、四百二十是弹射的初速大小——踩上…
【语法算法】 上一版的减速类模块全按"乘以零点五"来写,帧率无关的版本照搬了这套写法——结果高帧率机上减速效果好,低帧率机上…
【语法算法】 先抛一个坑:怎么把散在四处的怪聚到一起打?逐个拉是笨办法,一个范围技又只能打一片——引力球的答案是一个会动的吸…