Beispiel #1
0
        private void TractorBeamEffect(object sender, System.EventArgs e)
        {
            Combat.DiceRollAttack.CancelAllResults();
            Combat.DiceRollAttack.RemoveAllFailures();

            Tokens.TractorBeamToken token = new Tokens.TractorBeamToken(Combat.Defender, Combat.Attacker.Owner);
            Combat.Defender.Tokens.AssignToken(token, Triggers.FinishTrigger);
        }
Beispiel #2
0
 protected virtual void SelectAbilityTarget()
 {
     Tokens.TractorBeamToken token = new Tokens.TractorBeamToken(TargetShip, HostShip.Owner);
     HostShip.Tokens.AssignToken(
         typeof(Tokens.WeaponsDisabledToken),
         delegate {
         TargetShip.Tokens.AssignToken(token, SelectShipSubPhase.FinishSelection);
     }
         );
 }
 private void SelectSpacetugTarget()
 {
     SelectShipSubPhase.FinishSelectionNoCallback();
     MovementTemplates.ReturnRangeRuler();
     Tokens.TractorBeamToken token = new Tokens.TractorBeamToken(TargetShip, SpacetugOwner.Owner);
     TargetShip.Tokens.AssignToken(token, delegate {
         Triggers.FinishTrigger();
         Next();
     });
 }
Beispiel #4
0
        private void AssignTractorBeamToken(object sender, System.EventArgs e)
        {
            Tokens.TractorBeamToken token = new Tokens.TractorBeamToken(Combat.Defender, Combat.Attacker.Owner);

            Combat.Defender.Tokens.AssignToken(
                token,
                delegate
            {
                IsAbilityUsed = true;
                Triggers.FinishTrigger();
            }
                );
        }
Beispiel #5
0
        private void CheckShadowCasterAbility()
        {
            if (IsAbilityUsed)
            {
                return;
            }

            ShipShotDistanceInformation shotInfo = Combat.ShotInfo;

            if (!shotInfo.InMobileArc || shotInfo.Range > 2)
            {
                return;
            }

            Tokens.TractorBeamToken token = new Tokens.TractorBeamToken(Combat.Defender, Combat.Attacker.Owner);
            Combat.Defender.Tokens.AssignToken(token, delegate {
                IsAbilityUsed = true;
            });
        }
Beispiel #6
0
        private void CheckAssignTractorBeam()
        {
            SelectShipSubPhase.FinishSelectionNoCallback();

            ShipShotDistanceInformation shotInfo = new ShipShotDistanceInformation(HostShip, TargetShip);

            if (shotInfo.InMobileArc && shotInfo.InMobileArc && shotInfo.Range == 1)
            {
                Messages.ShowError(HostShip.PilotName + " assigns Tractor Beam Token\nto " + TargetShip.PilotName);
                Tokens.TractorBeamToken token = new Tokens.TractorBeamToken(TargetShip, HostShip.Owner);
                TargetShip.Tokens.AssignToken(token, Triggers.FinishTrigger);
            }
            else
            {
                if (!shotInfo.InMobileArc || !shotInfo.InMobileArc)
                {
                    Messages.ShowError("Target is not inside Mobile Arc and Primary Arc");
                }
                else if (shotInfo.Distance > 1)
                {
                    Messages.ShowError("Target is outside range 1");
                }
            }
        }
Beispiel #7
0
        private void CheckAssignTractorBeam()
        {
            SelectShipSubPhase.FinishSelectionNoCallback();

            ShotInfo shotInfo = new ShotInfo(HostShip, TargetShip, HostShip.PrimaryWeapons);

            if (shotInfo.InArcByType(ArcType.SingleTurret) && shotInfo.InPrimaryArc && shotInfo.Range <= 1)
            {
                Messages.ShowInfo(HostShip.PilotInfo.PilotName + " assigns a Tractor Beam Token\nto " + TargetShip.PilotInfo.PilotName);
                Tokens.TractorBeamToken token = new Tokens.TractorBeamToken(TargetShip, HostShip.Owner);
                TargetShip.Tokens.AssignToken(token, Triggers.FinishTrigger);
            }
            else
            {
                if (!shotInfo.InArcByType(ArcType.SingleTurret) || !shotInfo.InPrimaryArc)
                {
                    Messages.ShowError("The target is not inside both your mobile arc and your primary arc");
                }
                else if (shotInfo.Range > 1)
                {
                    Messages.ShowError("The target is outside of range 1");
                }
            }
        }
Beispiel #8
0
 private void SelectSpacetugTarget()
 {
     MovementTemplates.ReturnRangeRuler();
     Tokens.TractorBeamToken token = new Tokens.TractorBeamToken(TargetShip, SpacetugOwner.Owner);
     TargetShip.Tokens.AssignToken(token, SelectShipSubPhase.FinishSelection);
 }