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."); }
protected override void SetupType(Skriptum type) { base.SetupType(type); GameString gameString = (GameString)type; //Language_cbb_SelectedIndexChanged(); }
private void Start() { if (gameString == null) { gameString = this; } else if (gameString == this) { Destroy(gameObject); } stringPacks = JsonUtility.FromJson <StringPacks>(fileJson.text); }
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); }
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); }
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; } } } }
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; } }
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); }
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++; } } }
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; } }
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; }
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); }; }