diff --git a/code/datums/uplink_items/uplink_traitor.dm b/code/datums/uplink_items/uplink_traitor.dm index 474b144b2ee..d8def446a96 100644 --- a/code/datums/uplink_items/uplink_traitor.dm +++ b/code/datums/uplink_items/uplink_traitor.dm @@ -41,6 +41,15 @@ item = /obj/item/storage/box/syndie_kit/fake_revolver cost = 5 job = list("Clown") + +/datum/uplink_item/jobspecific/trick_grenade + name = "Trick Grenade" + desc = "Syndicate Minibomb with glue ejectors that will stick it to the user's hands on activation." + reference = "CGN" + item = /obj/item/storage/box/syndie_kit/fake_minibomb + cost = 5 + job = list("Clown") + //mime /datum/uplink_item/jobspecific/caneshotgun name = "Cane Shotgun and Assassination Shells" diff --git a/code/game/objects/items/weapons/grenades/syndieminibomb.dm b/code/game/objects/items/weapons/grenades/syndieminibomb.dm index 4bae6ff0510..0eb76dbf86a 100644 --- a/code/game/objects/items/weapons/grenades/syndieminibomb.dm +++ b/code/game/objects/items/weapons/grenades/syndieminibomb.dm @@ -10,3 +10,17 @@ update_mob() explosion(loc, 1, 2, 4, flame_range = 2) qdel(src) + +/obj/item/grenade/syndieminibomb/fake + +/obj/item/grenade/syndieminibomb/fake/examine(mob/user) + . = ..() + if(HAS_TRAIT(user, TRAIT_CLUMSY)) + . += "There are small glue ejectors all over the bomb." + +/obj/item/grenade/syndieminibomb/fake/attack_self(mob/user) + if(!active) + flags |= NODROP + to_chat(user, "As you activate the bomb, it emits a substance that sticks to your hand! It won't come off!") + to_chat(user, "Uh oh.") + . = ..() diff --git a/code/game/objects/items/weapons/storage/uplink_kits.dm b/code/game/objects/items/weapons/storage/uplink_kits.dm index 4b91c7bcbb0..0183e3fa685 100644 --- a/code/game/objects/items/weapons/storage/uplink_kits.dm +++ b/code/game/objects/items/weapons/storage/uplink_kits.dm @@ -263,11 +263,17 @@ new /obj/item/ammo_casing/shotgun/assassination(src) new /obj/item/gun/projectile/revolver/doublebarrel/improvised/cane(src) +/obj/item/storage/box/syndie_kit/fake_minibomb + name = "trick minibomb kit" + +/obj/item/storage/box/syndie_kit/fake_minibomb/populate_contents() + new /obj/item/grenade/syndieminibomb/fake(src) + /obj/item/storage/box/syndie_kit/fake_revolver name = "trick revolver kit" /obj/item/storage/box/syndie_kit/fake_revolver/populate_contents() - new /obj/item/toy/russian_revolver/trick_revolver(src) + new /obj/item/gun/projectile/revolver/fake(src) /obj/item/storage/box/syndie_kit/mimery name = "advanced mimery kit" diff --git a/code/modules/projectiles/guns/projectile/revolver.dm b/code/modules/projectiles/guns/projectile/revolver.dm index 827c56ace2e..f02ab5ea181 100644 --- a/code/modules/projectiles/guns/projectile/revolver.dm +++ b/code/modules/projectiles/guns/projectile/revolver.dm @@ -91,6 +91,34 @@ . = ..() . += "[get_ammo(0,0)] of those are live rounds." +/obj/item/gun/projectile/revolver/fake + +/obj/item/gun/projectile/revolver/fake/examine(mob/user) + . = ..() + if(HAS_TRAIT(user, TRAIT_CLUMSY)) + . += "Its mechanism seems to shoot backwards." + +/obj/item/gun/projectile/revolver/fake/process_fire(atom/target, mob/living/carbon/human/user, message, params, zone_override, bonus_spread) + var/zone = "chest" + if(user.has_organ("head")) + zone = "head" + add_fingerprint(user) + if(!chambered) + shoot_with_empty_chamber(user) + return + if(!chambered.fire(target = user, user = user, params = params, distro = null, quiet = suppressed, zone_override = zone, spread = 0, firer_source_atom = src)) + shoot_with_empty_chamber(user) + return + process_chamber() + update_icon() + playsound(src, 'sound/weapons/gunshots/gunshot_strong.ogg', 50, TRUE) + user.visible_message("[src] goes off!") + to_chat(user, "[src] did look pretty dodgey!") + SEND_SOUND(user, sound('sound/misc/sadtrombone.ogg')) //HONK + user.apply_damage(300, BRUTE, zone, sharp = TRUE, used_weapon = "Self-inflicted gunshot wound to the [zone].") + user.bleed(BLOOD_VOLUME_NORMAL) + user.death() // Just in case + /obj/item/gun/projectile/revolver/fingergun //Summoned by the Finger Gun spell, from advanced mimery traitor item name = "\improper finger gun" desc = "Bang bang bang!"