private static void Postfix(PlayerStruggle __instance, ref BearHuntReduxSettings __result)
        {
            if (__result == null)
            {
                BearHuntAiRedux bearHuntAiRedux = __instance.m_PartnerBaseAi.m_BearHuntAiRedux;
                if (!bearHuntAiRedux)
                {
                    bearHuntAiRedux = new BearHuntAiRedux();
                }
                BearEncounter currentBearEncounterOwner = bearHuntAiRedux.GetCurrentBearEncounterOwner();
                if (!currentBearEncounterOwner)
                {
                    currentBearEncounterOwner = new BearEncounter();
                }

                var settings = nonStroyBearspearSettings.Instance;

                currentBearEncounterOwner.m_BearHuntReduxSettings = (BearHuntReduxSettings)BearHuntReduxSettings.CreateInstance("BearHuntReduxSettings");
                currentBearEncounterOwner.m_BearHuntReduxSettings.m_StruggleTapStrengthScale                  = GameManager.GetCustomMode().m_StruggleTapStrengthScale *settings.TapstrengthScale;
                currentBearEncounterOwner.m_BearHuntReduxSettings.m_StrugglePlayerDamageReceivedScale         = GameManager.GetCustomMode().m_StrugglePlayerDamageReceivedScale *settings.DamageReceivedScale;
                currentBearEncounterOwner.m_BearHuntReduxSettings.m_StrugglePlayerDamageReceivedIntervalScale = GameManager.GetCustomMode().m_StrugglePlayerDamageReceivedIntervalScale *settings.DamageReceivedIntervalScale;
                currentBearEncounterOwner.m_BearHuntReduxSettings.m_StrugglePlayerClothingDamageScale         = GameManager.GetCustomMode().m_StrugglePlayerClothingDamageScale *settings.ClothingDamageScale;


                __result = currentBearEncounterOwner.m_BearHuntReduxSettings;
            }
        }
Beispiel #2
0
 public static void Postfix(PlayerStruggle __instance)
 {
     if (__instance.m_PartnerBaseAi.m_AiWolf)
     {
         if (Utils.RollChance(chanceToKillWolfAfterStruggle))
         {
             __instance.m_PartnerBaseAi.EnterDead();
         }
     }
 }
Beispiel #3
0
 private static void Postfix(PlayerStruggle __instance)
 {
     if (__instance.m_PartnerBaseAi.m_AiWolf)
     {
         if (Utils.RollChance(Settings.options.chanceToKillWolfAfterStruggle))
         {
             __instance.m_PartnerBaseAi.EnterDead();
         }
     }
 }
Beispiel #4
0
        public static void Postfix(PlayerStruggle __instance)
        {
            if (wolfBleedoutMinutes >= 0f)
            {
                __instance.m_WolfBleedoutMinutes = wolfBleedoutMinutes;
            }

            if (tapIncrement >= 0f)
            {
                __instance.m_TapIncrement = tapIncrement;
            }
        }
Beispiel #5
0
            private static void Postfix(PlayerStruggle __instance)
            {
                if (Settings.options.wolfBleedoutMinutes >= 0f)
                {
                    __instance.m_WolfBleedoutMinutes = Settings.options.wolfBleedoutMinutes;
                }

                if (Settings.options.tapIncrement >= 0f)
                {
                    __instance.m_TapIncrement = Settings.options.tapIncrement;
                }
            }
        public static bool Prefix(PlayerStruggle __instance)
        {
            var preferredStruggleWeapon = Implementation.GetPreferredStruggleWeapon();

            if (preferredStruggleWeapon == null)
            {
                return(true);
            }

            __instance.OnWeaponPicked(preferredStruggleWeapon);

            AccessTools.Method(__instance.GetType(), "PlayPickerExitAudio").Invoke(__instance, null);
            AccessTools.Method(__instance.GetType(), "DoChangeWeapon").Invoke(__instance, null);
            return(false);
        }