diff --git a/code/game/objects/effects/spawners/bundle.dm b/code/game/objects/effects/spawners/bundle.dm index 58cd0f4fa9..9e5d80248d 100644 --- a/code/game/objects/effects/spawners/bundle.dm +++ b/code/game/objects/effects/spawners/bundle.dm @@ -169,14 +169,21 @@ /obj/item/clothing/mask/gas/mime/sexy, /obj/item/clothing/under/rank/civilian/mime/sexy) +/obj/effect/spawner/bundle/crate + var/pickone = FALSE + /obj/effect/spawner/bundle/crate/Initialize(mapload) SHOULD_CALL_PARENT(FALSE) if(items && items.len) var/turf/T = get_turf(src) var/obj/structure/closet/LC = locate(/obj/structure/closet) in T if(LC) - for(var/path in items) - new path(LC) + if(pickone) + var/tospawn = pick(items) + new tospawn(LC) + else + for(var/path in items) + new path(LC) return INITIALIZE_HINT_QDEL /obj/effect/spawner/bundle/crate/mosin @@ -192,3 +199,29 @@ /obj/item/gun/ballistic/automatic/surplus, /obj/item/ammo_box/magazine/m10mm/rifle ) + +/obj/effect/spawner/bundle/crate/levergun + name = "lever-action rifle spawner" + items = list( + /obj/item/gun/ballistic/shotgun/leveraction, + /obj/item/ammo_box/c38/pouch + ) + +/obj/effect/spawner/bundle/crate/cowboyhat + name = "cowboy hat spawner" + pickone = TRUE + items = list( + /obj/item/clothing/head/cowboyhat, + /obj/item/clothing/head/cowboyhat/black, + /obj/item/clothing/head/cowboyhat/white, + /obj/item/clothing/head/cowboyhat/pink, + /obj/item/clothing/head/cowboyhat/sec + ) + +/obj/effect/spawner/bundle/crate/cowboyboots + name = "cowboy boots spawner" + pickone = TRUE + items = list( + /obj/item/clothing/shoes/cowboyboots, + /obj/item/clothing/shoes/cowboyboots/black + ) diff --git a/code/modules/cargo/packs/armory.dm b/code/modules/cargo/packs/armory.dm index de3e657386..3bd4515698 100644 --- a/code/modules/cargo/packs/armory.dm +++ b/code/modules/cargo/packs/armory.dm @@ -183,6 +183,29 @@ var/item = pick(contains) new item(C) +/datum/supply_pack/security/armory/frontier + name = "Old West Surplus Crate" + desc = "Do you have a fauna problem? Do you want to live out your frontier-taming fantasies on a state-of-the-art plasma research and mining station? Do you want to pretend you lived in the Old West of Earthen fame? Well, this box - and its many hats - may be for you." + cost = 7500 + contraband = TRUE + contains = list(/obj/effect/spawner/bundle/crate/cowboyhat, + /obj/effect/spawner/bundle/crate/cowboyboots, + /obj/item/clothing/under/pants/chaps, + /obj/item/reagent_containers/food/snacks/butterbiscuit, + /obj/item/reagent_containers/food/snacks/butterbiscuit, + /obj/item/reagent_containers/food/snacks/plumphelmetbiscuit, + /obj/item/reagent_containers/food/snacks/plumphelmetbiscuit, + /obj/item/ammo_box/c38/pouch, + /obj/item/ammo_box/c38/pouch, + /obj/item/ammo_box/c38/pouch, + /obj/effect/spawner/bundle/crate/levergun + ) + +/datum/supply_pack/security/armory/frontier/fill(obj/structure/closet/crate/C) + for(var/i in 1 to 5) + var/item = pick(contains) + new item(C) + /datum/supply_pack/security/armory/swat name = "SWAT Crate" desc = "Contains two fullbody sets of tough, fireproof, pressurized suits designed in a joint effort by IS-ERI and Nanotrasen. Each set contains a suit, helmet, mask, combat belt, and combat gloves. Requires Armory access to open." diff --git a/code/modules/projectiles/ammunition/ballistic/revolver.dm b/code/modules/projectiles/ammunition/ballistic/revolver.dm index 8f4d8eac67..a9bfe21102 100644 --- a/code/modules/projectiles/ammunition/ballistic/revolver.dm +++ b/code/modules/projectiles/ammunition/ballistic/revolver.dm @@ -39,7 +39,7 @@ /obj/item/ammo_casing/c38/lethal name = ".38 bullet casing" - desc = "A .38 bullet casing" + desc = "A .38 bullet casing." projectile_type = /obj/item/projectile/bullet/c38 /obj/item/ammo_casing/c38/trac diff --git a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm index 1f1cc10459..f07ad0bc39 100644 --- a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm +++ b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm @@ -60,6 +60,13 @@ desc = "Designed to quickly reload revolvers. These rounds are manufactured within extremely tight tolerances, making them easy to show off trickshots with." ammo_type = /obj/item/ammo_casing/c38/match +/obj/item/ammo_box/c38/pouch + name = "ammo packet (.38)" + desc = "A small ammunition packet made of synthleather. Not particularly useful for speedily reloading, but can hold a bit more." + multiload = FALSE + max_ammo = 8 + icon_state = "38pch" + /obj/item/ammo_box/g4570 name = "ammo box (.45-70 GOVT)" desc = "Brought to you at great expense,this box contains 10 more .45-70 GOVT bullets." diff --git a/code/modules/projectiles/boxes_magazines/internal/shotgun.dm b/code/modules/projectiles/boxes_magazines/internal/shotgun.dm index 12f4e1f1c5..4aa8b917b5 100644 --- a/code/modules/projectiles/boxes_magazines/internal/shotgun.dm +++ b/code/modules/projectiles/boxes_magazines/internal/shotgun.dm @@ -61,3 +61,7 @@ ammo_type = /obj/item/ammo_casing/c38 // they're rubber by default, i guess caliber = "38" max_ammo = 7 + +/obj/item/ammo_box/magazine/internal/shot/levergun/brush + name = "brush gun internal magazine" + ammo_type = /obj/item/ammo_casing/g4570 diff --git a/code/modules/projectiles/guns/ballistic/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm index a3985c8f42..9388ca214a 100644 --- a/code/modules/projectiles/guns/ballistic/automatic.dm +++ b/code/modules/projectiles/guns/ballistic/automatic.dm @@ -122,7 +122,7 @@ icon_state = "c20r[magazine ? "-[CEILING(get_ammo(0)/4, 1)*4]" : ""][chambered ? "" : "-e"][suppressed ? "-suppressed" : ""]" /obj/item/gun/ballistic/automatic/wt550 - name = "security semi-auto smg" + name = "security semi-auto PDW" desc = "An outdated personal defence weapon. Uses 4.6x30mm rounds and is designated the WT-550 Semi-Automatic SMG." icon_state = "wt550" item_state = "arg" diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm index eea16ac636..9ad42672a0 100644 --- a/code/modules/projectiles/guns/ballistic/shotgun.dm +++ b/code/modules/projectiles/guns/ballistic/shotgun.dm @@ -358,9 +358,13 @@ icon_state = "levercarabine" item_state = "leveraction" sawn_item_state = "maresleg" + var/can_cut = TRUE /obj/item/gun/ballistic/shotgun/leveraction/attackby(obj/item/A, mob/user, params) ..() + if(!can_cut) + to_chat(user, "You can't cut \the [src] down!") + return if(A.tool_behaviour == TOOL_SAW || istype(A, /obj/item/gun/energy/plasmacutter)) sawoff(user) if(istype(A, /obj/item/melee/transforming/energy)) @@ -376,3 +380,11 @@ icon_state = "[unique_reskin[current_skin]][sawn_off ? "-sawn" : ""][chambered ? "" : "-e"]" else icon_state = "[initial(icon_state)][sawn_off ? "-sawn" : ""][chambered ? "" : "-e"]" + +/obj/item/gun/ballistic/shotgun/leveraction/brush + name = "brush gun" + desc = "While lever-actions have been horribly out of date for hundreds of years now, \ + putting a nicely sized hole in a man-sized target with a .45-70 round has stayed relatively timeless." + icon_state = "brushgun" + can_cut = FALSE + mag_type = /obj/item/ammo_box/magazine/internal/shot/levergun/brush diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi index e1caad8279..eb642648af 100644 Binary files a/icons/obj/ammo.dmi and b/icons/obj/ammo.dmi differ diff --git a/icons/obj/guns/projectile.dmi b/icons/obj/guns/projectile.dmi index 9d9279f148..1504b9f0c7 100644 Binary files a/icons/obj/guns/projectile.dmi and b/icons/obj/guns/projectile.dmi differ