mirror of
https://github.com/KabKebab/GS13.git
synced 2026-02-09 23:27:37 +00:00
Reapply "Merge branch 'master' into trash-eat-Mk2"
This reverts commit d638582401.
This commit is contained in:
@@ -893,6 +893,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
dat += "<a style='display:block;width:50px' href='?_src_=prefs;preference=balls_fluid;task=input'>Femcum</a>"
|
||||
if(/datum/reagent/consumable/alienhoney)
|
||||
dat += "<a style='display:block;width:50px' href='?_src_=prefs;preference=balls_fluid;task=input'>Honey</a>"
|
||||
if(/datum/reagent/consumable/nutriment)
|
||||
dat += "<a style='display:block;width:50px' href='?_src_=prefs;preference=balls_fluid;task=input'>Nutriment</a>"
|
||||
else
|
||||
dat += "<a style='display:block;width:50px' href='?_src_=prefs;preference=balls_fluid;task=input'>Nothing?</a>"
|
||||
//This else is a safeguard for errors, and if it happened, they wouldn't be able to change this pref,
|
||||
@@ -940,6 +942,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
dat += "<a style='display:block;width:50px' href='?_src_=prefs;preference=breasts_fluid;task=input'>Honey</a>"
|
||||
if(/datum/reagent/consumable/pinkmilk)
|
||||
dat += "<a style='display:block;width:50px' href='?_src_=prefs;preference=breasts_fluid;task=input'>Strawberry Milk</a>"
|
||||
if(/datum/reagent/consumable/nutriment)
|
||||
dat += "<a style='display:block;width:50px' href='?_src_=prefs;preference=breasts_fluid;task=input'>Nutriment</a>"
|
||||
else
|
||||
dat += "<a style='display:block;width:50px' href='?_src_=prefs;preference=breasts_fluid;task=input'>Nothing?</a>"
|
||||
//This else is a safeguard for errors, and if it happened, they wouldn't be able to change this pref,
|
||||
@@ -1055,6 +1059,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
dat += "<b>Weight Gain - Weapons:</b><a href='?_src_=prefs;preference=weight_gain_weapons'>[weight_gain_weapons == TRUE ? "Enabled" : "Disabled"]</a><BR>"
|
||||
dat += "<b>Weight Gain - Magic:</b><a href='?_src_=prefs;preference=weight_gain_magic'>[weight_gain_magic == TRUE ? "Enabled" : "Disabled"]</a><BR>"
|
||||
dat += "<b>Weight Gain - Viruses:</b><a href='?_src_=prefs;preference=weight_gain_viruses'>[weight_gain_viruses == TRUE ? "Enabled" : "Disabled"]</a><BR>"
|
||||
dat += "<b>Extreme Weight Gain:</b><a href='?_src_=prefs;preference=weight_gain_extreme'>[weight_gain_extreme == TRUE ? "Enabled" : "Disabled"]</a><BR>"
|
||||
|
||||
//Add the Hyper stuff below here
|
||||
dat += "<h2>Hyper Preferences</h2>"
|
||||
@@ -2381,6 +2386,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
features["balls_fluid"] = /datum/reagent/consumable/alienhoney
|
||||
if("Strawberry Milk")
|
||||
features["balls_fluid"] = /datum/reagent/consumable/pinkmilk
|
||||
if("Nutriment")
|
||||
features["balls_fluid"] = /datum/reagent/consumable/nutriment
|
||||
|
||||
if("egg_size")
|
||||
var/new_size
|
||||
@@ -2426,6 +2433,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
features["breasts_fluid"] = /datum/reagent/consumable/alienhoney
|
||||
if("Strawberry Milk")
|
||||
features["breasts_fluid"] = /datum/reagent/consumable/pinkmilk
|
||||
if("Nutriment")
|
||||
features["breasts_fluid"] = /datum/reagent/consumable/nutriment
|
||||
|
||||
if("breasts_color")
|
||||
var/new_breasts_color = input(user, "Breast Color:", "Character Preference", "#"+features["breasts_color"]) as color|null
|
||||
@@ -2615,6 +2624,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
weight_gain_magic = !weight_gain_magic
|
||||
if("weight_gain_viruses")
|
||||
weight_gain_viruses = !weight_gain_viruses
|
||||
if("weight_gain_extreme")
|
||||
weight_gain_extreme = !weight_gain_extreme
|
||||
if("noncon_weight_gain")
|
||||
noncon_weight_gain = !noncon_weight_gain
|
||||
if("max_fatness")
|
||||
|
||||
@@ -153,6 +153,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
S["weight_gain_magic"] >> weight_gain_magic
|
||||
S["weight_gain_viruses"] >> weight_gain_viruses
|
||||
S["weight_gain_weapons"] >> weight_gain_weapons
|
||||
S["weight_gain_extreme"] >> weight_gain_extreme
|
||||
S["wg_rate"] >> wg_rate
|
||||
S["wl_rate"] >> wl_rate
|
||||
S["noncon_weight_gain"] >> noncon_weight_gain
|
||||
@@ -292,6 +293,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
WRITE_FILE(S["weight_gain_viruses"], weight_gain_viruses)
|
||||
WRITE_FILE(S["weight_gain_chems"], weight_gain_chems)
|
||||
WRITE_FILE(S["weight_gain_weapons"], weight_gain_weapons)
|
||||
WRITE_FILE(S["weight_gain_extreme"], weight_gain_extreme)
|
||||
WRITE_FILE(S["wg_rate"], wg_rate)
|
||||
WRITE_FILE(S["wl_rate"], wl_rate)
|
||||
WRITE_FILE(S["noncon_weight_gain"], noncon_weight_gain)
|
||||
|
||||
@@ -58,6 +58,23 @@
|
||||
message = "mumbles!"
|
||||
emote_type = EMOTE_AUDIBLE
|
||||
|
||||
/datum/emote/living/carbon/human/scream
|
||||
key = "scream"
|
||||
key_third_person = "screams"
|
||||
message = "screams!"
|
||||
emote_type = EMOTE_AUDIBLE
|
||||
//cooldown = 10 SECONDS
|
||||
vary = TRUE
|
||||
|
||||
/datum/emote/living/carbon/human/scream/get_sound(mob/living/user)
|
||||
if(!ishuman(user))
|
||||
return
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(H.mind?.miming)
|
||||
return
|
||||
if(H.dna?.species) //Stealing yog's implementation, lol
|
||||
return H.dna.species.get_scream_sound(H)
|
||||
|
||||
/datum/emote/living/carbon/human/pale
|
||||
key = "pale"
|
||||
message = "goes pale for a second."
|
||||
@@ -159,36 +176,44 @@
|
||||
var/turf/T = loc
|
||||
T.Entered(src)
|
||||
|
||||
/datum/emote/sound/human
|
||||
mob_type_allowed_typecache = list(/mob/living/carbon/human)
|
||||
emote_type = EMOTE_AUDIBLE
|
||||
/datum/emote/living/carbon/human/robot_tongue/can_run_emote(mob/user, status_check, intentional)
|
||||
//var/obj/item/organ/tongue/T = user.getorganslot("tongue")
|
||||
//return T?.status == ORGAN_ROBOTIC && ..()
|
||||
return ..() //Remove this if we do want to restrict this to synthetic tongues.
|
||||
|
||||
/datum/emote/sound/human/buzz
|
||||
/datum/emote/living/carbon/human/robot_tongue/beep
|
||||
key = "beep"
|
||||
key_third_person = "beeps"
|
||||
message = "beeps."
|
||||
message_param = "beeps at %t."
|
||||
sound = 'sound/machines/twobeep.ogg'
|
||||
|
||||
/datum/emote/living/carbon/human/robot_tongue/buzz
|
||||
key = "buzz"
|
||||
key_third_person = "buzzes"
|
||||
message = "buzzes."
|
||||
message_param = "buzzes at %t."
|
||||
sound = 'sound/machines/buzz-sigh.ogg'
|
||||
|
||||
/datum/emote/sound/human/buzz2
|
||||
/datum/emote/living/carbon/human/robot_tongue/buzz2
|
||||
key = "buzz2"
|
||||
message = "buzzes twice."
|
||||
sound = 'sound/machines/buzz-two.ogg'
|
||||
|
||||
/datum/emote/sound/human/ping
|
||||
/datum/emote/living/carbon/human/robot_tongue/ping
|
||||
key = "ping"
|
||||
key_third_person = "pings"
|
||||
message = "pings."
|
||||
message_param = "pings at %t."
|
||||
sound = 'sound/machines/ping.ogg'
|
||||
|
||||
/datum/emote/sound/human/chime
|
||||
/datum/emote/living/carbon/human/robot_tongue/chime
|
||||
key = "chime"
|
||||
key_third_person = "chimes"
|
||||
message = "chimes."
|
||||
sound = 'sound/machines/chime.ogg'
|
||||
|
||||
/datum/emote/sound/human/squeak
|
||||
/datum/emote/living/carbon/human/robot_tongue/squeak
|
||||
key = "squeak"
|
||||
key_third_person = "squeaks"
|
||||
message = "lets out a squeak."
|
||||
|
||||
@@ -3,91 +3,150 @@
|
||||
GLOBAL_LIST_EMPTY(roundstart_races)
|
||||
|
||||
/datum/species
|
||||
var/id // if the game needs to manually check your race to do something not included in a proc here, it will use this
|
||||
var/limbs_id //this is used if you want to use a different species limb sprites. Mainly used for angels as they look like humans.
|
||||
var/name // this is the fluff name. these will be left generic (such as 'Lizardperson' for the lizard race) so servers can change them to whatever
|
||||
var/default_color = "#FFF" // if alien colors are disabled, this is the color that will be used by that race
|
||||
|
||||
var/sexes = 1 // whether or not the race has sexual characteristics. at the moment this is only 0 for skeletons and shadows
|
||||
/// if the game needs to manually check your race to do something not included in a proc here, it will use this
|
||||
var/id
|
||||
///this is used if you want to use a different species limb sprites. Mainly used for angels as they look like humans.
|
||||
var/limbs_id
|
||||
/// this is the fluff name. these will be left generic (such as 'Lizardperson' for the lizard race) so servers can change them to whatever
|
||||
var/name
|
||||
/// if alien colors are disabled, this is the color that will be used by that race
|
||||
var/default_color = "#FFF"
|
||||
/// whether or not the race has sexual characteristics. at the moment this is only 0 for skeletons and shadows
|
||||
var/sexes = 1
|
||||
|
||||
///A list that contains pixel offsets for various clothing features, if your species is a different shape
|
||||
var/list/offset_features = list(OFFSET_UNIFORM = list(0,0), OFFSET_ID = list(0,0), OFFSET_GLOVES = list(0,0), OFFSET_GLASSES = list(0,0), OFFSET_EARS = list(0,0), OFFSET_SHOES = list(0,0), OFFSET_S_STORE = list(0,0), OFFSET_FACEMASK = list(0,0), OFFSET_HEAD = list(0,0), OFFSET_FACE = list(0,0), OFFSET_BELT = list(0,0), OFFSET_BACK = list(0,0), OFFSET_SUIT = list(0,0), OFFSET_NECK = list(0,0))
|
||||
|
||||
var/hair_color // this allows races to have specific hair colors... if null, it uses the H's hair/facial hair colors. if "mutcolor", it uses the H's mutant_color
|
||||
var/hair_alpha = 255 // the alpha used by the hair. 255 is completely solid, 0 is transparent.
|
||||
/// this allows races to have specific hair colors... if null, it uses the H's hair/facial hair colors. if "mutcolor", it uses the H's mutant_color
|
||||
var/hair_color
|
||||
/// the alpha used by the hair. 255 is completely solid, 0 is transparent.
|
||||
var/hair_alpha = 255
|
||||
var/wing_color
|
||||
|
||||
// GS13: Hair gradients from Skyrat
|
||||
var/grad_style // The gradient style used for the mob's hair.
|
||||
var/grad_color // The gradient color used to color the gradient.
|
||||
/// The gradient style used for the mob's hair.
|
||||
var/grad_style
|
||||
/// The gradient color used to color the gradient.
|
||||
var/grad_color
|
||||
|
||||
var/use_skintones = 0 // does it use skintones or not? (spoiler alert this is only used by humans)
|
||||
var/exotic_blood = "" // If your race wants to bleed something other than bog standard blood, change this to reagent id.
|
||||
var/exotic_bloodtype = "" //If your race uses a non standard bloodtype (A+, O-, AB-, etc)
|
||||
var/meat = /obj/item/reagent_containers/food/snacks/meat/slab/human //What the species drops on gibbing
|
||||
/// does it use skintones or not? (spoiler alert this is only used by humans)
|
||||
var/use_skintones = FALSE
|
||||
/// If your race wants to bleed something other than bog standard blood, change this to reagent id.
|
||||
var/exotic_blood = ""
|
||||
///If your race uses a non standard bloodtype (A+, O-, AB-, etc)
|
||||
var/exotic_bloodtype = ""
|
||||
///What the species drops on gibbing
|
||||
var/meat = /obj/item/reagent_containers/food/snacks/meat/slab/human
|
||||
var/list/gib_types = list(/obj/effect/gibspawner/human, /obj/effect/gibspawner/human/bodypartless)
|
||||
///What, if any, leather will be droppe
|
||||
var/skinned_type
|
||||
///What kind of foods the species loves
|
||||
var/liked_food = NONE
|
||||
///What kind of foods the species dislikes!
|
||||
var/disliked_food = GROSS
|
||||
///What kind of foods cause harm to the species
|
||||
var/toxic_food = TOXIC
|
||||
var/list/no_equip = list() // slots the race can't equip stuff to
|
||||
var/nojumpsuit = 0 // this is sorta... weird. it basically lets you equip stuff that usually needs jumpsuits without one, like belts and pockets and ids
|
||||
var/blacklisted = 0 //Flag to exclude from green slime core species.
|
||||
var/dangerous_existence //A flag for transformation spells that tells them "hey if you turn a person into one of these without preperation, they'll probably die!"
|
||||
var/say_mod = "says" // affects the speech message
|
||||
var/list/default_features = list() // Default mutant bodyparts for this species. Don't forget to set one for every mutant bodypart you allow this species to have.
|
||||
var/list/mutant_bodyparts = list() // Visible CURRENT bodyparts that are unique to a species. DO NOT USE THIS AS A LIST OF ALL POSSIBLE BODYPARTS AS IT WILL FUCK SHIT UP! Changes to this list for non-species specific bodyparts (ie cat ears and tails) should be assigned at organ level if possible. Layer hiding is handled by handle_mutant_bodyparts() below.
|
||||
var/list/mutant_organs = list() //Internal organs that are unique to this race.
|
||||
var/speedmod = 0 // this affects the race's speed. positive numbers make it move slower, negative numbers make it move faster
|
||||
var/armor = 0 // overall defense for the race... or less defense, if it's negative.
|
||||
var/brutemod = 1 // multiplier for brute damage
|
||||
var/burnmod = 1 // multiplier for burn damage
|
||||
var/coldmod = 1 // multiplier for cold damage
|
||||
var/heatmod = 1 // multiplier for heat damage
|
||||
var/stunmod = 1 // multiplier for stun duration
|
||||
var/punchdamagelow = 0 //lowest possible punch damage
|
||||
var/punchdamagehigh = 9 //highest possible punch damage
|
||||
var/punchstunthreshold = 9//damage at which punches from this race will stun //yes it should be to the attacked race but it's not useful that way even if it's logical
|
||||
var/siemens_coeff = 1 //base electrocution coefficient
|
||||
var/damage_overlay_type = "human" //what kind of damage overlays (if any) appear on our species when wounded?
|
||||
var/fixed_mut_color = "" //to use MUTCOLOR with a fixed color that's independent of dna.feature["mcolor"]
|
||||
var/inert_mutation = DWARFISM //special mutation that can be found in the genepool. Dont leave empty or changing species will be a headache
|
||||
var/list/special_step_sounds //Sounds to override barefeet walkng
|
||||
var/grab_sound //Special sound for grabbing
|
||||
/// slots the race can't equip stuff to
|
||||
var/list/no_equip = list()
|
||||
// this is sorta... weird. it basically lets you equip stuff that usually needs jumpsuits without one, like belts and pockets and ids
|
||||
var/nojumpsuit = 0
|
||||
///Flag to exclude from green slime core species.
|
||||
var/blacklisted = 0
|
||||
///A flag for transformation spells that tells them "hey if you turn a person into one of these without preperation, they'll probably die!"
|
||||
var/dangerous_existence
|
||||
/// affects the speech message
|
||||
var/say_mod = "says"
|
||||
/// Default mutant bodyparts for this species. Don't forget to set one for every mutant bodypart you allow this species to have.
|
||||
var/list/default_features = list()
|
||||
/// Visible CURRENT bodyparts that are unique to a species. DO NOT USE THIS AS A LIST OF ALL POSSIBLE BODYPARTS AS IT WILL FUCK SHIT UP! Changes to this list for non-species specific bodyparts (ie cat ears and tails) should be assigned at organ level if possible. Layer hiding is handled by handle_mutant_bodyparts() below.
|
||||
var/list/mutant_bodyparts = list()
|
||||
///Internal organs that are unique to this race.
|
||||
var/list/mutant_organs = list()
|
||||
/// this affects the race's speed. positive numbers make it move slower, negative numbers make it move faster
|
||||
var/speedmod = 0
|
||||
/// overall defense for the race... or less defense, if it's negative.
|
||||
var/armor = 0
|
||||
/// multiplier for brute damage
|
||||
var/brutemod = 1
|
||||
/// multiplier for burn damage
|
||||
var/burnmod = 1
|
||||
/// multiplier for cold damage
|
||||
var/coldmod = 1
|
||||
/// multiplier for heat damage
|
||||
var/heatmod = 1
|
||||
/// multiplier for stun duration
|
||||
var/stunmod = 1
|
||||
///lowest possible punch damage
|
||||
var/punchdamagelow = 0
|
||||
///highest possible punch damage
|
||||
var/punchdamagehigh = 9
|
||||
///damage at which punches from this race will stun //yes it should be to the attacked race but it's not useful that way even if it's logical
|
||||
var/punchstunthreshold = 9
|
||||
///base electrocution coefficient
|
||||
var/siemens_coeff = 1
|
||||
///what kind of damage overlays (if any) appear on our species when wounded?
|
||||
var/damage_overlay_type = "human"
|
||||
///to use MUTCOLOR with a fixed color that's independent of dna.feature["mcolor"]
|
||||
var/fixed_mut_color = ""
|
||||
///special mutation that can be found in the genepool. Dont leave empty or changing species will be a headache
|
||||
var/inert_mutation = DWARFISM
|
||||
///Sounds to override barefeet walkng
|
||||
var/list/special_step_sounds
|
||||
///Special sound for grabbing
|
||||
var/grab_sound
|
||||
/// audio of a species' scream //Stolen from yogs lol
|
||||
var/screamsound
|
||||
|
||||
// species-only traits. Can be found in DNA.dm
|
||||
/// species-only traits. Can be found in DNA.dm
|
||||
var/list/species_traits = list()
|
||||
// generic traits tied to having the species
|
||||
/// generic traits tied to having the species
|
||||
var/list/inherent_traits = list()
|
||||
///biotypes, used for viruses and the like
|
||||
var/list/inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID
|
||||
|
||||
var/attack_verb = "punch" // punch-specific attack verb
|
||||
/// punch-specific attack verb
|
||||
var/attack_verb = "punch"
|
||||
///the melee attack sound
|
||||
var/sound/attack_sound = 'sound/weapons/punch1.ogg'
|
||||
///the swing and miss sound
|
||||
var/sound/miss_sound = 'sound/weapons/punchmiss.ogg'
|
||||
|
||||
var/mob/living/list/ignored_by = list() // list of mobs that will ignore this species
|
||||
/// list of mobs that will ignore this species
|
||||
var/mob/living/list/ignored_by = list()
|
||||
//Breathing!
|
||||
var/obj/item/organ/lungs/mutantlungs = null
|
||||
///what type of gas is breathed
|
||||
var/breathid = "o2"
|
||||
|
||||
///Replaces default brain with a different organ
|
||||
var/obj/item/organ/brain/mutant_brain = /obj/item/organ/brain
|
||||
///Replaces default heart with a different organ
|
||||
var/obj/item/organ/heart/mutant_heart = /obj/item/organ/heart
|
||||
///Replaces default lungs with a different organ
|
||||
var/obj/item/organ/lungs/mutantlungs = null
|
||||
///Replaces default eyes with a different organ
|
||||
var/obj/item/organ/eyes/mutanteyes = /obj/item/organ/eyes
|
||||
///Replaces default ears with a different organ
|
||||
var/obj/item/organ/ears/mutantears = /obj/item/organ/ears
|
||||
var/obj/item/mutanthands
|
||||
///Replaces default tongue with a different organ
|
||||
var/obj/item/organ/tongue/mutanttongue = /obj/item/organ/tongue
|
||||
var/obj/item/organ/tail/mutanttail = null
|
||||
|
||||
///Replaces default liver with a different organ
|
||||
var/obj/item/organ/liver/mutantliver
|
||||
///Replaces default stomach with a different organ
|
||||
var/obj/item/organ/stomach/mutantstomach
|
||||
///Forces a species tail
|
||||
var/obj/item/organ/tail/mutanttail = null
|
||||
///Forces an item into this species' hands. Only an honorary mutantthing because this is not an organ and not loaded in the same way, you've been warned to do your research.
|
||||
var/obj/item/mutanthands
|
||||
var/override_float = FALSE
|
||||
|
||||
//Citadel snowflake
|
||||
var/fixed_mut_color2 = ""
|
||||
var/fixed_mut_color3 = ""
|
||||
var/whitelisted = 0 //Is this species restricted to certain players?
|
||||
var/whitelist = list() //List the ckeys that can use this species, if it's whitelisted.: list("John Doe", "poopface666") Spaces & capitalization can be included or ignored entirely for each key as it checks for both.
|
||||
///Is this species restricted to certain players?
|
||||
var/whitelisted = 0
|
||||
///List the ckeys that can use this species, if it's whitelisted.: list("John Doe", "poopface666") Spaces & capitalization can be included or ignored entirely for each key as it checks for both.
|
||||
var/whitelist = list()
|
||||
|
||||
var/icon_limbs //Overrides the icon used for the limbs of this species. Mainly for downstream, and also because hardcoded icons disgust me. Implemented and maintained as a favor in return for a downstream's implementation of synths.
|
||||
///Overrides the icon used for the limbs of this species. Mainly for downstream, and also because hardcoded icons disgust me. Implemented and maintained as a favor in return for a downstream's implementation of synths.
|
||||
var/icon_limbs
|
||||
|
||||
/// Our default override for typing indicator state
|
||||
var/typing_indicator_state
|
||||
@@ -2451,3 +2510,10 @@ GLOBAL_LIST_EMPTY(roundstart_races)
|
||||
/datum/species/proc/start_wagging_tail(mob/living/carbon/human/H)
|
||||
|
||||
/datum/species/proc/stop_wagging_tail(mob/living/carbon/human/H)
|
||||
|
||||
//Gainstation add: Screamcode I stole from yogs
|
||||
/datum/species/proc/get_scream_sound(mob/living/carbon/human/H)
|
||||
if(islist(screamsound))
|
||||
return pick(screamsound)
|
||||
return screamsound
|
||||
//Gainstation add End
|
||||
|
||||
@@ -13,6 +13,8 @@
|
||||
liked_food = MEAT | RAW | DAIRY
|
||||
disliked_food = FRIED | FRUIT
|
||||
|
||||
screamsound = list('sound/voice/catpeople/scream1.ogg', 'sound/voice/catpeople/scream2.ogg', 'sound/voice/catpeople/scream3.ogg')
|
||||
|
||||
/datum/species/human/felinid/qualifies_for_rank(rank, list/features)
|
||||
return TRUE
|
||||
|
||||
|
||||
@@ -12,6 +12,8 @@
|
||||
liked_food = GROSS
|
||||
exotic_bloodtype = "BUG"
|
||||
|
||||
screamsound = 'modular_citadel/sound/voice/scream_moth.ogg'
|
||||
|
||||
/datum/species/fly/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H)
|
||||
if(chem.type == /datum/reagent/toxin/pestkiller)
|
||||
H.adjustToxLoss(3)
|
||||
|
||||
@@ -10,6 +10,18 @@
|
||||
disliked_food = GROSS | RAW
|
||||
liked_food = JUNKFOOD | FRIED
|
||||
|
||||
var/list/female_screams = list('sound/voice/human/femalescream_1.ogg', 'sound/voice/human/femalescream_2.ogg', 'sound/voice/human/femalescream_3.ogg', 'sound/voice/human/femalescream_4.ogg', 'sound/voice/human/femalescream_5.ogg')
|
||||
var/list/male_screams = list('sound/voice/human/malescream_1.ogg', 'sound/voice/human/malescream_2.ogg', 'sound/voice/human/malescream_3.ogg', 'sound/voice/human/malescream_4.ogg', 'sound/voice/human/malescream_5.ogg')
|
||||
|
||||
/datum/species/human/get_scream_sound(mob/living/carbon/human/H)
|
||||
if(H.gender == FEMALE)
|
||||
return pick(female_screams)
|
||||
else
|
||||
if(prob(1))
|
||||
return sound = pick('modular_citadel/sound/voice/scream_m1.ogg', 'modular_citadel/sound/voice/scream_m2.ogg', \
|
||||
'sound/voice/human/wilhelm_scream.ogg')
|
||||
return pick(male_screams)
|
||||
|
||||
/datum/species/human/qualifies_for_rank(rank, list/features)
|
||||
return TRUE //Pure humans are always allowed in all roles.
|
||||
|
||||
|
||||
@@ -23,6 +23,8 @@
|
||||
liked_food = GROSS | MEAT
|
||||
inert_mutation = FIREBREATH
|
||||
|
||||
screamsound = 'modular_citadel/sound/voice/scream_lizard.ogg'
|
||||
|
||||
/datum/species/lizard/after_equip_job(datum/job/J, mob/living/carbon/human/H)
|
||||
H.grant_language(/datum/language/draconic)
|
||||
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
disliked_food = FRUIT | GROSS
|
||||
toxic_food = MEAT | RAW
|
||||
exotic_bloodtype = "BUG"
|
||||
|
||||
screamsound = 'sound/voice/moth/scream_moth.ogg'
|
||||
|
||||
/datum/species/moth/on_species_gain(mob/living/carbon/C)
|
||||
. = ..()
|
||||
|
||||
@@ -13,6 +13,8 @@
|
||||
damage_overlay_type = ""//let's not show bloody wounds or burns over bones.
|
||||
disliked_food = NONE
|
||||
liked_food = GROSS | MEAT | RAW | DAIRY
|
||||
|
||||
screamsound = 'modular_citadel/sound/voice/scream_skeleton.ogg'
|
||||
|
||||
/datum/species/skeleton/check_roundstart_eligible()
|
||||
if(SSevents.holidays && SSevents.holidays[HALLOWEEN])
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
var/list/initial_inherent_traits = list(TRAIT_VIRUSIMMUNE,TRAIT_NODISMEMBER,TRAIT_NOHUNGER,TRAIT_NOTHIRST,TRAIT_NOLIMBDISABLE,TRAIT_NOBREATH)
|
||||
var/disguise_fail_health = 75 //When their health gets to this level their synthflesh partially falls off
|
||||
var/datum/species/fake_species = null //a species to do most of our work for us, unless we're damaged
|
||||
|
||||
screamsound = list('goon/sound/robot_scream.ogg', 'modular_citadel/sound/voice/scream_silicon.ogg')
|
||||
|
||||
/datum/species/synth/military
|
||||
name = "Military Synth"
|
||||
|
||||
@@ -277,6 +277,12 @@
|
||||
message = "screams."
|
||||
message_mime = "acts out a scream!"
|
||||
emote_type = EMOTE_AUDIBLE
|
||||
mob_type_blacklist_typecache = list(/mob/living/carbon/human) //Humans get specialized scream.
|
||||
|
||||
/datum/emote/living/scream/select_message_type(mob/user, intentional)
|
||||
. = ..()
|
||||
if(!intentional && isanimal(user))
|
||||
return "makes a loud and pained whimper."
|
||||
|
||||
/datum/emote/living/scowl
|
||||
key = "scowl"
|
||||
@@ -525,13 +531,13 @@
|
||||
|
||||
to_chat(user, message)
|
||||
|
||||
/datum/emote/sound/beep
|
||||
/datum/emote/beep
|
||||
key = "beep"
|
||||
key_third_person = "beeps"
|
||||
message = "beeps."
|
||||
message_param = "beeps at %t."
|
||||
sound = 'sound/machines/twobeep.ogg'
|
||||
mob_type_allowed_typecache = list(/mob/living/brain, /mob/living/silicon, /mob/living/carbon/human)
|
||||
mob_type_allowed_typecache = list(/mob/living/brain, /mob/living/silicon)
|
||||
|
||||
/datum/emote/living/circle
|
||||
key = "circle"
|
||||
@@ -561,91 +567,3 @@
|
||||
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
|
||||
//FUCK YOU CARL SUCK MY BALLS YOU WHORE
|
||||
/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)
|
||||
|
||||
@@ -2,59 +2,55 @@
|
||||
mob_type_allowed_typecache = list(/mob/living/silicon)
|
||||
emote_type = EMOTE_AUDIBLE
|
||||
|
||||
/datum/emote/sound/silicon
|
||||
mob_type_allowed_typecache = list(/mob/living/silicon)
|
||||
emote_type = EMOTE_AUDIBLE
|
||||
|
||||
/datum/emote/silicon/boop
|
||||
key = "boop"
|
||||
key_third_person = "boops"
|
||||
message = "boops."
|
||||
|
||||
/datum/emote/sound/silicon/buzz
|
||||
/datum/emote/silicon/buzz
|
||||
key = "buzz"
|
||||
key_third_person = "buzzes"
|
||||
message = "buzzes."
|
||||
message_param = "buzzes at %t."
|
||||
sound = 'sound/machines/buzz-sigh.ogg'
|
||||
|
||||
/datum/emote/sound/silicon/buzz2
|
||||
/datum/emote/silicon/buzz2
|
||||
key = "buzz2"
|
||||
message = "buzzes twice."
|
||||
sound = 'sound/machines/buzz-two.ogg'
|
||||
|
||||
/datum/emote/sound/silicon/chime
|
||||
/datum/emote/silicon/chime
|
||||
key = "chime"
|
||||
key_third_person = "chimes"
|
||||
message = "chimes."
|
||||
sound = 'sound/machines/chime.ogg'
|
||||
|
||||
/datum/emote/sound/silicon/honk
|
||||
/datum/emote/silicon/honk
|
||||
key = "honk"
|
||||
key_third_person = "honks"
|
||||
message = "honks."
|
||||
vary = TRUE
|
||||
sound = 'sound/items/bikehorn.ogg'
|
||||
|
||||
/datum/emote/sound/silicon/ping
|
||||
/datum/emote/silicon/ping
|
||||
key = "ping"
|
||||
key_third_person = "pings"
|
||||
message = "pings."
|
||||
message_param = "pings at %t."
|
||||
sound = 'sound/machines/ping.ogg'
|
||||
|
||||
/datum/emote/sound/silicon/chime
|
||||
/datum/emote/silicon/chime
|
||||
key = "chime"
|
||||
key_third_person = "chimes"
|
||||
message = "chimes."
|
||||
sound = 'sound/machines/chime.ogg'
|
||||
|
||||
/datum/emote/sound/silicon/sad
|
||||
/datum/emote/silicon/sad
|
||||
key = "sad"
|
||||
message = "plays a sad trombone..."
|
||||
sound = 'sound/misc/sadtrombone.ogg'
|
||||
|
||||
/datum/emote/sound/silicon/warn
|
||||
/datum/emote/silicon/warn
|
||||
key = "warn"
|
||||
message = "blares an alarm!"
|
||||
sound = 'sound/machines/warning-buzzer.ogg'
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/datum/emote/sound/gorilla
|
||||
/datum/emote/gorilla
|
||||
mob_type_allowed_typecache = /mob/living/simple_animal/hostile/gorilla
|
||||
mob_type_blacklist_typecache = list()
|
||||
|
||||
/datum/emote/sound/gorilla/ooga
|
||||
/datum/emote/gorilla/ooga
|
||||
key = "ooga"
|
||||
key_third_person = "oogas"
|
||||
message = "oogas."
|
||||
|
||||
@@ -222,6 +222,7 @@
|
||||
glass_desc = "White and nutritious goodness!"
|
||||
pH = 6.5
|
||||
hydration = 3
|
||||
nutriment_factor = 15 * REAGENTS_METABOLISM
|
||||
|
||||
/datum/reagent/consumable/milk/on_mob_life(mob/living/carbon/M)
|
||||
if(HAS_TRAIT(M, TRAIT_CALCIUM_HEALER))
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
"destructive_analyzer", "circuit_imprinter", "experimentor", "rdconsole", "design_disk", "tech_disk", "rdserver", "rdservercontrol", "mechfab",
|
||||
"space_heater", "xlarge_beaker", "sec_rshot", "sec_bshot", "sec_slug", "sec_Islug", "sec_dart", "sec_38", "sec_38lethal",
|
||||
"rglass","plasteel","plastitanium","plasmaglass","plasmareinforcedglass","titaniumglass","plastitaniumglass","chem_pack","medkit_cabinet",
|
||||
"disposable_hypospray","plastic_knife","plastic_fork","plastic_spoon","large_beaker")
|
||||
"disposable_hypospray","plastic_knife","plastic_fork","plastic_spoon","large_beaker", "adipoelectric_generator")
|
||||
|
||||
/datum/techweb_node/mmi
|
||||
id = "mmi"
|
||||
|
||||
@@ -1,9 +1,27 @@
|
||||
/**
|
||||
* Get the organ object from the mob matching the passed in typepath
|
||||
*
|
||||
* Arguments:
|
||||
* * typepath The typepath of the organ to get
|
||||
*/
|
||||
/mob/proc/getorgan(typepath)
|
||||
return
|
||||
|
||||
/**
|
||||
* Get organ objects by zone
|
||||
*
|
||||
* This will return a list of all the organs that are relevant to the zone that is passedin
|
||||
*
|
||||
* Arguments:
|
||||
* * zone [a BODY_ZONE_X define](https://github.com/tgstation/tgstation/blob/master/code/__DEFINES/combat.dm#L187-L200)
|
||||
*/
|
||||
/mob/proc/getorganszone(zone)
|
||||
return
|
||||
|
||||
/**
|
||||
* Get an organ relating to a specific slot
|
||||
*
|
||||
* Arguments:
|
||||
* * slot Slot to get the organ from
|
||||
*/
|
||||
/mob/proc/getorganslot(slot)
|
||||
return
|
||||
|
||||
|
||||
Reference in New Issue
Block a user