Overkill判定

关于游戏中Overkill判定的问题

关于游戏中 Overkill 判定的问题

数据与显示不同步

在计算时,hit 伤害优先于 overkill 判定。这意味着,如果该 hit 完成后,敌人没有血了,则该 hit 就算作是 overkill 的。
   在显示时,overkill 判定优先于 hit 伤害。这表现为,当敌人已经没有血之后,再继续 hit 才会弹出 overkill 字样。

伤害重复累加计算的问题

根据逻辑来说,overkill 的判定应该是这样:该hit伤害值 ≧ 目标的hp,
但是实际代码中,判定逻辑是这样的:本回合该目标已受到的伤害值 + 该hit伤害值 ≧ 目标的hp。
   
   所以实际上的表现是:在本轮回合内(即攻击的连续3张或4张指令卡),如果目标丢失的血量比尚存的血量要高,则 hit 判定为 overkill。

实测数据:

执行步骤累计伤害hit伤害hit前的hp该hit判定结果
Card1



hit1:累计伤害0本hit伤害484当前hp1372
Card2



hit1:累计伤害484本hit伤害174当前hp888
Card3



hit1:累计伤害658本hit伤害164当前hp714overkill
hit2:累计伤害822本hit伤害335当前hp714overkill
回合结束累计伤害1157
当前hp215

相关代码示意

// 一个目标的血量数据
ServantData {    
int reducehp; // 该次操作会减少hp
    
int hp;       // 目标的当前 hp}// 遍历3张指令卡、EX卡
for(card in cardList)
 {    // 遍历该卡的每个 hit
     for(hit in card.hits)
 {        // 伤害累积
       
 target.reducehp += hit.damage;        // overkill 判定
        
bool isOverkill = target.hp - target.reducehp <= 0;
     }    // 扣除血量
    
target.hp = target.hp - card.damage;
}


    • 最新评论
    • 热门评论

用户评论 (0)


  • 沙发空缺

热门排行

  • 伤害计算

  • 抽卡展示

  • NP获取

  • SL操作

  • 星星分配

  • 技能与BUFF

  • 宝具效果

  • 星星发生

  • Overkill判定