private void ApplyPushDamage() { var damageToApply = movementRecieved.PushDamage; var hit = true; if (rollType == EncounterRollType.Block) { damageToApply = Math.Max(0, damageToApply - blockRoll); } else if (rollType == EncounterRollType.Dodge) { if (dodgeRoll >= movementRecieved.DodgeLevel) { damageToApply = 0; hit = false; } currentDefender.ConsumeStamina(1 + (currentDefender.isFrozen ? 1 : 0)); } currentDefender.RecieveInjuries(damageToApply); DestroyDices(); confirmButton.SetActive(false); if (hit) { ShowNextPushAwayPush(); } else { currentDefender = null; } }
private void ApplyResult() { var damageToApply = damageRoll; var hit = true; if (rollType == EncounterRollType.Block || rollType == EncounterRollType.Attack) { damageToApply = System.Math.Max(0, damageToApply - blockRoll); } else if (rollType == EncounterRollType.Dodge) { if (dodgeRoll >= attackRecieved.DodgeLevel) { damageToApply = 0; hit = false; } defenderCurrent.ConsumeStamina(1 + (defenderCurrent.isFrozen ? 1 : 0)); } defenderCurrent.RecieveInjuries(damageToApply); if (hit) { defenderCurrent.isBleeding = defenderCurrent.isBleeding || attackRecieved.Bleed; defenderCurrent.isPoisoned = defenderCurrent.isPoisoned || attackRecieved.Poison; defenderCurrent.isStaggered = defenderCurrent.isStaggered || attackRecieved.Stagger; defenderCurrent.isFrozen = defenderCurrent.isFrozen || attackRecieved.Frozen; } if (hit && attackRecieved.Push) { confirmButton.SetActive(false); pushMover.SetupAndShow(defenderCurrent, MoveChoserType.Push, attackerRecieved); } else { ApplyResultFinalize(); } }