Pipegun updates and glowup (#83063)
## About The Pull Request Updates pipeguns with a brand new set of sprites. Also comes with pipe pistols; plinkier versions of the pipegun.    Alters pipeguns away from utilizing shotgun/rifle ammunition towards a bespoke junk round ammo. These shells are crafted similarly to current improvised shells. This also removes improvised shells as a shotgun ammo type. (these new shells aren't shotgun shells to begin with, they're more like rifle bullets) Crafting junk rounds produces an entirely unknown projectile in the shell. You won't know what you get until you fire the gun. Almost in every instance, however, the shot is beneficial towards killing things. And they all do about the same amount of damage, so there is hopefully never a round you didn't want to fire in the gun. Fighting someone with a pipegun is usually predictable for what amount of damage it will do, but any additional effects it might have is going to be an unknown factor. They also brutalize borgs, which is a quality that improvised shells had previously. Pipeguns operate as they did before, and do roughly 40 damage per shot with the majority of their ammo types (less than what they do currently with .310). They only have one shell in the gun at a time, so every time they're fired, they must be reloaded. Pipe pistols do roughly 15 damage per shot, but hold more ammo than the bigger pipegun. However, they're more likely to veer off-course. There are regal versions of each of these weapons, and each are more potent respective of their general rarity. Having one is going to be a lot more noteworthy. ### Minor changes Some more clothing items can carry pipeguns in their suit storage. The icemoon hermit spawns with a heroic laser musket rather than a regal pipegun (partially because it is too difficult for the hermit to get more ammo for their gun, and also because the regal pipegun is a more powerful weapon than previously) ## Why It's Good For The Game It has been a few years since I added the pipegun, and time was never particularly kind to it. There are alternative weapons now with interesting mechanics of their own. The ammunition it used has changed considerably. And it simply didn't ever feel like a 'junk gun' in a way that was fun. The original mechanics added to give it that feeling were just not fun to experience and were removed. So the pipegun has been left as 'a shitty version of X'. Even the regal pipegun was, at the end of the day, a shittier version of either a shotgun or cargo rifle. It didn't feel right not having some kind of unique quality to using these weapons that help them express themselves as unpredictable trash weapons built inside of maintenance. But I expressly didn't want to make it 'unpredictable' in a way that felt unfair on the person getting shot either. So just giving it more damage was right out. As a compromise, I reduced the overall lethality of the weapons while introducing a gimmick that will appeal to those wanting to play out the role of a homeless lunatic with a shitty homemade gun stalking maintenance. A 'chaos gun' so to speak. Maybe that will appeal to people. ## Changelog 🆑 balance: Reworks pipeguns to use an unpredictable 'junk round'. You won't know what you're shooting until you fire it. add: Introduces a pistol version of the pipegun; the pipe pistol. It is inaccurate and does significantly less damage, but more portable and has more ammunition in the gun. image: Updates the visuals of the pipeguns. balance: Also improves the Regal varieties of these weapons. By a lot. balance: More articles of clothing can be used to carry pipeguns in suit storage. balance: The Icemoon Hermit comes with a Heroic Laser Musket instead of a Regal Pipegun. remove: Improvised shells (the shotgun shell) has been replaced with improvised junk shells (which don't work with shotguns but do work with pipeguns). /🆑 --------- Co-authored-by: Jacquerel <hnevard@ gmail.com>
@@ -75,7 +75,7 @@
|
||||
/turf/open/floor/grass/fairy,
|
||||
/area/ruin/powered/hermit)
|
||||
"wf" = (
|
||||
/obj/item/gun/ballistic/rifle/boltaction/pipegun/prime,
|
||||
/obj/item/gun/energy/laser/musket/prime,
|
||||
/obj/structure/table/wood,
|
||||
/obj/item/flashlight/lantern,
|
||||
/turf/open/floor/wood,
|
||||
|
||||
@@ -193,7 +193,7 @@
|
||||
/turf/open/indestructible,
|
||||
/area/deathmatch)
|
||||
"zF" = (
|
||||
/obj/item/ammo_casing/shotgun/improvised,
|
||||
/obj/effect/spawner/random/junk_shell,
|
||||
/turf/open/indestructible,
|
||||
/area/deathmatch)
|
||||
"AG" = (
|
||||
|
||||
@@ -3381,16 +3381,6 @@
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
|
||||
/turf/open/floor/iron,
|
||||
/area/station/hallway/floor3/aft)
|
||||
"aSz" = (
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
dir = 1;
|
||||
id = "cmoshutter";
|
||||
name = "CMO Privacy Shutters"
|
||||
},
|
||||
/obj/structure/cable,
|
||||
/turf/open/floor/plating,
|
||||
/area/station/command/heads_quarters/cmo)
|
||||
"aSB" = (
|
||||
/obj/effect/spawner/random/trash/cigbutt,
|
||||
/turf/open/floor/iron/dark,
|
||||
@@ -8551,6 +8541,16 @@
|
||||
/mob/living/basic/rabbit,
|
||||
/turf/open/floor/grass,
|
||||
/area/station/hallway/secondary/entry)
|
||||
"ceF" = (
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/obj/structure/cable,
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
name = "CMO Privacy Shutters";
|
||||
dir = 4;
|
||||
id = "cmoshutter"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/station/medical/storage)
|
||||
"ceH" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/turf_decal/trimline/green/line{
|
||||
@@ -11197,31 +11197,6 @@
|
||||
/obj/machinery/airalarm/directional/west,
|
||||
/turf/open/floor/bronze/filled,
|
||||
/area/station/maintenance/floor1/starboard)
|
||||
"cNC" = (
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
|
||||
/obj/structure/cable,
|
||||
/obj/machinery/button/door/directional/west{
|
||||
id = "viro-inner";
|
||||
name = "Inner Virology Lockdown";
|
||||
pixel_y = -8
|
||||
},
|
||||
/obj/machinery/button/door/directional/west{
|
||||
id = "viro-outer";
|
||||
name = "Outer Virology Lockdown";
|
||||
pixel_y = 8
|
||||
},
|
||||
/obj/machinery/button/door/directional/west{
|
||||
id = "viro-iso";
|
||||
name = "Isolation Bolts";
|
||||
normaldoorcontrol = 1;
|
||||
pixel_x = -36;
|
||||
specialfunctions = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/green/opposingcorners,
|
||||
/obj/effect/landmark/start/virologist,
|
||||
/turf/open/floor/iron/white,
|
||||
/area/station/medical/virology)
|
||||
"cNE" = (
|
||||
/obj/structure/mineral_door/paperframe,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
|
||||
@@ -14128,16 +14103,6 @@
|
||||
/obj/machinery/camera/autoname/directional/south,
|
||||
/turf/open/floor/iron/dark/side,
|
||||
/area/station/hallway/floor4/aft)
|
||||
"dCm" = (
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
dir = 8;
|
||||
id = "cmoshutter";
|
||||
name = "CMO Privacy Shutters"
|
||||
},
|
||||
/obj/structure/cable,
|
||||
/turf/open/floor/plating,
|
||||
/area/station/command/heads_quarters/cmo)
|
||||
"dCt" = (
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
|
||||
@@ -26969,6 +26934,16 @@
|
||||
/obj/effect/landmark/start/atmospheric_technician,
|
||||
/turf/open/floor/iron,
|
||||
/area/station/engineering/atmos)
|
||||
"hab" = (
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
dir = 1;
|
||||
id = "cmoshutter";
|
||||
name = "CMO Privacy Shutters"
|
||||
},
|
||||
/obj/structure/cable,
|
||||
/turf/open/floor/plating,
|
||||
/area/station/command/heads_quarters/cmo)
|
||||
"hah" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/iron/white/smooth_corner{
|
||||
@@ -29826,16 +29801,6 @@
|
||||
dir = 8
|
||||
},
|
||||
/area/station/commons/dorms/room1)
|
||||
"hLa" = (
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/obj/structure/cable,
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
dir = 1;
|
||||
id = "cmoshutter";
|
||||
name = "CMO Privacy Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/station/command/heads_quarters/cmo)
|
||||
"hLd" = (
|
||||
/obj/machinery/door/firedoor/border_only{
|
||||
dir = 1
|
||||
@@ -41362,19 +41327,6 @@
|
||||
/obj/effect/turf_decal/trimline/dark_blue/end,
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/commons/storage/tools)
|
||||
"kIx" = (
|
||||
/obj/machinery/keycard_auth/directional/north{
|
||||
pixel_x = 9
|
||||
},
|
||||
/obj/machinery/button/door/directional/north{
|
||||
name = "CMO Privacy Shutters";
|
||||
id = "cmoshutter";
|
||||
req_access = list("cmo");
|
||||
pixel_y = 25;
|
||||
pixel_x = -5
|
||||
},
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/command/heads_quarters/cmo)
|
||||
"kIG" = (
|
||||
/obj/machinery/button/door/directional/north{
|
||||
id = "Secure Storage";
|
||||
@@ -41750,6 +41702,11 @@
|
||||
/obj/machinery/duct,
|
||||
/turf/open/floor/iron/white,
|
||||
/area/station/science/xenobiology)
|
||||
"kNy" = (
|
||||
/obj/item/storage/toolbox/maint_kit,
|
||||
/obj/effect/spawner/random/junk_shell,
|
||||
/turf/open/floor/pod/light,
|
||||
/area/station/maintenance/floor4/port)
|
||||
"kNA" = (
|
||||
/obj/structure/cable,
|
||||
/obj/structure/disposalpipe/segment{
|
||||
@@ -42618,16 +42575,6 @@
|
||||
/obj/structure/rack,
|
||||
/turf/open/floor/pod/light,
|
||||
/area/station/maintenance/floor2/port/fore)
|
||||
"kYr" = (
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/obj/structure/cable,
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
dir = 8;
|
||||
id = "cmoshutter";
|
||||
name = "CMO Privacy Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/station/command/heads_quarters/cmo)
|
||||
"kYt" = (
|
||||
/obj/structure/chair/comfy/carp,
|
||||
/turf/open/floor/carpet/neon/simple/pink/nodots,
|
||||
@@ -46303,6 +46250,16 @@
|
||||
},
|
||||
/turf/open/floor/pod/dark,
|
||||
/area/station/maintenance/floor2/port)
|
||||
"lTO" = (
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/obj/structure/cable,
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
dir = 1;
|
||||
id = "cmoshutter";
|
||||
name = "CMO Privacy Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/station/command/heads_quarters/cmo)
|
||||
"lTV" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/mineral/ore_redemption,
|
||||
@@ -51277,6 +51234,16 @@
|
||||
/obj/structure/cable/layer3,
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/ai_monitored/turret_protected/aisat)
|
||||
"nge" = (
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
dir = 8;
|
||||
id = "cmoshutter";
|
||||
name = "CMO Privacy Shutters"
|
||||
},
|
||||
/obj/structure/cable,
|
||||
/turf/open/floor/plating,
|
||||
/area/station/command/heads_quarters/cmo)
|
||||
"ngf" = (
|
||||
/obj/structure/railing,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
@@ -57427,6 +57394,16 @@
|
||||
/obj/structure/sign/poster/official/terragov/directional/north,
|
||||
/turf/open/floor/iron/dark/small,
|
||||
/area/station/science/xenobiology)
|
||||
"oJs" = (
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/obj/structure/cable,
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
dir = 8;
|
||||
id = "cmoshutter";
|
||||
name = "CMO Privacy Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/station/command/heads_quarters/cmo)
|
||||
"oJO" = (
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
|
||||
/turf/open/floor/pod/dark,
|
||||
@@ -59400,14 +59377,6 @@
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper,
|
||||
/turf/open/floor/pod/dark,
|
||||
/area/station/maintenance/floor2/port/aft)
|
||||
"pmI" = (
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
|
||||
/obj/structure/cable,
|
||||
/obj/effect/turf_decal/tile/green/opposingcorners,
|
||||
/obj/effect/landmark/start/virologist,
|
||||
/turf/open/floor/iron/white,
|
||||
/area/station/medical/virology)
|
||||
"pmO" = (
|
||||
/obj/structure/chair/comfy/brown{
|
||||
dir = 8
|
||||
@@ -68112,11 +68081,6 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/station/maintenance/floor1/starboard/fore)
|
||||
"rxZ" = (
|
||||
/obj/item/storage/toolbox/maint_kit,
|
||||
/obj/item/ammo_casing/shotgun/improvised,
|
||||
/turf/open/floor/pod/light,
|
||||
/area/station/maintenance/floor4/port)
|
||||
"ryh" = (
|
||||
/obj/structure/cable/multilayer/multiz,
|
||||
/turf/open/floor/plating/airless,
|
||||
@@ -87843,16 +87807,6 @@
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/turf/open/floor/carpet/red,
|
||||
/area/station/service/theater)
|
||||
"wBe" = (
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/obj/structure/cable,
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
name = "CMO Privacy Shutters";
|
||||
dir = 4;
|
||||
id = "cmoshutter"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/station/medical/storage)
|
||||
"wBg" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/decal/cleanable/robot_debris/up,
|
||||
@@ -92040,6 +91994,19 @@
|
||||
/obj/effect/turf_decal/siding/thinplating_new/corner,
|
||||
/turf/open/floor/iron/smooth,
|
||||
/area/station/cargo/sorting)
|
||||
"xEv" = (
|
||||
/obj/machinery/keycard_auth/directional/north{
|
||||
pixel_x = 9
|
||||
},
|
||||
/obj/machinery/button/door/directional/north{
|
||||
name = "CMO Privacy Shutters";
|
||||
id = "cmoshutter";
|
||||
req_access = list("cmo");
|
||||
pixel_y = 25;
|
||||
pixel_x = -5
|
||||
},
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/command/heads_quarters/cmo)
|
||||
"xEw" = (
|
||||
/obj/machinery/computer/camera_advanced/base_construction/aux{
|
||||
dir = 4
|
||||
@@ -93018,6 +92985,14 @@
|
||||
dir = 1
|
||||
},
|
||||
/area/station/science/genetics)
|
||||
"xRI" = (
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
|
||||
/obj/structure/cable,
|
||||
/obj/effect/turf_decal/tile/green/opposingcorners,
|
||||
/obj/effect/landmark/start/virologist,
|
||||
/turf/open/floor/iron/white,
|
||||
/area/station/medical/virology)
|
||||
"xRJ" = (
|
||||
/obj/effect/decal/cleanable/blood/old,
|
||||
/obj/item/screwdriver,
|
||||
@@ -94318,6 +94293,31 @@
|
||||
/obj/item/reagent_containers/pill/maintenance,
|
||||
/turf/open/floor/iron/white,
|
||||
/area/station/medical/abandoned)
|
||||
"yks" = (
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
|
||||
/obj/structure/cable,
|
||||
/obj/machinery/button/door/directional/west{
|
||||
id = "viro-inner";
|
||||
name = "Inner Virology Lockdown";
|
||||
pixel_y = -8
|
||||
},
|
||||
/obj/machinery/button/door/directional/west{
|
||||
id = "viro-outer";
|
||||
name = "Outer Virology Lockdown";
|
||||
pixel_y = 8
|
||||
},
|
||||
/obj/machinery/button/door/directional/west{
|
||||
id = "viro-iso";
|
||||
name = "Isolation Bolts";
|
||||
normaldoorcontrol = 1;
|
||||
pixel_x = -36;
|
||||
specialfunctions = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/green/opposingcorners,
|
||||
/obj/effect/landmark/start/virologist,
|
||||
/turf/open/floor/iron/white,
|
||||
/area/station/medical/virology)
|
||||
"ykt" = (
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
|
||||
@@ -190467,9 +190467,9 @@ syV
|
||||
wPX
|
||||
xKq
|
||||
nCG
|
||||
dCm
|
||||
nge
|
||||
goX
|
||||
kYr
|
||||
oJs
|
||||
nCG
|
||||
mrG
|
||||
mrG
|
||||
@@ -190723,7 +190723,7 @@ jRO
|
||||
ihm
|
||||
wyE
|
||||
xKq
|
||||
hLa
|
||||
lTO
|
||||
rac
|
||||
srK
|
||||
keJ
|
||||
@@ -190980,7 +190980,7 @@ jRO
|
||||
eCO
|
||||
wyE
|
||||
xKq
|
||||
aSz
|
||||
hab
|
||||
dZz
|
||||
bPP
|
||||
xhJ
|
||||
@@ -191752,7 +191752,7 @@ tam
|
||||
oKR
|
||||
xKq
|
||||
nCG
|
||||
kIx
|
||||
xEv
|
||||
rBt
|
||||
aDp
|
||||
xug
|
||||
@@ -192267,10 +192267,10 @@ eBo
|
||||
vOn
|
||||
nfv
|
||||
nfv
|
||||
wBe
|
||||
wBe
|
||||
wBe
|
||||
wBe
|
||||
ceF
|
||||
ceF
|
||||
ceF
|
||||
ceF
|
||||
nfv
|
||||
nfv
|
||||
mHh
|
||||
@@ -195582,7 +195582,7 @@ mqc
|
||||
mRQ
|
||||
dVV
|
||||
xNy
|
||||
cNC
|
||||
yks
|
||||
mcI
|
||||
rPC
|
||||
sJn
|
||||
@@ -196096,7 +196096,7 @@ iOA
|
||||
utl
|
||||
doh
|
||||
gJz
|
||||
pmI
|
||||
xRI
|
||||
hwQ
|
||||
piz
|
||||
aWO
|
||||
@@ -196610,7 +196610,7 @@ iOA
|
||||
dfU
|
||||
pZm
|
||||
wJy
|
||||
pmI
|
||||
xRI
|
||||
dVV
|
||||
bLm
|
||||
yhv
|
||||
@@ -314350,7 +314350,7 @@ cis
|
||||
cub
|
||||
wTg
|
||||
vEa
|
||||
rxZ
|
||||
kNy
|
||||
tCG
|
||||
pme
|
||||
iho
|
||||
|
||||
@@ -64,6 +64,8 @@
|
||||
#define CALIBER_HOOK "hook"
|
||||
/// The caliber used by the changeling tentacle mutation.
|
||||
#define CALIBER_TENTACLE "tentacle"
|
||||
/// The caliber used by pipeguns and pipe pistols
|
||||
#define CALIBER_JUNK "junk"
|
||||
|
||||
/// For gunpoints, how many tiles around the target the shooter can roam without losing their shot
|
||||
#define GUNPOINT_SHOOTER_STRAY_RANGE 2
|
||||
|
||||
@@ -181,15 +181,33 @@
|
||||
/datum/crafting_recipe/pipegun
|
||||
name = "Pipegun"
|
||||
result = /obj/item/gun/ballistic/rifle/boltaction/pipegun
|
||||
reqs = list(/obj/item/weaponcrafting/receiver = 1,
|
||||
/obj/item/pipe = 1,
|
||||
reqs = list(
|
||||
/obj/item/weaponcrafting/receiver = 1,
|
||||
/obj/item/pipe = 2,
|
||||
/obj/item/weaponcrafting/stock = 1,
|
||||
/obj/item/storage/toolbox = 1, // for the screws
|
||||
/obj/item/stack/sticky_tape = 1,
|
||||
)
|
||||
tool_behaviors = list(TOOL_SCREWDRIVER)
|
||||
time = 5 SECONDS
|
||||
category = CAT_WEAPON_RANGED
|
||||
|
||||
/datum/crafting_recipe/pipepistol
|
||||
name = "Pipe Pistol"
|
||||
result = /obj/item/gun/ballistic/rifle/boltaction/pipegun/pistol
|
||||
reqs = list(
|
||||
/obj/item/weaponcrafting/receiver = 1,
|
||||
/obj/item/pipe = 1,
|
||||
/obj/item/stock_parts/servo = 2,
|
||||
/obj/item/stack/sheet/mineral/wood = 4,
|
||||
/obj/item/storage/toolbox = 1, // for the screws
|
||||
/obj/item/stack/sticky_tape = 1,
|
||||
)
|
||||
tool_paths = list(/obj/item/hatchet)
|
||||
tool_behaviors = list(TOOL_SCREWDRIVER)
|
||||
time = 5 SECONDS
|
||||
category = CAT_WEAPON_RANGED
|
||||
|
||||
/datum/crafting_recipe/rebarxbow
|
||||
name = "Heated Rebar Crossbow"
|
||||
result = /obj/item/gun/ballistic/rifle/rebarxbow
|
||||
@@ -229,10 +247,11 @@
|
||||
/datum/reagent/consumable/grey_bull = 20,
|
||||
/obj/item/spear = 1,
|
||||
/obj/item/storage/toolbox = 1,
|
||||
/obj/item/clothing/head/costume/crown = 1, // Any ol' crown will do
|
||||
)
|
||||
tool_behaviors = list(TOOL_SCREWDRIVER)
|
||||
tool_paths = list(/obj/item/clothing/gloves/color/yellow, /obj/item/clothing/mask/gas, /obj/item/melee/baton/security/cattleprod)
|
||||
time = 30 SECONDS //contemplate for a bit
|
||||
time = 15 SECONDS //contemplate for a bit
|
||||
category = CAT_WEAPON_RANGED
|
||||
crafting_flags = CRAFT_CHECK_DENSITY | CRAFT_MUST_BE_LEARNED
|
||||
|
||||
|
||||
@@ -71,8 +71,8 @@
|
||||
category = CAT_WEAPON_AMMO
|
||||
|
||||
/datum/crafting_recipe/improvisedslug
|
||||
name = "Improvised Shotgun Shell"
|
||||
result = /obj/item/ammo_casing/shotgun/improvised
|
||||
name = "Junk Shell"
|
||||
result = /obj/effect/spawner/random/junk_shell
|
||||
reqs = list(
|
||||
/obj/item/stack/sheet/iron = 2,
|
||||
/obj/item/stack/cable_coil = 1,
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
"Did he drop this into a moisture trap? Yuck.",
|
||||
"Toolboxing techniques, huh? I kinda just want to know how to make the gun.",
|
||||
"What the hell does he mean by 'ancient warrior tradition'?",
|
||||
"...the true masters of this place are not those who merely inhabit it...",
|
||||
)
|
||||
|
||||
/obj/item/book/granter/crafting_recipe/dusting/laser_musket_prime
|
||||
|
||||
@@ -758,6 +758,7 @@
|
||||
/obj/item/ammo_casing/strilka310,
|
||||
/obj/item/ammo_casing/shotgun,
|
||||
/obj/item/ammo_casing/a357,
|
||||
/obj/item/ammo_casing/junk,
|
||||
))
|
||||
|
||||
/obj/item/storage/belt/fannypack
|
||||
|
||||
@@ -198,11 +198,11 @@
|
||||
wanted_types = list(/obj/item/pneumatic_cannon/ghetto = TRUE)
|
||||
|
||||
/datum/bounty/item/assistant/improvised_shells
|
||||
name = "Improvised Shotgun Shells"
|
||||
description = "Budget cuts are hitting our security department pretty hard. Send some improvised shotgun shells when you can."
|
||||
name = "Junk Shells"
|
||||
description = "Our assistant militia has chewed through all our iron supplies. To stop them making bullets out of station property, we need junk shells, pronto."
|
||||
reward = CARGO_CRATE_VALUE * 4
|
||||
required_count = 5
|
||||
wanted_types = list(/obj/item/ammo_casing/shotgun/improvised = TRUE)
|
||||
wanted_types = list(/obj/item/ammo_casing/junk = TRUE)
|
||||
|
||||
/datum/bounty/item/assistant/flamethrower
|
||||
name = "Flamethrower"
|
||||
|
||||
@@ -54,6 +54,16 @@
|
||||
desc = "Aviators not included."
|
||||
icon_state = "bomberjacket"
|
||||
inhand_icon_state = "brownjsuit"
|
||||
allowed = list(
|
||||
/obj/item/flashlight,
|
||||
/obj/item/tank/internals/emergency_oxygen,
|
||||
/obj/item/tank/internals/plasmaman,
|
||||
/obj/item/toy,
|
||||
/obj/item/storage/fancy/cigarettes,
|
||||
/obj/item/lighter,
|
||||
/obj/item/gun/ballistic/rifle/boltaction/pipegun,
|
||||
/obj/item/radio,
|
||||
)
|
||||
|
||||
/obj/item/clothing/suit/jacket/leather
|
||||
name = "leather jacket"
|
||||
@@ -62,7 +72,19 @@
|
||||
inhand_icon_state = "hostrench"
|
||||
resistance_flags = NONE
|
||||
max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT
|
||||
allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/gun/ballistic/automatic/pistol, /obj/item/gun/ballistic/revolver, /obj/item/gun/ballistic/revolver/c38/detective, /obj/item/radio)
|
||||
allowed = list(
|
||||
/obj/item/flashlight,
|
||||
/obj/item/tank/internals/emergency_oxygen,
|
||||
/obj/item/tank/internals/plasmaman,
|
||||
/obj/item/toy,
|
||||
/obj/item/storage/fancy/cigarettes,
|
||||
/obj/item/lighter,
|
||||
/obj/item/gun/ballistic/automatic/pistol,
|
||||
/obj/item/gun/ballistic/revolver,
|
||||
/obj/item/gun/ballistic/revolver/c38/detective,
|
||||
/obj/item/gun/ballistic/rifle/boltaction/pipegun,
|
||||
/obj/item/radio,
|
||||
)
|
||||
|
||||
/obj/item/clothing/suit/jacket/leather/biker
|
||||
name = "biker jacket"
|
||||
@@ -96,7 +118,19 @@
|
||||
desc = "A canvas jacket styled after classical American military garb. Feels sturdy, yet comfortable."
|
||||
icon_state = "militaryjacket"
|
||||
inhand_icon_state = null
|
||||
allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/gun/ballistic/automatic/pistol, /obj/item/gun/ballistic/revolver, /obj/item/radio)
|
||||
allowed = list(
|
||||
/obj/item/flashlight,
|
||||
/obj/item/tank/internals/emergency_oxygen,
|
||||
/obj/item/tank/internals/plasmaman,
|
||||
/obj/item/toy,
|
||||
/obj/item/storage/fancy/cigarettes,
|
||||
/obj/item/lighter,
|
||||
/obj/item/gun/ballistic/automatic/pistol,
|
||||
/obj/item/gun/ballistic/revolver,
|
||||
/obj/item/gun/ballistic/revolver/c38/detective,
|
||||
/obj/item/gun/ballistic/rifle/boltaction/pipegun,
|
||||
/obj/item/radio,
|
||||
)
|
||||
|
||||
/obj/item/clothing/suit/jacket/letterman
|
||||
name = "letterman jacket"
|
||||
@@ -118,6 +152,19 @@
|
||||
icon_state = "letterman_s"
|
||||
inhand_icon_state = null
|
||||
species_exception = list(/datum/species/golem)
|
||||
allowed = list(
|
||||
/obj/item/flashlight,
|
||||
/obj/item/tank/internals/emergency_oxygen,
|
||||
/obj/item/tank/internals/plasmaman,
|
||||
/obj/item/toy,
|
||||
/obj/item/storage/fancy/cigarettes,
|
||||
/obj/item/lighter,
|
||||
/obj/item/gun/ballistic/automatic/pistol,
|
||||
/obj/item/gun/ballistic/revolver,
|
||||
/obj/item/gun/ballistic/revolver/c38/detective,
|
||||
/obj/item/gun/ballistic/rifle/boltaction/pipegun,
|
||||
/obj/item/radio,
|
||||
)
|
||||
|
||||
/obj/item/clothing/suit/jacket/letterman_nanotrasen
|
||||
name = "blue letterman jacket"
|
||||
|
||||
@@ -179,7 +179,7 @@
|
||||
/obj/item/tank/internals/emergency_oxygen,
|
||||
/obj/item/tank/internals/plasmaman,
|
||||
/obj/item/t_scanner,
|
||||
/obj/item/gun/ballistic/rifle/boltaction/pipegun/prime,
|
||||
/obj/item/gun/ballistic/rifle/boltaction/pipegun,
|
||||
)
|
||||
resistance_flags = NONE
|
||||
species_exception = list(/datum/species/golem)
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
allowed = list(
|
||||
/obj/item/tank/internals/emergency_oxygen,
|
||||
/obj/item/tank/internals/plasmaman,
|
||||
/obj/item/gun/ballistic/rifle/boltaction/pipegun/prime,
|
||||
/obj/item/gun/ballistic/rifle/boltaction/pipegun,
|
||||
)
|
||||
|
||||
/datum/armor/suit_caution
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
// Junk
|
||||
|
||||
/obj/item/ammo_casing/junk
|
||||
name = "improvised junk round"
|
||||
desc = "What is in the shell? Shoot it to find out."
|
||||
icon_state = "improvshell"
|
||||
caliber = CALIBER_JUNK
|
||||
projectile_type = /obj/projectile/bullet/junk
|
||||
custom_materials = list(/datum/material/iron=SMALL_MATERIAL_AMOUNT*2, /datum/material/glass=SMALL_MATERIAL_AMOUNT*1)
|
||||
|
||||
// Junk Shell Spawner; used to spawn in our random shells upon crafting
|
||||
|
||||
/obj/effect/spawner/random/junk_shell
|
||||
name = "junk shell spawner"
|
||||
desc = "Bullet. Bullet Bullet."
|
||||
icon_state = "junkround"
|
||||
loot = list(
|
||||
/obj/item/ammo_casing/junk = 50,
|
||||
/obj/item/ammo_casing/junk/incendiary = 20,
|
||||
/obj/item/ammo_casing/junk/shock = 20,
|
||||
/obj/item/ammo_casing/junk/hunter = 20,
|
||||
/obj/item/ammo_casing/junk/phasic = 5,
|
||||
/obj/item/ammo_casing/junk/ripper = 5,
|
||||
/obj/item/ammo_casing/junk/reaper = 1,
|
||||
)
|
||||
|
||||
/obj/item/ammo_casing/junk/incendiary
|
||||
projectile_type = /obj/projectile/bullet/incendiary/fire/junk
|
||||
|
||||
/obj/item/ammo_casing/junk/phasic
|
||||
projectile_type = /obj/projectile/bullet/junk/phasic
|
||||
|
||||
/obj/item/ammo_casing/junk/shock
|
||||
projectile_type = /obj/projectile/bullet/junk/shock
|
||||
|
||||
/obj/item/ammo_casing/junk/hunter
|
||||
projectile_type = /obj/projectile/bullet/junk/hunter
|
||||
|
||||
/obj/item/ammo_casing/junk/ripper
|
||||
projectile_type = /obj/projectile/bullet/junk/ripper
|
||||
|
||||
/obj/item/ammo_casing/junk/reaper
|
||||
projectile_type = /obj/projectile/bullet/junk/reaper
|
||||
@@ -104,15 +104,6 @@
|
||||
variance = 25
|
||||
custom_materials = list(/datum/material/iron=SHEET_MATERIAL_AMOUNT*2)
|
||||
|
||||
/obj/item/ammo_casing/shotgun/improvised
|
||||
name = "improvised shell"
|
||||
desc = "A homemade shotgun casing filled with crushed glass, used to commmit vandalism and property damage."
|
||||
icon_state = "improvshell"
|
||||
projectile_type = /obj/projectile/bullet/pellet/shotgun_improvised
|
||||
custom_materials = list(/datum/material/iron=SMALL_MATERIAL_AMOUNT*2, /datum/material/glass=SMALL_MATERIAL_AMOUNT*1)
|
||||
pellets = 6
|
||||
variance = 30
|
||||
|
||||
/obj/item/ammo_casing/shotgun/ion
|
||||
name = "ion shell"
|
||||
desc = "An advanced shotgun shell which uses a subspace ansible crystal to produce an effect similar to a standard ion rifle. \
|
||||
|
||||
@@ -11,13 +11,23 @@
|
||||
|
||||
/obj/item/ammo_box/magazine/internal/boltaction/pipegun
|
||||
name = "pipegun internal magazine"
|
||||
caliber = CALIBER_SHOTGUN
|
||||
ammo_type = /obj/item/ammo_casing/shotgun/improvised
|
||||
caliber = CALIBER_JUNK
|
||||
ammo_type = /obj/item/ammo_casing/junk
|
||||
max_ammo = 1
|
||||
|
||||
/obj/item/ammo_box/magazine/internal/boltaction/pipegun/pistol
|
||||
name = "pipe pistol internal magazine"
|
||||
max_ammo = 3
|
||||
|
||||
/obj/item/ammo_box/magazine/internal/boltaction/pipegun/prime
|
||||
name = "regal pipegun internal magazine"
|
||||
max_ammo = 3
|
||||
max_ammo = 4
|
||||
ammo_type = /obj/item/ammo_casing/junk/reaper
|
||||
|
||||
/obj/item/ammo_box/magazine/internal/boltaction/pipegun/pistol/prime
|
||||
name = "regal pipe pistol internal magazine"
|
||||
max_ammo = 6
|
||||
ammo_type = /obj/item/ammo_casing/junk/reaper
|
||||
|
||||
/obj/item/ammo_box/magazine/internal/enchanted
|
||||
max_ammo = 1
|
||||
|
||||
@@ -259,46 +259,78 @@
|
||||
. = ..()
|
||||
AddComponent(/datum/component/scope, range_modifier = 2) //enough range to at least be useful for stealth
|
||||
|
||||
/// PIPE GUNS ///
|
||||
|
||||
/obj/item/gun/ballistic/rifle/boltaction/pipegun
|
||||
name = "pipegun"
|
||||
desc = "An excellent weapon for flushing out tunnel rats and enemy assistants, but its rifling leaves much to be desired."
|
||||
icon = 'icons/obj/weapons/guns/ballistic.dmi'
|
||||
icon_state = "musket"
|
||||
inhand_icon_state = "musket"
|
||||
worn_icon_state = "musket"
|
||||
lefthand_file = 'icons/mob/inhands/weapons/64x_guns_left.dmi'
|
||||
righthand_file = 'icons/mob/inhands/weapons/64x_guns_right.dmi'
|
||||
inhand_x_dimension = 64
|
||||
inhand_y_dimension = 64
|
||||
desc = "A symbol that the true masters of this place are not those who merely inhabit it, but the one willing to twist it towards a killing intent."
|
||||
icon_state = "pipegun"
|
||||
inhand_icon_state = "pipegun"
|
||||
worn_icon_state = "pipegun"
|
||||
fire_sound = 'sound/weapons/gun/sniper/shot.ogg'
|
||||
accepted_magazine_type = /obj/item/ammo_box/magazine/internal/boltaction/pipegun
|
||||
initial_caliber = CALIBER_SHOTGUN
|
||||
alternative_caliber = CALIBER_STRILKA310
|
||||
initial_fire_sound = 'sound/weapons/gun/sniper/shot.ogg'
|
||||
alternative_fire_sound = 'sound/weapons/gun/shotgun/shot.ogg'
|
||||
can_modify_ammo = TRUE
|
||||
projectile_damage_multiplier = 1.35
|
||||
obj_flags = UNIQUE_RENAME
|
||||
can_bayonet = TRUE
|
||||
knife_x_offset = 25
|
||||
knife_y_offset = 11
|
||||
can_be_sawn_off = FALSE
|
||||
projectile_damage_multiplier = 0.75
|
||||
trigger_guard = TRIGGER_GUARD_ALLOW_ALL
|
||||
|
||||
SET_BASE_PIXEL(0, 0)
|
||||
SET_BASE_PIXEL(-8, 0)
|
||||
|
||||
/obj/item/gun/ballistic/rifle/boltaction/pipegun/handle_chamber()
|
||||
. = ..()
|
||||
do_sparks(1, TRUE, src)
|
||||
|
||||
/obj/item/gun/ballistic/rifle/boltaction/pipegun/examine_more(mob/user)
|
||||
. = ..()
|
||||
. += span_notice("<b><i>Looking down at the [name], you recall a tale told to you in some distant memory...</i></b>")
|
||||
|
||||
. += span_info("It's said that the first slaying committed on a Nanotrasen space station was by an assistant.")
|
||||
. += span_info("That this act, done by toolbox, maybe spear, was what consigned their kind to a life of destitution, rejection and violence.")
|
||||
. += span_info("They carry the weight of this act visibly; the grey jumpsuit. Breathing deeply filtered air. And with bloodsoaked yellow hands clenched into fists. Eyes, sharp and waiting. Hunters in the dark.")
|
||||
. += span_info("Eventually, these killing spirits sought to stake a claim on the metal tombs they were trapped within. Rejecting their status. Determined to be something more.")
|
||||
. += span_info("This weapon is one such tool. And it is a grim one indeed. Wrought from scrap, pulled from the station's walls and floors and the very nails holding it together.")
|
||||
. += span_info("It is a symbol that the true masters of this place are not those who merely inhabit it. But the one willing to twist it towards a killing intent.")
|
||||
|
||||
/obj/item/gun/ballistic/rifle/boltaction/pipegun/pistol
|
||||
name = "pipe pistol"
|
||||
desc = "It is foolish to think that anyone wearing the grey is incapable of hurting you, simply because they are not baring their teeth."
|
||||
icon_state = "pipepistol"
|
||||
inhand_icon_state = "pipepistol"
|
||||
worn_icon_state = "gun"
|
||||
accepted_magazine_type = /obj/item/ammo_box/magazine/internal/boltaction/pipegun/pistol
|
||||
projectile_damage_multiplier = 0.50
|
||||
spread = 15 //kinda inaccurate
|
||||
slot_flags = ITEM_SLOT_BELT
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
can_bayonet = FALSE
|
||||
weapon_weight = WEAPON_MEDIUM
|
||||
|
||||
SET_BASE_PIXEL(0, 0)
|
||||
|
||||
/obj/item/gun/ballistic/rifle/boltaction/pipegun/prime
|
||||
name = "regal pipegun"
|
||||
desc = "Older, territorial assistants typically possess more valuable loot."
|
||||
icon_state = "musket_prime"
|
||||
inhand_icon_state = "musket_prime"
|
||||
worn_icon_state = "musket_prime"
|
||||
desc = "To call this 'regal' is a cruel irony. For the only noteworthy quality of nobility is in how it is wielded to kill. \
|
||||
All monarchs deserve to be crowned. But none will remember the dead tyrant for the red stain they left on the carpet."
|
||||
icon_state = "regal_pipegun"
|
||||
inhand_icon_state = "regal_pipegun"
|
||||
worn_icon_state = "regal_pipegun"
|
||||
accepted_magazine_type = /obj/item/ammo_box/magazine/internal/boltaction/pipegun/prime
|
||||
projectile_damage_multiplier = 1
|
||||
projectile_damage_multiplier = 2
|
||||
|
||||
/// MAGICAL BOLT ACTIONS + ARCANE BARRAGE? ///
|
||||
/obj/item/gun/ballistic/rifle/boltaction/pipegun/pistol/prime
|
||||
name = "regal pipe pistol"
|
||||
desc = "What value is there in honesty towards the dishonest? So that they might twist the arm and slit the wrist? \
|
||||
The open palm is no sign of weakness; it is to draw the eyes away from the other hand, lying in wait."
|
||||
icon_state = "regal_pipepistol"
|
||||
inhand_icon_state = "regal_pipepistol"
|
||||
accepted_magazine_type = /obj/item/ammo_box/magazine/internal/boltaction/pipegun/pistol/prime
|
||||
projectile_damage_multiplier = 1
|
||||
spread = 0
|
||||
|
||||
/// MAGICAL BOLT ACTIONS ///
|
||||
|
||||
/obj/item/gun/ballistic/rifle/enchanted
|
||||
name = "enchanted bolt action rifle"
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
// Junk (Pipe Pistols and Pipeguns)
|
||||
|
||||
/obj/projectile/bullet/junk
|
||||
name = "junk bullet"
|
||||
icon_state = "trashball"
|
||||
damage = 30
|
||||
embedding = list(embed_chance=15, fall_chance=3, jostle_chance=4, ignore_throwspeed_threshold=TRUE, pain_stam_pct=0.4, pain_mult=5, jostle_pain_mult=6, rip_time=10)
|
||||
var/bane_mob_biotypes = MOB_ROBOTIC
|
||||
var/bane_multiplier = 1.5
|
||||
var/bane_added_damage = 0
|
||||
|
||||
/obj/projectile/bullet/junk/Initialize(mapload)
|
||||
. = ..()
|
||||
AddElement(/datum/element/bane, mob_biotypes = bane_mob_biotypes, target_type = /mob/living, damage_multiplier = bane_multiplier, added_damage = bane_added_damage, requires_combat_mode = FALSE)
|
||||
|
||||
/obj/projectile/bullet/incendiary/fire/junk
|
||||
name = "burning oil"
|
||||
damage = 30
|
||||
fire_stacks = 5
|
||||
suppressed = SUPPRESSED_NONE
|
||||
|
||||
/obj/projectile/bullet/junk/phasic
|
||||
name = "junk phasic bullet"
|
||||
icon_state = "gaussphase"
|
||||
projectile_phasing = PASSTABLE | PASSGLASS | PASSGRILLE | PASSCLOSEDTURF | PASSMACHINE | PASSSTRUCTURE | PASSDOORS
|
||||
|
||||
/obj/projectile/bullet/junk/shock
|
||||
name = "bundle of live electrical parts"
|
||||
icon_state = "tesla_projectile"
|
||||
damage = 15
|
||||
embedding = null
|
||||
shrapnel_type = null
|
||||
bane_multiplier = 3
|
||||
|
||||
/obj/projectile/bullet/junk/shock/on_hit(atom/target, blocked = 0, pierce_hit)
|
||||
. = ..()
|
||||
if(isliving(target))
|
||||
var/mob/living/victim = target
|
||||
victim.electrocute_act(damage, src, siemens_coeff = 1, flags = SHOCK_NOSTUN)
|
||||
|
||||
/obj/projectile/bullet/junk/hunter
|
||||
name = "junk hunter bullet"
|
||||
icon_state = "gauss"
|
||||
bane_mob_biotypes = MOB_ROBOTIC | MOB_BEAST | MOB_SPECIAL
|
||||
bane_multiplier = 0
|
||||
bane_added_damage = 50
|
||||
|
||||
/obj/projectile/bullet/junk/ripper
|
||||
name = "junk ripper bullet"
|
||||
icon_state = "redtrac"
|
||||
damage = 10
|
||||
embedding = list(embed_chance=100, fall_chance=3, jostle_chance=4, ignore_throwspeed_threshold=TRUE, pain_stam_pct=0.4, pain_mult=5, jostle_pain_mult=6, rip_time=10)
|
||||
wound_bonus = 10
|
||||
bare_wound_bonus = 30
|
||||
|
||||
/obj/projectile/bullet/junk/reaper
|
||||
name = "junk reaper bullet"
|
||||
tracer_type = /obj/effect/projectile/tracer/sniper
|
||||
impact_type = /obj/effect/projectile/impact/sniper
|
||||
muzzle_type = /obj/effect/projectile/muzzle/sniper
|
||||
hitscan = TRUE
|
||||
impact_effect_type = null
|
||||
hitscan_light_intensity = 3
|
||||
hitscan_light_range = 0.75
|
||||
hitscan_light_color_override = LIGHT_COLOR_DIM_YELLOW
|
||||
muzzle_flash_intensity = 5
|
||||
muzzle_flash_range = 1
|
||||
muzzle_flash_color_override = LIGHT_COLOR_DIM_YELLOW
|
||||
impact_light_intensity = 5
|
||||
impact_light_range = 1
|
||||
impact_light_color_override = LIGHT_COLOR_DIM_YELLOW
|
||||
|
Before Width: | Height: | Size: 93 KiB After Width: | Height: | Size: 93 KiB |
|
Before Width: | Height: | Size: 124 KiB After Width: | Height: | Size: 125 KiB |
|
Before Width: | Height: | Size: 90 KiB After Width: | Height: | Size: 91 KiB |
|
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 79 KiB |
|
Before Width: | Height: | Size: 75 KiB After Width: | Height: | Size: 81 KiB |
|
Before Width: | Height: | Size: 134 KiB After Width: | Height: | Size: 136 KiB |
|
Before Width: | Height: | Size: 5.1 KiB After Width: | Height: | Size: 3.0 KiB |
@@ -5458,6 +5458,7 @@
|
||||
#include "code\modules\projectiles\ammunition\_firing.dm"
|
||||
#include "code\modules\projectiles\ammunition\ballistic\foam.dm"
|
||||
#include "code\modules\projectiles\ammunition\ballistic\harpoon.dm"
|
||||
#include "code\modules\projectiles\ammunition\ballistic\junk.dm"
|
||||
#include "code\modules\projectiles\ammunition\ballistic\lmg.dm"
|
||||
#include "code\modules\projectiles\ammunition\ballistic\pistol.dm"
|
||||
#include "code\modules\projectiles\ammunition\ballistic\revolver.dm"
|
||||
@@ -5541,6 +5542,7 @@
|
||||
#include "code\modules\projectiles\projectile\bullets\dnainjector.dm"
|
||||
#include "code\modules\projectiles\projectile\bullets\foam_dart.dm"
|
||||
#include "code\modules\projectiles\projectile\bullets\grenade.dm"
|
||||
#include "code\modules\projectiles\projectile\bullets\junk.dm"
|
||||
#include "code\modules\projectiles\projectile\bullets\lmg.dm"
|
||||
#include "code\modules\projectiles\projectile\bullets\pistol.dm"
|
||||
#include "code\modules\projectiles\projectile\bullets\revolver.dm"
|
||||
|
||||