public static bool Prefix(CombatHUDMechwarriorTray __instance) { Logger.M.TWL(0, "CombatHUDMechwarriorTray.SetTrayState"); try { /*for (int index = 0; index < __instance.PortraitHolders.Length; ++index) { * Vector3[] corners = new Vector3[4]; * RectTransform prectt = __instance.PortraitHolders[index].GetComponent<RectTransform>(); * prectt.GetLocalCorners(corners); * Logger.M.WL(1, "portrait "+ prectt.name+ ":" + __instance.PortraitHolders[index].GetInstanceID() + ". index:" + index + " pos:" +prectt.localPosition+" corners 0:" + corners[0] + " 1:" + corners[1] + " 2:" + corners[2] + " 3:" + corners[3]); * }*/ if (__instance.PortraitHolders.Length <= 4) { return(true); } CombatHUDMoraleBar combatHUDMoraleBar = (CombatHUDMoraleBar)typeof(CombatHUDMechwarriorTray).GetProperty("moraleDisplay", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(__instance, new object[0] { }); RectTransform rtr = combatHUDMoraleBar.gameObject.GetComponent <RectTransform>(); RectTransform prt = __instance.PortraitHolders[0].GetComponent <RectTransform>(); Vector3[] pcorners = new Vector3[4]; prt.GetLocalCorners(pcorners); Logger.M.WL(0, "portrait corners: bl:" + pcorners[0] + " tl:" + pcorners[1] + " tr:" + pcorners[2] + " br:" + pcorners[3]); Logger.M.WL(0, "moraleDisplay local pos:" + rtr.localPosition); Vector3 pos = rtr.localPosition; pos.x = pcorners[0].x + prt.localPosition.x - 10f; rtr.localPosition = pos; Logger.M.WL(0, "moraleDisplay local pos:" + rtr.localPosition); Logger.M.WL(0, "CombatHUDMechwarriorTray.SetTrayState"); combatHUDMoraleBar.gameObject.SetActive(true); } catch (Exception e) { Logger.M.TWL(0, e.ToString()); } return(true); }
public static void Postfix(CombatHUDMechwarriorTray __instance, CombatGameState Combat, CombatHUD HUD) { Logger.M.TWL(0, "CombatHUDMechwarriorTray.Init postfix"); try { for (int index = 0; index < __instance.PortraitHolders.Length; ++index) { Vector3[] corners = new Vector3[4]; __instance.PortraitHolders[index].GetComponent <RectTransform>().GetWorldCorners(corners); Logger.M.WL(1, "portrait " + __instance.PortraitHolders[index].GetInstanceID() + ". index:" + index + " corners 0:" + corners[0] + " 1:" + corners[1] + " 2:" + corners[2] + " 3:" + corners[3]); foreach (Component component in __instance.PortraitHolders[index].GetComponentsInChildren <Component>()) { Logger.M.WL(3, component.name + ":" + component.GetType() + ":" + component.GetInstanceID()); } } for (int index = 0; index < __instance.portraitTweens.Length; ++index) { Vector3[] corners = new Vector3[4]; __instance.portraitTweens[index].gameObject.GetComponent <RectTransform>().GetWorldCorners(corners); Logger.M.WL(1, "tween " + __instance.portraitTweens[index].gameObject.GetInstanceID() + ". index:" + index + " corners 0:" + corners[0] + " 1:" + corners[1] + " 2:" + corners[2] + " 3:" + corners[3]); foreach (Component component in __instance.portraitTweens[index].gameObject.GetComponentsInChildren <Component>()) { Logger.M.WL(3, component.name + ":" + component.GetType() + ":" + component.GetInstanceID()); } } Logger.M.WL(0, "Moralebar diactivate"); CombatHUDMoraleBar combatHUDMoraleBar = (CombatHUDMoraleBar)typeof(CombatHUDMechwarriorTray).GetProperty("moraleDisplay", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(__instance, new object[0] { }); combatHUDMoraleBar.gameObject.SetActive(false); } catch (Exception e) { Logger.M.TWL(0, e.ToString(), true); } }