Hats! Hats! Hats! (#19529)

This commit is contained in:
Guti
2026-06-19 18:03:51 +02:00
committed by GitHub
parent d16d74eab1
commit f653cd3811
6 changed files with 118 additions and 0 deletions
@@ -0,0 +1,48 @@
/particles/unusual_effect
icon = 'icons/effects/particles/pollen.dmi'
icon_state = "pollen"
width = 100
height = 100
count = 1000
spawning = 4
lifespan = 0.7 SECONDS
fade = 1 SECONDS
grow = -0.01
velocity = list(0, 0)
position = generator(GEN_CIRCLE, 0, 15, NORMAL_RAND)
drift = generator(GEN_VECTOR, list(0, -0.2), list(0, 0.2))
gravity = list(0, 0.95)
scale = generator(GEN_VECTOR, list(0.3, 0.3), list(1, 1), NORMAL_RAND)
rotation = 30
spin = generator(GEN_NUM, -20, 20)
/particles/unusual_effect/cloud
icon = 'icons/effects/particles/smoke.dmi'
icon_state = list("steam_cloud_1" = 1, "steam_cloud_2" = 1, "steam_cloud_3" = 1, "steam_cloud_4" = 1, "steam_cloud_5" = 1)
color = "#FFFFFF8A"
count = 5
spawning = 0.3
fade = 1.2 SECONDS
fadein = 0.4 SECONDS
position = generator(GEN_BOX, list(-17,-15,0), list(24,15,0), NORMAL_RAND)
scale = generator(GEN_VECTOR, list(0.9,0.9), list(1.1,1.1), NORMAL_RAND)
drift = generator(GEN_SPHERE, list(-0.01,0), list(0.01,0.01), UNIFORM_RAND)
spin = generator(GEN_NUM, -2, 2, NORMAL_RAND)
gravity = list(0.05, 0.28)
friction = 0.3
grow = 0.037
/particles/unusual_effect/fire
count = 10
spawning = 5
width = 64
height = 96
gradient = list("#FBAF4D", "#FCE6B6", "#FFFFFF")
lifespan = 1.5 SECONDS
fade = 1 SECONDS
fadein = 0.1 SECONDS
grow = -0.1
velocity = generator(GEN_CIRCLE, 3, 3, SQUARE_RAND)
position = generator(GEN_SPHERE, 0, 0, LINEAR_RAND)
scale = generator(GEN_VECTOR, list(0.5, 0.5), list(1,1), NORMAL_RAND)
drift = list(0)
@@ -152,3 +152,7 @@
/obj/item/assembly/signaler/anomaly/choice/,
/obj/item/anomaly_scanner
)
/obj/structure/largecrate/mysteryhats
name = "mystery hats box"
starts_with = list(/obj/structure/mystery_box/hat)
@@ -139,6 +139,10 @@
if(!isitem(instantiated_weapon))
return
if(istype(instantiated_weapon, /obj/item/clothing/head) && prob(1))
var/obj/item/clothing/head/hat = instantiated_weapon
hat.AddComponent(/datum/component/unusual_effect, color = "#FFEA0030", include_particles = TRUE)
hat.name = "unusual [hat.name]"
user.put_in_hands(instantiated_weapon)
/obj/effect/abstract/mystery_box_item
@@ -244,6 +248,18 @@
/obj/item/material/fishing_rod/modern
)
/obj/structure/mystery_box/hat
name = "hat box"
desc = "A wooden crate, filled with hats. There's a sticker on the side that says \"May contain an exceedingly rare special hat!\""
uses_left = 5
anchored = FALSE
/obj/structure/mystery_box/hat/generate_valid_types()
valid_types = subtypesof(/obj/item/clothing/head)
for(var/obj/item/hat as anything in valid_types)
if(ispath(hat, /obj/item/clothing/head/helmet) || ispath(hat, /obj/item/clothing/head/hood) || ispath(hat, /obj/item/clothing/head/tesh_hood || ispath(hat, /obj/item/clothing/head/chameleon)))
valid_types -= hat
#undef MYSTERY_BOX_COOLING_DOWN
#undef MYSTERY_BOX_STANDBY
#undef MYSTERY_BOX_CHOOSING