diff --git a/code/game/objects/items/gunbox_yw.dm b/code/game/objects/items/gunbox_yw.dm new file mode 100644 index 0000000000..d6c5384603 --- /dev/null +++ b/code/game/objects/items/gunbox_yw.dm @@ -0,0 +1,39 @@ +/obj/item/gunbox/blueshield + name = "blueshield mainarm box" + desc = "A secure box containing a blueshield main weapon." + +//Primary gun: Either shotgun or SMG + +/obj/item/gunbox/blueshield/attack_self(mob/living/user) + var/list/options = list() + options["Jackhammer Revolver Shotgun (12 Gauge)"] = list(/obj/item/weapon/gun/projectile/revolvershotgun, /obj/item/ammo_magazine/m12gdrumjack, /obj/item/ammo_magazine/m12gdrumjack, /obj/item/ammo_magazine/m12gdrumjack/beanbag) + options["P90 SMG (Top-Mount 9mm)"] = list(/obj/item/weapon/gun/projectile/automatic/p90/blueshield, /obj/item/ammo_magazine/m9mmt/rubber, /obj/item/ammo_magazine/m9mmt/, /obj/item/ammo_magazine/m9mmt/) + options["X01 Energy Gun (Weapon Cell)"] = list(/obj/item/weapon/gun/energy/x01, /obj/item/weapon/cell/device/weapon, /obj/item/weapon/cell/device/weapon) + var/choice = input(user,"Would you prefer a Jackhammer shotgun, a P90 SMG or an X01 Energy Gun?") as null|anything in options + if(src && choice) + var/list/things_to_spawn = options[choice] + for(var/new_type in things_to_spawn) // Spawn all the things, the gun and the ammo. + var/atom/movable/AM = new new_type(get_turf(src)) + if(istype(AM, /obj/item/weapon/gun)) + to_chat(user, "You have chosen \the [AM].") + qdel(src) + +/obj/item/gunbox/blueshield/secondary + name = "blueshield sidearm box" + desc = "A secure box containing a blueshield sidearm." + +//Sidearm: Egun, or a .44 with rubber and lethal mag + +/obj/item/gunbox/blueshield/secondary/attack_self(mob/living/user) + var/list/options = list() +// options["NSFW Variable Pistol(Microbattery)"] = list(/obj/item/weapon/storage/secure/briefcase/nsfw_pack_hos) It's broken, and I can't fix it because the snowflake keeps metastasizing. + options["E-Gun (Weapon Cell)"] = list(/obj/item/weapon/gun/energy/gun, /obj/item/weapon/cell/device/weapon, /obj/item/weapon/cell/device/weapon) + options["Consul Revolver (.44)"] = list(/obj/item/weapon/gun/projectile/revolver/consul, /obj/item/ammo_magazine/s44, /obj/item/ammo_magazine/s44, /obj/item/ammo_magazine/s44/rubber) + var/choice = input(user,"Would you prefer an e-gun or a revolver?") as null|anything in options + if(src && choice) + var/list/things_to_spawn = options[choice] + for(var/new_type in things_to_spawn) // Spawn all the things, the gun and the ammo. + var/atom/movable/AM = new new_type(get_turf(src)) + if(istype(AM, /obj/item/weapon/gun)) + to_chat(user, "You have chosen \the [AM].") + qdel(src) \ No newline at end of file diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index 0a1f358eb4..cbf739d976 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -135,7 +135,7 @@ item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit") starts_with = list(/obj/item/ammo_casing/a12g/beanbag = 8) -/obj/item/weapon/storage/box/beanbags/large/New() +/obj/item/weapon/storage/box/beanbags/large starts_with = list(/obj/item/ammo_casing/a12g/beanbag = 16) /obj/item/weapon/storage/box/shotgunammo diff --git a/code/game/objects/structures/crates_lockers/closets/secure/closets_yw.dm b/code/game/objects/structures/crates_lockers/closets/secure/closets_yw.dm index 410f9ad0ff..b9baafaa6b 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/closets_yw.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/closets_yw.dm @@ -16,6 +16,7 @@ /obj/item/weapon/storage/belt/security, /obj/item/weapon/grenade/flashbang, /obj/item/device/flash, + /obj/item/weapon/reagent_containers/spray/pepper, /obj/item/weapon/handcuffs, /obj/item/weapon/melee/baton/loaded, /obj/item/clothing/glasses/sunglasses, @@ -30,9 +31,6 @@ /obj/item/clothing/accessory/holster/leg, /obj/item/clothing/shoes/boots/jackboots, /obj/item/clothing/shoes/boots/jackboots/toeless, - /obj/item/weapon/gun/projectile/shotgun/pump, - /obj/item/weapon/storage/box/beanbags, - /obj/item/weapon/storage/box/shotgunshells, - /obj/item/weapon/storage/secure/briefcase/nsfw_pack_hos, - /obj/item/weapon/gun/energy/x01 + /obj/item/gunbox/blueshield, + /obj/item/gunbox/blueshield/secondary ) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index 0534418e66..231844ccad 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -168,7 +168,10 @@ /obj/item/clothing/shoes/boots/winter/security, /obj/item/device/flashlight/maglight, /obj/item/device/megaphone, - /obj/item/clothing/mask/gas/half) + /obj/item/clothing/mask/gas/half, + /obj/item/weapon/gun/projectile/revolvershotgun, + /obj/item/ammo_magazine/m12gdrumjack/beanbag, + /obj/item/ammo_magazine/m12gdrumjack/beanbag) /obj/structure/closet/secure_closet/warden/initialize() if(prob(50)) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security_vr.dm b/code/game/objects/structures/crates_lockers/closets/secure/security_vr.dm index 8a066cc754..c68e7e4216 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security_vr.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security_vr.dm @@ -49,7 +49,9 @@ /obj/item/weapon/storage/box/flashbangs, /obj/item/device/flash, /obj/item/weapon/melee/baton/loaded, - /obj/item/weapon/storage/secure/briefcase/nsfw_pack_hos, +// /obj/item/weapon/storage/secure/briefcase/nsfw_pack_hos, + /obj/item/weapon/gun/energy/x01, + /obj/item/weapon/cell/device/weapon, /obj/item/weapon/melee/telebaton, /obj/item/clothing/head/beret/sec/corporate/hos, /obj/item/clothing/suit/storage/hooded/wintercoat/security, diff --git a/code/modules/projectiles/guns/energy/nuclear_yw.dm b/code/modules/projectiles/guns/energy/nuclear_yw.dm index 220a52cb4c..667d85ac51 100644 --- a/code/modules/projectiles/guns/energy/nuclear_yw.dm +++ b/code/modules/projectiles/guns/energy/nuclear_yw.dm @@ -58,8 +58,8 @@ modifystate = "x01stun" firemodes = list( - list(mode_name="stun", projectile_type= /obj/item/projectile/energy/electrode/x01stunshot, modifystate="x01stun", fire_sound='sound/weapons/Taser.ogg', charge_cost = 240), - list(mode_name="laser", projectile_type=/obj/item/projectile/beam, modifystate="x01laser", fire_sound='sound/weapons/Laser.ogg', charge_cost = 480), + list(mode_name="stun", fire_delay = 8, projectile_type= /obj/item/projectile/energy/electrode/x01stunshot, modifystate="x01stun", fire_sound='sound/weapons/Taser.ogg', charge_cost = 240), + list(mode_name="laser", fire_delay = 8, projectile_type=/obj/item/projectile/beam, modifystate="x01laser", fire_sound='sound/weapons/Laser.ogg', charge_cost = 480), list(mode_name="gauss", fire_delay=15, projectile_type=/obj/item/projectile/energy/gauss, modifystate="x01gauss", fire_sound='sound/weapons/gauss_shoot.ogg', charge_cost = 360) ) diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index 4c7e0e3e88..cc7d401cf8 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -332,6 +332,10 @@ list(mode_name="3-round bursts", burst=3, fire_delay=null, move_delay=4, burst_accuracy=list(0,-15,-15), dispersion=list(0.0, 0.6, 1.0)) ) +//YW EDIT +/obj/item/weapon/gun/projectile/automatic/p90/blueshield + magazine_type = /obj/item/ammo_magazine/m9mm/rubber //Because a 50 round AP mag isn't really what we want for our defender. + /obj/item/weapon/gun/projectile/automatic/p90/update_icon() icon_state = "p90smg-[ammo_magazine ? round(ammo_magazine.stored_ammo.len, 6) : "empty"]" diff --git a/code/modules/projectiles/guns/projectile/shotgun_yw.dm b/code/modules/projectiles/guns/projectile/shotgun_yw.dm new file mode 100644 index 0000000000..a0f9aad8a8 --- /dev/null +++ b/code/modules/projectiles/guns/projectile/shotgun_yw.dm @@ -0,0 +1,53 @@ +/obj/item/weapon/gun/projectile/revolvershotgun + name = "jackhammer, probably" + desc = "Uses 12g rounds." + icon = 'icons/obj/gun_vr.dmi' + icon_state = "shotgun-mag" + item_state = null + w_class = ITEMSIZE_LARGE + force = 10 + caliber = "12g" + origin_tech = list(TECH_COMBAT = 6, TECH_MATERIAL = 4, TECH_ILLEGAL = 2) + slot_flags = SLOT_BACK|SLOT_BELT|SLOT_HOLSTER + handle_casings = CYCLE_CASINGS + load_method = MAGAZINE + magazine_type = /obj/item/ammo_magazine/m12gdrumjack/beanbag + allowed_magazines = list(/obj/item/ammo_magazine/m12gdrumjack) + projectile_type = /obj/item/projectile/bullet/shotgun + +/obj/item/weapon/gun/projectile/revolvershotgun/update_icon() + ..() + if(ammo_magazine) + icon_state = "shotgun-mag" + else + icon_state = "shotgun-empty" + return + + +/obj/item/ammo_magazine/m12gdrumjack + name = "drum magazine (12 gauge slug)" + desc = "A magazine for a revolver shotgun." + icon = 'icons/obj/ammo_yw.dmi' + icon_state = "12g" + mag_type = MAGAZINE + caliber = "12g" + matter = list(DEFAULT_WALL_MATERIAL = 13000) //did the math. now fixed the exploityness of this thing. Have fun! + ammo_type = /obj/item/ammo_casing/a12g + max_ammo = 8 + multiple_sprites = 1 + +/obj/item/ammo_magazine/m12gdrumjack/beanbag + name = "drum magazine (12 gauge beanbag)" + ammo_type = /obj/item/ammo_casing/a12g/beanbag + +/obj/item/ammo_magazine/m12gdrumjack/pellet + name = "drum magazine (12 gauge pellet)" + ammo_type = /obj/item/ammo_casing/a12g/pellet + +/obj/item/ammo_magazine/m12gdrumjack/flash + name = "drum magazine (12 gauge flash)" + ammo_type = /obj/item/ammo_casing/a12g/flash + +/obj/item/ammo_magazine/m12gdrumjack/empty + name = "drum magazine (12 gauge)" + initial_ammo = 0 \ No newline at end of file diff --git a/icons/obj/ammo_yw.dmi b/icons/obj/ammo_yw.dmi new file mode 100644 index 0000000000..b5202f2b90 Binary files /dev/null and b/icons/obj/ammo_yw.dmi differ diff --git a/vorestation.dme b/vorestation.dme index 644cbb9154..c10714eb60 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -949,6 +949,7 @@ #include "code\game\objects\items\glassjar.dm" #include "code\game\objects\items\gunbox.dm" #include "code\game\objects\items\gunbox_vr.dm" +#include "code\game\objects\items\gunbox_yw.dm" #include "code\game\objects\items\latexballoon.dm" #include "code\game\objects\items\paintkit.dm" #include "code\game\objects\items\poi_items.dm" @@ -2534,6 +2535,7 @@ #include "code\modules\projectiles\guns\projectile\revolver_yw.dm" #include "code\modules\projectiles\guns\projectile\semiauto.dm" #include "code\modules\projectiles\guns\projectile\shotgun.dm" +#include "code\modules\projectiles\guns\projectile\shotgun_yw.dm" #include "code\modules\projectiles\guns\projectile\sniper.dm" #include "code\modules\projectiles\guns\projectile\sniper\collapsible_sniper.dm" #include "code\modules\projectiles\projectile\animate.dm"