Esempio n. 1
0
        private void BuildFactionDetails(ModSideDfnXML sideInfo)
        {
            ClearSubWidgets();

            PanelScrollableWidget panelFactionDetails = UIManager.Instance.CreateScrollablePanel("panelFactionDetails", 0.7f, 0.92f);

            panelFactionDetails.ChangeRow(UI.ValueType.Abosulte, 0.03f); //next/prev
            panelFactionDetails.AddRow(UI.ValueType.Abosulte, 0.05f);    //faction name
            panelFactionDetails.AddRow(UI.ValueType.Auto);               //faction mesh
            panelFactionDetails.AddRow(UI.ValueType.Abosulte, 0.03f);    //ruler
            panelFactionDetails.AddRow(UI.ValueType.Auto);               //faction occupy lands
            panelFactionDetails.AddRow(UI.ValueType.Auto);               //faction vassals
            panelFactionDetails.AddRow(UI.ValueType.Abosulte, 0.03f);    //empty row
            panelFactionDetails.AddRow(UI.ValueType.Abosulte, 0.03f);    //foreign relations
            panelFactionDetails.Padding.PaddingLeft = 0.01f;

            SimpleStaticTextWidget txtFactionName = new SimpleStaticTextWidget("txtFactionName", GameString.FromString(sideInfo.ID, sideInfo.Name).ToString(), 0, false, ColourValue.Black, 150);

            panelFactionDetails.AddWidget(2, 1, txtFactionName, AlignMode.Center);

            PanelMaterialWidget coatOfArmsPanel = new PanelMaterialWidget("coatOfArmsPanel", sideInfo.COA);

            coatOfArmsPanel.Width  = 0.3f;
            coatOfArmsPanel.Height = 0.3f;
            panelFactionDetails.AddWidget(3, 1, coatOfArmsPanel, AlignMode.Center, AlignMode.Center, DockMode.Center);

            string chaID   = GameSlotManager.Instance.GetSlot(sideInfo.ID, "slot_faction_leader");
            var    chaData = world.ModData.CharacterInfos.Where(o => o.ID == chaID).FirstOrDefault();

            GameRegisterManager.Instance.SetRegisterValue("reg0", GameString.FromString(sideInfo.ID, sideInfo.Name).ToString());
            GameRegisterManager.Instance.SetRegisterValue("reg1", GameString.FromString(chaData.ID, chaData.Name).ToString());
            SimpleStaticTextWidget txtFactionRulerInfo = new SimpleStaticTextWidget("txtFactionRulerInfo", GameString.FromString("@{reg0} is ruled by {reg1}").ToString(), 0, false, ColourValue.Black);

            txtFactionRulerInfo.Width  = txtFactionName.TextWidth;
            txtFactionRulerInfo.Height = txtFactionName.TextHeight;
            panelFactionDetails.AddWidget(4, 1, txtFactionRulerInfo);

            SimpleStaticTextWidget txtOccupiedLands = new SimpleStaticTextWidget("txtOccupiedLands", GameString.FromString("@It occupies none").ToString(), 0, false, ColourValue.Black);

            panelFactionDetails.AddWidget(5, 1, txtOccupiedLands);

            SimpleStaticTextWidget txtVassalInfos = new SimpleStaticTextWidget("txtVassalInfos", GameString.FromString("@Its vassals are none").ToString(), 0, false, ColourValue.Black);

            panelFactionDetails.AddWidget(6, 1, txtVassalInfos);

            SimpleStaticTextWidget txtForeignRelationship = new SimpleStaticTextWidget("txtForeignRelationship", GameString.FromString("@Foreign relations:").ToString(), 0, false, ColourValue.Black);

            panelFactionDetails.AddWidget(8, 1, txtForeignRelationship);

            subWidgets.Add(panelFactionDetails);
        }
Esempio n. 2
0
        private void BtnFactions_OnClick(object sender)
        {
            ClearAllWidgets();

            PanelWidget panelFactionList = UIManager.Instance.CreatePanel("panelFactionList", 0.3f, 0.92f, 0.7f, 0);

            panelFactionList.ChangeRow(UI.ValueType.Abosulte, 0.05f);
            panelFactionList.AddRow(UI.ValueType.Percent);
            panelFactionList.Padding.PaddingLeft  = 0.01f;
            panelFactionList.Padding.PaddingRight = 0.01f;

            StaticText txtFactionsTitle = UIManager.Instance.CreateStaticText("txtFactionsTitle", GameString.FromString("ui_game_notes_factions_title", "Factions").ToString());

            txtFactionsTitle.MetricMode = GuiMetricsMode.GMM_RELATIVE;
            panelFactionList.AddWidget(1, 1, txtFactionsTitle, AlignMode.Center);
            PanelScrollableWidget panelFactions = UIManager.Instance.CreateScrollablePanel("panelFactions", 1, 1, 0, 0, 1, 1, false);

            panelFactionList.AddWidget(2, 1, panelFactions, AlignMode.Center, AlignMode.Center, DockMode.Fill);

            panelFactions.ChangeRow(UI.ValueType.Abosulte, 0.03f);
            panelFactions.AddRows(world.ModData.SideInfos.Count - 1, UI.ValueType.Abosulte, 0.03f);
            int curRow = 1;

            widgets.Add(txtFactionsTitle);
            widgets.Add(panelFactionList);
            widgets.Add(panelFactions);

            foreach (var sideInfo in world.ModData.SideInfos)
            {
                if (!GameSlotManager.Instance.SlotEqual(sideInfo.ID, "slot_faction_state", "inactive") &&
                    !GameSlotManager.Instance.SlotEqual(sideInfo.ID, "slot_faction_visibility", "hidden"))
                {
                    if (curRow == 1)
                    {
                        BuildFactionDetails(sideInfo);
                    }
                    var btnFaction = new SimpleStaticTextButton("txtFaction_" + sideInfo.Name, GameString.FromString(sideInfo.ID, sideInfo.Name).ToString(),
                                                                (Color.FromArgb(36, 35, 191).ToColourValue()),
                                                                ColourValue.Black, true);
                    panelFactions.AddWidget(curRow, 1, btnFaction);
                    btnFaction.UserData = sideInfo;
                    btnFaction.OnClick += (evtObj) =>
                    {
                        BuildFactionDetails((evtObj as Widget).UserData as ModSideDfnXML);
                    };
                    curRow++;
                }
            }
        }
Esempio n. 3
0
        public override void Run()
        {
            var startupBkType = modData.StartupBackgroundTypes.Where(o => o.Name == modData.BasicInfo.StartupBackground.Type).FirstOrDefault();

            if (startupBkType != null)
            {
                startupBkType.StartBackground(modData.BasicInfo.StartupBackground.Value, sceneManager);
            }

            UIManager.Instance.ShowCursor();

            if (modData.HasSinglePlayer)
            {
                var btnSingleplayer = UIManager.Instance.CreateButton(UIWidgetLocation.TL_CENTER, "btnSingleplayer", GameString.FromString("str_single_player").ToString(), 200);
                btnSingleplayer.OnClick += (sender) =>
                {
                    OnScreenEventChanged?.Invoke("btnSingleplayer", null);
                };
                var btnLoadGame = UIManager.Instance.CreateButton(UIWidgetLocation.TL_CENTER, "btnLoadGame", GameString.FromString("str_load").ToString(), 200);
                btnLoadGame.OnClick += (sender) =>
                {
                    OnScreenEventChanged?.Invoke("btnLoadGame", null);
                };
            }
            var btnMultiplayer = UIManager.Instance.CreateButton(UIWidgetLocation.TL_CENTER, "btnMultiplayer", GameString.FromString("str_multiplayer").ToString(), 200);

            btnMultiplayer.OnClick += (sender) =>
            {
                OnScreenEventChanged?.Invoke("btnMultiplayer", null);
            };
            var btnConfigure = UIManager.Instance.CreateButton(UIWidgetLocation.TL_CENTER, "btnConfigure", GameString.FromString("str_config").ToString(), 200);

            btnConfigure.OnClick += (sender) =>
            {
                OnScreenEventChanged?.Invoke("btnConfigure", null);
            };
            if (modData.HasCredit)
            {
                var btnCredit = UIManager.Instance.CreateButton(UIWidgetLocation.TL_CENTER, "btnCredit", GameString.FromString("str_credit").ToString(), 200);
                btnCredit.OnClick += (sender) =>
                {
                    OnScreenEventChanged?.Invoke("btnCredit", null);
                };
            }
            var btnQuit = UIManager.Instance.CreateButton(UIWidgetLocation.TL_CENTER, "btnQuit", GameString.FromString("str_quit").ToString(), 200);

            btnQuit.OnClick += (sender) =>
            {
                OnScreenEventChanged?.Invoke("btnQuit", null);
            };
        }