Merge branch 'master' of https://github.com/evilew/GS13
@@ -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."
|
||||
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 3.9 KiB |
@@ -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
|
||||
|
||||
@@ -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")
|
||||
|
||||
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 137 KiB |
|
Before Width: | Height: | Size: 137 KiB After Width: | Height: | Size: 137 KiB |
|
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'
|
||||
|
||||
@@ -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"
|
||||
|
||||