Example #1
0
 private void RegisterTrigger(GenericShip ship)
 {
     if (HostShip.GetLastManeuverColor() == MovementComplexity.Complex && !(Board.IsOffTheBoard(HostShip) || HostShip.IsBumped))
     {
         RegisterAbilityTrigger(TriggerTypes.OnMovementFinish, AssignTokens);
     }
 }
Example #2
0
 private void RegisterPatternAnalyzer(GenericShip ship)
 {
     if (HostShip.GetLastManeuverColor() == MovementComplexity.Complex && (HostShip.AssignedManeuver.Speed == 0 || !HostShip.IsBumped) && !BoardTools.Board.IsOffTheBoard(HostShip))
     {
         RegisterAbilityTrigger(TriggerTypes.OnMovementExecuted, UsePatternAnalyzer);
     }
 }
Example #3
0
 protected void RegisterMovementTrigger(GenericShip ship)
 {
     if (HostShip.GetLastManeuverColor() == MovementComplexity.Complex && Board.GetShipsInBullseyeArc(HostShip, Team.Type.Enemy).Any())
     {
         RegisterAbilityTrigger(TriggerTypes.OnMovementFinish, AskAbility);
     }
 }
Example #4
0
 private void RegisterOutlawTechAbility(GenericShip ship)
 {
     if (HostShip.GetLastManeuverColor() == Movement.ManeuverColor.Red)
     {
         RegisterAbilityTrigger(TriggerTypes.OnShipMovementFinish, AskAssignFocusToken);
     }
 }
Example #5
0
 private void RegisterPatternAnalyzer(GenericShip ship)
 {
     if (HostShip.GetLastManeuverColor() == MovementComplexity.Complex)
     {
         RegisterAbilityTrigger(TriggerTypes.OnMovementExecuted, UsePatternAnalyzer);
     }
 }
Example #6
0
        private void RegisterOutlawTechAbility(GenericShip ship)
        {
            if (BoardTools.Board.IsOffTheBoard(ship))
            {
                return;
            }

            if (HostShip.GetLastManeuverColor() == Movement.MovementComplexity.Complex)
            {
                RegisterAbilityTrigger(TriggerTypes.OnMovementFinish, AskAssignFocusToken);
            }
        }
        private void RegisterTargetingAstromech(GenericShip hostShip)
        {
            if (HostShip.GetLastManeuverColor() != Movement.MovementComplexity.Complex)
            {
                return;
            }
            if (Board.IsOffTheBoard(hostShip))
            {
                return;
            }

            RegisterAbilityTrigger(TriggerTypes.OnMovementFinish, AssignAstromechTargetingLock);
        }
Example #8
0
        protected virtual bool CheckAbility()
        {
            if (HostShip.GetLastManeuverColor() != Movement.MovementComplexity.Complex)
            {
                return(false);
            }
            if (BoardTools.Board.IsOffTheBoard(HostShip))
            {
                return(false);
            }

            return(true);
        }
Example #9
0
        private void RegisterK4SecurityDroid(GenericShip hostShip)
        {
            Movement.ManeuverColor movementColor = HostShip.GetLastManeuverColor();
            if (movementColor != Movement.ManeuverColor.Green)
            {
                return;
            }

            RegisterAbilityTrigger(
                TriggerTypes.OnShipMovementFinish,
                AssignK4TargetingLock
                );
        }
        private void RegisterTargetingAstromech(GenericShip hostShip)
        {
            Movement.ManeuverColor movementColor = HostShip.GetLastManeuverColor();
            if (movementColor != Movement.ManeuverColor.Red)
            {
                return;
            }

            RegisterAbilityTrigger(
                TriggerTypes.OnShipMovementFinish,
                AssignAstromechTargetingLock
                );
        }
Example #11
0
        private void RegisterSystemsOfficerAbility(GenericShip ship)
        {
            // After executing a green maneuver
            var movementColor = HostShip.GetLastManeuverColor();

            if (movementColor == Movement.ManeuverColor.Green)
            {
                // ...check if there is another firendly ship at range 1
                var friendlyShipsAtRangeOne = HostShip.Owner.Ships.Values
                                              .Where(another => another.ShipId != HostShip.ShipId)
                                              .Where(another => Board.BoardManager.GetRangeOfShips(HostShip, another) <= 1)
                                              .ToArray();
                if (friendlyShipsAtRangeOne.Any())
                {
                    RegisterAbilityTrigger(TriggerTypes.OnShipMovementFinish, SystemsOfficerEffect);
                }
            }
        }
Example #12
0
        private void RegisterK4SecurityDroid(GenericShip hostShip)
        {
            Movement.MovementComplexity movementColor = HostShip.GetLastManeuverColor();
            if (movementColor != Movement.MovementComplexity.Easy)
            {
                return;
            }

            if (BoardTools.Board.IsOffTheBoard(hostShip))
            {
                return;
            }

            RegisterAbilityTrigger(
                TriggerTypes.OnMovementFinish,
                AssignK4TargetingLock
                );
        }