private static void Verb_ShootOneUse_SelfConsumePostfix(Verb_ShootOneUse __instance) { if (__instance.HediffSource != null) { __instance.HediffSource.pawn.health.hediffSet.hediffs.Remove(__instance.HediffSource); } }
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); } } } }
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); } } }