示例#1
0
        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);
                }
            }
        }
示例#2
0
    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);
    }
示例#3
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();
        }