public static bool get_EquipmentSource_Verb_UseEquipment_Prefix(ref Verb __instance, ref ThingWithComps __result)
 {
     if (__instance.GetType() == typeof(Verb_UseEquipment))
     {
         Verb_UseEquipment verb      = (Verb_UseEquipment)__instance;
         ThingWithComps    withComps = null;
         if (verb.AbilityUserComp.AbilityData.TemporaryWeaponPowers.Contains(verb.Ability))
         {
             withComps = verb.CasterPawn.equipment.Primary;
         }
         if (verb.AbilityUserComp.AbilityData.TemporaryApparelPowers.Contains(verb.Ability))
         {
             List <Apparel> abilityApparel = new List <Apparel>();
             abilityApparel = verb.CasterPawn.apparel.WornApparel.FindAll(x => x.AllComps.Any(y => y.GetType() == typeof(AbilityUser.CompAbilityItem)));
             if (!abilityApparel.NullOrEmpty())
             {
                 withComps = abilityApparel.Find(x => x.AllComps.Any(y => y.GetType() == typeof(AbilityUser.CompAbilityItem) && ((AbilityUser.CompAbilityItem)y).Props.Abilities.Contains(verb.Ability.Def)));
             }
         }
         if (withComps != null)
         {
             __result = withComps;
             return(false);
         }
     }
     return(true);
 }
 public static void HighlightFieldRadiusAroundTarget_CustomExplosiveProjectile_Postfix(ref Verb_UseEquipment __instance, ref float __result)
 {
     if (__instance.Projectile != null)
     {
         if (__instance.Projectile.thingClass == typeof(Projectile_ExplosiveOG))
         {
             ThingDef_BulletExplosiveOG bulletExplosiveOG = (ThingDef_BulletExplosiveOG)__instance.Projectile;
             if (bulletExplosiveOG.explosionradius != 0)
             {
                 __result = bulletExplosiveOG.explosionradius;
             }
         }
     }
 }