3.8 code
This commit is contained in:
parent
25cfb74d38
commit
f2e4e78750
23 changed files with 975 additions and 173 deletions
|
|
@ -205,7 +205,7 @@ namespace PvZ_Fusion_Translator
|
|||
|
||||
// load abyss buffs
|
||||
|
||||
Patches.Modes.Abyss.AbyssBuffMenu_Patch.LoadAbyssBuffData();
|
||||
//Patches.Modes.Abyss.AbyssBuffMenu_Patch.LoadAbyssBuffData();
|
||||
|
||||
SaveStrings();
|
||||
DumpJson();
|
||||
|
|
@ -259,10 +259,10 @@ namespace PvZ_Fusion_Translator
|
|||
{
|
||||
LoadFSStrings(jsonString);
|
||||
}
|
||||
else if(fileName.EndsWith("abyss_buffs"))
|
||||
{
|
||||
Patches.Modes.Abyss.AbyssBuffMenu_Patch.LoadAbyssBuffData();
|
||||
}
|
||||
//else if(fileName.EndsWith("abyss_buffs"))
|
||||
//{
|
||||
// Patches.Modes.Abyss.AbyssBuffMenu_Patch.LoadAbyssBuffData();
|
||||
//}
|
||||
else if (fileName.EndsWith("travel_buffs"))
|
||||
{
|
||||
LoadTravelBuffs();
|
||||
|
|
@ -295,6 +295,8 @@ namespace PvZ_Fusion_Translator
|
|||
LoadDetailStrings(File.ReadAllText(detailStringsPath));
|
||||
}
|
||||
|
||||
LoadChangelogText();
|
||||
|
||||
SaveStrings();
|
||||
DumpJson();
|
||||
}
|
||||
|
|
@ -988,11 +990,11 @@ namespace PvZ_Fusion_Translator
|
|||
|
||||
// save abyss buffs
|
||||
|
||||
if(Patches.Modes.Abyss.AbyssBuffMenu_Patch.abyssBuffData != new Dictionary<string, string>())
|
||||
{
|
||||
string abyssBuffData = SerializeWithIndentation(Patches.Modes.Abyss.AbyssBuffMenu_Patch.abyssBuffData, 2);
|
||||
File.WriteAllText(Path.Combine(stringDir, "abyss_buffs.json"), abyssBuffData);
|
||||
}
|
||||
//if(Patches.Modes.Abyss.AbyssBuffMenu_Patch.abyssBuffData != new Dictionary<string, string>())
|
||||
//{
|
||||
// string abyssBuffData = SerializeWithIndentation(Patches.Modes.Abyss.AbyssBuffMenu_Patch.abyssBuffData, 2);
|
||||
// File.WriteAllText(Path.Combine(stringDir, "abyss_buffs.json"), abyssBuffData);
|
||||
//}
|
||||
|
||||
// save almanacs
|
||||
|
||||
|
|
@ -1047,10 +1049,10 @@ namespace PvZ_Fusion_Translator
|
|||
}
|
||||
string LawnStrings = Resources.Load<TextAsset>("LawnStrings").text;
|
||||
string ZombieStrings = Resources.Load<TextAsset>("ZombieStrings").text;
|
||||
string AbyssBuffData = Resources.Load<TextAsset>("AbyssBuffData").text;
|
||||
//string AbyssBuffData = Resources.Load<TextAsset>("AbyssBuffData").text;
|
||||
File.WriteAllText(Path.Combine(dumpDir, "LawnStrings.json"), LawnStrings);
|
||||
File.WriteAllText(Path.Combine(dumpDir, "ZombieStrings.json"), ZombieStrings);
|
||||
File.WriteAllText(Path.Combine(dumpDir, "AbyssBuffData.json"), AbyssBuffData);
|
||||
//File.WriteAllText(Path.Combine(dumpDir, "AbyssBuffData.json"), AbyssBuffData);
|
||||
|
||||
// dump iz tips
|
||||
var izDump = DumpIZStrings();
|
||||
|
|
|
|||
|
|
@ -103,7 +103,7 @@ namespace PvZ_Fusion_Translator.Patches.BaseTextObjects
|
|||
}
|
||||
else if (travelMatch != "")
|
||||
{
|
||||
txt.text = travelMatch;
|
||||
txt.text = TravelMgr_Patch.AddBuffName(travelMatch);
|
||||
if (txt.gameObject.name.Contains("main"))
|
||||
{
|
||||
originalText = txt.text;
|
||||
|
|
|
|||
|
|
@ -9,40 +9,13 @@ using static Il2Cpp.AlmanacBuffMenu;
|
|||
using static PvZ_Fusion_Translator.FileLoader;
|
||||
using static PvZ_Fusion_Translator.Patches.Modes.Odyssey.TravelMgr_Patch;
|
||||
using static PvZ_Fusion_Translator.Utils;
|
||||
using Unity.VisualScripting;
|
||||
|
||||
namespace PvZ_Fusion_Translator.Patches.GameObjects
|
||||
{
|
||||
[HarmonyPatch(typeof(AlmanacBuffMenu))]
|
||||
public static class AlmanacBuffMenu_Patch
|
||||
{
|
||||
public static Dictionary<string, string> modifierNameDict = new Dictionary<string, string>()
|
||||
{
|
||||
{ "advancedBuffs", "COMMON_MODIFIER_TAG" },
|
||||
{ "ultimateBuffs", "EPIC_MODIFIER_TAG" },
|
||||
{ "debuffs", "ZOMBIE_MODIFIER_TAG" },
|
||||
{ "unlocks", "UNLOCK_MODIFIER_TAG" },
|
||||
{ "investmentBuffs", "INVEST_MODIFIER_TAG" }
|
||||
};
|
||||
|
||||
public static Dictionary<string, string> fallbackNameDict = new Dictionary<string, string>()
|
||||
{
|
||||
{ "COMMON_MODIFIER_TAG", "Common Modifier" },
|
||||
{ "EPIC_MODIFIER_TAG", "Epic Modifier" },
|
||||
{ "ZOMBIE_MODIFIER_TAG", "Zombie Modifier" },
|
||||
{ "UNLOCK_MODIFIER_TAG", "Unlock Modifier" },
|
||||
{ "INVEST_MODIFIER_TAG", "Investment Modifier" }
|
||||
};
|
||||
|
||||
public static string TranslateNameTag(string originalText)
|
||||
{
|
||||
string res = originalText;
|
||||
|
||||
string nameTag = modifierNameDict[originalText];
|
||||
res = StringStore.translationString.ContainsKey(nameTag) ? StringStore.TranslateText(nameTag) : fallbackNameDict[nameTag];
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
[HarmonyPatch(nameof(AlmanacBuffMenu.Awake))]
|
||||
[HarmonyPostfix]
|
||||
public static void Post_Awake(AlmanacBuffMenu __instance)
|
||||
|
|
@ -54,25 +27,59 @@ namespace PvZ_Fusion_Translator.Patches.GameObjects
|
|||
|
||||
if (buffData.Item1 == null || buffData.Item3 == null) continue;
|
||||
|
||||
string nameTag = TranslateNameTag(buffData.Item1);
|
||||
cardUI.cost.text = $"{nameTag} #{buffData.Item2}";
|
||||
cardUI.cost.text = (buffData.Item4) ? buffData.Item1 : $"{buffData.Item1} #{buffData.Item2}";
|
||||
}
|
||||
|
||||
Post_OnCardClick(__instance);
|
||||
}
|
||||
|
||||
[HarmonyPatch(nameof(AlmanacBuffMenu.SetAllCards))]
|
||||
[HarmonyPatch(nameof(AlmanacBuffMenu.Start))]
|
||||
[HarmonyPatch(nameof(AlmanacBuffMenu.InitMenu))]
|
||||
[HarmonyPostfix]
|
||||
public static void Post_SetAllCards(AlmanacBuffMenu __instance)
|
||||
{
|
||||
foreach(AlmanacCardUI cardUI in __instance.cards)
|
||||
{
|
||||
AlmanacBuffMenu.CardInfo cardInfo = __instance.cardInfos[cardUI];
|
||||
var buffData = FindBuffData(cardInfo.description);
|
||||
if (buffData.Item1 == null || buffData.Item3 == null) continue;
|
||||
|
||||
cardUI.cost.text = (buffData.Item4) ? buffData.Item1 : $"{buffData.Item1} #{buffData.Item2}";
|
||||
}
|
||||
|
||||
Post_OnToolClick(__instance);
|
||||
|
||||
Post_OnCardClick(__instance);
|
||||
}
|
||||
|
||||
[HarmonyPatch(nameof(AlmanacBuffMenu.OnToolClick))]
|
||||
[HarmonyPostfix]
|
||||
public static void Post_OnToolClick(AlmanacBuffMenu __instance)
|
||||
{
|
||||
foreach(TextMeshProUGUI txt in __instance.toolButton.GetComponentsInChildren<TextMeshProUGUI>())
|
||||
{
|
||||
txt.text = StringStore.TranslateText(txt.text);
|
||||
txt.font = FontStore.LoadTMPFont(Utils.Language.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
[HarmonyPatch(nameof(AlmanacBuffMenu.OnCardClick))]
|
||||
[HarmonyPostfix]
|
||||
public static void Post_OnCardClick(AlmanacBuffMenu __instance)
|
||||
{
|
||||
var buffData = FindBuffData(__instance.buffDescription.text);
|
||||
|
||||
if (buffData.Item1 == null || buffData.Item3 == null) return;
|
||||
if (buffData.Item1 == null || buffData.Item3 == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
string nameTag = TranslateNameTag(buffData.Item1);
|
||||
__instance.buffTitle.text = $"{nameTag} #{buffData.Item2}";
|
||||
__instance.buffTitle.text = (buffData.Item4) ? buffData.Item1 : $"{buffData.Item1} #{buffData.Item2}";
|
||||
__instance.buffTitle.font = FontStore.LoadTMPFont(Utils.Language.ToString());
|
||||
__instance.buffDescription.text = buffData.Item3 + "\n\n";
|
||||
string buffFStr = StringStore.translationStringRegex.ContainsKey("BUFF_NAME_FORMAT") ? StringStore.translationStringRegex["BUFF_NAME_FORMAT"] : "{0}: {1}";
|
||||
string fBuffDesc = string.Format(buffFStr, buffData.Item1, buffData.Item3);
|
||||
__instance.buffDescription.text = (buffData.Item4) ? fBuffDesc + "\n\n" : buffData.Item3 + "\n\n";
|
||||
__instance.buffDescription.font = FontStore.LoadTMPFont(Utils.Language.ToString());
|
||||
string colorHex = StringStore.translationString.ContainsKey("MOD_ALMANAC_COL") ? StringStore.TranslateText("MOD_ALMANAC_COL") : "#000000";
|
||||
System.Drawing.Color descriptionColor = ColorTranslator.FromHtml(colorHex);
|
||||
|
|
@ -86,6 +93,8 @@ namespace PvZ_Fusion_Translator.Patches.GameObjects
|
|||
|
||||
Canvas.ForceUpdateCanvases();
|
||||
__instance.buffDescription.ForceMeshUpdate();
|
||||
|
||||
Post_OnToolClick(__instance);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,12 +1,13 @@
|
|||
using HarmonyLib;
|
||||
using Il2Cpp;
|
||||
using Il2CppPVPScaryPot;
|
||||
using Il2CppTMPro;
|
||||
using PvZ_Fusion_Translator.AssetStore;
|
||||
using UnityEngine;
|
||||
|
||||
namespace PvZ_Fusion_Translator.Patches.GameObjects.ButtonObjects
|
||||
{
|
||||
[HarmonyPatch(typeof(PVPPotBtn))]
|
||||
/*[HarmonyPatch(typeof(PVPPotBtn))]
|
||||
public class PVPPotBtn_Patch
|
||||
{
|
||||
[HarmonyPostfix]
|
||||
|
|
@ -38,5 +39,5 @@ namespace PvZ_Fusion_Translator.Patches.GameObjects.ButtonObjects
|
|||
__instance.gameObject.SetActive(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
|
|
|||
|
|
@ -46,40 +46,11 @@ namespace PvZ_Fusion_Translator.Patches.GameObjects
|
|||
[HarmonyPostfix]
|
||||
public static void Postfix_OnMouseUpAsButton(UIButton __instance)
|
||||
{
|
||||
try
|
||||
foreach(TextMeshProUGUI txt in __instance.GetComponentsInChildren<TextMeshProUGUI>())
|
||||
{
|
||||
if (__instance.transform.childCount >= 2)
|
||||
{
|
||||
if (__instance.name == "EditMode")
|
||||
{
|
||||
TMP_FontAsset fontAsset = FontStore.LoadTMPFont(Utils.Language.ToString());
|
||||
|
||||
TextMeshProUGUI text = __instance.transform.GetChild(0).GetComponent<TextMeshProUGUI>();
|
||||
TextMeshProUGUI[] extraTexts = __instance.transform.GetChild(1).GetComponentsInChildren<TextMeshProUGUI>();
|
||||
|
||||
text.text = StringStore.TranslateText(text.text, false);
|
||||
text.font = fontAsset;
|
||||
|
||||
foreach (TextMeshProUGUI extraText in extraTexts)
|
||||
{
|
||||
extraText.text = StringStore.TranslateText(extraText.text, false);
|
||||
extraText.font = fontAsset;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
TextMeshProUGUI text = __instance.transform.GetChild(0).GetComponent<TextMeshProUGUI>();
|
||||
TextMeshProUGUI textShadow = __instance.transform.GetChild(1).GetComponent<TextMeshProUGUI>();
|
||||
|
||||
text.text = StringStore.TranslateText(text.text, false);
|
||||
textShadow.text = StringStore.TranslateText(textShadow.text, false);
|
||||
|
||||
text.font = FontStore.LoadTMPFont(Utils.Language.ToString());
|
||||
textShadow.font = FontStore.LoadTMPFont(Utils.Language.ToString());
|
||||
txt.text = StringStore.TranslateText(txt.text);
|
||||
txt.font = FontStore.LoadTMPFont(Utils.Language.ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception) { }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
40
MelonLoader/Patches/GameObjects/GardenStoreMenu_Patch.cs
Normal file
40
MelonLoader/Patches/GameObjects/GardenStoreMenu_Patch.cs
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
using HarmonyLib;
|
||||
using Il2Cpp;
|
||||
using Il2CppAlmanacData;
|
||||
using Il2CppTMPro;
|
||||
using PvZ_Fusion_Translator.AssetStore;
|
||||
using UnityEngine;
|
||||
using System.Drawing;
|
||||
using Il2CppZenGarden;
|
||||
|
||||
namespace PvZ_Fusion_Translator.Patches.GameObjects
|
||||
{
|
||||
[HarmonyPatch(typeof(GardenStoreMenu))]
|
||||
public static class GardenStoreMenu_Patch
|
||||
{
|
||||
[HarmonyPatch(nameof(GardenStoreMenu.InitGoodsList))]
|
||||
[HarmonyPatch(nameof(GardenStoreMenu.GetDatas))]
|
||||
[HarmonyPatch(nameof(GardenStoreMenu.PurchaseGoods))]
|
||||
[HarmonyPatch(nameof(GardenStoreMenu.Update))]
|
||||
[HarmonyPatch(nameof(GardenStoreMenu.Start))]
|
||||
[HarmonyPostfix]
|
||||
public static void TranslateGardenStoreMenu(GardenStoreMenu __instance)
|
||||
{
|
||||
foreach(GardenShopSlot slot in __instance.GetComponentsInChildren<GardenShopSlot>())
|
||||
{
|
||||
TranslateGardenShopSlot(slot);
|
||||
}
|
||||
}
|
||||
|
||||
[HarmonyPatch(nameof(GardenShopSlot.Start))]
|
||||
[HarmonyPostfix]
|
||||
public static void TranslateGardenShopSlot(GardenShopSlot __instance)
|
||||
{
|
||||
foreach(TextMeshProUGUI txt in __instance.GetComponentsInChildren<TextMeshProUGUI>())
|
||||
{
|
||||
txt.text = StringStore.TranslateText(txt.text);
|
||||
txt.font = FontStore.LoadTMPFont(Utils.Language.ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -11,6 +11,7 @@ using UnityEngine.UIElements;
|
|||
|
||||
namespace PvZ_Fusion_Translator.Patches.GameObjects
|
||||
{
|
||||
[HarmonyPatch(typeof(MainMenu))]
|
||||
public class MainMenu_Patch
|
||||
{
|
||||
public static void AnimOver(BaseMenu __instance)
|
||||
|
|
@ -93,14 +94,16 @@ namespace PvZ_Fusion_Translator.Patches.GameObjects
|
|||
messageText.text = "Hello this is multilanguage choose language over there ------>";*/
|
||||
}
|
||||
|
||||
public static void HideLangButton(GameObject btn)
|
||||
[HarmonyPatch(nameof(MainMenu.EnterUpdateUrl))]
|
||||
[HarmonyPrefix]
|
||||
public static bool Pre_EnterUpdateUrl(MainMenu __instance)
|
||||
{
|
||||
btn.GetComponent<BoxCollider2D>().enabled = false;
|
||||
}
|
||||
|
||||
public static void ShowLangButton(GameObject btn)
|
||||
System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo
|
||||
{
|
||||
btn.GetComponent<BoxCollider2D>().enabled = true;
|
||||
FileName = @"https://github.com/Teyliu/PVZF-Translation",
|
||||
UseShellExecute = true
|
||||
});
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
using HarmonyLib;
|
||||
using Il2Cpp;
|
||||
using Il2CppTMPro;
|
||||
using PvZ_Fusion_Translator.AssetStore;
|
||||
using UnityEngine;
|
||||
|
||||
namespace PvZ_Fusion_Translator.Patches.GameObjects
|
||||
{
|
||||
[HarmonyPatch(typeof(PlantCardPackageBuilder))]
|
||||
public static class PlantCardPackageBuilder_Patch
|
||||
{
|
||||
[HarmonyPatch(nameof(PlantCardPackageBuilder.UpdateText))]
|
||||
[HarmonyPostfix]
|
||||
private static void UpdateText(PlantCardPackageBuilder __instance)
|
||||
{
|
||||
TMP_FontAsset fontAsset = FontStore.LoadTMPFont(Utils.Language.ToString());
|
||||
|
||||
__instance.text.text = StringStore.TranslateText(__instance.text.text);
|
||||
__instance.text.font = fontAsset;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -31,5 +31,28 @@ namespace PvZ_Fusion_Translator.Patches.GameObjects
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
[HarmonyPatch(nameof(SeedLibrary.Start))]
|
||||
[HarmonyPatch(nameof(SeedLibrary.SetAllCards))]
|
||||
[HarmonyPostfix]
|
||||
private static void SetAllCards(SeedLibrary __instance)
|
||||
{
|
||||
TMP_FontAsset fontAsset = FontStore.LoadTMPFont(Utils.Language.ToString());
|
||||
|
||||
//foreach (TextMeshProUGUI txt in __instance.GetComponentsInChildren<TextMeshProUGUI>())
|
||||
//{
|
||||
// txt.text = StringStore.TranslateText(txt.text);
|
||||
// txt.font = fontAsset;
|
||||
//}
|
||||
|
||||
foreach(TextMeshProUGUI txt in __instance.page.GetComponentsInChildren<TextMeshProUGUI>(true))
|
||||
{
|
||||
txt.font = fontAsset;
|
||||
if (!Utils.CheckForUntranslatedText(txt.text))
|
||||
{
|
||||
txt.text = StringStore.TranslateText(txt.text);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
34
MelonLoader/Patches/Managers/PVPScareyPot_Patch.cs
Normal file
34
MelonLoader/Patches/Managers/PVPScareyPot_Patch.cs
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
using Il2Cpp;
|
||||
using UnityEngine;
|
||||
using HarmonyLib;
|
||||
using Il2CppPVPScaryPot;
|
||||
using PvZ_Fusion_Translator.AssetStore;
|
||||
|
||||
namespace PvZ_Fusion_Translator.Patches.Managers
|
||||
{
|
||||
[HarmonyPatch(typeof(PVPScareyPot))]
|
||||
public static class PVPScareyPot_Patch
|
||||
{
|
||||
[HarmonyPatch(nameof(PVPScareyPot.Awake))]
|
||||
[HarmonyPatch(nameof(PVPScareyPot.Start))]
|
||||
[HarmonyPatch(nameof(PVPScareyPot.AutoRuleUpdate))]
|
||||
[HarmonyPatch(nameof(PVPScareyPot.RandomCardUpdate))]
|
||||
[HarmonyPatch(nameof(PVPScareyPot.Update))]
|
||||
[HarmonyPostfix]
|
||||
public static void TranslatePlayerDatas(PVPScareyPot __instance)
|
||||
{
|
||||
TranslatePlayerData(__instance.player1);
|
||||
TranslatePlayerData(__instance.player2);
|
||||
TranslatePlayerData(__instance.currentPlayer);
|
||||
}
|
||||
|
||||
public static void TranslatePlayerData(PVPScareyPot.PlayerData playerData)
|
||||
{
|
||||
if(playerData != null)
|
||||
{
|
||||
playerData.textMesh.text = StringStore.TranslateText(playerData.textMesh.text);
|
||||
playerData.textMesh.font = FontStore.LoadTMPFont(Utils.Language.ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -15,7 +15,7 @@ using static PvZ_Fusion_Translator.FileLoader;
|
|||
|
||||
namespace PvZ_Fusion_Translator.Patches.Modes.Abyss
|
||||
{
|
||||
[HarmonyPatch(typeof(AbyssBuffMenu))]
|
||||
/*[HarmonyPatch(typeof(AbyssBuffMenu))]
|
||||
public static class AbyssBuffMenu_Patch
|
||||
{
|
||||
public static Dictionary<string, string> abyssBuffData = new Dictionary<string, string>();
|
||||
|
|
@ -129,5 +129,5 @@ namespace PvZ_Fusion_Translator.Patches.Modes.Abyss
|
|||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ using UnityEngine;
|
|||
|
||||
namespace PvZ_Fusion_Translator.Patches.Modes.Abyss
|
||||
{
|
||||
[HarmonyPatch(typeof(AbyssGoods))]
|
||||
/*[HarmonyPatch(typeof(AbyssGoods))]
|
||||
public static class AbyssGoods_Patch
|
||||
{
|
||||
[HarmonyPostfix]
|
||||
|
|
@ -18,5 +18,5 @@ namespace PvZ_Fusion_Translator.Patches.Modes.Abyss
|
|||
__instance.hasText.text = StringStore.TranslateText(__instance.hasText.text, false);
|
||||
__instance.hasText_shadow.text = StringStore.TranslateText(__instance.hasText_shadow.text, false);
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ using UnityEngine;
|
|||
|
||||
namespace PvZ_Fusion_Translator.Patches.Modes.Abyss
|
||||
{
|
||||
[HarmonyPatch(typeof(AbyssLevelEnter))]
|
||||
/*[HarmonyPatch(typeof(AbyssLevelEnter))]
|
||||
public static class AbyssLevelEnter_Patch
|
||||
{
|
||||
[HarmonyPatch(nameof(AbyssLevelEnter.SetLevel))]
|
||||
|
|
@ -15,5 +15,5 @@ namespace PvZ_Fusion_Translator.Patches.Modes.Abyss
|
|||
{
|
||||
__instance.levelName = StringStore.TranslateText(__instance.levelName);
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ using MelonLoader.Utils;
|
|||
|
||||
namespace PvZ_Fusion_Translator.Patches.Modes.Abyss
|
||||
{
|
||||
[HarmonyPatch(typeof(AbyssMenu))]
|
||||
/*[HarmonyPatch(typeof(AbyssMenu))]
|
||||
public static class AbyssMenu_Patch
|
||||
{
|
||||
[HarmonyPatch(nameof(AbyssMenu.Awake))]
|
||||
|
|
@ -45,5 +45,5 @@ namespace PvZ_Fusion_Translator.Patches.Modes.Abyss
|
|||
txt.font = fontAsset;
|
||||
}
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ using System.Text.RegularExpressions;
|
|||
|
||||
namespace PvZ_Fusion_Translator.Patches.Modes.Abyss
|
||||
{
|
||||
[HarmonyPatch(typeof(AbyssSelectBuffWindow))]
|
||||
/*[HarmonyPatch(typeof(AbyssSelectBuffWindow))]
|
||||
public static class AbyssSelectBuffWindow_Patch
|
||||
{
|
||||
[HarmonyPatch(nameof(AbyssSelectBuffWindow.OnAnimOver))]
|
||||
|
|
@ -53,5 +53,5 @@ namespace PvZ_Fusion_Translator.Patches.Modes.Abyss
|
|||
__instance.introduce.font = fontAsset;
|
||||
}
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ using PvZ_Fusion_Translator.AssetStore;
|
|||
|
||||
namespace PvZ_Fusion_Translator.Patches.Modes.Abyss
|
||||
{
|
||||
[HarmonyPatch(typeof(AbyssStoreMenu))]
|
||||
/*[HarmonyPatch(typeof(AbyssStoreMenu))]
|
||||
public static class AbyssStoreMenu_Patch
|
||||
{
|
||||
[HarmonyPatch(nameof(AbyssStoreMenu.Update))]
|
||||
|
|
@ -20,5 +20,5 @@ namespace PvZ_Fusion_Translator.Patches.Modes.Abyss
|
|||
text.font = fontAsset;
|
||||
}
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,8 +20,8 @@ namespace PvZ_Fusion_Translator.Patches.Modes.Odyssey
|
|||
[HarmonyPatch(nameof(MultipleChoiceMenu.Awake))]
|
||||
[HarmonyPatch(nameof(MultipleChoiceMenu.Cancel))]
|
||||
[HarmonyPatch(nameof(MultipleChoiceMenu.Refresh))]
|
||||
[HarmonyPatch(nameof(MultipleChoiceMenu.TurnPage))]
|
||||
[HarmonyPatch(nameof(MultipleChoiceMenu.UpdateWindow))]
|
||||
[HarmonyPatch(nameof(MultipleChoiceMenu.UpdateWindows))]
|
||||
[HarmonyPostfix]
|
||||
public static void Awake(MultipleChoiceMenu __instance)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,19 +1,583 @@
|
|||
using HarmonyLib;
|
||||
using Il2CppGameLevel;
|
||||
using Il2Cpp;
|
||||
using UnityEngine;
|
||||
using Il2CppGameLevel.RogueShooting;
|
||||
using PvZ_Fusion_Translator.AssetStore;
|
||||
using UnityEngine;
|
||||
|
||||
namespace PvZ_Fusion_Translator.Patches.Modes.Odyssey
|
||||
{
|
||||
[HarmonyPatch(typeof(ShootingManager))]
|
||||
public static class ShootingManager_Patch
|
||||
{
|
||||
[HarmonyPatch(nameof(ShootingManager.UpgradeBuff))]
|
||||
[HarmonyPatch(nameof(ShootingManager.RegisterCoreBuff))]
|
||||
[HarmonyPatch(nameof(ShootingManager.RegisterExpertBuff))]
|
||||
[HarmonyPatch(nameof(ShootingManager.RegisterGetPlantBuff))]
|
||||
[HarmonyPatch(nameof(ShootingManager.RegisterOtherBuff))]
|
||||
[HarmonyPostfix]
|
||||
public static void UpgradeBuff(ShootingManager __instance, ref MultipleChoiceMenu menu)
|
||||
public static void UpgradeBuff(ShootingManager __instance, ref Il2Cpp.MultipleChoiceMenu menu)
|
||||
{
|
||||
MultipleChoiceMenu_Patch.Awake(menu);
|
||||
}
|
||||
|
||||
public static void GetBuffs()
|
||||
{
|
||||
/*#region code
|
||||
|
||||
AbyssSwordStar t0 = new();
|
||||
Bamboo t1 = new();
|
||||
BigChomper t4 = new();
|
||||
BigGatling t5 = new();
|
||||
CabbageCannon t6 = new();
|
||||
Cabbagepult t7 = new();
|
||||
Cactus t8 = new();
|
||||
Caltrop t9 = new();
|
||||
CaltropNut t10 = new();
|
||||
CattailLour t11 = new();
|
||||
CherryChomper t12 = new();
|
||||
CherryGatling t13 = new();
|
||||
CherrySquash t14 = new();
|
||||
Chomper t15 = new();
|
||||
Cornpult t17 = new();
|
||||
DoomCactus t20 = new();
|
||||
DoomChomper t21 = new();
|
||||
DoomSniper t22 = new();
|
||||
EmeraleBlover t23 = new();
|
||||
FireMelon t24 = new();
|
||||
FumeShroom t25 = new();
|
||||
GarlicFume t26 = new();
|
||||
GloomShroom t28 = new();
|
||||
GoldCabbage t29 = new();
|
||||
HelmetGatling t30 = new();
|
||||
HypnoEmperor t31 = new();
|
||||
HypnoNut t32 = new();
|
||||
HypnoShroom t33 = new();
|
||||
IceFumeShroom t34 = new();
|
||||
IcePuff t35 = new();
|
||||
IFVIronPuff t36 = new();
|
||||
IronPuff t37 = new();
|
||||
LanternSplit t38 = new();
|
||||
LanternUmbrella t39 = new();
|
||||
LaserUmbrella t40 = new();
|
||||
LotusBamboo t41 = new();
|
||||
Melonpult t42 = new();
|
||||
NuclearSquash t43 = new();
|
||||
ObsidianSpike t44 = new();
|
||||
ObsidianWallNut t45 = new();
|
||||
PeaMine t46 = new();
|
||||
Peashooter t47 = new();
|
||||
PortalCorn t48 = new();
|
||||
PotatoMine t49 = new();
|
||||
ScaredyDoom t54 = new();
|
||||
ScaredyShroom t55 = new();
|
||||
SmallPuff t57 = new();
|
||||
SniperPea t58 = new();
|
||||
SnowGatlingPuff t59 = new();
|
||||
SpikeRock t61 = new();
|
||||
Squalour t62 = new();
|
||||
Squash t63 = new();
|
||||
StarFruit t64 = new();
|
||||
SuperChomper t66 = new();
|
||||
SuperHypno t67 = new();
|
||||
SuperMelon t68 = new();
|
||||
SuperStar t69 = new();
|
||||
SuperThreePeater t70 = new();
|
||||
SwordStar t71 = new();
|
||||
TallNut t72 = new();
|
||||
ThreeMine t73 = new();
|
||||
ThreePeater t74 = new();
|
||||
ThreeSquash t75 = new();
|
||||
UltimateBamboo t76 = new();
|
||||
UltimateBigChomper t77 = new();
|
||||
UltimateBigGatling t78 = new();
|
||||
UltimateBlover t79 = new();
|
||||
UltimateCabbage t80 = new();
|
||||
UltimateCabbageCannon t81 = new();
|
||||
UltimateCactus t82 = new();
|
||||
UltimateChomper t83 = new();
|
||||
UltimateCorn t84 = new();
|
||||
UltimateDoomScared t85 = new();
|
||||
UltimateFume t86 = new();
|
||||
UltimateGatling t87 = new();
|
||||
UltimateGloom t88 = new();
|
||||
UltimateHelmetGatling t89 = new();
|
||||
UltimateHypno t90 = new();
|
||||
UltimateLanternSplit t91 = new();
|
||||
UltimateMelon t92 = new();
|
||||
UltimateMinigun t93 = new();
|
||||
UltimatePoisonFume t94 = new();
|
||||
UltimateSniperGatling t95 = new();
|
||||
UltimateSpring t96 = new();
|
||||
UltimateStar t97 = new();
|
||||
UltimateStarTorch t98 = new();
|
||||
UltimateTallNut t99 = new();
|
||||
UltimateWinterMelon t100 = new();
|
||||
Umbrellaleaf t101 = new();
|
||||
WallNut t103 = new();
|
||||
WinterMelon t104 = new();
|
||||
|
||||
Dictionary<string, string> t = new();
|
||||
|
||||
#region 3
|
||||
|
||||
if(t0.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t0.Role, t0.Role);
|
||||
}
|
||||
|
||||
if(t1.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t1.Role, t1.Role);
|
||||
}
|
||||
|
||||
if(t4.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t4.Role, t4.Role);
|
||||
}
|
||||
|
||||
if(t5.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t5.Role, t5.Role);
|
||||
}
|
||||
|
||||
if(t6.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t6.Role, t6.Role);
|
||||
}
|
||||
|
||||
if(t7.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t7.Role, t7.Role);
|
||||
}
|
||||
|
||||
if(t8.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t8.Role, t8.Role);
|
||||
}
|
||||
|
||||
if(t9.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t9.Role, t9.Role);
|
||||
}
|
||||
|
||||
if(t10.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t10.Role, t10.Role);
|
||||
}
|
||||
|
||||
if(t11.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t11.Role, t11.Role);
|
||||
}
|
||||
|
||||
if(t12.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t12.Role, t12.Role);
|
||||
}
|
||||
|
||||
if(t13.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t13.Role, t13.Role);
|
||||
}
|
||||
|
||||
if(t14.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t14.Role, t14.Role);
|
||||
}
|
||||
|
||||
if(t15.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t15.Role, t15.Role);
|
||||
}
|
||||
|
||||
if(t17.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t17.Role, t17.Role);
|
||||
}
|
||||
|
||||
if(t20.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t20.Role, t20.Role);
|
||||
}
|
||||
|
||||
if(t21.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t21.Role, t21.Role);
|
||||
}
|
||||
|
||||
if(t22.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t22.Role, t22.Role);
|
||||
}
|
||||
|
||||
if(t23.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t23.Role, t23.Role);
|
||||
}
|
||||
|
||||
if(t24.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t24.Role, t24.Role);
|
||||
}
|
||||
|
||||
if(t25.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t25.Role, t25.Role);
|
||||
}
|
||||
|
||||
if(t26.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t26.Role, t26.Role);
|
||||
}
|
||||
|
||||
if(t28.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t28.Role, t28.Role);
|
||||
}
|
||||
|
||||
if(t29.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t29.Role, t29.Role);
|
||||
}
|
||||
|
||||
if(t30.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t30.Role, t30.Role);
|
||||
}
|
||||
|
||||
if(t31.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t31.Role, t31.Role);
|
||||
}
|
||||
|
||||
if(t32.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t32.Role, t32.Role);
|
||||
}
|
||||
|
||||
if(t33.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t33.Role, t33.Role);
|
||||
}
|
||||
|
||||
if(t34.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t34.Role, t34.Role);
|
||||
}
|
||||
|
||||
if(t35.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t35.Role, t35.Role);
|
||||
}
|
||||
|
||||
if(t36.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t36.Role, t36.Role);
|
||||
}
|
||||
|
||||
if(t37.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t37.Role, t37.Role);
|
||||
}
|
||||
|
||||
if(t38.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t38.Role, t38.Role);
|
||||
}
|
||||
|
||||
if(t39.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t39.Role, t39.Role);
|
||||
}
|
||||
|
||||
if(t40.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t40.Role, t40.Role);
|
||||
}
|
||||
|
||||
if(t41.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t41.Role, t41.Role);
|
||||
}
|
||||
|
||||
if(t42.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t42.Role, t42.Role);
|
||||
}
|
||||
|
||||
if(t43.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t43.Role, t43.Role);
|
||||
}
|
||||
|
||||
if(t44.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t44.Role, t44.Role);
|
||||
}
|
||||
|
||||
if(t45.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t45.Role, t45.Role);
|
||||
}
|
||||
|
||||
if(t46.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t46.Role, t46.Role);
|
||||
}
|
||||
|
||||
if(t47.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t47.Role, t47.Role);
|
||||
}
|
||||
|
||||
if(t48.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t48.Role, t48.Role);
|
||||
}
|
||||
|
||||
if(t49.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t49.Role, t49.Role);
|
||||
}
|
||||
|
||||
if(t54.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t54.Role, t54.Role);
|
||||
}
|
||||
|
||||
if(t55.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t55.Role, t55.Role);
|
||||
}
|
||||
|
||||
if(t57.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t57.Role, t57.Role);
|
||||
}
|
||||
|
||||
if(t58.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t58.Role, t58.Role);
|
||||
}
|
||||
|
||||
if(t59.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t59.Role, t59.Role);
|
||||
}
|
||||
|
||||
if(t61.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t61.Role, t61.Role);
|
||||
}
|
||||
|
||||
if(t62.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t62.Role, t62.Role);
|
||||
}
|
||||
|
||||
if(t63.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t63.Role, t63.Role);
|
||||
}
|
||||
|
||||
if(t64.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t64.Role, t64.Role);
|
||||
}
|
||||
|
||||
if(t66.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t66.Role, t66.Role);
|
||||
}
|
||||
|
||||
if(t67.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t67.Role, t67.Role);
|
||||
}
|
||||
|
||||
if(t68.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t68.Role, t68.Role);
|
||||
}
|
||||
|
||||
if(t69.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t69.Role, t69.Role);
|
||||
}
|
||||
|
||||
if(t70.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t70.Role, t70.Role);
|
||||
}
|
||||
|
||||
if(t71.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t71.Role, t71.Role);
|
||||
}
|
||||
|
||||
if(t72.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t72.Role, t72.Role);
|
||||
}
|
||||
|
||||
if(t73.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t73.Role, t73.Role);
|
||||
}
|
||||
|
||||
if(t74.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t74.Role, t74.Role);
|
||||
}
|
||||
|
||||
if(t75.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t75.Role, t75.Role);
|
||||
}
|
||||
|
||||
if(t76.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t76.Role, t76.Role);
|
||||
}
|
||||
|
||||
if(t77.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t77.Role, t77.Role);
|
||||
}
|
||||
|
||||
if(t78.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t78.Role, t78.Role);
|
||||
}
|
||||
|
||||
if(t79.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t79.Role, t79.Role);
|
||||
}
|
||||
|
||||
if(t80.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t80.Role, t80.Role);
|
||||
}
|
||||
|
||||
if(t81.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t81.Role, t81.Role);
|
||||
}
|
||||
|
||||
if(t82.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t82.Role, t82.Role);
|
||||
}
|
||||
|
||||
if(t83.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t83.Role, t83.Role);
|
||||
}
|
||||
|
||||
if(t84.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t84.Role, t84.Role);
|
||||
}
|
||||
|
||||
if(t85.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t85.Role, t85.Role);
|
||||
}
|
||||
|
||||
if(t86.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t86.Role, t86.Role);
|
||||
}
|
||||
|
||||
if(t87.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t87.Role, t87.Role);
|
||||
}
|
||||
|
||||
if(t88.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t88.Role, t88.Role);
|
||||
}
|
||||
|
||||
if(t89.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t89.Role, t89.Role);
|
||||
}
|
||||
|
||||
if(t90.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t90.Role, t90.Role);
|
||||
}
|
||||
|
||||
if(t91.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t91.Role, t91.Role);
|
||||
}
|
||||
|
||||
if(t92.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t92.Role, t92.Role);
|
||||
}
|
||||
|
||||
if(t93.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t93.Role, t93.Role);
|
||||
}
|
||||
|
||||
if(t94.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t94.Role, t94.Role);
|
||||
}
|
||||
|
||||
if(t95.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t95.Role, t95.Role);
|
||||
}
|
||||
|
||||
if(t96.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t96.Role, t96.Role);
|
||||
}
|
||||
|
||||
if(t97.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t97.Role, t97.Role);
|
||||
}
|
||||
|
||||
if(t98.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t98.Role, t98.Role);
|
||||
}
|
||||
|
||||
if(t99.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t99.Role, t99.Role);
|
||||
}
|
||||
|
||||
if(t100.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t100.Role, t100.Role);
|
||||
}
|
||||
|
||||
if(t101.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t101.Role, t101.Role);
|
||||
}
|
||||
|
||||
if(t103.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t103.Role, t103.Role);
|
||||
}
|
||||
|
||||
if(t104.Buffs != null)
|
||||
{
|
||||
Utils.TryAdd(t, t104.Role, t104.Role);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
File.WriteAllText("tge_roles.json", FileLoader.SerializeWithIndentation(t));
|
||||
|
||||
#endregion*/
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,6 +27,17 @@ namespace PvZ_Fusion_Translator.Patches.Modes.Odyssey
|
|||
|
||||
public static void TranslateOptionButton(TravelBuffOptionButton button)
|
||||
{
|
||||
if(TravelMgr_Patch.travelBuffString.ContainsKey(button.introduce.text))
|
||||
{
|
||||
string translatedBuff = travelBuffString[button.introduce.text];
|
||||
button.introduce.text = AddBuffName(translatedBuff);
|
||||
}
|
||||
|
||||
if(!Utils.CheckForUntranslatedText(button.introduce.text))
|
||||
{
|
||||
button.introduce.text = AddBuffName(button.introduce.text);
|
||||
}
|
||||
|
||||
if(!TravelMgr_Patch.travelBuffString.ContainsKey(button.introduce.text) && Utils.CheckForUntranslatedText(button.introduce.text))
|
||||
{
|
||||
button.introduce.text = StringStore.TranslateText(button.introduce.text);
|
||||
|
|
|
|||
|
|
@ -44,6 +44,17 @@ namespace PvZ_Fusion_Translator.Patches.Modes.Odyssey
|
|||
|
||||
foreach (TextMeshProUGUI text in __instance.transform.FindChild("Images").FindChild("Introduce").GetComponentsInChildren<TextMeshProUGUI>())
|
||||
{
|
||||
if(TravelMgr_Patch.travelBuffString.ContainsKey(text.text))
|
||||
{
|
||||
string translatedBuff = travelBuffString[text.text];
|
||||
text.text = AddBuffName(translatedBuff);
|
||||
}
|
||||
|
||||
if(!Utils.CheckForUntranslatedText(text.text))
|
||||
{
|
||||
text.text = AddBuffName(text.text);
|
||||
}
|
||||
|
||||
if(!TravelMgr_Patch.travelBuffString.ContainsKey(text.text) && Utils.CheckForUntranslatedText(text.text))
|
||||
{
|
||||
text.text = StringStore.TranslateText(text.text);
|
||||
|
|
|
|||
|
|
@ -14,35 +14,81 @@ using static PvZ_Fusion_Translator.FileLoader;
|
|||
|
||||
namespace PvZ_Fusion_Translator.Patches.Modes.Odyssey
|
||||
{
|
||||
public class TravelBuffInfo
|
||||
{
|
||||
public string name = "";
|
||||
public string desc = "";
|
||||
|
||||
public TravelBuffInfo(string name_a = "", string desc_a = "")
|
||||
{
|
||||
name = name_a;
|
||||
desc = desc_a;
|
||||
}
|
||||
}
|
||||
|
||||
public class TravelBuffSet
|
||||
{
|
||||
public SortedDictionary<int, TravelBuffInfo> advancedBuffs = new();
|
||||
public SortedDictionary<int, TravelBuffInfo> ultimateBuffs = new();
|
||||
public SortedDictionary<int, TravelBuffInfo> debuffs = new();
|
||||
public SortedDictionary<int, TravelBuffInfo> unlocks = new();
|
||||
public SortedDictionary<int, TravelBuffInfo> investmentBuffs = new();
|
||||
private Dictionary<string, SortedDictionary<int, TravelBuffInfo>> _travelBuffSets = [];
|
||||
|
||||
public TravelBuffSet()
|
||||
{
|
||||
advancedBuffs = new();
|
||||
ultimateBuffs = new();
|
||||
debuffs = new();
|
||||
unlocks = new();
|
||||
investmentBuffs = new();
|
||||
|
||||
_travelBuffSets = new()
|
||||
{
|
||||
{ "advancedBuffs", advancedBuffs },
|
||||
{ "ultimateBuffs", ultimateBuffs },
|
||||
{ "debuffs", debuffs },
|
||||
{ "unlocks", unlocks },
|
||||
{ "investmentBuffs", investmentBuffs }
|
||||
};
|
||||
}
|
||||
|
||||
public SortedDictionary<int, TravelBuffInfo> TryGet(string name)
|
||||
{
|
||||
switch(name)
|
||||
{
|
||||
case "advancedBuffs":
|
||||
return advancedBuffs;
|
||||
case "ultimateBuffs":
|
||||
return ultimateBuffs;
|
||||
case "debuffs":
|
||||
return debuffs;
|
||||
case "unlocks":
|
||||
return unlocks;
|
||||
case "investmentBuffs":
|
||||
return investmentBuffs;
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public IEnumerator<ValueTuple<string, SortedDictionary<int, TravelBuffInfo>>> GetEnumerator()
|
||||
{
|
||||
foreach(var item in _travelBuffSets)
|
||||
{
|
||||
yield return new(item.Key, item.Value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[HarmonyPatch(typeof(TravelMgr))]
|
||||
public static class TravelMgr_Patch
|
||||
{
|
||||
public static readonly Dictionary<string, SortedDictionary<int, string>> templateTravelBuffs = new()
|
||||
{
|
||||
{ "advancedBuffs", new SortedDictionary<int, string>() },
|
||||
{ "ultimateBuffs", new SortedDictionary<int, string>() },
|
||||
{ "debuffs", new SortedDictionary<int, string>() },
|
||||
{ "unlocks", new SortedDictionary<int, string>() },
|
||||
{ "investmentBuffs", new SortedDictionary<int, string>() }
|
||||
};
|
||||
public static readonly TravelBuffSet templateTravelBuffs = new();
|
||||
|
||||
public static Dictionary<string, SortedDictionary<int, string>> dumpedTravelBuffs = new()
|
||||
{
|
||||
{ "advancedBuffs", new SortedDictionary<int, string>() },
|
||||
{ "ultimateBuffs", new SortedDictionary<int, string>() },
|
||||
{ "debuffs", new SortedDictionary<int, string>() },
|
||||
{ "unlocks", new SortedDictionary<int, string>() },
|
||||
{ "investmentBuffs", new SortedDictionary<int, string>() }
|
||||
};
|
||||
public static TravelBuffSet dumpedTravelBuffs = new();
|
||||
|
||||
public static Dictionary<string, SortedDictionary<int, string>> translatedTravelBuffs = new()
|
||||
{
|
||||
{ "advancedBuffs", new SortedDictionary<int, string>() },
|
||||
{ "ultimateBuffs", new SortedDictionary<int, string>() },
|
||||
{ "debuffs", new SortedDictionary<int, string>() },
|
||||
{ "unlocks", new SortedDictionary<int, string>() },
|
||||
{ "investmentBuffs", new SortedDictionary<int, string>() }
|
||||
};
|
||||
public static TravelBuffSet translatedTravelBuffs = new();
|
||||
|
||||
public static Dictionary<string, string> travelBuffString = new()
|
||||
{
|
||||
|
|
@ -79,54 +125,47 @@ namespace PvZ_Fusion_Translator.Patches.Modes.Odyssey
|
|||
public static void DumpTravelBuffs()
|
||||
{
|
||||
TravelMgr.Instance.GetPlantBuffUnlockCount(PlantType.DoomGatling);
|
||||
dumpedTravelBuffs = new(templateTravelBuffs);
|
||||
|
||||
dumpedTravelBuffs = new();
|
||||
travelBuffString.Clear();
|
||||
|
||||
foreach (var pair in TravelDictionary.advancedBuffsText)
|
||||
{
|
||||
Utils.TryAdd(dumpedTravelBuffs["advancedBuffs"], (int)pair.Key, pair.Value);
|
||||
Utils.TryAdd(dumpedTravelBuffs.advancedBuffs, (int)pair.Key, new TravelBuffInfo("", pair.Value));
|
||||
Utils.TryAdd(travelBuffString, pair.Value, pair.Value);
|
||||
}
|
||||
|
||||
foreach (var pair in TravelDictionary.ultimateBuffsText)
|
||||
{
|
||||
Utils.TryAdd(dumpedTravelBuffs["ultimateBuffs"], (int)pair.Key, pair.Value);
|
||||
Utils.TryAdd(dumpedTravelBuffs.ultimateBuffs, (int)pair.Key, new TravelBuffInfo("", pair.Value));
|
||||
Utils.TryAdd(travelBuffString, pair.Value, pair.Value);
|
||||
}
|
||||
|
||||
foreach (var pair in TravelDictionary.debuffData)
|
||||
{
|
||||
Utils.TryAdd(dumpedTravelBuffs["debuffs"], (int)pair.Key, pair.Value.Item1);
|
||||
Utils.TryAdd(dumpedTravelBuffs.debuffs, (int)pair.Key, new TravelBuffInfo("", pair.Value.Item1));
|
||||
Utils.TryAdd(travelBuffString, pair.Value.Item1, pair.Value.Item1);
|
||||
}
|
||||
|
||||
foreach (var pair in TravelDictionary.unlocksText)
|
||||
{
|
||||
Utils.TryAdd(dumpedTravelBuffs["unlocks"], (int)pair.Key, pair.Value);
|
||||
Utils.TryAdd(dumpedTravelBuffs.unlocks, (int)pair.Key, new TravelBuffInfo("", pair.Value));
|
||||
Utils.TryAdd(travelBuffString, pair.Value, pair.Value);
|
||||
}
|
||||
|
||||
foreach (var pair in TravelMgr.InvestBuffsData)
|
||||
{
|
||||
Utils.TryAdd(dumpedTravelBuffs["investmentBuffs"], (int)pair.Key, pair.Value.GetDescription());
|
||||
Utils.TryAdd(dumpedTravelBuffs.investmentBuffs, (int)pair.Key, new TravelBuffInfo("", pair.Value.GetDescription()));
|
||||
Utils.TryAdd(travelBuffString, pair.Value.GetDescription(), pair.Value.GetDescription());
|
||||
}
|
||||
|
||||
File.WriteAllText(Path.Combine(GetAssetDir(AssetType.Dumps), "travel_buffs.json"), JsonSerializer.Serialize(dumpedTravelBuffs, new JsonSerializerOptions
|
||||
{
|
||||
WriteIndented = true,
|
||||
Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping
|
||||
}));
|
||||
File.WriteAllText(Path.Combine(GetAssetDir(AssetType.Dumps), "travel_buffs.json"), SerializeWithIndentation(dumpedTravelBuffs));
|
||||
|
||||
string translatedTravelBuffsPath = Path.Combine(GetAssetDir(AssetType.Strings, Utils.Language), "travel_buffs.json");
|
||||
|
||||
if (!File.Exists(translatedTravelBuffsPath))
|
||||
{
|
||||
File.WriteAllText(translatedTravelBuffsPath, JsonSerializer.Serialize(dumpedTravelBuffs, new JsonSerializerOptions
|
||||
{
|
||||
WriteIndented = true,
|
||||
Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping
|
||||
}));
|
||||
File.WriteAllText(translatedTravelBuffsPath, SerializeWithIndentation(dumpedTravelBuffs));
|
||||
translatedTravelBuffs = dumpedTravelBuffs;
|
||||
}
|
||||
}
|
||||
|
|
@ -138,30 +177,30 @@ namespace PvZ_Fusion_Translator.Patches.Modes.Odyssey
|
|||
|
||||
DumpTravelBuffs();
|
||||
|
||||
Dictionary<string, SortedDictionary<int, string>> travelBuffs = JsonSerializer.Deserialize<Dictionary<string, SortedDictionary<int, string>>>(travelBuffsContent);
|
||||
TravelBuffSet travelBuffs = Newtonsoft.Json.JsonConvert.DeserializeObject<TravelBuffSet>(travelBuffsContent);
|
||||
translatedTravelBuffs = travelBuffs;
|
||||
travelBuffString.Clear();
|
||||
|
||||
foreach(var i in travelBuffs)
|
||||
{
|
||||
var originalBuffSet = dumpedTravelBuffs[i.Key];
|
||||
var originalBuffSet = dumpedTravelBuffs.TryGet(i.Item1);
|
||||
foreach(var j in originalBuffSet)
|
||||
{
|
||||
string originalBuff = j.Value;
|
||||
var translatedBuffSet = travelBuffs[i.Key];
|
||||
TravelBuffInfo originalBuff = j.Value;
|
||||
var translatedBuffSet = travelBuffs.TryGet(i.Item1);
|
||||
|
||||
if (j.Value == originalBuff)
|
||||
if (j.Value.desc == originalBuff.desc)
|
||||
{
|
||||
if (translatedBuffSet.ContainsKey(j.Key))
|
||||
{
|
||||
Utils.TryAdd(travelBuffString, originalBuff, translatedBuffSet[j.Key]);
|
||||
Utils.TryAdd(travelBuffString, originalBuff.desc, translatedBuffSet[j.Key].desc);
|
||||
}
|
||||
}
|
||||
else if(j.Value == RemoveBuffName(originalBuff))
|
||||
else if(j.Value.desc == RemoveBuffName(originalBuff.desc))
|
||||
{
|
||||
if (translatedBuffSet.ContainsKey(j.Key))
|
||||
{
|
||||
Utils.TryAdd(travelBuffString, originalBuff, translatedBuffSet[j.Key]);
|
||||
Utils.TryAdd(travelBuffString, originalBuff.desc, translatedBuffSet[j.Key].desc);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -185,14 +224,14 @@ namespace PvZ_Fusion_Translator.Patches.Modes.Odyssey
|
|||
|
||||
foreach (var i in dumpedTravelBuffs)
|
||||
{
|
||||
foreach (var j in dumpedTravelBuffs[i.Key])
|
||||
foreach (var j in dumpedTravelBuffs.TryGet(i.Item1))
|
||||
{
|
||||
if (j.Value == originalText || j.Value == RemoveBuffName(originalText))
|
||||
if (j.Value.desc == originalText || j.Value.desc == RemoveBuffName(originalText))
|
||||
{
|
||||
var translatedBuffSet = translatedTravelBuffs[i.Key];
|
||||
var translatedBuffSet = translatedTravelBuffs.TryGet(i.Item1);
|
||||
if (translatedBuffSet.ContainsKey(j.Key))
|
||||
{
|
||||
res = translatedBuffSet[j.Key];
|
||||
res = translatedBuffSet[j.Key].desc;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
@ -215,16 +254,53 @@ namespace PvZ_Fusion_Translator.Patches.Modes.Odyssey
|
|||
return res;
|
||||
}
|
||||
|
||||
public static ValueTuple<string, int, string> FindBuffData(string buffText)
|
||||
public static Dictionary<string, string> modifierNameDict = new Dictionary<string, string>()
|
||||
{
|
||||
ValueTuple<string, int, string> res = new();
|
||||
{ "advancedBuffs", "COMMON_MODIFIER_TAG" },
|
||||
{ "ultimateBuffs", "EPIC_MODIFIER_TAG" },
|
||||
{ "debuffs", "ZOMBIE_MODIFIER_TAG" },
|
||||
{ "unlocks", "UNLOCK_MODIFIER_TAG" },
|
||||
{ "investmentBuffs", "INVEST_MODIFIER_TAG" }
|
||||
};
|
||||
|
||||
public static Dictionary<string, string> fallbackNameDict = new Dictionary<string, string>()
|
||||
{
|
||||
{ "COMMON_MODIFIER_TAG", "Common Modifier" },
|
||||
{ "EPIC_MODIFIER_TAG", "Epic Modifier" },
|
||||
{ "ZOMBIE_MODIFIER_TAG", "Zombie Modifier" },
|
||||
{ "UNLOCK_MODIFIER_TAG", "Unlock Modifier" },
|
||||
{ "INVEST_MODIFIER_TAG", "Investment Modifier" }
|
||||
};
|
||||
|
||||
public static string TranslateNameTag(string originalText)
|
||||
{
|
||||
string res = originalText;
|
||||
|
||||
string nameTag = modifierNameDict[originalText];
|
||||
res = StringStore.translationString.ContainsKey(nameTag) ? StringStore.TranslateText(nameTag) : fallbackNameDict[nameTag];
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
public static ValueTuple<string, int, string, bool> FindBuffData(string buffText)
|
||||
{
|
||||
ValueTuple<string, int, string, bool> res = new();
|
||||
foreach(var pair1 in translatedTravelBuffs)
|
||||
{
|
||||
foreach(var pair2 in pair1.Value)
|
||||
foreach(var pair2 in pair1.Item2)
|
||||
{
|
||||
if(buffText == pair2.Value)
|
||||
if(buffText == pair2.Value.desc)
|
||||
{
|
||||
res.Item1 = pair1.Key;
|
||||
if(pair2.Value.name != "")
|
||||
{
|
||||
res.Item1 = pair2.Value.name;
|
||||
res.Item4 = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
res.Item1 = TranslateNameTag(pair1.Item1);
|
||||
res.Item4 = false;
|
||||
}
|
||||
res.Item2 = pair2.Key;
|
||||
}
|
||||
}
|
||||
|
|
@ -232,11 +308,20 @@ namespace PvZ_Fusion_Translator.Patches.Modes.Odyssey
|
|||
|
||||
foreach(var pair1 in dumpedTravelBuffs)
|
||||
{
|
||||
foreach(var pair2 in pair1.Value)
|
||||
foreach(var pair2 in pair1.Item2)
|
||||
{
|
||||
if(buffText == pair2.Value)
|
||||
if(buffText == pair2.Value.desc)
|
||||
{
|
||||
res.Item1 = pair1.Key;
|
||||
if(pair2.Value.name != "")
|
||||
{
|
||||
res.Item1 = pair2.Value.name;
|
||||
res.Item4 = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
res.Item1 = TranslateNameTag(pair1.Item1);
|
||||
res.Item4 = false;
|
||||
}
|
||||
res.Item2 = pair2.Key;
|
||||
}
|
||||
}
|
||||
|
|
@ -255,5 +340,28 @@ namespace PvZ_Fusion_Translator.Patches.Modes.Odyssey
|
|||
|
||||
return res;
|
||||
}
|
||||
|
||||
public static string fallbackFBuffStr = "{0}: {1}";
|
||||
|
||||
public static string AddBuffName(string buffText)
|
||||
{
|
||||
string translatedBuff = buffText;
|
||||
if(Utils.CheckForUntranslatedText(buffText))
|
||||
{
|
||||
if(travelBuffString.ContainsKey(buffText))
|
||||
{
|
||||
translatedBuff = travelBuffString[buffText];
|
||||
}
|
||||
}
|
||||
var buffData = FindBuffData(translatedBuff);
|
||||
if(buffData.Item1 != null && buffData.Item3 != null)
|
||||
{
|
||||
string buffFStr = StringStore.translationStringRegex.ContainsKey("BUFF_NAME_FORMAT") ? StringStore.translationStringRegex["BUFF_NAME_FORMAT"] : "{0}: {1}";
|
||||
string fBuffDesc = string.Format(buffFStr, buffData.Item1, buffData.Item3);
|
||||
translatedBuff = fBuffDesc;
|
||||
}
|
||||
|
||||
return translatedBuff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,11 +27,11 @@ namespace PvZ_Fusion_Translator.Patches.Modes.Odyssey
|
|||
string startText = match.Groups[1].Value;
|
||||
string affinityText = match.Groups[3].Value;
|
||||
string affinities = TranslateAffinities(affinityText);
|
||||
__instance.introduce.text = startText + affinities;
|
||||
__instance.introduce.text = AddBuffName(startText) + affinities;
|
||||
}
|
||||
else
|
||||
{
|
||||
__instance.introduce.text = originalText;
|
||||
__instance.introduce.text = AddBuffName(originalText);
|
||||
}
|
||||
|
||||
foreach (var text in __instance.buttonText)
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
<LangVersion>latest</LangVersion>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Configurations>Debug;DebugEnglish;ReleaseMulti;ReleaseEnglish;DebugTesting;ReleaseOther;DebugObfuscate;ReleaseObfuscate</Configurations>
|
||||
<GamePath>C:\Users\rainb\Desktop\PC_PVZ-Fusion_3.7</GamePath>
|
||||
<GamePath>C:\Users\rainb\Desktop\PC_PVZ-Fusion_3.8</GamePath>
|
||||
<Platforms>AnyCPU;ARM64;x64</Platforms>
|
||||
</PropertyGroup>
|
||||
|
||||
|
|
@ -405,6 +405,7 @@
|
|||
<Compile Include="ModFeatures.cs" />
|
||||
<Compile Include="AssetStore\AudioStore.cs" />
|
||||
<Compile Include="Patches\BaseTextObjects\TMP_Dropdown_Patch.cs" />
|
||||
<Compile Include="Patches\GameObjects\GardenStoreMenu_Patch.cs" />
|
||||
<Compile Include="Patches\GameObjects\AlmanacCardUI_Patch.cs" />
|
||||
<Compile Include="Patches\GameObjects\AlmanacBuffMenu_Patch.cs" />
|
||||
<Compile Include="Patches\GameObjects\AlmanacSelectMenu_Patch.cs" />
|
||||
|
|
@ -422,7 +423,9 @@
|
|||
<Compile Include="Patches\GameObjects\ButtonObjects\GodShootingLevelButton_Patch.cs" />
|
||||
<Compile Include="Patches\GameObjects\PlantDataMenu_Patch.cs" />
|
||||
<Compile Include="Patches\GameObjects\ReNameMenu_Patch.cs" />
|
||||
<Compile Include="Patches\GameObjects\PlantCardPackageBuilder_Patch.cs" />
|
||||
<Compile Include="Patches\GameObjects\WarningMenu_Patch.cs" />
|
||||
<Compile Include="Patches\Managers\PVPScareyPot_Patch.cs" />
|
||||
<Compile Include="Patches\Modes\Abyss\AbyssBuffMenu_Patch.cs" />
|
||||
<Compile Include="Patches\Modes\Odyssey\MultipleChoiceMenu_Patch.cs" />
|
||||
<Compile Include="Patches\Modes\Odyssey\ShootingManager_Patch.cs" />
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue