private static bool Prefix(BearSpearItem __instance, BaseAi ___m_HitAi, ref float ___m_HitDamage, ref float ___m_HitBleedOutMinutes, LocalizedDamage ___m_LocalizedDamage, Vector3 ___m_HitPosition, Vector3 ___m_HitSourcePosition, GearItem ___m_GearItem)
        {
            var settings = nonStroyBearspearSettings.Instance;

            if (!___m_HitAi)
            {
                return(false);
            }
            if (GameManager.GetPlayerStruggleComponent().GetBearSpearStruggleOutcome() == BearSpearStruggleOutcome.Failed)
            {
                ___m_HitDamage          = ___m_HitDamage * settings.Damagefailed;
                ___m_HitBleedOutMinutes = ___m_HitDamage * settings.Bleedfailed;
            }
            else
            {
                ___m_HitDamage          = ___m_HitDamage * settings.DamageSuccess;
                ___m_HitBleedOutMinutes = ___m_HitDamage * settings.BleedSuccess;
            }
            if (___m_LocalizedDamage)
            {
                ___m_HitAi.SetupDamageForAnim(___m_HitPosition, ___m_HitSourcePosition, ___m_LocalizedDamage);
            }
            ___m_HitAi.ApplyDamage(___m_HitDamage, ___m_HitBleedOutMinutes, DamageSource.Player, string.Empty);
            if (___m_GearItem)
            {
                ___m_GearItem.DegradeOnUse();
            }
            if (___m_GearItem.IsWornOut())
            {
                AccessTools.Method(typeof(BearSpearItem), "Break").Invoke(__instance, null);
            }
            return(false);
        }
 private static void Postfix(BaseAi __instance)
 {
     if (!(bool)__instance.m_BearHuntAiRedux)
     {
         PlayerManager playerManagerComponent = GameManager.GetPlayerManagerComponent();
         if ((bool)playerManagerComponent.m_ItemInHands)
         {
             BearSpearItem bearSpearItem = playerManagerComponent.m_ItemInHands.m_BearSpearItem;
             if ((bool)bearSpearItem && bearSpearItem.IsRaised())
             {
                 bearSpearItem.UpdateCollision(__instance);
             }
         }
     }
 }