private static void Verb_ShootOneUse_SelfConsumePostfix(Verb_ShootOneUse __instance)
 {
     if (__instance.HediffSource != null)
     {
         __instance.HediffSource.pawn.health.hediffSet.hediffs.Remove(__instance.HediffSource);
     }
 }
Esempio n. 2
0
        private static void SelfConsume(Verb_ShootOneUse __instance)
        {
            if (SimpleSidearms.SingleshotAutoSwitch == true)
            {
                if (__instance.caster is Pawn)
                {
                    Pawn pawn = (__instance.caster as Pawn);
                    if (pawn.inventory.innerContainer.Any((Thing x) => x.def.defName.Equals(__instance.ownerEquipment.def.defName)))
                    {
                        Thing replacement = pawn.inventory.innerContainer.First((Thing x) => x.def.defName.Equals(__instance.ownerEquipment.def.defName));
                        WeaponAssingment.weaponSwapSpecific(pawn, replacement, false, MiscUtils.shouldDrop(DroppingModeEnum.UsedUp), false);
                    }

                    else if (pawn.inventory.innerContainer.Any((Thing x) => x.def.IsRangedWeapon))
                    {
                        WeaponAssingment.tryRangedWeaponSwap(pawn, MiscUtils.shouldDrop(DroppingModeEnum.UsedUp), pawn.IsColonistPlayerControlled);
                    }

                    else if (pawn.inventory.innerContainer.Any((Thing x) => x.def.IsMeleeWeapon))
                    {
                        WeaponAssingment.tryMeleeWeaponSwap(pawn, MiscUtils.shouldDrop(DroppingModeEnum.UsedUp), true, pawn.IsColonistPlayerControlled);
                    }
                }
            }
        }
Esempio n. 3
0
 static void Prefix(Verb_ShootOneUse __instance)
 {
     if (__instance.caster is Pawn pawn &&
         WorldComp.TryGetAssignedWeapons(pawn, out AssignedWeaponContainer c))
     {
         c.Remove(__instance.EquipmentSource);
     }
 }
 public static void SelfConsume(Verb_ShootOneUse __instance)
 {
     if (__instance.caster is Pawn)
     {
         Pawn pawn = (__instance.caster as Pawn);
         ThingDefStuffDefPair weapon = __instance.EquipmentSource.toThingDefStuffDefPair();
         bool anotherFound           = WeaponAssingment.equipSpecificWeaponTypeFromInventory(pawn, weapon, false, false);
         if (!anotherFound)
         {
             WeaponAssingment.equipBestWeaponFromInventoryByPreference(pawn, DroppingModeEnum.UsedUp);
         }
     }
 }