Exemplo n.º 1
0
        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;
            }
        }
Exemplo n.º 2
0
        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();
            }
        }