Merge branch 'master' into moretweaks

This commit is contained in:
evilew
2025-05-01 22:21:20 +02:00
151 changed files with 23152 additions and 14508 deletions
+14
View File
@@ -266,6 +266,8 @@
give_genital(/obj/item/organ/genital/butt)
if(dna.features["has_belly"])
give_genital(/obj/item/organ/genital/belly)
if(dna.features["has_taur_belly"]) //GS13 EDIT TAUR BELLY
give_genital(/obj/item/organ/genital/taur_belly)
/mob/living/carbon/human/proc/give_genital(obj/item/organ/genital/G)
if(!dna || (NOGENITALS in dna.species.species_traits) || getorganslot(initial(G.slot)))
@@ -327,6 +329,8 @@
S = GLOB.butt_shapes_list[G.shape]
if(/obj/item/organ/genital/belly)
S = GLOB.belly_shapes_list[G.shape]
if(/obj/item/organ/genital/taur_belly) //GS13 EDIT TAUR BELLY
S = GLOB.taur_belly_shapes_list[G.shape]
if(!S || S.icon_state == "none")
continue
@@ -363,6 +367,8 @@
genital_overlay.color = "#[dna.features["butt_color"]]"
if("belly_color")
genital_overlay.color = "#[dna.features["belly_color"]]"
if("taur_belly_color") //GS13 EDIT TAUR BELLY
genital_overlay.color = "#[dna.features["taur_belly_color"]]"
//GS13 - Because each genital's file has different naming schemes for their icon_states,
// I've made it so each type is checked and the icon_state built based on which genital it is
@@ -370,6 +376,9 @@
if("belly")
genital_overlay.icon = G.icon
genital_overlay.icon_state = "[G.icon_state]_[aroused_state]_[layertext]"
if("taur_belly") //GS13 EDIT TAUR BELLY
//genital_overlay.icon = G.icon
genital_overlay.icon_state = "[G.icon_state]_[aroused_state]_[layertext]"
if("breasts")
genital_overlay.icon_state = "[G.slot]_[S.icon_state]_[size][(dna.species.use_skintones && !dna.skin_tone_override) ? "-s" : ""]_[aroused_state]_[layertext]"
if("penis")
@@ -410,6 +419,7 @@
var/buttCheck = getorganslot(ORGAN_SLOT_BUTT)
var/ballCheck = getorganslot(ORGAN_SLOT_TESTICLES)
var/bellyCheck = getorganslot(ORGAN_SLOT_BELLY)
var/taurbellyCheck = getorganslot(ORGAN_SLOT_TAUR_BELLY) //GS13 EDIT TAUR BELLY
if(organCheck == FALSE)
if(ishuman(src) && dna.species.use_skintones)
@@ -420,6 +430,7 @@
dna.features["butt_color"] = "[dna.species.fixed_mut_color]"
dna.features["belly_color"] = "[dna.species.fixed_mut_color]"
dna.features["testicles_color"] = "[dna.species.fixed_mut_color]"
dna.features["taur_belly_color"] = "[dna.species.fixed_mut_color]" //GS13 EDIT TAUR BELLY
return
//So people who haven't set stuff up don't get rainbow surprises.
dna.features["cock_color"] = "[dna.features["mcolor"]]"
@@ -427,6 +438,7 @@
dna.features["butt_color"] = "[dna.features["mcolor"]]"
dna.features["belly_color"] = "[dna.features["mcolor"]]"
dna.features["testicles_color"] = "[dna.features["mcolor"]]"
dna.features["taur_belly_color"] = "[dna.features["mcolor"]]" //GS13 EDIT TAUR BELLY
else //If there's a new organ, make it the same colour.
if(breastCheck == FALSE)
dna.features["breasts_color"] = dna.features["cock_color"]
@@ -438,4 +450,6 @@
dna.features["belly_color"] = dna.features["belly_color"]
else if (ballCheck == FALSE)
dna.features["testicles_color"] = dna.features["testicles_color"]
else if (taurbellyCheck == FALSE)
dna.features["taur_belly_color"] = dna.features["taur_belly_color"] //GS13 EDIT TAUR BELLY
return TRUE
@@ -152,3 +152,19 @@
icon = 'hyperstation/icons/obj/genitals/belly_round.dmi'
icon_state = "round"
name = "Round Belly"
//GS13 EDIT TAUR BELLY
/datum/sprite_accessory/taur_belly // Generic taur belly
icon = 'GainStation13/icons/obj/genitals/taur_belly/taur_belly_drake.dmi'
icon_state = "drake"
name = "generic taur belly"
color_src = "taur_belly_color"
//taur_dimension_x = 64
feat_taur = "belly_taur"
center = TRUE
dimension_x = 64
/datum/sprite_accessory/taur_belly/drake
taur_icon = 'GainStation13/icons/obj/genitals/taur_belly/taur_belly_drake.dmi'
icon_state = "drake"
name = "Drake Belly"
+67 -5
View File
@@ -134,7 +134,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/eye_type = DEFAULT_EYES_TYPE //Eye type
var/split_eye_colors = FALSE
var/datum/species/pref_species = new /datum/species/human() //Mutant race
var/list/features = list("mcolor" = "FFFFFF", "mcolor2" = "FFFFFF", "mcolor3" = "FFFFFF", "tail_lizard" = "Smooth", "tail_human" = "None", "snout" = "Round", "horns" = "None", "horns_color" = "85615a", "ears" = "None", "wings" = "None", "wings_color" = "FFF", "frills" = "None", "deco_wings" = "None", "spines" = "None", "legs" = "Plantigrade", "insect_wings" = "Plain", "insect_fluff" = "None", "insect_markings" = "None", "arachnid_legs" = "Plain", "arachnid_spinneret" = "Plain", "arachnid_mandibles" = "Plain", "mam_body_markings" = list(), "mam_ears" = "None", "mam_snouts" = "None", "mam_tail" = "None", "mam_tail_animated" = "None", "xenodorsal" = "Standard", "xenohead" = "Standard", "xenotail" = "Xenomorph Tail", "taur" = "None", "genitals_use_skintone" = FALSE, "has_cock" = FALSE, "cock_shape" = DEF_COCK_SHAPE, "cock_length" = COCK_SIZE_DEF, "cock_diameter_ratio" = COCK_DIAMETER_RATIO_DEF, "cock_color" = "ffffff", "cock_taur" = FALSE, "has_balls" = FALSE, "balls_color" = "ffffff", "balls_shape" = DEF_BALLS_SHAPE, "balls_size" = BALLS_SIZE_DEF, "balls_cum_rate" = CUM_RATE, "balls_cum_mult" = CUM_RATE_MULT, "balls_efficiency" = CUM_EFFICIENCY, "has_breasts" = FALSE, "breasts_color" = "ffffff", "breasts_size" = BREASTS_SIZE_DEF, "breasts_shape" = DEF_BREASTS_SHAPE, "breasts_fluid" = /datum/reagent/consumable/milk, "breasts_producing" = FALSE, "has_vag" = FALSE, "vag_shape" = DEF_VAGINA_SHAPE, "vag_color" = "ffffff", "has_womb" = FALSE, "has_butt" = FALSE, "butt_color" = "ffffff", "butt_size" = BUTT_SIZE_DEF, "balls_visibility" = GEN_VISIBLE_NO_UNDIES, "breasts_visibility"= GEN_VISIBLE_NO_UNDIES, "cock_visibility" = GEN_VISIBLE_NO_UNDIES, "vag_visibility" = GEN_VISIBLE_NO_UNDIES, "butt_visibility" = GEN_VISIBLE_NO_UNDIES, "ipc_screen" = "Sunburst", "ipc_antenna" = "None", "flavor_text" = "", "silicon_flavor_text" = "", "ooc_notes" = "", "meat_type" = "Mammalian", "body_model" = MALE, "body_size" = RESIZE_DEFAULT_SIZE, "color_scheme" = OLD_CHARACTER_COLORING, "belly_size" = BELLY_SIZE_DEF, "belly_shape" = DEF_BELLY_SHAPE, "inflatable_belly" = FALSE, "belly_visibility" = GEN_VISIBLE_NO_UNDIES)
var/list/features = list("mcolor" = "FFFFFF", "mcolor2" = "FFFFFF", "mcolor3" = "FFFFFF", "tail_lizard" = "Smooth", "tail_human" = "None", "snout" = "Round", "horns" = "None", "horns_color" = "85615a", "ears" = "None", "wings" = "None", "wings_color" = "FFF", "frills" = "None", "deco_wings" = "None", "spines" = "None", "legs" = "Plantigrade", "insect_wings" = "Plain", "insect_fluff" = "None", "insect_markings" = "None", "arachnid_legs" = "Plain", "arachnid_spinneret" = "Plain", "arachnid_mandibles" = "Plain", "mam_body_markings" = list(), "mam_ears" = "None", "mam_snouts" = "None", "mam_tail" = "None", "mam_tail_animated" = "None", "xenodorsal" = "Standard", "xenohead" = "Standard", "xenotail" = "Xenomorph Tail", "taur" = "None", "genitals_use_skintone" = FALSE, "has_cock" = FALSE, "cock_shape" = DEF_COCK_SHAPE, "cock_length" = COCK_SIZE_DEF, "cock_diameter_ratio" = COCK_DIAMETER_RATIO_DEF, "cock_color" = "ffffff", "cock_taur" = FALSE, "has_balls" = FALSE, "balls_color" = "ffffff", "balls_shape" = DEF_BALLS_SHAPE, "balls_size" = BALLS_SIZE_DEF, "balls_cum_rate" = CUM_RATE, "balls_cum_mult" = CUM_RATE_MULT, "balls_efficiency" = CUM_EFFICIENCY, "has_breasts" = FALSE, "breasts_color" = "ffffff", "breasts_size" = BREASTS_SIZE_DEF, "breasts_shape" = DEF_BREASTS_SHAPE, "breasts_fluid" = /datum/reagent/consumable/milk, "breasts_producing" = FALSE, "has_vag" = FALSE, "vag_shape" = DEF_VAGINA_SHAPE, "vag_color" = "ffffff", "has_womb" = FALSE, "has_butt" = FALSE, "butt_color" = "ffffff", "butt_size" = BUTT_SIZE_DEF, "balls_visibility" = GEN_VISIBLE_NO_UNDIES, "breasts_visibility"= GEN_VISIBLE_NO_UNDIES, "cock_visibility" = GEN_VISIBLE_NO_UNDIES, "vag_visibility" = GEN_VISIBLE_NO_UNDIES, "butt_visibility" = GEN_VISIBLE_NO_UNDIES, "ipc_screen" = "Sunburst", "ipc_antenna" = "None", "flavor_text" = "", "silicon_flavor_text" = "", "ooc_notes" = "", "meat_type" = "Mammalian", "body_model" = MALE, "body_size" = RESIZE_DEFAULT_SIZE, "color_scheme" = OLD_CHARACTER_COLORING, "belly_size" = BELLY_SIZE_DEF, "belly_shape" = DEF_BELLY_SHAPE, "inflatable_belly" = FALSE, "belly_visibility" = GEN_VISIBLE_NO_UNDIES, "taur_belly_size" = TAUR_BELLY_SIZE_DEF, "taur_belly_shape" = TAUR_BELLY_SHAPE_DEF, "taur_inflatable_belly" = FALSE, "taur_belly_visibility" = GEN_VISIBLE_NO_UNDIES)
var/custom_speech_verb = "default" //if your say_mod is to be something other than your races
var/custom_tongue = "default" //if your tongue is to be something other than your races
@@ -343,6 +343,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
helplessness_clothing_back = 0
if(isnull(helplessness_clothing_jumpsuit))
helplessness_clothing_jumpsuit = 0
if(isnull(helplessness_belts))
helplessness_belts = 0
if(isnull(helplessness_hidden_face))
helplessness_hidden_face = 0
if(isnull(helplessness_mute))
@@ -869,10 +871,27 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "<b>Belly Visibility:</b><a style='display:block;width:100px' href='?_src_=prefs;preference=belly_visibility;task=input'>[features["belly_visibility"]]</a>"
// GS13: tweak inflation description
dat += "<b>Inflation (climax with and manual belly size change in arousal menu):</b><a style='display:block;width:50px' href='?_src_=prefs;preference=inflatable_belly'>[features["inflatable_belly"] == 1 ? "Yes" : "No"]</a>"
dat += "</td>"
dat += "</tr></table>"
// GS13 EDIT TAUR BELLY START
if(features["taur"] != "None")
dat += APPEARANCE_CATEGORY_COLUMN
dat += "<h3>Taur Belly</h3>"
dat += "<a style='display:block;width:50px' href='?_src_=prefs;preference=has_taur_belly'>[features["has_taur_belly"] == TRUE ? "Yes" : "No"]</a>"
if(features["has_taur_belly"])
dat += "<b>Color:</b></a><BR>"
if(pref_species.use_skintones && features["genitals_use_skintone"] == TRUE)
dat += "<span style='border: 1px solid #161616; background-color: [SKINTONE2HEX(skin_tone)];'><font color='[color_hex2num(SKINTONE2HEX(skin_tone)) < 200 ? "FFFFFF" : "000000"]'>[SKINTONE2HEX(skin_tone)]</font></span>(Skin tone overriding)<br>"
else
dat += "<span style='border: 1px solid #161616; background-color: #[features["taur_belly_color"]];'><font color='[color_hex2num(features["taur_belly_color"]) < 200 ? "FFFFFF" : "000000"]'>#[features["taur_belly_color"]]</font></span> <a href='?_src_=prefs;preference=taur_belly_color;task=input'>Change</a><br>"
dat += "<b>Belly Size:</b> <a style='display:block;width:120px' href='?_src_=prefs;preference=taur_belly_size;task=input'>[features["taur_belly_size"]]</a>"
dat += "<b>Max Fat Belly Size:</b> <a style='display:block;width:120px' href='?_src_=prefs;preference=max_taur_belly_size;task=input'>[features["max_taur_belly_size"]]</a>"
dat += "<b>Belly Shape:</b> <a style='display:block;width:120px' href='?_src_=prefs;preference=taur_belly_shape;task=input'>[features["taur_belly_shape"]]</a>"
dat += "<b>Belly Visibility:</b><a style='display:block;width:100px' href='?_src_=prefs;preference=taur_belly_visibility;task=input'>[features["taur_belly_visibility"]]</a>"
dat += "<b>Inflation (climax with and manual belly size change in arousal menu):</b><a style='display:block;width:50px' href='?_src_=prefs;preference=taur_inflatable_belly'>[features["taur_inflatable_belly"] == 1 ? "Yes" : "No"]</a>"
dat += "</td>"
dat += "</tr></table>"
//Markings
if(MARKINGS_CHAR_TAB)
@@ -1452,6 +1471,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
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>Belts:</b><a href='?_src_=prefs;preference=helplessness_belts'>[helplessness_belts == FALSE ? "Disabled" : helplessness_belts]</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>"
dat += "</td>"
@@ -1570,7 +1590,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
popup.open(FALSE)
onclose(user, "capturekeypress", src)
/datum/preferences/proc/SetChoices(mob/user, limit = 17, list/splitJobs = list("Chief Engineer"), widthPerColumn = 295, height = 620)
/datum/preferences/proc/SetChoices(mob/user, limit = 22, list/splitJobs = list("Chief Engineer"), widthPerColumn = 295, height = 620) //GS13 Edit: Expanding out the pref window for new job additions
if(!SSjob)
return
@@ -2544,6 +2564,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
features["tail_human"] = "None"
features["tail_lizard"] = "None"
features["arachnid_spinneret"] = "None"
else
features["has_taur_belly"] = FALSE
if("ears")
var/list/snowflake_ears_list = list()
@@ -2840,7 +2862,40 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/n_vis = input(user, "Belly Visibility", "Character Preference") as null|anything in CONFIG_GET(str_list/safe_visibility_toggles)
if(n_vis)
features["belly_visibility"] = n_vis
//GS13 TAUR BELLY START
if("taur_belly_color")
var/new_bellycolor = input(user, "Belly Color:", "Character Preference", "#"+features["taur_belly_color"]) as color|null
if(new_bellycolor)
var/temp_hsv = RGBtoHSV(new_bellycolor)
if(new_bellycolor == "#000000")
features["taur_belly_color"] = pref_species.default_color
else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3])
features["taur_belly_color"] = sanitize_hexcolor(new_bellycolor, 6)
else
to_chat(user,"<span class='danger'>Invalid color. Your color is not bright enough.</span>")
if("taur_belly_size") //GS13 Edit here if we add more belly sprites
// GS13: Adjust sprite ranges in char setup
var/new_bellysize = input(user, "Belly size :\n(1-10)", "Character Preference") as num|null
if(new_bellysize)
features["taur_belly_size"] = clamp(round(new_bellysize), 1, 10)
if("max_taur_belly_size")
var/new_bellymax = input(user, "Max belly fat size :\n(0-9)", "Character Preference") as num|null
if(new_bellymax)
features["max_taur_belly_size"] = clamp(round(new_bellymax), 0, 10)
if("taur_belly_shape") //GS13 - belly shapes
var/new_shape
new_shape = input(user, "Belly Type", "Character Preference") as null|anything in GLOB.taur_belly_shapes_list
if(new_shape)
features["taur_belly_shape"] = new_shape
if("taur_belly_visibility")
var/n_vis = input(user, "Belly Visibility", "Character Preference") as null|anything in CONFIG_GET(str_list/safe_visibility_toggles)
if(n_vis)
features["taur_belly_visibility"] = n_vis
//GS13 TAUR BELLY END
if("ooccolor")
var/new_ooccolor = input(user, "Choose your OOC colour:", "Game Preference",ooccolor) as color|null
@@ -3025,7 +3080,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/new_wl_rate = input(user, "Choose your weight loss rate from 0.1 (10%) to 2 (200%).\n Decimals such as 0.2 indicate 20% rate.\nDefault recommended rate is 0.5 (50%)", "Character Preference", wl_rate) as num|null
if (new_wl_rate)
wl_rate = max(min(round(text2num(new_wl_rate),0.01),2),0)
if("stuckage_chance")
var/new_stuckage_chance = input(user, "Choose your chance to get stuck in doors from 0.1 (10%) to 1 (100%).\nDecimals such as 0.2 indicate 20% chance.\nSetting this to 0 restores default values.", "Character Preference", stuckage_chance) as num|null
if(new_stuckage_chance)
@@ -3157,6 +3212,11 @@ GLOBAL_LIST_EMPTY(preferences_datums)
features["has_belly"] = !features["has_belly"]
if("inflatable_belly")
features["inflatable_belly"] = !features["inflatable_belly"]
//GS13 TAUR BELLY EDIT
if("has_taur_belly")
features["has_taur_belly"] = !features["has_taur_belly"]
if("taur_inflatable_belly")
features["taur_inflatable_belly"] = !features["taur_inflatable_belly"]
if("widescreenpref")
widescreenpref = !widescreenpref
user.client.view_size.setDefault(getScreenSize(widescreenpref))
@@ -3542,6 +3602,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
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_belts")
helplessness_belts = chose_weight("Choose the level of fatness that you would like to be made unable to wear belts at. This also affects how much weight the Primitive Bluespace Belt can hide. 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")
+28 -1
View File
@@ -704,7 +704,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
var/savefile/S = new /savefile(path)
if(!S)
return FALSE
features = list("mcolor" = "FFFFFF", "mcolor2" = "FFFFFF", "mcolor3" = "FFFFFF", "tail_lizard" = "Smooth", "tail_human" = "None", "snout" = "Round", "horns" = "None", "horns_color" = "85615a", "ears" = "None", "wings" = "None", "wings_color" = "FFF", "frills" = "None", "deco_wings" = "None", "spines" = "None", "legs" = "Plantigrade", "insect_wings" = "Plain", "insect_fluff" = "None", "insect_markings" = "None", "arachnid_legs" = "Plain", "arachnid_spinneret" = "Plain", "arachnid_mandibles" = "Plain", "mam_body_markings" = "Plain", "mam_ears" = "None", "mam_snouts" = "None", "mam_tail" = "None", "mam_tail_animated" = "None", "xenodorsal" = "Standard", "xenohead" = "Standard", "xenotail" = "Xenomorph Tail", "taur" = "None", "genitals_use_skintone" = FALSE, "has_cock" = FALSE, "cock_shape" = DEF_COCK_SHAPE, "cock_length" = COCK_SIZE_DEF, "cock_diameter_ratio" = COCK_DIAMETER_RATIO_DEF, "cock_color" = "ffffff", "cock_taur" = FALSE, "has_balls" = FALSE, "balls_color" = "ffffff", "balls_shape" = DEF_BALLS_SHAPE, "balls_size" = BALLS_SIZE_DEF, "balls_cum_rate" = CUM_RATE, "balls_cum_mult" = CUM_RATE_MULT, "balls_efficiency" = CUM_EFFICIENCY, "has_breasts" = FALSE, "breasts_color" = "ffffff", "breasts_size" = BREASTS_SIZE_DEF, "breasts_shape" = DEF_BREASTS_SHAPE, "breasts_producing" = FALSE, "has_vag" = FALSE, "vag_shape" = DEF_VAGINA_SHAPE, "vag_color" = "ffffff", "has_womb" = FALSE, "has_butt" = FALSE, "butt_color" = "ffffff", "butt_size" = BUTT_SIZE_DEF, "balls_visibility" = GEN_VISIBLE_NO_UNDIES, "breasts_visibility"= GEN_VISIBLE_NO_UNDIES, "cock_visibility" = GEN_VISIBLE_NO_UNDIES, "vag_visibility" = GEN_VISIBLE_NO_UNDIES, "butt_visibility" = GEN_VISIBLE_NO_UNDIES, "belly_visibility" = GEN_VISIBLE_NO_UNDIES, "belly_size" = BELLY_SIZE_DEF, "belly_shape" = DEF_BELLY_SHAPE, "inflatable_belly" = FALSE, "ipc_screen" = "Sunburst", "ipc_antenna" = "None", "flavor_text" = "", "silicon_flavor_text" = "", "ooc_notes" = "", "meat_type" = "Mammalian", "body_model" = MALE, "body_size" = RESIZE_DEFAULT_SIZE, "color_scheme" = OLD_CHARACTER_COLORING)
features = list("mcolor" = "FFFFFF", "mcolor2" = "FFFFFF", "mcolor3" = "FFFFFF", "tail_lizard" = "Smooth", "tail_human" = "None", "snout" = "Round", "horns" = "None", "horns_color" = "85615a", "ears" = "None", "wings" = "None", "wings_color" = "FFF", "frills" = "None", "deco_wings" = "None", "spines" = "None", "legs" = "Plantigrade", "insect_wings" = "Plain", "insect_fluff" = "None", "insect_markings" = "None", "arachnid_legs" = "Plain", "arachnid_spinneret" = "Plain", "arachnid_mandibles" = "Plain", "mam_body_markings" = "Plain", "mam_ears" = "None", "mam_snouts" = "None", "mam_tail" = "None", "mam_tail_animated" = "None", "xenodorsal" = "Standard", "xenohead" = "Standard", "xenotail" = "Xenomorph Tail", "taur" = "None", "genitals_use_skintone" = FALSE, "has_cock" = FALSE, "cock_shape" = DEF_COCK_SHAPE, "cock_length" = COCK_SIZE_DEF, "cock_diameter_ratio" = COCK_DIAMETER_RATIO_DEF, "cock_color" = "ffffff", "cock_taur" = FALSE, "has_balls" = FALSE, "balls_color" = "ffffff", "balls_shape" = DEF_BALLS_SHAPE, "balls_size" = BALLS_SIZE_DEF, "balls_cum_rate" = CUM_RATE, "balls_cum_mult" = CUM_RATE_MULT, "balls_efficiency" = CUM_EFFICIENCY, "has_breasts" = FALSE, "breasts_color" = "ffffff", "breasts_size" = BREASTS_SIZE_DEF, "breasts_shape" = DEF_BREASTS_SHAPE, "breasts_producing" = FALSE, "has_vag" = FALSE, "vag_shape" = DEF_VAGINA_SHAPE, "vag_color" = "ffffff", "has_womb" = FALSE, "has_butt" = FALSE, "butt_color" = "ffffff", "butt_size" = BUTT_SIZE_DEF, "balls_visibility" = GEN_VISIBLE_NO_UNDIES, "breasts_visibility"= GEN_VISIBLE_NO_UNDIES, "cock_visibility" = GEN_VISIBLE_NO_UNDIES, "vag_visibility" = GEN_VISIBLE_NO_UNDIES, "butt_visibility" = GEN_VISIBLE_NO_UNDIES, "belly_visibility" = GEN_VISIBLE_NO_UNDIES, "belly_size" = BELLY_SIZE_DEF, "belly_shape" = DEF_BELLY_SHAPE, "inflatable_belly" = FALSE, "ipc_screen" = "Sunburst", "ipc_antenna" = "None", "flavor_text" = "", "silicon_flavor_text" = "", "ooc_notes" = "", "meat_type" = "Mammalian", "body_model" = MALE, "body_size" = RESIZE_DEFAULT_SIZE, "color_scheme" = OLD_CHARACTER_COLORING, "taur_belly_size" = TAUR_BELLY_SIZE_DEF, "taur_belly_shape" = TAUR_BELLY_SHAPE_DEF, "taur_inflatable_belly" = FALSE, "taur_belly_visibility" = GEN_VISIBLE_NO_UNDIES)
S.cd = "/"
if(!slot)
@@ -901,6 +901,16 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
S["feature_hide_belly"] >> features["hide_belly"]
S["feature_inflatable_belly"] >> features["inflatable_belly"]
//GS13 EDIT TAUR BELLY features
S["feature_has_taur_belly"] >> features["has_taur_belly"]
S["feature_taur_belly_size"] >> features["taur_belly_size"]
S["feature_max_taur_belly_size"] >> features["max_taur_belly_size"]
S["feature_taur_belly_shape"] >> features["taur_belly_shape"]
S["feature_taur_belly_color"] >> features["taur_belly_color"]
S["feature_hide_taur_belly"] >> features["hide_taur_belly"]
S["feature_taur_inflatable_belly"] >> features["taur_inflatable_belly"]
S["feature_taur_belly_visibility"] >> features["feature_taur_belly_visibility"]
// Flavor texts, Made into a standard.
S["feature_flavor_text"] >> features["flavor_text"]
S["feature_silicon_flavor_text"] >> features["silicon_flavor_text"]
@@ -949,6 +959,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
S["helplessness_immobile_arms"] >> helplessness_immobile_arms
S["helplessness_clothing_jumpsuit"] >> helplessness_clothing_jumpsuit
S["helplessness_clothing_misc"] >> helplessness_clothing_misc
S["helplessness_belts"] >> helplessness_belts
S["helplessness_clothing_back"] >> helplessness_clothing_back
S["helplessness_no_buckle"] >> helplessness_no_buckle
S["stuckage"] >> stuckage
@@ -1086,6 +1097,11 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
features["butt_visibility"] = sanitize_inlist(features["butt_visibility"], safe_visibilities, GEN_VISIBLE_NO_UNDIES)
features["belly_visibility"] = sanitize_inlist(features["belly_visibility"], safe_visibilities, GEN_VISIBLE_NO_UNDIES)
//GS13 TAUR BELLY EDIT START
features["taur_belly_shape"] = sanitize_inlist(features["taur_belly_shape"], GLOB.taur_belly_shapes_list, TAUR_BELLY_SHAPE_DEF)
features["taur_belly_visibility"] = sanitize_inlist(features["taur_belly_visibility"], safe_visibilities, GEN_VISIBLE_NO_UNDIES)
//GS13 TAUR BELLY EDIT END
custom_speech_verb = sanitize_inlist(custom_speech_verb, GLOB.speech_verbs, "default")
custom_tongue = sanitize_inlist(custom_tongue, GLOB.roundstart_tongues, "default")
additional_language = sanitize_inlist(additional_language, GLOB.roundstart_languages, "None")
@@ -1245,6 +1261,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
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_belts"], helplessness_belts)
WRITE_FILE(S["helplessness_clothing_back"], helplessness_clothing_back)
WRITE_FILE(S["helplessness_no_buckle"], helplessness_no_buckle)
WRITE_FILE(S["stuckage"], stuckage)
@@ -1324,6 +1341,16 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
WRITE_FILE(S["feature_inflatable_belly"], features["inflatable_belly"])
WRITE_FILE(S["alt_titles_preferences"], alt_titles_preferences)
//GS13 TAUR BELLY EDIT START
WRITE_FILE(S["feature_has_taur_belly"], features["has_taur_belly"])
WRITE_FILE(S["feature_taur_belly_size"], features["taur_belly_size"])
WRITE_FILE(S["feature_max_taur_belly_size"], features["max_taur_belly_size"])
WRITE_FILE(S["feature_taur_belly_shape"], features["taur_belly_shape"])
WRITE_FILE(S["feature_taur_belly_color"], features["taur_belly_color"])
WRITE_FILE(S["feature_hide_taur_belly"], features["hide_taur_belly"])
WRITE_FILE(S["feature_taur_inflatable_belly"], features["taur_inflatable_belly"])
//GS13 TAUR BELLY EDIT START END
WRITE_FILE(S["feature_ooc_notes"], features["ooc_notes"])
WRITE_FILE(S["feature_color_scheme"], features["color_scheme"])
@@ -20,7 +20,7 @@
jobs_to_revolt = list("Assistant")
nation_name = pick("Assa", "Mainte", "Tunnel", "Gris", "Grey", "Liath", "Grigio", "Ass", "Assi")
if("white")
jobs_to_revolt = list("Chief Medical Officer", "Medical Doctor", "Chemist", "Geneticist", "Paramedic", "Virologist")
jobs_to_revolt = list("Chief Medical Officer", "Medical Doctor", "Chemist", "Geneticist", "Paramedic", "Psychologist", "Virologist") //GS13 edit: Psychologist job
nation_name = pick("Mede", "Healtha", "Recova", "Chemi", "Geneti", "Viro", "Psych")
if("yellow")
jobs_to_revolt = list("Chief Engineer", "Station Engineer", "Atmospheric Technician")
+7 -5
View File
@@ -134,7 +134,7 @@
ACCESS_HYDROPONICS, ACCESS_LIBRARY, ACCESS_LAWYER, ACCESS_VIROLOGY, ACCESS_CMO, ACCESS_QM, ACCESS_SURGERY,
ACCESS_THEATRE, ACCESS_RESEARCH, ACCESS_MINING, ACCESS_MAILSORTING, ACCESS_WEAPONS,
ACCESS_VAULT, ACCESS_MINING_STATION, ACCESS_XENOBIOLOGY, ACCESS_CE, ACCESS_HOP, ACCESS_HOS, ACCESS_RC_ANNOUNCE,
ACCESS_KEYCARD_AUTH, ACCESS_TCOMSAT, ACCESS_GATEWAY, ACCESS_MINERAL_STOREROOM, ACCESS_MINISAT, ACCESS_NETWORK, ACCESS_CLONING)
ACCESS_KEYCARD_AUTH, ACCESS_TCOMSAT, ACCESS_GATEWAY, ACCESS_MINERAL_STOREROOM, ACCESS_MINISAT, ACCESS_NETWORK, ACCESS_CLONING, ACCESS_PSYCH) //GS13: Psychologist job
/proc/get_all_centcom_access()
return list(ACCESS_CENT_GENERAL, ACCESS_CENT_THUNDER, ACCESS_CENT_SPECOPS, ACCESS_CENT_MEDICAL, ACCESS_CENT_LIVING, ACCESS_CENT_STORAGE, ACCESS_CENT_TELEPORTER, ACCESS_CENT_CAPTAIN)
@@ -162,7 +162,7 @@
if(2) //security
return list(ACCESS_SEC_DOORS, ACCESS_WEAPONS, ACCESS_SECURITY, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_FORENSICS_LOCKERS, ACCESS_COURT, ACCESS_HOS, ACCESS_ENTER_GENPOP, ACCESS_LEAVE_GENPOP,)
if(3) //medbay
return list(ACCESS_MEDICAL, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_MORGUE, ACCESS_CHEMISTRY, ACCESS_VIROLOGY, ACCESS_SURGERY, ACCESS_CMO)
return list(ACCESS_MEDICAL, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_MORGUE, ACCESS_CHEMISTRY, ACCESS_VIROLOGY, ACCESS_SURGERY, ACCESS_CMO, ACCESS_PSYCH) //GS13: Psychologist job
if(4) //research
return list(ACCESS_RESEARCH, ACCESS_TOX, ACCESS_TOX_STORAGE, ACCESS_GENETICS, ACCESS_ROBOTICS, ACCESS_XENOBIOLOGY, ACCESS_MINISAT, ACCESS_RD, ACCESS_NETWORK)
if(5) //engineering and maintenance
@@ -329,6 +329,8 @@
return "Network Access"
if(ACCESS_CLONING)
return "Cloning Room"
if(ACCESS_PSYCH)
return "Psychology Office" //GS13: Psychologist job
/proc/get_centcom_access_desc(A)
switch(A)
@@ -353,9 +355,9 @@
/proc/get_all_jobs()
return list("Assistant", "Captain", "Head of Personnel", "Bartender", "Cook", "Botanist", "Quartermaster", "Cargo Technician",
"Shaft Miner", "Clown", "Mime", "Janitor", "Curator", "Lawyer", "Chaplain", "Chief Engineer", "Station Engineer",
"Atmospheric Technician", "Chief Medical Officer", "Medical Doctor", "Chemist", "Geneticist", "Virologist", "Paramedic",
"Research Director", "Scientist", "Roboticist", "Head of Security", "Warden", "Detective", "Security Officer", "Prisoner")
"Shaft Miner", "Clown", "Mime", "Janitor", "Curator", "Lawyer", "Chaplain", "Chief Engineer", "Station Engineer", "Engineering Intern",
"Atmospheric Technician", "Chief Medical Officer", "Medical Doctor", "Chemist", "Geneticist", "Virologist", "Paramedic", "Psychologist", "Medical Resident",
"Research Director", "Scientist", "Roboticist", "Research Student", "Head of Security", "Warden", "Detective", "Security Officer", "Security Cadet", "Prisoner") //Rookie + Psychologist roles
/proc/get_all_job_icons() //For all existing HUD icons
return get_all_jobs() + list("Prisoner")
+40 -23
View File
@@ -2,7 +2,7 @@
//Engineering
/datum/job/chief_engineer
alt_titles = list("Head Engineer", "Construction Coordinator", "Project Manager", "Power Plant Director")
alt_titles = list("Head Engineer", "Construction Coordinator", "Project Manager", "Power Plant Director", "Engineering Foreman")
/datum/job/engineer
alt_titles = list("Maintenance Technician", "Engine Technician", "Electrician", "Structural Engineer", "Mechanic", "Station Architect", "Nuclear Plant Operator")
@@ -10,27 +10,30 @@
/datum/job/atmos
alt_titles = list("Firefighter", "Life Support Specialist", "Disposals Technician")
/datum/job/junior_engineer
alt_titles = list("Atmospheric Intern", "Apprentice Engineer")
//Service
/datum/job/assistant
alt_titles = list("Civilian", "Morale Officer", "Off-Duty", "Visitor", "Businessman", "Trader", "Entertainer", "Tourist")
alt_titles = list("Civilian", "Morale Officer", "Off-Duty", "Visitor", "Businessman", "Trader", "Entertainer", "Tourist", "Artist", "Businesswoman", "Butler", "Contractor", "Entertainer", "Freelancer", "Fitness Instructor", "Hobbyist", "Performer")
/datum/job/cook
alt_titles = list("Cook", "Culinary Artist", "Butcher", "Chef de partie", "Poissonier", "Baker", "Taste Tester")
/datum/job/hydro
alt_titles = list("Gardener", "Herbalist", "Botanical Researcher", "Hydroponicist", "Farmer", "Beekeeper", "Vintner")
alt_titles = list("Gardener", "Herbalist", "Botanical Researcher", "Hydroponicist", "Apiarist", "Apiculturist", "Farmer", "Beekeeper", "Vintner", "Junior Botanist")
/datum/job/curator
alt_titles = list("Journalist", "Librarian", "Keeper")
alt_titles = list("Journalist", "Librarian", "Keeper", "Historian", "Professor", "Archivist")
/datum/job/chaplain
alt_titles = list("Priest", "Priestess", "Prior", "Monk", "Nun", "Counselor")
alt_titles = list("Priest", "Priestess", "Prior", "Monk", "Nun", "Counselor", "Cleric", "High Priest", "High Priestess", "Imam", "Oracle", "Preacher", "Pastor", "Pontifex", "Guru", "Rabbi", "Reverend", "Shrine Maiden", "Shrine Guardian")
/datum/job/janitor
alt_titles = list("Custodian", "Sanitation Technician", "Maid", "Trash Can", "Disposal Unit")
alt_titles = list("Custodian", "Custodial Technician", "Sanitation Technician", "Maintenance Technician", "Maid", "Trash Can", "Disposal Unit", "Groundskeeper")
/datum/job/lawyer
alt_titles = list("Human Resources Agent", "Internal Affairs Agent", "Attorney")
alt_titles = list("Human Resources Agent", "Internal Affairs Agent", "Attorney", "Defense Attorney", "Legal Clerk", "Public Defender")
/datum/job/clown
alt_titles = list("Jester", "Comedian")
@@ -39,61 +42,75 @@
alt_titles = list("Performer", "Pantomime", "Mimic")
/datum/job/bartender
alt_titles = list("Mixologist", "Sommelier", "Bar Owner", "Barmaid", "Expediter")
alt_titles = list("Mixologist", "Sommelier", "Bar Owner", "Barmaid", "Expediter", "Barista", "Tavernkeeper")
//Science
/datum/job/rd
alt_titles = list("Research Manager", "Science Administrator")
alt_titles = list("Research Manager", "Science Administrator", "Chief Science Officer", "Lead Researcher", "Science Director", "Head of Science")
/datum/job/scientist
alt_titles = list("Circuitry Designer", "Xenobiologist", "Xenobotanist", "Xenoarcheologist", "Chemical Researcher", "Researcher", "Pyrotechnician")
alt_titles = list("Circuitry Designer", "Xenobiologist", "Xenobotanist", "Xenoarcheologist", "Chemical Researcher", "Researcher", "Pyrotechnician", "Lab Technician", "Theoretical Physicist")
/datum/job/roboticist
alt_titles = list("Biomechanical Engineer", "Mechatronic Engineer", "Mechanic")
alt_titles = list("Biomechanical Engineer", "Mechatronic Engineer", "Mechanic", "Machinist")
/datum/job/junior_scientist
alt_titles = list("Research Intern", "Apprentice Roboticist", "Research Assistant")
//Medical
/datum/job/cmo
alt_titles = list("Medical Director", "Medical Administrator")
alt_titles = list("Medical Director", "Medical Administrator", "Chief Physician", "Head of Medical", "Head Physician")
/datum/job/doctor
alt_titles = list("Nurse", "Surgeon", "Physician", "Paramedic", "Trophologist", "Nutritionist", "Therapist", "Psychiatrist")
alt_titles = list("Nurse", "Surgeon", "Physician", "Trophologist", "Nutritionist", "Therapist", "Psychiatrist")
/datum/job/chemist
alt_titles = list("Pharmacist", "Pharmacologist")
alt_titles = list("Pharmacist", "Pharmacologist", "Pharmacy Technician")
/datum/job/virologist
alt_titles = list("Microbiologist", "Biochemist", "Pathologist")
alt_titles = list("Microbiologist", "Biochemist", "Pathologist", "Epidemiologist")
/datum/job/geneticist
alt_titles = list("Gene Therapist", "Genetics Researcher")
alt_titles = list("Gene Therapist", "Genetics Researcher", "Mutation Researcher", "Gene Tailor")
/datum/job/paramedic
alt_titles = list ("Emergency Medical Technician", "Search and Rescue Technician", "Trauma Team Responder")
/datum/job/psychologist
alt_titles = list("Therapist", "Psychiatrist")
/datum/job/junior_doctor
alt_titles = list("Medical Student", "Fellow", "Trainee Pharmacy Technician", "Trainee Pharmacist", "Junior Pathologist")
//Security
/datum/job/hos
alt_titles = list("Chief of Security", "Security Commander", "Sheriff")
/datum/job/warden
alt_titles = list("Prison Chief", "Armory Manager", "Prison Administrator", "Brig Superintendent")
alt_titles = list("Prison Chief", "Armory Manager", "Prison Administrator", "Brig Superintendent", "Deputy Commissioner of Security")
/datum/job/officer
alt_titles = list("Security Agent", "Probation Officer", "Security Peacekeeper", "Security Guard", "Guardsman", "Security Cadet")
alt_titles = list("Security Agent", "Probation Officer", "Security Peacekeeper", "Security Guard", "Security Constable", "Security Operative", "Guardsman")
/datum/job/detective
alt_titles = list("Forensics Technician", "Private Investigator", "Gumshoe")
/datum/job/junior_officer
alt_titles = list("Security Assistant","Rookie", "Brig Deputy", "Junior Officer")
//Supply
/datum/job/qm
alt_titles = list("Supply Chief")
alt_titles = list("Supply Chief", "Head of Supply", "Logistics Coordinator", "Warehouse Supervisor")
/datum/job/cargo_tech
alt_titles = list("Mail Man", "Mail Woman", "Mailroom Technician", "Deliveries Officer", "Logistics Technician")
alt_titles = list("Mail Man", "Mail Woman", "Mailroom Technician", "Deliveries Officer", "Logistics Technician", "Warehouse Technician")
/datum/job/mining
alt_titles = list("Exotic Ore Miner", "Fauna Hunter", "Explorer", "Digger") //Just because you're a hunter does not excuse you from rock collecting!!!!!!!!!!!!
alt_titles = list("Exotic Ore Miner", "Fauna Hunter", "Explorer", "Digger", "Apprentice Miner") //Just because you're a hunter does not excuse you from rock collecting!!!!!!!!!!!!
//Command
/datum/job/captain
alt_titles = list("Station Director", "Station Commander", "Station Overseer", "Stationmaster", "Commissar")
alt_titles = list("Station Director", "Station Commander", "Station Overseer", "Stationmaster", "Commissar", "Facility Director", "Commanding Officer")
/datum/job/hop
alt_titles = list("Personnel Manager", "Staff Administrator", "Records Administrator")
alt_titles = list("Personnel Manager", "Staff Administrator", "Records Administrator", "Crew Supervisor", "Employment Officer", "Executive Officer")
@@ -23,10 +23,10 @@
access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_HEADS, ACCESS_MINERAL_STOREROOM,
ACCESS_CHEMISTRY, ACCESS_VIROLOGY, ACCESS_CMO, ACCESS_SURGERY, ACCESS_RC_ANNOUNCE,
ACCESS_KEYCARD_AUTH, ACCESS_SEC_DOORS, ACCESS_MAINT_TUNNELS)
ACCESS_KEYCARD_AUTH, ACCESS_SEC_DOORS, ACCESS_MAINT_TUNNELS, ACCESS_PSYCH) //GS13 edit: Psychologist job
minimal_access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_HEADS, ACCESS_MINERAL_STOREROOM,
ACCESS_CHEMISTRY, ACCESS_VIROLOGY, ACCESS_CMO, ACCESS_SURGERY, ACCESS_RC_ANNOUNCE,
ACCESS_KEYCARD_AUTH, ACCESS_SEC_DOORS, ACCESS_MAINT_TUNNELS)
ACCESS_KEYCARD_AUTH, ACCESS_SEC_DOORS, ACCESS_MAINT_TUNNELS, ACCESS_PSYCH) //GS13 edit: Psychologist job
paycheck = PAYCHECK_COMMAND
paycheck_department = ACCOUNT_MED
bounty_types = CIV_JOB_MED
+1 -1
View File
@@ -4,7 +4,7 @@
auto_deadmin_role_flags = DEADMIN_POSITION_SILICON
department_flag = ENGSEC
faction = "Station"
total_positions = 0
total_positions = 1 //GS13 Edit: latejoining borgs
spawn_positions = 3
supervisors = "your laws and the AI" //Nodrak
selection_color = "#ddffdd"
@@ -0,0 +1,79 @@
/datum/job/junior_engineer
title = "Engineering Intern"
flag = JR_ENGINEER
department_head = list("Chief Engineer")
department_flag = ENGSEC
faction = "Station"
total_positions = 2
spawn_positions = 2
supervisors = "the chief engineer, and any other more experienced engineers"
selection_color = "#ff9b3d"
exp_requirements = 60
exp_type = EXP_TYPE_CREW
outfit = /datum/outfit/job/engineer/junior
plasma_outfit = /datum/outfit/plasmaman/engineering
access = list(ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_TECH_STORAGE, ACCESS_MAINT_TUNNELS,
ACCESS_EXTERNAL_AIRLOCKS, ACCESS_CONSTRUCTION, ACCESS_ATMOSPHERICS, ACCESS_TCOMSAT, ACCESS_MINERAL_STOREROOM)
minimal_access = list(ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_TECH_STORAGE, ACCESS_MAINT_TUNNELS,
ACCESS_EXTERNAL_AIRLOCKS, ACCESS_CONSTRUCTION, ACCESS_TCOMSAT, ACCESS_MINERAL_STOREROOM)
paycheck = PAYCHECK_EASY
paycheck_department = ACCOUNT_ENG
bounty_types = CIV_JOB_ENG
departments = DEPARTMENT_BITFLAG_ENGINEERING
starting_modifiers = list(/datum/skill_modifier/job/level/wiring, /datum/skill_modifier/job/affinity/wiring)
display_order = JOB_DISPLAY_ORDER_STATION_ENGINEER
threat = 1
family_heirlooms = list(
/obj/item/clothing/head/hardhat,
/obj/item/screwdriver/brass/family,
/obj/item/wrench/brass/family,
/obj/item/weldingtool/mini, // No brass family variant
/obj/item/crowbar/brass/family,
/obj/item/wirecutters/brass/family
)
mail_goodies = list(
/obj/item/storage/box/lights/mixed = 20,
/obj/item/lightreplacer = 10,
/obj/item/holosign_creator/engineering = 8,
/obj/item/clothing/head/hardhat/red/upgraded = 1
)
/datum/outfit/job/engineer/junior
name = "Engineering Intern"
jobtype = /datum/job/junior_engineer
belt = /obj/item/storage/belt/utility/full/engi
l_pocket = /obj/item/pda/engineering
ears = /obj/item/radio/headset/headset_eng
uniform = /obj/item/clothing/under/rank/engineering/engineer
shoes = /obj/item/clothing/shoes/workboots
head = /obj/item/clothing/head/hardhat
r_pocket = /obj/item/t_scanner
backpack = /obj/item/storage/backpack/industrial
satchel = /obj/item/storage/backpack/satchel/eng
duffelbag = /obj/item/storage/backpack/duffelbag/engineering
box = /obj/item/storage/box/survival/engineer
pda_slot = ITEM_SLOT_LPOCKET
backpack_contents = list(/obj/item/modular_computer/tablet/preset/advanced=1)
/datum/outfit/job/engineer/gloved
name = "Station Engineer (Gloves)"
gloves = /obj/item/clothing/gloves/color/yellow
/datum/outfit/job/engineer/gloved/rig
name = "Station Engineer (Hardsuit)"
mask = /obj/item/clothing/mask/breath
suit = /obj/item/clothing/suit/space/hardsuit/engine
suit_store = /obj/item/tank/internals/oxygen
head = null
internals_slot = ITEM_SLOT_SUITSTORE
@@ -25,13 +25,13 @@
ACCESS_ALL_PERSONAL_LOCKERS, ACCESS_MAINT_TUNNELS, ACCESS_BAR, ACCESS_JANITOR, ACCESS_CONSTRUCTION, ACCESS_MORGUE,
ACCESS_CREMATORIUM, ACCESS_KITCHEN, ACCESS_HYDROPONICS, ACCESS_LAWYER,
ACCESS_THEATRE, ACCESS_CHAPEL_OFFICE, ACCESS_LIBRARY, ACCESS_RESEARCH, ACCESS_VAULT,
ACCESS_HOP, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY)
ACCESS_HOP, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_PSYCH) //GS13 edit: Psychologist job
minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_COURT, ACCESS_WEAPONS,
ACCESS_MEDICAL, ACCESS_ENGINE, ACCESS_CHANGE_IDS, ACCESS_AI_UPLOAD, ACCESS_EVA, ACCESS_HEADS,
ACCESS_ALL_PERSONAL_LOCKERS, ACCESS_MAINT_TUNNELS, ACCESS_BAR, ACCESS_JANITOR, ACCESS_CONSTRUCTION, ACCESS_MORGUE,
ACCESS_CREMATORIUM, ACCESS_KITCHEN, ACCESS_HYDROPONICS, ACCESS_LAWYER,
ACCESS_THEATRE, ACCESS_CHAPEL_OFFICE, ACCESS_LIBRARY, ACCESS_RESEARCH, ACCESS_VAULT,
ACCESS_HOP, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY)
ACCESS_HOP, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_PSYCH) //GS13 edit: Psychologist job
paycheck = PAYCHECK_COMMAND
paycheck_department = ACCOUNT_SRV
bounty_types = CIV_JOB_RANDOM
@@ -0,0 +1,52 @@
/datum/job/junior_doctor
title = "Medical Resident"
flag = JR_DOCTOR
department_head = list("Chief Medical Officer")
department_flag = MEDSCI
faction = "Station"
total_positions = 2
spawn_positions = 2
supervisors = "the chief medical officer, and any other senior medical staff"
selection_color = "#74b5e0"
outfit = /datum/outfit/job/doctor/junior
departments = DEPARTMENT_BITFLAG_MEDICAL
plasma_outfit = /datum/outfit/plasmaman/medical
access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CHEMISTRY, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_VIROLOGY, ACCESS_MINERAL_STOREROOM)
minimal_access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CLONING, ACCESS_MINERAL_STOREROOM)
paycheck = PAYCHECK_EASY
paycheck_department = ACCOUNT_MED
bounty_types = CIV_JOB_MED
display_order = JOB_DISPLAY_ORDER_MEDICAL_DOCTOR
threat = 0.5
starting_modifiers = list(/datum/skill_modifier/job/surgery, /datum/skill_modifier/job/affinity/surgery)
family_heirlooms = list(
/obj/item/storage/firstaid/ancient/heirloom
)
mail_goodies = list(
/obj/effect/spawner/lootdrop/organ_spawner = 5,
// /obj/effect/spawner/lootdrop/memeorgans = 1
)
/datum/outfit/job/doctor/junior
name = "Medical Resident"
jobtype = /datum/job/junior_doctor
belt = /obj/item/pda/medical
ears = /obj/item/radio/headset/headset_med
uniform = /obj/item/clothing/under/rank/medical/doctor
shoes = /obj/item/clothing/shoes/sneakers/white
suit = /obj/item/clothing/suit/toggle/labcoat
l_hand = /obj/item/storage/firstaid/regular
suit_store = /obj/item/flashlight/pen
backpack = /obj/item/storage/backpack/medic
satchel = /obj/item/storage/backpack/satchel/med
duffelbag = /obj/item/storage/backpack/duffelbag/med
chameleon_extras = /obj/item/gun/syringe
@@ -0,0 +1,49 @@
/datum/job/junior_scientist
title = "Research Student"
flag = SCIENTIST
department_head = list("Research Director")
department_flag = MEDSCI
faction = "Station"
total_positions = 2
spawn_positions = 1
supervisors = "the research director, and any other senior science staff"
selection_color = "#9574cd"
exp_requirements = 60
exp_type = EXP_TYPE_CREW
outfit = /datum/outfit/job/scientist/junior
plasma_outfit = /datum/outfit/plasmaman/science
access = list(ACCESS_ROBOTICS, ACCESS_TOX, ACCESS_TOX_STORAGE, ACCESS_RESEARCH, ACCESS_XENOBIOLOGY, ACCESS_MINERAL_STOREROOM, ACCESS_TECH_STORAGE, ACCESS_GENETICS)
minimal_access = list(ACCESS_TOX, ACCESS_TOX_STORAGE, ACCESS_RESEARCH, ACCESS_XENOBIOLOGY, ACCESS_MINERAL_STOREROOM)
paycheck = PAYCHECK_EASY
paycheck_department = ACCOUNT_SCI
bounty_types = CIV_JOB_SCI
departments = DEPARTMENT_BITFLAG_SCIENCE
starting_modifiers = list(/datum/skill_modifier/job/level/wiring/basic)
display_order = JOB_DISPLAY_ORDER_SCIENTIST
threat = 1.2
family_heirlooms = list(
/obj/item/toy/plush/slimeplushie
)
mail_goodies = list(
// /obj/item/raw_anomaly_core/random = 10, no free cores for probies
// /obj/item/disk/tech_disk/spaceloot = 2,
/obj/item/camera_bug = 1
)
/datum/outfit/job/scientist/junior
name = "Research Student"
jobtype = /datum/job/junior_scientist
belt = /obj/item/pda/toxins
ears = /obj/item/radio/headset/headset_sci
uniform = /obj/item/clothing/under/rank/rnd/scientist
shoes = /obj/item/clothing/shoes/sneakers/white
suit = /obj/item/clothing/suit/toggle/labcoat/science
backpack = /obj/item/storage/backpack/science
satchel = /obj/item/storage/backpack/satchel/tox
@@ -0,0 +1,178 @@
/datum/job/junior_officer
title = "Security Cadet"
flag = JR_OFFICER
auto_deadmin_role_flags = DEADMIN_POSITION_SECURITY
department_head = list("Head of Security")
department_flag = ENGSEC
faction = "Station"
total_positions = 5 //Handled in /datum/controller/occupations/proc/setup_officer_positions()
spawn_positions = 5 //Handled in /datum/controller/occupations/proc/setup_officer_positions()
supervisors = "the head of security, and the head of your assigned department (if applicable), and any other senior officer"
selection_color = "#c02f2f"
minimal_player_age = 3
exp_requirements = 300
exp_type = EXP_TYPE_CREW
considered_combat_role = TRUE
outfit = /datum/outfit/job/security/junior
plasma_outfit = /datum/outfit/plasmaman/security
access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_COURT, ACCESS_MAINT_TUNNELS, ACCESS_MORGUE, ACCESS_WEAPONS, ACCESS_ENTER_GENPOP, ACCESS_LEAVE_GENPOP, ACCESS_FORENSICS_LOCKERS, ACCESS_MINERAL_STOREROOM)
minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_COURT, ACCESS_WEAPONS, ACCESS_ENTER_GENPOP, ACCESS_LEAVE_GENPOP, ACCESS_MINERAL_STOREROOM) // See /datum/job/officer/get_access()
paycheck = PAYCHECK_MEDIUM
paycheck_department = ACCOUNT_SEC
bounty_types = CIV_JOB_SEC
departments = DEPARTMENT_BITFLAG_SECURITY
mind_traits = list(TRAIT_LAW_ENFORCEMENT_METABOLISM)
display_order = JOB_DISPLAY_ORDER_SECURITY_OFFICER
blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/nonviolent, /datum/quirk/paraplegic, /datum/quirk/blindness, /datum/quirk/monophobia)
threat = 2
family_heirlooms = list(
/obj/item/book/manual/gato_spacelaw
)
mail_goodies = list(
/obj/item/reagent_containers/food/snacks/donut/caramel = 10,
/obj/item/reagent_containers/food/snacks/donut/matcha = 10,
/obj/item/reagent_containers/food/snacks/donut/blumpkin = 5,
// /obj/item/clothing/mask/whistle = 5,
// /obj/item/melee/baton/boomerang/loaded = 1
)
/datum/job/junior_officer/get_access()
var/list/L = list()
L |= ..() | check_config_for_sec_maint()
return L
/datum/job/junior_officer/after_spawn(mob/living/spawned, client/player_client, latejoin = FALSE)
. = ..()
if(!ishuman(spawned))
return
var/mob/living/carbon/human/H = spawned
// Assign department security
var/department
if(player_client?.prefs)
department = player_client.prefs.prefered_security_department
if(!LAZYLEN(GLOB.available_depts) || department == "None")
return
else if(department in GLOB.available_depts)
LAZYREMOVE(GLOB.available_depts, department)
else
department = pick_n_take(GLOB.available_depts)
var/ears = null
var/accessory = null
var/list/dep_access = null
var/destination = null
var/spawn_point = null
switch(department)
if(SEC_DEPT_SUPPLY)
ears = /obj/item/radio/headset/headset_sec/alt/department/supply
dep_access = list(ACCESS_MAILSORTING, ACCESS_MINING, ACCESS_MINING_STATION, ACCESS_CARGO)
destination = /area/security/checkpoint/supply
spawn_point = locate(/obj/effect/landmark/start/depsec/supply) in GLOB.department_security_spawns
accessory = /obj/item/clothing/accessory/armband/cargo
if(SEC_DEPT_ENGINEERING)
ears = /obj/item/radio/headset/headset_sec/alt/department/engi
dep_access = list(ACCESS_CONSTRUCTION, ACCESS_ENGINE, ACCESS_ATMOSPHERICS)
destination = /area/security/checkpoint/engineering
spawn_point = locate(/obj/effect/landmark/start/depsec/engineering) in GLOB.department_security_spawns
accessory = /obj/item/clothing/accessory/armband/engine
if(SEC_DEPT_MEDICAL)
ears = /obj/item/radio/headset/headset_sec/alt/department/med
dep_access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CLONING)
destination = /area/security/checkpoint/medical
spawn_point = locate(/obj/effect/landmark/start/depsec/medical) in GLOB.department_security_spawns
accessory = /obj/item/clothing/accessory/armband/medblue
if(SEC_DEPT_SCIENCE)
ears = /obj/item/radio/headset/headset_sec/alt/department/sci
dep_access = list(ACCESS_RESEARCH, ACCESS_TOX)
destination = /area/security/checkpoint/science
spawn_point = locate(/obj/effect/landmark/start/depsec/science) in GLOB.department_security_spawns
accessory = /obj/item/clothing/accessory/armband/science
if(accessory)
var/obj/item/clothing/under/U = H.w_uniform
U.attach_accessory(new accessory)
if(ears)
if(H.ears)
qdel(H.ears)
H.equip_to_slot_or_del(new ears(H),ITEM_SLOT_EARS)
var/obj/item/card/id/W = H.wear_id
W.access |= dep_access
var/teleport = 0
if(!CONFIG_GET(flag/sec_start_brig))
if(destination || spawn_point)
teleport = 1
if(teleport)
var/turf/T
if(spawn_point)
T = get_turf(spawn_point)
H.Move(T)
else
var/safety = 0
while(safety < 25)
T = safepick(get_area_turfs(destination))
if(T && !H.Move(T))
safety += 1
continue
else
break
if(department)
to_chat(H, "<b>You have been assigned to [department]!</b>")
else
to_chat(H, "<b>You have not been assigned to any department. Patrol the halls and help where needed.</b>")
/datum/outfit/job/security/junior
name = "Security Cadet"
jobtype = /datum/job/junior_officer
belt = /obj/item/pda/security
ears = /obj/item/radio/headset/headset_sec/alt
uniform = /obj/item/clothing/under/rank/security/officer
gloves = /obj/item/clothing/gloves/color/black
head = /obj/item/clothing/head/helmet/sec
suit = /obj/item/clothing/suit/armor/vest/alt
shoes = /obj/item/clothing/shoes/jackboots/sec
l_pocket = /obj/item/restraints/handcuffs
r_pocket = /obj/item/assembly/flash/handheld
suit_store = /obj/item/gun/energy/e_gun/advtaser
backpack_contents = list(/obj/item/melee/baton/loaded=1)
backpack = /obj/item/storage/backpack/security
satchel = /obj/item/storage/backpack/satchel/sec
duffelbag = /obj/item/storage/backpack/duffelbag/sec
box = /obj/item/storage/box/survival/security
implants = list(/obj/item/implant/mindshield)
chameleon_extras = list(/obj/item/gun/energy/disabler, /obj/item/clothing/glasses/hud/security/sunglasses, /obj/item/clothing/head/helmet)
//The helmet is necessary because /obj/item/clothing/head/helmet/sec is overwritten in the chameleon list by the standard helmet, which has the same name and icon state
/obj/item/radio/headset/headset_sec/alt/department/Initialize(mapload)
. = ..()
wires = new/datum/wires/radio(src)
secure_radio_connections = new
recalculateChannels()
/obj/item/radio/headset/headset_sec/alt/department/engi
keyslot = new /obj/item/encryptionkey/headset_sec
keyslot2 = new /obj/item/encryptionkey/headset_eng
/obj/item/radio/headset/headset_sec/alt/department/supply
keyslot = new /obj/item/encryptionkey/headset_sec
keyslot2 = new /obj/item/encryptionkey/headset_cargo
/obj/item/radio/headset/headset_sec/alt/department/med
keyslot = new /obj/item/encryptionkey/headset_sec
keyslot2 = new /obj/item/encryptionkey/headset_med
/obj/item/radio/headset/headset_sec/alt/department/sci
keyslot = new /obj/item/encryptionkey/headset_sec
keyslot2 = new /obj/item/encryptionkey/headset_sci
+11 -6
View File
@@ -6,11 +6,12 @@ GLOBAL_LIST_INIT(command_positions, list(
"Research Director",
"Chief Medical Officer",
"Quartermaster"))
//GS13 edit: Trainee roles + Psychologist
GLOBAL_LIST_INIT(engineering_positions, list(
"Chief Engineer",
"Station Engineer",
"Atmospheric Technician"))
"Atmospheric Technician",
"Engineering Intern"))
GLOBAL_LIST_INIT(medical_positions, list(
@@ -19,13 +20,16 @@ GLOBAL_LIST_INIT(medical_positions, list(
"Geneticist",
"Virologist",
"Paramedic",
"Chemist"))
"Chemist",
"Psychologist",
"Medical Resident"))
GLOBAL_LIST_INIT(science_positions, list(
"Research Director",
"Scientist",
"Roboticist"))
"Roboticist",
"Research Student"))
GLOBAL_LIST_INIT(supply_positions, list(
"Quartermaster",
@@ -50,8 +54,9 @@ GLOBAL_LIST_INIT(security_positions, list(
"Head of Security",
"Warden",
"Detective",
"Security Officer"))
"Security Officer",
"Security Cadet"))
//End Edits
GLOBAL_LIST_INIT(nonhuman_positions, list(
"AI",
@@ -8,6 +8,7 @@
name = "proto-kinetic crusher"
desc = "An early design of the proto-kinetic accelerator, it is little more than an combination of various mining tools cobbled together, forming a high-tech club. \
While it is an effective mining tool, it did little to aid any but the most skilled and/or suicidal miners against local fauna."
resistance_flags = FIRE_PROOF //GS13: Fireproof miner equipment
force = 0 //You can't hit stuff unless wielded
w_class = WEIGHT_CLASS_BULKY
slot_flags = ITEM_SLOT_BACK
@@ -371,7 +371,7 @@
if(!key)
msg += "<span class='deadsay'>[t_He] [t_is] totally catatonic. The stresses of life in deep-space must have been too much for [t_him]. Any recovery is unlikely.</span>\n"
else if(!client)
msg += "[t_He] [t_has] a blank, absent-minded stare and appears completely unresponsive to anything. [t_He] may snap out of it soon.\n"
msg += "[t_He] [t_has] a blank, absent-minded stare and [t_has] been completely unresponsive to anything for [round(((world.time - lastclienttime) / (1 MINUTES)),1)] minutes. [t_He] may snap out of it soon.\n" //GS13 Edit: SSD timer
if(digitalcamo)
msg += "[t_He] [t_is] moving [t_his] body in an unnatural and blatantly inhuman manner.\n"
@@ -16,7 +16,7 @@
damage_overlay_type = "" //We are too cool for regular damage overlays
species_traits = list(MUTCOLORS, HAIR, HAS_FLESH, HAS_BONE) // i mean i guess they have blood so they can have wounds too
species_language_holder = /datum/language_holder/ethereal
inherent_traits = list(TRAIT_NOHUNGER)
inherent_traits = list() //GS13 Edit: Our electric brethren want to be fat too
sexes = FALSE
toxic_food = NONE
/*
+1
View File
@@ -524,6 +524,7 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put
if(!SSD)
add_status_indicator("ssd")
SSD = TRUE
lastclienttime = world.time //GS13 Editception: SSD timer
else
if(SSD)
remove_status_indicator("ssd")
@@ -92,6 +92,7 @@
// GS13 EDIT
var/SSD = FALSE
var/lastclienttime = 0 //GS13 Editception: SSD timer
var/list/pipes_shown = list()
var/last_played_vent
@@ -39,3 +39,11 @@
gender = FEMALE
gold_core_spawnable = NO_SPAWN
unique_pet = TRUE
/mob/living/simple_animal/pet/fox/fennec //ported from CHOMPstation2
name = "fennec"
desc = "It's an earsy fennec fox."
icon = 'v_CHOMPstation2/icons/mob/fennec.dmi'
icon_state = "fennec"
icon_living = "fennec"
icon_dead = "fennec_dead"
@@ -7,6 +7,7 @@
cell_type = /obj/item/stock_parts/cell/emproof
item_flags = NONE
obj_flags = UNIQUE_RENAME
resistance_flags = FIRE_PROOF //GS13: Fireproof miner equipment
weapon_weight = WEAPON_LIGHT
recoil = 0.5
can_flashlight = 1
@@ -12,6 +12,7 @@
taste_description = "generic food"
taste_mult = 4
value = REAGENT_VALUE_VERY_COMMON
chemical_flags = REAGENT_ORGANIC_PROCESS | REAGENT_BIOFUEL_PROCESS // GS13 edit; lets robots with the biofuel trait process foodchems
var/nutriment_factor = 1 * REAGENTS_METABOLISM
var/max_nutrition = INFINITY
var/quality = 0 //affects mood, typically higher for mixed drinks with more complex recipes
+13 -1
View File
@@ -57,15 +57,27 @@
category = list("Misc","Power Designs")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
// GS13 EDIT
/datum/design/inducer
name = "Inducer"
desc = "The GT-75 Electromagnetic Power Inducer can wirelessly induce electric charge in an object, allowing you to recharge power cells without having to remove them." //GS13 - NT to GT
id = "inducer"
build_type = PROTOLATHE
materials = list(/datum/material/iron = 3000, /datum/material/glass = 1000)
build_path = /obj/item/inducer/dry///sci
category = list("Power Designs")
departmental_flags = /*DEPARTMENTAL_FLAG_SCIENCE | */DEPARTMENTAL_FLAG_ENGINEERING
/datum/design/inducer_sci
name = "Inducer"
desc = "The GT-75 Electromagnetic Power Inducer can wirelessly induce electric charge in an object, allowing you to recharge power cells without having to remove them." //GS13 - NT to GT
id = "inducer_sci"
build_type = PROTOLATHE
materials = list(/datum/material/iron = 3000, /datum/material/glass = 1000)
build_path = /obj/item/inducer/sci
category = list("Power Designs")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
// GS13 END EDIT
/datum/design/inducercombat
name = "Combat Ready Inducer"
@@ -38,7 +38,7 @@
display_name = "Electromagnetic Theory"
description = "Study into usage of frequencies in the electromagnetic spectrum."
prereq_ids = list("base")
design_ids = list("holosign", "holosignsec", "holosignengi", "holosignatmos",/* "holosignfirelock",*/ "inducer", "tray_goggles", "holopad")
design_ids = list("holosign", "holosignsec", "holosignengi", "holosignatmos",/* "holosignfirelock",*/ "inducer", /*GS13 EDIT*/ "inducer_sci", /*GS13 END EDIT*/ "tray_goggles", "holopad")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/emp_adv
+34 -6
View File
@@ -360,6 +360,13 @@
/obj/item/apc_powercord/proc/apc_powerdraw_loop(obj/machinery/power/apc/A, mob/living/carbon/human/H)
H.visible_message("<span class='notice'>[H] inserts a power connector into [A].</span>", "<span class='notice'>You begin to draw power from [A].</span>")
//GS13 EDIT START
var/overcharge = FALSE
if(H.nutrition >= NUTRITION_LEVEL_WELL_FED)
overcharge = TRUE
//GS13 EDIT END
while(do_after(H, 10, target = A))
if(loc != H)
to_chat(H, "<span class='warning'>You must keep your connector out while charging!</span>")
@@ -378,14 +385,28 @@
A.cell.use(A.cell.charge)
to_chat(H, "<span class='notice'>You siphon off as much as [A] can spare.</span>")
break
if(H.nutrition > NUTRITION_LEVEL_WELL_FED)
to_chat(H, "<span class='notice'>You are now fully charged.</span>")
break
//GS13 EDIT START
if(H.nutrition >= NUTRITION_LEVEL_WELL_FED)
if(!overcharge) //GS13 edit
to_chat(H, "<span class='notice'>You are now fully charged.</span>")
break
else
if(H.nutrition >= NUTRITION_LEVEL_FAT)
to_chat(H, "<span class='notice'>You've packed as much extra power into your battery as it can handle.</span>")
break
//GS13 EDIT END
in_use = FALSE
H.visible_message("<span class='notice'>[H] unplugs from [A].</span>", "<span class='notice'>You unplug from [A].</span>")
/obj/item/apc_powercord/proc/cell_powerdraw_loop(obj/item/stock_parts/cell/C, mob/living/carbon/human/H)
H.visible_message("<span class='notice'>[H] connects a power cord to [C]</span>", "<span class='notice'>You begin to draw power from [C].</span>")
//GS13 EDIT START
var/overcharge = FALSE
if(H.nutrition >= NUTRITION_LEVEL_WELL_FED)
overcharge = TRUE
//GS13 EDIT END
while(do_after(H, 10, target = C))
if(loc != H)
to_chat(H, "<span class='warning'>You must keep your connector out while charging!</span>")
@@ -397,8 +418,15 @@
C.use(siphoned_charge)
do_sparks(1, FALSE, C)
H.adjust_nutrition(siphoned_charge / 100) //Less efficient on a pure power basis than APC recharge. Still a very viable way of gaining nutrition. (100 nutrition / base 10k cell)
if(H.nutrition > NUTRITION_LEVEL_WELL_FED)
to_chat(H, "<span class='notice'>You are now fully charged.</span>")
break
// GS13 EDIT START
if(H.nutrition >= NUTRITION_LEVEL_WELL_FED)
if(!overcharge)
to_chat(H, "<span class='notice'>You are now fully charged.</span>")
break
else
if(H.nutrition >= NUTRITION_LEVEL_FAT)
to_chat(H, "<span class='notice'>You've packed as much extra power into your battery as it can handle.</span>")
break
//GS13 EDIT END
in_use = FALSE
H.visible_message("<span class='notice'>[H] disconnects [src] from [C].</span>", "<span class='notice'>You disconnect from [C].</span>")
+6
View File
@@ -29,6 +29,8 @@
/datum/language/signlanguage,
/datum/language/neokanji,
/datum/language/sylvan,
/datum/language/spacerussian, //GS13 Edit: Neo-Russkiya & Siik'Tajr language
/datum/language/tajara,
))
healing_factor = STANDARD_ORGAN_HEALING*5 //Fast!!
decay_factor = STANDARD_ORGAN_DECAY/2
@@ -266,6 +268,8 @@
/datum/language/sylvan,
/datum/language/voltaic,
/datum/language/neokanji,
/datum/language/spacerussian, //GS13 Edit: Neo-Russkiya & Siik'Tajr language
/datum/language/tajara,
))
/obj/item/organ/tongue/ethereal/Initialize(mapload)
@@ -286,6 +290,8 @@
/datum/language/beachbum,
/datum/language/aphasia,
/datum/language/arachnid,
/datum/language/spacerussian, //GS13 Edit: Neo-Russkiya & Siik'Tajr language
/datum/language/tajara,
))
/obj/item/organ/tongue/arachnid/Initialize(mapload)
@@ -251,6 +251,8 @@
var/static/regex/dab_words = regex("dab|mood") //CITADEL CHANGE
var/static/regex/snap_words = regex("snap") //CITADEL CHANGE
var/static/regex/bwoink_words = regex("what the fuck are you doing|bwoink|hey you got a moment?") //CITADEL CHANGE
var/static/regex/gain_words = regex("gain|fatten|widen|get fatter|get fat") //GS13
var/static/regex/inflate_words = regex("blimp|balloon|inflate|bloat") //GS13
var/i = 0
//STUN
@@ -581,6 +583,24 @@
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), get_turf(user), 'sound/effects/adminhelp.ogg', 300, 1), 25)
//END CITADEL CHANGES
//GS13 STUFF
else if((findtext(message, inflate_words)))
cooldown = COOLDOWN_MEME
for(var/mob/living/carbon/gainer in listeners)
if(gainer.check_weight_prefs(FATTENING_TYPE_MAGIC)) //Make sure the listener(s) have magical wg enabled
gainer.fullness += 20 //We want fullness but not too much
to_chat(gainer, "<span class= 'warning'>As the great voice fills your ears, you start to feel more bloated...</span>") //Can only be seen by those with the appropriate pref toggled
//GAIN
else if((findtext(message, gain_words)))
cooldown = COOLDOWN_MEME
for(var/mob/living/carbon/gainer in listeners)
if(gainer.check_weight_prefs(FATTENING_TYPE_MAGIC)) //Make sure the listener(s) have magical wg enabled
gainer.adjust_fatness(250, FATTENING_TYPE_MAGIC) //Nerfed down from 500 in oldcode
to_chat(gainer, "<span class= 'warning'>As the great voice fills your ears, you suddenly grow heavier!</span>") //Can only be seen by those with the appropriate pref toggled
//END GS13 CHANGES
else
cooldown = COOLDOWN_NONE