예제 #1
0
 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);
 }
예제 #2
0
 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);
     }
 }