예제 #1
0
 public static void GainEquipmentAbility(this Pawn_AbilityTracker tracker, EquipmentAbilityDef def, ThingWithComps thing)
 {
     if (!tracker.abilities.Any((Ability a) => a.def == def))
     {
         EquipmentAbility ab = Activator.CreateInstance(def.abilityClass, new object[]
         {
             tracker.pawn,
             def
         }) as EquipmentAbility;
         ab.sourceEquipment = thing;
         tracker.abilities.Add(ab);
     }
 }
 public static bool Prefix(ref Verb __instance, ref ThingWithComps __result)
 {
     if (__instance.GetType() == typeof(Verb_ShootEquipment))
     {
         //    Log.Message(__instance.DirectOwner.GetType().Name);
         Verb_ShootEquipment verb             = (Verb_ShootEquipment)__instance;
         EquipmentAbility    equipmentAbility = verb.ability as EquipmentAbility;
         if (equipmentAbility != null)
         {
             //    Log.Message(equipmentAbility.def.LabelCap);
             if (equipmentAbility.sourceEquipment != null)
             {
                 //    Log.Message(equipmentAbility.sourceEquipment.def.LabelCap);
             }
             __result = equipmentAbility.sourceEquipment;
         }
     }
     return(true);
 }