Beispiel #1
0
    protected GuiMenu SetState(T state)
    {
        if (IsInState(state) == true)
        {
            return(CurrentMenu);
        }

        InputManager.FlushInput();

        // hide previous menu if any
        GuiMenu menu = CurrentMenu;

        if (menu != null)
        {
            menu.HideMenu();
        }

        // set new state
        m_CurrentState = state;

        // inform sub-classes
        OnStateChanged();

        // get current menu
        return(CurrentMenu);
    }
Beispiel #2
0
 public static void OnGuiCreation(GuiMenu guiMenu, int guiTypeCode)
 {
     if (Phi.Instance.GuiManager.GuiCreationEvent != null)
     {
         Phi.Instance.GuiManager.GuiCreationEvent(Phi.Instance, new EventGui(guiMenu, (EventGui.GuiType)guiTypeCode));
     }
 }
Beispiel #3
0
    // GUIVIEW INTERFACE

    protected override void OnViewInit()
    {
        base.OnViewInit();

        for (int idx = 0; idx < PPIDailyRewards.DAYS_PER_CYCLE; ++idx)
        {
            m_Days[idx] = new Day(Layout.GetWidget("Day_" + idx));
        }

        // run watch dog
        Transform parent = transform.parent;

        while (parent != null)
        {
            GuiMenu menu = parent.GetComponent <GuiMenu>();
            if (menu == null)
            {
                parent = parent.parent;
            }
            else
            {
                menu.gameObject.AddComponent <DailyRewardsWatchDog>();
                break;
            }
        }
    }
    static bool OpenMenu(E_MenuState state)
    {
        if (CanChangeToState(state) == false)
        {
            return(false);
        }

        GuiMenu menu = m_Instance.SetState(state);

        if (menu == null)
        {
            return(false);
        }

        m_Instance.UpdateHudVisibility(false);

        if (menu.IsInitialized == false)
        {
            menu.InitMenu(m_Instance);
        }

        menu.ShowMenu();

        return(true);
    }
Beispiel #5
0
 public static void UnregisterMenu(GuiMenu menu)
 {
     if (Instance == null)
     {
         return;
     }
     m_Instance.DeactivateAction(m_Instance.m_ActiveAction);
 }
        public bool MenuSelectionByID(string strMenuID)
        {
            GuiSession SapSession = getCurrentSession();
            GuiMenu    menu       = (GuiMenu)SapSession.ActiveWindow.FindById(strMenuID, "GuiMenu");

            menu.Select();
            return(true);
        }
 public static T FindDescendantByProperty <T>(this GuiMenu Menu, Func <T, bool> Property = null)
     where T : class
 {
     if (Property == null)
     {
         Property = new Func <T, bool>(t => true);
     }
     return(findDescendantByPropertyTemplate <T>(Menu.Children, Property));
 }
    //zakomentovane,  nebude se asi pouzivat (cisla zatim staci).pokud se odkomentuje, je treba pridat k widgetu sprite pro ikonu ("GadgetIcon").

    /*void SetGadgetsSprites()
     * {
     *      //TODO: zobrazovani itemu muze byt matouci, pokud je obsazeno mene slotu tak se to v gadgetech collapsuje a obsazuji se nejprve prvni, pak druhy, etc (i dyz je v equipu obsazen napr druhy a treti)
     *      //zjisti ktery item je ve kterem slotu.
     *      //GuiHUD.Instance.Gadgets jeste nejsou inicializovene takze to zjistitme z ppi
     *      List<PPIItemData> equipedItems = PPIManager.Instance.GetLocalPPI().EquipList.Items;
     *      for(int i = 0; i < GuiOptions.GadgetButtons.Length; i++)
     *      {
     *              string gName = gadgetDummnyName + (i+1);
     *              CustomControl c = m_Controls.Find(f => f.m_Name == gName);
     *              //E_ItemID itemID = GuiHUD.Instance.Gadgets.Gadgets[i];
     *              PPIItemData itmData = equipedItems.Find(f => f.EquipSlotIdx == i);
     *              E_ItemID itemID = itmData.ID;
     *  GUIBase_Sprite s = GuiBaseUtils.GetChildSprite( c.m_WidgetDummy, "GadgetIcon" );
     *              if(itemID != E_ItemID.None)
     *              {
     *          ItemSettings itmSet = ItemSettingsManager.Instance.Get(itemID);
     *          s.Widget.CopyMaterialSettings(itmSet.HudWidget);
     *                      s.Widget.FadeAlpha	= 1.0f;     //Show
     *              }
     *              else
     *              {
     *                      s.Widget.FadeAlpha	= 0f;       //hide
     *              }
     *      }
     * }*/

    protected override void OnViewHide()
    {
        GuiBaseUtils.RegisterButtonDelegate(m_ScreenLayout, "ResetButton", null, null);
        GuiBaseUtils.RegisterButtonDelegate(m_ScreenLayout, "Back_Button", null, null);

        GuiMenu menu = Owner as GuiMenu;

        if (menu != null)
        {
            menu.SetOverlaysVisible(true);
            menu.SetBackgroundVisibility(true);
        }
    }
Beispiel #9
0
    protected override void OnViewHide()
    {
        RegisterButtonDelegate(CLOSE_BUTTON, null, null);

        GuiMenu menu = Owner as GuiMenu;

        if (menu != null)
        {
            menu.SetOverlaysEnabled(true);
            menu.SetBackgroundVisibility(true);
        }

        base.OnViewHide();
    }
Beispiel #10
0
    protected override void OnViewShow()
    {
        base.OnViewShow();

        GuiMenu menu = Owner as GuiMenu;

        if (menu != null)
        {
            menu.SetOverlaysEnabled(false);
            menu.SetBackgroundVisibility(false);
        }

        RegisterButtonDelegate(CLOSE_BUTTON, null, (inside) => { Owner.Back(); });
    }
Beispiel #11
0
        protected override void Initialize()
        {
            Program.LogAgmnt("MainGame", $"loading config", "Logic");
            Config         = ConfigLoader.Load($"{Content.RootDirectory}\\Config.mm");
            IsMouseVisible = Config.Get <bool>("EnableMouse");

            /* The GUI is added in initialize because it depends on the GraphicsDevice wich is not yet available in the constructor. */
            if (Config.Get <bool>("EnableDebugText"))
            {
                gui = new GuiMenu(this);
                gui.Show();
            }

            base.Initialize();
        }
    protected override void OnActiveScreen(string screenName)
    {
        GuiMenu frontend = Owner as GuiMenu;

        if (string.IsNullOrEmpty(screenName) == false && (frontend == null || frontend.ScreenStackDepth >= 1))
        {
            Layout.Show(IsVisible);

            base.OnActiveScreen(screenName);
        }
        else
        {
            Layout.Show(false);
        }
    }
    protected override void OnViewShow()
    {
        GuiMenu menu = Owner as GuiMenu;

        if (menu != null)
        {
            menu.SetBackgroundVisibility(false);
            menu.SetOverlaysVisible(false);
        }

        InitTempPositions();
        //SetGadgetsSprites(); //TODO: nefunguje tak jak bych si predstavoval, doresit logiku

        ShowSchemeSpecificSprites();

        GuiBaseUtils.RegisterButtonDelegate(m_ScreenLayout, "ResetButton", null, ResetButtonDelegate);
        GuiBaseUtils.RegisterButtonDelegate(m_ScreenLayout, "Back_Button", null, ConfirmButtonDelegate);
    }
Beispiel #14
0
        public static void MenuSelect(string id, GuiMenu menu, GuiSession session)
        {
            if (menu == null && string.IsNullOrEmpty(id))
            {
                throw new Exception("Parameters for the Target object not provided: id or GuiMenu object");
            }

            if (session == null)
            {
                throw new Exception("SAP session parameter is required and was not provided.");
            }

            if (menu == null)
            {
                menu = (GuiMenu)(session).FindById(id);
            }
            menu.Select();
        }
Beispiel #15
0
    static bool OpenMenu(E_MenuState state)
    {
        GuiMenu menu = PrepareMenu(state);

        if (menu == null)
        {
            return(false);
        }

        if (menu.IsInitialized == false)
        {
            menu.InitMenu(m_Instance);
        }

        menu.ShowMenu();

        return(true);
    }
Beispiel #16
0
    protected override void OnViewShow()
    {
        base.OnViewShow();

        GuiMenu menu = Owner as GuiMenu;

        if (menu != null)
        {
            menu.SetOverlaysVisible(false);
            menu.SetBackgroundVisibility(false);
        }

        m_Prize = 0;

        m_SlotMachine.Activate();

        m_ChipsLabel   = GuiBaseUtils.GetControl <GUIBase_Label>(Layout, CHIPS_LABEL);
        m_GoldsLabel   = GuiBaseUtils.GetControl <GUIBase_Label>(Layout, GOLDS_LABEL);
        m_JackpotLabel = GuiBaseUtils.GetControl <GUIBase_Label>(Layout, JACKPOT_LABEL);

        m_CloseButton = GuiBaseUtils.RegisterButtonDelegate(Layout, CLOSE_BUTTON, () => { StartCoroutine(Close_Coroutine()); }, null);

        m_SpinButton = GuiBaseUtils.RegisterButtonDelegate(Layout, SPIN_BUTTON, () => { StartCoroutine(Spin_Coroutine()); }, null);

        m_BuyChipsButton = GuiBaseUtils.RegisterButtonDelegate(Layout, BUYCHIPS_BUTTON, () => { StartCoroutine(BuyChips_Coroutine()); }, null);

        PlayerPersistantInfo ppi = PPIManager.Instance.GetLocalPPI();

        m_CloseButton.IsDisabled = false;

        if (ppi.Chips <= 0)
        {
            StartCoroutine(BuyChips_Coroutine());
        }

        // make sure we have correct value displayed
        Jackpot = m_Jackpot;

        RefreshValues();
        UpdateButtons();
    }
Beispiel #17
0
    // PUBLIC MEMBERS

    public static void RegisterMenu(GuiMenu menu)
    {
        if (menu == null)
        {
            return;
        }

        // ensure WILL create new instance here
        if (Instance == null)
        {
            return;
        }
        if (m_Instance.m_GuideData.Menu != null)
        {
            return;
        }

        m_Instance.m_GuideData.Menu = menu;

        m_Instance.m_IsDirty = true;
    }
        public override void OnInitMenus()
        {
            GuiMenu mnu = new GuiMenu("miningStoreMenu");

            mnu.Picture     = "gameScreen.Storage";
            mnu.Location    = new Point(120, 40);
            mnu.TextureArea = new Rectangle(0, 0, 680, 420);
            GameEngine.Instance.GuiMenuModule.Add(mnu.Id, mnu);

            GuiButtonInfo btn = new GuiButtonInfo("miningStoreMenu", new Rectangle(80, 378, 61, 40), "Switch store", "", true);

            btn.Params.Add("SwitchStore", new GuiButtonParamExecuteModuleMethod("SwitchStore", GetType().ToString()));
            mnu.Buttons.Add(GetType().Name + ".SwitchStore", btn);

            mnu             = new GuiMenu("miningStoreItemMenu");
            mnu.Picture     = "";
            mnu.Location    = new Point(560 + 120, 0 + 40);
            mnu.TextureArea = new Rectangle(0, 0, 101, 334);
            GameEngine.Instance.GuiMenuModule.Add(mnu.Id, mnu);

            SwitchStore();
            SwitchStore();
        }
        private void GameUpdate()
        {
            // Check if we're editing a storage module
            game         = (GameStateGame)gameState;
            activeModule = game.mActiveModule;
            menuSystem   = game.mMenuSystem;
            activeMenu   = menuSystem.getCurrentMenu();

            if (activeModule != null && activeModule.getCategory() == Module.Category.Storage)
            {
                if (activeMenu == menuSystem.mMenuEdit && !menuSetUp)
                {
                    SetupEditMenu(activeModule);
                    menuSetUp = true;
                }
            }
            else
            {
                menuSetUp = false;
            }

            RedirectCharacters();
        }
Beispiel #20
0
    void LateUpdate()
    {
        if (--m_HACK_FrameCount > 0)
        {
            return;
        }

        if (CloudUser.instance.isUserAuthenticated == false)
        {
            ShowLoginMenu();
        }
        else if (IsVisible == false)
        {
            ShowMainMenu();
        }

        GuiMenu menu = CurrentMenu;

        if (menu != null)
        {
            menu.UpdateMenu();
        }
    }
Beispiel #21
0
    protected override void OnViewHide()
    {
        StopAllCoroutines();

        // allow update next time
        m_UpdatingJackpot = false;

        GuiBaseUtils.RegisterButtonDelegate(Layout, CLOSE_BUTTON, null, null);
        GuiBaseUtils.RegisterButtonDelegate(Layout, SPIN_BUTTON, null, null);
        GuiBaseUtils.RegisterButtonDelegate(Layout, BUYCHIPS_BUTTON, null, null);

        m_SlotMachine.Deactivate();

        GuiMenu menu = Owner as GuiMenu;

        if (menu != null)
        {
            menu.SetOverlaysVisible(true);
            menu.SetBackgroundVisibility(true);
        }

        base.OnViewHide();
    }
Beispiel #22
0
    void LateUpdate()
    {
        if (CurrentState == E_MenuState.Loading)
        {
            return;
        }
        if (--m_HACK_FrameCount > 0)
        {
            return;
        }

        // open loading menu
        GuiMenu menu = SetState(E_MenuState.Loading);

        if (menu != null)
        {
            if (menu.IsInitialized == false)
            {
                menu.InitMenu(this);
            }

            menu.ShowMenu();
        }
    }
Beispiel #23
0
    void LateUpdate()
    {
        if (IsHudVisible == true)
        {
            Hud.OnLateUpdate();
        }

        if (IsVisible == false)
        {
            return;
        }

        if (CurrentMenu == null)
        {
            return;
        }

        GuiMenu menu = CurrentMenu;

        if (menu != null)
        {
            menu.UpdateMenu();
        }
    }
 public static IEnumerable <T> FindAllByName <T>(this GuiMenu Menu, string Name)
     where T : class
 {
     return(findAllByNameTemplate <T>(Name, Menu.FindAllByName));
 }
Beispiel #25
0
 public EventGui(GuiMenu guiMenu, GuiType guiType)
 {
     GuiMenu = guiMenu;
     Type = guiType;
 }
        public override void OnRenderInterface(Microsoft.DirectX.Direct3D.Sprite Overlay)
        {
            GuiMenu mnu = GameEngine.Instance.GuiMenuModule["factoryMenu"];

            TextureManagerItem it;

            if (BuildQueueIndex != -1 && BuildProgress > -1)
            {
                StoreItem sit = GameEngine.Instance.ItemTemplates[BuildQueue[BuildQueueIndex].ItemId];
                GameEngine.Instance.GuiFonts["fntGui"].DXFont.DrawText(Overlay, sit.Title, new Rectangle(mnu.Location.X, mnu.Location.Y + 40, 200, 20), DrawTextFormat.Left | DrawTextFormat.VerticalCenter, Color.Green);

                if (GameEngine.Instance.GuiTextures.ContainsKey("placeholder"))
                {
                    it = GameEngine.Instance.mainTextures.GetTexture(GameEngine.Instance.GuiTextures["placeholder"].textureIdx);
                    if (it != null && it.Texture != null)
                    {
                        Overlay.Transform = Matrix.Identity;

                        Overlay.Draw(it.Texture, new Rectangle(0, 0, 200, 125), new Vector3(0, 0, 0), new Vector3(mnu.Location.X, mnu.Location.Y + 69, 0), Color.FromArgb(255, 13, 13, 13).ToArgb());
                    }
                }

                if (GameEngine.Instance.GuiTextures.ContainsKey(sit.Picture))
                {
                    it = GameEngine.Instance.mainTextures.GetTexture(GameEngine.Instance.GuiTextures[sit.Picture].textureIdx);
                    if (it != null && it.Texture != null)
                    {
                        Overlay.Transform = Matrix.Identity;

                        Overlay.Draw(it.Texture, new Rectangle(sit.TextureArea.Width * ((BuildProgress * 3) / sit.BuildTime + 1), 0, sit.TextureArea.Width, sit.TextureArea.Height), new Vector3(sit.TextureArea.Width, 0, 0), new Vector3(mnu.Location.X + 200, mnu.Location.Y + 69, 0), Color.White.ToArgb());
                    }
                }
            }

            if (HasAOC)
            {
                if (GameEngine.Instance.GuiTextures.ContainsKey("gameScreen.Production.AOC"))
                {
                    it = GameEngine.Instance.mainTextures.GetTexture(GameEngine.Instance.GuiTextures["gameScreen.Production.AOC"].textureIdx);
                    if (it != null && it.Texture != null)
                    {
                        Overlay.Transform = Matrix.Identity;

                        Overlay.Draw(it.Texture, new Rectangle(0, 0, 305, 58), new Vector3(0, 0, 0), new Vector3(mnu.Location.X + 366, mnu.Location.Y + 350, 0), Color.White.ToArgb());
                    }
                }
                // TODO: Render the real AOC blink
                if (GameEngine.Instance.GuiTextures.ContainsKey("gameScreen.Storage.ItemBlink"))
                {
                    it = GameEngine.Instance.mainTextures.GetTexture(GameEngine.Instance.GuiTextures["gameScreen.Storage.ItemBlink"].textureIdx);
                    if (it != null && it.Texture != null)
                    {
                        Overlay.Transform = Matrix.Identity;

                        Overlay.Draw(it.Texture, new Rectangle(8 + 42 * ((Environment.TickCount / 70) % 10), 8, 7, 4), new Vector3(0, 0, 0), new Vector3(mnu.Location.X + 366 + 58, mnu.Location.Y + 350 + 22, 0), Color.Red.ToArgb());
                        Overlay.Draw(it.Texture, new Rectangle(8 + 42 * ((Environment.TickCount / 70) % 10), 8, 7, 4), new Vector3(0, 0, 0), new Vector3(mnu.Location.X + 366 + 58, mnu.Location.Y + 350 + 21, 0), Color.Red.ToArgb());
                    }
                }
            }
            else
            {
                GameEngine.Instance.GuiFonts["fntGui"].DXFont.DrawText(Overlay, "LEADER", new Rectangle(mnu.Location.X + 364, mnu.Location.Y + 349, 90, 20), DrawTextFormat.Left | DrawTextFormat.VerticalCenter, Color.Red);
                GameEngine.Instance.GuiFonts["fntGui"].DXFont.DrawText(Overlay, "RANK", new Rectangle(mnu.Location.X + 364, mnu.Location.Y + 369, 90, 20), DrawTextFormat.Left | DrawTextFormat.VerticalCenter, Color.Red);
                GameEngine.Instance.GuiFonts["fntGui"].DXFont.DrawText(Overlay, "STAFF", new Rectangle(mnu.Location.X + 364, mnu.Location.Y + 389, 90, 20), DrawTextFormat.Left | DrawTextFormat.VerticalCenter, Color.Red);

                if (ProductionTeam == null)
                {
                    GameEngine.Instance.GuiFonts["fntGui"].DXFont.DrawText(Overlay, "None", new Rectangle(mnu.Location.X + 454, mnu.Location.Y + 349, 218, 20), DrawTextFormat.Left | DrawTextFormat.VerticalCenter, Color.White);
                }
                else
                {
                    GameEngine.Instance.GuiFonts["fntGui"].DXFont.DrawText(Overlay, ProductionTeam.TeamLeader, new Rectangle(mnu.Location.X + 454, mnu.Location.Y + 349, 218, 20), DrawTextFormat.Left | DrawTextFormat.VerticalCenter, Color.White);
                    GameEngine.Instance.GuiFonts["fntGui"].DXFont.DrawText(Overlay, ProductionTeam.GetTeamRank(), new Rectangle(mnu.Location.X + 454, mnu.Location.Y + 369, 218, 20), DrawTextFormat.Left | DrawTextFormat.VerticalCenter, Color.White);
                    GameEngine.Instance.GuiFonts["fntGui"].DXFont.DrawText(Overlay, ProductionTeam.TeamSize.ToString(), new Rectangle(mnu.Location.X + 454, mnu.Location.Y + 389, 218, 20), DrawTextFormat.Left | DrawTextFormat.VerticalCenter, Color.White);
                }
            }
        }
        public override void OnInitMenus()
        {
            GuiMenu mnu = new GuiMenu("factoryMenu");

            mnu.Picture     = "gameScreen.Production";
            mnu.Location    = new Point(120, 40);
            mnu.TextureArea = new Rectangle(0, 0, 680, 420);
            GameEngine.Instance.GuiMenuModule.Add(mnu.Id, mnu);

            GuiButtonInfo btn = new GuiButtonInfo("factoryMenu", new Rectangle(298, 368, 60, 40), "Send Team To Bay", "", true);

            btn.Params.Add("EvictTeam", new GuiButtonParamExecuteModuleMethod("EvictTeam", GetType().ToString()));
            mnu.Buttons.Add(GetType().Name + ".EvictTeam", btn);

            mnu             = new GuiMenu("factoryMenuItems");
            mnu.Picture     = "";
            mnu.Location    = new Point(560 + 120, 0 + 40);
            mnu.TextureArea = new Rectangle(0, 0, 101, 334);
            GameEngine.Instance.GuiMenuModule.Add(mnu.Id, mnu);

            Dictionary <string, bool> pomQueue = new Dictionary <string, bool>(BuildQueue.Count);
            int i;

            for (i = 0; i < BuildQueue.Count; i++)
            {
                pomQueue.Add(BuildQueue[i].ItemId, BuildQueue[i].Repeat);
            }

            i = -1;

            foreach (KeyValuePair <string, StoreItem> sit in GameEngine.Instance.ItemTemplates)
            {
                if (sit.Value.Type != ItemType.Mineral)
                {
                    i++;

                    if (sit.Value.Researched)
                    {
                        btn = new GuiButtonInfo("miningStoreItemMenu", new Rectangle((i / 16) * 42 + 7, (i % 16 * 20) + 7, 42, 20), sit.Value.Title, "gameScreen.Storage.ItemBlink", true, 1, 100);
                        if (!pomQueue.ContainsKey(sit.Key))
                        {
                            btn.PictureColor = Color.Red;
                        }
                        else
                        {
                            if (pomQueue[sit.Key])
                            {
                                btn.PictureColor = Color.Green;
                            }
                            else
                            {
                                btn.PictureColor = Color.Yellow;
                            }
                        }

                        GuiButtonParamExecuteModuleMethod par = new GuiButtonParamExecuteModuleMethod("CycleQueueItem", GetType().ToString());
                        par.methodParams.Add(new MethodParamInfo(typeof(string).ToString(), sit.Key));
                        btn.Params.Add("CycleQueueItem", par);

                        mnu.Buttons.Add(GetType().Name + ".CycleQueueItem." + sit.Key, btn);
                    }
                }
            }

            //366,350
//			btn = new GuiButtonInfo("factoryMenu", new Rectangle(366+58-8, 350+31-8, 15, 12), "AOC status", "gameScreen.Storage.ItemBlink", true, 10, 100);
//			mnu.Buttons.Add(btn);
        }
        /// <summary>
        /// Cycles item in the build queue - not building -> building 1 -> building inf.
        /// </summary>
        /// <param name="itemId">Item ID</param>
        public void CycleQueueItem(string itemId)
        {
            int idx = -1;

            for (int i = 0; i < BuildQueue.Count; i++)
            {
                if (BuildQueue[i].ItemId == itemId)
                {
                    idx = i;

                    break;
                }
            }

            GuiMenu       mnu = null;
            GuiButtonInfo btn = null;

            if (GameEngine.Instance.GuiMenuModule.ContainsKey("factoryMenuItems"))
            {
                mnu = GameEngine.Instance.GuiMenuModule["factoryMenuItems"];

                foreach (KeyValuePair <string, GuiButtonInfo> cur in mnu.Buttons)
                {
                    if (((GuiButtonParamExecuteModuleMethod)cur.Value.Params["CycleQueueItem"]).methodParams[0].Value == itemId)
                    {
                        btn = cur.Value;

                        break;
                    }
                }
            }

            if (idx == -1)               // not building -> build 1
            {
                AddQueueItem(itemId, false);

                if (btn != null)
                {
                    btn.PictureColor = Color.Yellow;
                }
            }
            else
            {
                if (BuildQueue[idx].Repeat)
                {
                    if (BuildQueueIndex == idx)
                    {
                        BuildProgress = 0;
                    }
                    if (BuildQueueIndex >= idx)
                    {
                        BuildQueueIndex--;
                    }

                    BuildQueue.RemoveAt(idx);

                    if (btn != null)
                    {
                        btn.PictureColor = Color.Red;
                    }
                }
                else
                {
                    BuildQueue[idx].Repeat = true;

                    if (btn != null)
                    {
                        btn.PictureColor = Color.Green;
                    }
                }
            }
        }
        /// <summary>
        /// Handles factorys work cycle
        /// </summary>
        public override void OnNextTurn()
        {
            if (BuildQueueIndex == -1 && BuildQueue.Count > 0)
            {
                BuildQueueIndex = 0;
                BuildProgress   = 0;
                if (HasAOC)
                {
                    lastProductionMark = GameEngine.Instance.CurrentCycle + GameEngine.Instance.CurrentYear * 1000;

                    BuildProgress = -1;
                }
            }

                        #if DebugStations
            if (BuildQueueIndex != -1)
            {
                Console.WriteLine("Factory module on station '" + parent.Title + "' \r\n\thas a work cycle (Build progress " + BuildProgress.ToString() + " of " + GameEngine.Instance.ItemTemplates[BuildQueue[BuildQueueIndex].ItemId].BuildTime.ToString() + ").");
            }
                        #endif

            if (BuildQueueIndex != -1 && (GameEngine.Instance.CurrentCycle + GameEngine.Instance.CurrentYear * 1000 - lastProductionMark) >= productionPrepareTime)
            {
                if (!resourcesReady && Store != null)
                {
                    StoreItem it = GameEngine.Instance.ItemTemplates[BuildQueue[BuildQueueIndex].ItemId];

                    bool isOk = true;
                    foreach (FactoryResource res in it.Resources)
                    {
                        isOk &= Store.CheckStorage(
                            GameEngine.Instance.ItemTemplates[res.itemId].Type != ItemType.Mineral,
                            res.itemId, res.amount);
                    }

                    if (isOk)
                    {
                        foreach (FactoryResource res in it.Resources)
                        {
                            isOk &= Store.RemoveFromStorage(
                                GameEngine.Instance.ItemTemplates[res.itemId].Type != ItemType.Mineral,
                                res.itemId, res.amount);
                        }

                        resourcesReady = true;
                    }
                }

                if (resourcesReady)
                {
                    if (ProductionTeam != null)
                    {
                        BuildProgress += ProductionTeam.GetProductionValue();
                    }
                    else
                    {
                        if (HasAOC)
                        {
                            BuildProgress += 200;
                        }
                    }

                    if (BuildProgress >= GameEngine.Instance.ItemTemplates[BuildQueue[BuildQueueIndex].ItemId].BuildTime)
                    {
                        Store.AddToStorage(true, BuildQueue[BuildQueueIndex].ItemId, 1);

                                                #if DebugStations
                        if (BuildQueueIndex != -1)
                        {
                            Console.WriteLine("Item " + GameEngine.Instance.ItemTemplates[BuildQueue[BuildQueueIndex].ItemId].Title + " built.");
                        }
                                                #endif


                        if (!BuildQueue[BuildQueueIndex].Repeat)
                        {
                            GuiMenu       mnu = null;
                            GuiButtonInfo btn = null;

                            if (GameEngine.Instance.GuiMenuModule.ContainsKey("factoryMenuItems"))
                            {
                                mnu = GameEngine.Instance.GuiMenuModule["factoryMenuItems"];

                                foreach (KeyValuePair <string, GuiButtonInfo> cur in mnu.Buttons)
                                {
                                    if (((GuiButtonParamExecuteModuleMethod)cur.Value.Params["CycleQueueItem"]).methodParams[0].Value == BuildQueue[BuildQueueIndex].ItemId)
                                    {
                                        btn = cur.Value;

                                        break;
                                    }
                                }

                                btn.PictureColor = Color.Red;
                            }

                            BuildQueue.RemoveAt(BuildQueueIndex);
                        }
                        else
                        {
                            BuildQueueIndex++;
                        }

                        resourcesReady = false;

                        BuildProgress = 0;
                        if (HasAOC)
                        {
                            lastProductionMark = GameEngine.Instance.CurrentCycle + GameEngine.Instance.CurrentYear * 1000;

                            BuildProgress = -1;
                        }
                    }
                }
            }

            if (BuildQueueIndex >= BuildQueue.Count)
            {
                if (BuildQueue.Count > 0)
                {
                    BuildQueueIndex = 0;
                }
                else
                {
                    BuildQueueIndex = -1;
                }
            }
        }
Beispiel #30
0
 public EventGui(GuiMenu guiMenu, GuiType guiType)
 {
     this.GuiMenu = guiMenu;
     this.Type = guiType;
 }
Beispiel #31
0
 public static void OnGuiCreation(GuiMenu guiMenu, int guiTypeCode)
 {
     if (Phi.Instance.GuiManager.GuiCreationEvent != null)
         Phi.Instance.GuiManager.GuiCreationEvent(Phi.Instance, new EventGui(guiMenu, (EventGui.GuiType)guiTypeCode));
 }
Beispiel #32
0
 public EventGui(GuiMenu guiMenu, GuiType guiType)
 {
     this.GuiMenu = guiMenu;
     this.Type    = guiType;
 }
Beispiel #33
0
 public static T FindById <T>(this GuiMenu Menu, string Id)
     where T : class
 {
     return(findByIdTemplate <T>(Id, Menu.FindById));
 }