决斗回合 = 战斗回合 + 物品回合 + 换人回合 + 逃跑回合

需要计算这几个大的回合的优先级,来决定计算哪个流程为先。

一、需求

  1. 计算真正速度hs.nowspeed 和 ms.nowspeed(已经提升的速度,麻痹判断,增加行动不能状态)。
  2. 计算真正的攻击(烧伤物攻减半,已经变化的攻击),攻击属性用iswuli来判断。
  3. 计算真正的防御 (已经变化的防御)。
  4. 设定技能优先值——>普通为1,先制技能为2,后置技能为0。
  5. 速度比较——>攻击先后,进入先后流程。
  6. 技能计算伤害——>特攻/物攻+技能伤害-特防/物防(未实现:增加ct,技能miss率,属性克制,属性几倍克制,本系属性加成,抗属性攻击的口袋妖怪特性)。
  7. 需要特定算法(未完成)函数结算,当前战斗流程结束。
  8. 成功命中——> 生命 >0时进入附加技能效果设置——>减属性,附加状态。
  9. 不良属性——>麻痹:回合开始前结算,速度为1/4,1/4几率不能出招。
  10. 中毒:回合结束时结算,最大生命值1/8伤害。
  11. 剧毒:回合结束时结算,第一回合1/16最大生命伤害,增加turn()函数,计算当前状态回合数,其余回合翻倍。
  12. 烧伤:物攻减半效果在回合开始前结算,烧伤最大生命值1/8回合结束时结算。
  13. 睡眠:回合开始前结算,睡着不能出招,醒来几率为10%,40%,70%,100%(共4turn,第四回合必醒,判断醒来时即可出招)。
  14. 混乱:回合开始前结算,混乱1/2几率攻击自己,伤害固定为40的无属性物理攻击,2~5次行动。
  15. 恐惧:只有先制攻击能让对方进入的状态,因为恐惧无法出招。
  16. 属性等级:攻,防,速,特攻,特防, 这些属性各有13个等级。刚进入战斗时,每个等级都是6,战斗过程中,可由招术或道具升/降这些等级。

各等级时的修正计算值如下表:

等级 | 修正计算 | 百分率(约数)
——————————————————————
0 ×10/40 ×25%
1 ×10/35 ×29%
2 ×10/30 ×33%
3 ×10/25 ×40%
4 ×10/20 ×50%
5 ×10/15 ×67%
6 ×10/10 ×100%
7 ×15/10 ×150%
8 ×20/10 ×200%
9 ×25/10 ×250%
A ×30/10 ×300%
B ×35/10 ×350%
C ×40/10 ×400%

命中率等级修正

等级 | 修正计算 | 百分率(约数)
——————————————————————
0 ×33/100 ×33%
1 ×36/100 ×36%
2 ×43/100 ×43%
3 ×50/100 ×50%
4 ×60/100 ×60%
5 ×75/100 ×75%
6 ×100/100 ×100%
7 ×133/100 ×133%
8 ×166/100 ×166%
9 ×200/100 ×200%
10 ×250/100 ×250%
11 ×266/100 ×266%
12 ×300/100 ×300%
致命一击概率如下:

通常情况下,致命一击的概率为1/16
C | 概率
——————————
0 | 1/16
1 | 1/8
2 | 1/4
3 | 1/3
4 | 1/2

二、总结

因为想法太多最后没实现。

设计的精髓不在细而多,而在可逐步迭代。