mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2026-07-20 12:44:04 +01:00
Adds fireworks and their launchers
This commit is contained in:
@@ -13,6 +13,8 @@
|
||||
#define WEATHER_ASH_STORM "ash storm" // Ripped from TG, like the above. Less harmless.
|
||||
#define WEATHER_ASH_STORM_SAFE "light ash storm" //Safe version of the ash storm. Dimmer.
|
||||
#define WEATHER_FALLOUT "fallout" // Modified emberfall, actually harmful. Admin only.
|
||||
#define WEATHER_FALLOUT_TEMP "short-term fallout" // Nuclear fallout that actually ends. Firework-only
|
||||
#define WEATHER_CONFETTI "confetti" // Firework-only
|
||||
|
||||
#define MOON_PHASE_NEW_MOON "new moon"
|
||||
#define MOON_PHASE_WAXING_CRESCENT "waxing crescent"
|
||||
|
||||
@@ -652,6 +652,21 @@
|
||||
message_admins(log)
|
||||
log_admin(log)
|
||||
|
||||
/datum/admins/proc/toggle_firework_override()
|
||||
set category = "Fun"
|
||||
set name = "Toggle Weather Firework Override"
|
||||
set desc = "Toggles ability for weather fireworks to affect weather on planet of choice."
|
||||
|
||||
if(!check_rights(R_DEBUG))
|
||||
return
|
||||
|
||||
var/datum/planet/planet = tgui_input_list(usr, "Which planet do you want to toggle firework effects on?", "Change Weather", SSplanets.planets)
|
||||
if(istype(planet) && planet.weather_holder)
|
||||
planet.weather_holder.firework_override = !(planet.weather_holder.firework_override)
|
||||
var/log = "[key_name(src)] toggled [planet.name]'s firework override to [planet.weather_holder.firework_override ? "on" : "off"]."
|
||||
message_admins(log)
|
||||
log_admin(log)
|
||||
|
||||
/datum/admins/proc/change_time()
|
||||
set category = "Debug"
|
||||
set name = "Change Planet Time"
|
||||
|
||||
@@ -0,0 +1,124 @@
|
||||
/obj/machinery/firework_launcher
|
||||
name = "firework launcher"
|
||||
desc = "A machine for launching fireworks of varying practicality."
|
||||
icon = 'icons/obj/machines/firework_launcher.dmi'
|
||||
icon_state = "launcher01"
|
||||
density = TRUE
|
||||
anchored = TRUE
|
||||
|
||||
circuit = /obj/item/weapon/circuitboard/firework_launcher
|
||||
var/obj/item/weapon/firework_star/loaded_star
|
||||
var/last_launch
|
||||
var/launch_cooldown = 5 MINUTES
|
||||
|
||||
/obj/machinery/firework_launcher/Initialize()
|
||||
. = ..()
|
||||
|
||||
default_apply_parts()
|
||||
last_launch = world.time // Prevents cheesing cooldown by deconstructing and reconstructing
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/firework_launcher/RefreshParts()
|
||||
launch_cooldown = 5 MINUTES
|
||||
var/rating = 0
|
||||
for(var/obj/item/weapon/stock_parts/micro_laser/laser in component_parts)
|
||||
rating += laser.rating - 1
|
||||
launch_cooldown = max(0, (launch_cooldown - ((rating*30) SECONDS))) // For every part tier above 1 on the two lasers, reduce cooldown by 30 seconds. 1 minute cooldown on the tier 5 parts, 3 minutes on tier 3.
|
||||
|
||||
. = ..()
|
||||
|
||||
/obj/machinery/firework_launcher/update_icon()
|
||||
icon_state = "launcher[loaded_star ? "1" : "0"][anchored ? "1" : "0"][panel_open ? "_open" : ""]"
|
||||
|
||||
/obj/machinery/firework_launcher/attackby(var/obj/item/O, var/mob/user)
|
||||
if(default_deconstruction_screwdriver(user, O))
|
||||
update_icon()
|
||||
return
|
||||
|
||||
if(default_deconstruction_crowbar(user, O))
|
||||
return
|
||||
|
||||
if(default_part_replacement(user, O))
|
||||
return
|
||||
|
||||
if(default_unfasten_wrench(user, O, 20))
|
||||
update_icon()
|
||||
return
|
||||
|
||||
if(istype(O, /obj/item/weapon/firework_star))
|
||||
loaded_star = O
|
||||
user.drop_item()
|
||||
O.forceMove(src)
|
||||
to_chat(user, "<span class='notice'>You insert the firework star into the launcher.</span>")
|
||||
add_fingerprint(user)
|
||||
update_icon()
|
||||
return
|
||||
|
||||
return ..()
|
||||
|
||||
/obj/machinery/firework_launcher/verb/eject()
|
||||
set category = "Object"
|
||||
set name = "Eject Firework Star"
|
||||
set src in oview(1)
|
||||
|
||||
var/mob/living/user = usr
|
||||
if(!user || user.stat != 0)
|
||||
return
|
||||
if(!loaded_star)
|
||||
to_chat(user, "<span class='notice'>There is no firework star loaded in the launcher.</span>")
|
||||
return
|
||||
else
|
||||
loaded_star.forceMove(get_turf(src))
|
||||
loaded_star = null
|
||||
add_fingerprint(user)
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/firework_launcher/attack_hand(mob/user) // Maybe this proc could be better as entirely its own proc, called from attack_hand, but also I don't really see the point
|
||||
if(panel_open)
|
||||
to_chat(user, "<span class='warning'>Close the panel first!</span>")
|
||||
return
|
||||
|
||||
if(!loaded_star)
|
||||
to_chat(user, "<span class='notice'>There is no firework star loaded in the launcher.</span>")
|
||||
return
|
||||
|
||||
if((world.time - last_launch) <= launch_cooldown)
|
||||
to_chat(user, "<span class='notice'>The launcher is still re-priming for launch.</span>")
|
||||
return
|
||||
|
||||
if(!anchored)
|
||||
to_chat(user, "<span class='warning'>Launcher must be firmly secured to the ground before firework can be launched!</span>")
|
||||
return
|
||||
|
||||
var/datum/planet/P = get_planet()
|
||||
if(!P || !(P.weather_holder)) // There are potential cases of being outside but not on planet. And checking whether planet has weather at all is more sanity thing than anything.
|
||||
to_chat(user, "<span class='warning'>Launcher beeps as its safeties seem to prevent launch in the current location.</span>")
|
||||
return
|
||||
|
||||
var/datum/weather_holder/WH = P.weather_holder
|
||||
if(WH.firework_override && istype(loaded_star, /obj/item/weapon/firework_star/weather)) // Enable weather-based events to not be ruined
|
||||
to_chat(user, "<span class='warning'>Launcher beeps as it seems some interference is preventing launch of this type of firework.</span>")
|
||||
return
|
||||
|
||||
to_chat(user, "<span class='notice'>You launch the firework!</span>")
|
||||
playsound(get_turf(src), 'sound/weapons/rpg.ogg', 75, 1)
|
||||
loaded_star.trigger_firework(WH)
|
||||
qdel(loaded_star)
|
||||
loaded_star = null
|
||||
last_launch = world.time
|
||||
add_fingerprint(user)
|
||||
update_icon()
|
||||
flick("launcher_launch", src)
|
||||
|
||||
/obj/machinery/firework_launcher/proc/get_planet()
|
||||
var/turf/T = get_turf(src)
|
||||
if(!T)
|
||||
return
|
||||
|
||||
if(!T.is_outdoors())
|
||||
return
|
||||
|
||||
var/datum/planet/P = SSplanets.z_to_planet[T.z]
|
||||
if(!P)
|
||||
return
|
||||
return P
|
||||
@@ -0,0 +1,142 @@
|
||||
#define T_FIREWORK_WEATHER_STAR(name) "weather firework star (" + (name) + ")"
|
||||
|
||||
/obj/item/weapon/firework_star
|
||||
icon = 'icons/obj/firework_stars.dmi'
|
||||
name = "firework star"
|
||||
desc = "A very tightly compacted ball of chemicals for use with firework launcher."
|
||||
icon_state = "star"
|
||||
w_class = ITEMSIZE_SMALL
|
||||
origin_tech = list(TECH_MATERIAL = 2, TECH_ENGINEERING = 1)
|
||||
|
||||
/obj/item/weapon/firework_star/proc/trigger_firework(var/datum/weather_holder/w_holder)
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/firework_star/weather
|
||||
name = "weather firework star"
|
||||
desc = "A firework star designed to alter a weather, rather than put on a show."
|
||||
var/weather_type
|
||||
origin_tech = list(TECH_MATERIAL = 5, TECH_ENGINEERING = 2)
|
||||
|
||||
/obj/item/weapon/firework_star/weather/trigger_firework(var/datum/weather_holder/w_holder)
|
||||
if(!w_holder) // Sanity
|
||||
return
|
||||
if(w_holder.firework_override) // Make sure weather-based events can't be interfered with
|
||||
return
|
||||
if(weather_type && (weather_type in w_holder.allowed_weather_types))
|
||||
w_holder.message_all_outdoor_players("Something seems to flash in the sky, as weather suddenly shifts!")
|
||||
w_holder.change_weather(weather_type)
|
||||
w_holder.rebuild_forecast()
|
||||
|
||||
/obj/item/weapon/firework_star/weather/clear
|
||||
name = T_FIREWORK_WEATHER_STAR("CLEAR SKY")
|
||||
weather_type = WEATHER_CLEAR
|
||||
icon_state = "clear"
|
||||
|
||||
/obj/item/weapon/firework_star/weather/overcast
|
||||
name = T_FIREWORK_WEATHER_STAR("CLOUDY")
|
||||
weather_type = WEATHER_OVERCAST
|
||||
icon_state = "cloudy"
|
||||
|
||||
/obj/item/weapon/firework_star/weather/rain
|
||||
name = T_FIREWORK_WEATHER_STAR("RAIN")
|
||||
weather_type = WEATHER_RAIN
|
||||
icon_state = "rain"
|
||||
|
||||
/obj/item/weapon/firework_star/weather/storm
|
||||
name = T_FIREWORK_WEATHER_STAR("STORM")
|
||||
weather_type = WEATHER_STORM
|
||||
icon_state = "rain"
|
||||
|
||||
/obj/item/weapon/firework_star/weather/light_snow
|
||||
name = T_FIREWORK_WEATHER_STAR("SNOW - LIGHT")
|
||||
weather_type = WEATHER_LIGHT_SNOW
|
||||
icon_state = "snow"
|
||||
|
||||
/obj/item/weapon/firework_star/weather/snow
|
||||
name = T_FIREWORK_WEATHER_STAR("SNOW - MEDIUM")
|
||||
weather_type = WEATHER_SNOW
|
||||
icon_state = "snow"
|
||||
|
||||
/obj/item/weapon/firework_star/weather/blizzard
|
||||
name = T_FIREWORK_WEATHER_STAR("SNOW - HEAVY")
|
||||
weather_type = WEATHER_BLIZZARD
|
||||
icon_state = "snow"
|
||||
|
||||
/obj/item/weapon/firework_star/weather/hail
|
||||
name = T_FIREWORK_WEATHER_STAR("HAIL")
|
||||
weather_type = WEATHER_HAIL
|
||||
icon_state = "snow"
|
||||
origin_tech = list(TECH_MATERIAL = 5, TECH_ENGINEERING = 2, TECH_ILLEGAL = 1)
|
||||
|
||||
/obj/item/weapon/firework_star/weather/fallout
|
||||
name = T_FIREWORK_WEATHER_STAR("NUCLEAR")
|
||||
desc = "This is the worst idea ever."
|
||||
weather_type = WEATHER_FALLOUT_TEMP
|
||||
icon_state = "nuclear"
|
||||
origin_tech = list(TECH_MATERIAL = 7, TECH_ENGINEERING = 3, TECH_ILLEGAL = 5)
|
||||
|
||||
/obj/item/weapon/firework_star/weather/confetti
|
||||
name = T_FIREWORK_WEATHER_STAR("CONFETTI")
|
||||
desc = "A firework star designed to alter a weather, rather than put on a show. This one makes colorful confetti rain from the sky."
|
||||
weather_type = WEATHER_CONFETTI
|
||||
icon_state = "confetti"
|
||||
|
||||
|
||||
/obj/item/weapon/firework_star/aesthetic
|
||||
name = "aesthetic firework star"
|
||||
desc = "A firework star designed to paint the sky with pretty lights."
|
||||
var/list/firework_adjectives = list("beautiful", "pretty", "fancy", "colorful", "bright", "shimmering")
|
||||
var/list/firework_colors = list("red", "orange", "yellow", "green", "cyan", "blue", "purple", "pink", "beige", "white")
|
||||
|
||||
/obj/item/weapon/firework_star/aesthetic/trigger_firework(var/datum/weather_holder/w_holder)
|
||||
if(!w_holder)
|
||||
return
|
||||
w_holder.message_all_outdoor_players(get_firework_message())
|
||||
|
||||
/obj/item/weapon/firework_star/aesthetic/proc/get_firework_message()
|
||||
return "You see a [pick(firework_adjectives)] explosion of [pick(firework_colors)] sparks in the sky!"
|
||||
|
||||
/obj/item/weapon/firework_star/aesthetic/configurable
|
||||
name = "configurable aesthetic firework star"
|
||||
desc = "A firework star designed to paint the sky with pretty lights. This one's advanced and can be configured to specific shapes or colors."
|
||||
icon_state = "config"
|
||||
var/current_color = "white"
|
||||
var/current_shape = "Random"
|
||||
var/list/firework_shapes = list("none", "Random",
|
||||
"a circle", "an oval", "a triangle", "a square", "a pentagon", "a hexagon", "an octagon", "a plus sign", "an x", "a star", "a spiral", "a heart", "a teardrop",
|
||||
"a smiling face", "a winking face", "a mouse", "a cat", "a dog", "a fox", "a bird", "a fish", "a lizard", "a bug", "a butterfly", "a robot", "a dragon", "a teppi", "a catslug",
|
||||
"a tree", "a leaf", "a flower", "a lightning bolt", "a cloud", "a sun", "a gemstone", "a flame", "a wrench", "a beaker", "a syringe", "a pickaxe", "a pair of handcuffs", "a crown",
|
||||
"a bottle", "a boat", "a spaceship",
|
||||
"Nanotrasen logo", "a geometric-looking letter S", "a dodecahedron")
|
||||
|
||||
/obj/item/weapon/firework_star/aesthetic/configurable/attack_self(var/mob/user)
|
||||
var/choice = tgui_alert(usr, "What setting do you want to adjust?", "Firework Star", list("Color", "Shape", "Nothing"))
|
||||
if(src.loc != user)
|
||||
return
|
||||
|
||||
if(choice == "Color")
|
||||
var/color_choice = tgui_input_list(user, "What color would you like firework to be?", "Firework Star", firework_colors)
|
||||
if(src.loc != user)
|
||||
return
|
||||
if(color_choice)
|
||||
current_color = color_choice
|
||||
|
||||
if(choice == "Shape")
|
||||
var/shape_choice = tgui_input_list(user, "What shape would you like firework to be?", "Firework Star", firework_shapes)
|
||||
if(src.loc != user)
|
||||
return
|
||||
if(shape_choice)
|
||||
current_shape = shape_choice
|
||||
|
||||
/obj/item/weapon/firework_star/aesthetic/configurable/get_firework_message()
|
||||
var/temp_shape = current_shape
|
||||
if(temp_shape == "Random")
|
||||
var/list/shapes_copy = firework_shapes.Copy()
|
||||
shapes_copy -= "Random"
|
||||
temp_shape = pick(shapes_copy)
|
||||
|
||||
if(temp_shape == "none" || !temp_shape)
|
||||
return "You see a [pick(firework_adjectives)] explosion of [current_color] sparks in the sky!"
|
||||
else
|
||||
return "You see a [pick(firework_adjectives)] explosion of [current_color] sparks in the sky, forming into shape of [current_shape]!"
|
||||
@@ -0,0 +1,8 @@
|
||||
/obj/item/weapon/circuitboard/firework_launcher
|
||||
name = T_BOARD("firework launcher")
|
||||
board_type = new /datum/frame/frame_types/machine
|
||||
build_path = /obj/machinery/firework_launcher
|
||||
origin_tech = list(TECH_MATERIAL = 4, TECH_ENGINEERING = 2)
|
||||
req_components = list (
|
||||
/obj/item/weapon/stock_parts/micro_laser = 2
|
||||
)
|
||||
@@ -111,17 +111,19 @@ var/datum/planet/virgo3b/planet_virgo3b = null
|
||||
WEATHER_EMBERFALL = new /datum/weather/virgo3b/emberfall(),
|
||||
WEATHER_ASH_STORM = new /datum/weather/virgo3b/ash_storm(),
|
||||
WEATHER_ASH_STORM_SAFE = new /datum/weather/virgo3b/ash_storm_safe(),
|
||||
WEATHER_FALLOUT = new /datum/weather/virgo3b/fallout()
|
||||
WEATHER_FALLOUT = new /datum/weather/virgo3b/fallout(),
|
||||
WEATHER_FALLOUT_TEMP = new /datum/weather/virgo3b/fallout/temp(),
|
||||
WEATHER_CONFETTI = new /datum/weather/virgo3b/confetti()
|
||||
)
|
||||
roundstart_weather_chances = list(
|
||||
WEATHER_CLEAR = 30,
|
||||
WEATHER_OVERCAST = 30,
|
||||
WEATHER_LIGHT_SNOW = 20,
|
||||
WEATHER_SNOW = 5,
|
||||
WEATHER_BLIZZARD = 5,
|
||||
WEATHER_RAIN = 5,
|
||||
WEATHER_STORM = 2.5,
|
||||
WEATHER_HAIL = 2.5
|
||||
WEATHER_CLEAR = 60,
|
||||
WEATHER_OVERCAST = 60,
|
||||
WEATHER_LIGHT_SNOW = 40,
|
||||
WEATHER_SNOW = 10,
|
||||
WEATHER_BLIZZARD = 10,
|
||||
WEATHER_RAIN = 10,
|
||||
WEATHER_STORM = 5,
|
||||
WEATHER_HAIL = 5
|
||||
)
|
||||
|
||||
/datum/weather/virgo3b
|
||||
@@ -550,3 +552,27 @@ var/datum/planet/virgo3b/planet_virgo3b = null
|
||||
if(T.is_outdoors())
|
||||
SSradiation.radiate(T, rand(fallout_rad_low, fallout_rad_high))
|
||||
|
||||
/datum/weather/virgo3b/fallout/temp
|
||||
name = "short-term fallout"
|
||||
transition_chances = list(
|
||||
WEATHER_FALLOUT = 10,
|
||||
WEATHER_RAIN = 50,
|
||||
WEATHER_STORM = 20,
|
||||
WEATHER_OVERCAST = 5
|
||||
)
|
||||
|
||||
/datum/weather/virgo3b/confetti
|
||||
name = "confetti"
|
||||
icon = 'icons/effects/weather_vr.dmi'
|
||||
icon_state = "confetti"
|
||||
|
||||
transition_chances = list(
|
||||
WEATHER_CLEAR = 50,
|
||||
WEATHER_OVERCAST = 20,
|
||||
WEATHER_CONFETTI = 5
|
||||
)
|
||||
observed_message = "Confetti is raining from the sky."
|
||||
transition_messages = list(
|
||||
"Suddenly, colorful confetti starts raining from the sky."
|
||||
)
|
||||
|
||||
|
||||
@@ -131,7 +131,9 @@ var/datum/planet/virgo3c/planet_virgo3c = null
|
||||
WEATHER_EMBERFALL = new /datum/weather/virgo3c/emberfall(),
|
||||
WEATHER_ASH_STORM = new /datum/weather/virgo3c/ash_storm(),
|
||||
WEATHER_ASH_STORM_SAFE = new /datum/weather/virgo3c/ash_storm_safe(),
|
||||
WEATHER_FALLOUT = new /datum/weather/virgo3c/fallout()
|
||||
WEATHER_FALLOUT = new /datum/weather/virgo3c/fallout(),
|
||||
WEATHER_FALLOUT_TEMP = new /datum/weather/virgo3c/fallout/temp(),
|
||||
WEATHER_CONFETTI = new /datum/weather/virgo3c/confetti()
|
||||
)
|
||||
roundstart_weather_chances = list(
|
||||
WEATHER_CLEAR = 50,
|
||||
@@ -548,6 +550,30 @@ var/datum/planet/virgo3c/planet_virgo3c = null
|
||||
if(T.is_outdoors())
|
||||
SSradiation.radiate(T, rand(fallout_rad_low, fallout_rad_high))
|
||||
|
||||
/datum/weather/virgo3c/fallout/temp
|
||||
name = "short-term fallout"
|
||||
transition_chances = list(
|
||||
WEATHER_FALLOUT = 10,
|
||||
WEATHER_RAIN = 50,
|
||||
WEATHER_STORM = 20,
|
||||
WEATHER_OVERCAST = 5
|
||||
)
|
||||
|
||||
/datum/weather/virgo3c/confetti
|
||||
name = "confetti"
|
||||
icon = 'icons/effects/weather_vr.dmi'
|
||||
icon_state = "confetti"
|
||||
|
||||
transition_chances = list(
|
||||
WEATHER_CLEAR = 50,
|
||||
WEATHER_OVERCAST = 20,
|
||||
WEATHER_CONFETTI = 5
|
||||
)
|
||||
observed_message = "Confetti is raining from the sky."
|
||||
transition_messages = list(
|
||||
"Suddenly, colorful confetti starts raining from the sky."
|
||||
)
|
||||
|
||||
/turf/unsimulated/wall/planetary/virgo3c
|
||||
name = "impassable rock"
|
||||
desc = "It's quite impassable"
|
||||
|
||||
@@ -110,7 +110,9 @@ var/datum/planet/virgo4/planet_virgo4 = null
|
||||
WEATHER_EMBERFALL = new /datum/weather/virgo4/emberfall(),
|
||||
WEATHER_ASH_STORM = new /datum/weather/virgo4/ash_storm(),
|
||||
WEATHER_ASH_STORM_SAFE = new /datum/weather/virgo4/ash_storm_safe(),
|
||||
WEATHER_FALLOUT = new /datum/weather/virgo4/fallout()
|
||||
WEATHER_FALLOUT = new /datum/weather/virgo4/fallout(),
|
||||
WEATHER_FALLOUT_TEMP = new /datum/weather/virgo4/fallout/temp(),
|
||||
WEATHER_CONFETTI = new /datum/weather/virgo4/confetti()
|
||||
)
|
||||
roundstart_weather_chances = list(
|
||||
WEATHER_CLEAR = 50,
|
||||
@@ -524,6 +526,30 @@ var/datum/planet/virgo4/planet_virgo4 = null
|
||||
if(T.is_outdoors())
|
||||
SSradiation.radiate(T, rand(fallout_rad_low, fallout_rad_high))
|
||||
|
||||
/datum/weather/virgo4/fallout/temp
|
||||
name = "short-term fallout"
|
||||
transition_chances = list(
|
||||
WEATHER_FALLOUT = 10,
|
||||
WEATHER_RAIN = 50,
|
||||
WEATHER_STORM = 20,
|
||||
WEATHER_OVERCAST = 5
|
||||
)
|
||||
|
||||
/datum/weather/virgo4/confetti
|
||||
name = "confetti"
|
||||
icon = 'icons/effects/weather_vr.dmi'
|
||||
icon_state = "confetti"
|
||||
|
||||
transition_chances = list(
|
||||
WEATHER_CLEAR = 50,
|
||||
WEATHER_OVERCAST = 20,
|
||||
WEATHER_CONFETTI = 5
|
||||
)
|
||||
observed_message = "Confetti is raining from the sky."
|
||||
transition_messages = list(
|
||||
"Suddenly, colorful confetti starts raining from the sky."
|
||||
)
|
||||
|
||||
/turf/unsimulated/wall/planetary/normal/virgo4
|
||||
name = "deep ocean"
|
||||
alpha = 0
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
/datum/weather_holder
|
||||
var/firework_override = FALSE
|
||||
|
||||
/datum/weather_holder/update_icon_effects()
|
||||
..()
|
||||
if(current_weather.icon)
|
||||
|
||||
@@ -170,6 +170,13 @@
|
||||
build_path = /obj/item/weapon/circuitboard/machine/vitals_monitor
|
||||
sort_string = "HAAF"
|
||||
|
||||
/datum/design/circuit/firework_launcher
|
||||
name = "firework launcher"
|
||||
id = "fireworklauncher"
|
||||
req_tech = list(TECH_DATA = 2, TECH_ENGINEERING = 2)
|
||||
build_path = /obj/item/weapon/circuitboard/firework_launcher
|
||||
sort_string = "KBAAB"
|
||||
|
||||
/datum/design/circuit/pointdefense
|
||||
name = "point defense battery"
|
||||
id = "pointdefense"
|
||||
|
||||
@@ -0,0 +1,112 @@
|
||||
// Firework Stars
|
||||
|
||||
/datum/design/item/firework_star/AssembleDesignName()
|
||||
name = "Firework star prototype ([item_name])"
|
||||
|
||||
/datum/design/item/firework_star/aesthetic
|
||||
name = "aesthetic"
|
||||
desc = "A firework star, designed for use with launcher. Produces variable amount of joy."
|
||||
id = "fireworkaesthetic"
|
||||
req_tech = list(TECH_MATERIAL = 2)
|
||||
materials = list(MAT_PLASTIC = 500, MAT_GLASS = 500)
|
||||
build_path = /obj/item/weapon/firework_star/aesthetic
|
||||
sort_string = "IFAAA"
|
||||
|
||||
/datum/design/item/firework_star/aesthetic_config
|
||||
name = "aesthetic - configurable"
|
||||
desc = "A firework star, designed for use with launcher. Produces variable amount of joy. Can be modified to produce specific forms."
|
||||
id = "fireworkaestheticconfig"
|
||||
req_tech = list(TECH_MATERIAL = 3, TECH_ENGINEERING = 2)
|
||||
materials = list(MAT_PLASTIC = 1000, MAT_GLASS = 1000)
|
||||
build_path = /obj/item/weapon/firework_star/aesthetic/configurable
|
||||
sort_string = "IFAAB"
|
||||
|
||||
/datum/design/item/firework_star/weather_clear
|
||||
name = "weather - CLEAR"
|
||||
desc = "A firework star, designed for use with launcher. Modifies current planetary weather effects. This one clears the sky."
|
||||
id = "fireworkclearsky"
|
||||
req_tech = list(TECH_MATERIAL = 4, TECH_ENGINEERING = 3)
|
||||
materials = list(MAT_PLASTIC = 2000, MAT_GLASS = 2000, MAT_STEEL = 4000)
|
||||
build_path = /obj/item/weapon/firework_star/weather/clear
|
||||
sort_string = "IFABA"
|
||||
|
||||
/datum/design/item/firework_star/weather_overcast
|
||||
name = "weather - CLOUDY"
|
||||
desc = "A firework star, designed for use with launcher. Modifies current planetary weather effects. This one creates some clouds."
|
||||
id = "fireworkcloudy"
|
||||
req_tech = list(TECH_MATERIAL = 4, TECH_ENGINEERING = 3)
|
||||
materials = list(MAT_PLASTIC = 2000, MAT_GLASS = 2000, MAT_SILVER = 1000)
|
||||
build_path = /obj/item/weapon/firework_star/weather/overcast
|
||||
sort_string = "IFABB"
|
||||
|
||||
/datum/design/item/firework_star/weather_rain
|
||||
name = "weather - RAIN"
|
||||
desc = "A firework star, designed for use with launcher. Modifies current planetary weather effects. This one creates rain."
|
||||
id = "fireworkrain"
|
||||
req_tech = list(TECH_MATERIAL = 5, TECH_ENGINEERING = 4)
|
||||
materials = list(MAT_PLASTIC = 2000, MAT_GLASS = 2000, MAT_SILVER = 4000)
|
||||
build_path = /obj/item/weapon/firework_star/weather/rain
|
||||
sort_string = "IFABC"
|
||||
|
||||
/datum/design/item/firework_star/weather_storm
|
||||
name = "weather - STORM"
|
||||
desc = "A firework star, designed for use with launcher. Modifies current planetary weather effects. This one creates a rainstorm."
|
||||
id = "fireworkstorm"
|
||||
req_tech = list(TECH_MATERIAL = 6, TECH_ENGINEERING = 5)
|
||||
materials = list(MAT_PLASTIC = 2000, MAT_GLASS = 2000, MAT_SILVER = 3000, MAT_GOLD = 1000)
|
||||
build_path = /obj/item/weapon/firework_star/weather/storm
|
||||
sort_string = "IFABD"
|
||||
|
||||
/datum/design/item/firework_star/weather_light_snow
|
||||
name = "weather - LIGHT SNOW"
|
||||
desc = "A firework star, designed for use with launcher. Modifies current planetary weather effects. This one creates a light snowfall."
|
||||
id = "fireworklightsnow"
|
||||
req_tech = list(TECH_MATERIAL = 5, TECH_ENGINEERING = 4)
|
||||
materials = list(MAT_PLASTIC = 2000, MAT_GLASS = 2000, MAT_SILVER = 2000, MAT_LEAD = 2000)
|
||||
build_path = /obj/item/weapon/firework_star/weather/light_snow
|
||||
sort_string = "IFABE"
|
||||
|
||||
/datum/design/item/firework_star/weather_snow
|
||||
name = "weather - MODERATE SNOW"
|
||||
desc = "A firework star, designed for use with launcher. Modifies current planetary weather effects. This one creates a moderate snowfall."
|
||||
id = "fireworksnow"
|
||||
req_tech = list(TECH_MATERIAL = 5, TECH_ENGINEERING = 4)
|
||||
materials = list(MAT_PLASTIC = 2000, MAT_GLASS = 2000, MAT_SILVER = 3000, MAT_LEAD = 2000)
|
||||
build_path = /obj/item/weapon/firework_star/weather/snow
|
||||
sort_string = "IFABF"
|
||||
|
||||
/datum/design/item/firework_star/weather_blizzard
|
||||
name = "weather - HEAVY SNOW"
|
||||
desc = "A firework star, designed for use with launcher. Modifies current planetary weather effects. This one creates a blizzard."
|
||||
id = "fireworkblizzard"
|
||||
req_tech = list(TECH_MATERIAL = 6, TECH_ENGINEERING = 5)
|
||||
materials = list(MAT_PLASTIC = 2000, MAT_GLASS = 2000, MAT_SILVER = 3000, MAT_LEAD = 3000)
|
||||
build_path = /obj/item/weapon/firework_star/weather/blizzard
|
||||
sort_string = "IFABG"
|
||||
|
||||
/datum/design/item/firework_star/weather_hail
|
||||
name = "weather - HAIL"
|
||||
desc = "A firework star, designed for use with launcher. Modifies current planetary weather effects. This one creates a hailstorm. DANGEROUS."
|
||||
id = "fireworkhail"
|
||||
req_tech = list(TECH_MATERIAL = 6, TECH_ENGINEERING = 5, TECH_ILLEGAL = 2)
|
||||
materials = list(MAT_PLASTIC = 2000, MAT_GLASS = 2000, MAT_SILVER = 3000, MAT_LEAD = 3000, MAT_PLASTEEL = 4000)
|
||||
build_path = /obj/item/weapon/firework_star/weather/hail
|
||||
sort_string = "IFABH"
|
||||
|
||||
/datum/design/item/firework_star/weather_fallout
|
||||
name = "weather - NUCLEAR"
|
||||
desc = "A firework star, designed for use with launcher. Modifies current planetary weather effects. This one creates a heavy cloud of nuclear fallout. DANGEROUS."
|
||||
id = "fireworkfallout"
|
||||
req_tech = list(TECH_MATERIAL = 8, TECH_ENGINEERING = 6, TECH_ILLEGAL = 7)
|
||||
materials = list(MAT_PLASTIC = 2000, MAT_GLASS = 2000, MAT_URANIUM = 12000)
|
||||
build_path = /obj/item/weapon/firework_star/weather/fallout
|
||||
sort_string = "IFABI"
|
||||
|
||||
/datum/design/item/firework_star/weather_confetti
|
||||
name = "weather - CONFETTI"
|
||||
desc = "A firework star, designed for use with launcher. Modifies current planetary weather effects. This one clears the sky and rains colorful confetti from it."
|
||||
id = "fireworkconfetti"
|
||||
req_tech = list(TECH_MATERIAL = 5, TECH_ENGINEERING = 4)
|
||||
materials = list(MAT_PLASTIC = 10000, MAT_GLASS = 10000)
|
||||
build_path = /obj/item/weapon/firework_star/weather/confetti
|
||||
sort_string = "IFABJ"
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 468 B After Width: | Height: | Size: 992 B |
Binary file not shown.
|
After Width: | Height: | Size: 1.4 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 478 B |
@@ -132,6 +132,25 @@
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/groundbase/medical/lobby)
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
"av" = (
|
||||
/obj/machinery/atmospherics/unary/vent_scrubber/on{
|
||||
dir = 1
|
||||
},
|
||||
/obj/machinery/alarm{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/bed/chair/office/light{
|
||||
dir = 4
|
||||
},
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/groundbase/science/robotics)
|
||||
"aw" = (
|
||||
/obj/machinery/firework_launcher,
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/groundbase/science/hall)
|
||||
>>>>>>> 5dad1cf58a... Merge pull request #14245 from Heroman3003/firework-stuff
|
||||
"ax" = (
|
||||
/obj/structure/closet/secure_closet/personal,
|
||||
/obj/item/weapon/towel/random,
|
||||
@@ -23017,7 +23036,7 @@ aB
|
||||
PR
|
||||
lw
|
||||
Vr
|
||||
Vr
|
||||
aw
|
||||
Bl
|
||||
ag
|
||||
ag
|
||||
|
||||
@@ -9043,6 +9043,11 @@
|
||||
},
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/tether/surfacebase/surface_one_hall)
|
||||
"aoR" = (
|
||||
/obj/machinery/light/small,
|
||||
/obj/machinery/firework_launcher,
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/rnd/hardstorage)
|
||||
"aoS" = (
|
||||
/obj/structure/flora/ausbushes/ppflowers,
|
||||
/turf/simulated/floor/grass,
|
||||
@@ -33190,10 +33195,6 @@
|
||||
/obj/effect/floor_decal/corner/red/border,
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/tether/surfacebase/security/lowerhall)
|
||||
"fna" = (
|
||||
/obj/machinery/light/small,
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/rnd/hardstorage)
|
||||
"fpU" = (
|
||||
/obj/machinery/meter,
|
||||
/obj/machinery/atmospherics/pipe/manifold/hidden/green,
|
||||
@@ -45294,6 +45295,116 @@ aad
|
||||
aad
|
||||
aad
|
||||
aad
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
aah
|
||||
aah
|
||||
aah
|
||||
aah
|
||||
aah
|
||||
aah
|
||||
aah
|
||||
aah
|
||||
aah
|
||||
aah
|
||||
aah
|
||||
bqI
|
||||
pZb
|
||||
rBG
|
||||
mhu
|
||||
xFG
|
||||
bqI
|
||||
txZ
|
||||
uge
|
||||
gCa
|
||||
aXs
|
||||
aXD
|
||||
gCa
|
||||
fCk
|
||||
fCk
|
||||
exW
|
||||
bJz
|
||||
lTn
|
||||
aah
|
||||
aah
|
||||
aah
|
||||
aah
|
||||
aah
|
||||
aah
|
||||
aah
|
||||
ahl
|
||||
ahL
|
||||
acV
|
||||
adF
|
||||
ahl
|
||||
apj
|
||||
apj
|
||||
apj
|
||||
apl
|
||||
apl
|
||||
apl
|
||||
apl
|
||||
apl
|
||||
apj
|
||||
apj
|
||||
apj
|
||||
apj
|
||||
auK
|
||||
avh
|
||||
abm
|
||||
abn
|
||||
abn
|
||||
abn
|
||||
acx
|
||||
afg
|
||||
aoR
|
||||
abm
|
||||
aCm
|
||||
akg
|
||||
aDy
|
||||
akj
|
||||
aCV
|
||||
aCV
|
||||
szT
|
||||
jSU
|
||||
alW
|
||||
amd
|
||||
alW
|
||||
ams
|
||||
amy
|
||||
amL
|
||||
amL
|
||||
amW
|
||||
adn
|
||||
adn
|
||||
adn
|
||||
aah
|
||||
aah
|
||||
aah
|
||||
aah
|
||||
aah
|
||||
aah
|
||||
aah
|
||||
aah
|
||||
aah
|
||||
aah
|
||||
aah
|
||||
aah
|
||||
aah
|
||||
aah
|
||||
aah
|
||||
aah
|
||||
aah
|
||||
aah
|
||||
aah
|
||||
aah
|
||||
aah
|
||||
aah
|
||||
aah
|
||||
aah
|
||||
aah
|
||||
aah
|
||||
>>>>>>> 5dad1cf58a... Merge pull request #14245 from Heroman3003/firework-stuff
|
||||
aad
|
||||
aad
|
||||
aad
|
||||
|
||||
@@ -2410,6 +2410,9 @@
|
||||
#include "code\modules\examine\descriptions\weapons.dm"
|
||||
#include "code\modules\ext_scripts\irc.dm"
|
||||
#include "code\modules\ext_scripts\python.dm"
|
||||
#include "code\modules\fireworks\firework_launcher.dm"
|
||||
#include "code\modules\fireworks\firework_stars.dm"
|
||||
#include "code\modules\fireworks\launcher_construction.dm"
|
||||
#include "code\modules\fishing\fishing.dm"
|
||||
#include "code\modules\fishing\fishing_net.dm"
|
||||
#include "code\modules\fishing\fishing_rod.dm"
|
||||
@@ -4027,6 +4030,7 @@
|
||||
#include "code\modules\research\designs\bio_devices_vr.dm"
|
||||
#include "code\modules\research\designs\circuit_assembly.dm"
|
||||
#include "code\modules\research\designs\engineering.dm"
|
||||
#include "code\modules\research\designs\firework_stars.dm"
|
||||
#include "code\modules\research\designs\HUDs.dm"
|
||||
#include "code\modules\research\designs\HUDs_vr.dm"
|
||||
#include "code\modules\research\designs\implants.dm"
|
||||
|
||||
Reference in New Issue
Block a user