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..c6311d4d --- /dev/null +++ b/GainStation13/code/game/gamemodes/meteor/meteors_gs.dm @@ -0,0 +1,53 @@ + +/////////////////////// +//Meteor types +/////////////////////// + +//Starbit reference +/obj/effect/meteor/stellar_cluster + name = "glittery comet" + desc = "A sparkling mass of crystalized spacedust. ...It looks oddly tasty?" + icon = 'GainStation13/icons/obj/starbit.dmi' + icon_state = "cluster" + hits = 1 + hitpwr = 1 + dropamt = 5 + threat = 1 + meteorsound = 'GainStation13/sound/effects/star.wav' + meteordrop = list(/obj/item/reagent_containers/food/snacks/stellar_piece) + +/obj/effect/meteor/stellar_cluster/Initialize(mapload, target) + . = ..() + dropamt = rand(3,7) //Random amount of bits... + +/obj/effect/meteor/stellar_cluster/Move() + . = ..() + if(.) + new /obj/effect/temp_visual/telekinesis(get_turf(src)) + +/obj/effect/meteor/stellar_cluster/Bump(atom/A) + if(!A) + return + + ram_turf(get_turf(A)) + playsound(src.loc, meteorsound, 40, 1) + get_hit() + + +/obj/effect/meteor/stellar_cluster/ram_turf(turf/T) //Sometimes it'll leave behind bits as it goes + if(isspaceturf(T)) + return + if(dropamt <= 2) + return + if(prob(5)) + dropamt-- + var/thing_to_spawn = pick(meteordrop) + new thing_to_spawn(T) + +/obj/effect/meteor/stellar_cluster/get_hit() + hits-- + if(hits <= 0) + make_debris() + meteor_effect() + qdel(src) + diff --git a/GainStation13/code/modules/food_and_drinks/stellar_piece.dm b/GainStation13/code/modules/food_and_drinks/stellar_piece.dm new file mode 100644 index 00000000..2ea6954f --- /dev/null +++ b/GainStation13/code/modules/food_and_drinks/stellar_piece.dm @@ -0,0 +1,51 @@ +// 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/stellar_piece + 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) + tastes = list("nostalgia" = 3) + price = 10 + + +/obj/item/reagent_containers/food/snacks/stellar_piece/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..1303a59e --- /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" + description = "An edible substance formed by rare peculiar and celestial events, ground into a powder. Delicious!" + 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..ded65d8f 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(10)) + spawn_meteors(rand(3,6), list(/obj/effect/meteor/stellar_cluster)) + //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..f1e1a7c2 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\stellar_piece.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" diff --git a/tools/dmitool/.gradle/8.8/fileHashes/fileHashes.lock b/tools/dmitool/.gradle/8.8/fileHashes/fileHashes.lock index 34990877..fc1d5c5b 100644 Binary files a/tools/dmitool/.gradle/8.8/fileHashes/fileHashes.lock and b/tools/dmitool/.gradle/8.8/fileHashes/fileHashes.lock differ