TurnBasedBattle
回合制战斗逻辑
回合制战斗系统功能说明和一些注意事项
1.基础介绍
a.目前系统中对于英雄的设定有:最大生命值,当前生命值,最大魔力值,当前魔力值,当前物理攻击力,当前物理防御力,当前魔法攻击力,当前魔法防御力,速度,回合等概念
b.目前系统中使用的参数设置有两种常见的设定方式,一种是设定具体的值,一种是设定百分比(非具体,会根据实际运行中的参数进行计算)
c.目前系统中buff,debuff实际上是一种对象,只是对于执行数值做了正负值区分
d.目前系统中主动技能,被动技能实际上是一种对象。主动技能实际上只是在回合执行中的阶段使用的主动使用的技能,被动技能则是在任意回合阶段中自动执行的技能
e.目前系统中支持的队伍列表上限为6,超过将会丢弃数据。
f.目前系统技能能设定目标对象是什么,从自身,自身队友,到敌人一个目标到多个目标。
2.有什么功能
a.核心的玩法不需要重新构建,支持扩展新技能(需要进行基类继承,目前有基础技能,基础单人目标物理技能,基础单人目标魔法技能,基础多人目标物理技能,基础多人目标魔法技能。这些类型的技能支持被动技能设置)
b.回合制游戏中可有可无的技能蓄力,技能冷却回合的设定,现有设定在设定每次战斗回合总数设定上限的情况下,能实现一次战斗中永久只能发动一次的技能冷却设定,目前不支持真正的战斗中限定一次的技能设置。技能支持暴击效果,支持MISS
c.buff,debuff的快速扩展,不需要代码,直接设置参数即可实现不同的效果,支持对英雄的各种属性做出改变,甚至是对方的回合也能改变,以此实现跳过回合或者将回合交给特定角色的功能实现
d.目前为了增加同样数值情况下战斗的不可预测性,和高可玩性增加了“乱敏”设定,可在Global脚本中进行设置调节,默认是英雄在开局时候将会在自身速度的70%-100%之间随机一个速度值作为当前战斗使用的速度。如果速度相同,遵循以下原则:敌人的英雄为第一回合,自己队伍中按照排队顺序进行战斗。乱敏的好处:减少同数值战斗结果单一现象,让战斗更加不可预料。如果要关闭乱敏功能,可以将Global中HeroSpeedMix设定为1
e.目前有编辑器可以支持英雄,技能,buff这些的界面化配置,除了ID之外,其他参数基本都为可自定义参数。
f.BattleController支持DebugMode
g.BattleController支持自动战斗
h.使用接口非常简单,只有一个BattleController.Instance.StartBattle方法,两个参数,第一个是自己队伍的英雄数据集合,第二个敌人的队伍的英雄数据集合,具体使用参考TestCombat脚本
i.支持自定义界面,自定义用户操作等,BaseBattleHeroHub,BaseBattleHeroUI,BaseBattleUI,BaseInputController,这些类都支持继承来扩展。
3.编辑器功能介绍
a.英雄编辑器:
目前有一些测试用参数在项目中
b.技能编辑器
技能设置完毕之后,可以在英雄编辑界面对指定英雄使用技能修改器,添加修改英雄的技能
c.buff,debuff编辑器
buff编辑好之后可以在技能编辑界面对指定技能使用buff修改器,添加修改技能的附带buff效果