using HarmonyLib; using Il2Cpp; using Il2CppTMPro; using PvZ_Fusion_Translator.AssetStore; using static PvZ_Fusion_Translator.Patches.Managers.TravelMgr_Patch; using UnityEngine; namespace PvZ_Fusion_Translator.Patches.GameObjects { [HarmonyPatch(typeof(TravelLookBuff))] public static class TravelLookBuff_Patch { private static void TranslateTexts(TravelLookBuff __instance) { string buffText = translatedTravelBuffs[buffLinks[__instance.buffType]][__instance.buffIndex]; __instance.introduce.text = buffText; Transform transform = __instance.rectTransform.transform; var component1 = transform.GetChild(0).GetComponent(); var component2 = transform.GetChild(1).GetComponent(); if (component1 != null) component1.text = StringStore.TranslateText(component1.text); if (component2 != null) component2.text = StringStore.TranslateText(component2.text); } [HarmonyPatch(nameof(TravelLookBuff.SetBuff))] [HarmonyPostfix] private static void SetBuff(TravelLookBuff __instance) => TranslateTexts(__instance); [HarmonyPatch(nameof(TravelLookBuff.OnMouseUpAsButton))] [HarmonyPostfix] private static void OnMouseUpAsButton(TravelLookBuff __instance) => TranslateTexts(__instance); [HarmonyPatch(nameof(TravelLookBuff.Clear))] [HarmonyPostfix] private static void Clear(TravelLookBuff __instance) => TranslateTexts(__instance); [HarmonyPatch(nameof(TravelLookBuff.SetText), new Type[] { typeof(string) })] [HarmonyPostfix] private static void SetText_String(TravelLookBuff __instance) => TranslateTexts(__instance); [HarmonyPatch(nameof(TravelLookBuff.SetText), new Type[] { typeof(bool), typeof(int) })] [HarmonyPostfix] private static void SetText_Bool(TravelLookBuff __instance) => TranslateTexts(__instance); } }