Merge branch 'master' of https://github.com/sheepishgoat/GS13-Citadel into maps-we-got-them
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
//GS13 Port
|
||||
/mob/living/proc/mob_climax(forced_climax = FALSE, cause = "none")//This is just so I can test this shit without being forced to add actual content to get rid of arousal. Will be a very basic proc for a while.
|
||||
set name = "Masturbate"
|
||||
set category = "IC"
|
||||
if(canbearoused && !restrained() && !stat)
|
||||
if(mb_cd_timer <= world.time)
|
||||
//start the cooldown even if it fails
|
||||
mb_cd_timer = world.time + mb_cd_length
|
||||
if(getArousal() >= ((max_arousal / 100) * 33))//33% arousal or greater required
|
||||
src.visible_message("<span class='danger'>[src] starts masturbating!</span>", \
|
||||
"<span class='userdanger'>You start masturbating.</span>")
|
||||
if(do_after(src, 30, target = src))
|
||||
src.visible_message("<span class='danger'>[src] relieves [p_them()]self!</span>", \
|
||||
"<span class='userdanger'>You have relieved yourself.</span>")
|
||||
SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm)
|
||||
setArousal(min_arousal)
|
||||
else
|
||||
to_chat(src, "<span class='notice'>You aren't aroused enough for that.</span>")
|
||||
|
||||
@@ -0,0 +1,189 @@
|
||||
#define BORDER_CONTROL_DISABLED 0
|
||||
#define BORDER_CONTROL_LEARNING 1
|
||||
#define BORDER_CONTROL_ENFORCED 2
|
||||
|
||||
|
||||
GLOBAL_LIST_EMPTY(whitelistedCkeys)
|
||||
GLOBAL_VAR_INIT(borderControlFile, new /savefile("data/bordercontrol.db"))
|
||||
GLOBAL_VAR_INIT(whitelistLoaded, FALSE)
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
proc/BC_ModeToText(mode)
|
||||
switch(mode)
|
||||
if(BORDER_CONTROL_DISABLED)
|
||||
return "Disabled"
|
||||
if(BORDER_CONTROL_LEARNING)
|
||||
return "Learning"
|
||||
if(BORDER_CONTROL_ENFORCED)
|
||||
return "Enforced"
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
proc/BC_IsKeyAllowedToConnect(key)
|
||||
key = ckey(key)
|
||||
|
||||
var/borderControlMode = CONFIG_GET(number/border_control)
|
||||
|
||||
if(borderControlMode == BORDER_CONTROL_DISABLED)
|
||||
return 1
|
||||
else if (borderControlMode == BORDER_CONTROL_LEARNING)
|
||||
if(!BC_IsKeyWhitelisted(key))
|
||||
log_and_message_admins("[key] has joined and was added to the border whitelist.")
|
||||
BC_WhitelistKey(key)
|
||||
return 1
|
||||
else
|
||||
return BC_IsKeyWhitelisted(key)
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
proc/BC_IsKeyWhitelisted(key)
|
||||
key = ckey(key)
|
||||
|
||||
if(!GLOB.whitelistLoaded)
|
||||
BC_LoadWhitelist()
|
||||
|
||||
if(LAZYISIN(GLOB.whitelistedCkeys, key))
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
//ADMIN_VERB_ADD(/client/proc/BC_WhitelistKeyVerb, R_ADMIN, FALSE)
|
||||
///client/proc/BC_WhitelistKeyVerb()
|
||||
/datum/admins/proc/BC_WhitelistKeyVerb()
|
||||
|
||||
set name = "Border Control - Whitelist Key"
|
||||
set category = "Admin.Border Control"
|
||||
|
||||
var/key = input("CKey to Whitelist", "Whitelist Key") as null|text
|
||||
|
||||
if(key)
|
||||
var/confirm = alert("Add [key] to the border control whitelist?", , "Yes", "No")
|
||||
if(confirm == "Yes")
|
||||
log_and_message_admins("added [key] to the border whitelist.")
|
||||
BC_WhitelistKey(key)
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
proc/BC_WhitelistKey(key)
|
||||
var/keyAsCkey = ckey(key)
|
||||
|
||||
if(!GLOB.whitelistLoaded)
|
||||
BC_LoadWhitelist()
|
||||
|
||||
if(!keyAsCkey)
|
||||
return 0
|
||||
else
|
||||
if(LAZYISIN(GLOB.whitelistedCkeys,keyAsCkey))
|
||||
// Already in
|
||||
return 0
|
||||
else
|
||||
LAZYINITLIST(GLOB.whitelistedCkeys)
|
||||
|
||||
ADD_SORTED(GLOB.whitelistedCkeys, keyAsCkey, /proc/cmp_text_asc)
|
||||
|
||||
BC_SaveWhitelist()
|
||||
return 1
|
||||
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
//ADMIN_VERB_ADD(/client/proc/BC_RemoveKeyVerb, R_ADMIN, FALSE)
|
||||
///client/proc/BC_RemoveKeyVerb()
|
||||
/datum/admins/proc/BC_RemoveKeyVerb()
|
||||
|
||||
set name = "Border Control - Remove Key"
|
||||
set category = "Admin.Border Control"
|
||||
|
||||
var/keyToRemove = input("CKey to Remove", "Remove Key") as null|anything in GLOB.whitelistedCkeys
|
||||
|
||||
if(keyToRemove)
|
||||
var/confirm = alert("Remove [keyToRemove] from the border control whitelist?", , "Yes", "No")
|
||||
if(confirm == "Yes")
|
||||
log_and_message_admins("removed [keyToRemove] from the border whitelist.")
|
||||
BC_RemoveKey(keyToRemove)
|
||||
|
||||
return
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
proc/BC_RemoveKey(key)
|
||||
key = ckey(key)
|
||||
|
||||
if(!LAZYISIN(GLOB.whitelistedCkeys, key))
|
||||
return 1
|
||||
else
|
||||
if(GLOB.whitelistedCkeys)
|
||||
GLOB.whitelistedCkeys.Remove(key)
|
||||
BC_SaveWhitelist()
|
||||
return 1
|
||||
|
||||
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
//ADMIN_VERB_ADD(/client/proc/BC_ToggleState, R_ADMIN, FALSE)
|
||||
///client/proc/BC_ToggleState()
|
||||
/datum/admins/proc/BC_ToggleState()
|
||||
|
||||
set name = "Border Control - Toggle Mode"
|
||||
set category = "Admin.Border Control"
|
||||
set desc="Enables or disables border control"
|
||||
|
||||
var/borderControlMode = CONFIG_GET(number/border_control)
|
||||
|
||||
var/choice = input("New State (Current state is: [BC_ModeToText(borderControlMode)])", "Border Control State") as null|anything in list("Disabled", "Learning", "Enforced")
|
||||
|
||||
switch(choice)
|
||||
if("Disabled")
|
||||
if(borderControlMode != BORDER_CONTROL_DISABLED)
|
||||
borderControlMode = BORDER_CONTROL_DISABLED
|
||||
log_and_message_admins("has disabled border control.")
|
||||
if("Learning")
|
||||
if(borderControlMode != BORDER_CONTROL_LEARNING)
|
||||
borderControlMode = BORDER_CONTROL_LEARNING
|
||||
log_and_message_admins("has set border control to learn new keys on connection!")
|
||||
var/confirm = alert("Learn currently connected keys?", , "Yes", "No")
|
||||
if(confirm == "Yes")
|
||||
for(var/client/C in GLOB.clients)
|
||||
if (BC_WhitelistKey(C.key))
|
||||
log_and_message_admins("[key_name(usr)] added [C.key] to the border whitelist by adding all current clients.")
|
||||
|
||||
if("Enforced")
|
||||
if(borderControlMode != BORDER_CONTROL_ENFORCED)
|
||||
borderControlMode = BORDER_CONTROL_ENFORCED
|
||||
log_and_message_admins("has enforced border controls. New keys can no longer join.")
|
||||
|
||||
CONFIG_SET(number/border_control, borderControlMode)
|
||||
|
||||
return
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/hook/startup/proc/loadBorderControlWhitelistHook()
|
||||
BC_LoadWhitelist()
|
||||
return 1
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
/proc/BC_LoadWhitelist()
|
||||
|
||||
LAZYCLEARLIST(GLOB.whitelistedCkeys)
|
||||
|
||||
LAZYINITLIST(GLOB.whitelistedCkeys)
|
||||
|
||||
if(!GLOB.borderControlFile)
|
||||
return 0
|
||||
|
||||
GLOB.borderControlFile["WhitelistedCkeys"] >> GLOB.whitelistedCkeys
|
||||
|
||||
GLOB.whitelistLoaded = 1
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
proc/BC_SaveWhitelist()
|
||||
if(!GLOB.whitelistedCkeys)
|
||||
return 0
|
||||
|
||||
if(!GLOB.borderControlFile)
|
||||
return 0
|
||||
|
||||
GLOB.borderControlFile["WhitelistedCkeys"] << GLOB.whitelistedCkeys
|
||||
@@ -0,0 +1,17 @@
|
||||
//Roses dont exist here... Sad
|
||||
|
||||
// /datum/gear/head/rose
|
||||
// name = "Rose"
|
||||
// path = /obj/item/grown/rose
|
||||
|
||||
/datum/gear/head/sunflower
|
||||
name = "Sunflower"
|
||||
path = /obj/item/grown/sunflower
|
||||
|
||||
/datum/gear/head/poppy
|
||||
name = "Poppy"
|
||||
path = /obj/item/reagent_containers/food/snacks/grown/poppy
|
||||
|
||||
/datum/gear/head/harebell
|
||||
name = "Harebell"
|
||||
path = /obj/item/reagent_containers/food/snacks/grown/harebell
|
||||
@@ -0,0 +1,3 @@
|
||||
/datum/gear/uniform/modularjumpsuit
|
||||
name = "Modular Jumpsuit (gray)"
|
||||
path = /obj/item/clothing/under/color/grey/modular
|
||||
@@ -31,6 +31,8 @@
|
||||
var/fatness_vulnerable = FALSE
|
||||
/// Similar to fatness_vulnerable, but with more extreme effects such as transformation/hypno.
|
||||
var/extreme_fatness_vulnerable = FALSE
|
||||
/// Can the person be transformed into an object?
|
||||
var/object_tf
|
||||
|
||||
// Helplessness, a set of prefs that make things extra tough at higher weights. If set to FALSE, they won't do anything.
|
||||
///What fatness level disables movement?
|
||||
@@ -57,6 +59,8 @@
|
||||
|
||||
///Does the person wish to be involved with non-con weight gain events?
|
||||
var/noncon_weight_gain = FALSE
|
||||
///Does the person want to get into confrontation?
|
||||
var/trouble_seeker = FALSE
|
||||
|
||||
//Does the person wish to be fed from bots?
|
||||
var/bot_feeding = FALSE
|
||||
|
||||
@@ -69,7 +69,9 @@
|
||||
name = "grey modular jumpsuit" //change name from base clothes to distinguish them
|
||||
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_location = 'GainStation13/icons/mob/modclothes/graymodular.dmi' //Default belly
|
||||
var/icon_round_location = 'GainStation13/icons/mob/modclothes/graymodular_round.dmi'
|
||||
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 +95,43 @@
|
||||
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))
|
||||
// Get mob
|
||||
var/mob/living/carbon/human/H = O.owner
|
||||
// Check what belly shape the mob has
|
||||
var/used_icon_location
|
||||
switch(G.shape)
|
||||
if("Soft Belly")
|
||||
used_icon_location = icon_location
|
||||
if("Round Belly")
|
||||
used_icon_location = icon_round_location
|
||||
var/size = 0
|
||||
|
||||
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_FRONT_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_FRONT_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_FRONT_LAYER)
|
||||
else
|
||||
. += mutable_appearance(used_icon_location, "belly_11_d", GENITALS_FRONT_LAYER)
|
||||
|
||||
if(istype(O, /obj/item/organ/genital/butt)) //if that organ is the butt
|
||||
G = O
|
||||
if(mutantrace_variation == STYLE_DIGITIGRADE) //check if the suit needs to use sprites for digitigrade characters
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
|
||||
|
||||
/datum/round_event_control/vent_clog/fattening
|
||||
name = "Clogged Vents: Fattening"
|
||||
typepath = /datum/round_event/vent_clog/fattening
|
||||
max_occurrences = 0
|
||||
min_players = 5
|
||||
description = "Spits out lipoifier foam through the scrubber system."
|
||||
|
||||
/datum/round_event/vent_clog/fattening
|
||||
reagentsAmount = 50
|
||||
|
||||
/datum/round_event/vent_clog/fattening/announce()
|
||||
priority_announce("The scrubbers network is experiencing an unexpected surge of lipo-related chemicals. Some ejection of contents may occur.", "Atmospherics alert")
|
||||
|
||||
/datum/round_event/vent_clog/fattening/start()
|
||||
for(var/obj/machinery/atmospherics/components/unary/vent in vents)
|
||||
if(vent && vent.loc && !vent.welded)
|
||||
var/datum/reagents/R = new/datum/reagents(1000)
|
||||
R.my_atom = vent
|
||||
R.add_reagent(/datum/reagent/consumable/lipoifier, reagentsAmount)
|
||||
|
||||
var/datum/effect_system/foam_spread/foam = new
|
||||
foam.set_up(200, get_turf(vent), R)
|
||||
foam.start()
|
||||
CHECK_TICK
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
/datum/reagent/consumable
|
||||
var/use_gs_icon = FALSE
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/drinkingglass/on_reagent_change(changetype)
|
||||
icon = 'icons/obj/drinks.dmi'
|
||||
if(reagents.reagent_list.len)
|
||||
var/datum/reagent/R = reagents.get_master_reagent()
|
||||
if(istype(R, /datum/reagent/consumable))
|
||||
var/datum/reagent/consumable/C = R
|
||||
if(C.use_gs_icon == TRUE)
|
||||
icon = 'GainStation13/icons/obj/drinks.dmi'
|
||||
|
||||
..()
|
||||
@@ -1,7 +1,6 @@
|
||||
/obj/item/seeds/berry/blueberry
|
||||
name = "pack of blueberry seeds"
|
||||
desc = "These seeds grow into blueberry bushes."
|
||||
icon_state = "seed-blueberry"
|
||||
species = "blueberry"
|
||||
plantname = "Blueberry Bush"
|
||||
product = /obj/item/reagent_containers/food/snacks/grown/berries/blueberry
|
||||
@@ -11,11 +10,18 @@
|
||||
yield = 1
|
||||
production = 10
|
||||
rarity = 30
|
||||
icon = 'GainStation13/icons/obj/hydroponics/seeds.dmi'
|
||||
icon_state = "seed-blueberry"
|
||||
growing_icon = 'GainStation13/icons/obj/hydroponics/growing.dmi'
|
||||
icon_grow = "berry-grow" // Uses one growth icons set for all the subtypes
|
||||
icon_dead = "berry-dead" // Same for the dead icon
|
||||
icon_harvest = "blueberry-harvest"
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/berries/blueberry
|
||||
seed = /obj/item/seeds/berry/blueberry
|
||||
name = "bunch of blueberries"
|
||||
desc = "Taste so good, you might turn blue!"
|
||||
icon = 'GainStation13/icons/obj/hydroponics/harvest.dmi'
|
||||
icon_state = "blueberrypile"
|
||||
filling_color = "#5d00c7"
|
||||
foodtype = FRUIT
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
/obj/item/seeds/lipoplant
|
||||
name = "pack of adipolipus"
|
||||
desc = "These seeds grow into a foreign plant."
|
||||
icon = 'GainStation13/icons/obj/hydroponics/lipo_seeds.dmi'
|
||||
icon_state = "lipo_seed"
|
||||
species = "adipolipus"
|
||||
plantname = "Adipolipus"
|
||||
product = /obj/item/reagent_containers/food/snacks/grown/lipofruit
|
||||
@@ -11,17 +9,19 @@
|
||||
maturation = 8
|
||||
production = 5
|
||||
yield = 1
|
||||
growing_icon = 'GainStation13/icons/obj/hydroponics/lipo_growing.dmi'
|
||||
reagents_add = list(/datum/reagent/consumable/lipoifier = 0.05)
|
||||
icon = 'GainStation13/icons/obj/hydroponics/seeds.dmi'
|
||||
icon_state = "seed-lipo"
|
||||
growing_icon = 'GainStation13/icons/obj/hydroponics/growing.dmi'
|
||||
icon_grow = "lipo-grow" // Uses one growth icons set for all the subtypes
|
||||
icon_dead = "lipo-dead" // Same for the dead icon
|
||||
icon_harvest = "lipo-harvest"
|
||||
reagents_add = list(/datum/reagent/consumable/lipoifier = 0.05)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/lipofruit
|
||||
seed = /obj/item/seeds/lipoplant
|
||||
name = "lipofruit"
|
||||
desc = "A foreign fruit with an hard shell. Perhaps something sharp could open it?"
|
||||
icon = 'GainStation13/icons/obj/hydroponics/lipo_harvest.dmi'
|
||||
icon = 'GainStation13/icons/obj/hydroponics/harvest.dmi'
|
||||
icon_state = "lipo_nut"
|
||||
item_state = "lipo_nut"
|
||||
possible_transfer_amounts = list(5, 10, 15, 20, 25, 30, 50)
|
||||
|
||||
@@ -8,22 +8,26 @@
|
||||
/obj/item/seeds/cannabis/munchies
|
||||
name = "pack of munchies weed seeds"
|
||||
desc = "These seeds grow into munchies weed."
|
||||
icon_state = "seed-munchies"
|
||||
species = "munchycannabis"
|
||||
plantname = "Munchies Weed"
|
||||
icon_grow = "munchycannabis-grow" // Uses one growth icons set for all the subtypes
|
||||
icon_dead = "munchycannabis-dead" // Same for the dead icon
|
||||
product = /obj/item/reagent_containers/food/snacks/grown/cannabis/munchies
|
||||
genes = list(/datum/plant_gene/trait/repeated_harvest, /datum/plant_gene/trait/glow/orange)
|
||||
mutatelist = list()
|
||||
reagents_add = list(/datum/reagent/drug/space_drugs = 0.05,
|
||||
/datum/reagent/drug/munchies = 0.10)
|
||||
rarity = 69
|
||||
icon = 'GainStation13/icons/obj/hydroponics/seeds.dmi'
|
||||
icon_state = "seed-munchies"
|
||||
growing_icon = 'GainStation13/icons/obj/hydroponics/growing.dmi'
|
||||
icon_grow = "munchycannabis-grow" // Uses one growth icons set for all the subtypes
|
||||
icon_dead = "munchycannabis-dead" // Same for the dead icon
|
||||
icon_harvest = "munchycannabis-harvest"
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/cannabis/munchies
|
||||
seed = /obj/item/seeds/cannabis/munchies
|
||||
name = "munchies cannabis leaf"
|
||||
desc = "You feel hungry just looking at it."
|
||||
icon = 'GainStation13/icons/obj/hydroponics/harvest.dmi'
|
||||
icon_state = "munchycannabis"
|
||||
wine_power = 90
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/datum/gear/bluespace_belt
|
||||
/datum/gear/backpack/bluespace_belt
|
||||
name = "Bluespace Belt"
|
||||
category = LOADOUT_SUBCATEGORY_BACKPACK_GENERAL
|
||||
path = /obj/item/bluespace_belt
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
/datum/gear/syntech/ring
|
||||
/datum/gear/gloves/syntech/ring
|
||||
name = "Normalizer Ring"
|
||||
category = LOADOUT_CATEGORY_GLOVES
|
||||
path = /obj/item/clothing/gloves/ring/syntech
|
||||
cost = 6
|
||||
|
||||
/datum/gear/syntech/band
|
||||
/datum/gear/gloves/syntech/band
|
||||
name = "Normalizer Band"
|
||||
category = LOADOUT_CATEGORY_GLOVES
|
||||
path = /obj/item/clothing/gloves/ring/syntech/band
|
||||
cost = 6
|
||||
|
||||
@@ -1,17 +1,14 @@
|
||||
/datum/gear/syntech/pendant
|
||||
/datum/gear/neck/syntech/pendant
|
||||
name = "Normalizer Pendant"
|
||||
category = LOADOUT_CATEGORY_NECK
|
||||
path = /obj/item/clothing/neck/syntech
|
||||
cost = 6
|
||||
|
||||
/datum/gear/syntech/choker
|
||||
/datum/gear/neck/syntech/choker
|
||||
name = "Normalizer Choker"
|
||||
category = LOADOUT_CATEGORY_NECK
|
||||
path = /obj/item/clothing/neck/syntech/choker
|
||||
cost = 6
|
||||
|
||||
/datum/gear/syntech/collar
|
||||
/datum/gear/neck/syntech/collar
|
||||
name = "Normalizer Collar"
|
||||
category = LOADOUT_CATEGORY_NECK
|
||||
path = /obj/item/clothing/neck/syntech/collar
|
||||
cost = 6
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
flavour_text = "After you've sold your soul to corporate overlords, your contract obliged you to enter cryostasis. \
|
||||
Finally, after God knows how long, the cryopod system have awakened you with only a single sentence of information - welcome and lure in new guests into the freshly opened GATO restaurant!"
|
||||
assignedrole = "Restaurant worker"
|
||||
mirrorcanloadappearance = TRUE
|
||||
|
||||
/obj/effect/mob_spawn/human/fastfoodmanager
|
||||
name = "Corporate cryostasis pod"
|
||||
@@ -27,6 +28,7 @@
|
||||
flavour_text = "After you've sold your soul to corporate overlords, your contract obliged you to enter cryostasis. \
|
||||
Finally, after God knows how long, the cryopod system have awakened you with only a single sentence of information - make sure to keep the best care of GATO's restaurant, currently under your management! You have a higher say over your workers, but do not abuse this power."
|
||||
assignedrole = "Restaurant manager"
|
||||
mirrorcanloadappearance = TRUE
|
||||
|
||||
/obj/effect/mob_spawn/human/fastfood/Initialize(mapload)
|
||||
. = ..()
|
||||
@@ -108,6 +110,7 @@
|
||||
death = FALSE
|
||||
roundstart = FALSE
|
||||
mob_species = /datum/species/human
|
||||
mirrorcanloadappearance = TRUE
|
||||
|
||||
/datum/outfit/feeders_den/fanatic
|
||||
name = "Feeder Fanatic"
|
||||
@@ -152,6 +155,7 @@
|
||||
death = FALSE
|
||||
roundstart = FALSE
|
||||
mob_species = /datum/species/human
|
||||
mirrorcanloadappearance = TRUE
|
||||
|
||||
/datum/outfit/feeders_den/victim
|
||||
name = "Den Victim"
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
//GS13 - markings, ported or our own (preferably mark where you took them from)
|
||||
//I don't know why these need both mam_ears and human variants, because some other ear datums just work fine without that??
|
||||
//It didn't want to show up otherwise so I'll keep it as that
|
||||
|
||||
/datum/sprite_accessory/ears/mam_ears/dragon //ported from Virgo
|
||||
name = "Dragon"
|
||||
icon = 'GainStation13/icons/mob/markings/mam_ears.dmi'
|
||||
icon_state = "dragon"
|
||||
|
||||
/datum/sprite_accessory/ears/human/dragon //ported from Virgo
|
||||
name = "Dragon"
|
||||
icon = 'GainStation13/icons/mob/markings/mam_ears.dmi'
|
||||
icon_state = "dragon"
|
||||
|
||||
/datum/sprite_accessory/ears/mam_ears/avali
|
||||
name = "Avali"
|
||||
icon_state = "avali"
|
||||
icon = 'GainStation13/icons/mob/markings/mam_ears.dmi'
|
||||
color_src = MATRIXED
|
||||
matrixed_sections = MATRIX_RED_GREEN
|
||||
|
||||
/datum/sprite_accessory/ears/human/avali
|
||||
name = "Avali"
|
||||
icon_state = "avali"
|
||||
icon = 'GainStation13/icons/mob/markings/mam_ears.dmi'
|
||||
color_src = MATRIXED
|
||||
matrixed_sections = MATRIX_RED_GREEN
|
||||
|
||||
/datum/sprite_accessory/ears/human/fennec_tall
|
||||
name = "Fennec (Tall)"
|
||||
icon = 'GainStation13/icons/mob/32x64_mam_ears.dmi'
|
||||
icon_state = "fennectall"
|
||||
color_src = MATRIXED
|
||||
matrixed_sections = MATRIX_RED_GREEN
|
||||
|
||||
/datum/sprite_accessory/ears/mam_ears/fennec_tall
|
||||
name = "Fennec (Tall)"
|
||||
icon = 'GainStation13/icons/mob/32x64_mam_ears.dmi'
|
||||
icon_state = "fennectall"
|
||||
color_src = MATRIXED
|
||||
matrixed_sections = MATRIX_RED_GREEN
|
||||
@@ -0,0 +1,22 @@
|
||||
//GS13 - markings, ported or our own (preferably mark where you took them from)
|
||||
|
||||
/datum/sprite_accessory/frills/cobra
|
||||
name = "Cobra Hood"
|
||||
icon_state = "cobrahood"
|
||||
color_src = MATRIXED
|
||||
matrixed_sections = MATRIX_RED_GREEN
|
||||
icon = 'hyperstation/icons/mob/snek.dmi'
|
||||
|
||||
/datum/sprite_accessory/frills/cobraslim
|
||||
name = "Narrow Cobra Hood"
|
||||
icon_state = "cobraslim"
|
||||
color_src = MATRIXED
|
||||
matrixed_sections = MATRIX_RED_GREEN
|
||||
icon = 'hyperstation/icons/mob/snek.dmi'
|
||||
|
||||
/datum/sprite_accessory/frills/cobrahood_alt
|
||||
name = "Cobra Hood - Alt"
|
||||
icon_state = "cobrahood_alt"
|
||||
color_src = MATRIXED
|
||||
matrixed_sections = MATRIX_RED_GREEN
|
||||
icon = 'hyperstation/icons/mob/snek.dmi'
|
||||
@@ -0,0 +1 @@
|
||||
//GS13 - markings, ported or our own (preferably mark where you took them from)
|
||||
@@ -0,0 +1,11 @@
|
||||
//GS13 - markings, ported or our own (preferably mark where you took them from)
|
||||
|
||||
/datum/sprite_accessory/hair/elize
|
||||
name = "Elize"
|
||||
icon = 'GainStation13/icons/mob/human_face.dmi'
|
||||
icon_state = "hair_elize"
|
||||
|
||||
/datum/sprite_accessory/hair/lem
|
||||
name = "Lem"
|
||||
icon = 'GainStation13/icons/mob/human_face.dmi'
|
||||
icon_state = "hair_lem"
|
||||
@@ -0,0 +1 @@
|
||||
//GS13 - markings, ported or our own (preferably mark where you took them from)
|
||||
@@ -0,0 +1 @@
|
||||
//GS13 - markings, ported or our own (preferably mark where you took them from)
|
||||
@@ -0,0 +1,63 @@
|
||||
//GS13 - markings, ported or our own (preferably mark where you took them from)
|
||||
|
||||
|
||||
/datum/sprite_accessory/taur/gator //ported from Vorestation
|
||||
name = "Gator"
|
||||
icon = 'GainStation13/icons/mob/markings/mam_taur.dmi'
|
||||
icon_state = "gator"
|
||||
color_src = MATRIXED
|
||||
matrixed_sections = MATRIX_RED_GREEN
|
||||
hide_legs = FALSE
|
||||
|
||||
/datum/sprite_accessory/taur/fatdrake //ported from Vorestation
|
||||
name = "Fat Drake"
|
||||
icon = 'GainStation13/icons/mob/markings/mam_taur.dmi'
|
||||
icon_state = "fatdrake"
|
||||
color_src = MATRIXED
|
||||
matrixed_sections = MATRIX_RED_GREEN
|
||||
|
||||
/datum/sprite_accessory/taur/fatwolf //ported from Vorestation
|
||||
name = "Fat Wolf"
|
||||
icon = 'GainStation13/icons/mob/markings/mam_taur.dmi'
|
||||
icon_state = "fatwolf"
|
||||
color_src = MUTCOLORS
|
||||
|
||||
/datum/sprite_accessory/taur/fatliz //ported from Vorestation
|
||||
name = "Fat Lizard"
|
||||
icon = 'GainStation13/icons/mob/markings/mam_taur.dmi'
|
||||
icon_state = "fatliz"
|
||||
color_src = MATRIXED
|
||||
matrixed_sections = MATRIX_RED_GREEN
|
||||
|
||||
/datum/sprite_accessory/taur/longtailfluff //ported from Vorestation
|
||||
name = "Long Fluffy Tail"
|
||||
icon = 'GainStation13/icons/mob/markings/mam_taur.dmi'
|
||||
icon_state = "longtailfluff"
|
||||
color_src = MATRIXED
|
||||
matrixed_sections = MATRIX_RED_GREEN
|
||||
|
||||
/datum/sprite_accessory/taur/fatsynthwolf //ported from Vorestation
|
||||
name = "Fat Synth Wolf"
|
||||
icon = 'GainStation13/icons/mob/markings/mam_taur.dmi'
|
||||
icon_state = "fatsynthwolf"
|
||||
color_src = MUTCOLORS
|
||||
|
||||
/datum/sprite_accessory/taur/bigleggies //ported from Vorestation
|
||||
name = "Big Leggies"
|
||||
icon = 'GainStation13/icons/mob/markings/mam_taur.dmi'
|
||||
icon_state = "bigleggy"
|
||||
color_src = MUTCOLORS
|
||||
|
||||
/datum/sprite_accessory/taur/fatnaga //ported from Vorestation
|
||||
name = "Fat Naga"
|
||||
icon = 'GainStation13/icons/mob/markings/mam_taur.dmi'
|
||||
icon_state = "fatnaga"
|
||||
color_src = MATRIXED
|
||||
matrixed_sections = MATRIX_RED_GREEN
|
||||
|
||||
/datum/sprite_accessory/taur/altnaga //ported from Vorestation
|
||||
name = "Alt Naga"
|
||||
icon = 'GainStation13/icons/mob/markings/mam_taur.dmi'
|
||||
icon_state = "altnaga"
|
||||
color_src = MATRIXED
|
||||
matrixed_sections = MATRIX_RED_GREEN
|
||||
@@ -0,0 +1,55 @@
|
||||
//GS13 - markings, ported or our own (preferably mark where you took them from)
|
||||
|
||||
/datum/sprite_accessory/snouts/mam_snouts/hjackal
|
||||
name = "Jackal"
|
||||
icon = 'GainStation13/icons/mob/markings/mam_snouts.dmi'
|
||||
icon_state = "hjackal"
|
||||
color_src = MATRIXED
|
||||
matrixed_sections = MATRIX_RED_GREEN
|
||||
|
||||
/datum/sprite_accessory/snouts/mam_snouts/synthlizproto1
|
||||
name = "Synthetic Lizard - Prototype Visor 1"
|
||||
icon = 'GainStation13/icons/mob/markings/mam_snouts.dmi'
|
||||
icon_state = "synthlizproto1"
|
||||
color_src = MATRIXED
|
||||
|
||||
/datum/sprite_accessory/snouts/mam_snouts/synthlizproto2
|
||||
name = "Synthetic Lizard - Prototype Visor 2"
|
||||
icon = 'GainStation13/icons/mob/markings/mam_snouts.dmi'
|
||||
icon_state = "synthlizproto2"
|
||||
color_src = MATRIXED
|
||||
|
||||
/datum/sprite_accessory/snouts/mam_snouts/gator
|
||||
name = "Gator"
|
||||
icon = 'GainStation13/icons/mob/markings/mam_snouts.dmi'
|
||||
icon_state = "gator"
|
||||
color_src = MATRIXED
|
||||
|
||||
//eastern dragon
|
||||
/datum/sprite_accessory/snouts/mam_snouts/easterndragon
|
||||
name = "Eastern Dragon"
|
||||
icon = 'GainStation13/icons/mob/markings/char_snouts.dmi'
|
||||
icon_state = "easterndw"
|
||||
color_src = MATRIXED
|
||||
matrixed_sections = MATRIX_RED_GREEN
|
||||
|
||||
/datum/sprite_accessory/snouts/mam_snouts/easterndragon/no_whiskers
|
||||
name = "Eastern Dragon - No Whiskers"
|
||||
icon = 'GainStation13/icons/mob/markings/char_snouts.dmi'
|
||||
icon_state = "easterndnw"
|
||||
color_src = MATRIXED
|
||||
matrixed_sections = MATRIX_RED_GREEN
|
||||
|
||||
/datum/sprite_accessory/snouts/mam_snouts/feasterndragon
|
||||
name = "Eastern Dragon (Top)"
|
||||
icon = 'GainStation13/icons/mob/markings/char_snouts.dmi'
|
||||
icon_state = "feasterndw"
|
||||
color_src = MATRIXED
|
||||
matrixed_sections = MATRIX_RED_GREEN
|
||||
|
||||
/datum/sprite_accessory/snouts/mam_snouts/feasterndragon/no_whiskers
|
||||
name = "Eastern Dragon - No Whiskers (Top)"
|
||||
icon = 'GainStation13/icons/mob/markings/char_snouts.dmi'
|
||||
icon_state = "feasterndnw"
|
||||
color_src = MATRIXED
|
||||
matrixed_sections = MATRIX_RED_GREEN
|
||||
@@ -0,0 +1 @@
|
||||
//GS13 - markings, ported or our own (preferably mark where you took them from)
|
||||
@@ -0,0 +1,92 @@
|
||||
//GS13 - markings, ported or our own (preferably mark where you took them from)
|
||||
|
||||
//snaketail
|
||||
/datum/sprite_accessory/tails/lizard/snaketail //GS13 - ...6 seperate paths for one tail. Wew.
|
||||
name = "Snaketail"
|
||||
icon = 'GainStation13/icons/mob/markings/mam_tails.dmi'
|
||||
icon_state = "snaketail"
|
||||
color_src = MATRIXED
|
||||
matrixed_sections = MATRIX_RED_GREEN
|
||||
|
||||
/datum/sprite_accessory/tails_animated/lizard/snaketail
|
||||
name = "Snaketail"
|
||||
icon = 'GainStation13/icons/mob/markings/mam_tails.dmi'
|
||||
icon_state = "snaketail"
|
||||
color_src = MATRIXED
|
||||
matrixed_sections = MATRIX_RED_GREEN
|
||||
|
||||
/datum/sprite_accessory/tails/human/snaketail
|
||||
name = "Snaketail"
|
||||
icon = 'GainStation13/icons/mob/markings/mam_tails.dmi'
|
||||
icon_state = "snaketail"
|
||||
color_src = MATRIXED
|
||||
matrixed_sections = MATRIX_RED_GREEN
|
||||
|
||||
/datum/sprite_accessory/tails_animated/human/snaketail
|
||||
name = "Snaketail"
|
||||
icon = 'GainStation13/icons/mob/markings/mam_tails.dmi'
|
||||
icon_state = "snaketail"
|
||||
color_src = MATRIXED
|
||||
matrixed_sections = MATRIX_RED_GREEN
|
||||
|
||||
/datum/sprite_accessory/tails/mam_tails/snaketail
|
||||
name = "Snaketail"
|
||||
icon = 'GainStation13/icons/mob/markings/mam_tails.dmi'
|
||||
icon_state = "snaketail"
|
||||
color_src = MATRIXED
|
||||
matrixed_sections = MATRIX_RED_GREEN
|
||||
|
||||
/datum/sprite_accessory/tails_animated/mam_tails_animated/snaketail
|
||||
name = "Snaketail"
|
||||
icon = 'GainStation13/icons/mob/markings/mam_tails.dmi'
|
||||
icon_state = "snaketail"
|
||||
color_src = MATRIXED
|
||||
matrixed_sections = MATRIX_RED_GREEN
|
||||
|
||||
//spaded tail
|
||||
/datum/sprite_accessory/tails/mam_tails/spade
|
||||
name = "Demon Spade"
|
||||
icon = 'GainStation13/icons/mob/markings/mam_tails.dmi'
|
||||
icon_state = "spade"
|
||||
|
||||
/datum/sprite_accessory/tails_animated/mam_tails_animated/spade
|
||||
name = "Demon Spade"
|
||||
icon = 'GainStation13/icons/mob/markings/mam_tails.dmi'
|
||||
icon_state = "spade"
|
||||
|
||||
/datum/sprite_accessory/tails/human/spade
|
||||
name = "Demon Spade"
|
||||
icon = 'GainStation13/icons/mob/markings/mam_tails.dmi'
|
||||
icon_state = "spade"
|
||||
|
||||
/datum/sprite_accessory/tails_animated/human/spade
|
||||
name = "Demon Spade"
|
||||
icon = 'GainStation13/icons/mob/markings/mam_tails.dmi'
|
||||
icon_state = "spade"
|
||||
|
||||
//deer tail
|
||||
|
||||
|
||||
/datum/sprite_accessory/tails/human/deer
|
||||
name = "Deer"
|
||||
icon_state = "deer"
|
||||
color_src = MATRIXED
|
||||
icon = 'GainStation13/icons/mob/markings/mam_tails.dmi'
|
||||
|
||||
/datum/sprite_accessory/tails_animated/human/deer
|
||||
name = "Deer"
|
||||
icon_state = "deer"
|
||||
color_src = MATRIXED
|
||||
icon = 'GainStation13/icons/mob/markings/mam_tails.dmi'
|
||||
|
||||
/datum/sprite_accessory/tails/mam_tails/deer
|
||||
name = "Deer"
|
||||
icon_state = "deer"
|
||||
color_src = MATRIXED
|
||||
icon = 'GainStation13/icons/mob/markings/mam_tails.dmi'
|
||||
|
||||
/datum/sprite_accessory/tails_animated/mam_tails_animated/deer
|
||||
name = "Deer"
|
||||
icon_state = "deer"
|
||||
color_src = MATRIXED
|
||||
icon = 'GainStation13/icons/mob/markings/mam_tails.dmi'
|
||||
@@ -0,0 +1 @@
|
||||
//GS13 - markings, ported or our own (preferably mark where you took them from)
|
||||
@@ -7,16 +7,18 @@
|
||||
slot = ORGAN_SLOT_BELLY
|
||||
w_class = 3
|
||||
size = 0
|
||||
shape = DEF_BELLY_SHAPE
|
||||
var/statuscheck = FALSE
|
||||
shape = "belly"
|
||||
genital_flags = UPDATE_OWNER_APPEARANCE
|
||||
masturbation_verb = "massage"
|
||||
var/sent_full_message = TRUE //defaults to 1 since they're full to start
|
||||
var/inflatable = FALSE //For inflation connoisseurs
|
||||
var/size_cached = 0
|
||||
var/prev_size = 0
|
||||
layer_index = BELLY_LAYER_INDEX
|
||||
|
||||
/obj/item/organ/genital/belly/modify_size(modifier, min = BELLY_SIZE_DEF, max = BELLY_SIZE_MAX)
|
||||
var/new_value = clamp(size_cached + modifier, min, max)
|
||||
var/new_value = clamp(size_cached + modifier, starting_size, max)
|
||||
if(new_value == size_cached)
|
||||
return
|
||||
prev_size = size_cached
|
||||
@@ -26,7 +28,26 @@
|
||||
..()
|
||||
|
||||
/obj/item/organ/genital/belly/update_appearance()
|
||||
icon_state = "belly_[shape]_[size]"
|
||||
//GS13 - Port Stuffed states
|
||||
// Default settings
|
||||
var/datum/sprite_accessory/S = GLOB.belly_shapes_list[shape] //GS13 - get belly shape
|
||||
var/icon_shape_state = S ? S.icon_state : "belly" //fallback to default belly in case we cant find a shape
|
||||
icon_state = "belly_[icon_shape_state]_[size]"
|
||||
var/icon_shape = S ? S.icon : "hyperstation/icons/obj/genitals/belly.dmi" //fallback to default belly in case we cant find a shape
|
||||
icon = icon_shape
|
||||
|
||||
// Change belly sprite and size based on current fullness
|
||||
switch(owner.fullness)
|
||||
if(FULLNESS_LEVEL_BLOATED to FULLNESS_LEVEL_BEEG)
|
||||
icon = 'hyperstation/icons/obj/genitals/belly_round.dmi' //We use round belly to represent stuffedness
|
||||
icon_state = "belly_round_[size]"
|
||||
if(FULLNESS_LEVEL_BEEG to FULLNESS_LEVEL_NOMOREPLZ)
|
||||
icon = 'hyperstation/icons/obj/genitals/belly_round.dmi'
|
||||
icon_state = "belly_round_[size+1]"
|
||||
if(FULLNESS_LEVEL_NOMOREPLZ to INFINITY)
|
||||
icon = 'hyperstation/icons/obj/genitals/belly_round.dmi'
|
||||
icon_state = "belly_round_[size+2]"
|
||||
|
||||
if(owner)
|
||||
if(owner.dna.species.use_skintones && owner.dna.features["genitals_use_skintone"])
|
||||
if(ishuman(owner)) // Check before recasting type, although someone fucked up if you're not human AND have use_skintones somehow...
|
||||
@@ -42,8 +63,11 @@
|
||||
if(D.species.use_skintones && D.features["genitals_use_skintone"])
|
||||
color = SKINTONE2HEX(H.skin_tone)
|
||||
else
|
||||
color = "[D.features["belly_color"]]"
|
||||
size = "[D.features["belly_size"]]"
|
||||
color = "#[D.features["belly_color"]]"
|
||||
size = D.features["belly_size"]
|
||||
starting_size = D.features["belly_size"]
|
||||
shape = D.features["belly_shape"]
|
||||
inflatable = D.features["inflatable_belly"]
|
||||
toggle_visibility(D.features["belly_visibility"], FALSE)
|
||||
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
if(!ishuman(src))
|
||||
return
|
||||
|
||||
if(fullness >= FULLNESS_LEVEL_BLOATED && fullness_reducion_timer + FULLNESS_REDUCTION_COOLDOWN < world.time)
|
||||
if(fullness >= FULLNESS_LEVEL_BLOATED && fullness_reduction_timer + FULLNESS_REDUCTION_COOLDOWN < world.time)
|
||||
|
||||
fullness -= amount // Remove Fullness
|
||||
|
||||
|
||||
@@ -239,7 +239,10 @@
|
||||
fatness_delay += (H.fatness / FATNESS_LEVEL_IMMOBILE) * FATNESS_WEAKLEGS_MODIFIER
|
||||
fatness_delay = min(fatness_delay, 60)
|
||||
|
||||
H.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/fatness, TRUE, fatness_delay)
|
||||
if(fatness_delay)
|
||||
H.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/fatness, TRUE, fatness_delay)
|
||||
else
|
||||
H.remove_movespeed_modifier(/datum/movespeed_modifier/fatness)
|
||||
|
||||
if(HAS_TRAIT(H, TRAIT_BLOB))
|
||||
handle_fatness_trait(
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
shot_glass_icon_state = "shotglassbrown"
|
||||
pH = 4.5
|
||||
value = 0.1
|
||||
use_gs_icon = TRUE
|
||||
|
||||
/datum/reagent/consumable/ethanol/glyphid_slammer
|
||||
name = "Glyphid slammer"
|
||||
@@ -26,3 +27,4 @@
|
||||
shot_glass_icon_state = "shotglassbrown"
|
||||
pH = 4.5
|
||||
value = 0.1
|
||||
use_gs_icon = TRUE
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
glass_name = "belly bloats"
|
||||
glass_desc = "The perfect mix to be big and merry with."
|
||||
shot_glass_icon_state = "shotglassbrown"
|
||||
use_gs_icon = TRUE
|
||||
|
||||
/datum/reagent/consumable/ethanol/belly_bloats/on_mob_life(mob/living/carbon/M)
|
||||
if(M && M?.client?.prefs.weight_gain_food) // GS13
|
||||
@@ -30,6 +31,7 @@
|
||||
glass_name = "blobby mary"
|
||||
glass_desc = "For the morbidly obese ladies and gentlemen."
|
||||
shot_glass_icon_state = "shotglassred"
|
||||
use_gs_icon = TRUE
|
||||
|
||||
/datum/reagent/consumable/ethanol/blobby_mary/on_mob_life(mob/living/carbon/M)
|
||||
if(M && M?.client?.prefs.weight_gain_food) // GS13
|
||||
@@ -49,6 +51,7 @@
|
||||
glass_name = "beltbuster mead"
|
||||
glass_desc = "The ambrosia of the blubbery gods."
|
||||
shot_glass_icon_state = "shotglassgold"
|
||||
use_gs_icon = TRUE
|
||||
|
||||
/datum/reagent/consumable/ethanol/beltbuster_mead/on_mob_life(mob/living/carbon/M)
|
||||
if(M && M?.client?.prefs.weight_gain_food) // GS13
|
||||
@@ -67,6 +70,7 @@
|
||||
glass_name = "heavy cafe"
|
||||
glass_desc = "To enjoy slow mornings with."
|
||||
shot_glass_icon_state = "shotglassbrown"
|
||||
use_gs_icon = TRUE
|
||||
|
||||
/datum/reagent/consumable/heavy_cafe/on_mob_life(mob/living/carbon/M)
|
||||
M.dizziness = max(0,M.dizziness-5)
|
||||
@@ -92,6 +96,7 @@
|
||||
glass_name = "fruits tea"
|
||||
glass_desc = "Goes down really easy and stays there for a long time."
|
||||
shot_glass_icon_state = "shotglassgold"
|
||||
use_gs_icon = TRUE
|
||||
|
||||
/datum/reagent/consumable/fruits_tea/on_mob_life(mob/living/carbon/M)
|
||||
M.dizziness = max(0,M.dizziness-2)
|
||||
@@ -118,6 +123,7 @@
|
||||
glass_name = "snakebite"
|
||||
glass_desc = "Won't hurt like a real bite, but you'll still regert drinking this."
|
||||
shot_glass_icon_state = "shotglassgreen"
|
||||
use_gs_icon = TRUE
|
||||
|
||||
/datum/reagent/consumable/snakebite/on_mob_life(mob/living/carbon/M)
|
||||
if(M && M?.client?.prefs.weight_gain_food) // GS13
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
// GS13 subtle glitters
|
||||
/datum/reagent/glitter/pink_subtle
|
||||
name = "lesser pink glitter"
|
||||
description = "pink sparkles that get everywhere. these ones seem lower density than normal."
|
||||
color = "#ff8080" //A light pink color
|
||||
glitter_type = /obj/effect/decal/cleanable/glitter/pink_subtle
|
||||
|
||||
/datum/reagent/glitter/white_subtle
|
||||
name = "lesser white glitter"
|
||||
description = "white sparkles that get everywhere. these ones seem lower density than normal."
|
||||
glitter_type = /obj/effect/decal/cleanable/glitter/white_subtle
|
||||
|
||||
/datum/reagent/glitter/blue_subtle
|
||||
name = "lesser blue glitter"
|
||||
description = "blue sparkles that get everywhere. these ones seem lower density than normal."
|
||||
color = "#4040FF" //A blueish color
|
||||
glitter_type = /obj/effect/decal/cleanable/glitter/blue_subtle
|
||||
@@ -5,7 +5,7 @@
|
||||
name = "lipoifier"
|
||||
id = /datum/reagent/consumable/lipoifier
|
||||
results = list(/datum/reagent/consumable/lipoifier = 3)
|
||||
required_reagents = list(/datum/reagent/consumable/sugar = 1, /datum/reagent/consumable/cornoil = 1, /datum/reagent/medicine/synthflesh = 1)
|
||||
required_reagents = list(/datum/reagent/consumable/caramel = 1, /datum/reagent/consumable/cornoil = 1, /datum/reagent/medicine/synthflesh = 1)
|
||||
|
||||
|
||||
/datum/chemical_reaction/lipolicide
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
///////////////////////////////// SUBTLE GLITTERS ////////////////////////////
|
||||
|
||||
/datum/chemical_reaction/lesser_pink
|
||||
name = "pink glitter dilution"
|
||||
id = "lesser_pink_glitter"
|
||||
results = list(/datum/reagent/glitter/pink_subtle = 2)
|
||||
required_reagents = list(/datum/reagent/glitter/pink = 1, /datum/reagent/space_cleaner = 1) //You clean some of it away, I guess?
|
||||
|
||||
/datum/chemical_reaction/lesser_white
|
||||
name = "white glitter dilution"
|
||||
id = "lesser_white_glitter"
|
||||
results = list(/datum/reagent/glitter/white_subtle = 2)
|
||||
required_reagents = list(/datum/reagent/glitter/white = 1, /datum/reagent/space_cleaner = 1)
|
||||
|
||||
/datum/chemical_reaction/lesser_blue
|
||||
name = "pink glitter dilution"
|
||||
id = "lesser_blue_glitter"
|
||||
results = list(/datum/reagent/glitter/blue_subtle = 2)
|
||||
required_reagents = list(/datum/reagent/glitter/blue = 1, /datum/reagent/space_cleaner = 1)
|
||||
//Im not going to do the recolor recipes for the subtle glitters. Unless that's really wanted (except you cant even make glitter to start with so the recipes are already super niche to begin with.)
|
||||
@@ -5,3 +5,43 @@
|
||||
materials = list(/datum/material/iron = 1000, /datum/material/glass = 500)
|
||||
build_path = /obj/item/assembly/infra/fat
|
||||
category = list("initial", "Misc")
|
||||
|
||||
/datum/design/small_cup
|
||||
name = "Small Gulp Cup"
|
||||
id = "Small_Gulp"
|
||||
build_type = AUTOLATHE
|
||||
materials = list(/datum/material/plastic=200)
|
||||
build_path = /obj/item/reagent_containers/food/drinks/flask/paper_cup/small
|
||||
category = list("initial","Dinnerware")
|
||||
|
||||
/datum/design/medium_cup
|
||||
name = "Medium Gulp Cup"
|
||||
id = "Medium_Gulp"
|
||||
build_type = AUTOLATHE
|
||||
materials = list(/datum/material/plastic=300)
|
||||
build_path = /obj/item/reagent_containers/food/drinks/flask/paper_cup/medium
|
||||
category = list("initial","Dinnerware")
|
||||
|
||||
/datum/design/small_cup
|
||||
name = "Big Gulp Cup"
|
||||
id = "Big_Gulp"
|
||||
build_type = AUTOLATHE
|
||||
materials = list(/datum/material/plastic=500)
|
||||
build_path = /obj/item/reagent_containers/food/drinks/flask/paper_cup/big
|
||||
category = list("initial","Dinnerware")
|
||||
|
||||
/datum/design/extra_big_cup
|
||||
name = "Extra Big Gulp Cup"
|
||||
id = "Extra_Big_Gulp"
|
||||
build_type = AUTOLATHE
|
||||
materials = list(/datum/material/plastic=600)
|
||||
build_path = /obj/item/reagent_containers/food/drinks/flask/paper_cup/extra_big
|
||||
category = list("initial","Dinnerware")
|
||||
|
||||
/datum/design/super_extra_big_cup
|
||||
name = "Super Extra Big Gulp Cup"
|
||||
id = "Super_Extra_Big_Gulp"
|
||||
build_type = AUTOLATHE
|
||||
materials = list(/datum/material/plastic=1000)
|
||||
build_path = /obj/item/reagent_containers/food/drinks/flask/paper_cup/super_extra_big
|
||||
category = list("initial","Dinnerware")
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
/datum/design/mutagen
|
||||
name = "10u Unstable Mutagen"
|
||||
id = "mutagen_biogen"
|
||||
build_type = BIOGENERATOR
|
||||
materials = list(/datum/material/biomass = 25)
|
||||
make_reagents = list(/datum/reagent/toxin/mutagen = 10)
|
||||
category = list("initial","Botany Chemicals")
|
||||
|
||||
/datum/design/flour
|
||||
name = "10u Flour"
|
||||
id = "flour_biogen"
|
||||
build_type = BIOGENERATOR
|
||||
materials = list(/datum/material/biomass = 25)
|
||||
make_reagents = list(/datum/reagent/consumable/flour = 10)
|
||||
category = list("initial","Organic Materials")
|
||||
@@ -0,0 +1,26 @@
|
||||
/obj/item/borg/upgrade/feeding_arm
|
||||
name = "food gripper module"
|
||||
desc = "An extra module that allows cyborgs to grab food and drinks, and feed them to people."
|
||||
icon_state = "cyborg_upgrade3"
|
||||
|
||||
/obj/item/borg/upgrade/feeding_arm/action(mob/living/silicon/robot/R, user = usr)
|
||||
. = ..()
|
||||
if(.)
|
||||
var/obj/item/gripper/food/S = new(R.module)
|
||||
R.module.basic_modules += S
|
||||
R.module.add_module(S, FALSE, TRUE)
|
||||
|
||||
/obj/item/borg/upgrade/feeding_arm/deactivate(mob/living/silicon/robot/R, user = usr)
|
||||
. = ..()
|
||||
if (.)
|
||||
var/obj/item/gripper/food/S = locate() in R.module
|
||||
R.module.remove_module(S, TRUE)
|
||||
|
||||
/obj/item/gripper/food
|
||||
name = "food gripper"
|
||||
desc = "A simple grasping tool for interacting with various food and drink related items."
|
||||
item_flags = NOBLUDGEON
|
||||
|
||||
can_hold = list(
|
||||
/obj/item/reagent_containers,
|
||||
)
|
||||
@@ -85,7 +85,7 @@
|
||||
id = "bluespace_belt"
|
||||
build_type = PROTOLATHE
|
||||
construction_time = 100
|
||||
materials = list(/datum/material/silver = 4000, /datum/material/gold = 4000, MAT_BLUESPACE = 2000, )
|
||||
materials = list(/datum/material/silver = 4000, /datum/material/gold = 4000, /datum/material/bluespace = 2000, )
|
||||
build_path = /obj/item/bluespace_belt
|
||||
category = list("Misc", "Medical Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE
|
||||
@@ -96,7 +96,7 @@
|
||||
id = "cookie_synthesizer"
|
||||
build_type = PROTOLATHE
|
||||
construction_time = 100
|
||||
materials = list(/datum/material/silver = 4000, /datum/material/uranium = 1000, MAT_BLUESPACE = 1000, /datum/material/calorite = 2000)
|
||||
materials = list(/datum/material/silver = 4000, /datum/material/uranium = 1000, /datum/material/bluespace = 1000, /datum/material/calorite = 2000)
|
||||
build_path = /obj/item/cookiesynth
|
||||
category = list("Misc", "Medical Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_SERVICE
|
||||
@@ -107,7 +107,7 @@
|
||||
id = "borg_upgrade_cookiesynthesizer"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/borg/upgrade/cookiesynth
|
||||
materials = list(/datum/material/iron=10000, /datum/material/gold=1500, /datum/material/uranium=250, MAT_PLASMA=1500)
|
||||
materials = list(/datum/material/iron=10000, /datum/material/gold=1500, /datum/material/uranium=250, /datum/material/plasma=1500)
|
||||
construction_time = 100
|
||||
category = list("Cyborg Upgrade Modules")
|
||||
|
||||
@@ -129,6 +129,15 @@
|
||||
construction_time = 100
|
||||
category = list("Cyborg Upgrade Modules")
|
||||
|
||||
/datum/design/borg_foodgrip
|
||||
name = "Cyborg Upgrade (Food Gripper)"
|
||||
id = "borg_upgrade_foodgrip"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/borg/upgrade/feeding_arm
|
||||
materials = list(/datum/material/iron = 8000, /datum/material/glass = 6000)
|
||||
construction_time = 100
|
||||
category = list("Cyborg Upgrade Modules")
|
||||
|
||||
//todo: make a seperate file for extra borg modules
|
||||
|
||||
/obj/item/borg/upgrade/cookiesynth
|
||||
|
||||
Reference in New Issue
Block a user