diff --git a/GainStation13/code/datums/mutations/fatfang.dm b/GainStation13/code/datums/mutations/fatfang.dm
index 0303b090..16eba2b3 100644
--- a/GainStation13/code/datums/mutations/fatfang.dm
+++ b/GainStation13/code/datums/mutations/fatfang.dm
@@ -8,7 +8,6 @@
power = /obj/effect/proc_holder/spell/targeted/touch/fatfang
instability = 10
energy_coeff = 1
- power_coeff = 1
/obj/effect/proc_holder/spell/targeted/touch/fatfang
name = "The Nibble"
@@ -29,8 +28,7 @@
icon_state = "power_feed"
///How much weight is added?
var/chem_to_add = 5
-
- var/starttime = 0
+ ///What verb is used for the spell?
/obj/item/melee/touch_attack/fatfang/afterattack(atom/target, mob/living/carbon/user, proximity)
if(!proximity || !iscarbon(target) || target == user)
@@ -38,18 +36,10 @@
if(!target || !chem_to_add)
return FALSE
- target.visible_message("[user] nibbles [target]!","[user] nibbles you!")
- if(target == user.pulling && ishuman(user.pulling))
- starttime = world.time
- user.dna.get_mutation(FATFANG).power.charge_max = 600 * GET_MUTATION_ENERGY(user.dna.get_mutation(FATFANG))
- while(starttime + 300 > world.time && in_range(user, target))
- if(do_mob(user, target, 10, 0, 1))
- target.reagents.add_reagent(/datum/reagent/consumable/lipoifier, (chem_to_add * GET_MUTATION_POWER(user.dna.get_mutation(FATFANG))/2))
- target.visible_message("[user] pumps some venom in [target]!","[user] pumps some venom in you!")
- else
- user.dna.get_mutation(FATFANG).power.charge_max = 50 * GET_MUTATION_ENERGY(user.dna.get_mutation(FATFANG))
- target.reagents.add_reagent(/datum/reagent/consumable/lipoifier, chem_to_add * GET_MUTATION_POWER(user.dna.get_mutation(FATFANG)))
+
+ target.reagents.add_reagent(/datum/reagent/consumable/lipoifier, chem_to_add)
+ target.visible_message("[user] nibbles [target]!","[user] nibbles you!")
return ..()
/obj/item/dnainjector/antifang
diff --git a/GainStation13/code/machinery/adipoelectric_generator.dm b/GainStation13/code/machinery/adipoelectric_generator.dm
deleted file mode 100644
index 609e3d96..00000000
--- a/GainStation13/code/machinery/adipoelectric_generator.dm
+++ /dev/null
@@ -1,149 +0,0 @@
-/obj/machinery/power/adipoelectric_generator
- name = "adipoelectric generator"
- desc = "This device uses calorite technology to transform excess blubber into power!"
- icon = 'GainStation13/icons/obj/adipoelectric_transformer.dmi'
- icon_state = "state_off"
- density = FALSE
- anchored = FALSE
- use_power = NO_POWER_USE
- state_open = TRUE
- circuit = /obj/item/circuitboard/machine/power/adipoelectric_generator
- occupant_typecache = list(/mob/living/carbon)
- var/laser_modifier
- var/max_fat
- var/obj/structure/cable/attached
- var/conversion_rate = 10000
- var/emp_timer = 0
- var/active = FALSE
- var/datum/looping_sound/generator/soundloop
-
-/obj/machinery/power/adipoelectric_generator/Initialize()
- . = ..()
- soundloop = new(list(src), active)
- if(anchored)
- connect_to_network()
- update_icon()
-
-/obj/machinery/power/adipoelectric_generator/RefreshParts()
- laser_modifier = 0
- max_fat = 0
- for(var/obj/item/stock_parts/micro_laser/C in component_parts)
- laser_modifier += C.rating
- for(var/obj/item/stock_parts/matter_bin/C in component_parts)
- max_fat += C.rating * 2
-
-/obj/machinery/power/adipoelectric_generator/process()
- if(occupant:fatness_real > 0 && powernet && anchored && (emp_timer < world.time))
- active = TRUE
- add_avail(conversion_rate * laser_modifier * max_fat)
- occupant:adjust_fatness(-max_fat, FATTENING_TYPE_ITEM)
- soundloop.start()
- else
- active = FALSE
- soundloop.stop()
- update_icon()
-
-/obj/machinery/power/adipoelectric_generator/relaymove(mob/user)
- if(user.stat)
- return
- open_machine()
- soundloop.stop()
-
-/obj/machinery/power/adipoelectric_generator/emp_act(severity)
- . = ..()
- if(!(stat & (BROKEN|NOPOWER)))
- emp_timer = world.time + 600
- if(occupant)
- open_machine()
-
-/obj/machinery/power/adipoelectric_generator/attackby(obj/item/P, mob/user, params)
- if(state_open)
- if(default_deconstruction_screwdriver(user, "state_open", "state_off", P))
- return
-
- if(default_pry_open(P))
- return
-
- if(default_deconstruction_crowbar(P))
- return
-
- if(istype(P, /obj/item/wrench) && !active)
- if(!anchored && !isinspace())
- connect_to_network()
- to_chat(user, "You secure the generator to the floor.")
- anchored = TRUE
- dir = SOUTH
- else if(anchored)
- disconnect_from_network()
- to_chat(user, "You unsecure the generator from the floor.")
- anchored = FALSE
- playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1)
- return
-
- return ..()
-
-/obj/machinery/power/adipoelectric_generator/interact(mob/user)
- toggle_open()
- return TRUE
-
-/obj/machinery/power/adipoelectric_generator/proc/toggle_open()
- if(state_open)
- close_machine()
- else
- open_machine()
- soundloop.stop()
- update_icon()
-
-/obj/machinery/power/adipoelectric_generator/open_machine()
- . = ..()
-
-/obj/machinery/power/adipoelectric_generator/close_machine()
- . = ..()
- if(occupant && anchored && !panel_open)
- add_fingerprint(occupant)
- else
- open_machine()
-
-/obj/machinery/power/adipoelectric_generator/update_icon()
- cut_overlays()
- if(panel_open)
- icon_state = "state_open"
- return
- if(occupant)
- var/image/occupant_overlay
- occupant_overlay = image(occupant.icon, occupant.icon_state)
- occupant_overlay.copy_overlays(occupant)
- occupant_overlay.dir = SOUTH
- occupant_overlay.pixel_y = 10
- add_overlay(occupant_overlay)
- if(!active)
- icon_state = "state_off"
- else
- icon_state = "state_on"
- else
- icon_state = "state_off"
-
-/obj/machinery/power/adipoelectric_generator/power_change()
- ..()
- update_icon()
-
-/obj/machinery/power/adipoelectric_generator/Destroy()
- QDEL_NULL(soundloop)
- . = ..()
-
-/obj/item/circuitboard/machine/power/adipoelectric_generator
- name = "Adipoelectric Generator (Machine Board)"
- build_path = /obj/machinery/power/adipoelectric_generator
- req_components = list(
- /obj/item/stock_parts/micro_laser = 5,
- /obj/item/stock_parts/matter_bin = 1,
- /obj/item/stack/cable_coil = 2)
- needs_anchored = FALSE
-
-/datum/design/board/adipoelectric_generator
- name = "Machine Design (Adipoelectric Generator Board)"
- desc = "The circuit board for an Adipoelectric Generator."
- id = "adipoelectric_generator"
- build_path = /obj/item/circuitboard/machine/power/adipoelectric_generator
- category = list("Engineering Machinery")
- departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
diff --git a/GainStation13/code/machinery/adipoelectric_transformer.dm b/GainStation13/code/machinery/adipoelectric_transformer.dm
deleted file mode 100644
index 027b3c04..00000000
--- a/GainStation13/code/machinery/adipoelectric_transformer.dm
+++ /dev/null
@@ -1,150 +0,0 @@
-GLOBAL_LIST_EMPTY(adipoelectric_transformer)
-
-/obj/machinery/adipoelectric_transformer
- name = "adipoelectric transformer"
- desc = "This device uses calorite technology to store excess current in the wire it's placed on into whoever steps on!"
- icon = 'GainStation13/icons/obj/adipoelectric_transformer.dmi'
- icon_state = "state_off"
- density = FALSE
- use_power = NO_POWER_USE
- state_open = TRUE
- circuit = /obj/item/circuitboard/machine/adipoelectric_transformer
- occupant_typecache = list(/mob/living/carbon)
- var/recharge_speed
- var/obj/structure/cable/attached
- var/drain_rate = 1000000
- var/lastprocessed = 0
- var/power_avaliable = 0
- var/conversion_rate = 0.000001
- var/emp_timer = 0
- var/emp_multiplier = 5
-
-/obj/machinery/adipoelectric_transformer/Initialize()
- . = ..()
- update_icon()
-
-/obj/machinery/adipoelectric_transformer/RefreshParts()
- recharge_speed = 0
- for(var/obj/item/stock_parts/capacitor/C in component_parts)
- recharge_speed += C.rating
-
-/obj/machinery/adipoelectric_transformer/process()
- if(!is_operational())
- return
- if(!attached)
- playsound(src, 'sound/machines/buzz-two.ogg', 50)
- return PROCESS_KILL
- var/datum/powernet/PN = attached.powernet
- if(PN)
- power_avaliable = PN.netexcess
- update_icon()
- if(power_avaliable <= 0)
- return
- if(occupant)
- if(power_avaliable > drain_rate)
- lastprocessed = ((power_avaliable - drain_rate) * (conversion_rate / 10)) + 1
- else
- lastprocessed = power_avaliable * conversion_rate
- if(!(world.time >= emp_timer + 600))
- lastprocessed = lastprocessed * emp_multiplier
- occupant:adjust_fatness(lastprocessed * recharge_speed, FATTENING_TYPE_ITEM)
- return 1
-
-/obj/machinery/adipoelectric_transformer/relaymove(mob/user)
- if(user.stat)
- return
- open_machine()
-
-/obj/machinery/adipoelectric_transformer/emp_act(severity)
- . = ..()
- if(!(stat & (BROKEN|NOPOWER)))
- if(occupant)
- emp_timer = world.time //stuck in for 600 ticks, about 60 seconds
-
-/obj/machinery/adipoelectric_transformer/attackby(obj/item/P, mob/user, params)
- if(state_open)
- if(default_deconstruction_screwdriver(user, "state_open", "state_off", P))
- return
-
- if(default_pry_open(P))
- return
-
- if(default_deconstruction_crowbar(P))
- return
- return ..()
-
-/obj/machinery/adipoelectric_transformer/interact(mob/user)
- toggle_open()
- return TRUE
-
-/obj/machinery/adipoelectric_transformer/proc/toggle_open()
- if(state_open)
- close_machine()
- else
- open_machine()
- update_icon()
-
-/obj/machinery/adipoelectric_transformer/open_machine()
- if(!(world.time >= emp_timer + 600))
- return
- . = ..()
- GLOB.adipoelectric_transformer -= src
- STOP_PROCESSING(SSobj, src)
-
-/obj/machinery/adipoelectric_transformer/close_machine()
- . = ..()
- if(LAZYLEN(GLOB.adipoelectric_transformer) < 1 && occupant)
- var/turf/T = loc
- if(isturf(T) && !T.intact)
- attached = locate() in T
- add_fingerprint(occupant)
- GLOB.adipoelectric_transformer += src
- START_PROCESSING(SSobj, src)
- else
- playsound(src, 'sound/machines/buzz-two.ogg', 50)
- open_machine()
-
-/obj/machinery/adipoelectric_transformer/update_icon()
- cut_overlays()
- if(occupant)
- var/image/occupant_overlay
- occupant_overlay = image(occupant.icon, occupant.icon_state)
- occupant_overlay.copy_overlays(occupant)
- occupant_overlay.dir = SOUTH
- occupant_overlay.pixel_y = 10
- add_overlay(occupant_overlay)
- if(power_avaliable <= 0)
- icon_state = "state_off"
- else
- if(!(world.time >= emp_timer + 600))
- icon_state = "state_overdrive"
- add_overlay("particles_overdrive")
- else
- icon_state = "state_on"
- add_overlay("particles_on")
- else
- icon_state = "state_off"
-
-/obj/machinery/adipoelectric_transformer/power_change()
- ..()
- update_icon()
-
-/obj/machinery/adipoelectric_transformer/Destroy()
- . = ..()
- GLOB.adipoelectric_transformer -= src
-
-/obj/item/circuitboard/machine/adipoelectric_transformer
- name = "Adipoelectric Transformer (Machine Board)"
- build_path = /obj/machinery/adipoelectric_transformer
- req_components = list(
- /obj/item/stock_parts/capacitor = 5,
- /obj/item/stack/sheet/glass = 1,
- /obj/item/stack/sheet/mineral/calorite = 1)
-
-/datum/design/board/adipoelectric_transformer
- name = "Machine Design (Adipoelectric Transformer Board)"
- desc = "The circuit board for an Adipoelectric Transformer."
- id = "adipoelectric_transformer"
- build_path = /obj/item/circuitboard/machine/adipoelectric_transformer
- category = list("Research Machinery")
- departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
diff --git a/GainStation13/code/mechanics/fatness.dm b/GainStation13/code/mechanics/fatness.dm
index 5ad4c6ed..29370458 100644
--- a/GainStation13/code/mechanics/fatness.dm
+++ b/GainStation13/code/mechanics/fatness.dm
@@ -52,9 +52,6 @@
else //If it's not being hidden
fatness = fatness_real //Make their current fatness their real fatness
- if(client?.prefs?.weight_gain_extreme)
- xwg_resize()
-
return TRUE
@@ -105,21 +102,11 @@
fatness_hidden = TRUE
fatness_over = hide_amount
fatness = fatness_over //To update a mob's fatness with the new amount to be shown immediately
- if(client?.prefs?.weight_gain_extreme)
- xwg_resize()
return TRUE
/mob/living/carbon/proc/fat_show() //If something that hides fatness is removed or expires, it'll call this method
fatness_hidden = FALSE
fatness = fatness_real //To update a mob's fatness with their real one immediately
- if(client?.prefs?.weight_gain_extreme)
- xwg_resize()
return TRUE
-
-/mob/living/carbon/proc/xwg_resize()
- var/xwg_size = sqrt(fatness/FATNESS_LEVEL_BLOB)
- xwg_size = min(xwg_size, RESIZE_MACRO)
- xwg_size = max(xwg_size, custom_body_size*0.01)
- resize(xwg_size)
diff --git a/GainStation13/code/mechanics/web_weaving.dm b/GainStation13/code/mechanics/web_weaving.dm
index ef2b768c..e6c6904a 100644
--- a/GainStation13/code/mechanics/web_weaving.dm
+++ b/GainStation13/code/mechanics/web_weaving.dm
@@ -5,20 +5,15 @@
gain_text = "You find yourself able to weave webs."
lose_text = "You are no longer able to weave webs."
category = CATEGORY_SEXUAL
- mob_trait = TRAIT_WEB_WEAVER
///What action is linked with this quirk?
- var/datum/action/innate/wrap_target/linked_action1
- var/datum/action/innate/make_web/linked_action2
+ var/datum/action/innate/wrap_target/linked_action
/datum/quirk/web_weaving/post_add()
- linked_action1 = new
- linked_action1.Grant(quirk_holder)
- linked_action2 = new
- linked_action2.Grant(quirk_holder)
+ linked_action = new
+ linked_action.Grant(quirk_holder)
/datum/quirk/web_weaving/remove()
- linked_action1.Remove(quirk_holder)
- linked_action2.Remove(quirk_holder)
+ linked_action.Remove(quirk_holder)
return ..()
/datum/action/innate/wrap_target
@@ -88,20 +83,3 @@
/obj/structure/spider/cocoon/quirk
max_integrity = 20
-
-/datum/action/innate/make_web
- name = "weave"
- desc = "spins a sticky web."
- icon_icon = 'icons/effects/effects.dmi'
- button_icon_state = "stickyweb1"
- background_icon_state = "bg_alien"
-
-/datum/action/innate/make_web/Activate()
- var/turf/T = get_turf(owner)
- owner.visible_message("[owner] begins spinning a web!", "You begin spinning a web.")
- if(!do_after(owner, 10 SECONDS, 1, null, 1))
- owner.visible_message("[owner] fails to spin a web!", "You fail to spin web.")
- return FALSE
- T.ChangeTurf(/obj/structure/spider/stickyweb)
- owner.visible_message("[owner] spin a sticky web!", "You spin a sticky web.")
- return TRUE
diff --git a/GainStation13/code/modules/client/preferences/preferences.dm b/GainStation13/code/modules/client/preferences/preferences.dm
index f8166f8f..f7f591be 100644
--- a/GainStation13/code/modules/client/preferences/preferences.dm
+++ b/GainStation13/code/modules/client/preferences/preferences.dm
@@ -13,8 +13,6 @@
var/weight_gain_magic = FALSE
///Weight gain from viruses
var/weight_gain_viruses = FALSE
- ///Extreme weight gain
- var/weight_gain_extreme = FALSE
///Does the person wish to be involved with non-con weight gain events?
var/noncon_weight_gain = FALSE
diff --git a/GainStation13/code/modules/mob/living/emote_modular.dm b/GainStation13/code/modules/mob/living/emote_modular.dm
deleted file mode 100644
index f8ddbcd3..00000000
--- a/GainStation13/code/modules/mob/living/emote_modular.dm
+++ /dev/null
@@ -1,4 +0,0 @@
-// This is a file for emotes that have been rewritten to be more modular. Such as varying based on species or whathave you. May move this later or something.
-
-
-//I was going to put screams in here but I overhauled it in a different more austistic way
diff --git a/GainStation13/code/modules/mob/living/emote_ported.dm b/GainStation13/code/modules/mob/living/emote_ported.dm
deleted file mode 100644
index cfd5ac8d..00000000
--- a/GainStation13/code/modules/mob/living/emote_ported.dm
+++ /dev/null
@@ -1,230 +0,0 @@
-// This is an emote file for random shit we've ported. Im just copying the style recipes_ported.dm did, yell at me if im wrong later.
-// It said it was lazy but personally I think this might be a better way of organizing otherwise unique content that we're porting
-// for ourselves. -Reo
-
-// I found this tacked onto the bottom of code/modules/mob/living/emote.dm. No //code add: notice or anything. Moving it here,
-// since it seems to all be ported emotes. -Reo
-/*
-//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)
-*/
-//End of the random emotes I found in mob/living
-
-
-//Rewrites of the above start.
-/datum/emote/living/carbon/teshsneeze
- key = "teshsneeze"
- key_third_person = "sneezes"
- message = "sneezes."
- emote_type = EMOTE_AUDIBLE
-
-/datum/emote/living/carbon/teshsneeze/get_sound()
- return pick('GainStation13/sound/voice/teshari/teshsneeze.ogg', 'GainStation13/sound/voice/teshari/teshsneezeb.ogg')
-
-/datum/emote/living/carbon/racc
- key = "racc_chitter"
- key_third_person = "raccchitters"
- message = "chitters."
- emote_type = EMOTE_AUDIBLE
-
-/datum/emote/living/carbon/racc/get_sound()
- return 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')
-
-/datum/emote/living/carbon/bat
- key = "bat_chitter"
- key_third_person = "bat_chitters"
- message = "chitters."
- emote_type = EMOTE_AUDIBLE
-
-/datum/emote/living/carbon/bat/get_sound()
- return 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')
-
-//Rewrites of the above end.
-
-//Ported from Vorestation
-/datum/emote/living/carbon/teshsqueak
- key = "teshsurprise" //Originally, It was just "surprised" but I dont think that's very telling of a teshari emote.
- key_third_person = "teshsurprised"
- message = "chirps in surprise!"
- message_param = "chirps in surprise at %t!"
- emote_type = EMOTE_AUDIBLE
- sound = 'GainStation13/sound/voice/teshari/teshsqueak.ogg' // Copyright CC BY 3.0 InspectorJ (freesound.org) for the source audio.
-
-/datum/emote/living/carbon/teshchirp
- key = "tchirp"
- key_third_person = "tchirps"
- message = "chirps!"
- message_param = "chirps at %t!"
- emote_type = EMOTE_AUDIBLE
- sound = 'GainStation13/sound/voice/teshari/teshchirp.ogg' // Copyright Sampling+ 1.0 Incarnidine (freesound.org) for the source audio.
-
-/datum/emote/living/carbon/teshtrill
- key = "trill"
- key_third_person = "trills"
- message = "trills."
- message_param = "trills at %t."
- emote_type = EMOTE_AUDIBLE
- sound = 'GainStation13/sound/voice/teshari/teshtrill.ogg' // Copyright CC BY-NC 3.0 Arnaud Coutancier (freesound.org) for the source audio.
-
-/datum/emote/living/sneeze/teshsneeze //Replace this with a modular species/tongue based sneeze system later. Also piggybacking on normal sneezes
- key = "teshsneeze"
- key_third_person = "teshsneezes"
- message = "sneezes."
- emote_type = EMOTE_AUDIBLE
-
-/datum/emote/living/sneeze/teshsneeze/get_sound()
-return pick('GainStation13/sound/voice/teshari/teshsneeze.ogg', 'GainStation13/sound/voice/teshari/teshsneezeb.ogg')
-
-/datum/emote/living/cough/teshcough //Same as above. Replace with a modular system later.
- key = "teshcough"
- key_third_person = "teshcoughs"
- message = "coughs."
- emote_type = EMOTE_AUDIBLE
-
-/datum/emote/living/cough/teshcough/get_sound()
- return pick('GainStation13/sound/voice/teshari/teshcougha.ogg', 'GainStation13/sound/voice/teshari/teshcoughb.ogg')
-
-/datum/emote/living/carbon/teshscream
- key = "teshscream"
- key_third_person = "teshscreams"
- message = "screams!"
- message_param = "screams at %t!"
- emote_type = EMOTE_AUDIBLE
- sound = 'GainStation13/sound/voice/teshari/teshscream.ogg'
-
-/datum/emote/living/teppi
- key = "gyoh"
- key_third_person = "gyohs"
- message = "gyohs"
- var/bigsound = list('GainStation13/sound/voice/teppi/gyooh1.ogg', 'GainStation13/sound/voice/teppi/gyooh2.ogg', \
- 'GainStation13/sound/voice/teppi/gyooh3.ogg', 'GainStation13/sound/voice/teppi/gyooh4.ogg', \
- 'GainStation13/sound/voice/teppi/gyooh5.ogg', 'GainStation13/sound/voice/teppi/gyooh6.ogg')
- var/smolsound = list('GainStation13/sound/voice/teppi/whine1.ogg', 'GainStation13/sound/voice/teppi/whine2.ogg')
-
-/datum/emote/living/teppi/run_emote(mob/living/user, params)
- /* //If we port teppi later, Enable this.
- if(istype(user, /mob/living/simple_mob/vore/alienanimals/teppi))
- if(istype(user, /mob/living/simple_mob/vore/alienanimals/teppi/baby))
- sound = pick(smolsound)
- else
- sound = pick(bigsound)
- return ..()
- */
- if(user.size_multipler >= 1.5)
- sound = pick(bigsound)
- else
- sound = pick(smolsound)
- . = ..()
-
-/datum/emote/living/teppi/rumble
- key = "rumble"
- key_third_person = "rumbles"
- message = "rumbles contentedly."
- sound = 'GainStation13/sound/voice/teppi/cute_rumble.ogg'
- var/bigsound = list('GainStation13/sound/voice/teppi/rumble.ogg')
- var/smolsound = list('GainStation13/sound/voice/teppi/cute_rumble.ogg')
-
-//Vorestation ports end.
-
-//Ported from Chompstation
-/datum/emote/living/wawa
- key = "wawa"
- key_third_person = "wawas"
- message = "wawas."
- message_param = "wawas at %t."
- emote_type = EMOTE_AUDIBLE
- sound = 'GainStation13/sound/voice/emotes/wawa.ogg'
-
-//Chompstation ports end.
diff --git a/GainStation13/code/modules/reagents/reagent_containers/barrel_tank.dm b/GainStation13/code/modules/reagents/reagent_containers/barrel_tank.dm
index 11a6ed75..07a3bf74 100644
--- a/GainStation13/code/modules/reagents/reagent_containers/barrel_tank.dm
+++ b/GainStation13/code/modules/reagents/reagent_containers/barrel_tank.dm
@@ -11,7 +11,6 @@
actions_types = list(/datum/action/item_action/toggle_tube)
var/mob/living/carbon/U = null
- var/transfer_amount = 1
amount_per_transfer_from_this = 0
possible_transfer_amounts = list(0)
@@ -61,7 +60,7 @@
if(reagents.total_volume)
var/fraction = min(1/reagents.total_volume, 1)
reagents.reaction(U, INGEST, fraction, FALSE)
- reagents.trans_to(U, transfer_amount, 2)
+ reagents.trans_to(U, 1, 2)
else
to_chat(U, "The barrel is empty!")
U = null
diff --git a/GainStation13/code/modules/research/techweb/nutritech_nodes.dm b/GainStation13/code/modules/research/techweb/nutritech_nodes.dm
index 05ecff57..72931afc 100644
--- a/GainStation13/code/modules/research/techweb/nutritech_nodes.dm
+++ b/GainStation13/code/modules/research/techweb/nutritech_nodes.dm
@@ -5,7 +5,7 @@
display_name = "Nutri-Tech Tools"
description = "Ending world hunger was never made easier!"
prereq_ids = list("biotech", "adv_engi") // add "engineering" if the designs get complicated later on
- design_ids = list("calorite_collar", "ci-nutrimentturbo", "bluespace_belt", "adipoelectric_transformer")
+ design_ids = list("calorite_collar", "ci-nutrimentturbo", "bluespace_belt")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
boost_item_paths = list(/obj/item/gun/energy/fatoray, /obj/item/gun/energy/fatoray/cannon, /obj/item/trash/fatoray_scrap1, /obj/item/trash/fatoray_scrap2)
export_price = 5000
diff --git a/GainStation13/code/obj/items/minor_items.dm b/GainStation13/code/obj/items/minor_items.dm
index 59b41b7f..32afc828 100644
--- a/GainStation13/code/obj/items/minor_items.dm
+++ b/GainStation13/code/obj/items/minor_items.dm
@@ -143,17 +143,3 @@
icon_state = "ballgag"
item_state = "ballgag"
flags_inv = HIDEFACE
-
-/obj/item/service_sign
- name = "service sign"
- desc = "A sign that reads 'closed'"
- icon = 'GainStation13/icons/obj/service_sign.dmi'
- icon_state = "sign_closed"
-
-/obj/item/service_sign/attack_self()
- if(icon_state == "sign_closed")
- icon_state = "sign_open"
- desc = "A sign that reads 'open'"
- else
- icon_state = "sign_closed"
- desc = "A sign that reads 'closed'"
diff --git a/GainStation13/icons/obj/adipoelectric_transformer.dmi b/GainStation13/icons/obj/adipoelectric_transformer.dmi
deleted file mode 100644
index 29c5fe8b..00000000
Binary files a/GainStation13/icons/obj/adipoelectric_transformer.dmi and /dev/null differ
diff --git a/GainStation13/icons/obj/service_sign.dmi b/GainStation13/icons/obj/service_sign.dmi
deleted file mode 100644
index 76b89927..00000000
Binary files a/GainStation13/icons/obj/service_sign.dmi and /dev/null differ
diff --git a/GainStation13/sound/voice/emotes/wawa.ogg b/GainStation13/sound/voice/emotes/wawa.ogg
deleted file mode 100644
index 39539705..00000000
Binary files a/GainStation13/sound/voice/emotes/wawa.ogg and /dev/null differ
diff --git a/GainStation13/sound/voice/teshari/tesharicougha.ogg b/GainStation13/sound/voice/teshari/tesharicougha.ogg
deleted file mode 100644
index cbc85d52..00000000
Binary files a/GainStation13/sound/voice/teshari/tesharicougha.ogg and /dev/null differ
diff --git a/GainStation13/sound/voice/teshari/tesharicoughb.ogg b/GainStation13/sound/voice/teshari/tesharicoughb.ogg
deleted file mode 100644
index b0e0c994..00000000
Binary files a/GainStation13/sound/voice/teshari/tesharicoughb.ogg and /dev/null differ
diff --git a/GainStation13/sound/voice/teshari/teshariscream.ogg b/GainStation13/sound/voice/teshari/teshariscream.ogg
deleted file mode 100644
index 9beb0106..00000000
Binary files a/GainStation13/sound/voice/teshari/teshariscream.ogg and /dev/null differ
diff --git a/GainStation13/sound/voice/teshari/tesharisneeze.ogg b/GainStation13/sound/voice/teshari/tesharisneeze.ogg
deleted file mode 100644
index b344bbcf..00000000
Binary files a/GainStation13/sound/voice/teshari/tesharisneeze.ogg and /dev/null differ
diff --git a/GainStation13/sound/voice/teshari/tesharisneezeb.ogg b/GainStation13/sound/voice/teshari/tesharisneezeb.ogg
deleted file mode 100644
index f7428654..00000000
Binary files a/GainStation13/sound/voice/teshari/tesharisneezeb.ogg and /dev/null differ
diff --git a/GainStation13/sound/voice/teshari/teshchirp.ogg b/GainStation13/sound/voice/teshari/teshchirp.ogg
deleted file mode 100644
index f13c80dd..00000000
Binary files a/GainStation13/sound/voice/teshari/teshchirp.ogg and /dev/null differ
diff --git a/GainStation13/sound/voice/teshari/teshscream.ogg b/GainStation13/sound/voice/teshari/teshscream.ogg
deleted file mode 100644
index 9beb0106..00000000
Binary files a/GainStation13/sound/voice/teshari/teshscream.ogg and /dev/null differ
diff --git a/GainStation13/sound/voice/teshari/teshsqueak.ogg b/GainStation13/sound/voice/teshari/teshsqueak.ogg
deleted file mode 100644
index 41d205ab..00000000
Binary files a/GainStation13/sound/voice/teshari/teshsqueak.ogg and /dev/null differ
diff --git a/GainStation13/sound/voice/teshari/teshtrill.ogg b/GainStation13/sound/voice/teshari/teshtrill.ogg
deleted file mode 100644
index db30e988..00000000
Binary files a/GainStation13/sound/voice/teshari/teshtrill.ogg and /dev/null differ
diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm
index 1778d470..2b3f5934 100644
--- a/code/__DEFINES/traits.dm
+++ b/code/__DEFINES/traits.dm
@@ -203,7 +203,6 @@
#define TRAIT_LIPOLICIDE_TOLERANCE "lipolicide_tolerance"
#define TRAIT_WEAKLEGS "weak_legs"
#define TRAIT_STRONGLEGS "strong_legs"
-#define TRAIT_WEB_WEAVER "web_weaving"
//Hyper
#define TRAIT_MACROPHILE "macrophile" //likes the big
diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm
index c94989ca..b20cc07d 100644
--- a/code/__HELPERS/global_lists.dm
+++ b/code/__HELPERS/global_lists.dm
@@ -55,7 +55,7 @@
init_sprite_accessory_subtypes(/datum/sprite_accessory/vagina, GLOB.vagina_shapes_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/breasts, GLOB.breasts_shapes_list)
GLOB.breasts_size_list = list ("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o") //We need the list to choose from initialized, but it's no longer a sprite_accessory thing.
- GLOB.genital_fluids_list = list ("Milk", "Water", "Semen", "Femcum", "Honey", "Strawberry Milk", "Nutriment")
+ GLOB.genital_fluids_list = list ("Milk", "Water", "Semen", "Femcum", "Honey", "Strawberry Milk")
GLOB.gentlemans_organ_names = list("phallus", "willy", "dick", "prick", "member", "tool", "gentleman's organ", "cock", "wang", "knob", "dong", "joystick", "pecker", "johnson", "weenie", "tadger", "schlong", "thirsty ferret", "baloney pony", "schlanger")
for(var/K in GLOB.breasts_shapes_list)
var/datum/sprite_accessory/breasts/value = GLOB.breasts_shapes_list[K]
diff --git a/code/datums/emotes.dm b/code/datums/emotes.dm
index 0d52ee47..658a9244 100644
--- a/code/datums/emotes.dm
+++ b/code/datums/emotes.dm
@@ -20,9 +20,6 @@
var/list/mob_type_blacklist_typecache //Types that are NOT allowed to use that emote
var/list/mob_type_ignore_stat_typecache
var/stat_allowed = CONSCIOUS
- var/sound //Sound to play when emote is called
- var/vary = FALSE
- var/only_forced_audio = FALSE //can only code call this event instead of the player.
var/static/list/emote_list = list()
var/static/regex/stop_bad_mime = regex(@"says|exclaims|yells|asks")
@@ -63,10 +60,6 @@
user.log_message(msg, LOG_EMOTE)
msg = "[user] " + msg
- var/tmp_sound = get_sound(user)
- if(tmp_sound && (!only_forced_audio || !intentional))
- playsound(user, tmp_sound, 50, vary)
-
for(var/mob/M in GLOB.dead_mob_list)
if(!M.client || isnewplayer(M))
continue
@@ -79,9 +72,6 @@
else
user.visible_message(msg)
-/datum/emote/proc/get_sound(mob/living/user)
- return sound //by default just return this var.
-
/datum/emote/proc/replace_pronoun(mob/user, message)
if(findtext(message, "their"))
message = replacetext(message, "their", user.p_their())
@@ -146,3 +136,13 @@
var/mob/living/L = user
if(HAS_TRAIT(L, TRAIT_EMOTEMUTE))
return FALSE
+
+/datum/emote/sound
+ var/sound //Sound to play when emote is called
+ var/vary = FALSE //used for the honk borg emote
+ mob_type_allowed_typecache = list(/mob/living/brain, /mob/living/silicon)
+
+/datum/emote/sound/run_emote(mob/user, params)
+ . = ..()
+ if(.)
+ playsound(user.loc, sound, 50, vary)
diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm
index 34107c32..58565dc1 100644
--- a/code/game/machinery/doors/airlock_types.dm
+++ b/code/game/machinery/doors/airlock_types.dm
@@ -19,7 +19,6 @@
to_chat(L, "As you attempt to pass through \the [src], your ample curves get wedged in the narrow opening. You find yourself stuck in the [src] frame, struggling to free yourself from the tight squeeze.")
sleep(100)
L.doorstuck = 0
- L.Knockdown(1)
return ..()
else if(L.fatness > 3000)
@@ -29,7 +28,6 @@
to_chat(L, "As you attempt to pass through \the [src], your ample curves get wedged in the narrow opening. You find yourself stuck in the [src] frame, struggling to free yourself from the tight squeeze.")
sleep(55)
L.doorstuck = 0
- L.Knockdown(1)
return ..()
if(rand(1, 5) == 5)
to_chat(L, "With great effort, you manage to squeeze your massive form through \the [src]. It's a tight fit, but you successfully navigate the narrow opening, barely avoiding getting stuck.")
diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm
index e83c3e9a..d53e7250 100644
--- a/code/game/objects/effects/spiders.dm
+++ b/code/game/objects/effects/spiders.dm
@@ -36,14 +36,11 @@
. = ..()
/obj/structure/spider/stickyweb/CanPass(atom/movable/mover, turf/target)
- if(istype(mover, /mob/living/simple_animal/hostile/poison/giant_spider) || HAS_TRAIT(mover, TRAIT_WEB_WEAVER))
+ if(istype(mover, /mob/living/simple_animal/hostile/poison/giant_spider))
return TRUE
else if(isliving(mover))
if(istype(mover.pulledby, /mob/living/simple_animal/hostile/poison/giant_spider))
return TRUE
- if(mover.pulledby)
- if(HAS_TRAIT(mover.pulledby, TRAIT_WEB_WEAVER))
- return TRUE
if(prob(50))
to_chat(mover, "You get stuck in \the [src] for a moment.")
return FALSE
diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm
index cf9a916a..53634aa6 100644
--- a/code/game/objects/items/stacks/sheets/sheet_types.dm
+++ b/code/game/objects/items/stacks/sheets/sheet_types.dm
@@ -483,8 +483,6 @@ GLOBAL_LIST_INIT(cardboard_recipes, list ( \
new/datum/stack_recipe("colored yellow", /obj/item/storage/box/yellow), \
new/datum/stack_recipe("colored pink", /obj/item/storage/box/pink), \
new/datum/stack_recipe("colored purple", /obj/item/storage/box/purple), \
- null, \
- new/datum/stack_recipe("open/closed sign", /obj/item/service_sign), \
))
/obj/item/stack/sheet/cardboard //BubbleWrap //it's cardboard you fuck
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 0f509622..8a06e02b 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -893,8 +893,6 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "Femcum"
if(/datum/reagent/consumable/alienhoney)
dat += "Honey"
- if(/datum/reagent/consumable/nutriment)
- dat += "Nutriment"
else
dat += "Nothing?"
//This else is a safeguard for errors, and if it happened, they wouldn't be able to change this pref,
@@ -942,8 +940,6 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "Honey"
if(/datum/reagent/consumable/pinkmilk)
dat += "Strawberry Milk"
- if(/datum/reagent/consumable/nutriment)
- dat += "Nutriment"
else
dat += "Nothing?"
//This else is a safeguard for errors, and if it happened, they wouldn't be able to change this pref,
@@ -1059,7 +1055,6 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "Weight Gain - Weapons:[weight_gain_weapons == TRUE ? "Enabled" : "Disabled"]
"
dat += "Weight Gain - Magic:[weight_gain_magic == TRUE ? "Enabled" : "Disabled"]
"
dat += "Weight Gain - Viruses:[weight_gain_viruses == TRUE ? "Enabled" : "Disabled"]
"
- dat += "Extreme Weight Gain:[weight_gain_extreme == TRUE ? "Enabled" : "Disabled"]
"
//Add the Hyper stuff below here
dat += "
Hyper Preferences
"
@@ -2386,8 +2381,6 @@ 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
@@ -2433,8 +2426,6 @@ 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
@@ -2624,8 +2615,6 @@ 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")
diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm
index b87e0420..edf5db99 100644
--- a/code/modules/client/preferences_savefile.dm
+++ b/code/modules/client/preferences_savefile.dm
@@ -153,7 +153,6 @@ 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
@@ -293,7 +292,6 @@ 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)
diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm
index bebb54c0..5136edce 100644
--- a/code/modules/mob/living/carbon/human/emote.dm
+++ b/code/modules/mob/living/carbon/human/emote.dm
@@ -58,23 +58,6 @@
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."
@@ -176,44 +159,36 @@
var/turf/T = loc
T.Entered(src)
-/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
+ mob_type_allowed_typecache = list(/mob/living/carbon/human)
+ emote_type = EMOTE_AUDIBLE
-/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
+/datum/emote/sound/human/buzz
key = "buzz"
key_third_person = "buzzes"
message = "buzzes."
message_param = "buzzes at %t."
sound = 'sound/machines/buzz-sigh.ogg'
-/datum/emote/living/carbon/human/robot_tongue/buzz2
+/datum/emote/sound/human/buzz2
key = "buzz2"
message = "buzzes twice."
sound = 'sound/machines/buzz-two.ogg'
-/datum/emote/living/carbon/human/robot_tongue/ping
+/datum/emote/sound/human/ping
key = "ping"
key_third_person = "pings"
message = "pings."
message_param = "pings at %t."
sound = 'sound/machines/ping.ogg'
-/datum/emote/living/carbon/human/robot_tongue/chime
+/datum/emote/sound/human/chime
key = "chime"
key_third_person = "chimes"
message = "chimes."
sound = 'sound/machines/chime.ogg'
-/datum/emote/living/carbon/human/robot_tongue/squeak
+/datum/emote/sound/human/squeak
key = "squeak"
key_third_person = "squeaks"
message = "lets out a squeak."
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index a3297521..1b2cac39 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -3,150 +3,91 @@
GLOBAL_LIST_EMPTY(roundstart_races)
/datum/species
- /// 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
+ 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
- ///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))
- /// 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/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.
var/wing_color
// GS13: Hair gradients from Skyrat
- /// The gradient style used for the mob's hair.
- var/grad_style
- /// The gradient color used to color the gradient.
- var/grad_color
+ var/grad_style // The gradient style used for the mob's hair.
+ var/grad_color // The gradient color used to color the gradient.
- /// 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/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
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
- /// 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
+ 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
- /// 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
- /// punch-specific attack verb
- var/attack_verb = "punch"
- ///the melee attack sound
+
+ var/attack_verb = "punch" // punch-specific attack verb
var/sound/attack_sound = 'sound/weapons/punch1.ogg'
- ///the swing and miss sound
var/sound/miss_sound = 'sound/weapons/punchmiss.ogg'
- /// list of mobs that will ignore this species
- var/mob/living/list/ignored_by = list()
+ var/mob/living/list/ignored_by = list() // list of mobs that will ignore this species
//Breathing!
- ///what type of gas is breathed
+ var/obj/item/organ/lungs/mutantlungs = null
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
- ///Replaces default tongue with a different organ
- var/obj/item/organ/tongue/mutanttongue = /obj/item/organ/tongue
- ///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/obj/item/organ/tongue/mutanttongue = /obj/item/organ/tongue
+ var/obj/item/organ/tail/mutanttail = null
+
+ var/obj/item/organ/liver/mutantliver
+ var/obj/item/organ/stomach/mutantstomach
var/override_float = FALSE
//Citadel snowflake
var/fixed_mut_color2 = ""
var/fixed_mut_color3 = ""
- ///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/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.
- ///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
+ 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.
/// Our default override for typing indicator state
var/typing_indicator_state
@@ -2510,10 +2451,3 @@ 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
diff --git a/code/modules/mob/living/carbon/human/species_types/felinid.dm b/code/modules/mob/living/carbon/human/species_types/felinid.dm
index 880141a5..ab611301 100644
--- a/code/modules/mob/living/carbon/human/species_types/felinid.dm
+++ b/code/modules/mob/living/carbon/human/species_types/felinid.dm
@@ -13,8 +13,6 @@
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
diff --git a/code/modules/mob/living/carbon/human/species_types/flypeople.dm b/code/modules/mob/living/carbon/human/species_types/flypeople.dm
index bfec4d34..6bb04fdf 100644
--- a/code/modules/mob/living/carbon/human/species_types/flypeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/flypeople.dm
@@ -12,8 +12,6 @@
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)
diff --git a/code/modules/mob/living/carbon/human/species_types/humans.dm b/code/modules/mob/living/carbon/human/species_types/humans.dm
index ae2e7260..b4accdb2 100644
--- a/code/modules/mob/living/carbon/human/species_types/humans.dm
+++ b/code/modules/mob/living/carbon/human/species_types/humans.dm
@@ -10,18 +10,6 @@
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.
diff --git a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm
index c3781240..17327b2c 100644
--- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm
@@ -23,8 +23,6 @@
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)
diff --git a/code/modules/mob/living/carbon/human/species_types/mothmen.dm b/code/modules/mob/living/carbon/human/species_types/mothmen.dm
index e194332b..ab6952cc 100644
--- a/code/modules/mob/living/carbon/human/species_types/mothmen.dm
+++ b/code/modules/mob/living/carbon/human/species_types/mothmen.dm
@@ -15,8 +15,6 @@
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)
. = ..()
diff --git a/code/modules/mob/living/carbon/human/species_types/skeletons.dm b/code/modules/mob/living/carbon/human/species_types/skeletons.dm
index 1f209794..ef9c2c11 100644
--- a/code/modules/mob/living/carbon/human/species_types/skeletons.dm
+++ b/code/modules/mob/living/carbon/human/species_types/skeletons.dm
@@ -13,8 +13,6 @@
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])
diff --git a/code/modules/mob/living/carbon/human/species_types/synths.dm b/code/modules/mob/living/carbon/human/species_types/synths.dm
index 453534ac..e7395db3 100644
--- a/code/modules/mob/living/carbon/human/species_types/synths.dm
+++ b/code/modules/mob/living/carbon/human/species_types/synths.dm
@@ -16,8 +16,6 @@
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"
diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm
index f5e79ba7..f6c9b095 100644
--- a/code/modules/mob/living/emote.dm
+++ b/code/modules/mob/living/emote.dm
@@ -277,12 +277,6 @@
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"
@@ -531,13 +525,13 @@
to_chat(user, message)
-/datum/emote/beep
+/datum/emote/sound/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_type_allowed_typecache = list(/mob/living/brain, /mob/living/silicon, /mob/living/carbon/human)
/datum/emote/living/circle
key = "circle"
@@ -567,3 +561,91 @@
to_chat(user, "You ready your slapping hand.")
else
to_chat(user, "You're incapable of slapping in your current state.")
+
+//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)
diff --git a/code/modules/mob/living/silicon/robot/emote.dm b/code/modules/mob/living/silicon/robot/emote.dm
index 9b2eed17..65e1047c 100644
--- a/code/modules/mob/living/silicon/robot/emote.dm
+++ b/code/modules/mob/living/silicon/robot/emote.dm
@@ -2,55 +2,59 @@
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/silicon/buzz
+/datum/emote/sound/silicon/buzz
key = "buzz"
key_third_person = "buzzes"
message = "buzzes."
message_param = "buzzes at %t."
sound = 'sound/machines/buzz-sigh.ogg'
-/datum/emote/silicon/buzz2
+/datum/emote/sound/silicon/buzz2
key = "buzz2"
message = "buzzes twice."
sound = 'sound/machines/buzz-two.ogg'
-/datum/emote/silicon/chime
+/datum/emote/sound/silicon/chime
key = "chime"
key_third_person = "chimes"
message = "chimes."
sound = 'sound/machines/chime.ogg'
-/datum/emote/silicon/honk
+/datum/emote/sound/silicon/honk
key = "honk"
key_third_person = "honks"
message = "honks."
vary = TRUE
sound = 'sound/items/bikehorn.ogg'
-/datum/emote/silicon/ping
+/datum/emote/sound/silicon/ping
key = "ping"
key_third_person = "pings"
message = "pings."
message_param = "pings at %t."
sound = 'sound/machines/ping.ogg'
-/datum/emote/silicon/chime
+/datum/emote/sound/silicon/chime
key = "chime"
key_third_person = "chimes"
message = "chimes."
sound = 'sound/machines/chime.ogg'
-/datum/emote/silicon/sad
+/datum/emote/sound/silicon/sad
key = "sad"
message = "plays a sad trombone..."
sound = 'sound/misc/sadtrombone.ogg'
-/datum/emote/silicon/warn
+/datum/emote/sound/silicon/warn
key = "warn"
message = "blares an alarm!"
sound = 'sound/machines/warning-buzzer.ogg'
diff --git a/code/modules/mob/living/simple_animal/hostile/gorilla/emotes.dm b/code/modules/mob/living/simple_animal/hostile/gorilla/emotes.dm
index d64406a6..100db061 100644
--- a/code/modules/mob/living/simple_animal/hostile/gorilla/emotes.dm
+++ b/code/modules/mob/living/simple_animal/hostile/gorilla/emotes.dm
@@ -1,8 +1,8 @@
-/datum/emote/gorilla
+/datum/emote/sound/gorilla
mob_type_allowed_typecache = /mob/living/simple_animal/hostile/gorilla
mob_type_blacklist_typecache = list()
-/datum/emote/gorilla/ooga
+/datum/emote/sound/gorilla/ooga
key = "ooga"
key_third_person = "oogas"
message = "oogas."
diff --git a/code/modules/reagents/chemistry/reagents/drink_reagents.dm b/code/modules/reagents/chemistry/reagents/drink_reagents.dm
index 3c506574..de4a4b68 100644
--- a/code/modules/reagents/chemistry/reagents/drink_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/drink_reagents.dm
@@ -222,7 +222,6 @@
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))
diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm
index 6d579ac3..72fb0daf 100644
--- a/code/modules/research/techweb/all_nodes.dm
+++ b/code/modules/research/techweb/all_nodes.dm
@@ -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", "adipoelectric_generator")
+ "disposable_hypospray","plastic_knife","plastic_fork","plastic_spoon","large_beaker")
/datum/techweb_node/mmi
id = "mmi"
diff --git a/code/modules/surgery/organs/helpers.dm b/code/modules/surgery/organs/helpers.dm
index ad0c0d8f..964349b7 100644
--- a/code/modules/surgery/organs/helpers.dm
+++ b/code/modules/surgery/organs/helpers.dm
@@ -1,27 +1,9 @@
-/**
- * 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
diff --git a/goon/sound/robot_scream.ogg b/goon/sound/robot_scream.ogg
deleted file mode 100644
index 5db056a7..00000000
Binary files a/goon/sound/robot_scream.ogg and /dev/null differ
diff --git a/hyperstation/code/gamemode/traitor_lewd.dm b/hyperstation/code/gamemode/traitor_lewd.dm
index 0daf0589..b3f9c1cb 100644
--- a/hyperstation/code/gamemode/traitor_lewd.dm
+++ b/hyperstation/code/gamemode/traitor_lewd.dm
@@ -205,36 +205,34 @@ GLOBAL_LIST_INIT(hyper_special_roles, list(
-//GS13 - this shit's just fucking weird lol, gtfo
-
-// /datum/objective/noncon/find_target()
-// //..()
-// //to_chat(world, "TEST: noncon/find_target() called")
-// var/list/datum/mind/targets = list()
-// var/list/datum/mind/owners = get_owners()
-// for(var/datum/mind/candidate in SSticker.minds)
-// if (!(candidate in owners) && ishuman(candidate.current) && (candidate.current.client))
-// if(candidate.current.client?.prefs?.noncon == 1)
-// targets += candidate
-// if(targets.len > 0)
-// target = pick(targets)
-// else
-// target = null
-// update_explanation_text()
-// return target
+/datum/objective/noncon/find_target()
+ //..()
+ //to_chat(world, "TEST: noncon/find_target() called")
+ var/list/datum/mind/targets = list()
+ var/list/datum/mind/owners = get_owners()
+ for(var/datum/mind/candidate in SSticker.minds)
+ if (!(candidate in owners) && ishuman(candidate.current) && (candidate.current.client))
+ if(candidate.current.client?.prefs?.noncon == 1)
+ targets += candidate
+ if(targets.len > 0)
+ target = pick(targets)
+ else
+ target = null
+ update_explanation_text()
+ return target
-// /datum/objective/noncon/check_completion()
-// if(!target)
-// return TRUE
-// else
-// return target.sexed
+/datum/objective/noncon/check_completion()
+ if(!target)
+ return TRUE
+ else
+ return target.sexed
-// /datum/objective/noncon/update_explanation_text()
-// if(target)
-// explanation_text = "Locate [target.name], and sate your lust."
-// else
-// explanation_text = "Free Lewd Objective"
+/datum/objective/noncon/update_explanation_text()
+ if(target)
+ explanation_text = "Locate [target.name], and sate your lust."
+ else
+ explanation_text = "Free Lewd Objective"
/datum/antagonist/traitor/lewd/roundend_report()
var/list/result = list()
diff --git a/hyperstation/code/modules/arousal/arousalhud.dm b/hyperstation/code/modules/arousal/arousalhud.dm
index 5f43568b..6d0c0131 100644
--- a/hyperstation/code/modules/arousal/arousalhud.dm
+++ b/hyperstation/code/modules/arousal/arousalhud.dm
@@ -34,19 +34,9 @@
if(user.pulling)
dat += "Kiss [user.pulling]"
dat += "(Kiss a partner, or object.)
"
- dat += "Feed [user.pulling]"
- dat += "(Feed a partner.)
"
- dat += "Feed from [user.pulling]"
- dat += "(Feed a partner.)
"
else
dat += "Kiss"
dat += "(Requires a partner)
"
- dat += "Feed others"
- dat += "(Requires a partner)
"
- dat += "Feed from others"
- dat += "(Requires a partner)
"
- dat += "Feed yourself"
- dat += "(Feed yourself with your own genitals)
"
var/obj/item/organ/genital/belly/Belly = user.getorganslot("belly")
if(Belly)
@@ -212,24 +202,6 @@
to_chat(usr, "You cannot do this alone!")
return
- if(href_list["feed"])
- if(usr.pulling)
- feed()
- else
- to_chat(usr, "You cannot do this alone!")
- return
-
- if(href_list["feedfrom"])
- if(usr.pulling)
- feedfrom()
- else
- to_chat(usr, "You cannot do this alone!")
- return
-
- if(href_list["feedyourself"])
- feedyourself()
- return
-
if(href_list["shrink_belly"])
var/obj/item/organ/genital/belly/E = usr.getorganslot("belly")
if(E.size > 0)
@@ -310,30 +282,6 @@ obj/screen/arousal/proc/kiss()
if (H)
H.kisstarget(H.pulling)
-obj/screen/arousal/proc/feed()
- if(usr.restrained(TRUE))
- to_chat(usr, "You can't do that while restrained!")
- return
- var/mob/living/carbon/human/H = usr
- if (H)
- H.genitalfeed(H.pulling)
-
-obj/screen/arousal/proc/feedfrom()
- if(usr.restrained(TRUE))
- to_chat(usr, "You can't do that while restrained!")
- return
- var/mob/living/carbon/human/H = usr
- if (H)
- H.genitalfeedfrom(H.pulling)
-
-obj/screen/arousal/proc/feedyourself()
- if(usr.restrained(TRUE))
- to_chat(usr, "You can't do that while restrained!")
- return
- var/mob/living/carbon/human/H = usr
- if (H)
- H.genitalfeedyourself()
-
/mob/living/carbon/human/proc/menuremovecondom()
@@ -569,136 +517,3 @@ obj/screen/arousal/proc/feedyourself()
if(cum_splatter_icon)
cut_overlay(cum_splatter_icon)
return TRUE
-
-/mob/living/carbon/human/proc/genitalfeed(mob/living/L, mb_time = 30)
- if(isliving(L)) //is your target living? Living people can resist your advances if they want to via moving.
- if(iscarbon(L))
- var/obj/item/organ/genital/picked_organ
- var/total_fluids = 0
- var/datum/reagents/fluid_source = null
- src << browse(null, "window=arousal")
- picked_organ = pick_climax_genitals() //Gotta be climaxable, not just masturbation, to fill with fluids.
- if(picked_organ)
- //Good, got an organ, time to pick a container
- if(picked_organ.name == "penis")//if the select organ is a penis
- var/obj/item/organ/genital/penis/P = src.getorganslot("penis")
- if(P.condom) //if the penis is condomed
- to_chat(src, "You cannot feed someone when there is a condom over your [picked_organ.name].")
- return
- if(P.sounding) //if the penis is sounded
- to_chat(src, "You cannot feed someone when there is a rod inside your [picked_organ.name].")
- return
- if(picked_organ.producing) //Can it produce its own fluids, such as breasts?
- fluid_source = picked_organ.reagents
- else
- if(!picked_organ.linked_organ)
- to_chat(src, "Your [picked_organ.name] is unable to produce it's own fluids, it's missing the organs for it.")
- return
- fluid_source = picked_organ.linked_organ.reagents
- total_fluids = fluid_source.total_volume
-
- src.visible_message("[src] starts to feed [L.name] with their [picked_organ.name].", \
- "You feed [L.name] with your [picked_organ.name].")
- if(do_after(src, mb_time, target = src) && in_range(src, L))
- fluid_source.trans_to(L, total_fluids)
- src.visible_message("[src] uses [p_their()] [picked_organ.name] to feed [L.name]!", \
- "You used your [picked_organ.name] to feed [L.name] a total of [total_fluids]u's.")
- SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm)
- if(picked_organ.can_climax)
- setArousalLoss(min_arousal)
-
- else //They either lack organs that can climax, or they didn't pick one.
- to_chat(src, "You cannot fill anything without choosing exposed genitals.")
- return
-
-/mob/living/carbon/human/proc/genitalfeedfrom(mob/living/target, mb_time = 30)
- var/mob/living/carbon/human/L = target
- var/obj/item/organ/genital/picked_organ
- var/total_fluids = 0
- var/datum/reagents/fluid_source = null
- src << browse(null, "window=arousal")
-
- var/list/genitals_list = list()
- var/list/worn_stuff = L.get_equipped_items()
-
- for(var/obj/item/organ/genital/G in L.internal_organs)
- if(G.can_climax) //filter out what you can't masturbate with
- if(G.is_exposed(worn_stuff)) //Nude or through_clothing
- if(!G.dontlist)
- genitals_list += G
- if(genitals_list.len)
- picked_organ = input(src, "with what?", "Climax", null) as null|obj in genitals_list
- else
- return
-
- if(picked_organ)
- //Good, got an organ, time to pick a container
- if(picked_organ.name == "penis")//if the select organ is a penis
- var/obj/item/organ/genital/penis/P = L.getorganslot("penis")
- if(P.condom) //if the penis is condomed
- to_chat(src, "You cannot feed from [picked_organ.name] when there is a condom over it.")
- return
- if(P.sounding) //if the penis is sounded
- to_chat(src, "You cannot feed from [picked_organ.name] when there is a rod inside it.")
- return
- if(picked_organ.producing) //Can it produce its own fluids, such as breasts?
- fluid_source = picked_organ.reagents
- else
- if(!picked_organ.linked_organ)
- to_chat(src, "The [picked_organ.name] is unable to produce it's own fluids, it's missing the organs for it.")
- return
- fluid_source = picked_organ.linked_organ.reagents
- total_fluids = fluid_source.total_volume
-
- src.visible_message("[src] starts to feed from [L.name]'s [picked_organ.name].", \
- "You feed from [L.name]'s '[picked_organ.name].")
- if(do_after(src, mb_time, target = src) && in_range(src, L))
- fluid_source.trans_to(src, total_fluids)
- src.visible_message("[src] feeds from [L.name]'s [picked_organ.name]!", \
- "You used [L.name]'s [picked_organ.name] to feed with a total of [total_fluids]u's.")
- SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm)
- if(picked_organ.can_climax)
- L.setArousalLoss(min_arousal)
-
- else //They either lack organs that can climax, or they didn't pick one.
- to_chat(src, "You cannot fill anything without choosing exposed genitals.")
- return
-
-/mob/living/carbon/human/proc/genitalfeedyourself(mb_time = 30)
- var/obj/item/organ/genital/picked_organ
- var/total_fluids = 0
- var/datum/reagents/fluid_source = null
- src << browse(null, "window=arousal")
- picked_organ = pick_climax_genitals() //Gotta be climaxable, not just masturbation, to fill with fluids.
- if(picked_organ)
- //Good, got an organ, time to pick a container
- if(picked_organ.name == "penis")//if the select organ is a penis
- var/obj/item/organ/genital/penis/P = src.getorganslot("penis")
- if(P.condom) //if the penis is condomed
- to_chat(src, "You cannot feed yourself when there is a condom over your [picked_organ.name].")
- return
- if(P.sounding) //if the penis is sounded
- to_chat(src, "You cannot feed yourself when there is a rod inside your [picked_organ.name].")
- return
- if(picked_organ.producing) //Can it produce its own fluids, such as breasts?
- fluid_source = picked_organ.reagents
- else
- if(!picked_organ.linked_organ)
- to_chat(src, "Your [picked_organ.name] is unable to produce it's own fluids, it's missing the organs for it.")
- return
- fluid_source = picked_organ.linked_organ.reagents
- total_fluids = fluid_source.total_volume
-
- src.visible_message("[src] starts to feed themselves with their [picked_organ.name].", \
- "You feed yourself with your [picked_organ.name].")
- if(do_after(src, mb_time))
- fluid_source.trans_to(src, total_fluids)
- src.visible_message("[src] uses [p_their()] [picked_organ.name] to feed themselves!", \
- "You used your [picked_organ.name] to feed yourself a total of [total_fluids]u's.")
- SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm)
- if(picked_organ.can_climax)
- setArousalLoss(min_arousal)
-
- else //They either lack organs that can climax, or they didn't pick one.
- to_chat(src, "You cannot fill anything without choosing exposed genitals.")
- return
diff --git a/hyperstation/code/modules/clothing/sizeaccessories.dm b/hyperstation/code/modules/clothing/sizeaccessories.dm
index 3d8f7764..9b617ee4 100644
--- a/hyperstation/code/modules/clothing/sizeaccessories.dm
+++ b/hyperstation/code/modules/clothing/sizeaccessories.dm
@@ -83,7 +83,6 @@
icon = 'hyperstation/icons/obj/clothing/sizeaccessories.dmi'
icon_state = "pendant"
item_state = "pendant"
- w_class = WEIGHT_CLASS_SMALL //Gainstation Edit: Small, not normal sized.
//For neck items
/obj/item/clothing/neck/syntech/equipped(mob/living/user, slot)
diff --git a/modular_citadel/code/modules/client/loadout/__donator.dm b/modular_citadel/code/modules/client/loadout/__donator.dm
index 9b0024aa..32f84ec1 100644
--- a/modular_citadel/code/modules/client/loadout/__donator.dm
+++ b/modular_citadel/code/modules/client/loadout/__donator.dm
@@ -182,7 +182,7 @@ datum/gear/lyricalpawsring
name = "GATO Badge - Correspondent"
category = SLOT_IN_BACKPACK
path = /obj/item/clothing/accessory/medal/gato_badge/middleman
- ckeywhitelist = list("johnjimjim", "sonoida", "yeeny", "not number")
+ ckeywhitelist = list("johnjimjim", "sonoida", "yeeny")
/datum/gear/halsey_overcoat
name = "Halsey's Commander Overcoat"
category = SLOT_IN_BACKPACK
@@ -259,16 +259,16 @@ datum/gear/lyricalpawsring
name = "Weight Gain Spellbook"
category = SLOT_IN_BACKPACK
path = /obj/item/book/granter/spell/fattening
- ckeywhitelist = list("sonoida", "themrsky", "not number")
+ ckeywhitelist = list("sonoida", "themrsky")
/datum/gear/wgspell_transfer
name = "Weight Transfer Spellbook"
category = SLOT_IN_BACKPACK
path = /obj/item/book/granter/spell/fattening/transfer
- ckeywhitelist = list("sonoida", "themrsky", "not number")
+ ckeywhitelist = list("sonoida", "themrsky")
/datum/gear/wgspell_take
name = "Weight Steal Spellbook"
category = SLOT_IN_BACKPACK
path = /obj/item/book/granter/spell/fattening/steal
- ckeywhitelist = list("sonoida", "themrsky", "not number")
+ ckeywhitelist = list("sonoida", "themrsky")
diff --git a/modular_citadel/code/modules/mob/cit_emotes.dm b/modular_citadel/code/modules/mob/cit_emotes.dm
index c293650d..4134e35a 100644
--- a/modular_citadel/code/modules/mob/cit_emotes.dm
+++ b/modular_citadel/code/modules/mob/cit_emotes.dm
@@ -44,7 +44,6 @@
sound = 'modular_citadel/sound/voice/scream_monkey.ogg'
if(istype(user, /mob/living/simple_animal/hostile/gorilla))
sound = 'sound/creatures/gorilla.ogg'
- /* //Gainstation Remove: Human species scream overhaul oops
if(ishuman(user))
user.adjustOxyLoss(5)
sound = pick('modular_citadel/sound/voice/scream_m1.ogg', 'modular_citadel/sound/voice/scream_m2.ogg')
@@ -58,7 +57,6 @@
sound = 'modular_citadel/sound/voice/scream_skeleton.ogg'
if (is_species(user, /datum/species/fly) || is_species(user, /datum/species/insect))
sound = 'modular_citadel/sound/voice/scream_moth.ogg'
- */
if(isalien(user))
sound = 'sound/voice/hiss6.ogg'
LAZYINITLIST(user.alternate_screams)
@@ -72,7 +70,7 @@
message = "makes a very loud noise."
. = ..()
-/datum/emote/carbon/snap
+/datum/emote/sound/carbon/snap
key = "snap"
key_third_person = "snaps"
muzzle_ignore = TRUE
diff --git a/modular_citadel/code/modules/mob/living/carbon/human/species_types/furrypeople.dm b/modular_citadel/code/modules/mob/living/carbon/human/species_types/furrypeople.dm
index e5638f9b..69acb888 100644
--- a/modular_citadel/code/modules/mob/living/carbon/human/species_types/furrypeople.dm
+++ b/modular_citadel/code/modules/mob/living/carbon/human/species_types/furrypeople.dm
@@ -13,18 +13,6 @@
meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/mammal
liked_food = MEAT | FRIED
disliked_food = TOXIC
- //Same as humans
- 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)
//Curiosity killed the cat's wagging tail.
/datum/species/mammal/spec_death(gibbed, mob/living/carbon/human/H)
diff --git a/modular_citadel/code/modules/mob/living/carbon/human/species_types/ipc.dm b/modular_citadel/code/modules/mob/living/carbon/human/species_types/ipc.dm
index 1ce5f59c..f1f7c07a 100644
--- a/modular_citadel/code/modules/mob/living/carbon/human/species_types/ipc.dm
+++ b/modular_citadel/code/modules/mob/living/carbon/human/species_types/ipc.dm
@@ -19,8 +19,6 @@
mutantstomach = /obj/item/organ/stomach/ipc
mutanteyes = /obj/item/organ/eyes/ipc
- screamsound = list('goon/sound/robot_scream.ogg', 'modular_citadel/sound/voice/scream_silicon.ogg')
-
exotic_bloodtype = "HF"
var/datum/action/innate/monitor_change/screen
diff --git a/sound/voice/catpeople/scream1.ogg b/sound/voice/catpeople/scream1.ogg
deleted file mode 100644
index ea40a7a4..00000000
Binary files a/sound/voice/catpeople/scream1.ogg and /dev/null differ
diff --git a/sound/voice/catpeople/scream2.ogg b/sound/voice/catpeople/scream2.ogg
deleted file mode 100644
index c6f0642a..00000000
Binary files a/sound/voice/catpeople/scream2.ogg and /dev/null differ
diff --git a/sound/voice/catpeople/scream3.ogg b/sound/voice/catpeople/scream3.ogg
deleted file mode 100644
index eb204044..00000000
Binary files a/sound/voice/catpeople/scream3.ogg and /dev/null differ
diff --git a/sound/voice/human/femalescream_1.ogg b/sound/voice/human/femalescream_1.ogg
deleted file mode 100644
index c0f80a14..00000000
Binary files a/sound/voice/human/femalescream_1.ogg and /dev/null differ
diff --git a/sound/voice/human/femalescream_2.ogg b/sound/voice/human/femalescream_2.ogg
deleted file mode 100644
index 978a236d..00000000
Binary files a/sound/voice/human/femalescream_2.ogg and /dev/null differ
diff --git a/sound/voice/human/femalescream_3.ogg b/sound/voice/human/femalescream_3.ogg
deleted file mode 100644
index 30e4150a..00000000
Binary files a/sound/voice/human/femalescream_3.ogg and /dev/null differ
diff --git a/sound/voice/human/femalescream_4.ogg b/sound/voice/human/femalescream_4.ogg
deleted file mode 100644
index bb73a1ef..00000000
Binary files a/sound/voice/human/femalescream_4.ogg and /dev/null differ
diff --git a/sound/voice/human/femalescream_5.ogg b/sound/voice/human/femalescream_5.ogg
deleted file mode 100644
index 96a08297..00000000
Binary files a/sound/voice/human/femalescream_5.ogg and /dev/null differ
diff --git a/sound/voice/human/malescream_1.ogg b/sound/voice/human/malescream_1.ogg
deleted file mode 100644
index ee9005b8..00000000
Binary files a/sound/voice/human/malescream_1.ogg and /dev/null differ
diff --git a/sound/voice/human/malescream_2.ogg b/sound/voice/human/malescream_2.ogg
deleted file mode 100644
index 989b612a..00000000
Binary files a/sound/voice/human/malescream_2.ogg and /dev/null differ
diff --git a/sound/voice/human/malescream_3.ogg b/sound/voice/human/malescream_3.ogg
deleted file mode 100644
index 902db1c1..00000000
Binary files a/sound/voice/human/malescream_3.ogg and /dev/null differ
diff --git a/sound/voice/human/malescream_4.ogg b/sound/voice/human/malescream_4.ogg
deleted file mode 100644
index 62f787d4..00000000
Binary files a/sound/voice/human/malescream_4.ogg and /dev/null differ
diff --git a/sound/voice/human/malescream_5.ogg b/sound/voice/human/malescream_5.ogg
deleted file mode 100644
index 2aec2c71..00000000
Binary files a/sound/voice/human/malescream_5.ogg and /dev/null differ
diff --git a/sound/voice/human/wilhelm_scream.ogg b/sound/voice/human/wilhelm_scream.ogg
deleted file mode 100644
index 9a81c47f..00000000
Binary files a/sound/voice/human/wilhelm_scream.ogg and /dev/null differ
diff --git a/sound/voice/teppi/cute_rumble.ogg b/sound/voice/teppi/cute_rumble.ogg
deleted file mode 100644
index af739eac..00000000
Binary files a/sound/voice/teppi/cute_rumble.ogg and /dev/null differ
diff --git a/sound/voice/teppi/gyooh1.ogg b/sound/voice/teppi/gyooh1.ogg
deleted file mode 100644
index 0aa7df90..00000000
Binary files a/sound/voice/teppi/gyooh1.ogg and /dev/null differ
diff --git a/sound/voice/teppi/gyooh2.ogg b/sound/voice/teppi/gyooh2.ogg
deleted file mode 100644
index f522ab3b..00000000
Binary files a/sound/voice/teppi/gyooh2.ogg and /dev/null differ
diff --git a/sound/voice/teppi/gyooh3.ogg b/sound/voice/teppi/gyooh3.ogg
deleted file mode 100644
index 445549da..00000000
Binary files a/sound/voice/teppi/gyooh3.ogg and /dev/null differ
diff --git a/sound/voice/teppi/gyooh4.ogg b/sound/voice/teppi/gyooh4.ogg
deleted file mode 100644
index c7eed0a0..00000000
Binary files a/sound/voice/teppi/gyooh4.ogg and /dev/null differ
diff --git a/sound/voice/teppi/gyooh5.ogg b/sound/voice/teppi/gyooh5.ogg
deleted file mode 100644
index 69aa095b..00000000
Binary files a/sound/voice/teppi/gyooh5.ogg and /dev/null differ
diff --git a/sound/voice/teppi/gyooh6.ogg b/sound/voice/teppi/gyooh6.ogg
deleted file mode 100644
index 9d7d5d67..00000000
Binary files a/sound/voice/teppi/gyooh6.ogg and /dev/null differ
diff --git a/sound/voice/teppi/roar.ogg b/sound/voice/teppi/roar.ogg
deleted file mode 100644
index b15261e0..00000000
Binary files a/sound/voice/teppi/roar.ogg and /dev/null differ
diff --git a/sound/voice/teppi/rumble.ogg b/sound/voice/teppi/rumble.ogg
deleted file mode 100644
index 0d78c28d..00000000
Binary files a/sound/voice/teppi/rumble.ogg and /dev/null differ
diff --git a/sound/voice/teppi/snoot1.ogg b/sound/voice/teppi/snoot1.ogg
deleted file mode 100644
index 6083d3ea..00000000
Binary files a/sound/voice/teppi/snoot1.ogg and /dev/null differ
diff --git a/sound/voice/teppi/snoot2.ogg b/sound/voice/teppi/snoot2.ogg
deleted file mode 100644
index 180bcdb5..00000000
Binary files a/sound/voice/teppi/snoot2.ogg and /dev/null differ
diff --git a/sound/voice/teppi/whine1.ogg b/sound/voice/teppi/whine1.ogg
deleted file mode 100644
index afd57567..00000000
Binary files a/sound/voice/teppi/whine1.ogg and /dev/null differ
diff --git a/sound/voice/teppi/whine2.ogg b/sound/voice/teppi/whine2.ogg
deleted file mode 100644
index 690b4415..00000000
Binary files a/sound/voice/teppi/whine2.ogg and /dev/null differ
diff --git a/tgstation.dme b/tgstation.dme
index 507b7121..8172f80d 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -3085,8 +3085,6 @@
#include "GainStation13\code\game\objects\effects\spawners\choco_slime_delivery.dm"
#include "GainStation13\code\game\turfs\closed.dm"
#include "GainStation13\code\game\turfs\open.dm"
-#include "GainStation13\code\machinery\adipoelectric_generator.dm"
-#include "GainStation13\code\machinery\adipoelectric_transformer.dm"
#include "GainStation13\code\machinery\fattening_turret.dm"
#include "GainStation13\code\machinery\feeding_tube.dm"
#include "GainStation13\code\mechanics\fatness.dm"
@@ -3109,8 +3107,6 @@
#include "GainStation13\code\modules\mob\living\emote.dm"
#include "GainStation13\code\modules\mob\living\vore\eating\living_vr.dm"
#include "GainStation13\code\modules\mob\living\vore\eating\trasheat_lists.dm"
-#include "GainStation13\code\modules\mob\living\emote_modular.dm"
-#include "GainStation13\code\modules\mob\living\emote_ported.dm"
#include "GainStation13\code\modules\reagents\chemistry\reagents\consumable_reagents.dm"
#include "GainStation13\code\modules\reagents\chemistry\reagents\dwarverndrinks.dm"
#include "GainStation13\code\modules\reagents\chemistry\reagents\fatty_drinks.dm"