Esempio n. 1
0
 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;
                 }
             }
         }
     }
 }
Esempio n. 2
0
        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);
            }
        }