Ejemplo n.º 1
0
    void addString(string str)
    {
        GameString gs = new GameString();

        gs.init(str);

        data.Add(gs);
    }
 /// <summary>
 /// Gets a string representation of the game string.
 /// </summary>
 /// <param name="gameString">The game string to convert to text</param>
 /// <returns>The textual representation of the string</returns>
 public static string GetString(GameString gameString)
 {
     if (Strings.ContainsKey(gameString))
     {
         return(Strings[gameString]);
     }
     throw new Exception("Value for the string '" + gameString.ToString() + "' does not exist. Ensure a default has been set.");
 }
Ejemplo n.º 3
0
        protected override void SetupType(Skriptum type)
        {
            base.SetupType(type);

            GameString gameString = (GameString)type;

            //Language_cbb_SelectedIndexChanged();
        }
Ejemplo n.º 4
0
    private void Start()
    {
        if (gameString == null)
        {
            gameString = this;
        }
        else if (gameString == this)
        {
            Destroy(gameObject);
        }

        stringPacks = JsonUtility.FromJson <StringPacks>(fileJson.text);
    }
Ejemplo n.º 5
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);
        }
Ejemplo n.º 6
0
        protected override void SaveTypeByIndex(List <string> values, int selectedIndex, Skriptum changed = null)
        {
            string tmp = values[0] + ';';

            tmp += values[1] + ';';

            values.Clear();
            values = new List <string>(tmp.Split(';'));

            string[]   valuesX = values.ToArray();
            GameString s       = new GameString(valuesX);

            CodeWriter.SavePseudoCodeByType(s, valuesX);

            base.SaveTypeByIndex(values, selectedIndex, changed);
        }
Ejemplo n.º 7
0
        protected override void OnStartup(StartupEventArgs e)
        {
            var r =
#if DEBUG
                "..\\"
#else
                string.Empty
#endif
            ;

            GameString.Load(r + "res", "zh", "en");
            UserData.Load(r + "MyPBO\\user.dat");
            Config.Load();
            UIDispatcher.Init(Current.Dispatcher);
            new MainWindow().Show();
            base.OnStartup(e);
        }
        /// <summary>
        /// Method used to change the language.
        /// Pass in the new language to use and the game strings will be updated.
        /// </summary>
        public static void SetLanguage(LanguageType language)
        {
            string       fileName = LanguageLookup.languageLookup[language] + "_strings.csv";
            StreamReader reader   = new StreamReader($"Assets/lang/{fileName}");

            while (!reader.EndOfStream)
            {
                var line = reader.ReadLine();
                if (!string.IsNullOrEmpty(line))
                {
                    var stringName  = line.Split(',')[0];
                    var stringValue = line.Split(',')[2];
                    GameString.TryParse <GameString>(stringName, false, out GameString gameString);
                    if (gameString != null)
                    {
                        Strings[gameString] = stringValue;
                    }
                }
            }
        }
Ejemplo n.º 9
0
        private void QuickText_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Key == Key.Enter)
            {
                var text = QuickText.Text.Trim();
                int end;
LOOP:
                var r = GameString.Find(text, out end);
                if (end == 0)
                {
                    QuickText.Text = text;
                    return;
                }
                var n = int.Parse(r.Substring(1));
                switch (r[0])
                {
                case 'p':
                    VM.PokemonForm = RomData.GetPokemon(n / 100, n % 100);
                    break;

                case 'm':
                    VM.AddMove(RomData.GetMove(n));
                    break;

                case 'a':
                    VM.Model.Ability = n;
                    break;

                case 'i':
                    VM.HeldItem = n;
                    break;

                case 'n':
                    VM.Model.Nature = (PokemonNature)n;
                    break;
                }
                text = text.Substring(end);
                goto LOOP;
            }
        }
Ejemplo n.º 10
0
        protected override void OnStartup(StartupEventArgs e)
        {
            var r =
#if DEBUG
                "..\\"
#else
                string.Empty
#endif
            ;

            ImageService.Load(r + "res\\image.zip");
            GameString.Load(r + "res", "zh", "en");
            UserData.Load(r + "MyPBO\\user.dat");
            Config.Load(r + "MyPBO\\config.xml");

            FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement), new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));
            var font = new FontFamily("Microsoft YaHei");

            TextBlock.FontFamilyProperty.OverrideMetadata(typeof(TextBlock), new FrameworkPropertyMetadata(font));
            TextElement.FontFamilyProperty.OverrideMetadata(typeof(TextElement), new FrameworkPropertyMetadata(font));
            UIDispatcher.Init(Application.Current.Dispatcher);
            new MainWindow().Show();
            base.OnStartup(e);
        }
Ejemplo n.º 11
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++;
                }
            }
        }
Ejemplo n.º 12
0
        static void Main(string[] args)
        {
            AppDomain.CurrentDomain.ProcessExit += (sender, e) => EndLog();
            GameString.Load("..\\..\\res", "zh", "en");
            PBOServer.NewServer(9999);
            Thread.Sleep(1000);
            RoomController.GameStop  += (r, u) => LogLine(r.ToString() + (u == null ? " " : " " + u.Name));
            LoginClient.LoginSucceed += (c) =>
            {
                switch (c.Controller.User.Name)
                {
                case "P00":
                    C00 = new TestClient(c.Controller, Seat.Player00);
                    C00.C.NewRoom(new GameSettings(GameMode.Multi));
                    break;

                case "P01":
                    C01 = new TestClient(c.Controller, Seat.Player01);
                    break;

                case "P10":
                    C10 = new TestClient(c.Controller, Seat.Player10);
                    break;

                case "P11":
                    C11 = new TestClient(c.Controller, Seat.Player11);
                    break;
                }
                Console.WriteLine(c.Controller.User.Name + "logined.");
            };

            var l00 = new LoginClient("127.0.0.1", 9999, "P00", 1);
            var l01 = new LoginClient("127.0.0.1", 9999, "P01", 1);
            var l10 = new LoginClient("127.0.0.1", 9999, "P10", 1);
            var l11 = new LoginClient("127.0.0.1", 9999, "P11", 1);

            l00.BeginLogin();
            l01.BeginLogin();
            l10.BeginLogin();
            l11.BeginLogin();
            Console.ReadKey();

TEAM:
            C00.EditTeam(null);
            C01.EditTeam(C00.Team);
            C10.EditTeam(C01.Team);
            C11.EditTeam(C10.Team);

            LogLine("============BATTLE============");
BATTLE:
            Thread.Sleep(500);
            if (C00.Battle() && C01.Battle() && C10.Battle() && C11.Battle())
            {
                goto BATTLE;
            }
            else
            {
                Console.WriteLine("------------------------------");
                EndLog();
                goto TEAM;
            }
        }
Ejemplo n.º 13
0
        void AutoTeam(string text)
        {
            int end;

LOOP:
            var r = GameString.Find(text, out end);

            if (end == 0)
            {
                if (!string.IsNullOrWhiteSpace(text))
                {
                    Console.WriteLine(@"<ERROR> """ + text + @"""");
                }
                return;
            }
            var n = int.Parse(r.Substring(1));

            switch (r[0])
            {
            case 'p':
                Team.Add(new PokemonData(n / 100, n % 100));
                break;

            case 'm':
            {
                var pm = Team.LastOrDefault();
                if (pm == null)
                {
                    pm = new PokemonData(235, 0);
                    Team.Add(pm);
                }
                pm.AddMove(RomData.GetMove(n));
            }
            break;

            case 'a':
            {
                var pm = Team.LastOrDefault();
                if (pm == null || !pm.Form.Data.Abilities.Contains(n))
                {
                    foreach (var p in RomData.Pokemons)
                    {
                        if (p.Forms.First().Data.Abilities.Contains(n))
                        {
                            pm = new PokemonData(p.Number, 0);
                            Team.Add(pm);
                            break;
                        }
                    }
                }
                pm.Ability = n;
            }
            break;

            case 'i':
            {
                var pm = Team.LastOrDefault();
                if (pm == null || pm.Item != 0)
                {
                    pm = new PokemonData(235, 0);
                    Team.Add(pm);
                }
                pm.Item = n;
            }
            break;
            }
            text = text.Substring(end);
            goto LOOP;
        }
Ejemplo n.º 14
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);
            };
        }