【数值框架】战斗属性:属性数据结构
上一章节讲完了属性种类设计,这一章主要说一下属性的数据结构。
在一个游戏中单单一个攻击力就可能衍生出多个不同层级的属性加成,如:基础攻击、基础攻击加成、装备攻击、攻击加成、最终攻击、BUFF攻击、BUFF攻击加成等等,如果每个层级的加成都单独做为一个属性,那将是一个极其复杂的结构,可以先独立思考一下,有什么方法可以使得结构更加简洁清晰呢?
思考完毕,下面讲一下在我工作的这几年中,所整理的一套属性数据结构,已经在多个项目中得到了应用,反馈良好。
1.属性分层
首先需要将属性分为3层:
第1层:基础层
第2层:装备层
第3层:BUFF层
基础层:又称之为裸体属性,由等级成长或属性点所增加的直接作用于主体的属性。
装备层:顾名思义,由装备等养成系统增加的间接作用于主体上的属性。
BUFF层:由BUFF带来的属性加成。
2.属性分类
每一层我们又可以将属性分为4类:
第1类:根值
第2类:基础值
第3类:百分比
第4类:附加值
从而得到公式:属性=(根值+基础值)*(1+百分比)+附加值
根值:初始默认值,默认值可为0,从第二层开始,根值为上一层的求得的最终值
基础值:属性最基础的值,受到百分比加成影响
百分比:对基础值进行百分比加成,只有当基础值不为0时才有效
附加值:同基础值类似,但是不受同层级百分比加成影响
3.最终公式
基础属性=(根值+基础值1)*(1+百分比1)+附加值1
装备属性=(基础属性+基础值2)*(1+百分比2)+附加值2
BUFF属性=(装备属性+基础值3)*(1+百分比3)+附加值3
备注:如果游戏没有特殊的数值需求,可将【基础属性】和【装备属性】简化为一层。
4.各属性所承担的属性加成
1.根值:角色初始属性
2.基础值1:升级属性、属性点转化带来的固定值
3.百分比1:被动天赋、种族加成等带来的百分比加成
4.附加值1:这个属性不会用到,功能和基础值2完全一致,只是用来占位统一公式格式的
5.基础值2:装备、时装、坐骑、羽翼等带来的固定值
6.百分比2:装备、时装、坐骑、羽翼等带来的百分比
7.附加值2:场外BUFF(如:结拜加成、新婚加成)
8.基础值3:由BUFF带来的,对自身加成的固定值
9.百分比3:由BUFF带来的百分比
10.附加值3:由BUFF带来的,对全体加成的固定值
属性结构到这里大致就说完了,这套结构不仅有利于数值的投放规划,更有利于后期的数据填写和维护,当然如果小伙伴有更好的方法也可以通过留言的方式一起讨论。