diff --git a/GainStation13/code/game/gamemodes/meteor/meteors_gs.dm b/GainStation13/code/game/gamemodes/meteor/meteors_gs.dm new file mode 100644 index 00000000..86c588ed --- /dev/null +++ b/GainStation13/code/game/gamemodes/meteor/meteors_gs.dm @@ -0,0 +1,50 @@ + +/////////////////////// +//Meteor types +/////////////////////// + +//Starbit reference +/obj/effect/meteor/starbit + name = "glittery comet" + desc = "A sparkling mass of crystalized spacedust. ...It looks oddly tasty?" + hits = 1 + hitpwr = 1 + dropamt = 5 + threat = 1 + meteorsound = 'GainStation13/sound/effects/star.wav' + meteordrop = list(/obj/item/stack/ore/glass) + var/starbits = 3 + +/obj/effect/meteor/starbit/Initialize(mapload, target) + . = ..() + dropamt = rand(3,7) //Random amount of bits... + +/obj/effect/meteor/starbit/Move() + . = ..() + if(.) + new /obj/effect/temp_visual/telekinesis(get_turf(src)) + +/obj/effect/meteor/starbit/ram_turf(turf/T) //Sometimes it'll leave behind bits as it goes + if(isspaceturf(T)) + return + if(starbits <= 4) + return + if(prob(5)) + starbits-- + var/thing_to_spawn = pick(meteordrop) + new thing_to_spawn(T) + +/obj/effect/meteor/proc/get_hit() + hits-- + if(hits <= 0) + make_debris() + meteor_effect() + qdel(src) + else + if(starbits <= 4) //If it doesnt break, it could still drop bits... + if(!prob(5)) + return + starbits-- + var/thing_to_spawn = pick(meteordrop) + new thing_to_spawn(T) + diff --git a/GainStation13/code/modules/food_and_drinks/starbit.dm b/GainStation13/code/modules/food_and_drinks/starbit.dm new file mode 100644 index 00000000..a5861c9d --- /dev/null +++ b/GainStation13/code/modules/food_and_drinks/starbit.dm @@ -0,0 +1,48 @@ +// Starbits from Super Mario Galaxy! Had this idea while watching someone do a playthrough in a discord stream. +// ~~Starbits~~ Stellar Pieces:tm: drop from meteor-like comets which leave a handful behind when they impact, while +// also not actually dealing any damage to whatever they impact. + +/obj/item/reagent_containers/food/snacks/starbit + name = "stellar piece" //PlzDontSueMeNintendo + desc = "A small bit of crystalized stellar sugar. They're a rare delicacy that sometimes form under particular conditions inside of comets" + // I had help creating these sprites because Im worthless at doing sprites from scratch. + // Special thanks to @foxtsra on discord! + // -Reo + icon = "GainStation13/icons/obj/starbit.dmi" + icon_state = "bit" + bitesize = 4 + list_reagents = list(/datum/reagent/consumable/sugar = 1, /datum/reagent/consumable/stellarsugar = 5) + +/obj/item/reagent_containers/food/snacks/starbit/initialize(mapload, var/bit_color) + . = ..() + + if(!bit_color) // Color wasnt specified, lets become a random color. + bit_color = pick(list( // These are the colors starbits can be naturally in SMG. + "red", // so they're also the colors we can naturally be in spess. + "blue", + "purple", + "yellow", + "green", + "white", + )) + switch(bit_color) + if("red") + color = "#f22604" // Red / Orange. I think it's red, but it seems to be offically labled as orange.. + if("blue") + color = "#097bf6" // Blue. + if("purple") + color = "#a210e0" // Purple. + if("yellow") + color = "#e0bf10" // Yellow. + if("green") + color = "#10e026" // Green. + if("white") + color = "#e0e0e0" // White... I was considering leaving it unmodified, but this makes it contrast a bit better. + else + color = bit_color // Some other color. + add_overlay(bit_glimmer) + return + + desc += "\nThis one seems to be [bit_color]." + add_overlay("bit_glimmer") + diff --git a/GainStation13/code/modules/reagents/chemistry/reagents/food_reagents_gs.dm b/GainStation13/code/modules/reagents/chemistry/reagents/food_reagents_gs.dm new file mode 100644 index 00000000..518021fd --- /dev/null +++ b/GainStation13/code/modules/reagents/chemistry/reagents/food_reagents_gs.dm @@ -0,0 +1,12 @@ +// This file contains anything that'd go in food_reagents.dm but is unique to GainStation. For modularity's sake. + +/datum/reagent/consumable/stellarsugar //Starbit Essence. + name = "Stellar Sugar" + desc = "An edible substance formed by extremely unlikely celestial events, ground into a powder. A rare delicacy!" + reagent_state = SOLID + color = "#722be3" + taste_mult = 5 // It's rare... and has a pretty powerful (albeit positive) presence! + nutriment_factor = 10 * REAGENTS_METABOLISM + metabolization_rate = 2 * REAGENTS_METABOLISM + taste_description = "distant cosmos" + value = 7 // It's not easy to get a lot of this stuff... so it sells for about as much as meth. diff --git a/GainStation13/icons/obj/starbit.dmi b/GainStation13/icons/obj/starbit.dmi new file mode 100644 index 00000000..7281d2cb Binary files /dev/null and b/GainStation13/icons/obj/starbit.dmi differ diff --git a/GainStation13/sound/effects/star.wav b/GainStation13/sound/effects/star.wav new file mode 100644 index 00000000..19081da9 Binary files /dev/null and b/GainStation13/sound/effects/star.wav differ diff --git a/code/modules/events/aurora_caelus.dm b/code/modules/events/aurora_caelus.dm index 18a21eb4..6017e67f 100644 --- a/code/modules/events/aurora_caelus.dm +++ b/code/modules/events/aurora_caelus.dm @@ -75,6 +75,10 @@ var/aurora_color = aurora_colors[aurora_progress] for(var/turf/S in applicable_areas) S.set_light(l_color = aurora_color) + //GS Add: Starbits rarely come durring caelus events! + if(prob(1)) + spawn_meteors(rand(1,3) list(/obj/effect/meteor/starbit)) + //GS Add end. /datum/round_event/aurora_caelus/end() priority_announce("The aurora caelus event is now ending. Starlight conditions will slowly return to normal. When this has concluded, please return to your workplace and continue work as normal. Have a pleasant shift, [station_name()], and thank you for watching with us.", diff --git a/tgstation.dme b/tgstation.dme index 60a7ca1a..e3c2a774 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -3087,6 +3087,7 @@ #include "GainStation13\code\game\lore_papers.dm" #include "GainStation13\code\game\sound.dm" #include "GainStation13\code\game\area\ruins.dm" +#include "GainStation13\code\game\gamemodes\meteor\meteors_gs.dm" #include "GainStation13\code\game\objects\effects\spawners\choco_slime_delivery.dm" #include "GainStation13\code\game\objects\items\docility_implant.dm" #include "GainStation13\code\game\objects\items\RCD.dm" @@ -3120,6 +3121,7 @@ #include "GainStation13\code\modules\food_and_drinks\drinks.dm" #include "GainStation13\code\modules\food_and_drinks\food.dm" #include "GainStation13\code\modules\food_and_drinks\recipes_bigpizza.dm" +#include "GainStation13\code\modules\food_and_drinks\starbit.dm" #include "GainStation13\code\modules\food_and_drinks\objects\candy_flora.dm" #include "GainStation13\code\modules\food_and_drinks\recipes\recipes_ported.dm" #include "GainStation13\code\modules\gym\gym.dm" @@ -3137,6 +3139,7 @@ #include "GainStation13\code\modules\reagents\chemistry\reagents\dwarverndrinks.dm" #include "GainStation13\code\modules\reagents\chemistry\reagents\fatty_drinks.dm" #include "GainStation13\code\modules\reagents\chemistry\reagents\fermi_fat.dm" +#include "GainStation13\code\modules\reagents\chemistry\reagents\food_reagents_gs.dm" #include "GainStation13\code\modules\reagents\chemistry\recipes\drinks.dm" #include "GainStation13\code\modules\reagents\chemistry\recipes\fatchem.dm" #include "GainStation13\code\modules\reagents\chemistry\recipes\fatdrinks.dm"