mirror of
https://github.com/KabKebab/GS13.git
synced 2026-07-14 09:28:26 +01:00
Merge branch 'MrSky12:master' into nutribot
This commit is contained in:
@@ -222,7 +222,11 @@
|
||||
//GS13
|
||||
#define TRAIT_WEIGHT_LOSS_IMMUNE "weight_loss_immune"
|
||||
#define TRAIT_UNIVERSAL_GAINER "universal_gainer"
|
||||
|
||||
#define TRAIT_NO_MOVE "no_move"
|
||||
#define TRAIT_NO_JUMPSUIT "no_jumpsuit"
|
||||
#define TRAIT_NO_MISC "no_misc"
|
||||
#define TRAIT_NO_BACKPACK "no_backpack"
|
||||
#define TRAIT_NO_BUCKLE "no_buckle"
|
||||
|
||||
// common trait sources
|
||||
#define TRAIT_GENERIC "generic"
|
||||
@@ -284,3 +288,5 @@
|
||||
#define NUKEOP_TRAIT "nuke-op"
|
||||
#define MEGAFAUNA_TRAIT "megafauna"
|
||||
#define DEATHSQUAD_TRAIT "deathsquad"
|
||||
#define HELPLESSNESS_TRAIT "helplessness"
|
||||
|
||||
|
||||
@@ -114,13 +114,22 @@ GLOBAL_LIST_INIT(maintenance_loot, list(
|
||||
/obj/item/trash/fatoray_scrap1 = 1, //GS13 - added for researching fat guns
|
||||
/obj/item/trash/fatoray_scrap2 = 1, //GS13
|
||||
/obj/item/trash/odd_disk = 1, //GS13
|
||||
/obj/item/clothing/neck/petcollar/calorite = 1,
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/fizzwiz = 2,
|
||||
/obj/item/clothing/mask/gas/fattening = 1,
|
||||
/obj/item/stack/sheet/plastic/five = 1,
|
||||
/obj/item/wrench/bronze = 1,
|
||||
/obj/item/kitchen/knife/combat/bone = 1,
|
||||
/obj/item/storage/pill_bottle/butt_enlargement = 1,
|
||||
/obj/item/clothing/mask/cowmask/gag = 1,
|
||||
/obj/item/clothing/mask/pig/gag = 1,
|
||||
/obj/item/grown/bananapeel = 1,
|
||||
/obj/item/clothing/shoes/wheelys = 1,
|
||||
/obj/item/clothing/shoes/kindleKicks = 1,
|
||||
/obj/item/autosurgeon/penis = 1,
|
||||
/obj/item/autosurgeon/testicles = 1,
|
||||
/obj/item/autosurgeon/vagina = 1,
|
||||
/obj/item/autosurgeon/breasts = 1,
|
||||
/obj/item/autosurgeon/womb = 1,
|
||||
/obj/item/toy/plush/random = 1,
|
||||
/obj/item/grenade/spawnergrenade/clustaur = 1,
|
||||
/obj/effect/spawner/lootdrop/grille_or_trash = 5
|
||||
|
||||
+21
-12
@@ -155,12 +155,12 @@
|
||||
|
||||
/obj/screen/alert/blob
|
||||
name = "Fatty Blob"
|
||||
desc = "Every last piece of your corpulent body is now plush and bloated with vast rolls of blubber. Your corpulence is such that you are akin to a gigantic, towering wad of dough. Your thoughts are scattered, and the only thing in your mind is that you want to eat more and more"
|
||||
desc = "Every last piece of your corpulent body is now plush and bloated with vast rolls of blubber. Your corpulence is such that you are akin to a gigantic, towering wad of dough."
|
||||
icon_state = "blob"
|
||||
|
||||
/obj/screen/alert/immobile
|
||||
name = "Immobile"
|
||||
desc = "Fat has taken over your body, now colossal in size and loaded with cumbersome flab. You are completely unable to move the bulk that has set upon your body. But for whatever reason, you can't help but blush with strange fascination at every moment you're aware of your tremendous size..."
|
||||
desc = "Fat has taken over your body, now colossal in size and loaded with cumbersome flab. You are having a lot difficulty with moving the bulk that has set upon your body."
|
||||
icon_state = "immobile"
|
||||
|
||||
/obj/screen/alert/barelymobile
|
||||
@@ -175,22 +175,22 @@
|
||||
|
||||
/obj/screen/alert/morbidlyobese
|
||||
name = "Morbidly Obese"
|
||||
desc = "Every inch of you is stuffed with copious amounts of fat, you feel yourself struggling to haul the heft of your body. Your thoughts wander to strange, fleeting fantasies of growing bigger yet..."
|
||||
desc = "Every inch of you is beginning to pack away lard, making your movements awkward and clunky. If your weight gain continues, walking might become a real issue."
|
||||
icon_state = "morbobese"
|
||||
|
||||
/obj/screen/alert/obese
|
||||
name = "Obese"
|
||||
desc = "Your body is swollen with lard, and it's challenging to move. Despite this, there's something... pleasing about being so large."
|
||||
desc = "Your body is swollen with lard, and your movement is starting to be slightly hindered by your weight."
|
||||
icon_state = "obese"
|
||||
|
||||
/obj/screen/alert/veryfat
|
||||
name = "Very fat"
|
||||
desc = "You're beginning to inch closer and closer to proper obesity. The way your thighs rub against each and the rumbles your stomach produces suggests that you won't remain in this state for long..."
|
||||
desc = "You're beginning to inch closer and closer to proper obesity. Your body is starting to slightly jiggle when you move around."
|
||||
icon_state = "veryfat"
|
||||
|
||||
/obj/screen/alert/fatter
|
||||
name = "Fat"
|
||||
desc = "Clothes begin to cling onto your frame tighter and tighter, as your body begins to display first signs of fatness. It's still no big deal, right?"
|
||||
desc = "Clothes begin to cling onto your frame tighter and tighter, as your body begins to display first signs of fatness."
|
||||
icon_state = "fatter"
|
||||
|
||||
/obj/screen/alert/fat
|
||||
@@ -201,20 +201,29 @@
|
||||
|
||||
//GS13 - fullness alerts
|
||||
/obj/screen/alert/bloated
|
||||
name = "Bloated stomach"
|
||||
desc = "Your stomach is a bit too full"
|
||||
name = "Bloated"
|
||||
desc = "Your stomach is starting to feel packed."
|
||||
icon_state = "Stuffed"
|
||||
|
||||
/obj/screen/alert/stuffed
|
||||
name = "Completely stuffed"
|
||||
desc = "Whatever you ate, you ate too much. Your stomach has stretched to accomodate its contents, forming a very obvious belly"
|
||||
name = "Stuffed"
|
||||
desc = "Whatever you ate, you ate too much. Your stomach has stretched to accomodate its contents, forming a very obvious stuffed belly."
|
||||
icon_state = "Bloated"
|
||||
|
||||
/obj/screen/alert/beegbelly
|
||||
name = "Walking belly"
|
||||
desc = "You've somehow managed to fit even more in your stomach. Can you even stand?"
|
||||
name = "Overfilled"
|
||||
desc = "You've somehow managed to fit even more in your stomach, barely allowing for any more room inside."
|
||||
icon_state = "beegbelly"
|
||||
|
||||
/obj/screen/alert/sated
|
||||
name = "Sated"
|
||||
desc = "You're perfectly rather sated right now."
|
||||
icon_state = "sated"
|
||||
|
||||
/obj/screen/alert/full
|
||||
name = "Full"
|
||||
desc = "You're rather full right now. Eating more food would result in weight gain."
|
||||
icon_state = "full"
|
||||
|
||||
/obj/screen/alert/hungry
|
||||
name = "Hungry"
|
||||
|
||||
@@ -20,6 +20,28 @@
|
||||
tools = list(TOOL_SCREWDRIVER, TOOL_WRENCH, TOOL_WELDER)
|
||||
category = CAT_MISC
|
||||
|
||||
/datum/crafting_recipe/weightmachine/stacklifter
|
||||
name ="Stack Lifter"
|
||||
result = /obj/structure/weightmachine/stacklifter
|
||||
time = 50
|
||||
reqs = list(/obj/item/stack/sheet/metal = 10)
|
||||
category = CAT_MISC
|
||||
|
||||
/datum/crafting_recipe/weightmachine/weightlifter
|
||||
name ="Weight Lifter"
|
||||
result = /obj/structure/weightmachine/weightlifter
|
||||
time = 50
|
||||
reqs = list(/obj/item/stack/sheet/metal = 8,
|
||||
/obj/item/stack/rods = 4)
|
||||
category = CAT_MISC
|
||||
|
||||
/datum/crafting_recipe/punching_bag
|
||||
name ="Punching Bag"
|
||||
result = /obj/structure/punching_bag
|
||||
time = 35
|
||||
reqs = list(/obj/item/storage/backpack = 1,
|
||||
/obj/item/stack/cable_coil = 2)
|
||||
category = CAT_MISC
|
||||
///////////////////
|
||||
//Tools & Storage//
|
||||
///////////////////
|
||||
|
||||
@@ -71,19 +71,3 @@
|
||||
name = "Blueberry virus bottle"
|
||||
desc = "A small bottle. Contains blueberry virus in synthblood medium."
|
||||
spawned_disease = /datum/disease/advance/berry_virus
|
||||
|
||||
|
||||
//admin variant of berry virus
|
||||
|
||||
/datum/disease/advance/berry_virus_extreme
|
||||
copy_type = /datum/disease/advance
|
||||
|
||||
/datum/disease/advance/berry_virus_extreme/New(make_typecache = TRUE)
|
||||
name = "Blueberry Virus"
|
||||
symptoms = list(new/datum/symptom/berry/extreme)
|
||||
..()
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/berry_extreme
|
||||
name = "Blueberry virus bottle"
|
||||
desc = "A small bottle. Contains blueberry virus in synthblood medium."
|
||||
spawned_disease = /datum/disease/advance/berry_virus_extreme
|
||||
|
||||
@@ -76,6 +76,9 @@
|
||||
/area/ruin/unpowered/syndicate_lava_base/circuits
|
||||
name = "Syndicate Lavaland Circuit Lab"
|
||||
|
||||
/area/ruin/unpowered/syndicate_lava_base/nanites
|
||||
name = "Syndicate Lavaland Nanite Lab"
|
||||
|
||||
/area/ruin/unpowered/syndicate_lava_base/outdoors //Putting this area down should prevent fauna from spawning nearby
|
||||
name = "Syndicate Lavaland Approach"
|
||||
icon_state = "red"
|
||||
|
||||
@@ -128,7 +128,7 @@
|
||||
return examine(user)
|
||||
|
||||
//Start growing a human clone in the pod!
|
||||
/obj/machinery/clonepod/proc/growclone(ckey, clonename, ui, mutation_index, mindref, datum/species/mrace, list/features, factions, list/quirks, experimental = FALSE)
|
||||
/obj/machinery/clonepod/proc/growclone(ckey, clonename, ui, mutation_index, mindref, datum/species/mrace, list/features, factions, list/quirks, experimental = FALSE, fatness)
|
||||
if(panel_open)
|
||||
return FALSE
|
||||
if(mess || attempting)
|
||||
@@ -223,6 +223,9 @@
|
||||
var/mob/living/current = clonemind.current //gets body of current mind
|
||||
if(!isnull(current))
|
||||
size = current.size_multiplier * 100
|
||||
|
||||
if(fatness)
|
||||
H.fatness_real = fatness
|
||||
|
||||
return TRUE
|
||||
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
if(pod.occupant)
|
||||
continue //how though?
|
||||
|
||||
if(pod.growclone(R.fields["ckey"], R.fields["name"], R.fields["UI"], R.fields["SE"], R.fields["mind"], R.fields["mrace"], R.fields["features"], R.fields["factions"], R.fields["quirks"]))
|
||||
if(pod.growclone(R.fields["ckey"], R.fields["name"], R.fields["UI"], R.fields["SE"], R.fields["mind"], R.fields["mrace"], R.fields["features"], R.fields["factions"], R.fields["quirks"], fatness=R.fields["fatness"]))
|
||||
temp = "[R.fields["name"]] => <font class='good'>Cloning cycle in progress...</font>"
|
||||
records -= R
|
||||
|
||||
@@ -416,7 +416,7 @@
|
||||
else if(pod.occupant)
|
||||
temp = "<font class='bad'>Cloning cycle already in progress.</font>"
|
||||
playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0)
|
||||
else if(pod.growclone(C.fields["ckey"], C.fields["name"], C.fields["UI"], C.fields["SE"], C.fields["mind"], C.fields["mrace"], C.fields["features"], C.fields["factions"], C.fields["quirks"]))
|
||||
else if(pod.growclone(C.fields["ckey"], C.fields["name"], C.fields["UI"], C.fields["SE"], C.fields["mind"], C.fields["mrace"], C.fields["features"], C.fields["factions"], C.fields["quirks"], fatness=C.fields["fatness"]))
|
||||
temp = "[C.fields["name"]] => <font class='good'>Cloning cycle in progress...</font>"
|
||||
playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0)
|
||||
records.Remove(C)
|
||||
@@ -495,6 +495,11 @@
|
||||
R.fields["features"] = dna.features
|
||||
R.fields["factions"] = mob_occupant.faction
|
||||
R.fields["quirks"] = list()
|
||||
R.fields["fatness"] = FALSE
|
||||
var/mob/living/carbon/human/human_occupant = mob_occupant
|
||||
if(istype(human_occupant))
|
||||
R.fields["fatness"] = human_occupant.fatness_real
|
||||
|
||||
for(var/V in mob_occupant.roundstart_quirks)
|
||||
var/datum/quirk/T = V
|
||||
R.fields["quirks"][T.type] = T.clone_data()
|
||||
|
||||
@@ -641,7 +641,7 @@
|
||||
always_up = 1
|
||||
use_power = NO_POWER_USE
|
||||
has_cover = 0
|
||||
scan_range = 9
|
||||
scan_range = 8
|
||||
req_access = list(ACCESS_SYNDICATE)
|
||||
mode = TURRET_LETHAL
|
||||
stun_projectile = /obj/item/projectile/bullet
|
||||
|
||||
@@ -125,9 +125,9 @@
|
||||
icon_state = "brutepack"
|
||||
lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi'
|
||||
heal_brute = 15
|
||||
self_delay = 20
|
||||
grind_results = list(/datum/reagent/medicine/styptic_powder = 10)
|
||||
heal_brute = 7
|
||||
self_delay = 30
|
||||
grind_results = list(/datum/reagent/medicine/styptic_powder = 5)
|
||||
|
||||
/obj/item/stack/medical/bruise_pack/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is bludgeoning [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
@@ -181,9 +181,9 @@
|
||||
icon_state = "ointment"
|
||||
lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi'
|
||||
heal_burn = 15
|
||||
self_delay = 20
|
||||
grind_results = list(/datum/reagent/medicine/silver_sulfadiazine = 10)
|
||||
heal_burn = 7
|
||||
self_delay = 30
|
||||
grind_results = list(/datum/reagent/medicine/silver_sulfadiazine = 5)
|
||||
|
||||
/obj/item/stack/medical/ointment/suicide_act(mob/living/user)
|
||||
user.visible_message("<span class='suicide'>[user] is squeezing \the [src] into [user.p_their()] mouth! [user.p_do(TRUE)]n't [user.p_they()] know that stuff is toxic?</span>")
|
||||
|
||||
@@ -340,12 +340,20 @@
|
||||
|
||||
/obj/item/storage/pill_bottle/breast_enlargement
|
||||
name = "breast enlargement pills"
|
||||
desc = "Made by Fermichem - They have a woman with breasts larger than she is on them. The warning states not to take more than 10u at a time."
|
||||
desc = "Made by Fermichem - They have a woman with breasts larger than she is on them. The warning states not to take more than 30u at a time."
|
||||
|
||||
/obj/item/storage/pill_bottle/breast_enlargement/PopulateContents()
|
||||
for(var/i in 1 to 7)
|
||||
new /obj/item/reagent_containers/pill/breast_enlargement(src)
|
||||
|
||||
/obj/item/storage/pill_bottle/butt_enlargement
|
||||
name = "butt enlargement pills"
|
||||
desc = "Made by Fermichem - They have a figure with an ass larger than they are on them. The warning states not to take more than 30u at a time."
|
||||
|
||||
/obj/item/storage/pill_bottle/butt_enlargement/PopulateContents()
|
||||
for(var/i in 1 to 7)
|
||||
new /obj/item/reagent_containers/pill/butt_enlargement(src)
|
||||
|
||||
/////////////
|
||||
//Organ Box//
|
||||
/////////////
|
||||
@@ -413,4 +421,4 @@
|
||||
|
||||
/obj/item/storage/pill_bottle/paxpsych/PopulateContents()
|
||||
for(var/i in 1 to 5)
|
||||
new /obj/item/reagent_containers/pill/paxpsych(src)
|
||||
new /obj/item/reagent_containers/pill/paxpsych(src)
|
||||
|
||||
@@ -151,3 +151,19 @@
|
||||
pixel_x = 0
|
||||
pixel_y = 0
|
||||
return TRUE
|
||||
|
||||
|
||||
//GS13 - a variant of lattice, used for maint wire protection
|
||||
|
||||
/obj/structure/catwalk_maint
|
||||
name = "maint catwalk"
|
||||
desc = "This catwalk seems to be placed in maintenance, in order to protect the wires."
|
||||
max_integrity = 50
|
||||
icon = 'icons/obj/smooth_structures/catwalk.dmi'
|
||||
icon_state = "catwalk"
|
||||
density = FALSE
|
||||
anchored = TRUE
|
||||
armor = list("melee" = 50, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 50)
|
||||
max_integrity = 50
|
||||
layer = HIGH_OBJ_LAYER
|
||||
obj_flags = BLOCK_Z_FALL
|
||||
|
||||
@@ -725,7 +725,7 @@
|
||||
job_description = "Feeder Fanatic"
|
||||
short_desc = "You are a member of a niche branch of Syndicate with... strange goals."
|
||||
flavour_text = "After months of construction and gathering equipment, your den is finished - a monument to gluttony, equipped with every tool to turn any sharp body into a quivering mound of lard..."
|
||||
important_info = "Keep your den in one piece and away from curious eyes! YOU AREN'T ALLOWED TO CAPTURE / FATTEN UP PEOPLE WHO DON'T DO NON-CON OR DIDN'T AGREE TO IT! Despite being able to leave the outpost, you do NOT have a permission to antag or grief."
|
||||
important_info = "Keep your den in one piece and away from curious eyes! YOU AREN'T ALLOWED TO CAPTURE / FATTEN UP PEOPLE WHO DON'T DO NON-CON OR DIDN'T AGREE TO IT! Despite being able to leave the outpost, you do NOT have a permission to antag or grief. You're supposed to stay covert, not show yourself to the whole station!"
|
||||
outfit = /datum/outfit/feeders_den/fanatic
|
||||
faction = ROLE_SYNDICATE
|
||||
mirrorcanloadappearance = TRUE
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -237,9 +237,9 @@
|
||||
required_count = 5
|
||||
wanted_types = list(/obj/structure/chair/plaswood)
|
||||
|
||||
/datum/bounty/item/assistant/condom
|
||||
name = "Filled Condom"
|
||||
description = "Something wack is happening at Central Command, and now they requested some filled condoms?"
|
||||
reward = 1150
|
||||
required_count = 5
|
||||
wanted_types = list(/obj/item/condom/filled)
|
||||
//datum/bounty/item/assistant/condom
|
||||
// name = "Filled Condom"
|
||||
// description = "Something wack is happening at Central Command, and now they requested some filled condoms?"
|
||||
// reward = 1150
|
||||
// required_count = 5
|
||||
// wanted_types = list(/obj/item/condom/filled)
|
||||
|
||||
@@ -107,6 +107,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
var/starting_weight = 0 //how thicc you wanna be at start
|
||||
var/wg_rate = 0.5
|
||||
var/wl_rate = 0.5
|
||||
var/voice = "human"
|
||||
|
||||
//HS13 jobs
|
||||
var/sillyroles = TRUE //for clown and mime
|
||||
@@ -446,6 +447,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
dat += "<h2>Body</h2>"
|
||||
dat += "<b>Gender:</b><a style='display:block;width:100px' href='?_src_=prefs;preference=gender'>[gender == MALE ? "Male" : (gender == FEMALE ? "Female" : (gender == PLURAL ? "Non-binary" : "Object"))]</a><BR>"
|
||||
dat += "<b>Species:</b><a style='display:block;width:100px' href='?_src_=prefs;preference=species;task=input'>[pref_species.id]</a><BR>"
|
||||
dat += "<b>Voice:</b><a style='display:block;width:100px' href='?_src_=prefs;preference=voice_select;task=input'>[voice ? voice : "None"]</a><BR>"
|
||||
dat += "<b>Custom Species Name:</b><a style='display:block;width:100px' href='?_src_=prefs;preference=custom_species;task=input'>[custom_species ? custom_species : "None"]</a><BR>"
|
||||
dat += "<a style='display:block;width:100px' href='?_src_=prefs;preference=all;task=random'>Random Body</A><BR>"
|
||||
dat += "<b>Always Random Body:</b><a href='?_src_=prefs;preference=all'>[be_random_body ? "Yes" : "No"]</A><BR>"
|
||||
@@ -913,8 +915,6 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
dat += "<b>Vagina Color:</b></a><BR>"
|
||||
dat += "<span style='border: 1px solid #161616; background-color: #[features["vag_color"]];'> </span> <a href='?_src_=prefs;preference=vag_color;task=input'>Change</a><br>"
|
||||
dat += "<b>Has Womb:</b><a style='display:block;width:50px' href='?_src_=prefs;preference=has_womb'>[features["has_womb"] == TRUE ? "Yes" : "No"]</a>"
|
||||
if(features["has_womb"])
|
||||
dat += "<b>Can Get Pregnant:</b><a style='display:block;width:50px' href='?_src_=prefs;preference=can_get_preg'>[features["can_get_preg"] == TRUE ? "Yes" : "No"]</a>"
|
||||
dat += "</td>"
|
||||
dat += APPEARANCE_CATEGORY_COLUMN
|
||||
dat += "<h3>Breasts</h3>"
|
||||
@@ -1070,6 +1070,19 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
dat += "<b>Stuckage (weight results in getting stuck in doors):</b><a href='?_src_=prefs;preference=stuckage'>[stuckage == TRUE ? "Enabled" : "Disabled"]</a><BR>"
|
||||
dat += "<b>Extreme Weight Gain (Sprite Size scales with weight):</b><a href='?_src_=prefs;preference=weight_gain_extreme'>[weight_gain_extreme == TRUE ? "Enabled" : "Disabled"]</a><BR>"
|
||||
|
||||
dat += "<h2>GS13 Helplessness Preferences</h2>"
|
||||
dat += "<b>Please be careful when using these mechanics as not to use them in a way that negatively impacts those around you. If you are seriously needed for something, especially something station critical, do not use these as an excuse to ignore your duty.</b><BR><BR>"
|
||||
dat += "<b>No Movement:</b><a href='?_src_=prefs;preference=helplessness_no_movement'>[helplessness_no_movement == FALSE ? "Disabled" : helplessness_no_movement]</a><BR>"
|
||||
dat += "<b>Clumsy:</b><a href='?_src_=prefs;preference=helplessness_clumsy'>[helplessness_clumsy == FALSE ? "Disabled" : helplessness_clumsy]</a><BR>"
|
||||
dat += "<b>Nearsighted:</b><a href='?_src_=prefs;preference=helplessness_nearsighted'>[helplessness_nearsighted == FALSE ? "Disabled" : helplessness_nearsighted]</a><BR>"
|
||||
dat += "<b>Hidden Face:</b><a href='?_src_=prefs;preference=helplessness_hidden_face'>[helplessness_hidden_face == FALSE ? "Disabled" : helplessness_hidden_face]</a><BR>"
|
||||
dat += "<b>Mute:</b><a href='?_src_=prefs;preference=helplessness_mute'>[helplessness_mute == FALSE ? "Disabled" : helplessness_mute]</a><BR>"
|
||||
dat += "<b>Immobile Arms:</b><a href='?_src_=prefs;preference=helplessness_immobile_arms'>[helplessness_immobile_arms == FALSE ? "Disabled" : helplessness_immobile_arms]</a><BR>"
|
||||
dat += "<b>Clothing Jumpsuit:</b><a href='?_src_=prefs;preference=helplessness_clothing_jumpsuit'>[helplessness_clothing_jumpsuit == FALSE ? "Disabled" : helplessness_clothing_jumpsuit]</a><BR>"
|
||||
dat += "<b>Clothing, Suit, Boots, and Gloves:</b><a href='?_src_=prefs;preference=helplessness_clothing_misc'>[helplessness_clothing_misc == FALSE ? "Disabled" : helplessness_clothing_misc]</a><BR>"
|
||||
dat += "<b>Clothing Back:</b><a href='?_src_=prefs;preference=helplessness_clothing_back'>[helplessness_clothing_back == FALSE ? "Disabled" : helplessness_clothing_back]</a><BR>"
|
||||
dat += "<b>No Buckle:</b><a href='?_src_=prefs;preference=helplessness_no_buckle'>[helplessness_no_buckle == FALSE ? "Disabled" : helplessness_no_buckle]</a><BR>"
|
||||
|
||||
//Add the Hyper stuff below here
|
||||
dat += "<h2>Hyper Preferences</h2>"
|
||||
dat += "<b>NonCon - Bottom:</b><a href='?_src_=prefs;preference=noncon'>[noncon == TRUE ? "Enabled" : "Disabled"]</a><BR>"
|
||||
@@ -1996,6 +2009,10 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
else
|
||||
custom_species = null
|
||||
|
||||
if("voice_select")
|
||||
var/chosenvoice = input(user, "Select your character's voice.", "Voice Selection", voice) in list("human", "roach", "lizard")
|
||||
voice = chosenvoice
|
||||
|
||||
if("mutant_color")
|
||||
var/new_mutantcolor = input(user, "Choose your character's alien/mutant color:", "Character Preference","#"+features["mcolor"]) as color|null
|
||||
if(new_mutantcolor)
|
||||
@@ -2648,30 +2665,28 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
if("blueberry_inflation")
|
||||
blueberry_inflation = !blueberry_inflation
|
||||
if("max_fatness")
|
||||
var/pickedweight = input(user,
|
||||
"Choose your max fatness level, your weight will not go beyond this. None will let you gain without a limit",
|
||||
"Character Preference", "None") as null|anything in list(
|
||||
"None", "Fat", "Fatter", "Very Fat", "Obese", "Morbidly Obese", "Extremely Obese", "Barely Mobile", "Immobile")
|
||||
if(pickedweight)
|
||||
switch(pickedweight)
|
||||
if("None")
|
||||
max_weight = FALSE
|
||||
if("Fat")
|
||||
max_weight = FATNESS_LEVEL_FATTER
|
||||
if("Fatter")
|
||||
max_weight = FATNESS_LEVEL_VERYFAT
|
||||
if("Very Fat")
|
||||
max_weight = FATNESS_LEVEL_OBESE
|
||||
if("Obese")
|
||||
max_weight = FATNESS_LEVEL_MORBIDLY_OBESE
|
||||
if("Morbidly Obese")
|
||||
max_weight = FATNESS_LEVEL_EXTREMELY_OBESE
|
||||
if("Extremely Obese")
|
||||
max_weight = FATNESS_LEVEL_BARELYMOBILE
|
||||
if("Barely Mobile")
|
||||
max_weight = FATNESS_LEVEL_IMMOBILE
|
||||
if("Immobile")
|
||||
max_weight = FATNESS_LEVEL_BLOB
|
||||
max_weight = chose_weight("Choose your max fatness level, your weight will not go beyond this. None will let you gain without a limit", user)
|
||||
|
||||
if("helplessness_no_movement")
|
||||
helplessness_no_movement = chose_weight("Choose the level of fatness that you would like to be made completely able to move at. None will disable this alltogether", user)
|
||||
if("helplessness_clumsy")
|
||||
helplessness_clumsy = chose_weight("Choose the level of fatness that you would like to be made clumsy at. None will disable this alltogether", user)
|
||||
if("helplessness_nearsighted")
|
||||
helplessness_nearsighted = chose_weight("Choose the level of fatness that you would like to be made nearsighted at. None will disable this alltogether", user)
|
||||
if("helplessness_hidden_face")
|
||||
helplessness_hidden_face = chose_weight("Choose the level of fatness that you would like to have you face hidden at. None will disable this alltogether", user)
|
||||
if("helplessness_mute")
|
||||
helplessness_mute = chose_weight("Choose the level of fatness that you would like to be made unable to speak at. None will disable this alltogether", user)
|
||||
if("helplessness_immobile_arms")
|
||||
helplessness_immobile_arms = chose_weight("Choose the level of fatness that you would like to be made unable to use your arms at. None will disable this alltogether", user)
|
||||
if("helplessness_clothing_jumpsuit")
|
||||
helplessness_clothing_jumpsuit = chose_weight("Choose the level of fatness that you would like to be made unable to wear jumpsuits at. None will disable this alltogether", user)
|
||||
if("helplessness_clothing_misc")
|
||||
helplessness_clothing_misc = chose_weight("Choose the level of fatness that you would like to be made unable to wear other non-jumpsuit clothing at. None will disable this alltogether", user)
|
||||
if("helplessness_clothing_back")
|
||||
helplessness_clothing_back = chose_weight("Choose the level of fatness that you would like to be made unable to wear anything on your back at. None will disable this alltogether", user)
|
||||
if("helplessness_no_buckle")
|
||||
helplessness_no_buckle = chose_weight("Choose the level of fatness that you would like to be made unable to be buckled to anything at. None will disable this alltogether", user)
|
||||
|
||||
if("inflatable_belly")
|
||||
features["inflatable_belly"] = !features["inflatable_belly"]
|
||||
@@ -2957,6 +2972,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
character.name = character.real_name
|
||||
character.nameless = nameless
|
||||
character.custom_species = custom_species
|
||||
character.voice = voice
|
||||
|
||||
//h13 character custom body size, make sure to set to 100% if the player hasn't choosen one yet.
|
||||
character.custom_body_size = body_size
|
||||
|
||||
@@ -159,6 +159,16 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
S["wl_rate"] >> wl_rate
|
||||
S["noncon_weight_gain"] >> noncon_weight_gain
|
||||
S["max_weight"] >> max_weight
|
||||
S["helplessness_no_movement"] >> helplessness_no_movement
|
||||
S["helplessness_clumsy"] >> helplessness_clumsy
|
||||
S["helplessness_nearsighted"] >> helplessness_nearsighted
|
||||
S["helplessness_hidden_face"] >> helplessness_hidden_face
|
||||
S["helplessness_mute"] >> helplessness_mute
|
||||
S["helplessness_immobile_arms"] >> helplessness_immobile_arms
|
||||
S["helplessness_clothing_jumpsuit"] >> helplessness_clothing_jumpsuit
|
||||
S["helplessness_clothing_misc"] >> helplessness_clothing_misc
|
||||
S["helplessness_clothing_back"] >> helplessness_clothing_back
|
||||
S["helplessness_no_buckle"] >> helplessness_no_buckle
|
||||
S["stuckage"] >> stuckage
|
||||
S["blueberry_inflation"] >> blueberry_inflation
|
||||
|
||||
@@ -302,6 +312,16 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
WRITE_FILE(S["wl_rate"], wl_rate)
|
||||
WRITE_FILE(S["noncon_weight_gain"], noncon_weight_gain)
|
||||
WRITE_FILE(S["max_weight"], max_weight)
|
||||
WRITE_FILE(S["helplessness_no_movement"], helplessness_no_movement)
|
||||
WRITE_FILE(S["helplessness_clumsy"], helplessness_clumsy)
|
||||
WRITE_FILE(S["helplessness_nearsighted"], helplessness_nearsighted)
|
||||
WRITE_FILE(S["helplessness_hidden_face"], helplessness_hidden_face)
|
||||
WRITE_FILE(S["helplessness_mute"], helplessness_mute)
|
||||
WRITE_FILE(S["helplessness_immobile_arms"], helplessness_immobile_arms)
|
||||
WRITE_FILE(S["helplessness_clothing_jumpsuit"], helplessness_clothing_jumpsuit)
|
||||
WRITE_FILE(S["helplessness_clothing_misc"], helplessness_clothing_misc)
|
||||
WRITE_FILE(S["helplessness_clothing_back"], helplessness_clothing_back)
|
||||
WRITE_FILE(S["helplessness_no_buckle"], helplessness_no_buckle)
|
||||
WRITE_FILE(S["stuckage"], stuckage)
|
||||
WRITE_FILE(S["blueberry_inflation"], blueberry_inflation)
|
||||
return 1
|
||||
@@ -372,6 +392,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
S["skin_tone"] >> skin_tone
|
||||
S["hair_style_name"] >> hair_style
|
||||
S["facial_style_name"] >> facial_hair_style
|
||||
S["voice"] >> voice
|
||||
// GS13: Hair gradients from Skyrat
|
||||
S["grad_style"] >> grad_style
|
||||
S["grad_color"] >> grad_color
|
||||
@@ -638,6 +659,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
WRITE_FILE(S["skin_tone"] , skin_tone)
|
||||
WRITE_FILE(S["hair_style_name"] , hair_style)
|
||||
WRITE_FILE(S["facial_style_name"] , facial_hair_style)
|
||||
WRITE_FILE(S["voice"] , voice)
|
||||
// GS13: Hair gradients from Skyrat
|
||||
WRITE_FILE(S["grad_style"] , grad_style)
|
||||
WRITE_FILE(S["grad_color"] , grad_color)
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
weight = 10
|
||||
|
||||
/datum/round_event/mice_migration
|
||||
var/minimum_mice = 5
|
||||
var/maximum_mice = 15
|
||||
var/minimum_mice = 3
|
||||
var/maximum_mice = 8
|
||||
|
||||
/datum/round_event/mice_migration/announce(fake)
|
||||
var/cause = pick("space-winter", "budget-cuts", "Ragnarok",
|
||||
|
||||
@@ -105,6 +105,14 @@
|
||||
result = /obj/item/reagent_containers/food/snacks/baguette
|
||||
subcategory = CAT_MISCFOOD
|
||||
|
||||
|
||||
/datum/crafting_recipe/food/peel
|
||||
name = "Peel Egg-Plants"
|
||||
time = 5
|
||||
reqs = list(/obj/item/reagent_containers/food/snacks/grown/shell/eggy = 1)
|
||||
result = /obj/item/reagent_containers/food/snacks/egg
|
||||
subcategory = CAT_MISCFOOD
|
||||
|
||||
////////////////////////////////////////////////TOAST////////////////////////////////////////////////
|
||||
|
||||
/datum/crafting_recipe/food/slimetoast
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS
|
||||
min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT
|
||||
max_heat_protection_temperature = FIRE_HELM_MAX_TEMP_PROTECT
|
||||
armor = list("melee" = 30, "bullet" = 20, "laser" = 20, "energy" = 20, "bomb" = 50, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 50)
|
||||
armor = list("melee" = 35, "bullet" = 20, "laser" = 20, "energy" = 20, "bomb" = 50, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 50)
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/suit/hooded/explorer/standard
|
||||
@@ -138,7 +138,7 @@
|
||||
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
hoodtype = /obj/item/clothing/head/hooded/explorer/seva
|
||||
armor = list("melee" = 15, "bullet" = 5, "laser" = 20, "energy" = 10, "bomb" = 25, "bio" = 100, "rad" = 25, "fire" = 100, "acid" = 25)
|
||||
resistance_flags = FIRE_PROOF | GOLIATH_WEAKNESS
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/head/hooded/explorer/seva
|
||||
name = "SEVA Hood"
|
||||
@@ -147,7 +147,7 @@
|
||||
item_state = "seva"
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
|
||||
armor = list("melee" = 10, "bullet" = 5, "laser" = 20, "energy" = 10, "bomb" = 25, "bio" = 100, "rad" = 25, "fire" = 100, "acid" = 25)
|
||||
resistance_flags = FIRE_PROOF | GOLIATH_WEAKNESS
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/mask/gas/seva
|
||||
name = "SEVA Mask"
|
||||
@@ -167,7 +167,7 @@
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
hoodtype = /obj/item/clothing/head/hooded/explorer/exo
|
||||
armor = list("melee" = 60, "bullet" = 15, "laser" = 5, "energy" = 5, "bomb" = 60, "bio" = 25, "rad" = 10, "fire" = 0, "acid" = 0)
|
||||
armor = list("melee" = 50, "bullet" = 15, "laser" = 5, "energy" = 5, "bomb" = 60, "bio" = 25, "rad" = 10, "fire" = 0, "acid" = 0)
|
||||
resistance_flags = FIRE_PROOF | GOLIATH_RESISTANCE
|
||||
|
||||
/obj/item/clothing/head/hooded/explorer/exo
|
||||
@@ -175,7 +175,7 @@
|
||||
desc = "A recent model of a tactical helmet that lacks camouflage. It is not known how it made its way into GATO. The helmet is designed to provide a squad leader with strategic superiority over the enemy via its many scanners and satellite communications devices, which have not been installed in this particular helmet. Comes with multi-layered Kevlar protection and armored elements."
|
||||
icon_state = "exo"
|
||||
item_state = "exo"
|
||||
armor = list("melee" = 60, "bullet" = 15, "laser" = 5, "energy" = 5, "bomb" = 60, "bio" = 25, "rad" = 10, "fire" = 0, "acid" = 0)
|
||||
armor = list("melee" = 50, "bullet" = 15, "laser" = 5, "energy" = 5, "bomb" = 60, "bio" = 25, "rad" = 10, "fire" = 0, "acid" = 0)
|
||||
resistance_flags = FIRE_PROOF | GOLIATH_RESISTANCE
|
||||
|
||||
/obj/item/clothing/mask/gas/exo
|
||||
|
||||
@@ -308,7 +308,7 @@
|
||||
|
||||
/obj/item/storage/backpack/duffelbag/mining_cloned
|
||||
name = "mining replacement kit"
|
||||
desc = "A large bag that has advance tools and a spare jumpsuit, boots, and gloves for a newly cloned miner to get back in the field. Even as a new Id!"
|
||||
desc = "A large bag that has advance tools and a spare jumpsuit, boots, and gloves for a newly cloned miner to get back in the field. Even has a new Id!"
|
||||
|
||||
/obj/item/storage/backpack/duffelbag/mining_cloned/PopulateContents()
|
||||
new /obj/item/pickaxe/mini(src)
|
||||
@@ -330,13 +330,17 @@
|
||||
|
||||
/obj/machinery/mineral/equipment_vendor/proc/RedeemSVoucher(obj/item/suit_voucher/voucher, mob/redeemer)
|
||||
var/items = list( "Exo-suit" = image(icon = 'icons/obj/clothing/suits.dmi', icon_state = "exo"),
|
||||
"SEVA suit" = image(icon = 'icons/obj/clothing/suits.dmi', icon_state = "seva"))
|
||||
"SEVA suit" = image(icon = 'icons/obj/clothing/suits.dmi', icon_state = "seva"),
|
||||
"explorer suit" = image(icon = 'icons/obj/clothing/suits.dmi', icon_state = "explorer"))
|
||||
|
||||
var/selection = show_radial_menu(redeemer, src, items, require_near = TRUE, tooltips = TRUE)
|
||||
if(!selection || !Adjacent(redeemer) || QDELETED(voucher) || voucher.loc != redeemer)
|
||||
return
|
||||
var/drop_location = drop_location()
|
||||
switch(selection)
|
||||
if("explorer suit")
|
||||
new /obj/item/clothing/suit/hooded/explorer(drop_location)
|
||||
new /obj/item/clothing/mask/gas/explorer(drop_location)
|
||||
if("Exo-suit")
|
||||
new /obj/item/clothing/suit/hooded/explorer/exo(drop_location)
|
||||
new /obj/item/clothing/mask/gas/exo(drop_location)
|
||||
|
||||
@@ -79,3 +79,5 @@
|
||||
var/account_id
|
||||
can_be_held = "micro"
|
||||
appearance_flags = KEEP_TOGETHER|TILE_BOUND|PIXEL_SCALE|LONG_GLIDE
|
||||
|
||||
var/voice = "human"
|
||||
|
||||
@@ -1354,7 +1354,189 @@ GLOBAL_LIST_EMPTY(roundstart_races)
|
||||
ADD_TRAIT(H, trait_gain, OBESITY)
|
||||
update_body_size(H, 1)
|
||||
|
||||
/datum/species/proc/handle_helplessness(mob/living/carbon/human/fatty)
|
||||
var/datum/preferences/preferences = fatty?.client?.prefs
|
||||
if(!istype(preferences))
|
||||
return FALSE
|
||||
|
||||
if(preferences.helplessness_no_movement)
|
||||
if(!HAS_TRAIT_FROM(fatty, TRAIT_NO_MOVE, HELPLESSNESS_TRAIT))
|
||||
if(fatty.fatness >= preferences.helplessness_no_movement)
|
||||
to_chat(fatty, "<span class='warning'>You have become too fat to move anymore.</span>")
|
||||
ADD_TRAIT(fatty, TRAIT_NO_MOVE, HELPLESSNESS_TRAIT)
|
||||
|
||||
else if(fatty.fatness < preferences.helplessness_no_movement)
|
||||
to_chat(fatty, "<span class='notice'>You have become thin enough to regain some of your mobility.</span>")
|
||||
REMOVE_TRAIT(fatty, TRAIT_NO_MOVE, HELPLESSNESS_TRAIT)
|
||||
|
||||
else
|
||||
if(HAS_TRAIT_FROM(fatty, TRAIT_NO_MOVE, HELPLESSNESS_TRAIT))
|
||||
REMOVE_TRAIT(fatty, TRAIT_NO_MOVE, HELPLESSNESS_TRAIT)
|
||||
|
||||
|
||||
if(preferences.helplessness_clumsy)
|
||||
if(!HAS_TRAIT_FROM(fatty, TRAIT_CLUMSY, HELPLESSNESS_TRAIT))
|
||||
if(fatty.fatness >= preferences.helplessness_clumsy)
|
||||
to_chat(fatty, "<span class='warning'>Your newfound weight has made it hard to manipulate objects.</span>")
|
||||
ADD_TRAIT(fatty, TRAIT_CLUMSY, HELPLESSNESS_TRAIT)
|
||||
|
||||
else if(fatty.fatness < preferences.helplessness_clumsy)
|
||||
to_chat(fatty, "<span class='notice'>You feel like you have lost enough weight to recover your dexterity.</span>")
|
||||
REMOVE_TRAIT(fatty, TRAIT_CLUMSY, HELPLESSNESS_TRAIT)
|
||||
|
||||
else
|
||||
if(HAS_TRAIT_FROM(fatty, TRAIT_CLUMSY, HELPLESSNESS_TRAIT))
|
||||
REMOVE_TRAIT(fatty, TRAIT_CLUMSY, HELPLESSNESS_TRAIT)
|
||||
|
||||
|
||||
if(preferences.helplessness_nearsighted)
|
||||
if(!HAS_TRAIT_FROM(fatty, TRAIT_NEARSIGHT, HELPLESSNESS_TRAIT))
|
||||
if(fatty.fatness >= preferences.helplessness_nearsighted)
|
||||
to_chat(fatty, "<span class='warning'>Your fat makes it difficult to see the world around you. </span>")
|
||||
fatty.become_nearsighted(HELPLESSNESS_TRAIT)
|
||||
|
||||
else if(fatty.fatness < preferences.helplessness_nearsighted)
|
||||
to_chat(fatty, "<span class='notice'>You are thin enough to see your enviornment again. </span>")
|
||||
fatty.cure_nearsighted(HELPLESSNESS_TRAIT)
|
||||
|
||||
else
|
||||
if(HAS_TRAIT_FROM(fatty, TRAIT_NEARSIGHT, HELPLESSNESS_TRAIT))
|
||||
fatty.cure_nearsighted(HELPLESSNESS_TRAIT)
|
||||
|
||||
|
||||
if(preferences.helplessness_hidden_face)
|
||||
if(!HAS_TRAIT_FROM(fatty, TRAIT_DISFIGURED, HELPLESSNESS_TRAIT))
|
||||
if(fatty.fatness >= preferences.helplessness_hidden_face)
|
||||
to_chat(fatty, "<span class='warning'>You have gotten fat enough that your face is now unrecognizable. </span>")
|
||||
ADD_TRAIT(fatty, TRAIT_DISFIGURED, HELPLESSNESS_TRAIT)
|
||||
|
||||
else if(fatty.fatness < preferences.helplessness_hidden_face)
|
||||
to_chat(fatty, "<span class='notice'>You have lost enough weight to allow people to now recognize your face.</span>")
|
||||
REMOVE_TRAIT(fatty, TRAIT_DISFIGURED, HELPLESSNESS_TRAIT)
|
||||
|
||||
else
|
||||
if(HAS_TRAIT_FROM(fatty, TRAIT_DISFIGURED, HELPLESSNESS_TRAIT))
|
||||
REMOVE_TRAIT(fatty, TRAIT_DISFIGURED, HELPLESSNESS_TRAIT)
|
||||
|
||||
|
||||
if(preferences.helplessness_mute)
|
||||
if(!HAS_TRAIT_FROM(fatty, TRAIT_MUTE, HELPLESSNESS_TRAIT))
|
||||
if(fatty.fatness >= preferences.helplessness_mute)
|
||||
to_chat(fatty, "<span class='warning'>Your fat makes it impossible for you to speak.</span>")
|
||||
ADD_TRAIT(fatty, TRAIT_MUTE, HELPLESSNESS_TRAIT)
|
||||
|
||||
else if(fatty.fatness < preferences.helplessness_mute)
|
||||
to_chat(fatty, "<span class='notice'>You are thin enough now to be able to speak again. </span>")
|
||||
REMOVE_TRAIT(fatty, TRAIT_MUTE, HELPLESSNESS_TRAIT)
|
||||
|
||||
else
|
||||
if(HAS_TRAIT_FROM(fatty, TRAIT_MUTE, HELPLESSNESS_TRAIT))
|
||||
REMOVE_TRAIT(fatty, TRAIT_MUTE, HELPLESSNESS_TRAIT)
|
||||
|
||||
|
||||
if(preferences.helplessness_immobile_arms)
|
||||
if(!HAS_TRAIT_FROM(fatty, TRAIT_PARALYSIS_L_ARM, HELPLESSNESS_TRAIT))
|
||||
if(fatty.fatness >= preferences.helplessness_immobile_arms)
|
||||
to_chat(fatty, "<span class='warning'>Your arms are now engulfed in fat, making it impossible to move your arms. </span>")
|
||||
ADD_TRAIT(fatty, TRAIT_PARALYSIS_L_ARM, HELPLESSNESS_TRAIT)
|
||||
ADD_TRAIT(fatty, TRAIT_PARALYSIS_R_ARM, HELPLESSNESS_TRAIT)
|
||||
fatty.update_disabled_bodyparts()
|
||||
|
||||
else if(fatty.fatness < preferences.helplessness_immobile_arms)
|
||||
to_chat(fatty, "<span class='notice'>You are able to move your arms again. </span>")
|
||||
REMOVE_TRAIT(fatty, TRAIT_PARALYSIS_L_ARM, HELPLESSNESS_TRAIT)
|
||||
REMOVE_TRAIT(fatty, TRAIT_PARALYSIS_R_ARM, HELPLESSNESS_TRAIT)
|
||||
fatty.update_disabled_bodyparts()
|
||||
|
||||
else
|
||||
if(HAS_TRAIT_FROM(fatty, TRAIT_PARALYSIS_L_ARM, HELPLESSNESS_TRAIT))
|
||||
REMOVE_TRAIT(fatty, TRAIT_PARALYSIS_L_ARM, HELPLESSNESS_TRAIT)
|
||||
REMOVE_TRAIT(fatty, TRAIT_PARALYSIS_R_ARM, HELPLESSNESS_TRAIT)
|
||||
fatty.update_disabled_bodyparts()
|
||||
|
||||
if(preferences.helplessness_clothing_jumpsuit)
|
||||
if(!HAS_TRAIT_FROM(fatty, TRAIT_NO_JUMPSUIT, HELPLESSNESS_TRAIT))
|
||||
if(fatty.fatness >= preferences.helplessness_clothing_jumpsuit)
|
||||
ADD_TRAIT(fatty, TRAIT_NO_JUMPSUIT, HELPLESSNESS_TRAIT)
|
||||
|
||||
var/obj/item/clothing/under/jumpsuit = fatty.w_uniform
|
||||
if(istype(jumpsuit) && !istype(jumpsuit, /obj/item/clothing/under/color/grey/modular))
|
||||
to_chat(fatty, "<span class='warning'>[jumpsuit] can no longer contain your weight!</span>")
|
||||
fatty.dropItemToGround(jumpsuit)
|
||||
|
||||
else if(fatty.fatness < preferences.helplessness_clothing_jumpsuit)
|
||||
to_chat(fatty, "<span class='notice'>You feel thin enough to put on jumpsuits now. </span>")
|
||||
REMOVE_TRAIT(fatty, TRAIT_NO_JUMPSUIT, HELPLESSNESS_TRAIT)
|
||||
|
||||
else
|
||||
if(HAS_TRAIT_FROM(fatty, TRAIT_NO_JUMPSUIT, HELPLESSNESS_TRAIT))
|
||||
REMOVE_TRAIT(fatty, TRAIT_NO_JUMPSUIT, HELPLESSNESS_TRAIT)
|
||||
|
||||
|
||||
if(preferences.helplessness_clothing_misc)
|
||||
if(!HAS_TRAIT_FROM(fatty, TRAIT_NO_MISC, HELPLESSNESS_TRAIT))
|
||||
if(fatty.fatness >= preferences.helplessness_clothing_misc)
|
||||
ADD_TRAIT(fatty, TRAIT_NO_MISC, HELPLESSNESS_TRAIT)
|
||||
|
||||
var/obj/item/clothing/suit/worn_suit = fatty.wear_suit
|
||||
if(istype(worn_suit))
|
||||
to_chat(fatty, "<span class='warning'>[worn_suit] can no longer contain your weight!</span>")
|
||||
fatty.dropItemToGround(worn_suit)
|
||||
|
||||
var/obj/item/clothing/gloves/worn_gloves = fatty.gloves
|
||||
if(istype(worn_gloves))
|
||||
to_chat(fatty, "<span class='warning'>[worn_gloves] can no longer contain your weight!</span>")
|
||||
fatty.dropItemToGround(worn_gloves)
|
||||
|
||||
var/obj/item/clothing/shoes/worn_shoes = fatty.shoes
|
||||
if(istype(worn_shoes))
|
||||
to_chat(fatty, "<span class='warning'>[worn_shoes] can no longer contain your weight!</span>")
|
||||
fatty.dropItemToGround(worn_shoes)
|
||||
|
||||
else if(fatty.fatness < preferences.helplessness_clothing_misc)
|
||||
to_chat(fatty, "<span class='notice'>You feel thin enough to put on suits, shoes, and gloves now. </span>")
|
||||
REMOVE_TRAIT(fatty, TRAIT_NO_MISC, HELPLESSNESS_TRAIT)
|
||||
|
||||
else
|
||||
if(HAS_TRAIT_FROM(fatty, TRAIT_NO_MISC, HELPLESSNESS_TRAIT))
|
||||
REMOVE_TRAIT(fatty, TRAIT_NO_MISC, HELPLESSNESS_TRAIT)
|
||||
|
||||
|
||||
if(preferences.helplessness_clothing_back)
|
||||
if(!HAS_TRAIT_FROM(fatty, TRAIT_NO_BACKPACK, HELPLESSNESS_TRAIT))
|
||||
if(fatty.fatness >= preferences.helplessness_clothing_back)
|
||||
ADD_TRAIT(fatty, TRAIT_NO_BACKPACK, HELPLESSNESS_TRAIT)
|
||||
var/obj/item/back_item = fatty.back
|
||||
if(istype(back_item))
|
||||
to_chat(fatty, "<span class='warning'>Your weight makes it impossible for you to carry [back_item].</span>")
|
||||
fatty.dropItemToGround(back_item)
|
||||
|
||||
else if(fatty.fatness < preferences.helplessness_clothing_back)
|
||||
to_chat(fatty, "<span class='notice'>You feel thin enough to hold items on your back now. </span>")
|
||||
REMOVE_TRAIT(fatty, TRAIT_NO_BACKPACK, HELPLESSNESS_TRAIT)
|
||||
|
||||
else
|
||||
if(HAS_TRAIT_FROM(fatty, TRAIT_NO_BACKPACK, HELPLESSNESS_TRAIT))
|
||||
REMOVE_TRAIT(fatty, TRAIT_NO_BACKPACK, HELPLESSNESS_TRAIT)
|
||||
|
||||
|
||||
if(preferences.helplessness_no_buckle)
|
||||
if(!HAS_TRAIT_FROM(fatty, TRAIT_NO_BUCKLE, HELPLESSNESS_TRAIT))
|
||||
if(fatty.fatness >= preferences.helplessness_no_buckle)
|
||||
to_chat(fatty, "<span class='warning'>You feel like you've gotten too big to fit on anything.</span>")
|
||||
ADD_TRAIT(fatty, TRAIT_NO_BUCKLE, HELPLESSNESS_TRAIT)
|
||||
|
||||
else if(fatty.fatness < preferences.helplessness_no_buckle)
|
||||
to_chat(fatty, "<span class='notice'>You feel thin enough to sit on things again. </span>")
|
||||
REMOVE_TRAIT(fatty, TRAIT_NO_BUCKLE, HELPLESSNESS_TRAIT)
|
||||
|
||||
else
|
||||
if(HAS_TRAIT_FROM(fatty, TRAIT_NO_BUCKLE, HELPLESSNESS_TRAIT))
|
||||
REMOVE_TRAIT(fatty, TRAIT_NO_BUCKLE, HELPLESSNESS_TRAIT)
|
||||
|
||||
|
||||
/datum/species/proc/handle_fatness(mob/living/carbon/human/H)
|
||||
handle_helplessness(H)
|
||||
if(HAS_TRAIT(H, TRAIT_BLOB))
|
||||
handle_fatness_trait(
|
||||
H,
|
||||
|
||||
@@ -497,6 +497,9 @@
|
||||
. = ..()
|
||||
message = null
|
||||
emote_type = EMOTE_VISIBLE
|
||||
if(ishuman(usr))
|
||||
var/mob/living/carbon/human/H = usr
|
||||
playsound(usr.loc, "GainStation13/sound/voice/voices/[H.voice].ogg", 90, 10)
|
||||
|
||||
/datum/emote/living/custom/replace_pronoun(mob/user, message)
|
||||
return message
|
||||
|
||||
@@ -21,8 +21,7 @@
|
||||
if(m_intent == MOVE_INTENT_WALK)
|
||||
mod = CONFIG_GET(number/movedelay/walk_delay)
|
||||
else
|
||||
//mod = CONFIG_GET(number/movedelay/run_delay)
|
||||
mod = 1.30
|
||||
mod = CONFIG_GET(number/movedelay/run_delay)
|
||||
if(!isnum(mod))
|
||||
mod = 1
|
||||
add_movespeed_modifier(MOVESPEED_ID_MOB_WALK_RUN_CONFIG_SPEED, TRUE, 100, override = TRUE, multiplicative_slowdown = mod)
|
||||
|
||||
@@ -219,6 +219,25 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
|
||||
if(pressure < ONE_ATMOSPHERE*0.4) //Thin air, let's italicise the message
|
||||
spans |= SPAN_ITALICS
|
||||
|
||||
if(ishuman(src))
|
||||
var/mob/living/carbon/human/H = src
|
||||
var/vmod = ""
|
||||
switch(say_mod(message, message_mode))
|
||||
if("asks")
|
||||
vmod = "_ask"
|
||||
if("exclaims")
|
||||
vmod = "_exclaim"
|
||||
if("yells")
|
||||
vmod = "_exclaim"
|
||||
switch(say_mod(message, message_mode))
|
||||
if("whispers")
|
||||
playsound(src.loc, "GainStation13/sound/voice/voices/[H.voice][vmod].ogg", 45, 5, -3)
|
||||
if("yells")
|
||||
playsound(src.loc, "GainStation13/sound/voice/voices/[H.voice][vmod].ogg", 130, 10, message_range+2)
|
||||
else
|
||||
playsound(src.loc, "GainStation13/sound/voice/voices/[H.voice][vmod].ogg", 90, 10, message_range)
|
||||
|
||||
//playsound(user.loc, pick('GainStation13/sound/voice/voices/speak_1.ogg', 'GainStation13/sound/voice/voices/speak_1_ask.ogg', 'GainStation13/sound/voice/voices/speak_1_exclaim.ogg'), 90, 10)
|
||||
send_speech(message, message_range, src, bubble_type, spans, language, message_mode)
|
||||
|
||||
if(succumbed)
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
verb_ask = "flutters inquisitively"
|
||||
verb_exclaim = "flutters intensely"
|
||||
verb_yell = "flutters intensely"
|
||||
blood_volume = 0
|
||||
|
||||
/mob/living/simple_animal/butterfly/Initialize()
|
||||
. = ..()
|
||||
|
||||
@@ -84,6 +84,10 @@
|
||||
|
||||
if(!mob.Process_Spacemove(direct))
|
||||
return FALSE
|
||||
|
||||
//GS13 EDIT
|
||||
if(HAS_TRAIT(mob, TRAIT_NO_MOVE))
|
||||
return FALSE
|
||||
|
||||
//We are now going to move
|
||||
var/add_delay = mob.movement_delay()
|
||||
|
||||
@@ -72,6 +72,10 @@ proc/get_top_level_mob(var/mob/S)
|
||||
if(M.stat == DEAD && M.client && (M.client?.prefs?.chat_toggles & CHAT_GHOSTSIGHT) && !(M in viewers(T, null)))
|
||||
M.show_message(message)
|
||||
|
||||
if(ishuman(usr))
|
||||
var/mob/living/carbon/human/H = usr
|
||||
playsound(usr.loc, "GainStation13/sound/voice/voices/[H.voice].ogg", 90, 10)
|
||||
|
||||
if(emote_type == EMOTE_AUDIBLE)
|
||||
user.audible_message(message=message,hearing_distance=1)
|
||||
else
|
||||
|
||||
@@ -329,7 +329,7 @@
|
||||
if(STAGE_ONE)
|
||||
steps = 1
|
||||
if(STAGE_TWO)
|
||||
steps = 3//Yes this is right
|
||||
steps = 2
|
||||
if(STAGE_THREE)
|
||||
steps = 3
|
||||
if(STAGE_FOUR)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/obj/item/projectile/bullet
|
||||
name = "bullet"
|
||||
icon_state = "bullet"
|
||||
damage = 60
|
||||
damage = 55
|
||||
damage_type = BRUTE
|
||||
nodamage = FALSE
|
||||
candink = TRUE
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
icon_state = "spark"
|
||||
color = "#FFFF00"
|
||||
nodamage = 1
|
||||
knockdown = 100
|
||||
knockdown = 50
|
||||
stutter = 5
|
||||
jitter = 20
|
||||
hitsound = 'sound/weapons/taserhit.ogg'
|
||||
@@ -160,7 +160,7 @@
|
||||
damage = 8
|
||||
damage_type = TOX
|
||||
nodamage = 0
|
||||
knockdown = 100
|
||||
knockdown = 50
|
||||
stutter = 5
|
||||
|
||||
/obj/item/projectile/energy/bolt/halloween
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
damage = 8
|
||||
damage_type = TOX
|
||||
nodamage = 0
|
||||
knockdown = 100
|
||||
knockdown = 50
|
||||
stutter = 5
|
||||
drowsy = 50
|
||||
|
||||
|
||||
@@ -282,4 +282,5 @@
|
||||
name = "butt enlargement pill"
|
||||
list_reagents = list(/datum/reagent/fermi/butt_enlarger = 10)
|
||||
price = 4
|
||||
icon_state = "pill_lewd"
|
||||
icon_state = "pill_lewd"
|
||||
|
||||
@@ -285,7 +285,7 @@
|
||||
display_name = "Applied Bluespace Research"
|
||||
description = "Using bluespace to make things faster and better."
|
||||
prereq_ids = list("bluespace_basic", "engineering")
|
||||
design_ids = list("bs_rped","biobag_holding","minerbag_holding", "bluespacebeaker", "bluespacesyringe", "phasic_scanning", "bluespacesmartdart", "xenobio_slimebasic")
|
||||
design_ids = list("bs_rped","biobag_holding","minerbag_holding", "tray_holding", "bluespacebeaker", "bluespacesyringe", "phasic_scanning", "bluespacesmartdart", "xenobio_slimebasic")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000)
|
||||
export_price = 5000
|
||||
|
||||
@@ -377,7 +377,7 @@
|
||||
display_name = "Advanced Robotics Research"
|
||||
description = "It can even do the dishes!"
|
||||
prereq_ids = list("robotics")
|
||||
design_ids = list("borg_upgrade_diamonddrill", "borg_upgrade_advancedmop")
|
||||
design_ids = list("borg_upgrade_diamonddrill", "borg_upgrade_advancedmop", "borg_arcd")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000)
|
||||
export_price = 5000
|
||||
|
||||
@@ -403,7 +403,7 @@
|
||||
display_name = "Cyborg Upgrades: Utility"
|
||||
description = "Utility upgrades for cyborgs."
|
||||
prereq_ids = list("engineering", "robotics")
|
||||
design_ids = list("borg_upgrade_holding", "borg_upgrade_lavaproof", "borg_upgrade_thrusters", "borg_upgrade_selfrepair", "borg_upgrade_expand", "borg_upgrade_rped")
|
||||
design_ids = list("borg_upgrade_holding", "borg_upgrade_lavaproof", "borg_upgrade_thrusters", "borg_upgrade_selfrepair", "borg_upgrade_expand", "borg_upgrade_rped", "borg_tray_hold")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000)
|
||||
export_price = 5000
|
||||
|
||||
|
||||
@@ -91,6 +91,7 @@
|
||||
/obj/item/seeds/gatfruit,
|
||||
/obj/item/seeds/kudzu,
|
||||
/obj/item/seeds/firelemon,
|
||||
/obj/item/seeds/lipoplant, //GS13
|
||||
/obj/item/seeds/random
|
||||
))
|
||||
|
||||
|
||||
@@ -0,0 +1,569 @@
|
||||
/datum/map_template/shuttle
|
||||
name = "Base Shuttle Template"
|
||||
var/prefix = "_maps/shuttles/"
|
||||
var/suffix
|
||||
var/port_id
|
||||
var/shuttle_id
|
||||
|
||||
var/description
|
||||
var/prerequisites
|
||||
var/admin_notes
|
||||
|
||||
var/credit_cost = INFINITY
|
||||
var/can_be_bought = TRUE
|
||||
|
||||
var/port_x_offset
|
||||
var/port_y_offset
|
||||
|
||||
/datum/map_template/shuttle/proc/prerequisites_met()
|
||||
return TRUE
|
||||
|
||||
/datum/map_template/shuttle/New()
|
||||
shuttle_id = "[port_id]_[suffix]"
|
||||
mappath = "[prefix][shuttle_id].dmm"
|
||||
. = ..()
|
||||
|
||||
/datum/map_template/shuttle/preload_size(path, cache)
|
||||
. = ..(path, TRUE) // Done this way because we still want to know if someone actualy wanted to cache the map
|
||||
if(!cached_map)
|
||||
return
|
||||
|
||||
discover_port_offset()
|
||||
|
||||
if(!cache)
|
||||
cached_map = null
|
||||
|
||||
/datum/map_template/shuttle/proc/discover_port_offset()
|
||||
var/key
|
||||
var/list/models = cached_map.grid_models
|
||||
for(key in models)
|
||||
if(findtext(models[key], "[/obj/docking_port/mobile]")) // Yay compile time checks
|
||||
break // This works by assuming there will ever only be one mobile dock in a template at most
|
||||
|
||||
for(var/i in cached_map.gridSets)
|
||||
var/datum/grid_set/gset = i
|
||||
var/ycrd = gset.ycrd
|
||||
for(var/line in gset.gridLines)
|
||||
var/xcrd = gset.xcrd
|
||||
for(var/j in 1 to length(line) step cached_map.key_len)
|
||||
if(key == copytext(line, j, j + cached_map.key_len))
|
||||
port_x_offset = xcrd
|
||||
port_y_offset = ycrd
|
||||
return
|
||||
++xcrd
|
||||
--ycrd
|
||||
|
||||
/datum/map_template/shuttle/load(turf/T, centered, register=TRUE)
|
||||
. = ..()
|
||||
if(!.)
|
||||
return
|
||||
var/list/turfs = block( locate(.[MAP_MINX], .[MAP_MINY], .[MAP_MINZ]),
|
||||
locate(.[MAP_MAXX], .[MAP_MAXY], .[MAP_MAXZ]))
|
||||
for(var/i in 1 to turfs.len)
|
||||
var/turf/place = turfs[i]
|
||||
if(istype(place, /turf/open/space)) // This assumes all shuttles are loaded in a single spot then moved to their real destination.
|
||||
continue
|
||||
if(length(place.baseturfs) < 2) // Some snowflake shuttle shit
|
||||
continue
|
||||
place.baseturfs.Insert(3, /turf/baseturf_skipover/shuttle)
|
||||
|
||||
for(var/obj/docking_port/mobile/port in place)
|
||||
if(register)
|
||||
port.register()
|
||||
if(isnull(port_x_offset))
|
||||
continue
|
||||
switch(port.dir) // Yeah this looks a little ugly but mappers had to do this in their head before
|
||||
if(NORTH)
|
||||
port.width = width
|
||||
port.height = height
|
||||
port.dwidth = port_x_offset - 1
|
||||
port.dheight = port_y_offset - 1
|
||||
if(EAST)
|
||||
port.width = height
|
||||
port.height = width
|
||||
port.dwidth = height - port_y_offset
|
||||
port.dheight = port_x_offset - 1
|
||||
if(SOUTH)
|
||||
port.width = width
|
||||
port.height = height
|
||||
port.dwidth = width - port_x_offset
|
||||
port.dheight = height - port_y_offset
|
||||
if(WEST)
|
||||
port.width = height
|
||||
port.height = width
|
||||
port.dwidth = port_y_offset - 1
|
||||
port.dheight = width - port_x_offset
|
||||
|
||||
for(var/obj/structure/closet/closet in place)
|
||||
if(closet.anchorable)
|
||||
closet.anchored = TRUE
|
||||
|
||||
for(var/obj/structure/table/table in place)
|
||||
table.AddComponent(/datum/component/magnetic_catch)
|
||||
|
||||
for(var/obj/structure/rack/rack in place)
|
||||
rack.AddComponent(/datum/component/magnetic_catch)
|
||||
|
||||
//Whatever special stuff you want
|
||||
/datum/map_template/shuttle/proc/on_bought()
|
||||
return
|
||||
|
||||
/datum/map_template/shuttle/emergency
|
||||
port_id = "emergency"
|
||||
name = "Base Shuttle Template (Emergency)"
|
||||
|
||||
/datum/map_template/shuttle/cargo
|
||||
port_id = "cargo"
|
||||
name = "Base Shuttle Template (Cargo)"
|
||||
|
||||
/datum/map_template/shuttle/ferry
|
||||
port_id = "ferry"
|
||||
name = "Base Shuttle Template (Ferry)"
|
||||
|
||||
/datum/map_template/shuttle/whiteship
|
||||
port_id = "whiteship"
|
||||
|
||||
/datum/map_template/shuttle/labour
|
||||
port_id = "labour"
|
||||
can_be_bought = FALSE
|
||||
|
||||
/datum/map_template/shuttle/mining
|
||||
port_id = "mining"
|
||||
can_be_bought = FALSE
|
||||
|
||||
/datum/map_template/shuttle/cargo
|
||||
port_id = "cargo"
|
||||
can_be_bought = FALSE
|
||||
|
||||
/datum/map_template/shuttle/arrival
|
||||
port_id = "arrival"
|
||||
can_be_bought = FALSE
|
||||
|
||||
/datum/map_template/shuttle/infiltrator
|
||||
port_id = "infiltrator"
|
||||
can_be_bought = FALSE
|
||||
|
||||
/datum/map_template/shuttle/aux_base
|
||||
port_id = "aux_base"
|
||||
can_be_bought = FALSE
|
||||
|
||||
/datum/map_template/shuttle/escape_pod
|
||||
port_id = "escape_pod"
|
||||
can_be_bought = FALSE
|
||||
|
||||
/datum/map_template/shuttle/assault_pod
|
||||
port_id = "assault_pod"
|
||||
can_be_bought = FALSE
|
||||
|
||||
/datum/map_template/shuttle/pirate
|
||||
port_id = "pirate"
|
||||
can_be_bought = FALSE
|
||||
|
||||
/datum/map_template/shuttle/ruin //For random shuttles in ruins
|
||||
port_id = "ruin"
|
||||
can_be_bought = FALSE
|
||||
|
||||
/datum/map_template/shuttle/snowdin
|
||||
port_id = "snowdin"
|
||||
can_be_bought = FALSE
|
||||
|
||||
// Shuttles start here:
|
||||
|
||||
/datum/map_template/shuttle/emergency/backup
|
||||
suffix = "backup"
|
||||
name = "Backup Shuttle"
|
||||
can_be_bought = FALSE
|
||||
|
||||
/datum/map_template/shuttle/emergency/construction
|
||||
suffix = "construction"
|
||||
name = "Build your own shuttle kit"
|
||||
description = "For the enterprising shuttle engineer! The chassis will dock upon purchase, but launch will have to be authorized as usual via shuttle call. Comes stocked with construction materials."
|
||||
admin_notes = "No brig, no medical facilities, no shuttle console."
|
||||
credit_cost = 2500
|
||||
|
||||
/datum/map_template/shuttle/emergency/airless/prerequisites_met()
|
||||
// first 30 minutes only
|
||||
return world.time - SSticker.round_start_time < 18000
|
||||
|
||||
/datum/map_template/shuttle/emergency/airless/on_bought()
|
||||
//enable buying engines from cargo
|
||||
var/datum/supply_pack/P = SSshuttle.supply_packs[/datum/supply_pack/engineering/shuttle_engine]
|
||||
P.special_enabled = TRUE
|
||||
|
||||
|
||||
/datum/map_template/shuttle/emergency/asteroid
|
||||
suffix = "asteroid"
|
||||
name = "Asteroid Station Emergency Shuttle"
|
||||
description = "A respectable mid-sized shuttle that first saw service shuttling GATO crew to and from their asteroid belt embedded facilities."
|
||||
credit_cost = 3000
|
||||
|
||||
/datum/map_template/shuttle/emergency/bar
|
||||
suffix = "bar"
|
||||
name = "The Emergency Escape Bar"
|
||||
description = "Features include sentient bar staff (a Bardrone and a Barmaid), bathroom, a quality lounge for the heads, and a large gathering table."
|
||||
admin_notes = "Bardrone and Barmaid are GODMODE, will be automatically sentienced by the fun balloon at 60 seconds before arrival. \
|
||||
Has medical facilities."
|
||||
credit_cost = 5000
|
||||
|
||||
/datum/map_template/shuttle/emergency/russiafightpit
|
||||
suffix = "russiafightpit"
|
||||
name = "Mother Russia Bleeds"
|
||||
description = "Dis is a high-quality shuttle, da. Many seats, lots of space, all equipment! Even includes entertainment! Such as lots to drink, and a fighting arena for drunk crew to have fun! If arena not fun enough, simply press button of releasing bears. Do not worry, bears trained not to break out of fighting pit, so totally safe so long as nobody stupid or drunk enough to leave door open. Try not to let asimov babycons ruin fun!"
|
||||
admin_notes = "Includes a small variety of weapons. And bears. Only captain-access can release the bears. Bears won't smash the windows themselves, but they can escape if someone lets them."
|
||||
credit_cost = 5000 // While the shuttle is rusted and poorly maintained, trained bears are costly.
|
||||
|
||||
/datum/map_template/shuttle/emergency/meteor
|
||||
suffix = "meteor"
|
||||
name = "Asteroid With Engines Strapped To It"
|
||||
description = "A hollowed out asteroid with engines strapped to it. Due to its size and difficulty in steering it, this shuttle may damage the docking area."
|
||||
admin_notes = "This shuttle will likely crush escape, killing anyone there."
|
||||
credit_cost = -5000
|
||||
|
||||
/datum/map_template/shuttle/emergency/luxury
|
||||
suffix = "luxury"
|
||||
name = "Luxury Shuttle"
|
||||
description = "A luxurious golden shuttle complete with an indoor swimming pool. Each crewmember wishing to board must bring 500 credits, payable in cash and mineral coin."
|
||||
admin_notes = "Due to the limited space for non paying crew, this shuttle may cause a riot."
|
||||
credit_cost = 10000
|
||||
|
||||
/datum/map_template/shuttle/emergency/discoinferno
|
||||
suffix = "discoinferno"
|
||||
name = "Disco Inferno"
|
||||
description = "The glorious results of centuries of plasma research done by GATO employees. This is the reason why you are here. Get on and dance like you're on fire, burn baby burn!"
|
||||
admin_notes = "Flaming hot. The main area has a dance machine as well as plasma floor tiles that will be ignited by players every single time."
|
||||
credit_cost = 10000
|
||||
|
||||
/datum/map_template/shuttle/emergency/arena
|
||||
suffix = "arena"
|
||||
name = "The Arena"
|
||||
description = "The crew must pass through an otherworldy arena to board this shuttle. Expect massive casualties. The source of the Bloody Signal must be tracked down and eliminated to unlock this shuttle."
|
||||
admin_notes = "RIP AND TEAR."
|
||||
credit_cost = 10000
|
||||
|
||||
/datum/map_template/shuttle/emergency/arena/prerequisites_met()
|
||||
if("bubblegum" in SSshuttle.shuttle_purchase_requirements_met)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/datum/map_template/shuttle/emergency/birdboat
|
||||
suffix = "birdboat"
|
||||
name = "Birdboat Station Emergency Shuttle"
|
||||
description = "Though a little on the small side, this shuttle is feature complete, which is more than can be said for the pattern of station it was commissioned for."
|
||||
credit_cost = 1000
|
||||
|
||||
/datum/map_template/shuttle/emergency/box
|
||||
suffix = "box"
|
||||
name = "Box Station Emergency Shuttle"
|
||||
credit_cost = 2000
|
||||
description = "The gold standard in emergency exfiltration, this tried and true design is equipped with everything the crew needs for a safe flight home."
|
||||
|
||||
/datum/map_template/shuttle/emergency/clown
|
||||
suffix = "clown"
|
||||
name = "Snappop(tm)!"
|
||||
description = "Hey kids and grownups! \
|
||||
Are you bored of DULL and TEDIOUS shuttle journeys after you're evacuating for probably BORING reasons. Well then order the Snappop(tm) today! \
|
||||
We've got fun activities for everyone, an all access cockpit, and no boring security brig! Boo! Play dress up with your friends! \
|
||||
Collect all the bedsheets before your neighbour does! Check if the AI is watching you with our patent pending \"Peeping Tom AI Multitool Detector\" or PEEEEEETUR for short. \
|
||||
Have a fun ride!"
|
||||
admin_notes = "Brig is replaced by anchored greentext book surrounded by lavaland chasms, stationside door has been removed to prevent accidental dropping. No brig."
|
||||
credit_cost = 8000
|
||||
|
||||
/datum/map_template/shuttle/emergency/cramped
|
||||
suffix = "cramped"
|
||||
name = "Secure Transport Vessel 5 (STV5)"
|
||||
description = "Well, looks like CentCom only had this ship in the area, they probably weren't expecting you to need evac for a while. \
|
||||
Probably best if you don't rifle around in whatever equipment they were transporting. I hope you're friendly with your coworkers, because there is very little space in this thing.\n\
|
||||
\n\
|
||||
Contains contraband armory guns, maintenance loot, and abandoned crates!"
|
||||
admin_notes = "Due to origin as a solo piloted secure vessel, has an active GPS onboard labeled STV5. Has roughly as much space as Hi Daniel, except with explosive crates."
|
||||
|
||||
/datum/map_template/shuttle/emergency/meta
|
||||
suffix = "meta"
|
||||
name = "Meta Station Emergency Shuttle"
|
||||
credit_cost = 4000
|
||||
description = "A fairly standard shuttle, though larger and slightly better equipped than the Box Station variant."
|
||||
|
||||
/datum/map_template/shuttle/emergency/kilo
|
||||
suffix = "kilo"
|
||||
name = "Kilo Station Emergency Shuttle"
|
||||
credit_cost = 5000
|
||||
description = "A fully functional shuttle including a complete infirmary, storage facilties and regular amenities."
|
||||
|
||||
/datum/map_template/shuttle/emergency/mini
|
||||
suffix = "mini"
|
||||
name = "Ministation emergency shuttle"
|
||||
credit_cost = 1000
|
||||
description = "Despite its namesake, this shuttle is actually only slightly smaller than standard, and still complete with a brig and medbay."
|
||||
|
||||
/datum/map_template/shuttle/emergency/scrapheap
|
||||
suffix = "scrapheap"
|
||||
name = "Standby Evacuation Vessel \"Scrapheap Challenge\""
|
||||
credit_cost = -1000
|
||||
description = "Due to a lack of functional emergency shuttles, we bought this second hand from a scrapyard and pressed it into service. Please do not lean too heavily on the exterior windows, they are fragile."
|
||||
admin_notes = "An abomination with no functional medbay, sections missing, and some very fragile windows. Surprisingly airtight."
|
||||
|
||||
/datum/map_template/shuttle/emergency/syndicate
|
||||
suffix = "syndicate"
|
||||
name = "Syndicate GM Battlecruiser"
|
||||
credit_cost = 20000
|
||||
description = "Manufactured by the Gorlex Marauders, this cruiser has been specially designed with high occupancy in mind, while remaining robust in combat situations. Features a fully stocked EVA storage, armory, medbay, and bar!"
|
||||
admin_notes = "An emag exclusive, stocked with syndicate equipment and turrets that will target any simplemob."
|
||||
|
||||
/datum/map_template/shuttle/emergency/syndicate/prerequisites_met()
|
||||
if("emagged" in SSshuttle.shuttle_purchase_requirements_met)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/datum/map_template/shuttle/emergency/narnar
|
||||
suffix = "narnar"
|
||||
name = "Shuttle 667"
|
||||
description = "Looks like this shuttle may have wandered into the darkness between the stars on route to the station. Let's not think too hard about where all the bodies came from."
|
||||
admin_notes = "Contains real cult ruins, mob eyeballs, and inactive constructs. Cult mobs will automatically be sentienced by fun balloon. \
|
||||
Cloning pods in 'medbay' area are showcases and nonfunctional."
|
||||
|
||||
/datum/map_template/shuttle/emergency/pubby
|
||||
suffix = "pubby"
|
||||
name = "Pubby Station Emergency Shuttle"
|
||||
description = "A train but in space! Complete with a first, second class, brig and storage area."
|
||||
admin_notes = "Choo choo motherfucker!"
|
||||
credit_cost = 1000
|
||||
|
||||
/datum/map_template/shuttle/emergency/cere
|
||||
suffix = "cere"
|
||||
name = "Cere Station Emergency Shuttle"
|
||||
description = "The large, beefed-up version of the box-standard shuttle. Includes an expanded brig, fully stocked medbay, enhanced cargo storage with mech chargers, \
|
||||
an engine room stocked with various supplies, and a crew capacity of 80+ to top it all off. Live large, live Cere."
|
||||
admin_notes = "Seriously big, even larger than the Delta shuttle."
|
||||
credit_cost = 10000
|
||||
|
||||
/datum/map_template/shuttle/emergency/supermatter
|
||||
suffix = "supermatter"
|
||||
name = "Hyperfractal Gigashuttle"
|
||||
description = "\"I dunno, this seems kinda needlessly complicated.\"\n\
|
||||
\"This shuttle has very a very high safety record, according to CentCom Officer Cadet Yins.\"\n\
|
||||
\"Are you sure?\"\n\
|
||||
\"Yes, it has a safety record of N-A-N, which is apparently larger than 100%.\""
|
||||
admin_notes = "Supermatter that spawns on shuttle is special anchored 'hugbox' supermatter that cannot take damage and does not take in or emit gas. \
|
||||
Outside of admin intervention, it cannot explode. \
|
||||
It does, however, still dust anything on contact, emits high levels of radiation, and induce hallucinations in anyone looking at it without protective goggles. \
|
||||
Emitters spawn powered on, expect admin notices, they are harmless."
|
||||
credit_cost = 100000
|
||||
|
||||
/datum/map_template/shuttle/emergency/imfedupwiththisworld
|
||||
suffix = "imfedupwiththisworld"
|
||||
name = "Oh, Hi Daniel"
|
||||
description = "How was space work today? Oh, pretty good. We got a new space station and the company will make a lot of money. What space station? I cannot tell you; it's space confidential. \
|
||||
Aw, come space on. Why not? No, I can't. Anyway, how is your space roleplay life?"
|
||||
admin_notes = "Tiny, with a single airlock and wooden walls. What could go wrong?"
|
||||
credit_cost = -5000
|
||||
|
||||
/datum/map_template/shuttle/emergency/goon
|
||||
suffix = "goon"
|
||||
name = "NES Port"
|
||||
description = "The GATO Emergency Shuttle Port(NES Port for short) is a shuttle used at other less known GATO facilities and has a more open inside for larger crowds, but fewer onboard shuttle facilities."
|
||||
credit_cost = 500
|
||||
|
||||
/datum/map_template/shuttle/emergency/wabbajack
|
||||
suffix = "wabbajack"
|
||||
name = "GATO Lepton Violet"
|
||||
description = "The research team based on this vessel went missing one day, and no amount of investigation could discover what happened to them. \
|
||||
The only occupants were a number of dead rodents, who appeared to have clawed each other to death. \
|
||||
Needless to say, no engineering team wanted to go near the thing, and it's only being used as an Emergency Escape Shuttle because there is literally nothing else available."
|
||||
admin_notes = "If the crew can solve the puzzle, they will wake the wabbajack statue. It will likely not end well. There's a reason it's boarded up. Maybe they should have just left it alone."
|
||||
credit_cost = 15000
|
||||
|
||||
/datum/map_template/shuttle/emergency/omega
|
||||
suffix = "omega"
|
||||
name = "Omegastation Emergency Shuttle"
|
||||
description = "On the smaller size with a modern design, this shuttle is for the crew who like the cosier things, while still being able to stretch their legs."
|
||||
credit_cost = 1000
|
||||
|
||||
/datum/map_template/shuttle/ferry/base
|
||||
suffix = "base"
|
||||
name = "transport ferry"
|
||||
description = "Standard issue Box/Metastation CentCom ferry."
|
||||
|
||||
/datum/map_template/shuttle/ferry/meat
|
||||
suffix = "meat"
|
||||
name = "\"meat\" ferry"
|
||||
description = "Ahoy! We got all kinds o' meat aft here. Meat from plant people, people who be dark, not in a racist way, just they're dark black. \
|
||||
Oh and lizard meat too,mighty popular that is. Definitely 100% fresh, just ask this guy here. *person on meatspike moans* See? \
|
||||
Definitely high quality meat, nothin' wrong with it, nothin' added, definitely no zombifyin' reagents!"
|
||||
admin_notes = "Meat currently contains no zombifying reagents, lizard on meatspike must be spawned in."
|
||||
|
||||
/datum/map_template/shuttle/ferry/lighthouse
|
||||
suffix = "lighthouse"
|
||||
name = "The Lighthouse(?)"
|
||||
description = "*static*... part of a much larger vessel, possibly military in origin. \
|
||||
The weapon markings aren't anything we've seen ...static... by almost never the same person twice, possible use of unknown storage ...static... \
|
||||
seeing ERT officers onboard, but no missions are on file for ...static...static...annoying jingle... only at The LIGHTHOUSE! \
|
||||
Fulfilling needs you didn't even know you had. We've got EVERYTHING, and something else!"
|
||||
admin_notes = "Currently larger than ferry docking port on Box, will not hit anything, but must be force docked. Trader and ERT bodyguards are not included."
|
||||
|
||||
/datum/map_template/shuttle/ferry/fancy
|
||||
suffix = "fancy"
|
||||
name = "fancy transport ferry"
|
||||
description = "At some point, someone upgraded the ferry to have fancier flooring... and less seats."
|
||||
|
||||
/datum/map_template/shuttle/ferry/kilo
|
||||
suffix = "kilo"
|
||||
name = "kilo transport ferry"
|
||||
description = "Standard issue CentCom Ferry for Kilo pattern stations. Includes additional equipment and rechargers."
|
||||
|
||||
/datum/map_template/shuttle/whiteship/box
|
||||
suffix = "box"
|
||||
name = "Hospital Ship"
|
||||
|
||||
/datum/map_template/shuttle/whiteship/meta
|
||||
suffix = "meta"
|
||||
name = "Salvage Ship"
|
||||
|
||||
/datum/map_template/shuttle/whiteship/pubby
|
||||
suffix = "pubby"
|
||||
name = "GATO White UFO"
|
||||
|
||||
/datum/map_template/shuttle/whiteship/cere
|
||||
suffix = "cere"
|
||||
name = "GATO Construction Vessel"
|
||||
|
||||
/datum/map_template/shuttle/whiteship/delta
|
||||
suffix = "delta"
|
||||
name = "GATO Frigate"
|
||||
|
||||
/datum/map_template/shuttle/whiteship/pod
|
||||
suffix = "whiteship_pod"
|
||||
name = "Salvage Pod"
|
||||
|
||||
/datum/map_template/shuttle/cargo/box
|
||||
suffix = "box"
|
||||
name = "supply shuttle (Box)"
|
||||
|
||||
/datum/map_template/shuttle/cargo/birdboat
|
||||
suffix = "birdboat"
|
||||
name = "supply shuttle (Birdboat)"
|
||||
|
||||
/datum/map_template/shuttle/emergency/delta
|
||||
suffix = "delta"
|
||||
name = "Delta Station Emergency Shuttle"
|
||||
description = "A large shuttle for a large station, this shuttle can comfortably fit all your overpopulation and crowding needs. Complete with all facilities plus additional equipment."
|
||||
admin_notes = "Go big or go home."
|
||||
credit_cost = 7500
|
||||
|
||||
/datum/map_template/shuttle/emergency/raven
|
||||
suffix = "raven"
|
||||
name = "CentCom Raven Battlecruiser"
|
||||
description = "The CentCom Raven Battlecruiser is currently docked at the CentCom ship bay awaiting a mission, this Battlecruiser has been reassigned as an emergency escape shuttle for currently unknown reasons. The CentCom Raven Battlecruiser should comfortably fit a medium to large crew size crew and is complete with all required facitlities including a top of the range CentCom Medical Bay."
|
||||
admin_notes = "Comes with turrets that will target any simplemob."
|
||||
credit_cost = 12500
|
||||
|
||||
/datum/map_template/shuttle/arrival/box
|
||||
suffix = "box"
|
||||
name = "arrival shuttle (Box)"
|
||||
|
||||
/datum/map_template/shuttle/cargo/box
|
||||
suffix = "box"
|
||||
name = "cargo ferry (Box)"
|
||||
|
||||
/datum/map_template/shuttle/mining/box
|
||||
suffix = "box"
|
||||
name = "mining shuttle (Box)"
|
||||
|
||||
/datum/map_template/shuttle/labour/box
|
||||
suffix = "box"
|
||||
name = "labour shuttle (Box)"
|
||||
|
||||
/datum/map_template/shuttle/infiltrator/basic
|
||||
suffix = "basic"
|
||||
name = "basic syndicate infiltrator"
|
||||
|
||||
/datum/map_template/shuttle/cargo/delta
|
||||
suffix = "delta"
|
||||
name = "cargo ferry (Delta)"
|
||||
|
||||
/datum/map_template/shuttle/mining/delta
|
||||
suffix = "delta"
|
||||
name = "mining shuttle (Delta)"
|
||||
|
||||
/datum/map_template/shuttle/labour/delta
|
||||
suffix = "delta"
|
||||
name = "labour shuttle (Delta)"
|
||||
|
||||
/datum/map_template/shuttle/arrival/delta
|
||||
suffix = "delta"
|
||||
name = "arrival shuttle (Delta)"
|
||||
|
||||
/datum/map_template/shuttle/arrival/kilo
|
||||
suffix = "kilo"
|
||||
name = "arrival shuttle (Kilo)"
|
||||
|
||||
/datum/map_template/shuttle/mining/kilo
|
||||
suffix = "kilo"
|
||||
name = "mining shuttle (Kilo)"
|
||||
|
||||
/datum/map_template/shuttle/cargo/kilo
|
||||
suffix = "kilo"
|
||||
name = "supply shuttle (Kilo)"
|
||||
|
||||
/datum/map_template/shuttle/labour/kilo
|
||||
suffix = "kilo"
|
||||
name = "labour shuttle (Kilo)"
|
||||
|
||||
/datum/map_template/shuttle/arrival/pubby
|
||||
suffix = "pubby"
|
||||
name = "arrival shuttle (Pubby)"
|
||||
|
||||
/datum/map_template/shuttle/arrival/omega
|
||||
suffix = "omega"
|
||||
name = "arrival shuttle (Omega)"
|
||||
|
||||
/datum/map_template/shuttle/aux_base/default
|
||||
suffix = "default"
|
||||
name = "auxilliary base (Default)"
|
||||
|
||||
/datum/map_template/shuttle/aux_base/small
|
||||
suffix = "small"
|
||||
name = "auxilliary base (Small)"
|
||||
|
||||
/datum/map_template/shuttle/escape_pod/default
|
||||
suffix = "default"
|
||||
name = "escape pod (Default)"
|
||||
|
||||
/datum/map_template/shuttle/escape_pod/large
|
||||
suffix = "large"
|
||||
name = "escape pod (Large)"
|
||||
|
||||
/datum/map_template/shuttle/assault_pod/default
|
||||
suffix = "default"
|
||||
name = "assault pod (Default)"
|
||||
|
||||
/datum/map_template/shuttle/pirate/default
|
||||
suffix = "default"
|
||||
name = "pirate ship (Default)"
|
||||
|
||||
/datum/map_template/shuttle/ruin/caravan_victim
|
||||
suffix = "caravan_victim"
|
||||
name = "Small Freighter"
|
||||
|
||||
/datum/map_template/shuttle/ruin/pirate_cutter
|
||||
suffix = "pirate_cutter"
|
||||
name = "Pirate Cutter"
|
||||
|
||||
/datum/map_template/shuttle/ruin/syndicate_dropship
|
||||
suffix = "syndicate_dropship"
|
||||
name = "Syndicate Dropship"
|
||||
|
||||
/datum/map_template/shuttle/ruin/syndicate_fighter_shiv
|
||||
suffix = "syndicate_fighter_shiv"
|
||||
name = "Syndicate Fighter"
|
||||
|
||||
/datum/map_template/shuttle/snowdin/mining
|
||||
suffix = "mining"
|
||||
name = "Snowdin Mining Elevator"
|
||||
|
||||
/datum/map_template/shuttle/snowdin/excavation
|
||||
suffix = "excavation"
|
||||
name = "Snowdin Excavation Elevator"
|
||||
|
||||
/datum/map_template/shuttle/snowdin/transit
|
||||
suffix = "transit"
|
||||
name = "Snowdin Transit Shuttle"
|
||||
@@ -122,7 +122,7 @@
|
||||
uses = 1
|
||||
starting_organ = /obj/item/organ/genital/breasts
|
||||
|
||||
/obj/item/autosurgeon/womb
|
||||
desc = "A single use autosurgeon that contains a womb. A screwdriver can be used to remove it, but implants can't be placed back in."
|
||||
uses = 1
|
||||
starting_organ = /obj/item/organ/genital/womb
|
||||
// /obj/item/autosurgeon/womb
|
||||
// desc = "A single use autosurgeon that contains a womb. A screwdriver can be used to remove it, but implants can't be placed back in."
|
||||
// uses = 1
|
||||
// starting_organ = /obj/item/organ/genital/womb
|
||||
|
||||
@@ -11,6 +11,12 @@
|
||||
/obj/item/clothing/head/fedora = 3,
|
||||
/obj/item/clothing/suit/jacket/letterman_gato = 5, //GS13
|
||||
/obj/item/clothing/under/color/grey/modular = 6, //GS13
|
||||
/obj/item/clothing/suit/hooded/hoodie = 3,
|
||||
/obj/item/clothing/suit/hooded/hoodie/purple = 3,
|
||||
/obj/item/clothing/suit/hooded/hoodie/red = 3,
|
||||
/obj/item/clothing/suit/hooded/hoodie/blue = 3,
|
||||
/obj/item/clothing/suit/hooded/hoodie/green = 3,
|
||||
/obj/item/clothing/suit/hooded/hoodie/black = 3,
|
||||
/obj/item/clothing/glasses/monocle = 3,
|
||||
/obj/item/clothing/suit/jacket = 4,
|
||||
/obj/item/clothing/suit/jacket/flannel = 4,
|
||||
|
||||
Reference in New Issue
Block a user