Beispiel #1
0
 public virtual void SetActive()
 {
     if (state != MissionStates.ACTIVE)
     {
         state = MissionStates.ACTIVE;
         MissionActivated();
     }
     state = MissionStates.ACTIVE;
 }
Beispiel #2
0
 protected void MissionFinished()
 {
     PersonInfo.AddCoins(coinAward);
     PersonInfo.AddGold(goldAward);
     this.state = MissionStates.FINISHED;
     for (int i = 0; i < missionListeners.Count; i++)
     {
         ((IMissionListener)missionListeners[i]).MissionFinished(this);
     }
 }
        public void DeckEnableCheck()
        {
            for (int i = 0; i < this.CommandMenu.menuParts.Length; i++)
            {
                this.CommandMenu.menuParts[i].SetMenuState(CommandMenuParts.MenuState.Forcus);
                this.CommandMenu.menuParts[i].SetMenuState(CommandMenuParts.MenuState.NonForcus);
            }
            if (SingletonMonoBehaviour <AppInformation> .Instance.CurrentDeck.IsActionEnd() || SingletonMonoBehaviour <AppInformation> .Instance.CurrentDeck.MissionState != MissionStates.NONE || SingletonMonoBehaviour <AppInformation> .Instance.CurrentDeck.HasBling())
            {
                this.CommandMenu.menuParts[0].SetMenuState(CommandMenuParts.MenuState.Disable);
                this.CommandMenu.menuParts[1].SetMenuState(CommandMenuParts.MenuState.Disable);
                this.CommandMenu.menuParts[4].SetMenuState(CommandMenuParts.MenuState.Disable);
            }
            if (SingletonMonoBehaviour <AppInformation> .Instance.CurrentDeck.IsActionEnd() || SingletonMonoBehaviour <AppInformation> .Instance.CurrentDeck.HasBling())
            {
                this.CommandMenu.menuParts[3].SetMenuState(CommandMenuParts.MenuState.Disable);
            }
            if (SingletonMonoBehaviour <AppInformation> .Instance.CurrentDeck.MissionState == MissionStates.STOP)
            {
                this.CommandMenu.menuParts[3].SetMenuState(CommandMenuParts.MenuState.Disable);
            }
            if (StrategyAreaManager.FocusAreaID != SingletonMonoBehaviour <AppInformation> .Instance.CurrentDeck.AreaId || SingletonMonoBehaviour <AppInformation> .Instance.CurrentDeck.Count <= 0)
            {
                if (this.currentMenu != TaskStrategyCommandMenu.MENU_NAME.INFO)
                {
                    this.currentMenu = TaskStrategyCommandMenu.MENU_NAME.DEPLOY;
                }
                this.CommandMenu.menuParts[0].SetMenuState(CommandMenuParts.MenuState.Disable);
                this.CommandMenu.menuParts[1].SetMenuState(CommandMenuParts.MenuState.Disable);
                this.CommandMenu.menuParts[4].SetMenuState(CommandMenuParts.MenuState.Disable);
                this.CommandMenu.menuParts[3].SetMenuState(CommandMenuParts.MenuState.Disable);
            }
            MissionStates missionState = SingletonMonoBehaviour <AppInformation> .Instance.CurrentDeck.MissionState;

            if (missionState != MissionStates.NONE)
            {
                if (this.currentMenu != TaskStrategyCommandMenu.MENU_NAME.INFO)
                {
                    this.currentMenu = TaskStrategyCommandMenu.MENU_NAME.DEPLOY;
                }
                this.CommandMenu.menuParts[7].SetMenuState(CommandMenuParts.MenuState.Disable);
            }
            this.CommandMenu.SetMissionState(missionState);
            if (!this.CheckActiveDeckExist())
            {
                this.currentMenu = TaskStrategyCommandMenu.MENU_NAME.TURNEND;
            }
            else if (this.currentMenu == TaskStrategyCommandMenu.MENU_NAME.TURNEND || this.currentMenu == TaskStrategyCommandMenu.MENU_NAME.MOVE)
            {
                this.currentMenu = TaskStrategyCommandMenu.MENU_NAME.SALLY;
            }
        }
        public void SetMissionState(MissionStates state)
        {
            CommandMenuParts commandMenuParts = menuParts[3];

            if (state == MissionStates.RUNNING)
            {
                commandMenuParts.MenuNameStr = "menu_stop";
            }
            else
            {
                commandMenuParts.MenuNameStr = "menu_expedition";
            }
            SetMenuStates(myOffset);
        }
Beispiel #5
0
 private bool IsTransitionTokenValid(OpenTitan_LifeCycleState currentState, OpenTitan_LifeCycleState nextState)
 {
     if (LockedTestStates.Contains(currentState) && UnlockedTestStates.Contains(nextState))
     {
         return(token.SequenceEqual(testUnlockToken));
     }
     else if (UnlockedTestStates.Contains(currentState) && MissionStates.Contains(nextState))
     {
         return(token.SequenceEqual(testExitToken));
     }
     else if (MissionStates.Contains(currentState) && nextState == OpenTitan_LifeCycleState.Rma)
     {
         return(token.SequenceEqual(rmaToken));
     }
     // No token required for this transition
     return(true);
 }
 public void SetMissionState(MissionStates state)
 {
     if (state == MissionStates.RUNNING)
     {
         this.MenuButtonName[3] = "menu_stop_";
     }
     else
     {
         this.MenuButtonName[3] = "menu_expedition_";
     }
     this.missionState = state;
     if (this.myOffset == 3)
     {
         string text = string.Empty;
         text = ((!this.MenuEnable[0]) ? "off" : "on");
         this.MenuButtonSprite[0].spriteName = this.MenuButtonName[3] + text;
     }
 }
 public void SetMissionState(MissionStates state)
 {
     if (state == MissionStates.RUNNING)
     {
         MenuButtonName[3] = "menu_stop_";
     }
     else
     {
         MenuButtonName[3] = "menu_expedition_";
     }
     missionState = state;
     if (myOffset == 3)
     {
         string empty = string.Empty;
         string str   = (!MenuEnable[0]) ? "off" : "on";
         MenuButtonSprite[0].spriteName = MenuButtonName[3] + str;
     }
 }
Beispiel #8
0
 private bool IsTransitionAllowed(OpenTitan_LifeCycleState currentState, OpenTitan_LifeCycleState nextState)
 {
     if (nextState == OpenTitan_LifeCycleState.Scrap ||
         currentState == OpenTitan_LifeCycleState.Raw && UnlockedTestStates.Contains(nextState))
     {
         return(true);
     }
     else if (UnlockedTestStates.Contains(currentState))
     {
         if (LockedTestStates.Contains(nextState) && (nextState > currentState) ||
             nextState == OpenTitan_LifeCycleState.Rma ||
             MissionStates.Contains(nextState))
         {
             return(true);
         }
     }
     else if ((currentState == OpenTitan_LifeCycleState.Dev || currentState == OpenTitan_LifeCycleState.Prod) &&
              nextState == OpenTitan_LifeCycleState.Rma)
     {
         return(true);
     }
     return(false);
 }
Beispiel #9
0
 public void CompleteMission()
 {
     this.State = MissionStates.Finished;
 }
Beispiel #10
0
 public Mission(string codeName, MissionStates state)
 {
     this.CodeName = codeName;
     this.State    = state;
 }
Beispiel #11
0
        public void OnTick(object sender, EventArgs e)
        {
            if (InputWidowOpen)
            {
                if (menuPool.IsAnyMenuOpen())
                {
                    menuPool.CloseAllMenus();
                }
                switch (Function.Call <int>(Hash.UPDATE_ONSCREEN_KEYBOARD))
                {
                default:
                    break;

                case 1:
                    mNameString        = Function.Call <string>(Hash.GET_ONSCREEN_KEYBOARD_RESULT);
                    InputWidowOpen     = false;
                    CreateMenu.Visible = true;
                    mName.Text         = "Name:  " + mNameString;
                    break;

                case 2:
                    InputWidowOpen     = false;
                    CreateMenu.Visible = true;
                    break;
                }
            }

            // Fail states


            if (menuPool != null)
            {
                menuPool.ProcessMenus();
            }

            if (DEBUG)
            {
                myUIText = new UIText("" + CurrentState + " Distance:" + distance, new Point(10, 10), 0.4f, Color.WhiteSmoke, 0, false);
                myUIText.Draw();
            }
            if (!menuPool.IsAnyMenuOpen())
            {
                if (DrawStartPos)
                {
                    DrawStartPos = false;
                }
            }
            else if (DrawStartPos)
            {
                World.DrawMarker(MarkerType.VerticalCylinder, mStartVector, Vector3.Zero, Vector3.Zero, new Vector3(4, 4, 1), Color.FromArgb(180, Color.Yellow));
            }

            if (Game.Player.IsPlaying)
            {
                if ((int)CurrentState >= 2 && (int)CurrentState < 6)
                {
                    if (CurrentMission.PedCount > 0 && MissionPeds.FindAll(p => !p.IsAlive).Count > 0)
                    {
                        CurrentState = MissionStates.Fail;
                    }
                    if (MissionVehicle == null)
                    {
                        CurrentState = MissionStates.Fail;
                    }
                    else if (MissionVehicle.IsDead)
                    {
                        CurrentState = MissionStates.Fail;
                    }
                }
                switch (CurrentState)
                {
                case MissionStates.None:     // Active When No Mission is present.
                    if (CurrentMission != null)
                    {
                        if (CurrentMission.active)
                        {
                            MissionBlipStart(CurrentMission, MissionBlip);
                            CurrentState = MissionStates.Offered;
                        }
                        else
                        {
                            GenerateMission();
                        }
                    }
                    break;

                case MissionStates.Offered:
                    distance = CurrentMission.GetStartPos().DistanceTo(Game.Player.Character.Position);
                    if (distance < 280)
                    {
                        World.DrawMarker(MarkerType.VerticalCylinder, CurrentMission.GetStartPos(), Vector3.Zero, Vector3.Zero, new Vector3(4, 4, 1), Color.FromArgb(180, Color.Yellow));
                        if (distance < 20)
                        {
                            if (MissionVehicle == null)
                            {
                                MissionVehicle = GetMissionVehicle(CurrentMission);
                            }
                            if (distance < 4)
                            {
                                if (MissionVehicle != null && MissionVehicle.Driver != null && MissionVehicle.Driver.IsPlayer && MissionVehicle.IsStopped)
                                {
                                    bool start = false;
                                    if (CurrentMission.PedCount > 0)
                                    {
                                        GeneratePeds(CurrentMission, MissionPeds);
                                        if (MissionPeds.Count > 0 && MissionPeds.Count == CurrentMission.PedCount)
                                        {
                                            start = true;
                                        }
                                    }
                                    else
                                    {
                                        start = true;
                                    }

                                    if (start)
                                    {
                                        MissionBlipEnd(CurrentMission, MissionBlip);
                                        CurrentState = MissionStates.Start;     //Vehicle and Ped is spawned, and player is in vehicle. Change to Start state.
                                    }
                                }
                            }
                        }
                    }
                    break;


                case MissionStates.Start:
                    if (MissionVehicle.Driver != null && MissionVehicle.Driver.IsPlayer)
                    {
                        if (CurrentMission.PedCount > 0)
                        {
                            if (MissionPeds.Count > 0)
                            {
                                foreach (Ped ped in MissionPeds)
                                {
                                    if (ped.CurrentPedGroup != Game.Player.Character.CurrentPedGroup)
                                    {
                                        Game.Player.Character.CurrentPedGroup.Add(ped, false);
                                    }
                                }
                            }
                            if (MissionPeds.FindAll(p => p.CurrentPedGroup != Game.Player.Character.CurrentPedGroup).Count == 0)
                            {
                                foreach (Ped ped in MissionPeds)
                                {
                                    if (ped.CurrentPedGroup == Game.Player.Character.CurrentPedGroup)
                                    {
                                        ped.Task.EnterVehicle(MissionVehicle, VehicleSeat.Passenger);
                                    }
                                }
                                CurrentState = MissionStates.Middle;
                            }
                        }
                        else
                        {
                            CurrentState = MissionStates.Middle;
                        }
                    }
                    break;

                case MissionStates.Middle:
                    if (CurrentMission.PedCount > 0)
                    {
                        if (MissionPeds.FindAll(p => p.CurrentVehicle == MissionVehicle).Count == 0)
                        {
                            CurrentState = MissionStates.End;
                        }
                    }
                    else
                    {
                        CurrentState = MissionStates.End;
                    }
                    break;

                case MissionStates.End:
                    distance = CurrentMission.GetNewEndPos().DistanceTo(Game.Player.Character.Position);
                    if (distance < 280)
                    {
                        World.DrawMarker(MarkerType.VerticalCylinder, CurrentMission.GetNewEndPos(), Vector3.Zero, Vector3.Zero, new Vector3(4, 4, 1), Color.FromArgb(180, Color.Yellow));
                        if (distance < 5 && MissionVehicle.IsStopped)
                        {
                            MissionBlip.Remove();
                            if (CurrentMission.PedCount > 0)
                            {
                                foreach (Ped p in MissionPeds)
                                {
                                    RemovePed(p);
                                }
                                if (MissionPeds.FindAll(p => p.CurrentPedGroup == Game.Player.Character.CurrentPedGroup).Count == 0)
                                {
                                    CurrentState = MissionStates.Finish;
                                }
                            }
                            else
                            {
                                CurrentState = MissionStates.Finish;
                            }
                        }
                    }
                    break;

                case MissionStates.Finish:
                    MissionVehicle = null;
                    if (MissionPeds.FindAll(p => p.IsInVehicle()).Count == 0)
                    {
                        Game.Player.Money += 2000;
                        MissionPeds.Clear();
                        CurrentState = MissionStates.None;     // Ped has gotten out of vehicle, give player money and set us to having no mission.
                    }
                    break;

                default:
                    break;
                }
            }
        }