private void CheckRevealedManeuved(GenericShip ship) { if (ship.RevealedManeuver != null ) { if (ship.RevealedManeuver.Bearing == ManeuverBearing.Bank) { GenericMovement movement = new SideslipBankMovement( HostShip.RevealedManeuver.Speed, HostShip.RevealedManeuver.Direction, ManeuverBearing.SideslipBank, HostShip.RevealedManeuver.ColorComplexity ); Messages.ShowInfo("Maneuver is changed to Sideslip"); HostShip.SetAssignedManeuver(movement); } else if (ship.RevealedManeuver.Bearing == ManeuverBearing.Turn) { GenericMovement movement = new SideslipTurnMovement( HostShip.RevealedManeuver.Speed, HostShip.RevealedManeuver.Direction, ManeuverBearing.SideslipTurn, HostShip.RevealedManeuver.ColorComplexity ); Messages.ShowInfo("Maneuver is changed to Sideslip"); HostShip.SetAssignedManeuver(movement); } } }
public static GenericMovement MovementFromStruct(ManeuverHolder movementStruct) { GenericMovement result = null; if (movementStruct.Bearing == ManeuverBearing.Straight) { result = new StraightMovement(movementStruct.SpeedIntUnsigned, movementStruct.Direction, movementStruct.Bearing, movementStruct.ColorComplexity); } else if (movementStruct.Bearing == ManeuverBearing.KoiogranTurn) { result = new KoiogranTurnMovement(movementStruct.SpeedIntUnsigned, movementStruct.Direction, movementStruct.Bearing, movementStruct.ColorComplexity); } else if (movementStruct.Bearing == ManeuverBearing.Turn) { result = new TurnMovement(movementStruct.SpeedIntUnsigned, movementStruct.Direction, movementStruct.Bearing, movementStruct.ColorComplexity); } else if (movementStruct.Bearing == ManeuverBearing.Bank) { result = new BankMovement(movementStruct.SpeedIntUnsigned, movementStruct.Direction, movementStruct.Bearing, movementStruct.ColorComplexity); } else if (movementStruct.Bearing == ManeuverBearing.SegnorsLoop) { result = new SegnorsLoopMovement(movementStruct.SpeedIntUnsigned, movementStruct.Direction, movementStruct.Bearing, movementStruct.ColorComplexity); } else if (movementStruct.Bearing == ManeuverBearing.SegnorsLoopUsingTurnTemplate) { result = new SegnorsLoopUsingTurnTemplateMovement(movementStruct.SpeedIntUnsigned, movementStruct.Direction, movementStruct.Bearing, movementStruct.ColorComplexity); } else if (movementStruct.Bearing == ManeuverBearing.TallonRoll) { result = new TallonRollMovement(movementStruct.SpeedIntUnsigned, movementStruct.Direction, movementStruct.Bearing, movementStruct.ColorComplexity); } else if (movementStruct.Bearing == ManeuverBearing.Stationary) { result = new StationaryMovement(movementStruct.SpeedIntUnsigned, movementStruct.Direction, movementStruct.Bearing, movementStruct.ColorComplexity); } else if (movementStruct.Bearing == ManeuverBearing.SideslipBank) { result = new SideslipBankMovement(movementStruct.SpeedIntUnsigned, movementStruct.Direction, movementStruct.Bearing, movementStruct.ColorComplexity); } else if (movementStruct.Bearing == ManeuverBearing.SideslipTurn) { result = new SideslipTurnMovement(movementStruct.SpeedIntUnsigned, movementStruct.Direction, movementStruct.Bearing, movementStruct.ColorComplexity); } else if (movementStruct.Bearing == ManeuverBearing.ReverseStraight) { if (movementStruct.Direction == ManeuverDirection.Forward) { result = new ReverseStraightMovement(movementStruct.SpeedIntUnsigned, movementStruct.Direction, movementStruct.Bearing, movementStruct.ColorComplexity); } else { result = new ReverseBankMovement(movementStruct.SpeedIntUnsigned, movementStruct.Direction, movementStruct.Bearing, movementStruct.ColorComplexity); } } return(result); }
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(); }