Esempio n. 1
0
        private static void RespecAndRefresh(SGBarracksMWDetailPanel __instance, Pilot pilot)
        {
            Logger.Log($"===============================================================");
            Logger.Log($"Before:\t{pilot.pilotDef.ExperienceSpent}, {pilot.pilotDef.ExperienceUnspent}");
            Logger.Log($"Skill:\t{pilot.pilotDef.SkillGunnery}, {pilot.pilotDef.SkillPiloting}, {pilot.pilotDef.SkillGuts}, {pilot.pilotDef.SkillTactics}");
            Logger.Log($"Base:\t{pilot.pilotDef.BaseGunnery}, {pilot.pilotDef.BasePiloting}, {pilot.pilotDef.BaseGuts}, {pilot.pilotDef.BaseTactics}");
            Logger.Log($"Bonus:\t{pilot.pilotDef.BonusGunnery}, {pilot.pilotDef.BonusPiloting}, {pilot.pilotDef.BonusGuts}, {pilot.pilotDef.BonusTactics}");

            SimGameState sim  = UnityGameInstance.BattleTechGame.Simulation;
            int          cost = GetRespecCost(sim, pilot);
            int          days = GetRespecInjuryDays(sim, pilot) + sim.GetPilotTimeoutTimeRemaining(pilot);

            RespecPilot(pilot);
            sim.AddFunds(-cost);

            // currently bugged: AddInjuryDays(sim, pilot, days);
            pilot.pilotDef.SetTimeoutTime(days);
            pilot.pilotDef.PilotTags.Add("pilot_lightinjury");
            sim.RefreshInjuries();

            pilot.pilotDef.PilotTags.Add("HasRetrained");
            __instance.DisplayPilot(pilot);
            __instance.ForceRefreshImmediate();
            sim.RoomManager.RefreshDisplay();
            Logger.Log($"===============================================================");
            Logger.Log($"cost: {cost}, days: {days}");
            Logger.Log($"===============================================================");
            Logger.Log($"After:\t{pilot.pilotDef.ExperienceSpent}, {pilot.pilotDef.ExperienceUnspent}");
            Logger.Log($"Skill:\t{pilot.pilotDef.SkillGunnery}, {pilot.pilotDef.SkillPiloting}, {pilot.pilotDef.SkillGuts}, {pilot.pilotDef.SkillTactics}");
            Logger.Log($"Base:\t{pilot.pilotDef.BaseGunnery}, {pilot.pilotDef.BasePiloting}, {pilot.pilotDef.BaseGuts}, {pilot.pilotDef.BaseTactics}");
            Logger.Log($"Bonus:\t{pilot.pilotDef.BonusGunnery}, {pilot.pilotDef.BonusPiloting}, {pilot.pilotDef.BonusGuts}, {pilot.pilotDef.BonusTactics}");

            //invoking private method:  sim.RespecPilot(pilot); // bugged method!!!
            //typeof(ToHit).GetMethod("RespecPilot", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).Invoke(sim, new object[] { pilot });
            //pilot.AddExperience(0, "respec", experienceSpent);
        }