示例#1
0
        public override void DoAction(TriggeredAbility ability)
        {
            Ability = ability;

            Messages.ShowInfo(GetMessage());
            Ability.HostShip.Tokens.TransferToken(TokenType, Ability.TargetShip, Triggers.FinishTrigger);
        }
示例#2
0
        public override void DoAction(TriggeredAbility ability)
        {
            Ability = ability;

            GetDualCard().Flip();
            Triggers.FinishTrigger();
        }
示例#3
0
        public override void DoAction(TriggeredAbility ability)
        {
            Ability = ability;
            Messages.ShowInfo(GetMessage());
            int count = (GetCount != null) ? GetCount() : 1;

            GetShip().Tokens.AssignTokens(CreateToken, count, FinishAbilityPart);
        }
示例#4
0
        public override void DoAction(TriggeredAbility ability)
        {
            Ability = ability;

            Debug.Log("Dice Roll action");

            Triggers.FinishTrigger();
        }
示例#5
0
        public override void DoAction(TriggeredAbility ability)
        {
            Ability = ability;

            if (Ability.HostShip.SectorsInfo.IsShipInSector(GetTargetShip(), SectorType))
            {
                Action.DoAction(Ability);
            }
            else
            {
                Triggers.FinishTrigger();
            }
        }
示例#6
0
        public override void DoAction(TriggeredAbility ability)
        {
            Ability = ability;

            Ability.HostShip.AskPerformFreeAction
            (
                ActionInfo.GenerateAction(),
                Finish,
                Description.Name,
                Description.Description,
                Description.ImageSource,
                false
            );
        }
示例#7
0
        public override void DoAction(TriggeredAbility ability)
        {
            Ability = ability;

            Ability.AskToUseAbility(
                Description.Name,
                AiUseByDefault,
                DoOnYes,
                DoOnNo,
                descriptionLong: Description.Description,
                imageHolder: Description.ImageSource,
                requiredPlayer: Ability.HostShip.Owner.PlayerNo
                );
        }
示例#8
0
        public override void DoAction(TriggeredAbility ability)
        {
            Ability = ability;

            Ability.AskToUseAbility
            (
                Description.Name,
                Ability.AlwaysUseByDefault,
                AcquireTargetLock,
                descriptionLong: Description.Description,
                imageHolder: Description.ImageSource,
                dontUseAbility: GoNext
            );
        }
示例#9
0
        public override void DoAction(TriggeredAbility ability)
        {
            Ability = ability;

            if (ChangeToSideslip)
            {
                GenericMovement movement = null;
                switch (Ability.HostShip.RevealedManeuver.Bearing)
                {
                case ManeuverBearing.Bank:
                    movement = new SideslipBankMovement(
                        Ability.HostShip.RevealedManeuver.Speed,
                        Ability.HostShip.RevealedManeuver.Direction,
                        ManeuverBearing.SideslipBank,
                        Ability.HostShip.RevealedManeuver.ColorComplexity
                        );
                    break;

                case ManeuverBearing.Turn:
                    movement = new SideslipTurnMovement(
                        Ability.HostShip.RevealedManeuver.Speed,
                        Ability.HostShip.RevealedManeuver.Direction,
                        ManeuverBearing.SideslipTurn,
                        Ability.HostShip.RevealedManeuver.ColorComplexity
                        );
                    break;

                default:
                    break;
                }

                if (movement != null)
                {
                    Messages.ShowInfo("Maneuver is changed to Sideslip");
                    Ability.HostShip.SetAssignedManeuver(movement);
                }
            }

            Triggers.FinishTrigger();
        }
示例#10
0
        public override void DoAction(TriggeredAbility ability)
        {
            Ability = ability;

            if (ability.TargetsForAbilityExist(FilterTargets))
            {
                ability.SelectTargetForAbility(
                    WhenSelected,
                    FilterTargets,
                    GetAiSelectShipPriority,
                    ability.HostShip.Owner.PlayerNo,
                    AbilityDescription.Name,
                    AbilityDescription.Description,
                    AbilityDescription.ImageSource,
                    ShowSkipButton
                    );
            }
            else
            {
                Triggers.FinishTrigger();
            }
        }
示例#11
0
 public override void Unregister(TriggeredAbility ability)
 {
     ability.HostShip.OnCombatActivation -= RegisterTrigger;
 }
示例#12
0
 public override void Register(TriggeredAbility ability)
 {
     Ability = ability;
     ability.HostShip.OnAttackFinishAsAttacker += RegisterTrigger;
 }
示例#13
0
 public override void Unregister(TriggeredAbility ability)
 {
     Phases.Events.OnCombatPhaseStart_Triggers -= RegisterAbility;
 }
示例#14
0
 public override void Register(TriggeredAbility ability)
 {
     Ability = ability;
     ability.HostShip.OnCombatActivation += RegisterTrigger;
 }
示例#15
0
 public override void Unregister(TriggeredAbility ability)
 {
     Phases.Events.OnSetupEnd -= RegisterAbility;
 }
示例#16
0
 public override void Register(TriggeredAbility ability)
 {
     Ability = ability;
     Phases.Events.OnCombatPhaseStart_Triggers += RegisterAbility;
 }
示例#17
0
 public override void Unregister(TriggeredAbility ability)
 {
     ability.HostShip.OnAttackFinishAsAttacker -= RegisterTrigger;
 }
 public override void Register(TriggeredAbility ability)
 {
     Ability = ability;
     ability.HostShip.OnShotHitAsAttacker += CheckConditions;
 }
示例#19
0
 public override void Unregister(TriggeredAbility ability)
 {
     ability.HostShip.OnMovementFinish -= CheckConditions;
 }
示例#20
0
        public override void DoAction(TriggeredAbility ability)
        {
            Ability = ability;

            StartAskRotationSubphase();
        }
示例#21
0
 public override void Unregister(TriggeredAbility ability)
 {
     ability.HostShip.OnActionIsPerformed -= RegisterTrigger;
 }
 public override void Register(TriggeredAbility ability)
 {
     Ability = ability;
     ability.HostShip.OnManeuverIsRevealed += CheckConditions;
 }
 public override void Unregister(TriggeredAbility ability)
 {
     ability.HostShip.OnShotHitAsAttacker -= CheckConditions;
 }
示例#24
0
 public override void Register(TriggeredAbility ability)
 {
     Ability = ability;
     ability.HostShip.OnAttackFinishAsDefender += CheckConditions;
 }
示例#25
0
 public override void Register(TriggeredAbility ability)
 {
     Ability = ability;
     Phases.Events.OnSetupEnd += RegisterAbility;
 }
示例#26
0
 public override void Unregister(TriggeredAbility ability)
 {
     ability.HostShip.OnAttackFinishAsDefender -= CheckConditions;
 }
 public override void Unregister(TriggeredAbility ability)
 {
     ability.HostShip.OnManeuverIsRevealed -= CheckConditions;
 }
示例#28
0
 public override void Register(TriggeredAbility ability)
 {
     Ability = ability;
     ability.HostShip.OnMovementFinish += CheckConditions;
 }
示例#29
0
 public override void Register(TriggeredAbility ability)
 {
     Ability = ability;
     ability.HostShip.OnActionIsPerformed += RegisterTrigger;
 }