diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm index 39a4f14eed..9acd5e9846 100644 --- a/code/game/objects/items/storage/uplink_kits.dm +++ b/code/game/objects/items/storage/uplink_kits.dm @@ -339,3 +339,11 @@ new /obj/item/stamp/chameleon/broken(src) new /obj/item/pda/chameleon/broken(src) // No chameleon laser, they can't randomise for //REASONS// + +/obj/item/storage/box/syndie_kit/kitchen_gun + name = "Kitchen Gun (TM) package" + +/obj/item/storage/box/syndie_kit/kitchen_gun/PopulateContents() + new /obj/item/gun/ballistic/automatic/pistol/m1911/kitchengun(src) + new /obj/item/ammo_box/magazine/m45/kitchengun(src) + new /obj/item/ammo_box/magazine/m45/kitchengun(src) diff --git a/code/modules/projectiles/ammunition/ballistic/smg.dm b/code/modules/projectiles/ammunition/ballistic/smg.dm index 3be419c933..758be46344 100644 --- a/code/modules/projectiles/ammunition/ballistic/smg.dm +++ b/code/modules/projectiles/ammunition/ballistic/smg.dm @@ -26,3 +26,7 @@ /obj/item/ammo_casing/c45/nostamina projectile_type = /obj/item/projectile/bullet/c45_nostamina + +/obj/item/ammo_casing/c45/kitchengun + desc = "A .45 bullet casing. It has a small sponge attached to it." + projectile_type = /obj/item/projectile/bullet/c45_cleaning diff --git a/code/modules/projectiles/boxes_magazines/external/pistol.dm b/code/modules/projectiles/boxes_magazines/external/pistol.dm index d70b20c65c..fb3771a5c4 100644 --- a/code/modules/projectiles/boxes_magazines/external/pistol.dm +++ b/code/modules/projectiles/boxes_magazines/external/pistol.dm @@ -36,6 +36,11 @@ ..() icon_state = "45-[ammo_count() ? "8" : "0"]" +/obj/item/ammo_box/magazine/m45/kitchengun + name = "handgun magazine (.45 cleaning)" + desc = "BANG! BANG! BANG!" + ammo_type = /obj/item/ammo_casing/c45/kitchengun + /obj/item/ammo_box/magazine/pistolm9mm name = "pistol magazine (9mm)" icon_state = "9x19p-8" diff --git a/code/modules/projectiles/guns/ballistic/pistol.dm b/code/modules/projectiles/guns/ballistic/pistol.dm index 24ef2a2604..cf6a856030 100644 --- a/code/modules/projectiles/guns/ballistic/pistol.dm +++ b/code/modules/projectiles/guns/ballistic/pistol.dm @@ -26,6 +26,12 @@ mag_type = /obj/item/ammo_box/magazine/m45 can_suppress = FALSE +/obj/item/gun/ballistic/automatic/pistol/m1911/kitchengun + name = "\improper Kitchen Gun (TM)" + desc = "Say goodbye to dirt with Kitchen Gun (TM)! Laser sight and night vision accessories sold separately." + icon_state = "kitchengun" + mag_type = /obj/item/ammo_box/magazine/m45/kitchengun + /obj/item/gun/ballistic/automatic/pistol/deagle name = "\improper Desert Eagle" desc = "A robust .50 AE handgun." @@ -78,4 +84,3 @@ else to_chat(user, "..and falls into view. Whew, that was a close one.") user.dropItemToGround(src) - diff --git a/code/modules/projectiles/projectile/bullets/smg.dm b/code/modules/projectiles/projectile/bullets/smg.dm index 4044a9629c..dfc6df537d 100644 --- a/code/modules/projectiles/projectile/bullets/smg.dm +++ b/code/modules/projectiles/projectile/bullets/smg.dm @@ -9,6 +9,40 @@ name = ".45 bullet" damage = 30 +/obj/item/projectile/bullet/c45_cleaning + name = ".45 bullet" + damage = 24 + stamina = 10 + +/obj/item/projectile/bullet/c45_cleaning/on_hit(atom/target, blocked = FALSE) + . = ..() + var/turf/T = get_turf(target) + + //section shamelessly copypasta'd from the clean component + SEND_SIGNAL(T, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_STRENGTH_BLOOD) + for(var/A in T) + if(is_cleanable(A)) + qdel(A) + else if(istype(A, /obj/item)) + var/obj/item/I = A + SEND_SIGNAL(I, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_STRENGTH_BLOOD) + if(ismob(I.loc)) + var/mob/M = I.loc + M.regenerate_icons() + else if(ishuman(A)) + var/mob/living/carbon/human/cleaned_human = A + if(cleaned_human.head) + SEND_SIGNAL(cleaned_human.head, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_STRENGTH_BLOOD) + if(cleaned_human.wear_suit) + SEND_SIGNAL(cleaned_human.wear_suit, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_STRENGTH_BLOOD) + else if(cleaned_human.w_uniform) + SEND_SIGNAL(cleaned_human.w_uniform, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_STRENGTH_BLOOD) + if(cleaned_human.shoes) + SEND_SIGNAL(cleaned_human.shoes, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_STRENGTH_BLOOD) + SEND_SIGNAL(cleaned_human, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_STRENGTH_BLOOD) + cleaned_human.wash_cream() + cleaned_human.regenerate_icons() + // 4.6x30mm (Autorifles) /obj/item/projectile/bullet/c46x30mm @@ -23,4 +57,4 @@ /obj/item/projectile/bullet/incendiary/c46x30mm name = "4.6x30mm incendiary bullet" damage = 10 - fire_stacks = 1 \ No newline at end of file + fire_stacks = 1 diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index 01ec1477d1..1eac811971 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -1332,6 +1332,22 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) surplus = 20 restricted_roles = list("Janitor") +/datum/uplink_item/role_restricted/kitchen_gun + name = "Kitchen Gun (TM)" + desc = "A revolutionary .45 caliber cleaning solution! Say goodbye to daily stains and dirty surfaces with Kitchen Gun (TM)! Just five shots from Kitchen Gun (TM), and it'll sparkle like new! Includes two extra ammunition clips!" + cost = 10 + surplus = 40 + restricted_roles = list("Cook", "Janitor") + item = /obj/item/storage/box/syndie_kit/kitchen_gun + +/datum/uplink_item/role_restricted/kitchen_gun_ammo + name = "Kitchen Gun (TM) .45 Magazine" + desc = "An extra eight bullets for an extra eight uses of Kitchen Gun (TM)!" + cost = 1 + surplus = 0 + restricted_roles = list("Cook", "Janitor") + item = /obj/item/ammo_box/magazine/m45/kitchengun + /datum/uplink_item/role_restricted/explosive_hot_potato name = "Exploding Hot Potato" desc = "A potato rigged with explosives. On activation, a special mechanism is activated that prevents it from being dropped. The only way to get rid of it if you are holding it is to attack someone else with it, causing it to latch to that person instead." diff --git a/icons/obj/guns/projectile.dmi b/icons/obj/guns/projectile.dmi index 6309e5c084..0ee0e3d2d1 100644 Binary files a/icons/obj/guns/projectile.dmi and b/icons/obj/guns/projectile.dmi differ