mirror of
https://github.com/quotefox/Hyper-Station-13.git
synced 2026-08-23 04:36:16 +01:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
@@ -89,6 +89,9 @@
|
||||
/datum/client_colour/glass_colour/yellow
|
||||
colour = "#ffff66"
|
||||
|
||||
/datum/client_colour/glass_colour/lightyellow
|
||||
colour = "#ffffdd"
|
||||
|
||||
/datum/client_colour/glass_colour/red
|
||||
colour = "#ffaaaa"
|
||||
|
||||
@@ -107,6 +110,8 @@
|
||||
/datum/client_colour/glass_colour/gray
|
||||
colour = "#cccccc"
|
||||
|
||||
/datum/client_colour/glass_colour/white
|
||||
colour = "#ffffff" // Just to force an action where there is no shade.
|
||||
|
||||
/datum/client_colour/monochrome
|
||||
colour = list(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0))
|
||||
|
||||
@@ -140,7 +140,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
"cock_length" = 6,
|
||||
"belly_size" = 1,
|
||||
"butt_size" = 1,
|
||||
"cock_girth_ratio" = COCK_GIRTH_RATIO_DEF,
|
||||
"cock_girth_ratio" = 0.25,
|
||||
"cock_color" = "fff",
|
||||
"has_sheath" = FALSE,
|
||||
"sheath_color" = "fff",
|
||||
@@ -434,7 +434,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
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>"
|
||||
//dat += "<br><b>Cycle background:</b><a style='display:block;width:100px' href='?_src_=prefs;preference=cycle_bg;task=input'>[bgstate]</a><BR>"
|
||||
dat += "<br><b>Cycle background:</b><a style='display:block;width:100px' href='?_src_=prefs;preference=cycle_bg;task=input'>[bgstate]</a><BR>"
|
||||
|
||||
var/use_skintones = pref_species.use_skintones
|
||||
if(use_skintones)
|
||||
@@ -845,6 +845,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
dat += "<span style='border: 1px solid #161616; background-color: #[features["cock_color"]];'> </span> <a href='?_src_=prefs;preference=cock_color;task=input'>Change</a><br>"
|
||||
dat += "<b>Penis Shape:</b> <a style='display:block;width:120px' href='?_src_=prefs;preference=cock_shape;task=input'>[features["cock_shape"]]</a>"
|
||||
dat += "<b>Penis Length:</b> <a style='display:block;width:120px' href='?_src_=prefs;preference=cock_length;task=input'>[features["cock_length"]] inch(es)</a>"
|
||||
dat += "<b>Girth Ratio:</b> <a style='display:block;width:50px' href='?_src_=prefs;preference=cock_girth_ratio;task=input'>[features["cock_girth_ratio"]]</a>"
|
||||
dat += "<b>Has Testicles:</b><a style='display:block;width:50px' href='?_src_=prefs;preference=has_balls'>[features["has_balls"] == TRUE ? "Yes" : "No"]</a>"
|
||||
if(features["has_balls"])
|
||||
if(pref_species.use_skintones && features["genitals_use_skintone"] == TRUE)
|
||||
@@ -1255,6 +1256,9 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
if(jobban_isbanned(user, rank))
|
||||
HTML += "<font color=red>[rank]</font></td><td><a href='?_src_=prefs;jobbancheck=[rank]'> BANNED</a></td></tr>"
|
||||
continue
|
||||
if((rank in GLOB.silly_positions) && (!sillyroles))
|
||||
HTML += "<font color=red>[rank]</font></td><td><a href='?_src_=prefs;jobbancheck=[rank]'> WHITELIST</a></td></tr>"
|
||||
continue
|
||||
var/required_playtime_remaining = job.required_playtime_remaining(user.client)
|
||||
if(required_playtime_remaining)
|
||||
HTML += "<font color=red>[rank]</font></td><td><font color=red> \[ [get_exp_format(required_playtime_remaining)] as [job.get_exp_req_type()] \] </font></td></tr>"
|
||||
@@ -2253,6 +2257,11 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
if(new_length)
|
||||
features["cock_length"] = max(min( round(text2num(new_length)), COCK_SIZE_MAX),COCK_SIZE_MIN)
|
||||
|
||||
if("cock_girth_ratio")
|
||||
var/new_girth = input(user, "Penis to girth ratio:\n([COCK_GIRTH_RATIO_MIN]-[COCK_GIRTH_RATIO_MAX]) This will affect your girth examine text in relation to length!\n(Whole numbers become fractions 25->.25, 30->.3)", "Character Preference") as num|null
|
||||
if(new_girth)
|
||||
features["cock_girth_ratio"] = (max(min( round(text2num(new_girth)), 42),15))/100
|
||||
|
||||
if("balls_size")
|
||||
var/new_balls_size = input(user, "Testicle circumference in inches:\n([BALLS_SIZE_MIN]-[BALLS_SIZE_MAX])", "Character Preference") as num|null
|
||||
if(new_balls_size)
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
// You do not need to raise this if you are adding new values that have sane defaults.
|
||||
// Only raise this value when changing the meaning/format/name/layout of an existing value
|
||||
// where you would want the updater procs below to run
|
||||
#define SAVEFILE_VERSION_MAX 24
|
||||
#define SAVEFILE_VERSION_MAX 25
|
||||
|
||||
/*
|
||||
SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Carn
|
||||
@@ -410,6 +410,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
S["feature_cock_color"] >> features["cock_color"]
|
||||
S["feature_cock_length"] >> features["cock_length"]
|
||||
S["feature_cock_girth"] >> features["cock_girth"]
|
||||
S["feature_cock_girth_ratio"] >> features["cock_girth_ratio"]
|
||||
S["feature_has_sheath"] >> features["sheath_color"]
|
||||
//balls features
|
||||
S["feature_has_balls"] >> features["has_balls"]
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
//Service
|
||||
/datum/job/assistant
|
||||
alt_titles = list("Civilian", "Morale Officer", "Stripper", "Off-Duty", "Escort", "Visitor", "Businessman", "Trader", "Entertainer", "Tourist")
|
||||
alt_titles = list("Civilian", "Morale Officer", "Stripper", "Off-Duty", "Escort", "Visitor", "Businessman", "Trader", "Entertainer", "Tourist", "Clerk")
|
||||
|
||||
/datum/job/cook
|
||||
alt_titles = list("Cook", "Culinary Artist", "Butcher", "Chef de partie", "Poissonier")
|
||||
@@ -23,7 +23,7 @@
|
||||
alt_titles = list("Gardener", "Herbalist", "Botanical Researcher", "Hydroponicist", "Farmer", "Beekeeper", "Vintner")
|
||||
|
||||
/datum/job/curator
|
||||
alt_titles = list("Journalist", "Librarian", "Keeper")
|
||||
alt_titles = list("Journalist", "Librarian", "Keeper", "Artist") // Curator has it's own art window section
|
||||
|
||||
/datum/job/chaplain
|
||||
alt_titles = list("Priest", "Priestess", "Bishop", "Prior", "Monk", "Nun", "Counselor")
|
||||
@@ -48,7 +48,7 @@
|
||||
alt_titles = list("Research Manager", "Science Administrator")
|
||||
|
||||
/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", "Toxins Researcher")
|
||||
|
||||
/datum/job/roboticist
|
||||
alt_titles = list("Biomechanical Engineer", "Mechatronic Engineer", "Mechanic")
|
||||
@@ -84,7 +84,7 @@
|
||||
alt_titles = list("Prison Chief", "Armory Manager", "Prison Administrator", "Brig Superintendent")
|
||||
|
||||
/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", "Guardsman", "Security Cadet", "Police Officer")
|
||||
|
||||
/datum/job/detective
|
||||
alt_titles = list("Forensics Technician", "Private Investigator", "Gumshoe")
|
||||
@@ -99,7 +99,7 @@
|
||||
alt_titles = list("Mail Man", "Mail Woman", "Mailroom Technician", "Deliveries Officer", "Logistics 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", "Digger") //Fauna Hunters and Explorers have lost their privileges
|
||||
|
||||
//Command
|
||||
/datum/job/captain
|
||||
|
||||
@@ -60,6 +60,10 @@ GLOBAL_LIST_INIT(nonhuman_positions, list(
|
||||
"Cyborg",
|
||||
ROLE_PAI))
|
||||
|
||||
GLOBAL_LIST_INIT(silly_positions, list(
|
||||
"Clown",
|
||||
"Mime"))
|
||||
|
||||
GLOBAL_LIST_INIT(exp_jobsmap, list(
|
||||
EXP_TYPE_CREW = list("titles" = command_positions | engineering_positions | medical_positions | science_positions | supply_positions | security_positions | civilian_positions | list("AI","Cyborg")), // crew positions
|
||||
EXP_TYPE_COMMAND = list("titles" = command_positions),
|
||||
|
||||
@@ -63,6 +63,15 @@
|
||||
if(HAS_TRAIT(user, TRAIT_SOOTHED_THROAT))
|
||||
return FALSE
|
||||
|
||||
/datum/emote/living/cough/run_emote(mob/user, params)
|
||||
. = ..()
|
||||
if(. && ishuman(user))
|
||||
var/mob/living/carbon/C = user
|
||||
if(user.gender == FEMALE)
|
||||
playsound(C, pick('hyperstation/sound/voice/emotes/female_cough1.ogg', 'hyperstation/sound/voice/emotes/female_cough2.ogg', 'hyperstation/sound/voice/emotes/female_cough3.ogg', 'hyperstation/sound/voice/emotes/female_cough4.ogg', 'hyperstation/sound/voice/emotes/female_cough5.ogg', 'hyperstation/sound/voice/emotes/female_cough6.ogg'), 50, 1)
|
||||
else
|
||||
playsound(C, pick('hyperstation/sound/voice/emotes/male_cough1.ogg', 'hyperstation/sound/voice/emotes/male_cough2.ogg', 'hyperstation/sound/voice/emotes/male_cough3.ogg', 'hyperstation/sound/voice/emotes/male_cough4.ogg'), 50, 1)
|
||||
|
||||
/datum/emote/living/dance
|
||||
key = "dance"
|
||||
key_third_person = "dances"
|
||||
@@ -151,6 +160,15 @@
|
||||
emote_type = EMOTE_AUDIBLE
|
||||
stat_allowed = UNCONSCIOUS
|
||||
|
||||
/datum/emote/living/gasp/run_emote(mob/user, params)
|
||||
. = ..()
|
||||
if(. && ishuman(user))
|
||||
var/mob/living/carbon/C = user
|
||||
if(user.gender == FEMALE)
|
||||
playsound(C, pick('hyperstation/sound/voice/emotes/gasp_female1.ogg', 'hyperstation/sound/voice/emotes/gasp_female2.ogg', 'hyperstation/sound/voice/emotes/gasp_female3.ogg', 'hyperstation/sound/voice/emotes/gasp_female4.ogg', 'hyperstation/sound/voice/emotes/gasp_female5.ogg', 'hyperstation/sound/voice/emotes/gasp_female6.ogg', 'hyperstation/sound/voice/emotes/gasp_female7.ogg'), 50, 1)
|
||||
else
|
||||
playsound(C, pick('hyperstation/sound/voice/emotes/gasp_male1.ogg', 'hyperstation/sound/voice/emotes/gasp_male2.ogg', 'hyperstation/sound/voice/emotes/gasp_male3.ogg', 'hyperstation/sound/voice/emotes/gasp_male4.ogg', 'hyperstation/sound/voice/emotes/gasp_male5.ogg', 'hyperstation/sound/voice/emotes/gasp_male6.ogg', 'hyperstation/sound/voice/emotes/gasp_male7.ogg'), 50, 1)
|
||||
|
||||
/datum/emote/living/giggle
|
||||
key = "giggle"
|
||||
key_third_person = "giggles"
|
||||
@@ -158,6 +176,17 @@
|
||||
message_mime = "giggles silently!"
|
||||
emote_type = EMOTE_AUDIBLE
|
||||
|
||||
/datum/emote/living/giggle/run_emote(mob/user, params)
|
||||
. = ..()
|
||||
if(. && ishuman(user))
|
||||
var/mob/living/carbon/C = user
|
||||
if(!C.mind || C.mind.miming)
|
||||
return
|
||||
if(user.gender == FEMALE)
|
||||
playsound(C, pick('hyperstation/sound/voice/emotes/female_giggle1.ogg', 'hyperstation/sound/voice/emotes/female_giggle2.ogg'), 50, 1)
|
||||
else
|
||||
playsound(C, pick('hyperstation/sound/voice/emotes/male_laugh3b.ogg'), 50, 1)
|
||||
|
||||
/datum/emote/living/glare
|
||||
key = "glare"
|
||||
key_third_person = "glares"
|
||||
@@ -222,9 +251,9 @@
|
||||
return
|
||||
if(ishumanbasic(C))
|
||||
if(user.gender == FEMALE)
|
||||
playsound(C, 'sound/voice/human/womanlaugh.ogg', 50, 1)
|
||||
playsound(C, pick('hyperstation/sound/voice/emotes/female_laugh1.ogg', 'hyperstation/sound/voice/emotes/female_laugh2.ogg', 'hyperstation/sound/voice/emotes/female_laugh3.ogg', 'hyperstation/sound/voice/emotes/female_laugh4.ogg'), 50, 1)
|
||||
else
|
||||
playsound(C, pick('sound/voice/human/manlaugh1.ogg', 'sound/voice/human/manlaugh2.ogg'), 50, 1)
|
||||
playsound(C, pick('hyperstation/sound/voice/emotes/male_laugh1.ogg', 'hyperstation/sound/voice/emotes/male_laugh1b.ogg', 'hyperstation/sound/voice/emotes/male_laugh2.ogg', 'hyperstation/sound/voice/emotes/male_laugh2b.ogg',/*'hyperstation/sound/voice/emotes/male_laugh3.ogg',*/'hyperstation/sound/voice/emotes/male_laugh3b.ogg', 'hyperstation/sound/voice/emotes/male_laugh4.ogg'), 50, 1)
|
||||
|
||||
/datum/emote/living/look
|
||||
key = "look"
|
||||
@@ -295,6 +324,18 @@
|
||||
message = "sighs."
|
||||
emote_type = EMOTE_AUDIBLE
|
||||
|
||||
/datum/emote/living/sigh/run_emote(mob/user, params)
|
||||
. = ..()
|
||||
if(. && iscarbon(user))
|
||||
var/mob/living/carbon/C = user
|
||||
if(!C.mind || C.mind.miming)
|
||||
return
|
||||
if(ishumanbasic(C))
|
||||
if(user.gender == FEMALE)
|
||||
playsound(C, pick('hyperstation/sound/voice/emotes/sigh_female.ogg'), 50, 1)
|
||||
else
|
||||
playsound(C, pick('hyperstation/sound/voice/emotes/sigh_male.ogg'), 50, 1)
|
||||
|
||||
/datum/emote/living/sit
|
||||
key = "sit"
|
||||
key_third_person = "sits"
|
||||
@@ -311,6 +352,24 @@
|
||||
message = "sneezes."
|
||||
emote_type = EMOTE_AUDIBLE
|
||||
|
||||
/datum/emote/living/sneeze/can_run_emote(mob/living/user, status_check = TRUE)
|
||||
. = ..()
|
||||
if(. && iscarbon(user))
|
||||
var/mob/living/carbon/C = user
|
||||
return !C.silent
|
||||
|
||||
/datum/emote/living/sneeze/run_emote(mob/user, params)
|
||||
. = ..()
|
||||
if(. && iscarbon(user))
|
||||
var/mob/living/carbon/C = user
|
||||
if(!C.mind || C.mind.miming)//mimes can't sneeze because fuck you that's why
|
||||
return
|
||||
if(ishumanbasic(C))
|
||||
if(user.gender == FEMALE)
|
||||
playsound(C, pick('hyperstation/sound/voice/emotes/sneezef1.ogg', 'hyperstation/sound/voice/emotes/sneezef2.ogg'), 50, 1)
|
||||
else
|
||||
playsound(C, pick('hyperstation/sound/voice/emotes/sneezem1.ogg', 'hyperstation/sound/voice/emotes/sneezem2.ogg'), 50, 1)
|
||||
|
||||
/datum/emote/living/smug
|
||||
key = "smug"
|
||||
key_third_person = "smugs"
|
||||
@@ -322,6 +381,15 @@
|
||||
message = "sniffs."
|
||||
emote_type = EMOTE_AUDIBLE
|
||||
|
||||
/datum/emote/living/sniff/run_emote(mob/user, params)
|
||||
. = ..()
|
||||
if(. && iscarbon(user))
|
||||
var/mob/living/carbon/C = user
|
||||
if(!C.mind || C.mind.miming)
|
||||
return
|
||||
if(ishumanbasic(C))
|
||||
playsound(C, pick('hyperstation/sound/voice/emotes/sniff.ogg'), 50, 1)
|
||||
|
||||
/datum/emote/living/snore
|
||||
key = "snore"
|
||||
key_third_person = "snores"
|
||||
@@ -388,6 +456,18 @@
|
||||
message = "whimpers."
|
||||
message_mime = "appears hurt."
|
||||
|
||||
/datum/emote/living/whimper/run_emote(mob/user, params)
|
||||
. = ..()
|
||||
if(. && iscarbon(user))
|
||||
var/mob/living/carbon/C = user
|
||||
if(!C.mind || C.mind.miming)
|
||||
return
|
||||
if(ishumanbasic(C))
|
||||
if(user.gender == FEMALE)
|
||||
playsound(C, pick('hyperstation/sound/voice/emotes/whimper_female1.ogg', 'hyperstation/sound/voice/emotes/whimper_female2.ogg', 'hyperstation/sound/voice/emotes/whimper_female3.ogg'), 50, 1)
|
||||
else
|
||||
playsound(C, pick('hyperstation/sound/voice/emotes/whimper_male1.ogg', 'hyperstation/sound/voice/emotes/whimper_male2.ogg', 'hyperstation/sound/voice/emotes/whimper_male3.ogg'), 50, 1)
|
||||
|
||||
/datum/emote/living/wsmile
|
||||
key = "wsmile"
|
||||
key_third_person = "wsmiles"
|
||||
@@ -399,6 +479,18 @@
|
||||
message = "yawns."
|
||||
emote_type = EMOTE_AUDIBLE
|
||||
|
||||
/datum/emote/living/yawn/run_emote(mob/user, params)
|
||||
. = ..()
|
||||
if(. && iscarbon(user))
|
||||
var/mob/living/carbon/C = user
|
||||
if(!C.mind || C.mind.miming)
|
||||
return
|
||||
if(ishumanbasic(C))
|
||||
if(user.gender == FEMALE)
|
||||
playsound(C, pick('hyperstation/sound/voice/emotes/female_yawn1.ogg', 'hyperstation/sound/voice/emotes/female_yawn2.ogg', 'hyperstation/sound/voice/emotes/female_yawn3.ogg'), 50, 1)
|
||||
else
|
||||
playsound(C, pick('hyperstation/sound/voice/emotes/male_yawn1.ogg', 'hyperstation/sound/voice/emotes/male_yawn2.ogg'), 50, 1)
|
||||
|
||||
/datum/emote/living/custom
|
||||
key = "me"
|
||||
key_third_person = "custom"
|
||||
@@ -510,3 +602,90 @@
|
||||
to_chat(user, "<span class='notice'>You ready your slapping hand.</span>")
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You're incapable of slapping in your current state.</span>")
|
||||
|
||||
//Carl wuz here
|
||||
/datum/emote/living/tesh_sneeze
|
||||
key = "tesh_sneeze"
|
||||
key_third_person = "sneezes"
|
||||
message = "sneezes."
|
||||
emote_type = EMOTE_AUDIBLE
|
||||
|
||||
/datum/emote/living/tesh_sneeze/can_run_emote(mob/living/user, status_check = TRUE)
|
||||
. = ..()
|
||||
if(. && iscarbon(user))
|
||||
var/mob/living/carbon/C = user
|
||||
return !C.silent
|
||||
|
||||
/datum/emote/living/tesh_sneeze/run_emote(mob/user, params)
|
||||
. = ..()
|
||||
if(. && iscarbon(user))
|
||||
var/mob/living/carbon/C = user
|
||||
if(!C.mind || C.mind.miming)//no cute sneezing for you.
|
||||
return
|
||||
if(ishumanbasic(C))
|
||||
playsound(C, pick('hyperstation/sound/voice/emotes/tesh_sneeze1.ogg', 'hyperstation/sound/voice/emotes/tesh_sneeze1b.ogg'), 50, 1)
|
||||
if(is_species(user, /datum/species/avian))//This is required(related to subtypes), otherwise it doesn't play the noises. Sometimes. Always sometimes. Just how it be.
|
||||
playsound(C, pick('hyperstation/sound/voice/emotes/tesh_sneeze1.ogg', 'hyperstation/sound/voice/emotes/tesh_sneeze1b.ogg'), 50, 1)
|
||||
if(is_species(user, /datum/species/mammal))//Just because the avian subspecies doesn't have proper sprites. Some people can't use it.
|
||||
playsound(C, pick('hyperstation/sound/voice/emotes/tesh_sneeze1.ogg', 'hyperstation/sound/voice/emotes/tesh_sneeze1b.ogg'), 50, 1)
|
||||
|
||||
/datum/emote/living/racc
|
||||
key = "racc_chitter"
|
||||
key_third_person = "chitters"
|
||||
message = "chitters."
|
||||
emote_type = EMOTE_AUDIBLE
|
||||
|
||||
/datum/emote/living/racc/can_run_emote(mob/living/user, status_check = TRUE)
|
||||
. = ..()
|
||||
if(. && iscarbon(user))
|
||||
var/mob/living/carbon/C = user
|
||||
return !C.silent
|
||||
|
||||
/datum/emote/living/racc/run_emote(mob/user, params)
|
||||
. = ..()
|
||||
if(. && iscarbon(user))
|
||||
var/mob/living/carbon/C = user
|
||||
if(!C.mind || C.mind.miming)
|
||||
return
|
||||
if(ishumanbasic(C))
|
||||
playsound(C, pick('hyperstation/sound/voice/emotes/racc_chitter_1.ogg', 'hyperstation/sound/voice/emotes/racc_chitter_2.ogg',\
|
||||
'hyperstation/sound/voice/emotes/racc_chitter_3.ogg', 'hyperstation/sound/voice/emotes/racc_chitter_4.ogg', 'hyperstation/sound/voice/emotes/racc_chitter_5.ogg',\
|
||||
'hyperstation/sound/voice/emotes/racc_chitter_6.ogg', 'hyperstation/sound/voice/emotes/racc_chitter_7.ogg', 'hyperstation/sound/voice/emotes/racc_chitter_8.ogg'), 50, 1)
|
||||
if(is_species(user, /datum/species/mammal))
|
||||
playsound(C, pick('hyperstation/sound/voice/emotes/racc_chitter_1.ogg', 'hyperstation/sound/voice/emotes/racc_chitter_2.ogg',\
|
||||
'hyperstation/sound/voice/emotes/racc_chitter_3.ogg', 'hyperstation/sound/voice/emotes/racc_chitter_4.ogg', 'hyperstation/sound/voice/emotes/racc_chitter_5.ogg',\
|
||||
'hyperstation/sound/voice/emotes/racc_chitter_6.ogg', 'hyperstation/sound/voice/emotes/racc_chitter_7.ogg', 'hyperstation/sound/voice/emotes/racc_chitter_8.ogg'), 50, 1)
|
||||
|
||||
/datum/emote/living/bat
|
||||
key = "bat_chitter"
|
||||
key_third_person = "chitters"
|
||||
message = "chitters."
|
||||
emote_type = EMOTE_AUDIBLE
|
||||
|
||||
/datum/emote/living/bat/can_run_emote(mob/living/user, status_check = TRUE)
|
||||
. = ..()
|
||||
if(. && iscarbon(user))
|
||||
var/mob/living/carbon/C = user
|
||||
return !C.silent
|
||||
|
||||
/datum/emote/living/bat/run_emote(mob/user, params)
|
||||
. = ..()
|
||||
if(. && iscarbon(user))
|
||||
var/mob/living/carbon/C = user
|
||||
if(!C.mind || C.mind.miming)
|
||||
return
|
||||
if(ishumanbasic(C))
|
||||
playsound(C, pick('hyperstation/sound/voice/emotes/bat_c1.ogg', 'hyperstation/sound/voice/emotes/bat_c2.ogg', 'hyperstation/sound/voice/emotes/bat_c3.ogg',\
|
||||
'hyperstation/sound/voice/emotes/bat_c4.ogg', 'hyperstation/sound/voice/emotes/bat_c5.ogg',\
|
||||
'hyperstation/sound/voice/emotes/bat_c6.ogg', 'hyperstation/sound/voice/emotes/bat_c7.ogg', 'hyperstation/sound/voice/emotes/bat_c8.ogg',\
|
||||
'hyperstation/sound/voice/emotes/bat_c9.ogg'), 50, 1)
|
||||
if(is_species(user, /datum/species/mammal))
|
||||
playsound(C, pick('hyperstation/sound/voice/emotes/bat_c1.ogg', 'hyperstation/sound/voice/emotes/bat_c2.ogg', 'hyperstation/sound/voice/emotes/bat_c3.ogg',\
|
||||
'hyperstation/sound/voice/emotes/bat_c4.ogg', 'hyperstation/sound/voice/emotes/bat_c5.ogg',\
|
||||
'hyperstation/sound/voice/emotes/bat_c6.ogg', 'hyperstation/sound/voice/emotes/bat_c7.ogg', 'hyperstation/sound/voice/emotes/bat_c8.ogg',\
|
||||
'hyperstation/sound/voice/emotes/bat_c9.ogg'), 50, 1)
|
||||
if(is_species(user, /datum/species/avian))//this and mammal should be considered the same AAAAAAAAAAAA
|
||||
playsound(C, pick('hyperstation/sound/voice/emotes/bat_c1.ogg', 'hyperstation/sound/voice/emotes/bat_c2.ogg', 'hyperstation/sound/voice/emotes/bat_c3.ogg',\
|
||||
'hyperstation/sound/voice/emotes/bat_c4.ogg', 'hyperstation/sound/voice/emotes/bat_c5.ogg',\
|
||||
'hyperstation/sound/voice/emotes/bat_c6.ogg', 'hyperstation/sound/voice/emotes/bat_c7.ogg', 'hyperstation/sound/voice/emotes/bat_c8.ogg',\
|
||||
'hyperstation/sound/voice/emotes/bat_c9.ogg'), 50, 1)
|
||||
@@ -48,12 +48,15 @@
|
||||
name = "paper- 'Chemical Information'"
|
||||
info = "Known Onboard Toxins:<BR>\n\tGrade A Semi-Liquid Plasma:<BR>\n\t\tHighly poisonous. You cannot sustain concentrations above 15 units.<BR>\n\t\tA gas mask fails to filter plasma after 50 units.<BR>\n\t\tWill attempt to diffuse like a gas.<BR>\n\t\tFiltered by scrubbers.<BR>\n\t\tThere is a bottled version which is very different<BR>\n\t\t\tfrom the version found in canisters!<BR>\n<BR>\n\t\tWARNING: Highly Flammable. Keep away from heat sources<BR>\n\t\texcept in an enclosed fire area!<BR>\n\t\tWARNING: It is a crime to use this without authorization.<BR>\nKnown Onboard Anti-Toxin:<BR>\n\tAnti-Toxin Type 01P: Works against Grade A Plasma.<BR>\n\t\tBest if injected directly into bloodstream.<BR>\n\t\tA full injection is in every regular Med-Kit.<BR>\n\t\tSpecial toxin Kits hold around 7.<BR>\n<BR>\nKnown Onboard Chemicals (other):<BR>\n\tRejuvenation T#001:<BR>\n\t\tEven 1 unit injected directly into the bloodstream<BR>\n\t\t\twill cure unconscious and sleep toxins.<BR>\n\t\tIf administered to a dying patient it will prevent<BR>\n\t\t\tfurther damage for about units*3 seconds.<BR>\n\t\t\tit will not cure them or allow them to be cured.<BR>\n\t\tIt can be administered to a non-dying patient<BR>\n\t\t\tbut the chemicals disappear just as fast.<BR>\n\tMorphine T#054:<BR>\n\t\t5 units will induce precisely 1 minute of sleep.<BR>\n\t\t\tThe effect are cumulative.<BR>\n\t\tWARNING: It is a crime to use this without authorization"
|
||||
|
||||
|
||||
/*
|
||||
* Stations
|
||||
*/
|
||||
//replacing that stupid paper that caused issues because WHY WOULD IT NOT
|
||||
/obj/item/paper/fluff/candle
|
||||
name = "paper- 'Candle'"
|
||||
info = "Charlie, remember to reconnect the gas mix monitor if it's having issues, by the way, if the heat gets too high, don't be afraid to space this part of engineering and use a voidsuit or a hardsuit. There's one in the crates... <br> And remember. When the candle is lit... The burn is good."
|
||||
|
||||
|
||||
/*
|
||||
* Stations
|
||||
*/
|
||||
/////////// CentCom
|
||||
|
||||
/obj/item/paper/fluff/stations/centcom/disk_memo
|
||||
|
||||
@@ -37,30 +37,22 @@ GLOBAL_LIST_INIT(adv_artifact,list( /obj/item/shield/riot/roman=1,
|
||||
))
|
||||
|
||||
GLOBAL_LIST_INIT(ult_artifact,list( /obj/item/nuke_core/supermatter_sliver=1,
|
||||
/obj/item/storage/belt/sabre/rapier=1,
|
||||
/obj/item/guardiancreator=1,
|
||||
/obj/item/flashlight/emp=1,
|
||||
/obj/item/encryptionkey/binary=1,
|
||||
/obj/item/gun/medbeam=1,
|
||||
/obj/item/storage/box/syndie_kit/imp_storage=1,
|
||||
/obj/item/pen/edagger=1,
|
||||
/obj/item/melee/transforming/energy/sword/pirate=1,
|
||||
/obj/item/storage/box/syndie_kit/chameleon=1,
|
||||
/obj/item/clothing/glasses/phantomthief/syndicate=1,
|
||||
/obj/item/organ/brain/alien=1,
|
||||
/obj/item/organ/alien/plasmavessel/large/queen=1,
|
||||
/obj/item/organ/alien/plasmavessel/small=1,
|
||||
/obj/item/melee/baton/stunsword=1,
|
||||
/obj/item/grenade/clusterbuster/cleaner=1,
|
||||
/obj/item/clothing/gloves/combat=1,
|
||||
/obj/item/storage/toolbox/syndicate=1,
|
||||
/obj/item/storage/toolbox/brass/prefilled/ratvar=1,
|
||||
/obj/item/stack/sheet/mineral/abductor=1,
|
||||
/obj/item/clothing/suit/space/hardsuit/syndi=1,
|
||||
/obj/item/gun/ballistic/automatic/pistol/antitank/syndicate=1,
|
||||
/obj/item/survivalcapsule/deluxe=1,
|
||||
/obj/item/dice/d20/fate/one_use=1,
|
||||
/obj/item/healthanalyzer/rad_laser=1,
|
||||
/obj/item/clothing/suit/hooded/cloak/drake=1,
|
||||
/obj/item/crowbar/abductor=1,
|
||||
/obj/item/screwdriver/abductor=1,
|
||||
@@ -75,7 +67,6 @@ GLOBAL_LIST_INIT(ult_artifact,list( /obj/item/nuke_core/supermatter_sliver=1,
|
||||
/obj/item/surgicaldrill/alien=1,
|
||||
/obj/item/cautery/alien=1,
|
||||
/obj/item/compressionkit=1,
|
||||
/obj/item/circuitboard/machine/plantgenes/vault=1,
|
||||
/obj/item/disk/design_disk/golem_shell=1,
|
||||
/obj/item/disk/tech_disk/illegal=1
|
||||
))
|
||||
|
||||
@@ -710,8 +710,8 @@ datum/status_effect/stabilized/blue/on_remove()
|
||||
/datum/status_effect/stabilized/cerulean
|
||||
id = "stabilizedcerulean"
|
||||
colour = "cerulean"
|
||||
var/mob/living/clone
|
||||
|
||||
//var/mob/living/clone
|
||||
/*
|
||||
/datum/status_effect/stabilized/cerulean/on_apply()
|
||||
var/typepath = owner.type
|
||||
clone = new typepath(owner.loc)
|
||||
@@ -743,7 +743,7 @@ datum/status_effect/stabilized/blue/on_remove()
|
||||
clone.visible_message("<span class='warning'>[clone] dissolves into a puddle of goo!</span>")
|
||||
clone.unequip_everything()
|
||||
qdel(clone)
|
||||
|
||||
*/
|
||||
/datum/status_effect/stabilized/pyrite
|
||||
id = "stabilizedpyrite"
|
||||
colour = "pyrite"
|
||||
@@ -869,12 +869,12 @@ datum/status_effect/stabilized/blue/on_remove()
|
||||
id = "stabilizedoil"
|
||||
colour = "oil"
|
||||
examine_text = "<span class='warning'>SUBJECTPRONOUN smells of sulfer and oil!</span>"
|
||||
|
||||
/*
|
||||
/datum/status_effect/stabilized/oil/tick()
|
||||
if(owner.stat == DEAD)
|
||||
explosion(get_turf(owner),1,2,4,flame_range = 5)
|
||||
return ..()
|
||||
|
||||
*/
|
||||
/datum/status_effect/stabilized/black
|
||||
id = "stabilizedblack"
|
||||
colour = "black"
|
||||
|
||||
@@ -239,7 +239,7 @@ Burning extracts:
|
||||
|
||||
/obj/item/slimecross/burning/oil
|
||||
colour = "oil"
|
||||
|
||||
/*
|
||||
/obj/item/slimecross/burning/oil/do_effect(mob/user)
|
||||
user.visible_message("<span class='danger'>[src] begins to shake with rapidly increasing force!</span>")
|
||||
addtimer(CALLBACK(src, .proc/boom), 50)
|
||||
@@ -247,7 +247,7 @@ Burning extracts:
|
||||
/obj/item/slimecross/burning/oil/proc/boom()
|
||||
explosion(get_turf(src), 2, 4, 4) //Same area as normal oils, but increased high-impact values by one each, then decreased light by 2.
|
||||
qdel(src)
|
||||
|
||||
*/
|
||||
/obj/item/slimecross/burning/black
|
||||
colour = "black"
|
||||
|
||||
|
||||
@@ -199,7 +199,7 @@ Charged extracts:
|
||||
|
||||
/obj/item/slimecross/charged/oil
|
||||
colour = "oil"
|
||||
|
||||
/*
|
||||
/obj/item/slimecross/charged/oil/do_effect(mob/user)
|
||||
user.visible_message("<span class='danger'>[src] begins to shake with rapidly increasing force!</span>")
|
||||
addtimer(CALLBACK(src, .proc/boom), 50)
|
||||
@@ -207,7 +207,7 @@ Charged extracts:
|
||||
/obj/item/slimecross/charged/oil/proc/boom()
|
||||
explosion(get_turf(src), 3, 2, 1) //Much smaller effect than normal oils, but devastatingly strong where it does hit.
|
||||
qdel(src)
|
||||
|
||||
*/
|
||||
/obj/item/slimecross/charged/black
|
||||
colour = "black"
|
||||
|
||||
|
||||
@@ -132,9 +132,9 @@ Chilling extracts:
|
||||
|
||||
/obj/item/slimecross/chilling/bluespace
|
||||
colour = "bluespace"
|
||||
var/list/allies = list()
|
||||
var/active = FALSE
|
||||
|
||||
//var/list/allies = list()
|
||||
//var/active = FALSE
|
||||
/*
|
||||
/obj/item/slimecross/chilling/bluespace/afterattack(atom/target, mob/user, proximity)
|
||||
if(!proximity || !isliving(target) || active)
|
||||
return
|
||||
@@ -168,7 +168,7 @@ Chilling extracts:
|
||||
S.interrupted = TRUE
|
||||
M.remove_status_effect(S)
|
||||
..()
|
||||
|
||||
*/
|
||||
/obj/item/slimecross/chilling/sepia
|
||||
colour = "sepia"
|
||||
var/list/allies = list()
|
||||
@@ -262,7 +262,7 @@ Chilling extracts:
|
||||
|
||||
/obj/item/slimecross/chilling/oil
|
||||
colour = "oil"
|
||||
|
||||
/*
|
||||
/obj/item/slimecross/chilling/oil/do_effect(mob/user)
|
||||
user.visible_message("<span class='danger'>[src] begins to shake with muted intensity!</span>")
|
||||
addtimer(CALLBACK(src, .proc/boom), 50)
|
||||
@@ -270,7 +270,7 @@ Chilling extracts:
|
||||
/obj/item/slimecross/chilling/oil/proc/boom()
|
||||
explosion(get_turf(src), -1, -1, 10, 0) //Large radius, but mostly light damage, and no flash.
|
||||
qdel(src)
|
||||
|
||||
*/
|
||||
/obj/item/slimecross/chilling/black
|
||||
colour = "black"
|
||||
|
||||
|
||||
@@ -39,6 +39,8 @@
|
||||
/obj/item/clothing/under/scratch/skirt = 2,
|
||||
/obj/item/clothing/under/gimmick/rank/captain/suit/skirt = 2,
|
||||
/obj/item/clothing/under/gimmick/rank/head_of_personnel/suit/skirt = 2,
|
||||
/obj/item/clothing/neck/cloak/polychromic/ = 5,
|
||||
/obj/item/clothing/neck/cloak/polychromic/half = 5,
|
||||
/obj/item/clothing/neck/tie/blue = 3,
|
||||
/obj/item/clothing/neck/tie/red = 3,
|
||||
/obj/item/clothing/neck/tie/black = 3,
|
||||
|
||||
Reference in New Issue
Block a user