Adds confetti shot (#21462)

* CONFETTI CANNON

* proc and contra review

* sprite names

* nukie uplink and lewcc suggestions

* chemical fixed

* fixes party drums cost and chem explosion sound

* Henri review

* renames a datum because I copypasted shit

* changes a name because I copy pasted

* removes an extra space

* things I forgot + bundles + recipe change

* Oopsie + tones down the volume of confetti
This commit is contained in:
DGamerL
2023-07-07 13:44:55 +01:00
committed by GitHub
parent e0ebc106d1
commit 887a5111df
11 changed files with 118 additions and 9 deletions
@@ -680,3 +680,23 @@
reference = "DEPCN"
excludefrom = list()
uplinktypes = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST)
// ---------------------------------
// NUKIE ONLY POINTLESS BADASSERY
// ---------------------------------
/datum/uplink_item/badass/confettidrum
name = "Bulldog - 12g party Magazine"
desc = "An alternative 12-round confetti magazine for use in the Bulldog shotgun. Why? Because we can - Honkco Industries"
item = /obj/item/ammo_box/magazine/m12g/confetti
reference = "12CS"
uplinktypes = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST)
cost = 1
/datum/uplink_item/badass/confetti_party_pack
name = "Nuclear party pack"
desc = "A dufflebag filled with hilarious equipment! Comes with free confetti grenades and a cap gun!"
item = /obj/item/storage/backpack/duffel/syndie/party
reference = "SPP"
uplinktypes = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST)
cost = 10
@@ -2,15 +2,15 @@
name = "party grenade"
desc = "Party time!"
icon_state = "confetti"
var/spawner_type = /obj/effect/decal/cleanable/confetti
/obj/item/grenade/confetti/prime()
var/turf/T = get_turf(src)
playsound(T, 'sound/effects/confetti_partywhistle.ogg', 100, 1)
for(var/i in 1 to 20) //20 confettis. Yes.
var/atom/movable/x = new spawner_type
x.loc = T
for(var/j in 1 to rand(1, 4))
step(x, pick(NORTH,SOUTH,EAST,WEST))
confettisize(src, 20, 4) //20 confettis. Yes.
qdel(src)
/proc/confettisize(turf/simulated/T, volume, range)
var/spawner_type = /obj/effect/decal/cleanable/confetti
playsound(T, 'sound/effects/confetti_partywhistle.ogg', 70, 1)
for(var/i in 1 to volume)
var/atom/movable/x = new spawner_type(T)
for(var/j in 1 to rand(1, range))
step(x, pick(NORTH,SOUTH,EAST,WEST))
@@ -125,6 +125,11 @@
new /obj/item/instrument/bikehorn(src)
new /obj/item/bikehorn(src)
new /obj/item/dnainjector/comic(src)
for(var/i in 1 to 10)
new /obj/item/ammo_box/magazine/m12g/confetti(src)
for(var/i in 1 to 5)
new /obj/item/grenade/confetti(src)
new /obj/item/gun/projectile/revolver/capgun(src)
/obj/item/storage/backpack/mime
name = "Parcel Parceaux"
@@ -592,6 +597,16 @@
new /obj/item/circular_saw(src)
new /obj/item/surgicaldrill(src)
/obj/item/storage/backpack/duffel/syndie/party
desc = "A large duffel bag, packed to the brim with hilarious equipment."
/obj/item/storage/backpack/duffel/syndie/party/populate_contents()
for(var/i in 1 to 10)
new /obj/item/ammo_box/magazine/m12g/confetti(src)
for(var/i in 1 to 5)
new /obj/item/grenade/confetti(src)
new /obj/item/gun/projectile/revolver/capgun(src)
#define NANNY_MAX_VALUE 7
#define NANNY_MIN_VALUE 6
+10
View File
@@ -423,6 +423,16 @@
category = CAT_WEAPONRY
subcategory = CAT_AMMO
/datum/crafting_recipe/confettishot
name = "Confetti Shot"
result = list(/obj/item/ammo_casing/shotgun/confetti)
reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1,
/datum/reagent/confetti = 10)
tools = list(TOOL_SCREWDRIVER)
time = 5
category = CAT_WEAPONRY
subcategory = CAT_AMMO
/datum/crafting_recipe/ishotgun
name = "Improvised Shotgun"
result = list(/obj/item/gun/projectile/revolver/doublebarrel/improvised)
@@ -111,6 +111,12 @@
icon_state = "buckloader"
ammo_type = /obj/item/ammo_casing/shotgun/buckshot
/obj/item/ammo_box/shotgun/confetti
name = "shotgun speedloader (Confetti)"
icon_state = "partyloader"
ammo_type = /obj/item/ammo_casing/shotgun/confetti
multi_sprite_step = 1
/obj/item/ammo_box/shotgun/dragonsbreath
name = "shotgun speedloader (Dragonsbreath)"
icon_state = "dragonsbreathloader"
@@ -300,6 +300,12 @@
muzzle_flash_range = MUZZLE_FLASH_RANGE_NORMAL
materials = list(MAT_METAL=250)
/obj/item/ammo_casing/shotgun/confetti
name = "confettishot"
desc = "It's party time!"
icon_state = "partyshell"
projectile_type = /obj/item/projectile/bullet/confetti
/obj/item/ammo_casing/a556
desc = "A 5.56mm bullet casing."
caliber = "a556"
@@ -489,6 +489,11 @@
icon_state = "m12gXlDb"
ammo_type = /obj/item/ammo_casing/shotgun/incendiary/dragonsbreath
/obj/item/ammo_box/magazine/m12g/confetti
name = "\improper XL shotgun magazine (12g confetti)"
icon_state = "party_drum"
ammo_type = /obj/item/ammo_casing/shotgun/confetti
/obj/item/ammo_box/magazine/toy
name = "foam force META magazine"
ammo_type = /obj/item/ammo_casing/caseless/foam_dart
@@ -219,6 +219,19 @@
explosion(target, -1, 0, 1)
return TRUE
/obj/item/projectile/bullet/confetti
name = "confetti shot"
damage = 0
range = 3
/obj/item/projectile/bullet/confetti/on_range()
confettisize(src, 7, 3)
..()
/obj/item/projectile/bullet/confetti/on_hit(atom/target, blocked, hit_zone)
confettisize(src, 7, 3)
..()
/obj/item/projectile/plasma
name = "plasma blast"
icon_state = "plasmacutter"
@@ -465,3 +465,14 @@
M.adjust_fire_stacks(volume / 5)
return
..()
/datum/reagent/confetti
name = "Confetti"
id = "confetti"
description = "Pure, liquid confetti. Explodes into a colorful bomb when exposed to heat."
color = "#500064" // rgb: 80, 0, 100
taste_description = "the tears of janitors"
/datum/reagent/confetti/reaction_turf(turf/T, volume)
var/confetti = /obj/effect/decal/cleanable/confetti
new confetti(T)
@@ -389,3 +389,26 @@
result = "thermite"
required_reagents = list("aluminum" = 1, "iron" = 1, "oxygen" = 1)
result_amount = 3
/datum/chemical_reaction/confetti
name = "Confetti"
id = "confetti"
result = "confetti"
required_reagents = list("cyanide" = 1, "colorful_reagent" = 1)
result_amount = 5
mix_message = "The mixture congeals into a dry powder."
/datum/chemical_reaction/confetti/confettibomb
name = "confettibomb"
id = "confettibomb"
required_reagents = list("confetti" = 1)
min_temp = T0C + 300
result = null
mix_sound = 'sound/effects/confetti_partywhistle.ogg'
mix_message = "The powder starts vibrating quickly!"
/datum/chemical_reaction/confetti/confettibomb/on_reaction(datum/reagents/holder, created_volume)
var/turf/T = get_turf(holder.my_atom)
var/confetti_size = CEILING(created_volume / 10, 1)
var/confetti_range = CEILING(confetti_size / 2, 1)
confettisize(T, confetti_size, confetti_range)
Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 38 KiB