public static void Postfix(Verb __instance, ref ThingWithComps __result) { if (__instance.EquipmentCompSource == null) { if (__instance.CasterIsPawn) { if (__instance.CasterPawn.apparel != null) { CompApparelVerbGiver apparelVerbGiver = __instance.DirectOwner as CompApparelVerbGiver; if (apparelVerbGiver != null) { __result = apparelVerbGiver.parent; } } } } }
public static void Postfix(Pawn_MeleeVerbs __instance, Pawn ___pawn, bool terrainTools, List <VerbEntry> __result) { List <Verb> verbsToAdd = new List <Verb>(); if (___pawn.apparel != null) { List <Apparel> wornApparel = ___pawn.apparel.WornApparel; for (int l = 0; l < wornApparel.Count; l++) { CompApparelVerbGiver comp2 = wornApparel[l].GetComp <CompApparelVerbGiver>(); if (comp2 == null) { continue; } List <Verb> allVerbs3 = comp2.AllVerbs; if (allVerbs3 == null) { continue; } for (int m = 0; m < allVerbs3.Count; m++) { if (IsUsableMeleeVerb(allVerbs3[m])) { verbsToAdd.Add(allVerbs3[m]); } } } foreach (Verb verb3 in verbsToAdd) { verb3.caster = ___pawn; __result.Add(new VerbEntry(verb3, ___pawn)); } } bool IsUsableMeleeVerb(Verb v) { if (v.IsStillUsableBy(___pawn)) { return(v.IsMeleeAttack); } return(false); } }