public static void Postfix(SGBarracksWidget __instance, string button, SGBarracksMWDetailPanel ___mechWarriorDetails) { if (button != "Close") { return; } var sim = UnityGameInstance.BattleTechGame.Simulation; if (sim == null) { return; } var curPilot = Traverse.Create(___mechWarriorDetails).Field("curPilot").GetValue <Pilot>(); if (String.IsNullOrEmpty(curPilot.GUID)) { return; } if (!ModState.PilotCurrentFreeXP.ContainsKey(curPilot.GUID)) { ModState.PilotCurrentFreeXP.Add(curPilot.GUID, curPilot.UnspentXP); Mod.Log.Info?.Write( $"CHEATDETECTION: {curPilot.Description.Id}: Added key {curPilot.GUID} to PilotCurrentXP with UnspentXP {curPilot.UnspentXP} but should have been done already. At SGBarracksWidget.ReceiveButtonPress, Post."); } ModState.PilotCurrentFreeXP[curPilot.GUID] = curPilot.UnspentXP; Mod.Log.Info?.Write( $"CHEATDETECTION: {curPilot.Description.Id}: {curPilot.GUID} Free XP state was {ModState.PilotCurrentFreeXP[curPilot.GUID]} after changing to basePilot {curPilot.UnspentXP} At SGBarracksWidget.ReceiveButtonPress, Post."); }
public static void Postfix(SGBarracksWidget __instance, Pilot p) { try { if (p.StatCollection.ContainsStatistic("StressLevel")) { Logger.Info($"[SGBarracksWidget_OnPilotSelected_POSTFIX] ({p.Callsign}) StressLevel: {p.StatCollection.GetValue<int>("StressLevel")}"); } else { Logger.Info($"[SGBarracksWidget_OnPilotSelected_POSTFIX] ({p.Callsign}) Did not find StatCollection.StressLevel"); } if (p.StatCollection.ContainsStatistic("LastEjectionChance")) { Logger.Info($"[SGBarracksWidget_OnPilotSelected_POSTFIX] ({p.Callsign}) LastEjectionChance: {p.StatCollection.GetValue<int>("LastEjectionChance")}"); } else { Logger.Info($"[SGBarracksWidget_OnPilotSelected_POSTFIX] ({p.Callsign}) Did not find StatCollection.LastEjectionChance"); } } catch (Exception e) { Logger.Error(e); } }
public static void Postfix(SGBarracksRosterList __instance) { SGBarracksWidget b = Traverse.Create(__instance).Field("barracks").GetValue <SGBarracksWidget>(); ScrollRect sr = b?.gameObject?.GetComponentInChildren <ScrollRect>(false); if (sr != null) { Log($"setting barracks scroll {m_rosterScroll}"); sr.verticalNormalizedPosition = Mathf.Clamp(m_rosterScroll, 0f, 1f); } }
public static void Prefix(SGBarracksWidget __instance) { m_rosterScroll = 1f; ScrollRect sr = __instance?.gameObject?.GetComponentInChildren <ScrollRect>(false); if (sr != null) { m_rosterScroll = sr.verticalNormalizedPosition; Log($"saving barracks scroll {m_rosterScroll} name {sr.name}"); } }
public static bool Prefix(SGBarracksWidget __instance, SGBarracksRosterSlot slot) { var widget = __instance; bool newPilotClicked = widget.rosterList.SelectedSlot != slot; widget.rosterList.OnSlotSelected(slot); if (newPilotClicked) { if (modSettings.EnablePilotBarks) { widget.mechWarriorDetails.PlayPilotChosenVO(slot.Pilot); } } return(false); }