예제 #1
0
        static void Postfix(MechLabLocationWidget __instance, LocationLoadoutDef loadout)
        {
            LocationDef locationDef = ReflectionUtils.GetChassisLocationDef(__instance);

            __instance.currentArmor     = Math.Min(loadout.CurrentArmor, ArmorRules.MaxFrontArmor(locationDef, __instance.loadout, 0));
            __instance.currentRearArmor = Math.Min(loadout.CurrentRearArmor, ArmorRules.MaxRearArmor(locationDef, __instance.loadout, __instance.currentArmor));

            __instance.maxArmor     = ArmorRules.MaxFrontArmor(locationDef, __instance.loadout, __instance.currentRearArmor);
            __instance.maxRearArmor = ArmorRules.MaxRearArmor(locationDef, __instance.loadout, __instance.currentArmor);
            __instance.ModifyArmor(false, 0, false);
        }
예제 #2
0
        static bool Prefix(MechLabLocationWidget __instance)
        {
            int   mod   = Mathf.FloorToInt(__instance.currentRearArmor) % 5;
            float delta = Math.Min(__instance.currentRearArmor, mod == 0 ? UnityGameInstance.BattleTechGame.MechStatisticsConstants.ARMOR_PER_STEP : mod);

            if (delta > 0)
            {
                LocationDef locationDef = ReflectionUtils.GetChassisLocationDef(__instance);
                __instance.currentRearArmor -= delta;
                __instance.maxArmor          = ArmorRules.MaxFrontArmor(locationDef, __instance.loadout, __instance.currentRearArmor);
                __instance.ModifyArmor(true, 0, true);
            }
            return(false);
        }