private void RegisterTrigger(GenericShip ship) { if (HostShip.GetLastManeuverColor() == MovementComplexity.Complex && !(Board.IsOffTheBoard(HostShip) || HostShip.IsBumped)) { RegisterAbilityTrigger(TriggerTypes.OnMovementFinish, AssignTokens); } }
private void RegisterPatternAnalyzer(GenericShip ship) { if (HostShip.GetLastManeuverColor() == MovementComplexity.Complex && (HostShip.AssignedManeuver.Speed == 0 || !HostShip.IsBumped) && !BoardTools.Board.IsOffTheBoard(HostShip)) { RegisterAbilityTrigger(TriggerTypes.OnMovementExecuted, UsePatternAnalyzer); } }
protected void RegisterMovementTrigger(GenericShip ship) { if (HostShip.GetLastManeuverColor() == MovementComplexity.Complex && Board.GetShipsInBullseyeArc(HostShip, Team.Type.Enemy).Any()) { RegisterAbilityTrigger(TriggerTypes.OnMovementFinish, AskAbility); } }
private void RegisterOutlawTechAbility(GenericShip ship) { if (HostShip.GetLastManeuverColor() == Movement.ManeuverColor.Red) { RegisterAbilityTrigger(TriggerTypes.OnShipMovementFinish, AskAssignFocusToken); } }
private void RegisterPatternAnalyzer(GenericShip ship) { if (HostShip.GetLastManeuverColor() == MovementComplexity.Complex) { RegisterAbilityTrigger(TriggerTypes.OnMovementExecuted, UsePatternAnalyzer); } }
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); }
protected virtual bool CheckAbility() { if (HostShip.GetLastManeuverColor() != Movement.MovementComplexity.Complex) { return(false); } if (BoardTools.Board.IsOffTheBoard(HostShip)) { return(false); } return(true); }
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 ); }
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); } } }
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 ); }