离线系统设计
本文为此系列第一章,是作者最初的简陋设计,后续整改慢慢补上。
觉得有用的大佬可以支持一波。
有其他问题可以留言。
离线收益
一些游戏中离线获得收益是非常常见的,一般的离线收益都是一个属性,比如是经验;都是按照离线时间*速度来计算的,并且这个速度一般为固定值,即:离线过程中速度不会变化。这个需求就很简单,不在赘述。
我们的需求
比如练一本技能书的等级:
① 1s涨一点经验,6s消耗一点精神,精神为0自动停止。
② 经验到一定值会升级技能书,技能书到一定等级会领悟技能或者提升其他属性。
③ 消耗精神的总值到达一定值,会提升属性x,属性x每提升一点会增加10点精神,且精神会恢复至最大值。
④ 其他buff会影响提升经验的速度。
⑤ 加入自动服药功能(精神少于一定数值会自动恢复一定的数值)
等等。。
在线解决方案
直接当做buff一把梭,即可;
为了维护方便,这里拆分为2个buff
① 技能书涨经验升级
② 精神总消耗
buff②的生命周期和buff①绑定。
buff系统驱动每个buff,具体buff内部怎么实现就不赘述了。
//驱动Buff的是系统的时间轴
BuffManger.Update()->Buff.Update()
离线收益解决方案
① 抽象公式法: