Пример #1
0
        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.");
        }
Пример #2
0
            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);
                }
            }
Пример #3
0
            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);
                }
            }
Пример #4
0
            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}");
                }
            }
Пример #5
0
            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);
            }