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; } } } }