예제 #1
0
        public override void AskAssignManeuver()
        {
            Selection.ThisShip.Ai.TimeManeuverAssigned = Time.time;
            ShipMovementScript.SendAssignManeuverCommand(Selection.ThisShip.ShipId, AI.Aggressor.NavigationSubSystem.BestManeuver);

            AssignManeuverRecursive();
        }
예제 #2
0
        private void FinishAdaptiveAileronsAbility()
        {
            doAilerons = false;
            HostShip.CanPerformActionsWhenBumped      = false;
            HostShip.CanPerformActionsWhenOverlapping = false;
            RestoreManuverColors(HostShip);
            Phases.CurrentSubPhase.IsReadyForCommands = true;
            //ship may have flown off the board; only assign saved maneuver if ship is exists
            if (Roster.GetShipById("ShipId:" + Selection.ThisShip.ShipId) != null)
            {
                ManeuverSelectionSubphase subphase = Phases.StartTemporarySubPhaseNew <ManeuverSelectionSubphase>(
                    "Select a maneuver",
                    Triggers.FinishTrigger
                    );
                subphase.RequiredPlayer = Selection.ThisShip.Owner.PlayerNo;
                subphase.Start();
                subphase.IsReadyForCommands = true;

                ShipMovementScript.SendAssignManeuverCommand(Selection.ThisShip.ShipId, SavedManeuver.ToString());
            }
            else
            {
                Triggers.FinishTrigger();
            }
        }
예제 #3
0
 private void ManeuverSelected(string maneuverString)
 {
     if (maneuverString != TargetShip.AssignedManeuver.ToString())
     {
         HostShip.State.Force--;
     }
     ShipMovementScript.SendAssignManeuverCommand(maneuverString);
 }
예제 #4
0
        private void FinishAdaptiveAileronsAbility()
        {
            RestoreManuverColors(HostShip);

            Phases.CurrentSubPhase.IsReadyForCommands = true;
            ShipMovementScript.SendAssignManeuverCommand(Selection.ThisShip.ShipId, SavedManeuver.ToString());
            //GameMode.CurrentGameMode.AssignManeuver(SavedManeuver.ToString());
            // It calls Triggers.FinishTrigger
        }
예제 #5
0
        public override void AskAssignManeuver()
        {
            base.AskAssignManeuver();

            if (DebugManager.DebugStraightToCombat)
            {
                ShipMovementScript.SendAssignManeuverCommand("2.F.S");
                AssignManeuversRecursive();
            }
        }
예제 #6
0
파일: R2A6.cs 프로젝트: vitreuz/FlyCasual
        private void AskChangeManeuver(object sender, System.EventArgs e)
        {
            Messages.ShowInfoToHuman(HostShip.PilotInfo.PilotName + " : You can change your maneuver");

            HostShip.Owner.ChangeManeuver(
                (maneuverCode) => {
                ShipMovementScript.SendAssignManeuverCommand(maneuverCode);
            },
                Triggers.FinishTrigger,
                IsSpeedPlusMinus1
                );
        }
예제 #7
0
 public override void AskAssignManeuver()
 {
     if (!DebugManager.DebugStraightToCombat)
     {
         AI.Aggressor.NavigationSubSystem.AssignPlannedManeuver(AssignManeuversRecursive);
     }
     else
     {
         ShipMovementScript.SendAssignManeuverCommand("2.F.S");
         AssignManeuversRecursive();
     }
 }
예제 #8
0
        private void AssignManeuverWithIncreasedComplexity(string maneuverCode)
        {
            if (maneuverCode != HostShip.AssignedManeuver.ToString())
            {
                Messages.ShowInfo(HostUpgrade.UpgradeInfo.Name + ": The difficulty of the maneuver has been increased");

                HostShip.AfterGetManeuverColorIncreaseComplexity += ChangeComplexity;
                HostShip.OnMovementFinish += ClearAbility;
            }

            ShipMovementScript.SendAssignManeuverCommand(maneuverCode);
        }
예제 #9
0
 private void ManeuverSelected(string maneuverString)
 {
     if (maneuverString != TargetShip.AssignedManeuver.ToString())
     {
         HostShip.State.SpendForce(
             1,
             delegate { ShipMovementScript.SendAssignManeuverCommand(maneuverString); }
             );
     }
     else
     {
         ShipMovementScript.SendAssignManeuverCommand(maneuverString);
     }
 }
예제 #10
0
        public override void AssignManeuversStart()
        {
            base.AssignManeuversStart();

            foreach (var ship in Ships.Values)
            {
                if (ship.State.IsIonized)
                {
                    continue;
                }

                ShipMovementScript.SendAssignManeuverCommand(ship.ShipId, "2.F.S");
            }
            GameMode.CurrentGameMode.ExecuteCommand(UI.GenerateNextButtonCommand());
        }
예제 #11
0
        public override void AssignManeuver()
        {
            base.AssignManeuver();

            foreach (var shipHolder in Ships)
            {
                if (RulesList.IonizationRule.IsIonized(shipHolder.Value))
                {
                    continue;
                }

                ShipMovementScript.SendAssignManeuverCommand(shipHolder.Value.ShipId, "2.F.S");
            }
            GameMode.CurrentGameMode.ExecuteCommand(UI.GenerateNextButtonCommand());
        }
예제 #12
0
        private void ShowChangeManeuver(object sender, EventArgs e)
        {
            SubPhases.DecisionSubPhase.ConfirmDecisionNoCallback();

            ModifyManeuversComplexity();

            HostShip.Owner.ChangeManeuver(
                (maneuverCode) => {
                Messages.ShowInfo(HostUpgrade.UpgradeInfo.Name + ": Maneuver was changed");
                ShipMovementScript.SendAssignManeuverCommand(maneuverCode);
                HostShip.OnMovementFinish += RestoreManuvers;
            },
                Triggers.FinishTrigger,
                IsNextHigherSpeedBasic
                );
        }
예제 #13
0
        protected void AskChangeManeuver(object sender, System.EventArgs e)
        {
            Messages.ShowInfoToHuman("Countess Ryad: You can change your maneuver to Koiogran turn");
            maneuverKey   = HostShip.AssignedManeuver.Speed + ".F.R";
            originalColor = (HostShip.Maneuvers.ContainsKey(maneuverKey)) ? HostShip.Maneuvers[maneuverKey] : MovementComplexity.None;
            HostShip.Maneuvers[maneuverKey] = GetNewManeuverComplexity();

            HostShip.Owner.ChangeManeuver(
                (maneuverCode) => {
                ShipMovementScript.SendAssignManeuverCommand(maneuverCode);
                HostShip.OnMovementFinish += RestoreManuvers;
            },
                Triggers.FinishTrigger,
                StraightOrKoiogran
                );
        }
예제 #14
0
        private void AskChangeManeuver(object sender, System.EventArgs e)
        {
            Messages.ShowInfoToHuman("Tetran Cowall: Select speed of Koiogran turn");

            //To mantain Adrenalin Rush color change
            HostShip.Maneuvers["1.F.R"] = HostShip.AssignedManeuver.ColorComplexity;
            HostShip.Maneuvers["3.F.R"] = HostShip.AssignedManeuver.ColorComplexity;
            HostShip.Maneuvers["5.F.R"] = HostShip.AssignedManeuver.ColorComplexity;

            HostShip.Owner.ChangeManeuver(
                (maneuverCode) => {
                ShipMovementScript.SendAssignManeuverCommand(maneuverCode);
                HostShip.OnMovementFinish -= RestoreManuvers;
            },
                Triggers.FinishTrigger,
                allowedKoiogranFilter
                );
        }
예제 #15
0
        private void AskChangeManeuver(object sender, System.EventArgs e)
        {
            Messages.ShowInfoToHuman("Servomotor S-foils: You can change your maneuver to red Tallon roll");

            string tallonCode = HostShip.AssignedManeuver.ToString().Replace('T', 'E');

            HostShip.Maneuvers[tallonCode] = MovementComplexity.Complex;

            allowedMovements.Clear();
            allowedMovements.Add(HostShip.AssignedManeuver.ToString());
            allowedMovements.Add(tallonCode);

            HostShip.Owner.ChangeManeuver(
                (maneuverCode) => {
                ShipMovementScript.SendAssignManeuverCommand(maneuverCode);
                HostShip.OnMovementFinish += RestoreManuvers;
            },
                Triggers.FinishTrigger,
                TurnOrTallonRoll
                );
        }
예제 #16
0
        private void AskChangeManeuver(object sender, System.EventArgs e)
        {
            Messages.ShowInfoToHuman(HostShip.PilotInfo.PilotName + " : You can increase or decrease your maneuver speed");
            allowedMovements.Clear();
            string key   = HostShip.AssignedManeuver.ToString();
            int    speed = HostShip.AssignedManeuver.Speed;

            allowedMovements.Add(key);

            //Generate key for maneuvre + 1. If exist backups old color, and change to actual
            keyPlus   = key.Replace(speed.ToString()[0], (speed + 1).ToString()[0]);
            plusColor = MovementComplexity.None;
            if (HostShip.Maneuvers.ContainsKey(keyPlus))
            {
                allowedMovements.Add(keyPlus);
                plusColor = HostShip.Maneuvers[keyPlus];
                HostShip.Maneuvers[keyPlus] = HostShip.AssignedManeuver.ColorComplexity;
            }

            //Generate key for maneuvre - 1. If exist backups old color, and change to actual
            keyMinus   = key.Replace(speed.ToString()[0], (speed - 1).ToString()[0]);
            minusColor = MovementComplexity.None;
            if (HostShip.Maneuvers.ContainsKey(keyMinus))
            {
                allowedMovements.Add(keyMinus);
                minusColor = HostShip.Maneuvers[keyMinus];
                HostShip.Maneuvers[keyMinus] = HostShip.AssignedManeuver.ColorComplexity;
            }

            HostShip.Owner.ChangeManeuver(
                (maneuverCode) => {
                ShipMovementScript.SendAssignManeuverCommand(maneuverCode);
                HostShip.OnMovementFinish += RestoreManuvers;
            },
                Triggers.FinishTrigger,
                StraightOrKoiogran
                );
        }
예제 #17
0
 private void RpcAssignManeuver(int shipId, string maneuverCode)
 {
     ShipMovementScript.SendAssignManeuverCommand(shipId, maneuverCode);
 }
예제 #18
0
        private void FinishAssignManeuver()
        {
            ShipMovementScript.SendAssignManeuverCommand(Selection.ThisShip.ShipId, AI.Aggressor.NavigationSubSystem.BestManeuver);

            AssignManeuverRecursive();
        }
예제 #19
0
 private void FinishAdaptiveAileronsAbility()
 {
     ShipMovementScript.SendAssignManeuverCommand(Selection.ThisShip.ShipId, SavedManeuver.ToString());
     //GameMode.CurrentGameMode.AssignManeuver(SavedManeuver.ToString());
     // It calls Triggers.FinishTrigger
 }
예제 #20
0
 public override void AssignManeuver(string maneuverCode)
 {
     ShipMovementScript.SendAssignManeuverCommand(Selection.ThisShip.ShipId, maneuverCode);
 }
예제 #21
0
 public static void AssignPlannedManeuver(Action callBack)
 {
     ShipMovementScript.SendAssignManeuverCommand(VirtualBoard.Ships[Selection.ThisShip].PlannedManeuverCode);
     GameManagerScript.Wait(0.2f, delegate { callBack(); });
 }