Example #1
0
        public void ProcessDrawnDamageCard(EventArgs e)
        {
            AssignedDamageDiceroll.CancelHitsSpecial(1);
            AssignedDamageDiceroll.RemoveAllFailures();

            if (Combat.CurrentCriticalHitCard.IsFaceup)
            {
                if (OnFaceupCritCardReadyToBeDealt != null)
                {
                    OnFaceupCritCardReadyToBeDealt(this, Combat.CurrentCriticalHitCard);
                }

                if (OnFaceupCritCardReadyToBeDealtGlobal != null)
                {
                    OnFaceupCritCardReadyToBeDealtGlobal(this, Combat.CurrentCriticalHitCard, e);
                }

                Triggers.RegisterTrigger(new Trigger
                {
                    Name         = "Information about faceup damage card",
                    TriggerOwner = this.Owner.PlayerNo,
                    TriggerType  = TriggerTypes.OnFaceupCritCardReadyToBeDealtUI,
                    EventHandler = InformCrit.LoadAndShow
                });

                Triggers.ResolveTriggers(TriggerTypes.OnFaceupCritCardReadyToBeDealt, SufferFaceupDamageCard);
            }
            else
            {
                CallOnDamageCardIsDealt(delegate { Damage.DealDrawnCard(Triggers.FinishTrigger); });
            }
        }
Example #2
0
    private static void CalculateAttackResults()
    {
        Combat.Defender.CallCombatCompareResults();

        DiceRollAttack.RemoveAllFailures();

        Combat.Defender.CallAfterNeutralizeResults(CheckAttackHit);
    }
Example #3
0
    private static void CalculateAttackResults()
    {
        DiceRollAttack.RemoveAllFailures();

        if (DiceRollAttack.Successes > 0)
        {
            AttackHit();
        }
        else
        {
            AfterShotIsPerformed();
        }
    }
Example #4
0
    public static void CalculateAttackResults(Ship.GenericShip attacker, Ship.GenericShip defender)
    {
        DiceRollAttack.CancelHits(DiceRollDefence.Successes);
        DiceRollAttack.RemoveAllFailures();

        if (DiceRollAttack.Successes > 0)
        {
            Attacker.CallOnAttackHitAsAttacker();
            Defender.CallOnAttackHitAsDefender();

            Triggers.ResolveTriggers(TriggerTypes.OnAttackHit, delegate { ResolveCombatDamage(SufferDamage); });
        }
        else
        {
            SufferDamage();
        }
    }
Example #5
0
    private static void CalculateAttackResults()
    {
        DiceRollAttack.RemoveAllFailures();

        if (DiceRollAttack.Successes > 0)
        {
            AttackHit();
        }
        else
        {
            if (Attacker.AttackIsAlwaysConsideredHit)
            {
                Messages.ShowInfo("Attack is considered a Hit");
                AttackHit();
            }
            else
            {
                AfterShotIsPerformed();
            }
        }
    }
Example #6
0
    public static void CalculateAttackResults(Ship.GenericShip attacker, Ship.GenericShip defender)
    {
        DiceRollAttack.CancelHits(DiceRollDefence.Successes);
        DiceRollAttack.RemoveAllFailures();

        if (DiceRollAttack.Successes > 0)
        {
            defender.AssignedDamageDiceroll = DiceRollAttack;

            foreach (var dice in DiceRollAttack.DiceList)
            {
                Triggers.RegisterTrigger(new Trigger()
                {
                    Name         = "Suffer damage",
                    TriggerType  = TriggerTypes.OnDamageIsDealt,
                    TriggerOwner = defender.Owner.PlayerNo,
                    EventHandler = defender.SufferDamage,
                    Skippable    = true
                });
            }
        }

        SufferDamage();
    }