PVZFusionTranslation/MelonLoader/Patches/Modes/Odyssey/TravelLookBuff_Patch.cs
SillyStar-Github f2e4e78750 3.8 code
2026-07-15 17:17:28 -04:00

70 lines
No EOL
2.8 KiB
C#

using HarmonyLib;
using Il2Cpp;
using Il2CppTMPro;
using PvZ_Fusion_Translator.AssetStore;
using static PvZ_Fusion_Translator.Patches.Modes.Odyssey.TravelMgr_Patch;
using UnityEngine;
using MelonLoader;
namespace PvZ_Fusion_Translator.Patches.Modes.Odyssey
{
[HarmonyPatch(typeof(TravelLookBuff))]
public static class TravelLookBuff_Patch
{
[HarmonyPatch(nameof(TravelLookBuff.Clear))]
[HarmonyPostfix]
public static void Post_Clear(TravelLookBuff __instance)
{
__instance.introduce.text = StringStore.TranslateText("无");
__instance.set = false;
foreach (TextMeshProUGUI text in __instance.transform.FindChild("Images").FindChild("Button").GetComponentsInChildren<TextMeshProUGUI>())
{
text.text = StringStore.TranslateText(text.text);
}
}
[HarmonyPatch(nameof(TravelLookBuff.OnMouseUpAsButton))]
[HarmonyPostfix]
public static void Post_OnMouseUpAsButton(TravelLookBuff __instance)
{
foreach (TextMeshProUGUI text in __instance.transform.FindChild("Images").FindChild("Button").GetComponentsInChildren<TextMeshProUGUI>())
{
text.text = StringStore.TranslateText(text.text);
}
}
[HarmonyPatch(nameof(TravelLookBuff.SetBuff))]
[HarmonyPostfix]
public static void Post_SetBuff(TravelLookBuff __instance)
{
/*SortedDictionary<int, string> buffSet = translatedTravelBuffs[buffLinks[__instance.buffType]];
string buffText = buffSet.ContainsKey(__instance.buffIndex) ? buffSet[__instance.buffIndex] : StringStore.TranslateText(__instance.introduce.text);
__instance.introduce.text = buffText;*/
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);
}
}
foreach (TextMeshProUGUI text in __instance.transform.FindChild("Images").FindChild("Button").GetComponentsInChildren<TextMeshProUGUI>())
{
text.text = StringStore.TranslateText(text.text);
}
}
}
}