This commit is contained in:
evilew
2024-09-23 19:45:59 +02:00
23 changed files with 242 additions and 15 deletions
+19
View File
@@ -221,3 +221,22 @@ tools/MapAtmosFixer/MapAtmosFixer/bin/*
!/config/title_screens/images/exclude
config/admins.txt
_maps/RandomRuins_SpaceRuins_TheDerelictProject.dmm
tools/dmitool/.gradle/nb-cache/trust/2018FCA27E9B9F1F5BEED454BF477F4B8A12F37DC9D4B9DA792466A05ED63656
tools/dmitool/.gradle/buildOutputCleanup/cache.properties
tools/dmitool/.gradle/buildOutputCleanup/buildOutputCleanup.lock
tools/dmitool/.gradle/8.9/gc.properties
tools/dmitool/.gradle/8.9/fileHashes/fileHashes.lock
tools/dmitool/.gradle/8.9/fileHashes/fileHashes.bin
tools/dmitool/.gradle/8.9/fileChanges/last-build.bin
tools/dmitool/.gradle/8.9/dependencies-accessors/gc.properties
tools/dmitool/.gradle/8.9/checksums/checksums.lock
tools/dmitool/.gradle/8.8/fileHashes/fileHashes.lock
tools/dmitool/.gradle/8.8/fileHashes/fileHashes.bin
tools/dmitool/.gradle/buildOutputCleanup/cache.properties
tools/dmitool/.gradle/buildOutputCleanup/buildOutputCleanup.lock
tools/dmitool/.gradle/8.8/fileHashes/fileHashes.lock
tools/dmitool/.gradle/8.8/fileHashes/fileHashes.bin
tools/dmitool/.gradle/buildOutputCleanup/cache.properties
tools/dmitool/.gradle/buildOutputCleanup/buildOutputCleanup.lock
tools/dmitool/.gradle/8.8/fileHashes/fileHashes.lock
tools/dmitool/.gradle/8.8/fileHashes/fileHashes.bin
@@ -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)
@@ -70,6 +70,7 @@
desc = "A tasteful grey jumpsuit that reminds you of the good old days. Now adjusts to the match the wearer's size!" //description same as above
var/icon_location = 'GainStation13/icons/mob/modclothes/graymodular.dmi' //specify the file path where the modular overlays for those clothes are located
var/icon_stuffed_location = 'GainStation13/icons/mob/modclothes/graymodular_stuffed.dmi'
var/mob/living/carbon/U //instance a variable for keeping track of the user
/obj/item/clothing/under/color/grey/modular/equipped(mob/user, slot) //whenever the clothes are in someone's inventory the clothes keep track of who that user is
@@ -93,16 +94,36 @@
for(O in U.internal_organs) //check the user for the organs they have
if(istype(O, /obj/item/organ/genital/belly)) //if that organ is a belly
G = O //treat that organ as a genital
if(!adjusted) //check the style, if it needs to be the adjusted variants
if(G.size <= 9) //check that the size is within accepted values, NOTE: these need to be removed later, better to cap organ sizes to begin with
. += mutable_appearance(icon_location, "belly_[G.size]", GENITALS_UNDER_LAYER) //add, from the clothes' icon file the overlay corresponding to that genital at that size and draw it onto the layer
else //if not an expected size value, bigger than the max, default to max size
. += mutable_appearance(icon_location, "belly_9", GENITALS_UNDER_LAYER)
else //use the alternative adjusted sprites
if(G.size <= 9)
. += mutable_appearance(icon_location, "belly_[G.size]_d", GENITALS_UNDER_LAYER)
else
. += mutable_appearance(icon_location, "belly_9_d", GENITALS_UNDER_LAYER)
// Change to visually update sprite depending on fullness.
if(ishuman(O.owner))
var/mob/living/carbon/human/H = O.owner
var/size = 0
var/used_icon_location = icon_location
switch(H.fullness)
if(-100 to FULLNESS_LEVEL_BLOATED) // Normal
size = G.size
if(FULLNESS_LEVEL_BLOATED to FULLNESS_LEVEL_BEEG) // Take the stuffed sprite of the same size
size = G.size
used_icon_location = icon_stuffed_location
if(FULLNESS_LEVEL_BEEG to FULLNESS_LEVEL_NOMOREPLZ) // Take the stuffed sprite of size + 1
size = G.size + 1
used_icon_location = icon_stuffed_location
if(FULLNESS_LEVEL_NOMOREPLZ to INFINITY)// Take the stuffed sprite of size + 2
size = G.size + 2
used_icon_location = icon_stuffed_location
if(!adjusted) //check the style, if it needs to be the adjusted variants
if(G.size <= 9+FULLNESS_STUFFED_EXTRA_SPRITE_SIZES) //check that the size is within accepted values, NOTE: these need to be removed later, better to cap organ sizes to begin with. Cap is 9 (max fat stage) + 2 (stuffed stages)
. += mutable_appearance(used_icon_location, "belly_[size]", GENITALS_UNDER_LAYER) //add, from the clothes' icon file the overlay corresponding to that genital at that size and draw it onto the layer
else //if not an expected size value, bigger than the max, default to max size
. += mutable_appearance(used_icon_location, "belly_11", GENITALS_UNDER_LAYER)
else //use the alternative adjusted sprites
if(G.size <= 9+FULLNESS_STUFFED_EXTRA_SPRITE_SIZES)
. += mutable_appearance(used_icon_location, "belly_[size]_d", GENITALS_UNDER_LAYER)
else
. += mutable_appearance(used_icon_location, "belly_11_d", GENITALS_UNDER_LAYER)
if(istype(O, /obj/item/organ/genital/anus)) //if that organ is the butt
G = O
if(suit_style == DIGITIGRADE_SUIT_STYLE) //check if the suit needs to use sprites for digitigrade characters
@@ -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")
@@ -140,6 +140,36 @@
/datum/reagent/blueberry_juice/proc/fat_hide()
return (124 * (volume * volume))/1000 //123'840 600% size, about 56'000 400% size, calc was: (3 * (volume * volume))/50
/datum/reagent/consumable/ethanol/hunchback //drink from goonstation, adapted for here. yay!!
name = "Hunchback"
description = "Better out than in."
reagent_state = LIQUID
color = "#5a00009f"
metabolization_rate = 0.75 * REAGENTS_METABOLISM
taste_description = "nausea"
boozepwr = 25
var/last_check_time = 0
glass_name = "glass of Hunchback"
glass_desc = "An alleged cocktail invented by a notorious scientist. Useful in a pinch as an impromptu purgative, or interrogation tool."
pH = 4.5
value = 1
/datum/reagent/consumable/ethanol/hunchback/on_mob_life(mob/living/carbon/M)
if(last_check_time + 50 < world.time)
to_chat(M,"<span class='notice'>You feel yourself gag...</span>")
if(M.disgust < 80)
M.adjust_disgust(20)
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "gross_food", /datum/mood_event/disgusting_food)
last_check_time = world.time
for(var/A in M.reagents.reagent_list)
var/datum/reagent/R = A
if(R != src)
M.reagents.remove_reagent(R.type,5)
if(M.health > 10)
M.adjustToxLoss(4*REM, 0)
. = 1
..()
// /obj/item/reagent_containers/food/snacks/meat/steak/troll
// name = "Troll steak"
// desc = "In its sliced state it remains dormant, but once the troll meat comes in contact with stomach acids, it begins a perpetual cycle of constant regrowth and digestion. You probably shouldn't eat this."
@@ -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.
@@ -0,0 +1,6 @@
/datum/chemical_reaction/hunchback
name = "hunchback"
id = /datum/reagent/consumable/ethanol/hunchback
results = list(/datum/reagent/consumable/ethanol/hunchback = 3)
required_reagents = list(/datum/reagent/consumable/tomatojuice = 1, /datum/reagent/consumable/ethanol/whiskey_cola = 2)
mix_message = "The chunks of tomato paste hang in the bourbon and cola as an emulsion. It looks as horrible as that sounds."
Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.
+1
View File
@@ -155,6 +155,7 @@
#define FULLNESS_LEVEL_FILLED 40
#define FULLNESS_LEVEL_HALF_FULL 20
#define FULLNESS_LEVEL_EMPTY 0
#define FULLNESS_STUFFED_EXTRA_SPRITE_SIZES 2
//Fullness emote cooldown
#define FULLNESS_REDUCTION_COOLDOWN 50
+4
View File
@@ -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.",
@@ -1001,4 +1001,8 @@
/datum/chemical_reaction/drink/cinderella
results = list(/datum/reagent/consumable/cinderella = 50)
required_reagents = list(/datum/reagent/consumable/pineapplejuice = 10, /datum/reagent/consumable/orangejuice = 10, /datum/reagent/consumable/lemonjuice = 5, /datum/reagent/consumable/ice = 5, /datum/reagent/consumable/sol_dry = 20, /datum/reagent/consumable/ethanol/bitters = 2)
required_reagents = list(/datum/reagent/consumable/pineapplejuice = 10, /datum/reagent/consumable/orangejuice = 10, /datum/reagent/consumable/lemonjuice = 5, /datum/reagent/consumable/ice = 5, /datum/reagent/consumable/sol_dry = 20, /datum/reagent/consumable/ethanol/bitters = 2)
/datum/chemical_reaction/drink/maui_sunrise
results = list(/datum/reagent/consumable/ethanol/maui_sunrise = 10)
required_reagents = list(/datum/reagent/consumable/ethanol/coconut_rum = 2, /datum/reagent/consumable/pineapplejuice = 2, /datum/reagent/consumable/ethanol/yuyake = 1, /datum/reagent/consumable/triple_citrus = 1, /datum/reagent/consumable/lemon_lime = 4)
@@ -1728,6 +1728,10 @@ GLOBAL_LIST_EMPTY(roundstart_races)
if(FULLNESS_LEVEL_NOMOREPLZ to INFINITY)
H.throw_alert("fullness", /obj/screen/alert/beegbelly)
// Update here for changing belly to match stuffed-ness
var/obj/item/organ/genital/belly/B= H.getorganslot("belly")
if(!isnull(B) && istype(B))
B.update()
switch(H.fatness)
if(FATNESS_LEVEL_BLOB to INFINITY)
@@ -139,7 +139,10 @@ Slimecrossing Armor
/obj/item/clothing/suit/armor/heavy/adamantine/equipped(mob/living/carbon/human/user, slot) //Gives you a trait to prevent increasing speed.
. = ..()
if(slot == SLOT_WEAR_SUIT)
ADD_TRAIT(user, TRAIT_IMMUTABLE_SLOW, "immutableslow_[REF(src)]")
ADD_TRAIT(user, TRAIT_IMMUTABLE_SLOW, "immutableslow_[REF(src)]") //Adds trait to prevent increases in movespeed
user.unignore_slowdown("slimestatus") //Deletes the stable red trait on equip to prevent bypassing it
if(!(slot == SLOT_WEAR_SUIT))
REMOVE_TRAIT(user, TRAIT_IMMUTABLE_SLOW, "immutableslow_[REF(src)]")
/obj/structure/light_prism/spectral
name = "spectral light prism"
@@ -155,4 +158,4 @@ Slimecrossing Armor
. = ..()
color = newcolor
light_color = newcolor
set_light(5)
set_light(5)
@@ -772,7 +772,8 @@ datum/status_effect/stabilized/blue/on_remove()
if(HAS_TRAIT(owner, TRAIT_IMMUTABLE_SLOW))
return ..()
else
owner.ignore_slowdown("slimestatus")
owner.ignore_slowdown("slimestatus")
return ..()
/datum/status_effect/stabilized/red/on_remove()
owner.unignore_slowdown("slimestatus")
Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 137 KiB

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 58 KiB

@@ -474,11 +474,25 @@
colourcode = S.color_src
if(G.slot == "belly") // GS13
genital_overlay.icon = 'hyperstation/icons/obj/genitals/belly.dmi'
// Default settings
genital_overlay.icon_state = "belly_[size]"
genital_overlay.layer = -UNDER_BACK_LAYER
colourcode = "belly_color"
// Change belly sprite and size based on current fullness
switch(H.fullness)
if(-100 to FULLNESS_LEVEL_BLOATED)
genital_overlay.icon = 'hyperstation/icons/obj/genitals/belly.dmi'
if(FULLNESS_LEVEL_BLOATED to FULLNESS_LEVEL_BEEG)
genital_overlay.icon = 'hyperstation/icons/obj/genitals/belly_stuffed.dmi'
if(FULLNESS_LEVEL_BEEG to FULLNESS_LEVEL_NOMOREPLZ)
genital_overlay.icon = 'hyperstation/icons/obj/genitals/belly_stuffed.dmi'
genital_overlay.icon_state = "belly_[size+1]"
if(FULLNESS_LEVEL_NOMOREPLZ to INFINITY)
genital_overlay.icon = 'hyperstation/icons/obj/genitals/belly_stuffed.dmi'
genital_overlay.icon_state = "belly_[size+2]"
//sizecheck added to prevent rendering blank icons
if(G.slot == "anus" && G.size > 0) // GS13
genital_overlay.icon = 'hyperstation/icons/obj/genitals/butt.dmi'
+4
View File
@@ -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,8 @@
#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"
#include "GainStation13\code\modules\reagents\chemistry\recipes\ROCKANDSTONEdrinks.dm"
Binary file not shown.