[MIRROR] Nukies Update 7: Hats (Also massive uplink standardization, weapon kits and ammo changes) [MDB IGNORE] (#22937)

* Nukies Update 7: Hats (Also massive uplink standardization, weapon kits and ammo changes)

* Update nukeops.dm

* Update clownops.dm

* Modular fixes

---------

Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
This commit is contained in:
SkyratBot
2023-08-08 18:38:40 +02:00
committed by GitHub
parent 763d9cf4f3
commit 7c68b51b6c
49 changed files with 1208 additions and 860 deletions

View File

@@ -4698,7 +4698,7 @@
/turf/open/floor/iron/textured,
/area/awaymission/black_mesa/hecu_zone_atrium)
"ciB" = (
/obj/item/ammo_casing/a556/weak,
/obj/item/ammo_casing/a277/weak,
/turf/open/floor/iron/textured,
/area/awaymission/black_mesa/black_ops_entrance)
"ciK" = (
@@ -5592,8 +5592,8 @@
/turf/open/floor/iron/smooth_large,
/area/awaymission/black_mesa/high_security_surgery)
"dPS" = (
/obj/item/ammo_casing/a556/weak,
/obj/item/ammo_casing/a556/weak,
/obj/item/ammo_casing/a277/weak,
/obj/item/ammo_casing/a277/weak,
/turf/open/floor/iron/textured,
/area/awaymission/black_mesa/black_ops_entrance)
"dQa" = (

View File

@@ -27,7 +27,7 @@
/area/centcom/basketball)
"cz" = (
/obj/structure/rack,
/obj/item/gun/ballistic/automatic/sniper_rifle,
/obj/item/gun/ballistic/rifle/sniper_rifle,
/turf/open/floor/iron/dark,
/area/centcom/basketball)
"dr" = (

View File

@@ -2088,28 +2088,28 @@
/obj/item/ammo_box/a40mm{
icon_state = "40mm-4"
},
/obj/item/ammo_box/magazine/m556{
/obj/item/ammo_box/magazine/m223{
icon_state = "5.56m-30";
pixel_x = 2;
pixel_y = 4
},
/obj/item/ammo_box/magazine/m556{
/obj/item/ammo_box/magazine/m223{
icon_state = "5.56m-30";
pixel_x = 2;
pixel_y = 4
},
/obj/item/ammo_box/magazine/m556{
/obj/item/ammo_box/magazine/m223{
icon_state = "5.56m-30"
},
/obj/item/ammo_box/magazine/m556{
/obj/item/ammo_box/magazine/m223{
icon_state = "5.56m-30"
},
/obj/item/ammo_box/magazine/m556{
/obj/item/ammo_box/magazine/m223{
icon_state = "5.56m-30";
pixel_x = -2;
pixel_y = -4
},
/obj/item/ammo_box/magazine/m556{
/obj/item/ammo_box/magazine/m223{
icon_state = "5.56m-30";
pixel_x = -2;
pixel_y = -4
@@ -2475,7 +2475,7 @@
layer = 2.9
},
/obj/item/storage/belt/military,
/obj/item/ammo_box/magazine/mm712x82,
/obj/item/ammo_box/magazine/m7mm,
/obj/item/gun/ballistic/automatic/l6_saw,
/turf/open/floor/pod/light,
/area/shuttle/sbc_starfury)

View File

@@ -11,7 +11,7 @@
// Caliber defines: (current count stands at 24)
/// The caliber used by the [L6 SAW][/obj/item/gun/ballistic/automatic/l6_saw].
#define CALIBER_712X82MM "mm71282"
#define CALIBER_A7MM "a7mm"
/// The caliber used by the [security auto-rifle][/obj/item/gun/ballistic/automatic/wt550].
#define CALIBER_46X30MM "4.6x30mm"
/// The caliber used by the Nanotrasen Saber SMG, PP-95 SMG and Type U3 Uzi. Also used as the default caliber for pistols but only the stechkin APS machine pistol doesn't override it.
@@ -33,7 +33,7 @@
/// The caliber used by [one revolver variant][/obj/item/gun/ballistic/revolver/nagant].
#define CALIBER_N762 "n762"
/// The caliber used by the the M-90gl Carbine, and NT-ARG 'Boarder'.
#define CALIBER_A556 "a556"
#define CALIBER_A223 "a223"
/// The caliber used by bolt action rifles.
#define CALIBER_A762 "a762"
/// The caliber used by shotguns.

View File

@@ -27,3 +27,5 @@
/// Caliber used by the giant anti materiel rifle in guncargo
#define CALIBER_60STRELA ".60 Strela"
#define CALIBER_A277 "a277"

View File

@@ -173,3 +173,62 @@
/obj/item/storage/backpack/duffelbag/engineering,
/obj/item/storage/backpack/duffelbag/clown,
)
/obj/effect/spawner/random/clothing/funny_hats
name = "random hat spawner"
icon_state = "hat"
desc = "This is the update that ruined Spacestation 13 forever. I can't believe what the TG Coders have done. \
They've added fucking HATS! HATS!!! In MY competitive-roleplay-action-click-shooter-stabber-against-two-sides-to-detonate-the-payload game? \
This isn't what I signed up for and why I supported this game! My game is chugging with every update to this stupid project and \
I can't fucking stand it anymore. And instead of fixing the bugs or getting rid of the exploits, they just keep adding more \
fucking hats so that the dumbasses that keep feeding into the coders bullshit will eat it up and ignore the glaring problems with it. \
They've stopped caring. We've not had a REAL update in almost 5 years of development! Just removals! It's been all downhill since cloning and stuns were removed. \
And frankly, I don't know what to do. There isn't any other competitive-roleplay-action-click-shooter-stabber-against-two-sides-to-detonate-the-payload game \
out there that isn't trying to get my donator money just so I can have a single sprite added to the game and autoequipped to my character. \
Next thing you know, the coders are going to have us PAY for these goddamn pixels on our character! Imagine having to pay for extra pixels! \
I'm fucking DONE WITH THIS GAME! I'M THROUGH WITH THIS SHIT! FUCK THE CODERS! I JUST WANT TO PLAY MY COMPETITIVE-ROLEPLAY-ACTION-\
CLICK-SHOOTER-STABBER-AGAINST-TWO-SIDES-TO-DETONATE-THE-PAYLOAD GAME THAT ISN'T DRAGGED DOWN BY HORRIBLE ADMINS THAT BAN ME WHEN I SAY \
CERTAIN WORDS THAT I AM ENTITLED TO SAY ON THE INTERNET! I'M THROUGH WITH THIS! I'M GOING TO GO PLAY A PURE, GENUINE GAME. WITH NO FUCKING HATS!"
loot = list(
/obj/item/clothing/head/costume/powdered_wig,
/obj/item/clothing/head/costume/cueball,
/obj/item/clothing/head/costume/snowman,
/obj/item/clothing/head/costume/witchwig,
/obj/item/clothing/head/costume/maidheadband,
/obj/item/clothing/head/costume/chicken,
/obj/item/clothing/head/costume/griffin,
/obj/item/clothing/head/costume/xenos,
/obj/item/clothing/head/costume/lobsterhat,
/obj/item/clothing/head/costume/cardborg,
/obj/item/clothing/head/costume/football_helmet,
/obj/item/clothing/head/costume/tv_head/fov_less,
/obj/item/clothing/head/costume/tmc,
/obj/item/clothing/head/costume/deckers,
/obj/item/clothing/head/costume/yuri,
/obj/item/clothing/head/costume/allies,
/obj/item/clothing/head/frenchberet,
/obj/item/clothing/head/costume/crown,
/obj/item/clothing/head/fedora,
/obj/item/clothing/head/beanie/red,
/obj/item/clothing/head/beanie/darkblue,
/obj/item/clothing/head/rasta,
/obj/item/clothing/head/costume/constable,
/obj/item/clothing/head/bio_hood/plague,
/obj/item/clothing/head/costume/nursehat,
/obj/item/clothing/head/hats/bowler,
/obj/item/clothing/head/costume/bearpelt,
/obj/item/clothing/head/flatcap,
/obj/item/clothing/head/cowboy,
/obj/item/clothing/head/costume/rice_hat,
/obj/item/clothing/head/costume/pharaoh,
/obj/item/clothing/head/costume/delinquent,
/obj/item/clothing/head/costume/jackbros,
/obj/item/clothing/head/costume/ushanka,
/obj/item/clothing/head/costume/nightcap/blue,
/obj/item/clothing/head/costume/nightcap/red,
/obj/item/clothing/head/mothcap,
/obj/item/clothing/head/cone,
/obj/item/clothing/head/collectable/petehat,
/obj/item/clothing/head/collectable/wizard,
/obj/item/clothing/head/wizard/marisa/fake,
)

View File

@@ -714,23 +714,6 @@
icon_state = "duffel-syndieammo"
inhand_icon_state = "duffel-syndieammo"
/obj/item/storage/backpack/duffelbag/syndie/ammo/shotgun
desc = "A large duffel bag, packed to the brim with Bulldog shotgun magazines."
/obj/item/storage/backpack/duffelbag/syndie/ammo/shotgun/PopulateContents()
for(var/i in 1 to 6)
new /obj/item/ammo_box/magazine/m12g(src)
new /obj/item/ammo_box/magazine/m12g/slug(src)
new /obj/item/ammo_box/magazine/m12g/slug(src)
new /obj/item/ammo_box/magazine/m12g/dragon(src)
/obj/item/storage/backpack/duffelbag/syndie/ammo/smg
desc = "A large duffel bag, packed to the brim with C-20r magazines."
/obj/item/storage/backpack/duffelbag/syndie/ammo/smg/PopulateContents()
for(var/i in 1 to 9)
new /obj/item/ammo_box/magazine/smgm45(src)
/obj/item/storage/backpack/duffelbag/syndie/ammo/mech
desc = "A large duffel bag, packed to the brim with various exosuit ammo."
@@ -755,24 +738,6 @@
new /obj/item/mecha_ammo/missiles_srm(src)
new /obj/item/mecha_ammo/missiles_srm(src)
/obj/item/storage/backpack/duffelbag/syndie/c20rbundle
desc = "A large duffel bag containing a C-20r, some magazines, and a cheap looking suppressor."
/obj/item/storage/backpack/duffelbag/syndie/c20rbundle/PopulateContents()
new /obj/item/ammo_box/magazine/smgm45(src)
new /obj/item/ammo_box/magazine/smgm45(src)
new /obj/item/gun/ballistic/automatic/c20r(src)
new /obj/item/suppressor(src)
/obj/item/storage/backpack/duffelbag/syndie/bulldogbundle
desc = "A large duffel bag containing a Bulldog, some drums, and a pair of thermal imaging glasses."
/obj/item/storage/backpack/duffelbag/syndie/bulldogbundle/PopulateContents()
new /obj/item/gun/ballistic/shotgun/bulldog(src)
new /obj/item/ammo_box/magazine/m12g(src)
new /obj/item/ammo_box/magazine/m12g(src)
new /obj/item/clothing/glasses/thermal/syndi(src)
/obj/item/storage/backpack/duffelbag/syndie/med/medicalbundle
desc = "A large duffel bag containing a medical equipment, a Donksoft LMG, a big jumbo box of riot darts, and a magboot MODsuit module."

View File

@@ -643,11 +643,10 @@
/obj/item/storage/belt/grenade/full/PopulateContents()
generate_items_inside(list(
/obj/item/grenade/chem_grenade/facid = 1,
/obj/item/grenade/chem_grenade/incendiary = 2,
/obj/item/grenade/empgrenade = 2,
/obj/item/grenade/frag = 10,
/obj/item/grenade/flashbang = 1,
/obj/item/grenade/flashbang = 2,
/obj/item/grenade/gluon = 4,
/obj/item/grenade/smokebomb = 4,
/obj/item/grenade/syndieminibomb = 2,

View File

@@ -60,7 +60,7 @@
user.visible_message(span_suicide("[user] looks overwhelmed with paperwork! It looks like [user.p_theyre()] trying to commit suicide!"))
return OXYLOSS
/obj/item/storage/briefcase/sniperbundle
/obj/item/storage/briefcase/sniper
desc = "Its label reads \"genuine hardened Captain leather\", but suspiciously has no other tags or branding. Smells like L'Air du Temps."
force = 10
@@ -69,6 +69,6 @@
new /obj/item/gun/ballistic/rifle/sniper_rifle/syndicate(src)
new /obj/item/clothing/neck/tie/red/hitman(src)
new /obj/item/clothing/under/syndicate/sniper(src)
new /obj/item/ammo_box/magazine/sniper_rounds(src)
new /obj/item/ammo_box/magazine/sniper_rounds(src)
new /obj/item/ammo_box/magazine/sniper_rounds/disruptor(src)
new /obj/item/ammo_box/magazine/sniper_rounds/disruptor(src)
new /obj/item/suppressor(src)

View File

@@ -315,24 +315,136 @@
name = "old toolbox"
custom_materials = list(/datum/material/hauntium = SMALL_MATERIAL_AMOUNT*5)
/obj/item/storage/toolbox/mosincase
name = "ancient gun case"
desc = "A weapon's case. Has the symbol of the Third Soviet Union stamped on the side."
/obj/item/storage/toolbox/guncase
name = "gun case"
desc = "A weapon's case. Has a blood-red 'S' stamped on the cover."
icon = 'icons/obj/storage/case.dmi'
icon_state = "mosin_case"
icon_state = "infiltrator_case"
lefthand_file = 'icons/mob/inhands/equipment/toolbox_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/toolbox_righthand.dmi'
inhand_icon_state = "mosin_case"
inhand_icon_state = "infiltrator_case"
has_latches = FALSE
var/weapon_to_spawn = /obj/item/gun/ballistic/automatic/pistol
var/extra_to_spawn = /obj/item/ammo_box/magazine/m9mm
/obj/item/storage/toolbox/mosincase/Initialize(mapload)
/obj/item/storage/toolbox/guncase/Initialize(mapload)
. = ..()
atom_storage.max_specific_storage = WEIGHT_CLASS_BULKY
atom_storage.max_total_storage = 7 //enough to hold ONE mosin and the ammo boxes
atom_storage.max_total_storage = 7 //enough to hold ONE bulky gun and the ammo boxes
atom_storage.max_slots = 4
/obj/item/storage/toolbox/mosincase/PopulateContents()
new /obj/effect/spawner/random/mosin (src)
/obj/item/storage/toolbox/guncase/PopulateContents()
new weapon_to_spawn (src)
for(var/i in 1 to 3)
new /obj/effect/spawner/random/mosin/ammo (src)
new extra_to_spawn (src)
/obj/item/storage/toolbox/guncase/bulldog
name = "bulldog gun case"
weapon_to_spawn = /obj/item/gun/ballistic/shotgun/bulldog
extra_to_spawn = /obj/item/ammo_box/magazine/m12g
/obj/item/storage/toolbox/guncase/c20r
name = "c-20r gun case"
weapon_to_spawn = /obj/item/gun/ballistic/automatic/c20r
extra_to_spawn = /obj/item/ammo_box/magazine/smgm45
/obj/item/storage/toolbox/guncase/clandestine
name = "clandestine gun case"
weapon_to_spawn = /obj/item/gun/ballistic/automatic/pistol/clandestine
extra_to_spawn = /obj/item/ammo_box/magazine/m10mm
/obj/item/storage/toolbox/guncase/m90gl
name = "m-90gl gun case"
weapon_to_spawn = /obj/item/gun/ballistic/automatic/m90
extra_to_spawn = /obj/item/ammo_box/magazine/m223
/obj/item/storage/toolbox/guncase/m90gl/PopulateContents()
new weapon_to_spawn (src)
for(var/i in 1 to 2)
new extra_to_spawn (src)
new /obj/item/ammo_box/a40mm/rubber (src)
/obj/item/storage/toolbox/guncase/rocketlauncher
name = "rocket launcher gun case"
weapon_to_spawn = /obj/item/gun/ballistic/rocketlauncher
extra_to_spawn = /obj/item/ammo_box/rocket
/obj/item/storage/toolbox/guncase/rocketlauncher/PopulateContents()
new weapon_to_spawn (src)
new extra_to_spawn (src)
/obj/item/storage/toolbox/guncase/revolver
name = "revolver gun case"
weapon_to_spawn = /obj/item/gun/ballistic/revolver/syndicate
extra_to_spawn = /obj/item/ammo_box/a357
/obj/item/storage/toolbox/guncase/sword_and_board
name = "energy sword and shield weapon case"
weapon_to_spawn = /obj/item/melee/energy/sword
extra_to_spawn = /obj/item/shield/energy
/obj/item/storage/toolbox/guncase/sword_and_board/PopulateContents()
new weapon_to_spawn (src)
new extra_to_spawn (src)
new /obj/item/mod/module/hat_stabilizer (src)
new /obj/item/clothing/head/costume/knight (src)
/obj/item/storage/toolbox/guncase/cqc
name = "\improper CQC equipment case"
weapon_to_spawn = /obj/item/book/granter/martial/cqc
extra_to_spawn = /obj/item/storage/box/syndie_kit/imp_stealth
/obj/item/storage/toolbox/guncase/cqc/PopulateContents()
new weapon_to_spawn (src)
new extra_to_spawn (src)
new /obj/item/mod/module/hat_stabilizer (src)
new /obj/item/clothing/head/costume/snakeeater (src)
/obj/item/clothing/head/costume/snakeeater
name = "strange bandana"
desc = "A bandana. It seems to have a little carp embroidered on the inside, as well as the kanji '魚'."
icon_state = "snake_eater"
inhand_icon_state = null
/obj/item/clothing/head/costume/knight
name = "fake medieval helmet"
desc = "A classic metal helmet. Though, this one seems to be very obviously fake..."
icon = 'icons/obj/clothing/head/helmet.dmi'
worn_icon = 'icons/mob/clothing/head/helmet.dmi'
icon_state = "knight_green"
inhand_icon_state = "knight_helmet"
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
dog_fashion = null
/obj/item/storage/toolbox/guncase/doublesword
name = "double-energy sword weapon case"
weapon_to_spawn = /obj/item/dualsaber
extra_to_spawn = /obj/item/soap/syndie
/obj/item/storage/toolbox/guncase/doublesword/Initialize(mapload)
. = ..()
atom_storage.max_specific_storage = WEIGHT_CLASS_BULKY
atom_storage.max_total_storage = 10 //it'll hold enough
atom_storage.max_slots = 5
/obj/item/storage/toolbox/guncase/doublesword/PopulateContents()
new weapon_to_spawn (src)
new extra_to_spawn (src)
new /obj/item/mod/module/noslip (src)
new /obj/item/reagent_containers/hypospray/medipen/methamphetamine (src)
new /obj/item/clothing/under/rank/prisoner/nosensor (src)
/obj/item/storage/toolbox/guncase/soviet
name = "ancient gun case"
desc = "A weapon's case. Has the symbol of the Third Soviet Union stamped on the side."
icon_state = "mosin_case"
inhand_icon_state = "mosin_case"
weapon_to_spawn = /obj/effect/spawner/random/mosin
extra_to_spawn = /obj/effect/spawner/random/mosin/ammo
/obj/item/storage/toolbox/guncase/soviet/plastikov
name = "ancient surplus gun case"
desc = "A gun case. Has the symbol of the Third Soviet Union stamped on the side."
weapon_to_spawn = /obj/item/gun/ballistic/automatic/plastikov
extra_to_spawn = /obj/item/food/rationpack //sorry comrade, cannot get you more ammo, here, have lunch

View File

@@ -588,19 +588,30 @@
for(var/i in 1 to 3)
new /obj/item/grenade/spawnergrenade/buzzkill(src)
/obj/item/storage/box/syndie_kit/manhack_grenades/PopulateContents()
for(var/i in 1 to 3)
new /obj/item/grenade/spawnergrenade/manhacks(src)
/obj/item/storage/box/syndie_kit/sleepytime/PopulateContents()
new /obj/item/clothing/under/syndicate/bloodred/sleepytime(src)
new /obj/item/reagent_containers/cup/glass/mug/coco(src)
new /obj/item/toy/plush/carpplushie(src)
new /obj/item/bedsheet/syndie(src)
/obj/item/storage/box/syndie_kit/demoman/PopulateContents()
new /obj/item/gun/grenadelauncher(src)
new /obj/item/storage/belt/grenade/full(src)
if(prob(1))
new /obj/item/clothing/head/hats/hos/shako(src)
new /obj/item/mod/module/hat_stabilizer(src)
/// Surplus Ammo Box
/obj/item/storage/box/syndie_kit/surplus
/obj/item/storage/box/syndie_kit/sniper_surplus
name = "surplus .50 BMG magazine box"
desc = "A shoddy box full of surplus .50 BMG magazines. Not as strong, but good enough to keep lead in the air."
/obj/item/storage/box/syndie_kit/surplus/PopulateContents()
/obj/item/storage/box/syndie_kit/sniper_surplus/PopulateContents()
for(var/i in 1 to 7)
new /obj/item/ammo_box/magazine/sniper_rounds/surplus(src)

View File

@@ -55,3 +55,18 @@
to_chat(user, span_warning("You need a crowbar to pry this open!"))
return FALSE //Just stop. Do nothing. Don't turn into an invisible sprite. Don't open like a locker.
//The large crate has no non-attack interactions other than the crowbar, anyway.
/obj/structure/closet/crate/large/hats/PopulateContents()
..()
for (var/i in 1 to 5)
new /obj/effect/spawner/random/clothing/funny_hats(src)
for (var/i in 1 to 5)
new /obj/item/mod/module/hat_stabilizer(src)
if(prob(1))
var/our_contents = list()
for(var/obj/item/clothing/head/any_hat in contents)
our_contents[any_hat]++
if(our_contents)
var/obj/item/clothing/head/lucky_hat = pick(our_contents)
lucky_hat.AddComponent(/datum/component/unusual_effect, color = "#FFEA0030", include_particles = TRUE)
lucky_hat.name = "unusual [name]"

View File

@@ -224,7 +224,7 @@
/obj/item/clothing/mask/russian_balaclava,
/obj/item/clothing/head/helmet/rus_ushanka,
/obj/item/clothing/suit/armor/vest/russian_coat,
/obj/item/storage/toolbox/mosincase = 2,
/obj/item/storage/toolbox/guncase/soviet = 2,
)
/datum/supply_pack/imports/russian/fill(obj/structure/closet/crate/our_crate)

View File

@@ -229,7 +229,7 @@
/obj/item/clothing/under/rank/prisoner
name = "prison jumpsuit"
desc = "It's standardised Nanotrasen prisoner-wear. Its suit sensors are stuck in the \"Fully On\" position."
desc = "Standardised Nanotrasen prisoner-wear. Its suit sensors are stuck in the \"Fully On\" position."
icon_state = "jumpsuit"
icon_preview = 'icons/obj/fluff/previews.dmi'
icon_state_preview = "prisonsuit"
@@ -244,9 +244,14 @@
sensor_mode = SENSOR_COORDS
random_sensor = FALSE
/obj/item/clothing/under/rank/prisoner/nosensor
desc = "Standardised Nanotrasen prisoner-wear. Its suit sensors are stuck in the \"OFF\" position."
has_sensor = NO_SENSORS
sensor_mode = SENSOR_OFF
/obj/item/clothing/under/rank/prisoner/skirt
name = "prison jumpskirt"
desc = "It's standardised Nanotrasen prisoner-wear. Its suit sensors are stuck in the \"Fully On\" position."
desc = "Standardised Nanotrasen prisoner-wear. Its suit sensors are stuck in the \"Fully On\" position."
icon_state = "jumpskirt"
icon_preview = 'icons/obj/fluff/previews.dmi'
icon_state_preview = "prisonskirt"

View File

@@ -136,7 +136,7 @@ GLOBAL_VAR_INIT(fscpassword, generate_password())
rapid_melee = 1
retreat_distance = 2
minimum_distance = 4
casingtype = /obj/item/ammo_casing/a556/weak
casingtype = /obj/item/ammo_casing/a223/weak
projectilesound = 'sound/weapons/gun/smg/shot.ogg'
loot = list(/obj/effect/mob_spawn/corpse/human/nanotrasenassaultsoldier)
mob_spawner = /obj/effect/mob_spawn/corpse/human/nanotrasenassaultsoldier

View File

@@ -1,33 +1,33 @@
// 7.12x82mm (SAW)
// 7mm (SAW)
/obj/item/ammo_casing/mm712x82
name = "7.12x82mm bullet casing"
desc = "A 7.12x82mm bullet casing."
/obj/item/ammo_casing/m7mm
name = "7mm bullet casing"
desc = "A 7mm bullet casing."
icon_state = "762-casing"
caliber = CALIBER_712X82MM
projectile_type = /obj/projectile/bullet/mm712x82
caliber = CALIBER_A7MM
projectile_type = /obj/projectile/bullet/a7mm
/obj/item/ammo_casing/mm712x82/ap
name = "7.12x82mm armor-piercing bullet casing"
desc = "A 7.12x82mm bullet casing designed with a hardened-tipped core to help penetrate armored targets."
projectile_type = /obj/projectile/bullet/mm712x82/ap
/obj/item/ammo_casing/m7mm/ap
name = "7mm armor-piercing bullet casing"
desc = "A 7mm bullet casing designed with a hardened-tipped core to help penetrate armored targets."
projectile_type = /obj/projectile/bullet/a7mm/ap
/obj/item/ammo_casing/mm712x82/hollow
name = "7.12x82mm hollow-point bullet casing"
desc = "A 7.12x82mm bullet casing designed to cause more damage to unarmored targets."
projectile_type = /obj/projectile/bullet/mm712x82/hp
/obj/item/ammo_casing/m7mm/hollow
name = "7mm hollow-point bullet casing"
desc = "A 7mm bullet casing designed to cause more damage to unarmored targets."
projectile_type = /obj/projectile/bullet/a7mm/hp
/obj/item/ammo_casing/mm712x82/incen
name = "7.12x82mm incendiary bullet casing"
desc = "A 7.12x82mm bullet casing designed with a chemical-filled capsule on the tip that when bursted, reacts with the atmosphere to produce a fireball, engulfing the target in flames."
projectile_type = /obj/projectile/bullet/incendiary/mm712x82
/obj/item/ammo_casing/m7mm/incen
name = "7mm incendiary bullet casing"
desc = "A 7mm bullet casing designed with a chemical-filled capsule on the tip that when bursted, reacts with the atmosphere to produce a fireball, engulfing the target in flames."
projectile_type = /obj/projectile/bullet/incendiary/a7mm
/obj/item/ammo_casing/mm712x82/match
name = "7.12x82mm match bullet casing"
desc = "A 7.12x82mm bullet casing manufactured to unfailingly high standards, you could pull off some cool trickshots with this."
projectile_type = /obj/projectile/bullet/mm712x82/match
/obj/item/ammo_casing/m7mm/match
name = "7mm match bullet casing"
desc = "A 7mm bullet casing manufactured to unfailingly high standards, you could pull off some cool trickshots with this."
projectile_type = /obj/projectile/bullet/a7mm/match
/obj/item/ammo_casing/mm712x82/bouncy
name = "7.12x82mm rubber bullet casing"
desc = "A 7.12x82mm rubber bullet casing manufactured to unfailingly disastrous standards, you could piss off a lot of people spraying this down a hallway."
projectile_type = /obj/projectile/bullet/mm712x82/bouncy
/obj/item/ammo_casing/m7mm/bouncy
name = "7mm rubber bullet casing"
desc = "A 7mm rubber bullet casing manufactured to unfailingly disastrous standards, you could piss off a lot of people spraying this down a hallway."
projectile_type = /obj/projectile/bullet/a7mm/bouncy

View File

@@ -14,6 +14,14 @@
desc = "A .357 bullet casing, manufactured to exceedingly high standards."
projectile_type = /obj/projectile/bullet/a357/match
/obj/item/ammo_casing/a357/phasic
name = ".357 phasic bullet casing"
projectile_type = /obj/projectile/bullet/a357/phasic
/obj/item/ammo_casing/a357/heartseeker
name = ".357 heartseeker bullet casing"
projectile_type = /obj/projectile/bullet/a357/heartseeker
// 7.62x38mmR (Nagant Revolver)
/obj/item/ammo_casing/n762

View File

@@ -15,21 +15,21 @@
/obj/item/ammo_casing/a762/enchanted
projectile_type = /obj/projectile/bullet/a762/enchanted
// 5.56mm (M-90gl Carbine)
// .223 (M-90gl Carbine)
/obj/item/ammo_casing/a556
name = "5.56mm bullet casing"
desc = "A 5.56mm bullet casing."
caliber = CALIBER_A556
projectile_type = /obj/projectile/bullet/a556
/obj/item/ammo_casing/a223
name = ".223 bullet casing"
desc = "A .223 bullet casing."
caliber = CALIBER_A223
projectile_type = /obj/projectile/bullet/a223
/obj/item/ammo_casing/a556/phasic
name = "5.56mm phasic bullet casing"
desc = "A 5.56mm phasic bullet casing."
projectile_type = /obj/projectile/bullet/a556/phasic
/obj/item/ammo_casing/a223/phasic
name = ".223 phasic bullet casing"
desc = "A .223 phasic bullet casing."
projectile_type = /obj/projectile/bullet/a223/phasic
/obj/item/ammo_casing/a556/weak
projectile_type = /obj/projectile/bullet/a556/weak
/obj/item/ammo_casing/a223/weak
projectile_type = /obj/projectile/bullet/a223/weak
// 40mm (Grenade Launcher)
@@ -39,3 +39,8 @@
caliber = CALIBER_40MM
icon_state = "40mmHE"
projectile_type = /obj/projectile/bullet/a40mm
/obj/item/ammo_casing/a40mm/rubber
name = "40mm rubber shell"
desc = "A cased rubber slug. The big brother of the beanbag slug, this thing will knock someone out in one. Doesn't do so great against anyone in armor."
projectile_type = /obj/projectile/bullet/shotgun_beanbag/a40mm

View File

@@ -32,6 +32,11 @@
desc = "A .45 bullet casing."
projectile_type = /obj/projectile/bullet/c45/ap
/obj/item/ammo_casing/c45/hp
name = ".45 hollow point bullet casing"
desc = "A .45 bullet casing."
projectile_type = /obj/projectile/bullet/c45/hp
/obj/item/ammo_casing/c45/inc
name = ".45 incendiary bullet casing"
desc = "A .45 bullet casing."

View File

@@ -6,11 +6,28 @@
max_ammo = 7
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/a357/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/a357/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/a357/heartseeker
ammo_band_color = "#a91e1e"
/obj/item/ammo_box/c38
name = "speed loader (.38)"
@@ -84,6 +101,20 @@
max_ammo = 4
multiple_sprites = AMMO_BOX_PER_BULLET
/obj/item/ammo_box/a40mm/rubber
name = "ammo box (40mm rubber slug)"
ammo_type = /obj/item/ammo_casing/a40mm/rubber
/obj/item/ammo_box/rocket
name = "rocket bouquet (84mm HE)"
icon_state = "rocketbundle"
ammo_type = /obj/item/ammo_casing/rocket
max_ammo = 3
multiple_sprites = AMMO_BOX_PER_BULLET
/obj/item/ammo_box/rocket/can_load(mob/user)
return FALSE
/obj/item/ammo_box/a762
name = "stripper clip (7.62mm)"
desc = "A stripper clip."

View File

@@ -1,34 +1,34 @@
/obj/item/ammo_box/magazine/mm712x82
name = "box magazine (7.12x82mm)"
icon_state = "a762-50"
ammo_type = /obj/item/ammo_casing/mm712x82
caliber = CALIBER_712X82MM
/obj/item/ammo_box/magazine/m7mm
name = "box magazine (7mm)"
icon_state = "a7mm-50"
ammo_type = /obj/item/ammo_casing/m7mm
caliber = CALIBER_A7MM
max_ammo = 50
/obj/item/ammo_box/magazine/mm712x82/hollow
name = "box magazine (Hollow-Point 7.12x82mm)"
ammo_type = /obj/item/ammo_casing/mm712x82/hollow
/obj/item/ammo_box/magazine/m7mm/hollow
name = "box magazine (Hollow-Point 7mm)"
ammo_type = /obj/item/ammo_casing/m7mm/hollow
/obj/item/ammo_box/magazine/mm712x82/ap
name = "box magazine (Armor Penetrating 7.12x82mm)"
ammo_type = /obj/item/ammo_casing/mm712x82/ap
/obj/item/ammo_box/magazine/m7mm/ap
name = "box magazine (Armor Penetrating 7mm)"
ammo_type = /obj/item/ammo_casing/m7mm/ap
/obj/item/ammo_box/magazine/mm712x82/incen
name = "box magazine (Incendiary 7.12x82mm)"
ammo_type = /obj/item/ammo_casing/mm712x82/incen
/obj/item/ammo_box/magazine/m7mm/incen
name = "box magazine (Incendiary 7mm)"
ammo_type = /obj/item/ammo_casing/m7mm/incen
/obj/item/ammo_box/magazine/mm712x82/match
name = "box magazine (Match 7.12x82mm)"
ammo_type = /obj/item/ammo_casing/mm712x82/match
/obj/item/ammo_box/magazine/m7mm/match
name = "box magazine (Match 7mm)"
ammo_type = /obj/item/ammo_casing/m7mm/match
/obj/item/ammo_box/magazine/mm712x82/bouncy
name = "box magazine (Rubber 7.12x82mm)"
ammo_type = /obj/item/ammo_casing/mm712x82/bouncy
/obj/item/ammo_box/magazine/m7mm/bouncy
name = "box magazine (Rubber 7mm)"
ammo_type = /obj/item/ammo_casing/m7mm/bouncy
/obj/item/ammo_box/magazine/mm712x82/bouncy/hicap
name = "hi-cap box magazine (Rubber 7.12x82mm)"
/obj/item/ammo_box/magazine/m7mm/bouncy/hicap
name = "hi-cap box magazine (Rubber 7mm)"
max_ammo = 150
/obj/item/ammo_box/magazine/mm712x82/update_icon_state()
/obj/item/ammo_box/magazine/m7mm/update_icon_state()
. = ..()
icon_state = "a762-[min(round(ammo_count(), 10), 50)]" //Min is used to prevent high capacity magazines from attempting to get sprites with larger capacities
icon_state = "a7mm-[min(round(ammo_count(), 10), 50)]" //Min is used to prevent high capacity magazines from attempting to get sprites with larger capacities

View File

@@ -10,14 +10,14 @@
. = ..()
icon_state = "[base_icon_state]-[LAZYLEN(stored_ammo) ? "full" : "empty"]"
/obj/item/ammo_box/magazine/m556
name = "toploader magazine (5.56mm)"
icon_state = "5.56m"
ammo_type = /obj/item/ammo_casing/a556
caliber = CALIBER_A556
/obj/item/ammo_box/magazine/m223
name = "toploader magazine (.223)"
icon_state = ".223"
ammo_type = /obj/item/ammo_casing/a223
caliber = CALIBER_A223
max_ammo = 30
multiple_sprites = AMMO_BOX_FULL_EMPTY
/obj/item/ammo_box/magazine/m556/phasic
name = "toploader magazine (5.56mm Phasic)"
ammo_type = /obj/item/ammo_casing/a556/phasic
/obj/item/ammo_box/magazine/m223/phasic
name = "toploader magazine (.223 Phasic)"
ammo_type = /obj/item/ammo_casing/a223/phasic

View File

@@ -90,6 +90,10 @@
name = "SMG magazine (Armour Piercing .45)"
ammo_type = /obj/item/ammo_casing/c45/ap
/obj/item/ammo_box/magazine/smgm45/hp
name = "SMG magazine (Hollow Point .45)"
ammo_type = /obj/item/ammo_casing/c45/hp
/obj/item/ammo_box/magazine/smgm45/incen
name = "SMG magazine (Incendiary .45)"
ammo_type = /obj/item/ammo_casing/c45/inc

View File

@@ -44,8 +44,8 @@
/obj/item/ammo_box/magazine/toy/m762
name = "donksoft box magazine"
icon_state = "a762-toy"
base_icon_state = "a762"
icon_state = "a7mm-toy"
base_icon_state = "a7mm"
ammo_type = /obj/item/ammo_casing/foam_dart
max_ammo = 50
@@ -54,5 +54,5 @@
icon_state = "[base_icon_state]-[round(ammo_count(), 10)]"
/obj/item/ammo_box/magazine/toy/m762/riot
icon_state = "a762-riot"
icon_state = "a7mm-riot"
ammo_type = /obj/item/ammo_casing/foam_dart/riot

View File

@@ -154,7 +154,7 @@
w_class = WEIGHT_CLASS_BULKY
inhand_icon_state = "m90"
selector_switch_icon = TRUE
accepted_magazine_type = /obj/item/ammo_box/magazine/m556
accepted_magazine_type = /obj/item/ammo_box/magazine/m223
can_suppress = FALSE
var/obj/item/gun/ballistic/revolver/grenadelauncher/underbarrel
burst_size = 3
@@ -229,7 +229,7 @@
icon_state = "arg"
inhand_icon_state = "arg"
slot_flags = 0
accepted_magazine_type = /obj/item/ammo_box/magazine/m556
accepted_magazine_type = /obj/item/ammo_box/magazine/m223
can_suppress = FALSE
burst_size = 3
fire_delay = 1
@@ -238,13 +238,13 @@
/obj/item/gun/ballistic/automatic/l6_saw
name = "\improper L6 SAW"
desc = "A heavily modified 7.12x82mm light machine gun, designated 'L6 SAW'. Has 'Aussec Armoury - 2531' engraved on the receiver below the designation."
desc = "A heavily modified 7mm light machine gun, designated 'L6 SAW'. Has 'Aussec Armoury - 2531' engraved on the receiver below the designation."
icon_state = "l6"
inhand_icon_state = "l6closedmag"
base_icon_state = "l6"
w_class = WEIGHT_CLASS_HUGE
slot_flags = 0
accepted_magazine_type = /obj/item/ammo_box/magazine/mm712x82
accepted_magazine_type = /obj/item/ammo_box/magazine/m7mm
weapon_weight = WEAPON_HEAVY
burst_size = 1
actions_types = list()

View File

@@ -24,21 +24,22 @@
/obj/projectile/bullet/syndicate_turret
damage = 20
// 7.12x82mm (SAW)
// 7mm (SAW)
/obj/projectile/bullet/mm712x82
name = "7.12x82mm bullet"
/obj/projectile/bullet/a7mm
name = "7mm bullet"
damage = 30
armour_penetration = 5
wound_bonus = -50
wound_falloff_tile = 0
/obj/projectile/bullet/mm712x82/ap
name = "7.12x82mm armor-piercing bullet"
/obj/projectile/bullet/a7mm/ap
name = "7mm armor-piercing bullet"
damage = 25
armour_penetration = 75
/obj/projectile/bullet/mm712x82/hp
name = "7.12x82mm hollow-point bullet"
/obj/projectile/bullet/a7mm/hp
name = "7mm hollow-point bullet"
damage = 50
sharpness = SHARP_EDGED
weak_against_armour = TRUE
@@ -46,20 +47,20 @@
bare_wound_bonus = 30
wound_falloff_tile = -8
/obj/projectile/bullet/incendiary/mm712x82
name = "7.12x82mm incendiary bullet"
/obj/projectile/bullet/incendiary/a7mm
name = "7mm incendiary bullet"
damage = 15
fire_stacks = 3
/obj/projectile/bullet/mm712x82/match
name = "7.12x82mm match bullet"
/obj/projectile/bullet/a7mm/match
name = "7mm match bullet"
ricochets_max = 2
ricochet_chance = 60
ricochet_auto_aim_range = 4
ricochet_incidence_leeway = 55
/obj/projectile/bullet/mm712x82/bouncy
name = "7.12x82mm rubber bullet"
/obj/projectile/bullet/a7mm/bouncy
name = "7mm rubber bullet"
damage = 20
ricochets_max = 40
ricochet_chance = 500 // will bounce off anything and everything, whether they like it or not

View File

@@ -109,6 +109,20 @@
damage = 60
wound_bonus = -30
/obj/projectile/bullet/a357/phasic
name = ".357 phasic bullet"
icon_state = "gaussphase"
damage = 35
armour_penetration = 100
projectile_phasing = PASSTABLE | PASSGLASS | PASSGRILLE | PASSCLOSEDTURF | PASSMACHINE | PASSSTRUCTURE | PASSDOORS
/obj/projectile/bullet/a357/heartseeker
name = ".357 heartseeker bullet"
icon_state = "gauss"
damage = 50
homing = TRUE
homing_turn_speed = 120
// admin only really, for ocelot memes
/obj/projectile/bullet/a357/match
name = ".357 match bullet"

View File

@@ -1,19 +1,19 @@
// 5.56mm (M-90gl Carbine)
// .223 (M-90gl Carbine)
/obj/projectile/bullet/a556
name = "5.56mm bullet"
/obj/projectile/bullet/a223
name = ".223 bullet"
damage = 35
armour_penetration = 30
wound_bonus = -40
/obj/projectile/bullet/a556/weak //centcom
/obj/projectile/bullet/a223/weak //centcom
damage = 20
/obj/projectile/bullet/a556/phasic
name = "5.56mm phasic bullet"
/obj/projectile/bullet/a223/phasic
name = ".223 phasic bullet"
icon_state = "gaussphase"
damage = 20
armour_penetration = 70
damage = 30
armour_penetration = 100
projectile_phasing = PASSTABLE | PASSGLASS | PASSGRILLE | PASSCLOSEDTURF | PASSMACHINE | PASSSTRUCTURE | PASSDOORS
// 7.62 (Nagant Rifle)

View File

@@ -24,6 +24,14 @@
sharpness = NONE
embedding = null
/obj/projectile/bullet/shotgun_beanbag/a40mm
name = "rubber slug"
icon_state = "cannonball"
damage = 20
stamina = 160 //BONK
wound_bonus = 30
weak_against_armour = TRUE
/obj/projectile/bullet/incendiary/shotgun
name = "incendiary slug"
icon_state = "pellet"

View File

@@ -10,6 +10,11 @@
name = ".45 armor-piercing bullet"
armour_penetration = 50
/obj/projectile/bullet/c45/hp
name = ".45 hollow point bullet"
damage = 50
weak_against_armour = TRUE
/obj/projectile/bullet/incendiary/c45
name = ".45 incendiary bullet"
damage = 15

View File

@@ -26,13 +26,15 @@
var/random_crits_enabled = TRUE // Worst thing Valve ever added
/obj/projectile/bullet/rocket/on_hit(atom/target, blocked = FALSE)
var/random_crit_gib = FALSE
if(isliving(target) && prob(1) && random_crits_enabled)
var/mob/living/gibbed_dude = target
if(gibbed_dude.stat < HARD_CRIT)
gibbed_dude.say("Is that a fucking ro-", forced = "hit by rocket")
random_crit_gib = TRUE
..()
do_boom(target)
do_boom(target, random_crit_gib)
if(anti_armour_damage && ismecha(target))
var/obj/vehicle/sealed/mecha/M = target
M.take_damage(anti_armour_damage)
@@ -43,11 +45,15 @@
/** This proc allows us to customize the conditions necesary for the rocket to detonate, allowing for different explosions for living targets, turf targets,
among other potential differences. This granularity is helpful for things like the special rockets mechs use. */
/obj/projectile/bullet/rocket/proc/do_boom(atom/target)
/obj/projectile/bullet/rocket/proc/do_boom(atom/target, random_crit_gib = FALSE)
if(!isliving(target)) //if the target isn't alive, so is a wall or something
explosion(target, heavy_impact_range = 1, light_impact_range = 2, flame_range = 3, flash_range = 4, explosion_cause = src)
else
explosion(target, light_impact_range = 2, flame_range = 3, flash_range = 4, explosion_cause = src)
if(random_crit_gib)
var/mob/living/gibbed_dude = target
new /obj/effect/temp_visual/crit(get_turf(gibbed_dude))
gibbed_dude.gib()
/// PM9 HEAP rocket - the anti-anything missile you always craved.
/obj/projectile/bullet/rocket/heap

View File

@@ -178,6 +178,13 @@
amount_per_transfer_from_this = 50
list_reagents = list(/datum/reagent/medicine/stimulants = 50)
/obj/item/reagent_containers/hypospray/medipen/methamphetamine
name = "methamphetamine medipen"
volume = 24
amount_per_transfer_from_this = 24
desc = "Contains a relatively safe quantity of methamphetamine, along with mannitol to ensure that brain damage is kept at a minimum."
list_reagents = list(/datum/reagent/drug/methamphetamine = 10, /datum/reagent/medicine/mannitol = 14)
/obj/item/reagent_containers/hypospray/medipen/morphine
name = "morphine medipen"
desc = "A rapid way to get you out of a tight situation and fast! You'll feel rather drowsy, though."

View File

@@ -157,6 +157,9 @@
/obj/item/autosurgeon/syndicate/anti_stun
starting_organ = /obj/item/organ/internal/cyberimp/brain/anti_stun
/obj/item/autosurgeon/syndicate/anti_drop
starting_organ = /obj/item/organ/internal/cyberimp/brain/anti_drop
/obj/item/autosurgeon/syndicate/reviver
starting_organ = /obj/item/organ/internal/cyberimp/chest/reviver

View File

@@ -167,15 +167,9 @@
name = "boxed cybernetic implants"
desc = "A sleek, sturdy box."
icon_state = "cyber_implants"
var/list/boxed = list(
/obj/item/autosurgeon/syndicate/thermal_eyes,
/obj/item/autosurgeon/syndicate/xray_eyes,
/obj/item/autosurgeon/syndicate/anti_stun,
/obj/item/autosurgeon/syndicate/reviver)
var/amount = 5
/obj/item/storage/box/cyber_implants/PopulateContents()
var/implant
while(contents.len <= amount)
implant = pick(boxed)
new implant(src)
new /obj/item/autosurgeon/syndicate/xray_eyes(src)
new /obj/item/autosurgeon/syndicate/anti_stun(src)
new /obj/item/autosurgeon/syndicate/reviver(src)
new /obj/item/autosurgeon/syndicate/anti_drop(src)

View File

@@ -58,5 +58,5 @@
progression_minimum = 30 MINUTES
item = /obj/item/ammo_box/a357
cost = 4
purchasable_from = ~UPLINK_CLOWN_OPS
purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) //nukies get their own version
illegal_tech = FALSE

View File

@@ -0,0 +1,143 @@
// Clown Operative Stuff
// Maybe someday, someone will care to maintain this
/datum/uplink_item/weapon_kits/pie_cannon
name = "Banana Cream Pie Cannon"
desc = "A special pie cannon for a special clown, this gadget can hold up to 20 pies and automatically fabricates one every two seconds!"
cost = 10
item = /obj/item/pneumatic_cannon/pie/selfcharge
surplus = 0
purchasable_from = UPLINK_CLOWN_OPS
/datum/uplink_item/weapon_kits/bananashield
name = "Bananium Energy Shield"
desc = "A clown's most powerful defensive weapon, this personal shield provides near immunity to ranged energy attacks \
by bouncing them back at the ones who fired them. It can also be thrown to bounce off of people, slipping them, \
and returning to you even if you miss. WARNING: DO NOT ATTEMPT TO STAND ON SHIELD WHILE DEPLOYED, EVEN IF WEARING ANTI-SLIP SHOES."
item = /obj/item/shield/energy/bananium
cost = 16
surplus = 0
purchasable_from = UPLINK_CLOWN_OPS
/datum/uplink_item/weapon_kits/clownsword
name = "Bananium Energy Sword"
desc = "An energy sword that deals no damage, but will slip anyone it contacts, be it by melee attack, thrown \
impact, or just stepping on it. Beware friendly fire, as even anti-slip shoes will not protect against it."
item = /obj/item/melee/energy/sword/bananium
cost = 3
surplus = 0
purchasable_from = UPLINK_CLOWN_OPS
/datum/uplink_item/weapon_kits/clownoppin
name = "Ultra Hilarious Firing Pin"
desc = "A firing pin that, when inserted into a gun, makes that gun only useable by clowns and clumsy people and makes that gun honk whenever anyone tries to fire it."
cost = 1 //much cheaper for clown ops than for clowns
item = /obj/item/firing_pin/clown/ultra
purchasable_from = UPLINK_CLOWN_OPS
illegal_tech = FALSE
/datum/uplink_item/weapon_kits/clownopsuperpin
name = "Super Ultra Hilarious Firing Pin"
desc = "Like the ultra hilarious firing pin, except the gun you insert this pin into explodes when someone who isn't clumsy or a clown tries to fire it."
cost = 4 //much cheaper for clown ops than for clowns
item = /obj/item/firing_pin/clown/ultra/selfdestruct
purchasable_from = UPLINK_CLOWN_OPS
illegal_tech = FALSE
/datum/uplink_item/weapon_kits/foamsmg
name = "Toy Submachine Gun"
desc = "A fully-loaded Donksoft bullpup submachine gun that fires riot grade darts with a 20-round magazine."
item = /obj/item/gun/ballistic/automatic/c20r/toy
cost = 5
surplus = 0
purchasable_from = UPLINK_CLOWN_OPS
/datum/uplink_item/weapon_kits/foammachinegun
name = "Toy Machine Gun"
desc = "A fully-loaded Donksoft belt-fed machine gun. This weapon has a massive 50-round magazine of devastating \
riot grade darts, that can briefly incapacitate someone in just one volley."
item = /obj/item/gun/ballistic/automatic/l6_saw/toy
cost = 10
surplus = 0
purchasable_from = UPLINK_CLOWN_OPS
/datum/uplink_item/explosives/bombanana
name = "Bombanana"
desc = "A banana with an explosive taste! discard the peel quickly, as it will explode with the force of a Syndicate minibomb \
a few seconds after the banana is eaten."
item = /obj/item/food/grown/banana/bombanana
cost = 4 //it is a bit cheaper than a minibomb because you have to take off your helmet to eat it, which is how you arm it
surplus = 0
purchasable_from = UPLINK_CLOWN_OPS
/datum/uplink_item/explosives/clown_bomb_clownops
name = "Clown Bomb"
desc = "The Clown bomb is a hilarious device capable of massive pranks. It has an adjustable timer, \
with a minimum of %MIN_BOMB_TIMER seconds, and can be bolted to the floor with a wrench to prevent \
movement. The bomb is bulky and cannot be moved; upon ordering this item, a smaller beacon will be \
transported to you that will teleport the actual bomb to it upon activation. Note that this bomb can \
be defused, and some crew may attempt to do so."
item = /obj/item/sbeacondrop/clownbomb
cost = 15
surplus = 0
purchasable_from = UPLINK_CLOWN_OPS
/datum/uplink_item/explosives/clown_bomb_clownops/New()
. = ..()
desc = replacetext(desc, "%MIN_BOMB_TIMER", SYNDIEBOMB_MIN_TIMER_SECONDS)
/datum/uplink_item/explosives/tearstache
name = "Teachstache Grenade"
desc = "A teargas grenade that launches sticky moustaches onto the face of anyone not wearing a clown or mime mask. The moustaches will \
remain attached to the face of all targets for one minute, preventing the use of breath masks and other such devices."
item = /obj/item/grenade/chem_grenade/teargas/moustache
cost = 3
surplus = 0
purchasable_from = UPLINK_CLOWN_OPS
/datum/uplink_item/explosives/pinata
name = "Weapons Grade Pinata Kit"
desc = "A pinata filled with both candy and explosives as well as two belts to carry them on, crack it open and see what you get!"
item = /obj/item/storage/box/syndie_kit/pinata
purchasable_from = UPLINK_CLOWN_OPS
limited_stock = 1
cost = 12 //This is effectively the clown ops version of the grenadier belt where you should on average get 8 explosives if you use a weapon with exactly 10 force.
surplus = 0
/datum/uplink_item/reinforcement/clown_reinforcement
name = "Clown Reinforcements"
desc = "Call in an additional clown to share the fun, equipped with full starting gear, but no telecrystals."
item = /obj/item/antag_spawner/nuke_ops/clown
cost = 20
purchasable_from = UPLINK_CLOWN_OPS
restricted = TRUE
refundable = TRUE
/datum/uplink_item/mech/honker
name = "Dark H.O.N.K."
desc = "A clown combat mech equipped with bombanana peel and tearstache grenade launchers, as well as the ubiquitous HoNkER BlAsT 5000."
item = /obj/vehicle/sealed/mecha/honker/dark/loaded
cost = 80
purchasable_from = UPLINK_CLOWN_OPS
/* //SKYRAT REMOVAL START
/datum/uplink_item/stealthy_tools/combatbananashoes
name = "Combat Banana Shoes"
desc = "While making the wearer immune to most slipping attacks like regular combat clown shoes, these shoes \
can generate a large number of synthetic banana peels as the wearer walks, slipping up would-be pursuers. They also \
squeak significantly louder."
item = /obj/item/clothing/shoes/clown_shoes/banana_shoes/combat
cost = 6
surplus = 0
purchasable_from = UPLINK_CLOWN_OPS
*/ //SKYRAT REMOVAL END
/datum/uplink_item/badass/clownopclumsinessinjector //clowns can buy this too, but it's in the role-restricted items section for them
name = "Clumsiness Injector"
desc = "Inject yourself with this to become as clumsy as a clown... or inject someone ELSE with it to make THEM as clumsy as a clown. Useful for clown operatives who wish to reconnect with their former clownish nature or for clown operatives who wish to torment and play with their prey before killing them."
item = /obj/item/dnainjector/clumsymut
cost = 1
purchasable_from = UPLINK_CLOWN_OPS
illegal_tech = FALSE

View File

@@ -68,7 +68,7 @@
item = /obj/item/dualsaber
cost = 16
purchasable_from = ~UPLINK_CLOWN_OPS
purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) //nukies get their own version
/datum/uplink_item/dangerous/doublesword/get_discount_value(discount_type)
switch(discount_type)
@@ -98,4 +98,4 @@
progression_minimum = 30 MINUTES
cost = 13
surplus = 50
purchasable_from = ~UPLINK_CLOWN_OPS
purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) //nukies get their own version

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

View File

@@ -446,11 +446,12 @@
desc = "A .244 Acia casing. Under the right conditions, it shimmers." // these shouldn't be appearing because LSG makes you throw your gun without working the bolt
can_be_printed = FALSE
/obj/item/ammo_casing/a556
/obj/item/ammo_casing/a277
name = ".277 Aestus casing"
desc = "A .277 bullet casing."
caliber = CALIBER_A277
/obj/item/ammo_casing/a556/phasic
/obj/item/ammo_casing/a277/phasic
name = ".277 Aestus phasic casing"
desc = "A .277 Aestus bullet casing.\
<br><br>\
@@ -559,10 +560,10 @@
// The ones above are the casings for the ammo, whereas the ones below are the actual projectiles that give you feedback when you're shot
/obj/projectile/bullet/a556
/obj/projectile/bullet/a277
name = ".277 Aestus bullet"
/obj/projectile/bullet/a556/phasic
/obj/projectile/bullet/a277/phasic
name = ".277 PHASE bullet"
/obj/projectile/bullet/a762

View File

@@ -219,7 +219,7 @@
minimum_distance = 5
icon_state = "blackops_ranged"
icon_living = "blackops_ranged"
casingtype = /obj/item/ammo_casing/a556/weak
casingtype = /obj/item/ammo_casing/a277/weak
projectilesound = 'modular_skyrat/modules/gunsgalore/sound/guns/fire/m16_fire.ogg'
attack_sound = 'sound/weapons/punch1.ogg'
loot = list(/obj/effect/gibspawner/human, /obj/item/ammo_box/magazine/m16)

View File

@@ -1,10 +1,10 @@
/obj/projectile/bullet/a556/weak
/obj/projectile/bullet/a277/weak
name = "surplus .277 bullet"
damage = 25
armour_penetration = 10
wound_bonus = -40
/obj/item/ammo_casing/a556/weak
/obj/item/ammo_casing/a277/weak
name = ".277 surplus bullet casing"
desc = "A .277 surplus bullet casing."
projectile_type = /obj/projectile/bullet/a556/weak
projectile_type = /obj/projectile/bullet/a277/weak

View File

@@ -28,8 +28,8 @@
desc = "A double-stack translucent polymer magazine for use with the XM-2537 rifles. Holds 30 rounds of .277 Aestus."
icon = 'modular_skyrat/modules/gunsgalore/icons/guns/gunsgalore_items.dmi'
icon_state = "m16e"
ammo_type = /obj/item/ammo_casing/a556
caliber = "a556"
ammo_type = /obj/item/ammo_casing/a277
caliber = CALIBER_A277
max_ammo = 30
multiple_sprites = AMMO_BOX_FULL_EMPTY
@@ -38,8 +38,8 @@
desc = "A double-stack solid magazine that looks rather dated. Holds 20 rounds of .277 Aestus."
icon = 'modular_skyrat/modules/gunsgalore/icons/guns/gunsgalore_items.dmi'
icon_state = "m16"
ammo_type = /obj/item/ammo_casing/a556
caliber = "a556"
ammo_type = /obj/item/ammo_casing/a277
caliber = CALIBER_A277
max_ammo = 20
multiple_sprites = AMMO_BOX_FULL_EMPTY
@@ -73,7 +73,7 @@
desc = "A double-stack solid polymer drum made for use with the Amans Patriae rifle. Holds 50 rounds of .277 ammo."
icon = 'modular_skyrat/modules/gunsgalore/icons/guns/gunsgalore_items.dmi'
icon_state = "m16"
ammo_type = /obj/item/ammo_casing/a556
caliber = "a556"
ammo_type = /obj/item/ammo_casing/a277
caliber = CALIBER_A277
max_ammo = 50
multiple_sprites = AMMO_BOX_FULL_EMPTY

View File

@@ -73,16 +73,16 @@
* .277 Aestus
*/
/obj/item/ammo_casing/a556/rubber
/obj/item/ammo_casing/a277/rubber
name = ".277 rubber bullet casing"
desc = "A .277 rubber bullet casing.\
<br><br>\
<i>RUBBER: Less than lethal ammo. Deals both stamina damage and regular damage.</i>"
caliber = CALIBER_A556
projectile_type = /obj/projectile/bullet/a556/rubber
caliber = CALIBER_A277
projectile_type = /obj/projectile/bullet/a277/rubber
harmful = FALSE
/obj/projectile/bullet/a556/rubber
/obj/projectile/bullet/a277/rubber
name = ".277 rubber bullet"
damage = 10
armour_penetration = 10
@@ -96,17 +96,17 @@
embedding = null
wound_bonus = -50
/obj/item/ammo_casing/a556/ap
/obj/item/ammo_casing/a277/ap
name = ".277 Aestus armor-piercing bullet casing"
desc = "A .277 armor-piercing bullet casing.\
<br><br>\
<i>ARMOR PIERCING: Increased armor piercing capabilities. What did you expect?"
caliber = CALIBER_A556
projectile_type = /obj/projectile/bullet/a556/ap
caliber = CALIBER_A277
projectile_type = /obj/projectile/bullet/a277/ap
advanced_print_req = TRUE
custom_materials = AMMO_MATS_AP
/obj/projectile/bullet/a556/ap
/obj/projectile/bullet/a277/ap
name = ".277 armor-piercing bullet"
armour_penetration = 60

View File

@@ -62,7 +62,7 @@
/obj/item/storage/toolbox/ammobox/full/l6_saw
name = "ammo box (L6 SAW)"
desc = "It contains a few magazines."
ammo_type = /obj/item/ammo_box/magazine/mm712x82
ammo_type = /obj/item/ammo_box/magazine/m7mm
amount = 7
/obj/item/storage/toolbox/ammobox/full/makarov

View File

@@ -5344,6 +5344,7 @@
#include "code\modules\uplink\uplink_items\ammunition.dm"
#include "code\modules\uplink\uplink_items\badass.dm"
#include "code\modules\uplink\uplink_items\bundle.dm"
#include "code\modules\uplink\uplink_items\clownops.dm"
#include "code\modules\uplink\uplink_items\dangerous.dm"
#include "code\modules\uplink\uplink_items\device_tools.dm"
#include "code\modules\uplink\uplink_items\explosive.dm"

View File

@@ -0,0 +1,13 @@
#comment This repaths several ammo types to a new type with a different caliber.
/obj/item/ammo_box/magazine/mm712x82 : : /obj/item/ammo_box/magazine/m7mm
/obj/item/ammo_casing/mm712x82 : /obj/item/ammo_casing/m7mm{@OLD}
/obj/projectile/bullet/mm712x82 : /obj/projectile/bullet/a7mm{@OLD}
/obj/projectile/bullet/m223 : /obj/item/ammo_box/magazine/m223{@OLD}
/obj/item/ammo_casing/a556 : /obj/item/ammo_casing/a223{@OLD}
/obj/projectile/bullet/a556 : /obj/projectile/bullet/a223{@OLD}