mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-30 16:47:13 +01:00
Multiload Second Pass (ft. Speedloaders Will Be Real In 2025) (#92854)
## About The Pull Request Gets, yet again, more granular with multiload capabilities, by introducing `AMMO_BOX_MULTILOAD_OUT_LOADED`; ammo boxes flagged with this can speed-load ammo boxes that are currently inside another gun, like revolver cylinders or internal magazines. To accomodate for this, the previous flag that covered this, `AMMO_BOX_MULTILOAD_OUT` can no longer speedload into currently loaded magazines (e.g. internal magazines, including revolver cylinders). Also implements a base type for speedloaders, moving .38 and .357 speedloaders along with .310 stripper clips to this type, instead of being ammo boxes. Also features an UpdatePaths script for mappers, which is why there's so many files touched - repathing is a pain. Also also adds fancy types for ammo boxes, magazines, and speedloaders, which isn't particularly player-facing. Also also also makes the lionhunter ammo strip for the lionhunter rifle visually three rounds only instead of being perpetually half-full (or half-empty, depending on your pessimism). ## Why It's Good For The Game The hypothetical case of "ammo box that holds shotgun ammo" should probably... not... teleport as much of its ammo as possible into a tube-fed shotgun, but should probably still be okay at reloading magazines that actually go into shotguns. Or something. More relevant, reloading BR-38 magazines with speedloaders, while funny, probably also shouldn't be teleporting in six fresh rounds. ## Changelog 🆑 balance: General ammo boxes (not speedloaders, not stripper clips) can no longer multiload into currently loaded magazines (revolver cylinders, internal magazines). balance: Speedloaders are now a separate type from ammo boxes, and can only multiload into currently loaded magazines e.g. revolver cylinders. qol: Ammo boxes, magazines, and speedloaders now have fancier types for spawning in by admins. sprite: Lionhunter ammo clips are visually smaller now. /🆑 --------- Co-authored-by: Hatterhat <Hatterhat@users.noreply.github.com>
This commit is contained in:
@@ -1643,8 +1643,8 @@
|
||||
/obj/structure/rack,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/item/storage/toolbox/mechanical,
|
||||
/obj/item/ammo_box/c38,
|
||||
/obj/item/ammo_box/c38,
|
||||
/obj/item/ammo_box/speedloader/c38,
|
||||
/obj/item/ammo_box/speedloader/c38,
|
||||
/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{
|
||||
dir = 1
|
||||
},
|
||||
@@ -3666,7 +3666,7 @@
|
||||
/obj/structure/window/reinforced/spawner/directional/south,
|
||||
/obj/effect/spawner/random/contraband/permabrig_weapon,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
|
||||
/obj/item/ammo_box/c38,
|
||||
/obj/item/ammo_box/speedloader/c38,
|
||||
/obj/effect/turf_decal/tile/dark_red/anticorner,
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/ruin/space/has_grav/dangerous_research)
|
||||
|
||||
@@ -5135,8 +5135,8 @@
|
||||
/obj/item/spess_knife,
|
||||
/obj/item/clothing/suit/armor/vest/old,
|
||||
/obj/item/gun/ballistic/rifle/boltaction,
|
||||
/obj/item/ammo_box/strilka310,
|
||||
/obj/item/ammo_box/strilka310,
|
||||
/obj/item/ammo_box/speedloader/strilka310,
|
||||
/obj/item/ammo_box/speedloader/strilka310,
|
||||
/turf/open/floor/plating,
|
||||
/area/ruin/space/ancientstation/delta/hall)
|
||||
"BU" = (
|
||||
|
||||
@@ -2113,8 +2113,8 @@
|
||||
/area/awaymission/snowdin/post/hydro)
|
||||
"hZ" = (
|
||||
/obj/item/gun/ballistic/rifle/boltaction,
|
||||
/obj/item/ammo_box/strilka310,
|
||||
/obj/item/ammo_box/strilka310,
|
||||
/obj/item/ammo_box/speedloader/strilka310,
|
||||
/obj/item/ammo_box/speedloader/strilka310,
|
||||
/obj/structure/closet/secure_closet{
|
||||
icon_state = "sec";
|
||||
name = "security officer's locker";
|
||||
|
||||
@@ -27753,7 +27753,7 @@
|
||||
/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass,
|
||||
/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass,
|
||||
/obj/item/gun/ballistic/revolver/russian,
|
||||
/obj/item/ammo_box/a357,
|
||||
/obj/item/ammo_box/speedloader/c357,
|
||||
/obj/item/reagent_containers/cup/glass/bottle/vodka/badminka,
|
||||
/obj/effect/turf_decal/bot_white/left,
|
||||
/obj/effect/turf_decal/tile/neutral/fourcorners,
|
||||
|
||||
@@ -43380,7 +43380,7 @@
|
||||
/obj/item/lazarus_injector,
|
||||
/obj/item/gun/energy/disabler,
|
||||
/obj/item/gun/ballistic/revolver/russian,
|
||||
/obj/item/ammo_box/a357,
|
||||
/obj/item/ammo_box/speedloader/c357,
|
||||
/obj/item/clothing/neck/stethoscope,
|
||||
/obj/item/book{
|
||||
desc = "An undeniably handy book.";
|
||||
|
||||
@@ -9129,8 +9129,8 @@
|
||||
/area/centcom/central_command_areas/courtroom)
|
||||
"QY" = (
|
||||
/obj/item/storage/box/handcuffs,
|
||||
/obj/item/ammo_box/a357,
|
||||
/obj/item/ammo_box/a357,
|
||||
/obj/item/ammo_box/speedloader/c357,
|
||||
/obj/item/ammo_box/speedloader/c357,
|
||||
/obj/item/gun/ballistic/revolver/mateba,
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/machinery/firealarm/directional/south,
|
||||
|
||||
@@ -45154,7 +45154,7 @@
|
||||
/obj/structure/safe/vault,
|
||||
/obj/item/clothing/head/costume/bearpelt,
|
||||
/obj/item/gun/ballistic/revolver/russian,
|
||||
/obj/item/ammo_box/a357,
|
||||
/obj/item/ammo_box/speedloader/c357,
|
||||
/obj/effect/turf_decal/bot_white/left,
|
||||
/obj/effect/turf_decal/tile/neutral/fourcorners,
|
||||
/obj/machinery/light/dim/directional/east,
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
/area/centcom/basketball)
|
||||
"aw" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/ammo_box/strilka310,
|
||||
/obj/item/ammo_box/strilka310,
|
||||
/obj/item/ammo_box/strilka310,
|
||||
/obj/item/ammo_box/speedloader/strilka310,
|
||||
/obj/item/ammo_box/speedloader/strilka310,
|
||||
/obj/item/ammo_box/speedloader/strilka310,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
@@ -348,9 +348,9 @@
|
||||
/area/centcom/basketball)
|
||||
"Bd" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/ammo_box/strilka310,
|
||||
/obj/item/ammo_box/strilka310,
|
||||
/obj/item/ammo_box/strilka310,
|
||||
/obj/item/ammo_box/speedloader/strilka310,
|
||||
/obj/item/ammo_box/speedloader/strilka310,
|
||||
/obj/item/ammo_box/speedloader/strilka310,
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/centcom/basketball)
|
||||
"BJ" = (
|
||||
|
||||
@@ -876,7 +876,7 @@
|
||||
/area/deathmatch)
|
||||
"Kz" = (
|
||||
/obj/effect/spawner/random/trash/box,
|
||||
/obj/item/ammo_box/a357,
|
||||
/obj/item/ammo_box/speedloader/c357,
|
||||
/turf/open/indestructible/plating,
|
||||
/area/deathmatch)
|
||||
"KC" = (
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
locked = 0
|
||||
},
|
||||
/obj/effect/decal/cleanable/fuel_pool/hivis,
|
||||
/obj/item/ammo_box/c38,
|
||||
/obj/item/ammo_box/speedloader/c38,
|
||||
/obj/effect/turf_decal/stripes/asteroid/line{
|
||||
dir = 6
|
||||
},
|
||||
@@ -242,7 +242,7 @@
|
||||
locked = 0
|
||||
},
|
||||
/obj/effect/decal/cleanable/fuel_pool/hivis,
|
||||
/obj/item/ammo_box/c38,
|
||||
/obj/item/ammo_box/speedloader/c38,
|
||||
/obj/effect/turf_decal/stripes/asteroid/line{
|
||||
dir = 4
|
||||
},
|
||||
@@ -617,7 +617,7 @@
|
||||
/area/deathmatch)
|
||||
"EX" = (
|
||||
/obj/structure/lattice/catwalk,
|
||||
/obj/item/ammo_box/c38/match,
|
||||
/obj/item/ammo_box/speedloader/c38/match,
|
||||
/turf/open/chasm/true/no_smooth/fake_motion_sand/fast,
|
||||
/area/deathmatch)
|
||||
"Fa" = (
|
||||
@@ -932,7 +932,7 @@
|
||||
locked = 0
|
||||
},
|
||||
/obj/effect/decal/cleanable/fuel_pool/hivis,
|
||||
/obj/item/ammo_box/c38,
|
||||
/obj/item/ammo_box/speedloader/c38,
|
||||
/obj/effect/turf_decal/stripes/asteroid/line{
|
||||
dir = 4
|
||||
},
|
||||
|
||||
@@ -564,7 +564,7 @@
|
||||
/area/deathmatch)
|
||||
"Kb" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/ammo_box/strilka310/surplus,
|
||||
/obj/item/ammo_box/speedloader/strilka310/surplus,
|
||||
/turf/open/indestructible/dark/smooth_large,
|
||||
/area/deathmatch)
|
||||
"Kr" = (
|
||||
|
||||
@@ -242,7 +242,7 @@
|
||||
/obj/effect/turf_decal/siding/wood{
|
||||
dir = 4
|
||||
},
|
||||
/obj/item/ammo_box/strilka310,
|
||||
/obj/item/ammo_box/speedloader/strilka310,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/structure/railing/corner/end/flip{
|
||||
dir = 8
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
/obj/effect/turf_decal/trimline/dark_blue/corner{
|
||||
dir = 8
|
||||
},
|
||||
/obj/item/ammo_box/a357,
|
||||
/obj/item/ammo_box/speedloader/c357,
|
||||
/obj/item/gun/ballistic/revolver/golden,
|
||||
/turf/open/floor/iron/smooth_corner{
|
||||
dir = 8
|
||||
|
||||
@@ -147,25 +147,25 @@
|
||||
"gE" = (
|
||||
/obj/effect/turf_decal/tile/dark_blue/diagonal_edge,
|
||||
/obj/structure/table/reinforced/plasmarglass,
|
||||
/obj/item/ammo_box/c38/match{
|
||||
/obj/item/ammo_box/speedloader/c38/match{
|
||||
pixel_x = -5;
|
||||
pixel_y = 4
|
||||
},
|
||||
/obj/item/ammo_box/c38/match{
|
||||
/obj/item/ammo_box/speedloader/c38/match{
|
||||
pixel_x = -1;
|
||||
pixel_y = 4
|
||||
},
|
||||
/obj/item/ammo_box/c38/match{
|
||||
/obj/item/ammo_box/speedloader/c38/match{
|
||||
pixel_x = 3;
|
||||
pixel_y = 4
|
||||
},
|
||||
/obj/item/ammo_box/c38/match{
|
||||
/obj/item/ammo_box/speedloader/c38/match{
|
||||
pixel_x = -8
|
||||
},
|
||||
/obj/item/ammo_box/c38/match{
|
||||
/obj/item/ammo_box/speedloader/c38/match{
|
||||
pixel_x = -4
|
||||
},
|
||||
/obj/item/ammo_box/c38/match,
|
||||
/obj/item/ammo_box/speedloader/c38/match,
|
||||
/turf/open/floor/iron/white/diagonal,
|
||||
/area/shuttle/hunter)
|
||||
"gW" = (
|
||||
|
||||
@@ -173,10 +173,10 @@
|
||||
/obj/structure/closet/crate/secure/weapon{
|
||||
name = "surplus crate"
|
||||
},
|
||||
/obj/item/ammo_box/strilka310,
|
||||
/obj/item/ammo_box/strilka310,
|
||||
/obj/item/ammo_box/strilka310,
|
||||
/obj/item/ammo_box/strilka310,
|
||||
/obj/item/ammo_box/speedloader/strilka310,
|
||||
/obj/item/ammo_box/speedloader/strilka310,
|
||||
/obj/item/ammo_box/speedloader/strilka310,
|
||||
/obj/item/ammo_box/speedloader/strilka310,
|
||||
/turf/open/floor/pod/dark,
|
||||
/area/shuttle/hunter/russian)
|
||||
"qF" = (
|
||||
@@ -611,7 +611,7 @@
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/item/gun/ballistic/automatic/pistol,
|
||||
/obj/item/ammo_box/magazine/m9mm,
|
||||
/obj/item/ammo_box/strilka310,
|
||||
/obj/item/ammo_box/speedloader/strilka310,
|
||||
/obj/item/crowbar,
|
||||
/turf/open/floor/pod/dark,
|
||||
/area/shuttle/hunter/russian)
|
||||
|
||||
@@ -802,18 +802,18 @@
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/bot,
|
||||
/obj/item/ammo_box/strilka310/phasic{
|
||||
/obj/item/ammo_box/speedloader/strilka310/phasic{
|
||||
pixel_y = -5;
|
||||
pixel_x = 5
|
||||
},
|
||||
/obj/item/ammo_box/strilka310/phasic{
|
||||
/obj/item/ammo_box/speedloader/strilka310/phasic{
|
||||
pixel_x = 5
|
||||
},
|
||||
/obj/item/ammo_box/strilka310/phasic{
|
||||
/obj/item/ammo_box/speedloader/strilka310/phasic{
|
||||
pixel_x = -5;
|
||||
pixel_y = -5
|
||||
},
|
||||
/obj/item/ammo_box/strilka310/phasic{
|
||||
/obj/item/ammo_box/speedloader/strilka310/phasic{
|
||||
pixel_x = -5
|
||||
},
|
||||
/obj/item/gun/ballistic/rifle/boltaction/prime{
|
||||
|
||||
@@ -2221,11 +2221,11 @@
|
||||
pixel_y = 4
|
||||
},
|
||||
/obj/item/ammo_box/c10mm,
|
||||
/obj/item/ammo_box/a357{
|
||||
/obj/item/ammo_box/speedloader/c357{
|
||||
icon_state = "357-7";
|
||||
pixel_y = 3
|
||||
},
|
||||
/obj/item/ammo_box/a357{
|
||||
/obj/item/ammo_box/speedloader/c357{
|
||||
icon_state = "357-7";
|
||||
pixel_x = 2
|
||||
},
|
||||
@@ -2376,7 +2376,7 @@
|
||||
/obj/item/storage/lockbox/medal{
|
||||
req_access = list("syndicate_leader")
|
||||
},
|
||||
/obj/item/ammo_box/a357{
|
||||
/obj/item/ammo_box/speedloader/c357{
|
||||
icon_state = "357-7";
|
||||
pixel_x = 2
|
||||
},
|
||||
|
||||
@@ -4083,7 +4083,7 @@
|
||||
/area/virtual_domain)
|
||||
"Il" = (
|
||||
/obj/structure/lattice,
|
||||
/obj/item/ammo_box/strilka310/surplus,
|
||||
/obj/item/ammo_box/speedloader/strilka310/surplus,
|
||||
/turf/open/space/basic,
|
||||
/area/virtual_domain)
|
||||
"Io" = (
|
||||
|
||||
@@ -236,16 +236,22 @@ GLOBAL_LIST_INIT(shove_disarming_types, typecacheof(list(
|
||||
// Ammo box multiload defines
|
||||
/// Ammo box does not accept multiload in or out, e.g. ammo box CANNOT transfer multiple casings in one action, either IN or OUT.
|
||||
#define AMMO_BOX_MULTILOAD_NONE 0
|
||||
/// Ammo box accepts multiload going in, e.g. ammo box can transfer multiple casings IN at once.
|
||||
/// Ammo box accepts multiload going in, e.g. a magazine being fed from a stripper clip.
|
||||
#define AMMO_BOX_MULTILOAD_IN (1 << 0)
|
||||
/// Ammo box accepts multiload going out, e.g. ammo box can transfer multiple casings OUT at once.
|
||||
/// Ammo box can multiload going out to other ammo boxes, but not loaded magazines, e.g. an ammo box feeding into an unloaded magazine.
|
||||
#define AMMO_BOX_MULTILOAD_OUT (1 << 1)
|
||||
/// Ammo box can multiload going out into loaded magazines, e.g. a speedloader feeding into a revolver's cylinder or a stripper clip feeding into a loaded magazine.
|
||||
#define AMMO_BOX_MULTILOAD_OUT_LOADED (1 << 2)
|
||||
/// Ammo box accepts multiload in AND out, e.g. ammo box can transfer multiple casings IN at once *and* OUT at once.
|
||||
#define AMMO_BOX_MULTILOAD_BOTH AMMO_BOX_MULTILOAD_IN | AMMO_BOX_MULTILOAD_OUT
|
||||
/// Ammo boxes are assumed to have some variety of magazine loading assistance.
|
||||
#define AMMO_BOX_MULTILOAD_BOTH (AMMO_BOX_MULTILOAD_IN | AMMO_BOX_MULTILOAD_OUT)
|
||||
/// Ammo box can accept multiloads, AND can give multiloads to boxes that are loaded or not loaded. Individual stripper clips would count for this.
|
||||
#define AMMO_BOX_MULTILOAD_ALL (AMMO_BOX_MULTILOAD_IN | AMMO_BOX_MULTILOAD_OUT | AMMO_BOX_MULTILOAD_OUT_LOADED)
|
||||
|
||||
DEFINE_BITFIELD(ammo_box_multiload, list(
|
||||
"LOAD_IN" = AMMO_BOX_MULTILOAD_IN,
|
||||
"LOAD_OUT" = AMMO_BOX_MULTILOAD_OUT,
|
||||
"LOAD_OUT_LOADED" = AMMO_BOX_MULTILOAD_OUT_LOADED,
|
||||
))
|
||||
|
||||
#define SUPPRESSED_NONE 0
|
||||
|
||||
@@ -29,6 +29,9 @@
|
||||
/obj/item/organ = "ORGAN",
|
||||
/obj/item/mod/control = "MODSUIT",
|
||||
/obj/item/mod/module = "MODSUIT_MOD",
|
||||
/obj/item/ammo_box = "AMMOBOX",
|
||||
/obj/item/ammo_box/magazine = "AMMOBOX_MAGAZINE",
|
||||
/obj/item/ammo_box/speedloader = "AMMOBOX_SPEEDLOADER",
|
||||
/obj/item/gun = "GUN",
|
||||
/obj/item/gun/magic = "GUN_MAGIC",
|
||||
/obj/item/gun/energy = "GUN_ENERGY",
|
||||
|
||||
@@ -323,7 +323,7 @@
|
||||
/datum/storage/unfathomable_curio/New(atom/parent, max_slots, max_specific_storage, max_total_storage, rustle_sound, remove_rustle_sound)
|
||||
. = ..()
|
||||
set_holdable(list(
|
||||
/obj/item/ammo_box/strilka310/lionhunter,
|
||||
/obj/item/ammo_box/speedloader/strilka310/lionhunter,
|
||||
/obj/item/heretic_labyrinth_handbook,
|
||||
/obj/item/bodypart, // Bodyparts are often used in rituals.
|
||||
/obj/item/clothing/neck/eldritch_amulet,
|
||||
|
||||
@@ -55,9 +55,7 @@
|
||||
/obj/item/ammo_box/magazine/m45,
|
||||
/obj/item/ammo_box/magazine/m50,
|
||||
/obj/item/gun/ballistic/revolver,
|
||||
/obj/item/ammo_box/c38, // Revolver speedloaders.
|
||||
/obj/item/ammo_box/a357,
|
||||
/obj/item/ammo_box/strilka310,
|
||||
/obj/item/ammo_box/speedloader, // Speedloaders, which includes stripper clips on a technicality.
|
||||
/obj/item/ammo_box/magazine/toy/pistol,
|
||||
/obj/item/gun/energy/e_gun/mini,
|
||||
/obj/item/gun/energy/disabler,
|
||||
@@ -84,9 +82,7 @@
|
||||
/obj/item/ammo_box/magazine/m45,
|
||||
/obj/item/ammo_box/magazine/m50,
|
||||
/obj/item/gun/ballistic/revolver,
|
||||
/obj/item/ammo_box/c38,
|
||||
/obj/item/ammo_box/a357,
|
||||
/obj/item/ammo_box/strilka310,
|
||||
/obj/item/ammo_box/speedloader,
|
||||
/obj/item/ammo_box/magazine/toy/pistol,
|
||||
/obj/item/gun/energy/recharge/ebow,
|
||||
/obj/item/gun/energy/e_gun/mini,
|
||||
@@ -107,9 +103,7 @@
|
||||
holdables = list(
|
||||
/obj/item/gun, // ALL guns.
|
||||
/obj/item/ammo_box/magazine, // ALL magazines.
|
||||
/obj/item/ammo_box/c38, //There isn't a speedloader parent type, so I just put these three here by hand.
|
||||
/obj/item/ammo_box/a357, //I didn't want to just use /obj/item/ammo_box, because then this could hold huge boxes of ammo.
|
||||
/obj/item/ammo_box/strilka310,
|
||||
/obj/item/ammo_box/speedloader, // ALL speedloaders (there's 3 types at time of writing so it's probably fine)
|
||||
/obj/item/ammo_casing, // For shotgun shells, rockets, launcher grenades, and a few other things.
|
||||
/obj/item/grenade, // All regular grenades, the big grenade launcher fires these.
|
||||
)
|
||||
|
||||
@@ -213,7 +213,7 @@
|
||||
/obj/item/reagent_containers/cup/glass/bottle/vodka,
|
||||
/obj/item/reagent_containers/cup/glass/bottle/molotov,
|
||||
/obj/item/reagent_containers/cup/glass/drinkingglass,
|
||||
/obj/item/ammo_box/strilka310
|
||||
/obj/item/ammo_box/speedloader/strilka310
|
||||
))
|
||||
|
||||
///Void cloak pocket
|
||||
@@ -231,7 +231,7 @@
|
||||
. = ..()
|
||||
set_holdable(
|
||||
can_hold_list = list(
|
||||
/obj/item/ammo_box/strilka310/lionhunter,
|
||||
/obj/item/ammo_box/speedloader/strilka310/lionhunter,
|
||||
/obj/item/bodypart, // Bodyparts are often used in rituals. They're also often normal sized, so you can only fit one.
|
||||
/obj/item/clothing/neck/eldritch_amulet,
|
||||
/obj/item/clothing/neck/heretic_focus,
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
/obj/effect/spawner/random/sakhno/ammo
|
||||
name = ".310 Strilka stripper clip spawner"
|
||||
loot = list(
|
||||
/obj/item/ammo_box/strilka310/surplus = 80,
|
||||
/obj/item/ammo_box/strilka310 = 10,
|
||||
/obj/item/ammo_box/speedloader/strilka310/surplus = 80,
|
||||
/obj/item/ammo_box/speedloader/strilka310 = 10,
|
||||
/obj/item/food/rationpack = 1,
|
||||
)
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
|
||||
/obj/item/storage/belt/holster/detective/full/PopulateContents()
|
||||
generate_items_inside(list(
|
||||
/obj/item/ammo_box/c38 = 2,
|
||||
/obj/item/ammo_box/speedloader/c38 = 2,
|
||||
/obj/item/gun/ballistic/revolver/c38/detective = 1,
|
||||
), src)
|
||||
|
||||
@@ -99,7 +99,7 @@
|
||||
|
||||
/obj/item/storage/belt/holster/nukie/cowboy/full/PopulateContents()
|
||||
generate_items_inside(list(
|
||||
/obj/item/ammo_box/a357 = 2,
|
||||
/obj/item/ammo_box/speedloader/c357 = 2,
|
||||
/obj/item/gun/ballistic/revolver/cowboy/nuclear = 1,
|
||||
), src)
|
||||
|
||||
|
||||
@@ -39,10 +39,10 @@
|
||||
name = ".310 Strilka ammo box (Surplus?)"
|
||||
desc = "It contains a few clips. Goddamn, this thing smells awful. \
|
||||
Has this been sitting in a warehouse for the last several centuries?"
|
||||
ammo_to_spawn = /obj/item/ammo_box/strilka310
|
||||
ammo_to_spawn = /obj/item/ammo_box/speedloader/strilka310
|
||||
|
||||
/obj/item/storage/toolbox/ammobox/strilka310/surplus
|
||||
ammo_to_spawn = /obj/item/ammo_box/strilka310/surplus
|
||||
ammo_to_spawn = /obj/item/ammo_box/speedloader/strilka310/surplus
|
||||
|
||||
/obj/item/storage/toolbox/ammobox/wt550m9
|
||||
name = "4.6x30mm ammo box"
|
||||
@@ -196,7 +196,7 @@
|
||||
/obj/item/storage/toolbox/guncase/revolver
|
||||
name = "revolver gun case"
|
||||
weapon_to_spawn = /obj/item/gun/ballistic/revolver/badass/nuclear
|
||||
extra_to_spawn = /obj/item/ammo_box/a357
|
||||
extra_to_spawn = /obj/item/ammo_box/speedloader/c357
|
||||
|
||||
/obj/item/storage/toolbox/guncase/sword_and_board
|
||||
name = "energy sword and shield weapon case"
|
||||
|
||||
@@ -79,8 +79,8 @@
|
||||
|
||||
if(KIT_GUN)
|
||||
new /obj/item/gun/ballistic/revolver(src) // 13 tc
|
||||
new /obj/item/ammo_box/a357(src) // 4tc
|
||||
new /obj/item/ammo_box/a357(src)
|
||||
new /obj/item/ammo_box/speedloader/c357(src) // 4tc
|
||||
new /obj/item/ammo_box/speedloader/c357(src)
|
||||
new /obj/item/storage/belt/holster/chameleon(src) // 1 tc
|
||||
new /obj/item/card/emag/doorjack(src) // 3 tc replaced the emag with the doorjack
|
||||
new /obj/item/grenade/c4(src) // 1 tc
|
||||
|
||||
@@ -14,8 +14,8 @@
|
||||
new /obj/item/ammo_box/magazine/m50(src)
|
||||
new /obj/item/gun/ballistic/automatic/pistol/deagle(src)
|
||||
else
|
||||
new /obj/item/ammo_box/a357(src)
|
||||
new /obj/item/ammo_box/a357(src)
|
||||
new /obj/item/ammo_box/speedloader/c357(src)
|
||||
new /obj/item/ammo_box/speedloader/c357(src)
|
||||
new /obj/item/gun/ballistic/revolver/mateba(src)
|
||||
|
||||
/obj/structure/closet/secure_closet/ert_com/populate_contents_immediate()
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
gloves = /obj/item/clothing/gloves/tackler/combat
|
||||
head = /obj/item/clothing/head/helmet/alt
|
||||
shoes = /obj/item/clothing/shoes/russian
|
||||
l_pocket = /obj/item/ammo_box/strilka310
|
||||
l_pocket = /obj/item/ammo_box/speedloader/strilka310
|
||||
r_pocket = /obj/item/restraints/handcuffs/cable/zipties
|
||||
id = /obj/item/card/id/advanced/bountyhunter
|
||||
|
||||
|
||||
@@ -174,10 +174,10 @@
|
||||
return ..()
|
||||
|
||||
// Extra ammunition can be made with a heretic ritual.
|
||||
/obj/item/ammo_box/strilka310/lionhunter
|
||||
/obj/item/ammo_box/speedloader/strilka310/lionhunter
|
||||
name = "stripper clip (.310 hunter)"
|
||||
desc = "A stripper clip of mysterious, atypical ammo. It doesn't fit into normal ballistic rifles."
|
||||
icon_state = "310_strip"
|
||||
icon_state = "lionhunter_strip"
|
||||
ammo_type = /obj/item/ammo_casing/strilka310/lionhunter
|
||||
max_ammo = 3
|
||||
multiple_sprites = AMMO_BOX_PER_BULLET
|
||||
|
||||
@@ -79,7 +79,7 @@
|
||||
required_atoms = list(
|
||||
/obj/item/ammo_casing = 3,
|
||||
)
|
||||
result_atoms = list(/obj/item/ammo_box/strilka310/lionhunter)
|
||||
result_atoms = list(/obj/item/ammo_box/speedloader/strilka310/lionhunter)
|
||||
cost = 0
|
||||
|
||||
research_tree_icon_path = 'icons/obj/weapons/guns/ammo.dmi'
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
/// Corresponding ammo
|
||||
var/list/corresponding_ammo = list(
|
||||
/obj/item/ammo_box/magazine/m9mm,
|
||||
/obj/item/ammo_box/strilka310,
|
||||
/obj/item/ammo_box/speedloader/strilka310,
|
||||
/obj/item/ammo_box/magazine/uzim9mm,
|
||||
/obj/item/ammo_box/magazine/m50,
|
||||
/obj/item/food/pizzaslice/dank, // more silly, less destructive
|
||||
|
||||
@@ -17,21 +17,21 @@
|
||||
desc = "Contains one speedloader of .38 DumDum ammunition, good for embedding in soft targets."
|
||||
cost = PAYCHECK_CREW * 2
|
||||
access_view = ACCESS_WEAPONS
|
||||
contains = list(/obj/item/ammo_box/c38/dumdum)
|
||||
contains = list(/obj/item/ammo_box/speedloader/c38/dumdum)
|
||||
|
||||
/datum/supply_pack/goody/match38
|
||||
name = ".38 Match Grade Speedloader Single-Pack"
|
||||
desc = "Contains one speedloader of match grade .38 ammunition, perfect for showing off trickshots."
|
||||
cost = PAYCHECK_CREW * 2
|
||||
access_view = ACCESS_WEAPONS
|
||||
contains = list(/obj/item/ammo_box/c38/match)
|
||||
contains = list(/obj/item/ammo_box/speedloader/c38/match)
|
||||
|
||||
/datum/supply_pack/goody/rubber
|
||||
name = ".38 Rubber Speedloader Single-Pack"
|
||||
desc = "Contains one speedloader of bouncy rubber .38 ammunition, for when you want to bounce your shots off anything and everything."
|
||||
cost = PAYCHECK_CREW * 1.5
|
||||
access_view = ACCESS_WEAPONS
|
||||
contains = list(/obj/item/ammo_box/c38/match/bouncy)
|
||||
contains = list(/obj/item/ammo_box/speedloader/c38/match/bouncy)
|
||||
|
||||
/datum/supply_pack/goody/dumdum38br
|
||||
name = ".38 DumDum Magazine Single-Pack"
|
||||
|
||||
@@ -224,8 +224,8 @@
|
||||
cost = CARGO_CRATE_VALUE * 12
|
||||
contains = list(
|
||||
/obj/item/food/rationpack,
|
||||
/obj/item/ammo_box/strilka310,
|
||||
/obj/item/ammo_box/strilka310/surplus,
|
||||
/obj/item/ammo_box/speedloader/strilka310,
|
||||
/obj/item/ammo_box/speedloader/strilka310/surplus,
|
||||
/obj/effect/spawner/random/armory/strilka,
|
||||
/obj/item/gun_maintenance_supplies,
|
||||
/obj/item/clothing/suit/armor/vest/russian,
|
||||
|
||||
@@ -11,9 +11,9 @@
|
||||
access_view = ACCESS_ARMORY
|
||||
contains = list(/obj/item/storage/box/beanbag = 3,
|
||||
/obj/item/storage/box/rubbershot = 3,
|
||||
/obj/item/ammo_box/c38/trac,
|
||||
/obj/item/ammo_box/c38/hotshot,
|
||||
/obj/item/ammo_box/c38/iceblox,
|
||||
/obj/item/ammo_box/speedloader/c38/trac,
|
||||
/obj/item/ammo_box/speedloader/c38/hotshot,
|
||||
/obj/item/ammo_box/speedloader/c38/iceblox,
|
||||
)
|
||||
crate_name = "ammo crate"
|
||||
|
||||
@@ -321,7 +321,7 @@
|
||||
desc = "Contains four tracking implants and three tracking speedloaders of tracing .38 ammo."
|
||||
cost = CARGO_CRATE_VALUE * 4.5
|
||||
contains = list(/obj/item/storage/box/trackimp,
|
||||
/obj/item/ammo_box/c38/trac = 3,
|
||||
/obj/item/ammo_box/speedloader/c38/trac = 3,
|
||||
)
|
||||
crate_name = "tracking implant crate"
|
||||
|
||||
|
||||
@@ -304,8 +304,8 @@
|
||||
glasses = /obj/item/clothing/glasses/sunglasses
|
||||
gloves = /obj/item/clothing/gloves/color/black
|
||||
shoes = /obj/item/clothing/shoes/sneakers/black
|
||||
l_pocket = /obj/item/ammo_box/strilka310
|
||||
r_pocket = /obj/item/ammo_box/strilka310
|
||||
l_pocket = /obj/item/ammo_box/speedloader/strilka310
|
||||
r_pocket = /obj/item/ammo_box/speedloader/strilka310
|
||||
l_hand = /obj/item/gun/ballistic/rifle/boltaction
|
||||
|
||||
/datum/outfit/centcom/centcom_intern/post_equip(mob/living/carbon/human/H, visuals_only = FALSE)
|
||||
@@ -434,7 +434,7 @@
|
||||
back = /obj/item/mod/control/pre_equipped/apocryphal
|
||||
box = /obj/item/storage/box/survival/centcom
|
||||
backpack_contents = list(
|
||||
/obj/item/ammo_box/a357 = 1,
|
||||
/obj/item/ammo_box/speedloader/c357 = 1,
|
||||
/obj/item/flashlight = 1,
|
||||
/obj/item/grenade/c4/x4 = 1,
|
||||
/obj/item/storage/box/flashbangs = 1,
|
||||
|
||||
@@ -221,7 +221,7 @@
|
||||
sec_briefcase.contents += new /obj/item/stack/spacecash/c1000
|
||||
sec_briefcase.contents += new /obj/item/gun/energy/recharge/ebow
|
||||
sec_briefcase.contents += new /obj/item/gun/ballistic/revolver/mateba
|
||||
sec_briefcase.contents += new /obj/item/ammo_box/a357
|
||||
sec_briefcase.contents += new /obj/item/ammo_box/speedloader/c357
|
||||
sec_briefcase.contents += new /obj/item/grenade/c4/x4
|
||||
|
||||
var/obj/item/modular_computer/pda/heads/pda = H.belt
|
||||
@@ -247,7 +247,7 @@
|
||||
head = /obj/item/clothing/head/hats/centhat
|
||||
mask = /obj/item/cigarette/cigar/cohiba
|
||||
shoes = /obj/item/clothing/shoes/combat/swat
|
||||
l_pocket = /obj/item/ammo_box/a357
|
||||
l_pocket = /obj/item/ammo_box/speedloader/c357
|
||||
r_pocket = /obj/item/lighter
|
||||
|
||||
/datum/outfit/centcom/commander/post_equip(mob/living/carbon/human/H, visuals_only = FALSE)
|
||||
|
||||
@@ -176,7 +176,7 @@
|
||||
|
||||
backpack_contents = list(
|
||||
/obj/item/grenade/smokebomb = 2,
|
||||
/obj/item/ammo_box/strilka310 = 2,
|
||||
/obj/item/ammo_box/speedloader/strilka310 = 2,
|
||||
)
|
||||
|
||||
/datum/outfit/deathmatch_loadout/battler/druid
|
||||
@@ -1071,8 +1071,8 @@
|
||||
belt = /obj/item/storage/belt/unfathomable_curio
|
||||
gloves = null
|
||||
shoes = /obj/item/clothing/shoes/winterboots/ice_boots
|
||||
l_pocket = /obj/item/ammo_box/strilka310/lionhunter
|
||||
r_pocket = /obj/item/ammo_box/strilka310/lionhunter
|
||||
l_pocket = /obj/item/ammo_box/speedloader/strilka310/lionhunter
|
||||
r_pocket = /obj/item/ammo_box/speedloader/strilka310/lionhunter
|
||||
|
||||
back = /obj/item/gun/ballistic/rifle/lionhunter // for his neutral b, he wields a gun
|
||||
|
||||
|
||||
@@ -29,12 +29,12 @@
|
||||
|
||||
mail_goodies = list(
|
||||
/obj/item/storage/fancy/cigarettes = 25,
|
||||
/obj/item/ammo_box/c38 = 20,
|
||||
/obj/item/ammo_box/c38/dumdum = 5,
|
||||
/obj/item/ammo_box/c38/hotshot = 5,
|
||||
/obj/item/ammo_box/c38/iceblox = 5,
|
||||
/obj/item/ammo_box/c38/match = 5,
|
||||
/obj/item/ammo_box/c38/trac = 5,
|
||||
/obj/item/ammo_box/speedloader/c38 = 20,
|
||||
/obj/item/ammo_box/speedloader/c38/dumdum = 5,
|
||||
/obj/item/ammo_box/speedloader/c38/hotshot = 5,
|
||||
/obj/item/ammo_box/speedloader/c38/iceblox = 5,
|
||||
/obj/item/ammo_box/speedloader/c38/match = 5,
|
||||
/obj/item/ammo_box/speedloader/c38/trac = 5,
|
||||
/obj/item/card/id/advanced/plainclothes = 5,
|
||||
/obj/item/storage/belt/holster/detective/full = 1,
|
||||
)
|
||||
|
||||
@@ -47,10 +47,10 @@
|
||||
. = ..()
|
||||
if(check_holidays(GARBAGEDAY))
|
||||
backpack_contents += list(/obj/item/gun/ballistic/revolver)
|
||||
r_pocket = /obj/item/ammo_box/a357
|
||||
r_pocket = /obj/item/ammo_box/speedloader/c357
|
||||
|
||||
/datum/outfit/job/janitor/get_types_to_preload()
|
||||
. = ..()
|
||||
if(check_holidays(GARBAGEDAY))
|
||||
. += /obj/item/gun/ballistic/revolver
|
||||
. += /obj/item/ammo_box/a357
|
||||
. += /obj/item/ammo_box/speedloader/c357
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
var/multiple_sprite_use_base = FALSE
|
||||
///String, used for checking if ammo of different types but still fits can fit inside it; generally used for magazines
|
||||
var/caliber
|
||||
/// Determines whether ammo boxes can multiload in or out.
|
||||
/// Determines whether ammo boxes can multiload in or out. See code/__DEFINES/combat.dm for details.
|
||||
var/ammo_box_multiload = AMMO_BOX_MULTILOAD_BOTH
|
||||
|
||||
///Whether the magazine should start with nothing in it
|
||||
@@ -189,7 +189,17 @@
|
||||
if(did_load)
|
||||
other_box.stored_ammo -= casing
|
||||
num_loaded++
|
||||
if(!did_load || !(ammo_box_multiload & AMMO_BOX_MULTILOAD_IN) || !(other_box.ammo_box_multiload & AMMO_BOX_MULTILOAD_OUT))
|
||||
// failed to load (full already? ran out of ammo?)
|
||||
if(!did_load)
|
||||
break
|
||||
// this box can't accept being multiloaded into
|
||||
if(!(ammo_box_multiload & AMMO_BOX_MULTILOAD_IN))
|
||||
break
|
||||
// the other box can't give multiple bullets in one go to an unloaded magazine
|
||||
if(!isgun(loc) && !(other_box.ammo_box_multiload & AMMO_BOX_MULTILOAD_OUT))
|
||||
break
|
||||
// the other box can't give multiple bullets in one go to a loaded magazine
|
||||
if(isgun(loc) && !(other_box.ammo_box_multiload & AMMO_BOX_MULTILOAD_OUT_LOADED))
|
||||
break
|
||||
|
||||
if(num_loaded)
|
||||
|
||||
@@ -1,108 +1,3 @@
|
||||
/obj/item/ammo_box/a357
|
||||
name = "speed loader (.357)"
|
||||
desc = "Designed to quickly reload revolvers."
|
||||
icon_state = "357"
|
||||
ammo_type = /obj/item/ammo_casing/c357
|
||||
max_ammo = 7
|
||||
caliber = CALIBER_357
|
||||
multiple_sprites = AMMO_BOX_PER_BULLET
|
||||
item_flags = NO_MAT_REDEMPTION
|
||||
ammo_band_icon = "+357_ammo_band"
|
||||
ammo_band_color = null
|
||||
|
||||
/obj/item/ammo_box/a357/match
|
||||
name = "speed loader (.357 Match)"
|
||||
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/c357/match
|
||||
ammo_band_color = "#77828a"
|
||||
|
||||
/obj/item/ammo_box/a357/phasic
|
||||
name = "speed loader (.357 Phasic)"
|
||||
desc = "Designed to quickly reload revolvers. Holds phasic ammo, also known as 'Ghost Lead', allowing it to pass through non-organic material."
|
||||
ammo_type = /obj/item/ammo_casing/c357/phasic
|
||||
ammo_band_color = "#693a6a"
|
||||
|
||||
/obj/item/ammo_box/a357/heartseeker
|
||||
name = "speed loader (.357 Heartseeker)"
|
||||
desc = "Designed to quickly reload revolvers. Holds heartseeker ammo, which veers into targets with exceptional precision using \
|
||||
an unknown method. It apparently predicts movement using neural pulses in the brain, but that's less marketable. \
|
||||
As seen in the hit NTFlik horror-space western film, Forget-Me-Not! Brought to you by Roseus Galactic!"
|
||||
ammo_type = /obj/item/ammo_casing/c357/heartseeker
|
||||
ammo_band_color = "#a91e1e"
|
||||
|
||||
/obj/item/ammo_box/c38
|
||||
name = "speed loader (.38)"
|
||||
desc = "Designed to quickly reload revolvers."
|
||||
icon_state = "38"
|
||||
base_icon_state = "38"
|
||||
ammo_type = /obj/item/ammo_casing/c38
|
||||
max_ammo = 6
|
||||
caliber = CALIBER_38
|
||||
multiple_sprites = AMMO_BOX_PER_BULLET
|
||||
custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT)
|
||||
ammo_band_icon = "+38_ammo_band"
|
||||
ammo_band_color = null
|
||||
|
||||
/obj/item/ammo_box/c38/update_icon_state()
|
||||
. = ..()
|
||||
icon_state = "[base_icon_state]-base"
|
||||
|
||||
/obj/item/ammo_box/c38/update_overlays()
|
||||
. = ..()
|
||||
if(!LAZYLEN(stored_ammo))
|
||||
return
|
||||
for(var/inserted_ammo in 1 to stored_ammo.len)
|
||||
var/obj/item/ammo_casing/c38/boolet = stored_ammo[inserted_ammo]
|
||||
. += "38-[boolet::lead_or_laser]-[inserted_ammo]"
|
||||
|
||||
/obj/item/ammo_box/c38/trac
|
||||
name = "speed loader (.38 TRAC)"
|
||||
desc = "Designed to quickly reload revolvers. TRAC bullets embed a tracking implant within the target's body."
|
||||
ammo_type = /obj/item/ammo_casing/c38/trac
|
||||
ammo_band_color = COLOR_AMMO_TRACK
|
||||
|
||||
/obj/item/ammo_box/c38/match
|
||||
name = "speed loader (.38 Match)"
|
||||
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
|
||||
ammo_band_color = COLOR_AMMO_MATCH
|
||||
|
||||
/obj/item/ammo_box/c38/match/bouncy
|
||||
name = "speed loader (.38 Rubber)"
|
||||
desc = "Designed to quickly reload revolvers. These rounds are incredibly bouncy and MOSTLY nonlethal, making them great to show off trickshots with."
|
||||
ammo_type = /obj/item/ammo_casing/c38/match/bouncy
|
||||
ammo_band_color = COLOR_AMMO_RUBBER
|
||||
|
||||
/obj/item/ammo_box/c38/true
|
||||
name = "speed loader (.38 True Strike)"
|
||||
desc = "Designed to quickly reload revolvers. Bullets bounce towards new targets with surprising accuracy."
|
||||
ammo_type = /obj/item/ammo_casing/c38/match/true
|
||||
ammo_band_color = COLOR_AMMO_TRUESTRIKE
|
||||
|
||||
/obj/item/ammo_box/c38/dumdum
|
||||
name = "speed loader (.38 DumDum)"
|
||||
desc = "Designed to quickly reload revolvers. These rounds expand on impact, allowing them to shred the target and cause massive bleeding. Very weak against armor and distant targets."
|
||||
ammo_type = /obj/item/ammo_casing/c38/dumdum
|
||||
ammo_band_color = COLOR_AMMO_DUMDUM
|
||||
|
||||
/obj/item/ammo_box/c38/hotshot
|
||||
name = "speed loader (.38 Hot Shot)"
|
||||
desc = "Designed to quickly reload revolvers. Hot Shot bullets contain an incendiary payload."
|
||||
ammo_type = /obj/item/ammo_casing/c38/hotshot
|
||||
ammo_band_color = COLOR_AMMO_HOTSHOT
|
||||
|
||||
/obj/item/ammo_box/c38/iceblox
|
||||
name = "speed loader (.38 Iceblox)"
|
||||
desc = "Designed to quickly reload revolvers. Iceblox bullets contain a cryogenic payload."
|
||||
ammo_type = /obj/item/ammo_casing/c38/iceblox
|
||||
ammo_band_color = COLOR_AMMO_ICEBLOX
|
||||
|
||||
/obj/item/ammo_box/c38/flare
|
||||
name = "speed loader (.38 Flare)"
|
||||
desc = "Designed to quickly reload revolvers. Flare casings launch a concentrated particle beam towards a target, lighting them up for everyone to see."
|
||||
ammo_type = /obj/item/ammo_casing/c38/flare
|
||||
ammo_band_color = COLOR_AMMO_HELLFIRE
|
||||
|
||||
/obj/item/ammo_box/c9mm
|
||||
name = "ammo box (9mm)"
|
||||
icon_state = "9mmbox"
|
||||
@@ -142,25 +37,6 @@
|
||||
/obj/item/ammo_box/rocket/can_load(mob/user)
|
||||
return FALSE
|
||||
|
||||
/obj/item/ammo_box/strilka310
|
||||
name = "stripper clip (.310 Strilka)"
|
||||
desc = "A stripper clip."
|
||||
icon_state = "310_strip"
|
||||
ammo_type = /obj/item/ammo_casing/strilka310
|
||||
max_ammo = 5
|
||||
caliber = CALIBER_STRILKA310
|
||||
multiple_sprites = AMMO_BOX_PER_BULLET
|
||||
|
||||
/obj/item/ammo_box/strilka310/surplus
|
||||
name = "stripper clip (.310 Surplus)"
|
||||
ammo_type = /obj/item/ammo_casing/strilka310/surplus
|
||||
|
||||
/obj/item/ammo_box/strilka310/phasic
|
||||
name = "stripper clip (.310 Phasic)"
|
||||
desc = "A stripper clip filled with phasic bullets, hastily developed after an incident where a misfire resulted in the destruction of Atrakor Silverscale's priceless Vigoxian Fabergé egg. \
|
||||
These fancy bullets pass right though valuables until they end up in a far less expensive human skull."
|
||||
ammo_type = /obj/item/ammo_casing/strilka310/phasic
|
||||
|
||||
/obj/item/ammo_box/n762
|
||||
name = "ammo box (7.62x38mmR)"
|
||||
icon_state = "10mmbox"
|
||||
|
||||
@@ -0,0 +1,134 @@
|
||||
/obj/item/ammo_box/speedloader
|
||||
name = "speed loader (base type)"
|
||||
desc = "This shouldn't be here. Report this to a coder, thanks!"
|
||||
multiple_sprites = AMMO_BOX_PER_BULLET
|
||||
ammo_box_multiload = (AMMO_BOX_MULTILOAD_IN | AMMO_BOX_MULTILOAD_OUT_LOADED)
|
||||
// You can feed ammo in from a box (assuming someone ever codes a relevant ammo box),
|
||||
// you can feed ammo out to a revolver's cylinder,
|
||||
// but you can't use it to teleport six bullets into a detached rifle magazine.
|
||||
|
||||
/obj/item/ammo_box/speedloader/c357
|
||||
name = "speed loader (.357)"
|
||||
desc = "Designed to quickly reload seven-chamber .357 revolvers."
|
||||
icon_state = "357"
|
||||
ammo_type = /obj/item/ammo_casing/c357
|
||||
max_ammo = 7
|
||||
caliber = CALIBER_357
|
||||
item_flags = NO_MAT_REDEMPTION
|
||||
ammo_band_icon = "+357_ammo_band"
|
||||
ammo_band_color = null
|
||||
|
||||
/obj/item/ammo_box/speedloader/c357/match
|
||||
name = "speed loader (.357 Match)"
|
||||
desc = parent_type::desc + " Match rounds are manufactured within extremely tight tolerances, making them easy to show off trickshots with."
|
||||
ammo_type = /obj/item/ammo_casing/c357/match
|
||||
ammo_band_color = "#77828a"
|
||||
|
||||
/obj/item/ammo_box/speedloader/c357/phasic
|
||||
name = "speed loader (.357 Phasic)"
|
||||
desc = parent_type::desc + " Phasic rounds, also known as 'Ghost Lead', are specially manufactured to pass through non-organic material. Somehow."
|
||||
ammo_type = /obj/item/ammo_casing/c357/phasic
|
||||
ammo_band_color = "#693a6a"
|
||||
|
||||
/obj/item/ammo_box/speedloader/c357/heartseeker
|
||||
name = "speed loader (.357 Heartseeker)"
|
||||
desc = parent_type::desc + " Heartseeker rounds veer into targets with exceptional precision using an unknown method. \
|
||||
It apparently predicts movement using neural pulses in the brain, but that's less marketable. \
|
||||
As seen in the hit NTFlik horror-space western film, Forget-Me-Not, brought to you by Roseus Galactic!"
|
||||
ammo_type = /obj/item/ammo_casing/c357/heartseeker
|
||||
ammo_band_color = "#a91e1e"
|
||||
|
||||
/obj/item/ammo_box/speedloader/c38
|
||||
name = "speed loader (.38)"
|
||||
desc = "Designed to quickly reload six-chamber .38 Special revolvers."
|
||||
icon_state = "38"
|
||||
base_icon_state = "38"
|
||||
ammo_type = /obj/item/ammo_casing/c38
|
||||
max_ammo = 6
|
||||
caliber = CALIBER_38
|
||||
custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT)
|
||||
ammo_band_icon = "+38_ammo_band"
|
||||
ammo_band_color = null
|
||||
|
||||
/obj/item/ammo_box/speedloader/c38/update_icon_state()
|
||||
. = ..()
|
||||
icon_state = "[base_icon_state]-base"
|
||||
|
||||
/obj/item/ammo_box/speedloader/c38/update_overlays()
|
||||
. = ..()
|
||||
if(!LAZYLEN(stored_ammo))
|
||||
return
|
||||
for(var/inserted_ammo in 1 to stored_ammo.len)
|
||||
var/obj/item/ammo_casing/c38/boolet = stored_ammo[inserted_ammo]
|
||||
. += "38-[boolet::lead_or_laser]-[inserted_ammo]"
|
||||
|
||||
/obj/item/ammo_box/speedloader/c38/trac
|
||||
name = "speed loader (.38 TRAC)"
|
||||
desc = parent_type::desc + " TRAC bullets embed a tracking implant within the target's body."
|
||||
ammo_type = /obj/item/ammo_casing/c38/trac
|
||||
ammo_band_color = COLOR_AMMO_TRACK
|
||||
|
||||
/obj/item/ammo_box/speedloader/c38/match
|
||||
name = "speed loader (.38 Match)"
|
||||
desc = parent_type::desc + " Match bullets are manufactured within extremely tight tolerances, making them easy to show off trickshots with."
|
||||
ammo_type = /obj/item/ammo_casing/c38/match
|
||||
ammo_band_color = COLOR_AMMO_MATCH
|
||||
|
||||
/obj/item/ammo_box/speedloader/c38/match/bouncy
|
||||
name = "speed loader (.38 Rubber)"
|
||||
desc = parent_type::desc + " Rubber rounds are incredibly bouncy and MOSTLY less-lethal, making them great to show off trickshots with."
|
||||
ammo_type = /obj/item/ammo_casing/c38/match/bouncy
|
||||
ammo_band_color = COLOR_AMMO_RUBBER
|
||||
|
||||
/obj/item/ammo_box/speedloader/c38/true
|
||||
name = "speed loader (.38 True Strike)"
|
||||
desc = parent_type::desc + " True Strike bullets bounce towards new targets with surprising accuracy after ricocheting."
|
||||
ammo_type = /obj/item/ammo_casing/c38/match/true
|
||||
ammo_band_color = COLOR_AMMO_TRUESTRIKE
|
||||
|
||||
/obj/item/ammo_box/speedloader/c38/dumdum
|
||||
name = "speed loader (.38 DumDum)"
|
||||
desc = parent_type::desc + " DumDum bullets expand on impact, reducing outright stopping power but \
|
||||
shredding targets and causing massive bleeding in close range, \
|
||||
at the cost of suffering greatly against armor and distant targets."
|
||||
ammo_type = /obj/item/ammo_casing/c38/dumdum
|
||||
ammo_band_color = COLOR_AMMO_DUMDUM
|
||||
|
||||
/obj/item/ammo_box/speedloader/c38/hotshot
|
||||
name = "speed loader (.38 Hot Shot)"
|
||||
desc = parent_type::desc + " Hot Shot bullets contain an incendiary payload that ignites struck targets."
|
||||
ammo_type = /obj/item/ammo_casing/c38/hotshot
|
||||
ammo_band_color = COLOR_AMMO_HOTSHOT
|
||||
|
||||
/obj/item/ammo_box/speedloader/c38/iceblox
|
||||
name = "speed loader (.38 Iceblox)"
|
||||
desc = parent_type::desc + " Iceblox bullets contain a cryogenic payload that lower the body temperature of struck targets."
|
||||
ammo_type = /obj/item/ammo_casing/c38/iceblox
|
||||
ammo_band_color = COLOR_AMMO_ICEBLOX
|
||||
|
||||
/obj/item/ammo_box/speedloader/c38/flare
|
||||
name = "speed loader (.38 Flare)"
|
||||
desc = parent_type::desc + " Flare casings launch a concentrated particle beam towards a target, lighting them up for everyone to see."
|
||||
ammo_type = /obj/item/ammo_casing/c38/flare
|
||||
ammo_band_color = COLOR_AMMO_HELLFIRE
|
||||
|
||||
/obj/item/ammo_box/speedloader/strilka310
|
||||
name = "stripper clip (.310 Strilka)"
|
||||
desc = "A five-round stripper clip for .310 Strilka rifles."
|
||||
icon_state = "310_strip"
|
||||
ammo_type = /obj/item/ammo_casing/strilka310
|
||||
max_ammo = 5
|
||||
ammo_box_multiload = AMMO_BOX_MULTILOAD_ALL
|
||||
caliber = CALIBER_STRILKA310
|
||||
|
||||
/obj/item/ammo_box/speedloader/strilka310/surplus
|
||||
name = "stripper clip (.310 Surplus)"
|
||||
desc = parent_type::desc + " This one has a few spots of rust where there's not excessive amounts of gun grease."
|
||||
ammo_type = /obj/item/ammo_casing/strilka310/surplus
|
||||
|
||||
/obj/item/ammo_box/speedloader/strilka310/phasic
|
||||
name = "stripper clip (.310 Phasic)"
|
||||
desc = parent_type::desc + " These should come with phasic bullets, \
|
||||
hastily developed after an incident where a misfire resulted in the destruction of Atrakor Silverscale's priceless Vigoxian Fabergé egg. \
|
||||
These fancy bullets pass right though valuables until they end up in a far less expensive human skull."
|
||||
ammo_type = /obj/item/ammo_casing/strilka310/phasic
|
||||
@@ -27,7 +27,7 @@
|
||||
id = "c38"
|
||||
build_type = AUTOLATHE
|
||||
materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT*3)
|
||||
build_path = /obj/item/ammo_box/c38
|
||||
build_path = /obj/item/ammo_box/speedloader/c38
|
||||
category = list(
|
||||
RND_CATEGORY_INITIAL,
|
||||
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO,
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/datum/material/silver = HALF_SHEET_MATERIAL_AMOUNT * 1.5,
|
||||
/datum/material/gold = HALF_SHEET_MATERIAL_AMOUNT,
|
||||
)
|
||||
build_path = /obj/item/ammo_box/c38/trac
|
||||
build_path = /obj/item/ammo_box/speedloader/c38/trac
|
||||
category = list(
|
||||
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
|
||||
)
|
||||
@@ -36,7 +36,7 @@
|
||||
/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT * 3,
|
||||
/datum/material/plasma = HALF_SHEET_MATERIAL_AMOUNT * 1.5,
|
||||
)
|
||||
build_path = /obj/item/ammo_box/c38/hotshot
|
||||
build_path = /obj/item/ammo_box/speedloader/c38/hotshot
|
||||
category = list(
|
||||
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
|
||||
)
|
||||
@@ -51,7 +51,7 @@
|
||||
/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT * 3,
|
||||
/datum/material/plasma = HALF_SHEET_MATERIAL_AMOUNT * 1.5,
|
||||
)
|
||||
build_path = /obj/item/ammo_box/c38/iceblox
|
||||
build_path = /obj/item/ammo_box/speedloader/c38/iceblox
|
||||
category = list(
|
||||
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
|
||||
)
|
||||
@@ -63,7 +63,7 @@
|
||||
id = "c38_rubber"
|
||||
build_type = PROTOLATHE | AWAY_LATHE
|
||||
materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT * 3)
|
||||
build_path = /obj/item/ammo_box/c38/match/bouncy
|
||||
build_path = /obj/item/ammo_box/speedloader/c38/match/bouncy
|
||||
category = list(
|
||||
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
|
||||
)
|
||||
@@ -78,7 +78,7 @@
|
||||
/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT * 3,
|
||||
/datum/material/bluespace = HALF_SHEET_MATERIAL_AMOUNT * 1.5,
|
||||
)
|
||||
build_path = /obj/item/ammo_box/c38/true
|
||||
build_path = /obj/item/ammo_box/speedloader/c38/true
|
||||
category = list(
|
||||
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
|
||||
)
|
||||
@@ -94,7 +94,7 @@
|
||||
/datum/material/uranium = HALF_SHEET_MATERIAL_AMOUNT,
|
||||
/datum/material/gold = HALF_SHEET_MATERIAL_AMOUNT,
|
||||
)
|
||||
build_path = /obj/item/ammo_box/c38/flare
|
||||
build_path = /obj/item/ammo_box/speedloader/c38/flare
|
||||
category = list(
|
||||
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
|
||||
)
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
name = ".357 Speed Loader"
|
||||
desc = "A speed loader that contains seven additional .357 Magnum rounds; usable with the Syndicate revolver. \
|
||||
For when you really need a lot of things dead."
|
||||
item = /obj/item/ammo_box/a357
|
||||
item = /obj/item/ammo_box/speedloader/c357
|
||||
cost = 4
|
||||
purchasable_from = ~(UPLINK_ALL_SYNDIE_OPS | UPLINK_SPY) //nukies get their own version
|
||||
uplink_item_flags = SYNDIE_TRIPS_CONTRABAND
|
||||
|
||||
@@ -218,7 +218,7 @@
|
||||
name = ".357 Speed Loader (Revolver)"
|
||||
desc = "A speed loader that contains seven additional .357 Magnum rounds; usable with the Syndicate revolver. \
|
||||
For when you really need a lot of things dead. Unlike field agents, operatives get a premium price for their speedloaders!"
|
||||
item = /obj/item/ammo_box/a357
|
||||
item = /obj/item/ammo_box/speedloader/c357
|
||||
purchasable_from = parent_type::purchasable_from | UPLINK_SPY
|
||||
|
||||
/datum/uplink_item/ammo_nuclear/special/revolver/phasic
|
||||
@@ -226,7 +226,7 @@
|
||||
desc = "A speed loader that contains seven additional .357 Magnum phasic rounds; usable with the Syndicate revolver. \
|
||||
These bullets are made from an experimental alloy, 'Ghost Lead', that allows it to pass through almost any non-organic material. \
|
||||
The name is a misnomer. It doesn't contain any lead whatsoever!"
|
||||
item = /obj/item/ammo_box/a357/phasic
|
||||
item = /obj/item/ammo_box/speedloader/c357/phasic
|
||||
purchasable_from = parent_type::purchasable_from | UPLINK_SPY
|
||||
|
||||
/datum/uplink_item/ammo_nuclear/special/revolver/heartseeker
|
||||
@@ -234,7 +234,7 @@
|
||||
desc = "A speed loader that contains seven additional .357 Magnum heartseeker rounds; usable with the Syndicate revolver. \
|
||||
Able to veer straight into targets! Don't miss a shot with heartseeker! As seen in the hit NTFlik horror-space western film, Forget-Me-Not! \
|
||||
Brought to you by Roseus Galactic!"
|
||||
item = /obj/item/ammo_box/a357/heartseeker
|
||||
item = /obj/item/ammo_box/speedloader/c357/heartseeker
|
||||
cost = 3
|
||||
purchasable_from = parent_type::purchasable_from | UPLINK_SPY
|
||||
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
@@ -5820,6 +5820,7 @@
|
||||
#include "code\modules\projectiles\ammunition\special\syringe.dm"
|
||||
#include "code\modules\projectiles\boxes_magazines\_box_magazine.dm"
|
||||
#include "code\modules\projectiles\boxes_magazines\ammo_boxes.dm"
|
||||
#include "code\modules\projectiles\boxes_magazines\speedloaders.dm"
|
||||
#include "code\modules\projectiles\boxes_magazines\external\grenade.dm"
|
||||
#include "code\modules\projectiles\boxes_magazines\external\lmg.dm"
|
||||
#include "code\modules\projectiles\boxes_magazines\external\pistol.dm"
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
/obj/item/ammo_box/a357/@SUBTYPES : /obj/item/ammo_box/speedloader/c357/@SUBTYPES{@OLD}
|
||||
/obj/item/ammo_box/c38/@SUBTYPES : /obj/item/ammo_box/speedloader/c38/@SUBTYPES{@OLD}
|
||||
/obj/item/ammo_box/strilka310/@SUBTYPES : /obj/item/ammo_box/speedloader/strilka310/@SUBTYPES{@OLD}
|
||||
@@ -0,0 +1,3 @@
|
||||
/obj/item/ammo_box/a357/@SUBTYPES : /obj/item/ammo_box/speedloader/c357/@SUBTYPES{@OLD}
|
||||
/obj/item/ammo_box/c38/@SUBTYPES : /obj/item/ammo_box/speedloader/c38/@SUBTYPES{@OLD}
|
||||
/obj/item/ammo_box/strilka310/@SUBTYPES : /obj/item/ammo_box/speedloader/strilka310/@SUBTYPES{@OLD}
|
||||
Reference in New Issue
Block a user