算法思想大概是这样的:
Q:如何模拟一次攻击是否触发雷电?
A:用rand()函数产生一个1-100之间的整数, 一旦产生的整数小于某个值,则判定为触发雷电(以近战为例,若凯旋此时有效,小于46则说明爆了一次雷电;若凯旋此时冷却中,小于28则说明爆了一次雷电)
Q:如何体现凯旋的1秒冷却?
A:1秒冷却和攻击速度有关
当攻击间隔大于1秒时,每次都触发凯旋
当攻击间隔大于0.5秒小于1秒时,若第n次攻击触发雷电,则第n+1次攻击凯旋无效(此时雷电触发几率仍存在,为原始值,近战28%,远程15%)
当攻击间隔大于0.33秒小于0.5秒时,若第n次攻击触发雷电,则第n+1次和第n+2次攻击凯旋无效(此时雷电触发几率仍存在,为原始值,近战28%,远程15%)
算法实现上,在判定雷电是否触发之前,先通过num的值来确定这是触发雷电后的第几次攻击(例如num=1,则说明这是第n+2次攻击),再通过num的值和此时程序中的模拟攻击速度来确定这一次攻击中凯旋效果是否有效。