diff --git a/code/WorkInProgress/Chemistry-Tools.dm b/code/WorkInProgress/Chemistry-Tools.dm index 7785aff6b81..6571caa9b97 100644 --- a/code/WorkInProgress/Chemistry-Tools.dm +++ b/code/WorkInProgress/Chemistry-Tools.dm @@ -1439,6 +1439,8 @@ reagents = R R.my_atom = src R.add_reagent("cola", 30) + src.pixel_x = rand(-10.0, 10) + src.pixel_y = rand(-10.0, 10) /obj/item/weapon/reagent_containers/food/drinks/beer name = "Space Beer" @@ -1450,6 +1452,8 @@ reagents = R R.my_atom = src R.add_reagent("beer", 30) + src.pixel_x = rand(-10.0, 10) + src.pixel_y = rand(-10.0, 10) /obj/item/weapon/reagent_containers/food/drinks/milk name = "Space Milk" diff --git a/code/defines/obj/hydro.dm b/code/defines/obj/hydro.dm index 9ac0c77430b..2f8cce5641b 100644 --- a/code/defines/obj/hydro.dm +++ b/code/defines/obj/hydro.dm @@ -445,6 +445,9 @@ obj/item/weapon/grown/attackby(var/obj/item/O as obj, var/mob/user as mob) icon_state = "berrypile" amount = 2 heal_amt = 3 + New() + src.pixel_x = rand(-5.0, 5) + src.pixel_y = rand(-5.0, 5) /obj/item/weapon/reagent_containers/food/snacks/grown/chili seed = "/obj/item/seeds/chiliseed" @@ -455,6 +458,9 @@ obj/item/weapon/grown/attackby(var/obj/item/O as obj, var/mob/user as mob) heal_amt = 2 heat_amt = 20 potency = 20 + New() + src.pixel_x = rand(-5.0, 5) + src.pixel_y = rand(-5.0, 5) /obj/item/weapon/reagent_containers/food/snacks/grown/eggplant seed = "/obj/item/seeds/eggplantseed" @@ -463,6 +469,9 @@ obj/item/weapon/grown/attackby(var/obj/item/O as obj, var/mob/user as mob) icon_state = "eggplant" amount = 1 heal_amt = 5 + New() + src.pixel_x = rand(-5.0, 5) + src.pixel_y = rand(-5.0, 5) /obj/item/weapon/reagent_containers/food/snacks/grown/soybeans seed = "/obj/item/seeds/soyaseed" @@ -471,6 +480,9 @@ obj/item/weapon/grown/attackby(var/obj/item/O as obj, var/mob/user as mob) icon_state = "soybeans" amount = 2 heal_amt = 2 + New() + src.pixel_x = rand(-5.0, 5) + src.pixel_y = rand(-5.0, 5) /obj/item/weapon/reagent_containers/food/snacks/grown/tomato seed = "/obj/item/seeds/tomatoseed" @@ -479,6 +491,9 @@ obj/item/weapon/grown/attackby(var/obj/item/O as obj, var/mob/user as mob) icon_state = "tomato" amount = 2 heal_amt = 5 + New() + src.pixel_x = rand(-5.0, 5) + src.pixel_y = rand(-5.0, 5) /obj/item/weapon/reagent_containers/food/snacks/grown/wheat seed = "/obj/item/seeds/wheatseed" @@ -487,6 +502,9 @@ obj/item/weapon/grown/attackby(var/obj/item/O as obj, var/mob/user as mob) icon_state = "wheat" amount = 1 heal_amt = 2 + New() + src.pixel_x = rand(-5.0, 5) + src.pixel_y = rand(-5.0, 5) /obj/item/weapon/reagent_containers/food/snacks/grown/icepepper seed = "/obj/item/seeds/icepepperseed" @@ -497,6 +515,9 @@ obj/item/weapon/grown/attackby(var/obj/item/O as obj, var/mob/user as mob) heal_amt = 3 heat_amt = 20 potency = 20 + New() + src.pixel_x = rand(-5.0, 5) + src.pixel_y = rand(-5.0, 5) /obj/item/weapon/reagent_containers/food/snacks/grown/carrot seed = "/obj/item/seeds/carrotseed" @@ -505,6 +526,9 @@ obj/item/weapon/grown/attackby(var/obj/item/O as obj, var/mob/user as mob) icon_state = "carrot" amount = 3 heal_amt = 1 + New() + src.pixel_x = rand(-5.0, 5) + src.pixel_y = rand(-5.0, 5) /obj/item/weapon/reagent_containers/food/snacks/grown/amanita seed = "/obj/item/seeds/amanitamycelium" @@ -515,6 +539,9 @@ obj/item/weapon/grown/attackby(var/obj/item/O as obj, var/mob/user as mob) heal_amt = 0 poison_amt = 25 potency = 10 + New() + src.pixel_x = rand(-5.0, 5) + src.pixel_y = rand(-5.0, 5) /obj/item/weapon/reagent_containers/food/snacks/grown/angel seed = "/obj/item/seeds/angelmycelium" @@ -525,6 +552,9 @@ obj/item/weapon/grown/attackby(var/obj/item/O as obj, var/mob/user as mob) heal_amt = 0 poison_amt = 75 potency = 35 + New() + src.pixel_x = rand(-5.0, 5) + src.pixel_y = rand(-5.0, 5) /obj/item/weapon/reagent_containers/food/snacks/grown/libertycap seed = "/obj/item/seeds/libertymycelium" @@ -535,6 +565,9 @@ obj/item/weapon/grown/attackby(var/obj/item/O as obj, var/mob/user as mob) heal_amt = 3 drug_amt = 15 potency = 15 + New() + src.pixel_x = rand(-5.0, 5) + src.pixel_y = rand(-5.0, 5) /obj/item/weapon/reagent_containers/food/snacks/grown/plumphelmet seed = "/obj/item/seeds/plumpmycelium" @@ -543,6 +576,9 @@ obj/item/weapon/grown/attackby(var/obj/item/O as obj, var/mob/user as mob) icon_state = "plumphelmet" amount = 2 heal_amt = 5 + New() + src.pixel_x = rand(-5.0, 5) + src.pixel_y = rand(-5.0, 5) /obj/item/weapon/reagent_containers/food/snacks/grown/chanterelle seed = "/obj/item/seeds/chantermycelium" @@ -551,7 +587,9 @@ obj/item/weapon/grown/attackby(var/obj/item/O as obj, var/mob/user as mob) icon_state = "chanterelle" amount = 3 heal_amt = 2 - + New() + src.pixel_x = rand(-5.0, 5) + src.pixel_y = rand(-5.0, 5) @@ -571,6 +609,9 @@ obj/item/weapon/grown/attackby(var/obj/item/O as obj, var/mob/user as mob) flags = FPRINT | TABLEPASS var/toxicity = 0 var/PestKillStr = 0 + New() + src.pixel_x = rand(-5.0, 5) + src.pixel_y = rand(-5.0, 5) /obj/item/pestkiller/carbaryl name = "Carbaryl" @@ -579,6 +620,9 @@ obj/item/weapon/grown/attackby(var/obj/item/O as obj, var/mob/user as mob) flags = FPRINT | TABLEPASS toxicity = 4 PestKillStr = 2 + New() + src.pixel_x = rand(-5.0, 5) + src.pixel_y = rand(-5.0, 5) /obj/item/pestkiller/lindane name = "Lindane" @@ -587,6 +631,9 @@ obj/item/weapon/grown/attackby(var/obj/item/O as obj, var/mob/user as mob) flags = FPRINT | TABLEPASS toxicity = 6 PestKillStr = 4 + New() + src.pixel_x = rand(-5.0, 5) + src.pixel_y = rand(-5.0, 5) /obj/item/pestkiller/phosmet name = "Phosmet" @@ -595,6 +642,9 @@ obj/item/weapon/grown/attackby(var/obj/item/O as obj, var/mob/user as mob) flags = FPRINT | TABLEPASS toxicity = 8 PestKillStr = 7 + New() + src.pixel_x = rand(-5.0, 5) + src.pixel_y = rand(-5.0, 5) @@ -660,6 +710,9 @@ obj/item/weapon/grown/attackby(var/obj/item/O as obj, var/mob/user as mob) w_class = 1.0 var/mutmod = 0 var/yieldmod = 0 + New() + src.pixel_x = rand(-5.0, 5) + src.pixel_y = rand(-5.0, 5) /obj/item/nutrient/ez name = "E-Z-Nutrient" @@ -668,6 +721,9 @@ obj/item/weapon/grown/attackby(var/obj/item/O as obj, var/mob/user as mob) flags = FPRINT | TABLEPASS mutmod = 1 yieldmod = 1 + New() + src.pixel_x = rand(-5.0, 5) + src.pixel_y = rand(-5.0, 5) /obj/item/nutrient/l4z name = "Left 4 Zed" @@ -676,6 +732,9 @@ obj/item/weapon/grown/attackby(var/obj/item/O as obj, var/mob/user as mob) flags = FPRINT | TABLEPASS mutmod = 2 yieldmod = 0 + New() + src.pixel_x = rand(-5.0, 5) + src.pixel_y = rand(-5.0, 5) /obj/item/nutrient/rh name = "Robust Harvest" @@ -683,4 +742,7 @@ obj/item/weapon/grown/attackby(var/obj/item/O as obj, var/mob/user as mob) icon_state = "bottle15" flags = FPRINT | TABLEPASS mutmod = 0 - yieldmod = 2 \ No newline at end of file + yieldmod = 2 + New() + src.pixel_x = rand(-5.0, 5) + src.pixel_y = rand(-5.0, 5) \ No newline at end of file diff --git a/code/defines/obj/storage.dm b/code/defines/obj/storage.dm index f0beaadd13e..d59dc9bd9d9 100644 --- a/code/defines/obj/storage.dm +++ b/code/defines/obj/storage.dm @@ -33,6 +33,11 @@ icon_state = "box" item_state = "syringe_kit" +/obj/item/weapon/storage/blankbox + name = "Blank Shells" + icon_state = "box" + item_state = "syringe_kit" + /obj/item/weapon/storage/briefcase name = "briefcase" icon_state = "briefcase" diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index e2bf67bbd87..673c634b5e3 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -102,17 +102,35 @@ desc = "A weak beanbag shell." name = "beanbag shell" icon_state = "bshell" + m_amt = 10000 + New() + src.pixel_x = rand(-10.0, 10) + src.pixel_y = rand(-10.0, 10) /obj/item/weapon/ammo/gshell desc = "A 12gauge shell." name = "12 gauge shell" icon_state = "gshell" + m_amt = 25000 + New() + src.pixel_x = rand(-10.0, 10) + src.pixel_y = rand(-10.0, 10) + +/obj/item/weapon/ammo/blshell + desc = "A blank shell." + name = "blank shell" + icon_state = "blshell" + m_amt = 500 + New() + src.pixel_x = rand(-10.0, 10) + src.pixel_y = rand(-10.0, 10) /obj/item/weapon/ammo/a38 desc = "A speedloader that contains 7 .38 Special rounds." name = "38-Special ammo" icon_state = "38-7" amount_left = 7.0 + m_amt = 10000 /obj/item/device/analyzer desc = "A hand-held environmental scanner which reports current gas levels." @@ -149,6 +167,9 @@ w_class = 1.0 throw_speed = 4 throw_range = 20 + New() + src.pixel_x = rand(-5.0, 5) + src.pixel_y = rand(-5.0, 5) /obj/item/weapon/bananapeel name = "Banana Peel" @@ -1371,6 +1392,17 @@ Total SMES charging rate should not exceed total power generation rate, or an ov var/cigcount = 6 flags = ONBELT | TABLEPASS +/obj/item/weapon/cigarpacket + name = "Pete's Cuban Cigars" + desc = "The most robust cigars on the planet." + icon = 'cigarettes.dmi' + icon_state = "cigarpacket" + item_state = "cigarpacket" + w_class = 1 + throwforce = 2 + var/cigarcount = 6 + flags = ONBELT | TABLEPASS + /obj/item/weapon/cigbutt name = "Cigarette butt" desc = "A manky old cigarette butt." @@ -1379,6 +1411,14 @@ Total SMES charging rate should not exceed total power generation rate, or an ov w_class = 1 throwforce = 1 +/obj/item/weapon/cigarbutt + name = "Cigar butt" + desc = "A manky old cigar butt." + icon = 'cigarettes.dmi' + icon_state = "cigarbutt" + w_class = 1 + throwforce = 1 + /obj/item/weapon/zippo name = "Zippo lighter" desc = "The detective's zippo." diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index 0195a56a035..38bea9951a7 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -174,6 +174,7 @@ src.L += new /obj/item/weapon/circular_saw(src) src.L += new /obj/item/device/t_scanner(src) src.L += new /obj/item/weapon/reagent_containers/glass/bucket(src) + src.L += new /obj/item/weapon/ammo/blshell(src) src.LL += new /obj/item/weapon/flamethrower(src) src.LL += new /obj/item/device/igniter(src) src.LL += new /obj/item/device/timer(src) diff --git a/code/game/machinery/bots/secbot.dm b/code/game/machinery/bots/secbot.dm index 34927390d3d..a58d20ce586 100644 --- a/code/game/machinery/bots/secbot.dm +++ b/code/game/machinery/bots/secbot.dm @@ -599,10 +599,10 @@ Auto Patrol: []"}, if(src.allowed(perp)) //Corrupt cops cannot exist beep boop return 0 - if(istype(perp.l_hand, /obj/item/weapon/gun) || istype(perp.l_hand, /obj/item/weapon/baton)) + if((istype(perp.l_hand, /obj/item/weapon/gun) && !istype(perp.l_hand, /obj/item/weapon/gun/shotgun)) || istype(perp.l_hand, /obj/item/weapon/baton)) threatcount += 4 - if(istype(perp.r_hand, /obj/item/weapon/gun) || istype(perp.r_hand, /obj/item/weapon/baton)) + if((istype(perp.r_hand, /obj/item/weapon/gun) && !istype(perp.r_hand, /obj/item/weapon/gun/shotgun)) || istype(perp.r_hand, /obj/item/weapon/baton)) threatcount += 4 if(istype(perp:belt, /obj/item/weapon/gun) || istype(perp:belt, /obj/item/weapon/baton)) diff --git a/code/game/objects/items/weapons/guns_ammo.dm b/code/game/objects/items/weapons/guns_ammo.dm index 2d435ef2152..2af20fcb700 100644 --- a/code/game/objects/items/weapons/guns_ammo.dm +++ b/code/game/objects/items/weapons/guns_ammo.dm @@ -298,8 +298,25 @@ obj/item/weapon/gun/revolver/attackby(obj/item/weapon/ammo/a357/A as obj, mob/us return 1 return 1 return 1 - return 1 + else if (istype(A, /obj/item/weapon/ammo/blshell)) + //var/obj/item/weapon/ammo/gshell/A = B + if ((src.s1 > 0 && src.s2 > 0)) + user << "\blue It's already fully loaded!" + return 1 + else + user << "\blue You load the shell into the shotgun." + if (src.s1 == 0) + del(A) + src.s1 = 3 + return 1 + else if (src.s2 == 0) + del(A) + src.s2 = 3 + return 1 + return 1 + return 1 + return 1 /obj/item/weapon/gun/shotgun/afterattack(atom/target as mob|obj|turf|area, mob/user as mob, flag) if (flag) @@ -362,7 +379,12 @@ obj/item/weapon/gun/revolver/attackby(obj/item/weapon/ammo/a357/A as obj, mob/us if (!istype(U, /turf)) del(A) return - return + else if (src.s1 == 3) + src.pumped-- + src.s1 = src.s2 + src.s2 = 0 + spawn( 0 ) + return diff --git a/code/game/objects/storage/kit.dm b/code/game/objects/storage/kit.dm index 681d9549c17..3995011e8ca 100644 --- a/code/game/objects/storage/kit.dm +++ b/code/game/objects/storage/kit.dm @@ -10,6 +10,18 @@ ..() return +/obj/item/weapon/storage/blankbox/New() + + new /obj/item/weapon/ammo/blshell( src ) + new /obj/item/weapon/ammo/blshell( src ) + new /obj/item/weapon/ammo/blshell( src ) + new /obj/item/weapon/ammo/blshell( src ) + new /obj/item/weapon/ammo/blshell( src ) + new /obj/item/weapon/ammo/blshell( src ) + new /obj/item/weapon/ammo/blshell( src ) + ..() + return + /obj/item/weapon/storage/flashbang_kit/New() new /obj/item/weapon/flashbang( src )