/// <summary> /// Init dice stack panel /// </summary> private void InitSqlDices() { SqlDices.Children.Clear(); innerCardNode.GetXmlDataNodesByPath("BehaviourList/Behaviour").ForEachSafe((DM.XmlDataNode behaviourNode) => { SqlDices.Children.Add(new EditDice(innerCardNode, behaviourNode, InitSqlDices)); }); }
/// <summary> /// Init eave stack panel /// </summary> private void InitSqlWaves() { SqlWaves.Children.Clear(); innerStageNode.GetXmlDataNodesByPath("Wave").ForEachSafe((DM.XmlDataNode waveNode) => { SqlWaves.Children.Add(new EditWave(waveNode, innerStageNode, InitSqlWaves)); }); }
public EditCard(DM.XmlDataNode innerCardNode, Action initStack) { InitializeComponent(); Tools.WindowControls.LocalizeWindowControls(this, DM.LANGUAGE_FILE_NAME.CARD_INFO); this.innerCardNode = innerCardNode; this.initStack = initStack; innerCardNode.ActionXmlDataNodesByPath("Spec", (DM.XmlDataNode specNode) => { TbxCost.Text = specNode.GetAttributesSafe("Cost"); }); switch (innerCardNode.GetInnerTextByPath("Rarity")) { case "Common": ChangeRarityButtonEvents(BtnRarity_Common, null); break; case "Uncommon": ChangeRarityButtonEvents(BtnRarity_Uncommon, null); break; case "Rare": ChangeRarityButtonEvents(BtnRarity_Rare, null); break; case "Unique": ChangeRarityButtonEvents(BtnRarity_Unique, null); break; } TbxCardName.Text = innerCardNode.GetInnerTextByPath("Name"); TbxCardUniqueID.Text = innerCardNode.GetAttributesSafe("ID"); innerCardNode.ActionIfInnertTextIsNotNullOrEmpty("Artwork", (string innerText) => { string IMAGE_WORD = DM.LocalizeCore.GetLanguageData(DM.LANGUAGE_FILE_NAME.CARD_INFO, $"IMAGE"); BtnCardImage.ToolTip = $"{IMAGE_WORD} : {innerText}"; BtnCardImage.Content = " "; LblCardImage.Content = $"{IMAGE_WORD} : {innerText}"; }); innerCardNode.ActionIfInnertTextIsNotNullOrEmpty("Script", (string innerText) => { string ABILITY_WORD = DM.LocalizeCore.GetLanguageData(DM.LANGUAGE_FILE_NAME.CARD_INFO, $"ABILITY"); BtnCardEffect.ToolTip = $"{ABILITY_WORD} : {DM.LocalizedGameDescriptions.GetDescriptionForCardPassive(innerText)}:{innerText}"; BtnCardEffect.Content = " "; LblCardEffect.Content = $"{ABILITY_WORD} : {innerText}"; }); InitSqlDices(); UpdateExtrainfoIcon(); innerCardNode.ActionXmlDataNodesByPath("Spec", (DM.XmlDataNode specNode) => { BtnRangeType.Background = Tools.ColorTools.GetImageBrushFromPath(this, $"../Resources/Type{specNode.GetAttributesSafe("Range")}.png"); BtnRangeType.Tag = specNode.GetAttributesSafe("Range"); if (BtnRangeType.Tag != null && !string.IsNullOrEmpty(BtnRangeType.Tag.ToString())) { BtnRangeType.ToolTip = $"{DM.LocalizeCore.GetLanguageData(DM.LANGUAGE_FILE_NAME.CARD_INFO, $"%BtnRangeType_ToolTip%")} ({DM.LocalizeCore.GetLanguageData(DM.LANGUAGE_FILE_NAME.CARD_INFO, $"Current")} : {DM.LocalizeCore.GetLanguageData(DM.LANGUAGE_FILE_NAME.CARD_INFO, $"Type_{BtnRangeType.Tag}")})"; } }); List <DM.XmlDataNode> optionNodes = innerCardNode.GetXmlDataNodesByPath("Option"); if (optionNodes.Count > 0) { DM.XmlDataNode OPTION_NODE = optionNodes[0]; BtnUnqueType.Tag = OPTION_NODE.innerText; if (OPTION_LOOP_LIST.Contains(OPTION_NODE.innerText)) { BtnUnqueType.Background = Tools.ColorTools.GetImageBrushFromPath(this, $"../Resources/Type{OPTION_NODE.innerText}.png"); BtnUnqueType.ToolTip = $"{DM.LocalizeCore.GetLanguageData(DM.LANGUAGE_FILE_NAME.CARD_INFO, $"%BtnUnqueType_ToolTip%")} ({DM.LocalizeCore.GetLanguageData(DM.LANGUAGE_FILE_NAME.CARD_INFO, $"Current")} : {DM.LocalizeCore.GetLanguageData(DM.LANGUAGE_FILE_NAME.CARD_INFO, $"Type_{BtnUnqueType.Tag}")})"; } else { BtnUnqueType.Background = Tools.ColorTools.GetImageBrushFromPath(this, $"../Resources/TypeETC.png"); BtnUnqueType.ToolTip = $"{DM.LocalizeCore.GetLanguageData(DM.LANGUAGE_FILE_NAME.CARD_INFO, $"%BtnUnqueType_ToolTip%")} ({DM.LocalizeCore.GetLanguageData(DM.LANGUAGE_FILE_NAME.CARD_INFO, $"Current")} : {OPTION_NODE.innerText})"; } } else { BtnUnqueType.Background = Tools.ColorTools.GetImageBrushFromPath(this, $"../Resources/TypeNoOption.png"); BtnUnqueType.Tag = ""; BtnUnqueType.ToolTip = $"{DM.LocalizeCore.GetLanguageData(DM.LANGUAGE_FILE_NAME.CARD_INFO, $"%BtnUnqueType_ToolTip%")} ({DM.LocalizeCore.GetLanguageData(DM.LANGUAGE_FILE_NAME.CARD_INFO, $"Current")} : {DM.LocalizeCore.GetLanguageData(DM.LANGUAGE_FILE_NAME.CARD_INFO, $"Type_NoOption")})"; } #region 드랍되는 곳 체크 List <string> selectedCardDropTables = new List <string>(); DM.EditGameData_CardInfos.StaticCardDropTable.rootDataNode.GetXmlDataNodesByPath("DropTable").ForEachSafe((DM.XmlDataNode cardDropTableID) => { if (cardDropTableID.CheckIfGivenPathWithXmlInfoExists("Card", innerCardNode.attribute["ID"])) { selectedCardDropTables.Add(cardDropTableID.attribute["ID"]); } }); if (selectedCardDropTables.Count > 0) { string extraInfo = ""; selectedCardDropTables.ForEach((string dropBookInfo) => { extraInfo += $"{DM.FullyLoclalizedGameDescriptions.GetFullDescriptionForDropBook(dropBookInfo)}\n"; }); extraInfo = extraInfo.TrimEnd('\n'); BtnDropCards.Background = Tools.ColorTools.GetImageBrushFromPath(this, "../Resources/iconYesDropBook.png"); BtnDropCards.ToolTip = $"{DM.LocalizeCore.GetLanguageData(DM.LANGUAGE_FILE_NAME.CARD_INFO, $"%BtnDropCards_ToolTip%")} ({DM.LocalizeCore.GetLanguageData(DM.LANGUAGE_FILE_NAME.BOOK_INFO, $"Inputted")})\n{extraInfo}"; } #endregion MainWindow.mainWindow.ChangeDebugLocation(MainWindow.DEBUG_LOCATION.STATIC_CARD); }
/// <summary> /// Right menu button events /// </summary> private void RightMenuButtonEvents(object sender, RoutedEventArgs e) { Button btn = sender as Button; switch (btn.Name) { case "BtnCondition": List <string> selectedConditions = new List <string>(); innerStageNode.ActionXmlDataNodesByPath("Condition/Stage", (DM.XmlDataNode xmlDataNode) => { selectedConditions.Add(DM.FullyLoclalizedGameDescriptions.GetFullDescriptionForStage(xmlDataNode.innerText)); }); new SubWindows.Global_AddItemToListWindow((string addedStageID) => { innerStageNode.AddXmlInfoByPath("Condition/Stage", addedStageID); }, (string deletedStageID) => { innerStageNode.RemoveXmlInfosByPath("Condition/Stage", deletedStageID); List <DM.XmlDataNode> conditonNode = innerStageNode.GetXmlDataNodesByPath("Condition"); if (conditonNode.Count > 0) { DM.XmlDataNode CONDITION_NODE = conditonNode[0]; if (CONDITION_NODE.GetXmlDataNodesByPath("Stage").Count <= 0) { innerStageNode.RemoveXmlInfosByPath("Condition"); } } }, selectedConditions, SubWindows.AddItemToListWindow_PRESET.STAGES).ShowDialog(); if (innerStageNode.GetXmlDataNodesByPath("Condition/Stage").Count > 0) { string extraInfo = ""; innerStageNode.ActionXmlDataNodesByPath("Condition/Stage", (DM.XmlDataNode xmlDataNode) => { extraInfo += $"{DM.FullyLoclalizedGameDescriptions.GetFullDescriptionForStage(xmlDataNode.GetInnerTextSafe())}\n"; }); extraInfo = extraInfo.TrimEnd('\n'); BtnCondition.Background = Tools.ColorTools.GetImageBrushFromPath(this, "../Resources/IconYesCondition.png"); BtnCondition.ToolTip = $"{DM.LocalizeCore.GetLanguageData(DM.LANGUAGE_FILE_NAME.STAGE_INFO, $"STAGE_CONDITION")} ({DM.LocalizeCore.GetLanguageData(DM.LANGUAGE_FILE_NAME.BOOK_INFO, $"Inputted")})\n{extraInfo}"; } else { BtnCondition.Background = Tools.ColorTools.GetImageBrushFromPath(this, "../Resources/IconNoCondition.png"); BtnCondition.ToolTip = $"{DM.LocalizeCore.GetLanguageData(DM.LANGUAGE_FILE_NAME.STAGE_INFO, $"%BtnCondition_ToolTip%")} ({DM.LocalizeCore.GetLanguageData(DM.LANGUAGE_FILE_NAME.BOOK_INFO, $"NotInputted")})"; } MainWindow.mainWindow.ChangeDebugLocation(MainWindow.DEBUG_LOCATION.STATIC_STAGE_INFO); break; case "BtnMapInfo": new SubWindows.Global_InputInfoWithSearchWindow((string selectedItem) => { innerStageNode.SetXmlInfoByPathAndEmptyWillRemove("MapInfo", selectedItem); }, SubWindows.InputInfoWithSearchWindow_PRESET.MAP_INFO).ShowDialog(); string MAP_INFO = innerStageNode.GetInnerTextByPath("MapInfo"); if (!string.IsNullOrEmpty(MAP_INFO)) { BtnMapInfo.Background = Tools.ColorTools.GetImageBrushFromPath(this, "../Resources/IconYesMapInfo.png"); BtnMapInfo.ToolTip = $"{DM.LocalizeCore.GetLanguageData(DM.LANGUAGE_FILE_NAME.STAGE_INFO, $"%BtnMapInfo_ToolTip%")} ({DM.LocalizeCore.GetLanguageData(DM.LANGUAGE_FILE_NAME.BOOK_INFO, $"Inputted")})\n{DM.LocalizedGameDescriptions.GetDescriptionForMapInfo(innerStageNode.GetInnerTextByPath("MapInfo"))}"; } else { BtnMapInfo.Background = Tools.ColorTools.GetImageBrushFromPath(this, "../Resources/IconNoMapInfo.png"); BtnMapInfo.ToolTip = $"{DM.LocalizeCore.GetLanguageData(DM.LANGUAGE_FILE_NAME.STAGE_INFO, $"%BtnMapInfo_ToolTip%")} ({DM.LocalizeCore.GetLanguageData(DM.LANGUAGE_FILE_NAME.BOOK_INFO, $"NotInputted")})"; } MainWindow.mainWindow.ChangeDebugLocation(MainWindow.DEBUG_LOCATION.STATIC_STAGE_INFO); break; case "BtnCopyStage": DM.EditGameData_StageInfo.StaticStageInfo.rootDataNode.subNodes.Add(innerStageNode.Copy()); initStack(); MainWindow.mainWindow.UpdateDebugInfo(); MainWindow.mainWindow.ChangeDebugLocation(MainWindow.DEBUG_LOCATION.STATIC_STAGE_INFO); break; case "BtnDelete": if (DM.EditGameData_StageInfo.LocalizedStageName.rootDataNode.CheckIfGivenPathWithXmlInfoExists("Name", attributeToCheck: new Dictionary <string, string>() { { "ID", innerStageNode.GetAttributesSafe("id") } })) { DM.EditGameData_StageInfo.LocalizedStageName.rootDataNode.RemoveXmlInfosByPath("Name", attributeToCheck: new Dictionary <string, string>() { { "ID", innerStageNode.GetAttributesSafe("id") } }); } DM.EditGameData_StageInfo.StaticStageInfo.rootDataNode.subNodes.Remove(innerStageNode); initStack(); MainWindow.mainWindow.UpdateDebugInfo(); MainWindow.mainWindow.ChangeDebugLocation(MainWindow.DEBUG_LOCATION.STATIC_STAGE_INFO); break; } }
public EditStage(DM.XmlDataNode stageNode, Action initStack) { InitializeComponent(); Tools.WindowControls.LocalizeWindowControls(this, DM.LANGUAGE_FILE_NAME.STAGE_INFO); this.innerStageNode = stageNode; this.initStack = initStack; TbxStageName.Text = innerStageNode.GetInnerTextByPath("Name"); TbxStageUniqueID.Text = innerStageNode.GetAttributesSafe("id"); innerStageNode.ActionIfInnertTextIsNotNullOrEmpty("StoryType", (string innerText) => { string EPISODE_WORD = DM.LocalizeCore.GetLanguageData(DM.LANGUAGE_FILE_NAME.STAGE_INFO, $"EPISODE"); BtnStage.ToolTip = $"{EPISODE_WORD} : {DM.FullyLoclalizedGameDescriptions.GetFullDescriptionForStoryType(innerText)}"; LblStage.Content = $"{EPISODE_WORD} : {DM.FullyLoclalizedGameDescriptions.GetFullDescriptionForStoryType(innerText)}";; BtnStage.Content = " "; }); innerStageNode.ActionIfInnertTextIsNotNullOrEmpty("FloorNum", (string innerText) => { string FLOOR_WORD = DM.LocalizeCore.GetLanguageData(DM.LANGUAGE_FILE_NAME.STAGE_INFO, $"AVALIABLE_FLOOR"); BtnFloor.ToolTip = $"{FLOOR_WORD} : {innerText}"; LblFloor.Content = $"{FLOOR_WORD} : {innerText}"; BtnFloor.Content = " "; }); if (innerStageNode.GetXmlDataNodesByPath("Invitation/Book").Count > 0) { string extraInfo = ""; innerStageNode.ActionXmlDataNodesByPath("Invitation/Book", (DM.XmlDataNode xmlDataNode) => { extraInfo += $"{DM.FullyLoclalizedGameDescriptions.GetFullDescriptionForDropBook(xmlDataNode.GetInnerTextSafe())}/"; }); extraInfo = extraInfo.TrimEnd('/'); string INVITATION_WORD = DM.LocalizeCore.GetLanguageData(DM.LANGUAGE_FILE_NAME.STAGE_INFO, $"INVITATION_BOOK"); LblInvitation.Content = $"{INVITATION_WORD} : {extraInfo}"; BtnInvitation.ToolTip = $"{INVITATION_WORD} : {extraInfo}"; BtnInvitation.Content = " "; } if (innerStageNode.GetXmlDataNodesByPath("Condition/Stage").Count > 0) { string extraInfo = ""; innerStageNode.ActionXmlDataNodesByPath("Condition/Stage", (DM.XmlDataNode xmlDataNode) => { extraInfo += $"{DM.FullyLoclalizedGameDescriptions.GetFullDescriptionForStage(xmlDataNode.GetInnerTextSafe())}\n"; }); extraInfo = extraInfo.TrimEnd('\n'); BtnCondition.Background = Tools.ColorTools.GetImageBrushFromPath(this, "../Resources/IconYesCondition.png"); BtnCondition.ToolTip = $"{DM.LocalizeCore.GetLanguageData(DM.LANGUAGE_FILE_NAME.STAGE_INFO, $"STAGE_CONDITION")}\n{extraInfo}"; } string MAP_INFO = innerStageNode.GetInnerTextByPath("MapInfo"); if (!string.IsNullOrEmpty(MAP_INFO)) { BtnMapInfo.Background = Tools.ColorTools.GetImageBrushFromPath(this, "../Resources/IconYesMapInfo.png"); BtnMapInfo.ToolTip = $"{DM.LocalizeCore.GetLanguageData(DM.LANGUAGE_FILE_NAME.STAGE_INFO, $"%BtnMapInfo_ToolTip%")} ({DM.LocalizeCore.GetLanguageData(DM.LANGUAGE_FILE_NAME.BOOK_INFO, $"Inputted")})\n{DM.LocalizedGameDescriptions.GetDescriptionForMapInfo(innerStageNode.GetInnerTextByPath("MapInfo"))}"; } InitSqlWaves(); MainWindow.mainWindow.ChangeDebugLocation(MainWindow.DEBUG_LOCATION.STATIC_STAGE_INFO); }
/// <summary> /// Button events that need search window /// </summary> private void SelectItemButtonEvents(object sender, RoutedEventArgs e) { Button btn = sender as Button; switch (btn.Name) { case "BtnStage": new SubWindows.Global_InputInfoWithSearchWindow((string selectedItem) => { DM.GameInfos.staticInfos["StageInfo"].rootDataNode.GetXmlDataNodesByPathWithXmlInfo("Stage", attributeToCheck: new Dictionary <string, string>() { { "id", selectedItem } }).ActionOneItemSafe((DM.XmlDataNode stageNode) => { innerStageNode.SetXmlInfoByPath("Chapter", stageNode.GetInnerTextByPath("Chapter")); innerStageNode.SetXmlInfoByPath("StoryType", stageNode.GetInnerTextByPath("StoryType")); innerStageNode.RemoveXmlInfosByPath("Story"); DM.XmlDataNode copyedStageNode = stageNode.Copy(); innerStageNode.subNodes.AddRange(copyedStageNode.GetXmlDataNodesByPath("Story")); string EPISODE_WORD = DM.LocalizeCore.GetLanguageData(DM.LANGUAGE_FILE_NAME.STAGE_INFO, $"EPISODE"); BtnStage.ToolTip = $"{EPISODE_WORD} : {DM.FullyLoclalizedGameDescriptions.GetFullDescriptionForStage(selectedItem)}"; LblStage.Content = $"{EPISODE_WORD} : {DM.FullyLoclalizedGameDescriptions.GetFullDescriptionForStage(selectedItem)}";; BtnStage.Content = " "; }); MainWindow.mainWindow.UpdateDebugInfo(); MainWindow.mainWindow.ChangeDebugLocation(MainWindow.DEBUG_LOCATION.STATIC_STAGE_INFO); }, SubWindows.InputInfoWithSearchWindow_PRESET.EPISODE).ShowDialog(); break; case "BtnStageCustom": new SubWindows.Global_MultipleValueInputed(new Dictionary <string, string>() { { DM.LocalizeCore.GetLanguageData(DM.LANGUAGE_FILE_NAME.STAGE_INFO, $"Chapter"), DM.LocalizeCore.GetLanguageData(DM.LANGUAGE_FILE_NAME.STAGE_INFO, $"Chapter_ToolTip") }, { DM.LocalizeCore.GetLanguageData(DM.LANGUAGE_FILE_NAME.STAGE_INFO, $"StoryType"), DM.LocalizeCore.GetLanguageData(DM.LANGUAGE_FILE_NAME.STAGE_INFO, $"StoryType_ToolTip") }, { DM.LocalizeCore.GetLanguageData(DM.LANGUAGE_FILE_NAME.STAGE_INFO, $"Story_Start_Conditon"), DM.LocalizeCore.GetLanguageData(DM.LANGUAGE_FILE_NAME.STAGE_INFO, $"Story_Start_Conditon_ToolTip") }, { DM.LocalizeCore.GetLanguageData(DM.LANGUAGE_FILE_NAME.STAGE_INFO, $"Story_End_Conditon"), DM.LocalizeCore.GetLanguageData(DM.LANGUAGE_FILE_NAME.STAGE_INFO, $"Story_End_Conditon_TooTip") } }, new List <string>() { innerStageNode.GetInnerTextByPath("Chapter"), innerStageNode.GetInnerTextByPath("StoryType"), innerStageNode.GetInnerTextByAttributeWithPath("Story", "Condition", "Start"), innerStageNode.GetInnerTextByAttributeWithPath("Story", "Condition", "End") }, new List <Action <string> >() { (string inputedVar) => { innerStageNode.SetXmlInfoByPathAndEmptyWillRemove("Chapter", inputedVar); }, (string inputedVar) => { innerStageNode.SetXmlInfoByPathAndEmptyWillRemove("StoryType", inputedVar); }, (string inputedVar) => { innerStageNode.ActionXmlDataNodesByAttributeWithPath("Story", "Condition", "Start", (DM.XmlDataNode storyNode) => { storyNode.innerText = inputedVar; }); MainWindow.mainWindow.UpdateDebugInfo(); MainWindow.mainWindow.ChangeDebugLocation(MainWindow.DEBUG_LOCATION.STATIC_STAGE_INFO); }, (string inputedVar) => { innerStageNode.ActionXmlDataNodesByAttributeWithPath("Story", "Condition", "End", (DM.XmlDataNode storyNode) => { storyNode.innerText = inputedVar; }); MainWindow.mainWindow.UpdateDebugInfo(); MainWindow.mainWindow.ChangeDebugLocation(MainWindow.DEBUG_LOCATION.STATIC_STAGE_INFO); } }).ShowDialog(); MainWindow.mainWindow.UpdateDebugInfo(); MainWindow.mainWindow.ChangeDebugLocation(MainWindow.DEBUG_LOCATION.STATIC_STAGE_INFO); string STORY_TYPE = innerStageNode.GetInnerTextByPath("StoryType"); string EPISODE_WORD_EX = DM.LocalizeCore.GetLanguageData(DM.LANGUAGE_FILE_NAME.STAGE_INFO, $"EPISODE"); BtnStage.ToolTip = $"{EPISODE_WORD_EX} : {DM.FullyLoclalizedGameDescriptions.GetFullDescriptionForStage(STORY_TYPE)}"; LblStage.Content = $"{EPISODE_WORD_EX} : {DM.FullyLoclalizedGameDescriptions.GetFullDescriptionForStage(STORY_TYPE)}";; BtnStage.Content = " "; break; case "BtnFloor": new SubWindows.Global_ListSeleteWindow((string floorNumStr) => { innerStageNode.SetXmlInfoByPath("FloorNum", floorNumStr); string FLOOR_WORD = DM.LocalizeCore.GetLanguageData(DM.LANGUAGE_FILE_NAME.STAGE_INFO, $"AVALIABLE_FLOOR"); BtnFloor.ToolTip = $"{FLOOR_WORD} : {floorNumStr}"; LblFloor.Content = $"{FLOOR_WORD} : {floorNumStr}"; BtnFloor.Content = " "; MainWindow.mainWindow.ChangeDebugLocation(MainWindow.DEBUG_LOCATION.STATIC_STAGE_INFO); }, SubWindows.Global_ListSeleteWindow_PRESET.FLOORS).ShowDialog(); break; case "BtnInvitation": List <string> selectedDropBooks = new List <string>(); innerStageNode.ActionXmlDataNodesByPath("Invitation/Book", (DM.XmlDataNode xmlDataNode) => { selectedDropBooks.Add(DM.FullyLoclalizedGameDescriptions.GetFullDescriptionForDropBook(xmlDataNode.innerText)); }); new SubWindows.Global_AddItemToListWindow((string addedDropBookItemID) => { innerStageNode.ActionXmlDataNodesByPath("Invitation", (DM.XmlDataNode invitationNode) => { invitationNode.AddXmlInfoByPath("Book", addedDropBookItemID); }); }, (string deletedDropBookItemID) => { innerStageNode.ActionXmlDataNodesByPath("Invitation", (DM.XmlDataNode invitationNode) => { invitationNode.RemoveXmlInfosByPath("Book", deletedDropBookItemID); }); }, selectedDropBooks, SubWindows.AddItemToListWindow_PRESET.DROP_BOOK).ShowDialog(); if (innerStageNode.GetXmlDataNodesByPath("Invitation/Book").Count > 0) { string extraInfo = ""; innerStageNode.ActionXmlDataNodesByPath("Invitation/Book", (DM.XmlDataNode xmlDataNode) => { extraInfo += $"{DM.FullyLoclalizedGameDescriptions.GetFullDescriptionForDropBook(xmlDataNode.GetInnerTextSafe())}/"; }); extraInfo = extraInfo.TrimEnd('/'); string INVITATION_WORD = DM.LocalizeCore.GetLanguageData(DM.LANGUAGE_FILE_NAME.STAGE_INFO, $"INVITATION_BOOK"); LblInvitation.Content = $"{INVITATION_WORD} : {extraInfo}"; BtnInvitation.ToolTip = $"{INVITATION_WORD} : {extraInfo}"; BtnInvitation.Content = " "; } else { LblInvitation.Content = ""; BtnInvitation.ToolTip = DM.LocalizeCore.GetLanguageData(DM.LANGUAGE_FILE_NAME.STAGE_INFO, $"%BtnInvitation_ToolTip%").Split('$')[0]; BtnInvitation.Content = DM.LocalizeCore.GetLanguageData(DM.LANGUAGE_FILE_NAME.STAGE_INFO, $"%BtnInvitation%").Split('$')[0]; } MainWindow.mainWindow.ChangeDebugLocation(MainWindow.DEBUG_LOCATION.STATIC_STAGE_INFO); break; case "BtnAddWave": innerStageNode.subNodes.Add(DM.EditGameData_StageInfo.MakeNewWaveInfoBase()); InitSqlWaves(); MainWindow.mainWindow.ChangeDebugLocation(MainWindow.DEBUG_LOCATION.STATIC_STAGE_INFO); break; } }