diff --git a/_maps/RandomRuins/LavaRuins/lavaland_biodome_clown_planet.dmm b/_maps/RandomRuins/LavaRuins/lavaland_biodome_clown_planet.dmm index e1a0283aad..7890b3b258 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_biodome_clown_planet.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_biodome_clown_planet.dmm @@ -39,7 +39,7 @@ }, /turf/open/indestructible{ icon_state = "darkyellowfull"; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "as" = ( @@ -50,7 +50,7 @@ }, /turf/open/indestructible{ icon_state = "darkyellowfull"; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "at" = ( @@ -59,7 +59,7 @@ }, /turf/open/indestructible{ icon_state = "darkyellowfull"; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "au" = ( @@ -89,7 +89,7 @@ }, /turf/open/indestructible{ icon_state = "darkyellowfull"; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "ay" = ( @@ -99,7 +99,7 @@ /obj/effect/decal/cleanable/dirt, /turf/open/indestructible{ icon_state = "darkyellowfull"; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "az" = ( @@ -110,7 +110,7 @@ /obj/effect/decal/cleanable/dirt, /turf/open/indestructible{ icon_state = "darkyellowfull"; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "aA" = ( @@ -120,7 +120,7 @@ }, /turf/open/indestructible{ icon_state = "darkyellowfull"; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "aB" = ( @@ -129,20 +129,20 @@ }, /turf/open/indestructible{ icon_state = "darkyellowfull"; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "aC" = ( /turf/open/indestructible{ icon_state = "darkyellowfull"; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "aD" = ( /obj/effect/decal/cleanable/dirt, /turf/open/indestructible{ icon_state = "darkyellowfull"; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "aE" = ( @@ -151,7 +151,7 @@ }, /turf/open/indestructible{ icon_state = "darkyellowfull"; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "aF" = ( @@ -162,7 +162,7 @@ /obj/effect/decal/cleanable/cobweb, /turf/open/indestructible{ icon_state = "darkyellowfull"; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "aG" = ( @@ -171,7 +171,7 @@ }, /turf/open/indestructible{ icon_state = "darkyellowfull"; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "aH" = ( @@ -181,7 +181,7 @@ /obj/effect/decal/cleanable/dirt, /turf/open/indestructible{ icon_state = "darkyellowfull"; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "aI" = ( @@ -191,7 +191,7 @@ /obj/item/bikehorn, /turf/open/indestructible{ icon_state = "darkyellowfull"; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "aJ" = ( @@ -208,7 +208,7 @@ /obj/effect/decal/cleanable/pie_smudge, /turf/open/indestructible{ icon_state = "darkyellowfull"; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "aL" = ( @@ -224,7 +224,7 @@ }, /turf/open/indestructible{ icon_state = "darkyellowfull"; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "aO" = ( @@ -235,7 +235,7 @@ }, /turf/open/indestructible{ icon_state = "darkyellowfull"; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "aP" = ( @@ -258,7 +258,7 @@ }, /turf/open/indestructible{ icon_state = "darkyellowfull"; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "aU" = ( @@ -272,7 +272,7 @@ /obj/effect/decal/cleanable/dirt, /turf/open/indestructible{ icon_state = "darkyellowfull"; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "aW" = ( @@ -283,7 +283,7 @@ }, /turf/open/indestructible{ icon_state = "darkyellowfull"; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "aX" = ( @@ -302,7 +302,7 @@ }, /turf/open/indestructible{ icon_state = "darkyellowfull"; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "aZ" = ( @@ -318,7 +318,7 @@ /obj/effect/decal/cleanable/pie_smudge, /turf/open/indestructible{ icon_state = "darkyellowfull"; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "bb" = ( @@ -337,7 +337,7 @@ /obj/effect/decal/cleanable/dirt, /turf/open/indestructible{ icon_state = "darkyellowfull"; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "bd" = ( @@ -370,7 +370,7 @@ /obj/effect/decal/cleanable/pie_smudge, /turf/open/indestructible{ icon_state = "darkyellowfull"; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "bg" = ( @@ -476,21 +476,21 @@ }, /turf/open/indestructible{ icon_state = "darkyellowfull"; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "bx" = ( /obj/effect/decal/cleanable/cobweb, /turf/open/indestructible{ icon_state = "darkredfull"; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "by" = ( /obj/structure/disposalpipe/segment, /turf/open/indestructible{ icon_state = "darkyellowfull"; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "bz" = ( @@ -505,7 +505,7 @@ "bA" = ( /turf/open/indestructible{ icon_state = "darkredfull"; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "bB" = ( @@ -513,7 +513,7 @@ icon_state = "bananium"; name = "bananium floor"; sound = 'sound/effects/clownstep1.ogg'; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "bC" = ( @@ -524,7 +524,7 @@ /obj/effect/decal/cleanable/dirt, /turf/open/indestructible{ icon_state = "darkyellowfull"; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "bD" = ( @@ -550,7 +550,7 @@ icon_state = "bananium"; name = "bananium floor"; sound = 'sound/effects/clownstep1.ogg'; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "bH" = ( @@ -559,7 +559,7 @@ icon_state = "bananium"; name = "bananium floor"; sound = 'sound/effects/clownstep1.ogg'; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "bI" = ( @@ -567,7 +567,7 @@ /obj/effect/decal/cleanable/blood/old, /turf/open/indestructible{ icon_state = "darkyellowfull"; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "bJ" = ( @@ -577,7 +577,7 @@ }, /turf/open/indestructible{ icon_state = "darkredfull"; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "bK" = ( @@ -586,7 +586,7 @@ }, /turf/open/indestructible{ icon_state = "darkredfull"; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "bL" = ( @@ -610,7 +610,7 @@ icon_state = "bananium"; name = "bananium floor"; sound = 'sound/effects/clownstep1.ogg'; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "bP" = ( @@ -657,7 +657,7 @@ icon_state = "bananium"; name = "bananium floor"; sound = 'sound/effects/clownstep1.ogg'; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "bY" = ( @@ -667,7 +667,7 @@ icon_state = "bananium"; name = "bananium floor"; sound = 'sound/effects/clownstep1.ogg'; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "bZ" = ( @@ -676,7 +676,7 @@ icon_state = "bananium"; name = "bananium floor"; sound = 'sound/effects/clownstep1.ogg'; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "ca" = ( @@ -686,7 +686,7 @@ icon_state = "bananium"; name = "bananium floor"; sound = 'sound/effects/clownstep1.ogg'; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "cc" = ( @@ -710,7 +710,7 @@ }, /turf/open/indestructible{ icon_state = "darkyellowfull"; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "dC" = ( @@ -723,7 +723,7 @@ }, /turf/open/indestructible{ icon_state = "darkyellowfull"; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "dD" = ( @@ -735,7 +735,7 @@ }, /turf/open/indestructible{ icon_state = "darkyellowfull"; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "dE" = ( @@ -748,7 +748,7 @@ }, /turf/open/indestructible{ icon_state = "darkyellowfull"; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "dF" = ( @@ -793,7 +793,7 @@ }, /turf/open/indestructible{ icon_state = "darkredfull"; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "dK" = ( @@ -820,7 +820,7 @@ icon_state = "bananium"; name = "bananium floor"; sound = 'sound/effects/clownstep1.ogg'; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "dO" = ( @@ -829,7 +829,7 @@ icon_state = "bananium"; name = "bananium floor"; sound = 'sound/effects/clownstep1.ogg'; - wet = 5 + wet = 8 }, /area/ruin/powered/clownplanet) "eX" = ( diff --git a/_maps/RandomZLevels/snowdin.dmm b/_maps/RandomZLevels/snowdin.dmm index c3280b2327..38ae9f91da 100644 --- a/_maps/RandomZLevels/snowdin.dmm +++ b/_maps/RandomZLevels/snowdin.dmm @@ -13827,7 +13827,6 @@ height = 5; id = "snowdin_mining"; name = "mining elevator"; - timid = 0; width = 5 }, /obj/docking_port/stationary{ diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index 4c51f61812..bcf8a765b9 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -2200,8 +2200,7 @@ id = "pod3"; name = "escape pod 3"; port_direction = 2; - preferred_direction = 4; - timid = 0 + preferred_direction = 4 }, /turf/open/floor/mineral/titanium/blue, /area/shuttle/pod_3) @@ -7394,8 +7393,7 @@ dir = 4; dwidth = 4; height = 9; - width = 9; - timid = 0 + width = 9 }, /obj/machinery/bluespace_beacon, /obj/machinery/computer/auxillary_base, @@ -47307,8 +47305,7 @@ id = "pod4"; name = "escape pod 4"; port_direction = 2; - preferred_direction = 4; - timid = 0 + preferred_direction = 4 }, /turf/open/floor/mineral/titanium/blue, /area/shuttle/pod_4) @@ -47531,8 +47528,7 @@ dir = 8; id = "pod2"; name = "escape pod 2"; - port_direction = 2; - timid = 0 + port_direction = 2 }, /turf/open/floor/mineral/titanium/blue, /area/shuttle/pod_2) @@ -49894,8 +49890,7 @@ dir = 8; id = "pod1"; name = "escape pod 1"; - port_direction = 2; - timid = 0 + port_direction = 2 }, /turf/open/floor/mineral/titanium/blue, /area/shuttle/pod_1) diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 403334d4e0..f8f1fe3d35 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -302,8 +302,7 @@ /obj/docking_port/mobile/pod{ id = "pod1"; name = "escape pod 1"; - port_direction = 2; - timid = 0 + port_direction = 2 }, /obj/effect/turf_decal/stripes/end, /turf/open/floor/plasteel/white, @@ -319,8 +318,7 @@ /obj/docking_port/mobile/pod{ id = "pod2"; name = "escape pod 2"; - port_direction = 2; - timid = 0 + port_direction = 2 }, /obj/effect/turf_decal/stripes/end, /turf/open/floor/plasteel/white, @@ -1455,8 +1453,7 @@ dir = 2; dwidth = 4; height = 9; - width = 9; - timid = 0 + width = 9 }, /obj/machinery/bluespace_beacon, /obj/docking_port/mobile/auxillary_base, @@ -23081,8 +23078,7 @@ id = "pod3"; name = "escape pod 3"; port_direction = 2; - preferred_direction = 4; - timid = 0 + preferred_direction = 4 }, /obj/effect/turf_decal/stripes/end{ dir = 8 diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 81a5201a93..16224128f0 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -481,8 +481,7 @@ /obj/docking_port/mobile/pod{ id = "pod2"; name = "escape pod 2"; - port_direction = 2; - timid = 0 + port_direction = 2 }, /turf/open/floor/mineral/titanium/blue, /area/shuttle/pod_2) @@ -1546,8 +1545,7 @@ id = "pod3"; name = "escape pod 3"; port_direction = 2; - preferred_direction = 4; - timid = 0 + preferred_direction = 4 }, /turf/open/floor/mineral/titanium/blue, /area/shuttle/pod_3) @@ -20222,8 +20220,7 @@ /obj/docking_port/mobile/pod{ id = "pod1"; name = "escape pod 1"; - port_direction = 2; - timid = 0 + port_direction = 2 }, /turf/open/floor/mineral/titanium/blue, /area/shuttle/pod_1) @@ -28147,8 +28144,7 @@ id = "pod4"; name = "escape pod 4"; port_direction = 2; - preferred_direction = 4; - timid = 0 + preferred_direction = 4 }, /turf/open/floor/mineral/titanium/blue, /area/shuttle/pod_4) @@ -71591,8 +71587,7 @@ dir = 2; dwidth = 4; height = 9; - width = 9; - timid = 0 + width = 9 }, /obj/machinery/bluespace_beacon, /obj/machinery/computer/auxillary_base, diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index 91c0fdac6f..4c663f9219 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -8542,8 +8542,7 @@ dwidth = 3; name = "steel rain"; port_direction = 4; - preferred_direction = 4; - timid = 0 + preferred_direction = 4 }, /turf/open/floor/plating, /area/shuttle/assault_pod) diff --git a/code/__DEFINES/colors.dm b/code/__DEFINES/colors.dm index 824f5b3e61..4811d0041f 100644 --- a/code/__DEFINES/colors.dm +++ b/code/__DEFINES/colors.dm @@ -37,3 +37,20 @@ #define COLOR_PALE_RED_GRAY "#D59998" #define COLOR_PALE_PURPLE_GRAY "#CBB1CA" #define COLOR_PURPLE_GRAY "#AE8CA8" + +//Color defines used by the assembly detailer. +#define COLOR_ASSEMBLY_BLACK "#545454" +#define COLOR_ASSEMBLY_BGRAY "#9497AB" +#define COLOR_ASSEMBLY_WHITE "#E2E2E2" +#define COLOR_ASSEMBLY_RED "#CC4242" +#define COLOR_ASSEMBLY_ORANGE "#E39751" +#define COLOR_ASSEMBLY_BEIGE "#AF9366" +#define COLOR_ASSEMBLY_BROWN "#97670E" +#define COLOR_ASSEMBLY_GOLD "#AA9100" +#define COLOR_ASSEMBLY_YELLOW "#CECA2B" +#define COLOR_ASSEMBLY_GURKHA "#999875" +#define COLOR_ASSEMBLY_LGREEN "#789876" +#define COLOR_ASSEMBLY_GREEN "#44843C" +#define COLOR_ASSEMBLY_LBLUE "#5D99BE" +#define COLOR_ASSEMBLY_BLUE "#38559E" +#define COLOR_ASSEMBLY_PURPLE "#6F6192" \ No newline at end of file diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm index 750c107980..98f6c58b34 100644 --- a/code/__DEFINES/combat.dm +++ b/code/__DEFINES/combat.dm @@ -146,3 +146,18 @@ #define GRENADE_CLUMSY_FUMBLE 1 #define GRENADE_NONCLUMSY_FUMBLE 2 #define GRENADE_NO_FUMBLE 3 + +#define BODY_ZONE_HEAD "head" +#define BODY_ZONE_CHEST "chest" +#define BODY_ZONE_L_ARM "l_arm" +#define BODY_ZONE_R_ARM "r_arm" +#define BODY_ZONE_L_LEG "l_leg" +#define BODY_ZONE_R_LEG "r_leg" + +#define BODY_ZONE_PRECISE_EYES "eyes" +#define BODY_ZONE_PRECISE_MOUTH "mouth" +#define BODY_ZONE_PRECISE_GROIN "groin" +#define BODY_ZONE_PRECISE_L_HAND "l_hand" +#define BODY_ZONE_PRECISE_R_HAND "r_hand" +#define BODY_ZONE_PRECISE_L_FOOT "l_foot" +#define BODY_ZONE_PRECISE_R_FOOT "r_foot" diff --git a/code/__DEFINES/components.dm b/code/__DEFINES/components.dm index bbe29f3e85..51579b4d88 100644 --- a/code/__DEFINES/components.dm +++ b/code/__DEFINES/components.dm @@ -19,6 +19,10 @@ #define COMSIG_COMPONENT_REMOVING "component_removing" //before a component is removed from a datum because of RemoveComponent: (/datum/component) #define COMSIG_PARENT_QDELETED "parent_qdeleted" //before a datum's Destroy() is called: () +// /Component signals +#define COMSIG_ADD_MOOD_EVENT "add_mood" //Called when you send a mood event from anywhere in the code. +#define COMSIG_CLEAR_MOOD_EVENT "clear_mood" //Called when you clear a mood event from anywhere in the code. + #define COMSIG_COMPONENT_CLEAN_ACT "clean_act" //called on an object to clean it of cleanables. Usualy with soap: (num/strength) #define COMSIG_COMPONENT_NTNET_RECIEVE "ntnet_recieve" //called on an object by its NTNET connection component on recieve. (sending_id(number), sending_netname(text), data(datum/netdata)) @@ -50,6 +54,8 @@ #define COMSIG_ATOM_SET_LIGHT "atom_set_light" //from base of atom/set_light(): (l_range, l_power, l_color) #define COMSIG_ATOM_ROTATE "atom_rotate" //from base of atom/shuttleRotate(): (rotation, params) #define COMSIG_ATOM_DIR_CHANGE "atom_dir_change" //from base of atom/setDir(): (old_dir, new_dir) +#define COMSIG_ENTER_AREA "enter_area" //from base of area/Entered(): (/area) +#define COMSIG_EXIT_AREA "exit_area" //from base of area/Exited(): (/area) #define COMSIG_CLICK "atom_click" //from base of atom/Click(): (location, control, params) #define COMSIG_CLICK_SHIFT "shift_click" //from base of atom/ShiftClick(): (/mob) @@ -57,6 +63,10 @@ #define COMSIG_CLICK_ALT "alt_click" //from base of atom/AltClick(): (/mob) #define COMSIG_CLICK_CTRL_SHIFT "ctrl_shift_click" //from base of atom/CtrlShiftClick(/mob) +// /area signals +#define COMSIG_AREA_ENTERED "area_entered" //from base of area/Entered(): (atom/movable/M) +#define COMSIG_AREA_EXITED "area_exited" //from base of area/Exited(): (atom/movable/M) + // /atom/movable signals #define COMSIG_MOVABLE_MOVED "movable_moved" //from base of atom/movable/Moved(): (/atom, dir) #define COMSIG_MOVABLE_CROSSED "movable_crossed" //from base of atom/movable/Crossed(): (/atom/movable) diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 3be912dc96..180181d0b8 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -188,9 +188,9 @@ GLOBAL_LIST_EMPTY(bloody_footprints_cache) //Wet floor type flags. Stronger ones should be higher in number. #define TURF_DRY 0 #define TURF_WET_WATER 1 -#define TURF_WET_LUBE 2 +#define TURF_WET_PERMAFROST 2 #define TURF_WET_ICE 4 -#define TURF_WET_PERMAFROST 8 +#define TURF_WET_LUBE 8 #define IS_WET_OPEN_TURF(O) O.GetComponent(/datum/component/wet_floor) diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 71267e272f..8be6ac7782 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -95,15 +95,23 @@ #define MOOD_LEVEL_SAD1 -3 #define MOOD_LEVEL_SAD2 -12 #define MOOD_LEVEL_SAD3 -18 -#define MOOD_LEVEL_SAD4 -26 +#define MOOD_LEVEL_SAD4 -25 + +//Sanity levels for humans +#define SANITY_GREAT 125 +#define SANITY_NEUTRAL 100 +#define SANITY_DISTURBED 75 +#define SANITY_UNSTABLE 50 +#define SANITY_CRAZY 25 +#define SANITY_INSANE 0 //Beauty levels of areas for carbons -#define BEAUTY_LEVEL_HORRID -50 -#define BEAUTY_LEVEL_BAD -25 -#define BEAUTY_LEVEL_GOOD 25 -#define BEAUTY_LEVEL_GREAT 50 - - +#define BEAUTY_LEVEL_HORRID -100 +#define BEAUTY_LEVEL_BAD -66 +#define BEAUTY_LEVEL_MEH -33 +#define BEAUTY_LEVEL_DECENT 33 +#define BEAUTY_LEVEL_GOOD 66 +#define BEAUTY_LEVEL_GREAT 100 //Nutrition levels for humans #define NUTRITION_LEVEL_FAT 600 diff --git a/code/__DEFINES/sound.dm b/code/__DEFINES/sound.dm index 453a02db01..f2d78f3438 100644 --- a/code/__DEFINES/sound.dm +++ b/code/__DEFINES/sound.dm @@ -70,3 +70,11 @@ 'sound/ambience/ambiatmos.ogg', 'sound/ambience/ambiatmos2.ogg', 'sound/ambience/ambiodd.ogg') #define REEBE list('sound/ambience/ambireebe1.ogg', 'sound/ambience/ambireebe2.ogg', 'sound/ambience/ambireebe3.ogg') + + + +#define CREEPY_SOUNDS list('sound/effects/ghost.ogg', 'sound/effects/ghost2.ogg', 'sound/effects/heart_beat.ogg', 'sound/effects/screech.ogg',\ + 'sound/hallucinations/behind_you1.ogg', 'sound/hallucinations/behind_you2.ogg', 'sound/hallucinations/far_noise.ogg', 'sound/hallucinations/growl1.ogg', 'sound/hallucinations/growl2.ogg',\ + 'sound/hallucinations/growl3.ogg', 'sound/hallucinations/im_here1.ogg', 'sound/hallucinations/im_here2.ogg', 'sound/hallucinations/i_see_you1.ogg', 'sound/hallucinations/i_see_you2.ogg',\ + 'sound/hallucinations/look_up1.ogg', 'sound/hallucinations/look_up2.ogg', 'sound/hallucinations/over_here1.ogg', 'sound/hallucinations/over_here2.ogg', 'sound/hallucinations/over_here3.ogg',\ + 'sound/hallucinations/turn_around1.ogg', 'sound/hallucinations/turn_around2.ogg', 'sound/hallucinations/veryfar_noise.ogg', 'sound/hallucinations/wail.ogg') diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index d2b8ad7d9f..709625ca3f 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -396,13 +396,11 @@ Proc for attack log creation, because really why not GET_COMPONENT_FROM(mood, /datum/component/mood, user) if(mood) - switch(mood.mood) //Alerts do_after delay based on how happy you are - if(-INFINITY to MOOD_LEVEL_SAD2) + switch(mood.sanity) //Alters do_after delay based on how sane you are + if(SANITY_INSANE to SANITY_DISTURBED) delay *= 1.25 - if(MOOD_LEVEL_HAPPY3 to MOOD_LEVEL_HAPPY4) - delay *= 0.95 - if(MOOD_LEVEL_HAPPY4 to INFINITY) - delay *= 0.9 + if(SANITY_NEUTRAL to SANITY_GREAT) + delay *= 0.90 var/endtime = world.time + delay var/starttime = world.time diff --git a/code/__HELPERS/type2type.dm b/code/__HELPERS/type2type.dm index c06484f556..d4d69df017 100644 --- a/code/__HELPERS/type2type.dm +++ b/code/__HELPERS/type2type.dm @@ -354,47 +354,47 @@ return 0 if(bpc & FULL_BODY) - covered_parts |= list("l_arm","r_arm","head","chest","l_leg","r_leg") + covered_parts |= list(BODY_ZONE_L_ARM,BODY_ZONE_R_ARM,BODY_ZONE_HEAD,BODY_ZONE_CHEST,BODY_ZONE_L_LEG,BODY_ZONE_R_LEG) else if(bpc & HEAD) - covered_parts |= list("head") + covered_parts |= list(BODY_ZONE_HEAD) if(bpc & CHEST) - covered_parts |= list("chest") + covered_parts |= list(BODY_ZONE_CHEST) if(bpc & GROIN) - covered_parts |= list("chest") + covered_parts |= list(BODY_ZONE_CHEST) if(bpc & ARMS) - covered_parts |= list("l_arm","r_arm") + covered_parts |= list(BODY_ZONE_L_ARM,BODY_ZONE_R_ARM) else if(bpc & ARM_LEFT) - covered_parts |= list("l_arm") + covered_parts |= list(BODY_ZONE_L_ARM) if(bpc & ARM_RIGHT) - covered_parts |= list("r_arm") + covered_parts |= list(BODY_ZONE_R_ARM) if(bpc & HANDS) - covered_parts |= list("l_arm","r_arm") + covered_parts |= list(BODY_ZONE_L_ARM,BODY_ZONE_R_ARM) else if(bpc & HAND_LEFT) - covered_parts |= list("l_arm") + covered_parts |= list(BODY_ZONE_L_ARM) if(bpc & HAND_RIGHT) - covered_parts |= list("r_arm") + covered_parts |= list(BODY_ZONE_R_ARM) if(bpc & LEGS) - covered_parts |= list("l_leg","r_leg") + covered_parts |= list(BODY_ZONE_L_LEG,BODY_ZONE_R_LEG) else if(bpc & LEG_LEFT) - covered_parts |= list("l_leg") + covered_parts |= list(BODY_ZONE_L_LEG) if(bpc & LEG_RIGHT) - covered_parts |= list("r_leg") + covered_parts |= list(BODY_ZONE_R_LEG) if(bpc & FEET) - covered_parts |= list("l_leg","r_leg") + covered_parts |= list(BODY_ZONE_L_LEG,BODY_ZONE_R_LEG) else if(bpc & FOOT_LEFT) - covered_parts |= list("l_leg") + covered_parts |= list(BODY_ZONE_L_LEG) if(bpc & FOOT_RIGHT) - covered_parts |= list("r_leg") + covered_parts |= list(BODY_ZONE_R_LEG) return covered_parts diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index cbd73627ff..a63ff6bdf0 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -736,21 +736,21 @@ Turf and target are separate in case you want to teleport some distance from a t return /proc/parse_zone(zone) - if(zone == "r_hand") + if(zone == BODY_ZONE_PRECISE_R_HAND) return "right hand" - else if (zone == "l_hand") + else if (zone == BODY_ZONE_PRECISE_L_HAND) return "left hand" - else if (zone == "l_arm") + else if (zone == BODY_ZONE_L_ARM) return "left arm" - else if (zone == "r_arm") + else if (zone == BODY_ZONE_R_ARM) return "right arm" - else if (zone == "l_leg") + else if (zone == BODY_ZONE_L_LEG) return "left leg" - else if (zone == "r_leg") + else if (zone == BODY_ZONE_R_LEG) return "right leg" - else if (zone == "l_foot") + else if (zone == BODY_ZONE_PRECISE_L_FOOT) return "left foot" - else if (zone == "r_foot") + else if (zone == BODY_ZONE_PRECISE_R_FOOT) return "right foot" else return zone diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index e582e3ec0b..18cd821399 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -374,7 +374,7 @@ name = "damage zone" icon_state = "zone_sel" screen_loc = ui_zonesel - var/selecting = "chest" + var/selecting = BODY_ZONE_CHEST /obj/screen/zone_sel/Click(location, control,params) if(isobserver(usr)) @@ -389,44 +389,44 @@ if(1 to 9) //Legs switch(icon_x) if(10 to 15) - choice = "r_leg" + choice = BODY_ZONE_R_LEG if(17 to 22) - choice = "l_leg" + choice = BODY_ZONE_L_LEG else return 1 if(10 to 13) //Hands and groin switch(icon_x) if(8 to 11) - choice = "r_arm" + choice = BODY_ZONE_R_ARM if(12 to 20) - choice = "groin" + choice = BODY_ZONE_PRECISE_GROIN if(21 to 24) - choice = "l_arm" + choice = BODY_ZONE_L_ARM else return 1 if(14 to 22) //Chest and arms to shoulders switch(icon_x) if(8 to 11) - choice = "r_arm" + choice = BODY_ZONE_R_ARM if(12 to 20) - choice = "chest" + choice = BODY_ZONE_CHEST if(21 to 24) - choice = "l_arm" + choice = BODY_ZONE_L_ARM else return 1 if(23 to 30) //Head, but we need to check for eye or mouth if(icon_x in 12 to 20) - choice = "head" + choice = BODY_ZONE_HEAD switch(icon_y) if(23 to 24) if(icon_x in 15 to 17) - choice = "mouth" + choice = BODY_ZONE_PRECISE_MOUTH if(26) //Eyeline, eyes are on 15 and 17 if(icon_x in 14 to 18) - choice = "eyes" + choice = BODY_ZONE_PRECISE_EYES if(25 to 27) if(icon_x in 15 to 17) - choice = "eyes" + choice = BODY_ZONE_PRECISE_EYES return set_selected_zone(choice, usr) diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm index 587236e802..187fa45c45 100644 --- a/code/_onclick/other_mobs.dm +++ b/code/_onclick/other_mobs.dm @@ -91,7 +91,7 @@ return var/mob/living/carbon/ML = A if(istype(ML)) - var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg") + var/dam_zone = pick(BODY_ZONE_CHEST, BODY_ZONE_PRECISE_L_HAND, BODY_ZONE_PRECISE_R_HAND, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) var/obj/item/bodypart/affecting = null if(ishuman(ML)) var/mob/living/carbon/human/H = ML diff --git a/code/controllers/subsystem/processing/circuit.dm b/code/controllers/subsystem/processing/circuit.dm index a9abacd934..9fc3683266 100644 --- a/code/controllers/subsystem/processing/circuit.dm +++ b/code/controllers/subsystem/processing/circuit.dm @@ -48,21 +48,35 @@ PROCESSING_SUBSYSTEM_DEF(circuit) /obj/item/device/electronic_assembly/calc, /obj/item/device/electronic_assembly/clam, /obj/item/device/electronic_assembly/simple, + /obj/item/device/electronic_assembly/hook, + /obj/item/device/electronic_assembly/pda, /obj/item/device/electronic_assembly/medium/default, /obj/item/device/electronic_assembly/medium/box, /obj/item/device/electronic_assembly/medium/clam, /obj/item/device/electronic_assembly/medium/medical, + /obj/item/device/electronic_assembly/medium/gun, + /obj/item/device/electronic_assembly/medium/radio, /obj/item/device/electronic_assembly/large/default, /obj/item/device/electronic_assembly/large/scope, /obj/item/device/electronic_assembly/large/terminal, /obj/item/device/electronic_assembly/large/arm, + /obj/item/device/electronic_assembly/large/tall, + /obj/item/device/electronic_assembly/large/industrial, /obj/item/device/electronic_assembly/drone/default, - /obj/item/device/electronic_assembly/drone/arms + /obj/item/device/electronic_assembly/drone/arms, + /obj/item/device/electronic_assembly/drone/secbot, + /obj/item/device/electronic_assembly/drone/medbot, + /obj/item/device/electronic_assembly/drone/genbot, + /obj/item/device/electronic_assembly/drone/android, + /obj/item/device/electronic_assembly/wallmount/light, + /obj/item/device/electronic_assembly/wallmount, + /obj/item/device/electronic_assembly/wallmount/heavy ///obj/item/weapon/implant/integrated_circuit ) circuit_fabricator_recipe_list["Tools"] = list( /obj/item/device/integrated_electronics/wirer, /obj/item/device/integrated_electronics/debugger, - /obj/item/device/integrated_electronics/analyzer + /obj/item/device/integrated_electronics/analyzer, + /obj/item/device/integrated_electronics/detailer ) diff --git a/code/datums/brain_damage/mild.dm b/code/datums/brain_damage/mild.dm index 2631f209cc..375898f1fb 100644 --- a/code/datums/brain_damage/mild.dm +++ b/code/datums/brain_damage/mild.dm @@ -43,9 +43,7 @@ /datum/brain_trauma/mild/dumbness/on_gain() owner.add_trait(TRAIT_DUMB, TRAUMA_TRAIT) - GET_COMPONENT_FROM(mood, /datum/component/mood, owner) - if(mood) - mood.add_event("dumb", /datum/mood_event/oblivious) + owner.SendSignal(COMSIG_ADD_MOOD_EVENT, "dumb", /datum/mood_event/oblivious) ..() /datum/brain_trauma/mild/dumbness/on_life() @@ -59,9 +57,7 @@ /datum/brain_trauma/mild/dumbness/on_lose() owner.remove_trait(TRAIT_DUMB, TRAUMA_TRAIT) owner.derpspeech = 0 - GET_COMPONENT_FROM(mood, /datum/component/mood, owner) - if(mood) - mood.clear_event("dumb") + owner.SendSignal(COMSIG_CLEAR_MOOD_EVENT, "dumb") ..() /datum/brain_trauma/mild/speech_impediment diff --git a/code/datums/components/beauty.dm b/code/datums/components/beauty.dm new file mode 100644 index 0000000000..4dbfca4014 --- /dev/null +++ b/code/datums/components/beauty.dm @@ -0,0 +1,35 @@ +/datum/component/beauty + var/beauty = 0 + +/datum/component/beauty/Initialize(beautyamount) + if(!ismovableatom(parent)) + . = COMPONENT_INCOMPATIBLE + CRASH("Someone put a beauty component on a non-atom/movable, not everything can be pretty.") + beauty = beautyamount + RegisterSignal(COMSIG_ENTER_AREA, .proc/enter_area) + RegisterSignal(COMSIG_EXIT_AREA, .proc/exit_area) + var/area/A = get_area(parent) + if(!A || A.outdoors) + return + A.totalbeauty += beauty + A.update_beauty() + +/datum/component/beauty/proc/enter_area(area/A) + if(A.outdoors) //Fuck the outside. + return FALSE + A.totalbeauty += beauty + A.update_beauty() + +/datum/component/beauty/proc/exit_area(area/A) + if(A.outdoors) //Fuck the outside. + return FALSE + A.totalbeauty -= beauty + A.update_beauty() + +/datum/component/beauty/Destroy() + . = ..() + var/area/A = get_area(parent) + if(!A || A.outdoors) + return + A.totalbeauty -= beauty + A.update_beauty() diff --git a/code/datums/components/caltrop.dm b/code/datums/components/caltrop.dm index 9193651ee2..7001523235 100644 --- a/code/datums/components/caltrop.dm +++ b/code/datums/components/caltrop.dm @@ -30,7 +30,7 @@ if((flags & CALTROP_IGNORE_WALKERS) && H.m_intent == MOVE_INTENT_WALK) return - var/picked_def_zone = pick("l_leg", "r_leg") + var/picked_def_zone = pick(BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) var/obj/item/bodypart/O = H.get_bodypart(picked_def_zone) if(!istype(O)) return diff --git a/code/datums/components/material_container.dm b/code/datums/components/material_container.dm index 830f2d9a42..5221e2b387 100644 --- a/code/datums/components/material_container.dm +++ b/code/datums/components/material_container.dm @@ -89,7 +89,9 @@ var/obj/item/stack/S = I to_chat(user, "You insert [inserted] [S.singular_name][inserted>1 ? "s" : ""] into [parent].") if(!QDELETED(I)) - user.put_in_active_hand(I) + if(!user.put_in_hands(I)) + stack_trace("Warning: User could not put object back in hand during material container insertion, line [__LINE__]! This can lead to issues.") + I.forceMove(user.drop_location()) else to_chat(user, "You insert a material total of [inserted] into [parent].") qdel(I) diff --git a/code/datums/components/mood.dm b/code/datums/components/mood.dm index 2f0401302f..f522445ee0 100644 --- a/code/datums/components/mood.dm +++ b/code/datums/components/mood.dm @@ -1,10 +1,12 @@ /datum/component/mood var/mood //Real happiness + var/sanity = 100 //Current sanity var/shown_mood //Shown happiness, this is what others can see when they try to examine you, prevents antag checking by noticing traitors are always very happy. - var/mood_level //To track what stage of moodies they're on + var/mood_level = 5 //To track what stage of moodies they're on var/mood_modifier = 1 //Modifier to allow certain mobs to be less affected by moodlets var/datum/mood_event/list/mood_events = list() var/mob/living/owner + var/datum/looping_sound/reverse_bear_trap/slow/soundloop //Insanity ticking /datum/component/mood/Initialize() if(!isliving(parent)) @@ -12,16 +14,61 @@ CRASH("Some good for nothing loser put a mood component on something that isn't even a living mob.") START_PROCESSING(SSmood, src) owner = parent + soundloop = new(list(owner), FALSE, TRUE) + RegisterSignal(COMSIG_ADD_MOOD_EVENT, .proc/add_event) + RegisterSignal(COMSIG_CLEAR_MOOD_EVENT, .proc/clear_event) + RegisterSignal(COMSIG_ENTER_AREA, .proc/update_beauty) /datum/component/mood/Destroy() STOP_PROCESSING(SSmood, src) + QDEL_NULL(soundloop) return ..() /datum/component/mood/proc/print_mood() var/msg = "*---------*\nYour current mood\n" - for(var/i in mood_events) - var/datum/mood_event/event = mood_events[i] - msg += event.description + msg += "My mental status: " //Long term + switch(sanity) + if(SANITY_GREAT to INFINITY) + msg += "My mind feels like a temple!\n" + if(SANITY_NEUTRAL to SANITY_GREAT) + msg += "I have been feeling great lately!\n" + if(SANITY_DISTURBED to SANITY_NEUTRAL) + msg += "I have felt quite decent lately.\n" + if(SANITY_UNSTABLE to SANITY_DISTURBED) + msg += "I'm feeling a little bit unhinged...\n" + if(SANITY_CRAZY to SANITY_UNSTABLE) + msg += "I'm freaking out!!\n" + if(SANITY_INSANE to SANITY_CRAZY) + msg += "AHAHAHAHAHAHAHAHAHAH!!\n" + + msg += "My current mood: " //Short term + switch(mood_level) + if(1) + msg += "I wish I was dead!\n" + if(2) + msg += "I feel terrible...\n" + if(3) + msg += "I feel very upset.\n" + if(4) + msg += "I'm a bit sad.\n" + if(5) + msg += "I'm alright.\n" + if(6) + msg += "I feel pretty okay.\n" + if(7) + msg += "I feel pretty good.\n" + if(8) + msg += "I feel amazing!\n" + if(9) + msg += "I love life!\n" + + msg += "Moodlets:\n"//All moodlets + if(mood_events.len) + for(var/i in mood_events) + var/datum/mood_event/event = mood_events[i] + msg += event.description + else + msg += "Nothing special has happend to me lately!\n" to_chat(owner, msg) /datum/component/mood/proc/update_mood() //Called whenever a mood event is added or removed @@ -54,41 +101,87 @@ mood_level = 8 if(MOOD_LEVEL_HAPPY4 to INFINITY) mood_level = 9 + update_mood_icon() + +/datum/component/mood/proc/update_mood_icon() if(owner.client && owner.hud_used) - owner.hud_used.mood.icon_state = "mood[mood_level]" + if(sanity < 25) + owner.hud_used.mood.icon_state = "mood_insane" + else + owner.hud_used.mood.icon_state = "mood[mood_level]" /datum/component/mood/process() //Called on SSmood process - switch(mood) - if(-INFINITY to MOOD_LEVEL_SAD4) + switch(sanity) + if(SANITY_INSANE to SANITY_CRAZY) owner.overlay_fullscreen("depression", /obj/screen/fullscreen/depression, 3) - if(MOOD_LEVEL_SAD4 to MOOD_LEVEL_SAD3) + update_mood_icon() + if(prob(7)) + owner.playsound_local(null, pick(CREEPY_SOUNDS), 100, 1) + soundloop.start() + if(SANITY_INSANE to SANITY_UNSTABLE) owner.overlay_fullscreen("depression", /obj/screen/fullscreen/depression, 2) - if(MOOD_LEVEL_SAD3 to MOOD_LEVEL_SAD2) + if(prob(3)) + owner.playsound_local(null, pick(CREEPY_SOUNDS), 60, 1) + soundloop.stop() + if(SANITY_UNSTABLE to SANITY_DISTURBED) owner.overlay_fullscreen("depression", /obj/screen/fullscreen/depression, 1) - if(MOOD_LEVEL_SAD2 to INFINITY) + soundloop.stop() + if(SANITY_DISTURBED to SANITY_GREAT) owner.clear_fullscreen("depression") + soundloop.stop() + + switch(mood_level) + if(1) + DecreaseSanity(0.4) + if(2) + DecreaseSanity(0.25) + if(3) + DecreaseSanity(0.15) + if(4) + DecreaseSanity(0.05) + if(5) + IncreaseSanity(0.1) + if(6) + IncreaseSanity(0.15) + if(7) + IncreaseSanity(0.20) + if(8) + IncreaseSanity(0.25, 125) + if(9) + IncreaseSanity(0.4, 125) if(owner.has_trait(TRAIT_DEPRESSION)) - if(prob(0.1)) + if(prob(0.05)) add_event("depression", /datum/mood_event/depression) clear_event("jolly") if(owner.has_trait(TRAIT_JOLLY)) - if(prob(0.1)) + if(prob(0.05)) add_event("jolly", /datum/mood_event/jolly) clear_event("depression") + var/area/A = get_area(owner) + if(A) + update_beauty(A) + +/datum/component/mood/proc/DecreaseSanity(amount) + sanity = max(0, sanity - amount) + +/datum/component/mood/proc/IncreaseSanity(amount, limit = 99) + if(sanity > limit) + DecreaseSanity(-0.5) //Removes some sanity to go back to our current limit. + else + sanity = min(limit, sanity + amount) + /datum/component/mood/proc/add_event(category, type, param) //Category will override any events in the same category, should be unique unless the event is based on the same thing like hunger. var/datum/mood_event/the_event if(mood_events[category]) the_event = mood_events[category] if(the_event.type != type) clear_event(category) - return .() else return 0 //Don't have to update the event. - else - the_event = new type(src, param) + the_event = new type(src, param) mood_events[category] = the_event update_mood() @@ -105,18 +198,22 @@ qdel(event) update_mood() -/datum/component/mood/proc/update_beauty(var/area/A) +/datum/component/mood/proc/update_beauty(area/A) if(A.outdoors) //if we're outside, we don't care. clear_event("area_beauty") return FALSE switch(A.beauty) if(-INFINITY to BEAUTY_LEVEL_HORRID) - add_event("area_beauty", /datum/mood_event/disgustingroom) + add_event("area_beauty", /datum/mood_event/horridroom) if(BEAUTY_LEVEL_HORRID to BEAUTY_LEVEL_BAD) - add_event("area_beauty", /datum/mood_event/grossroom) - if(BEAUTY_LEVEL_BAD to BEAUTY_LEVEL_GOOD) + add_event("area_beauty", /datum/mood_event/badroom) + if(BEAUTY_LEVEL_BAD to BEAUTY_LEVEL_MEH) + add_event("area_beauty", /datum/mood_event/mehroom) + if(BEAUTY_LEVEL_MEH to BEAUTY_LEVEL_DECENT) clear_event("area_beauty") + if(BEAUTY_LEVEL_DECENT to BEAUTY_LEVEL_GOOD) + add_event("area_beauty", /datum/mood_event/decentroom) if(BEAUTY_LEVEL_GOOD to BEAUTY_LEVEL_GREAT) - add_event("area_beauty", /datum/mood_event/niceroom) + add_event("area_beauty", /datum/mood_event/goodroom) if(BEAUTY_LEVEL_GREAT to INFINITY) add_event("area_beauty", /datum/mood_event/greatroom) diff --git a/code/datums/components/wet_floor.dm b/code/datums/components/wet_floor.dm index 92f0250e4f..3a08df023d 100644 --- a/code/datums/components/wet_floor.dm +++ b/code/datums/components/wet_floor.dm @@ -21,17 +21,17 @@ for(var/i in WF.time_left_list) add_wet(text2num(i), WF.time_left_list[i]) -/datum/component/wet_floor/Initialize(strength, duration_minimum, duration_add, duration_maximum, permanent = FALSE) +/datum/component/wet_floor/Initialize(strength, duration_minimum, duration_add, duration_maximum, _permanent = FALSE) if(!isopenturf(parent)) . = COMPONENT_INCOMPATIBLE CRASH("Wet floor component attempted to be applied to a non open turf!") add_wet(strength, duration_minimum, duration_add, duration_maximum) RegisterSignal(COMSIG_TURF_IS_WET, .proc/is_wet) RegisterSignal(COMSIG_TURF_MAKE_DRY, .proc/dry) + permanent = _permanent if(!permanent) START_PROCESSING(SSwet_floors, src) - if(gc()) - stack_trace("Warning: Wet floor component added and immediately deleted! What a waste of time!") + addtimer(CALLBACK(src, .proc/gc, TRUE), 1) //GC after initialization. /datum/component/wet_floor/Destroy() STOP_PROCESSING(SSwet_floors, src) @@ -140,10 +140,23 @@ var/turf/T = to_datum T.add_overlay(current_overlay) -/datum/component/wet_floor/proc/add_wet(type, duration_minimum = 0, duration_add = 0, duration_maximum = MAXIMUM_WET_TIME) +/datum/component/wet_floor/proc/add_wet(type, duration_minimum = 0, duration_add = 0, duration_maximum = MAXIMUM_WET_TIME, _permanent = FALSE) var/static/list/allowed_types = list(TURF_WET_WATER, TURF_WET_LUBE, TURF_WET_ICE, TURF_WET_PERMAFROST) - if(!duration_minimum || duration_minimum < 0 || !type || !(type in allowed_types)) + if(duration_minimum <= 0 || !type) return FALSE + if(type in allowed_types) + return _do_add_wet(type, duration_minimum, duration_add, duration_maximum) + else + . = NONE + for(var/i in allowed_types) + if(!(type & i)) + continue + . |= _do_add_wet(i, duration_minimum, duration_add, duration_maximum) + if(_permanent) + permanent = TRUE + STOP_PROCESSING(SSwet_floors, src) + +/datum/component/wet_floor/proc/_do_add_wet(type, duration_minimum, duration_add, duration_maximum) var/time = 0 if(LAZYACCESS(time_left_list, "[type]")) time = CLAMP(LAZYACCESS(time_left_list, "[type]") + duration_add, duration_minimum, duration_maximum) @@ -153,10 +166,14 @@ check(TRUE) return TRUE -/datum/component/wet_floor/proc/gc() +/datum/component/wet_floor/proc/gc(on_init = FALSE) if(!LAZYLEN(time_left_list)) + if(on_init) + var/turf/T = parent + stack_trace("Warning: Wet floor component gc'd right initializatoin! What a waste of time and CPU! Type = [T? T.type : "ERROR - NO PARENT"], Coords = [istype(T)? COORD(T) : "ERROR - INVALID PARENT"].") qdel(src) return TRUE + return FALSE /datum/component/wet_floor/proc/check(force_update = FALSE) var/changed = FALSE diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index 3158a2660e..c6c0f2353a 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -1178,9 +1178,9 @@ var/edit_action = input(usr, "What would you like to do?","Modify Body Part") as null|anything in list("add","remove", "augment") if(!edit_action) return - var/list/limb_list = list("head", "l_arm", "r_arm", "l_leg", "r_leg") + var/list/limb_list = list(BODY_ZONE_HEAD, BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) if(edit_action == "augment") - limb_list += "chest" + limb_list += BODY_ZONE_CHEST var/result = input(usr, "Please choose which body part to [edit_action]","[capitalize(edit_action)] Body Part") as null|anything in limb_list if(!C) diff --git a/code/datums/diseases/_MobProcs.dm b/code/datums/diseases/_MobProcs.dm index c302059324..1a28c3eadf 100644 --- a/code/datums/diseases/_MobProcs.dm +++ b/code/datums/diseases/_MobProcs.dm @@ -47,13 +47,13 @@ if(satiety>0 && prob(satiety/10)) // positive satiety makes it harder to contract the disease. return if(!target_zone) - target_zone = pick(head_ch;"head",body_ch;"body",hands_ch;"hands",feet_ch;"feet") + target_zone = pick(head_ch;BODY_ZONE_HEAD,body_ch;"body",hands_ch;"hands",feet_ch;"feet") if(ishuman(src)) var/mob/living/carbon/human/H = src switch(target_zone) - if("head") + if(BODY_ZONE_HEAD) if(isobj(H.head) && !istype(H.head, /obj/item/paper)) Cl = H.head passed = prob((Cl.permeability_coefficient*100) - 1) @@ -90,7 +90,7 @@ else if(ismonkey(src)) var/mob/living/carbon/monkey/M = src switch(target_zone) - if("head") + if(BODY_ZONE_HEAD) if(M.wear_mask && isobj(M.wear_mask)) Cl = M.wear_mask passed = prob((Cl.permeability_coefficient*100) - 1) diff --git a/code/datums/diseases/advance/symptoms/itching.dm b/code/datums/diseases/advance/symptoms/itching.dm index 1da9f5e8d7..c1952bf716 100644 --- a/code/datums/diseases/advance/symptoms/itching.dm +++ b/code/datums/diseases/advance/symptoms/itching.dm @@ -45,7 +45,7 @@ BONUS if(!..()) return var/mob/living/carbon/M = A.affected_mob - var/picked_bodypart = pick("head", "chest", "r_arm", "l_arm", "r_leg", "l_leg") + var/picked_bodypart = pick(BODY_ZONE_HEAD, BODY_ZONE_CHEST, BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_R_LEG, BODY_ZONE_L_LEG) var/obj/item/bodypart/bodypart = M.get_bodypart(picked_bodypart) if(bodypart && bodypart.status == BODYPART_ORGANIC && !bodypart.is_pseudopart) //robotic limbs will mean less scratching overall var/can_scratch = scratch && !M.incapacitated() && get_location_accessible(M, picked_bodypart) diff --git a/code/datums/diseases/rhumba_beat.dm b/code/datums/diseases/rhumba_beat.dm index 1aee35741a..2df4466822 100644 --- a/code/datums/diseases/rhumba_beat.dm +++ b/code/datums/diseases/rhumba_beat.dm @@ -19,7 +19,7 @@ switch(stage) if(2) if(prob(45)) - affected_mob.adjustToxLoss(5) + affected_mob.adjustFireLoss(5) affected_mob.updatehealth() if(prob(1)) to_chat(affected_mob, "You feel strange...") @@ -31,15 +31,16 @@ else if(prob(10)) to_chat(affected_mob, "You feel the need to chick chicky boom...") if(4) - if(prob(10)) - affected_mob.emote("gasp") - to_chat(affected_mob, "You feel a burning beat inside...") if(prob(20)) - affected_mob.adjustToxLoss(5) - affected_mob.updatehealth() + if (prob(50)) + affected_mob.adjust_fire_stacks(2) + affected_mob.IgniteMob() + else + affected_mob.emote("gasp") + to_chat(affected_mob, "You feel a burning beat inside...") if(5) to_chat(affected_mob, "Your body is unable to contain the Rhumba Beat...") if(prob(50)) - affected_mob.gib() + explosion(get_turf(affected_mob), -1, 0, 2, 3, 0, 2) // This is equivalent to a lvl 1 fireball else return diff --git a/code/datums/looping_sounds/item_sounds.dm b/code/datums/looping_sounds/item_sounds.dm index b418d20985..d0ec277b36 100644 --- a/code/datums/looping_sounds/item_sounds.dm +++ b/code/datums/looping_sounds/item_sounds.dm @@ -41,6 +41,12 @@ mid_length = 3.5 volume = 25 +/datum/looping_sound/reverse_bear_trap/slow + mid_sounds = list('sound/effects/clock_tick.ogg') + mid_length = 10 + volume = 40 + + /datum/looping_sound/reverse_bear_trap_beep mid_sounds = list('sound/machines/beep.ogg') mid_length = 60 diff --git a/code/datums/martial/psychotic_brawl.dm b/code/datums/martial/psychotic_brawl.dm index b7b5e27926..ce3463367d 100644 --- a/code/datums/martial/psychotic_brawl.dm +++ b/code/datums/martial/psychotic_brawl.dm @@ -42,8 +42,8 @@ D.visible_message("[A] [atk_verb] [D]!", \ "[A] [atk_verb] you!") playsound(get_turf(D), 'sound/weapons/punch1.ogg', 40, 1, -1) - D.apply_damage(rand(5,10), BRUTE, "head") - A.apply_damage(rand(5,10), BRUTE, "head") + D.apply_damage(rand(5,10), BRUTE, BODY_ZONE_HEAD) + A.apply_damage(rand(5,10), BRUTE, BODY_ZONE_HEAD) if(!istype(D.head,/obj/item/clothing/head/helmet/) && !istype(D.head,/obj/item/clothing/head/hardhat)) D.adjustBrainLoss(5) A.Stun(rand(10,45)) diff --git a/code/datums/martial/sleeping_carp.dm b/code/datums/martial/sleeping_carp.dm index 024bacf6bb..743738e9a9 100644 --- a/code/datums/martial/sleeping_carp.dm +++ b/code/datums/martial/sleeping_carp.dm @@ -42,7 +42,7 @@ playsound(get_turf(A), 'sound/weapons/thudswoosh.ogg', 50, 1, -1) D.emote("scream") D.dropItemToGround(D.get_active_held_item()) - D.apply_damage(5, BRUTE, pick("l_arm", "r_arm")) + D.apply_damage(5, BRUTE, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM)) D.Knockdown(60)//CIT CHANGE - makes sleepingcarp use knockdown() for its stuns instead of stun() return 1 add_logs(A, D, "wrist wrenched (Sleeping Carp)") @@ -78,7 +78,7 @@ A.do_attack_animation(D, ATTACK_EFFECT_KICK) D.visible_message("[A] kicks [D] in the head!", \ "[A] kicks you in the jaw!") - D.apply_damage(20, BRUTE, "head") + D.apply_damage(20, BRUTE, BODY_ZONE_HEAD) D.drop_all_held_items() playsound(get_turf(D), 'sound/weapons/punch1.ogg', 50, 1, -1) D.Knockdown(80)//CIT CHANGE - makes sleepingcarp use knockdown() for its stuns instead of stun() @@ -93,7 +93,7 @@ "[A] piledrives you with their elbow!") if(D.stat) D.death() //FINISH HIM! - D.apply_damage(50, BRUTE, "chest") + D.apply_damage(50, BRUTE, BODY_ZONE_CHEST) playsound(get_turf(D), 'sound/weapons/punch1.ogg', 75, 1, -1) return 1 add_logs(A, D, "elbow dropped (Sleeping Carp)") @@ -202,7 +202,7 @@ user.Knockdown(60) if(ishuman(user)) var/mob/living/carbon/human/H = user - H.apply_damage(2*force, BRUTE, "head") + H.apply_damage(2*force, BRUTE, BODY_ZONE_HEAD) else user.take_bodypart_damage(2*force) return diff --git a/code/datums/mood_events/beauty_events.dm b/code/datums/mood_events/beauty_events.dm new file mode 100644 index 0000000000..534facdb21 --- /dev/null +++ b/code/datums/mood_events/beauty_events.dm @@ -0,0 +1,23 @@ +/datum/mood_event/horridroom + description = "This room looks terrible!\n" + mood_change = -5 + +/datum/mood_event/badroom + description = "This room looks really bad.\n" + mood_change = -3 + +/datum/mood_event/mehroom + description = "This room doesn't look great.\n" + mood_change = -1 + +/datum/mood_event/decentroom + description = "This room looks alright.\n" + mood_change = 2 + +/datum/mood_event/goodroom + description = "This room looks really pretty!\n" + mood_change = 4 + +/datum/mood_event/greatroom + description = "This room is beautiful!\n" + mood_change = 7 diff --git a/code/datums/mood_events/generic_negative_events.dm b/code/datums/mood_events/generic_negative_events.dm index c2db1e8a37..95161f4f39 100644 --- a/code/datums/mood_events/generic_negative_events.dm +++ b/code/datums/mood_events/generic_negative_events.dm @@ -49,7 +49,7 @@ /datum/mood_event/depression description = "I feel sad for no particular reason.\n" - mood_change = -6 + mood_change = -9 timeout = 1200 /datum/mood_event/shameful_suicide //suicide_acts that return SHAME, like sord @@ -64,7 +64,7 @@ /datum/mood_event/noshoes description = "I am a disgrace to comedy everywhere!\n" - mood_change = -3 + mood_change = -5 /datum/mood_event/tased description = "There's no \"z\" in \"taser\". It's in the zap.\n" @@ -73,13 +73,22 @@ /datum/mood_event/embedded description = "Pull it out!\n" - mood_change = -6 + mood_change = -7 /datum/mood_event/table description = "Someone threw me on a table!\n" mood_change = -2 timeout = 1200 +/datum/mood_event/table/add_effects() + if(ishuman(owner)) + var/mob/living/carbon/human/H = owner + if(iscatperson(H)) + H.startTailWag() + addtimer(CALLBACK(H, /mob/living/carbon/human.proc/endTailWag), 30) + description = "They want to play on the table!\n" + mood_change = 2 + /datum/mood_event/brain_damage mood_change = -3 @@ -96,15 +105,6 @@ mood_change = -3 timeout = 3000 - -/datum/mood_event/grossroom - description = "This room is kind of dirty...\n" - mood_change = -3 - -/datum/mood_event/disgustingroom - description = "This room is disgusting!\n" - mood_change = -5 - //These are unused so far but I want to remember them to use them later /datum/mood_event/cloned_corpse description = "I recently saw my own corpse...\n" diff --git a/code/datums/mood_events/generic_positive_events.dm b/code/datums/mood_events/generic_positive_events.dm index f5c5bb9807..e96567cf9d 100644 --- a/code/datums/mood_events/generic_positive_events.dm +++ b/code/datums/mood_events/generic_positive_events.dm @@ -37,11 +37,6 @@ description = "What a lovely day.\n" mood_change = 3 -/datum/mood_event/happytable - description = "They want to play on the table!\n" - mood_change = 2 - timeout = 1200 - /datum/mood_event/jolly description = "I feel happy for no particular reason.\n" mood_change = 6 @@ -61,11 +56,3 @@ description = "I have seen the truth, praise the almighty one!\n" mood_change = 40 //maybe being a cultist isnt that bad after all hidden = TRUE - -/datum/mood_event/niceroom - description = "This room looks really pretty!\n" - mood_change = 4 - -/datum/mood_event/greatroom - description = "This room is beautiful!\n" - mood_change = 7 diff --git a/code/datums/mutations/body.dm b/code/datums/mutations/body.dm index fd0dd077b7..f0da9b125f 100644 --- a/code/datums/mutations/body.dm +++ b/code/datums/mutations/body.dm @@ -11,9 +11,7 @@ owner.visible_message("[owner] starts having a seizure!", "You have a seizure!") owner.Unconscious(200) owner.Jitter(1000) - GET_COMPONENT_FROM(mood, /datum/component/mood, owner) - if(mood) - mood.add_event("epilepsy", /datum/mood_event/epilepsy) + owner.SendSignal(COMSIG_ADD_MOOD_EVENT, "epilepsy", /datum/mood_event/epilepsy) addtimer(CALLBACK(src, .proc/jitter_less, owner), 90) /datum/mutation/human/epilepsy/proc/jitter_less(mob/living/carbon/human/owner) diff --git a/code/datums/mutations/hulk.dm b/code/datums/mutations/hulk.dm index b12efbc452..d51b7dd891 100644 --- a/code/datums/mutations/hulk.dm +++ b/code/datums/mutations/hulk.dm @@ -14,9 +14,7 @@ owner.add_trait(TRAIT_STUNIMMUNE, TRAIT_HULK) owner.add_trait(TRAIT_PUSHIMMUNE, TRAIT_HULK) owner.update_body_parts() - GET_COMPONENT_FROM(mood, /datum/component/mood, owner) - if(mood) - mood.add_event("hulk", /datum/mood_event/hulk) + owner.SendSignal(COMSIG_ADD_MOOD_EVENT, "hulk", /datum/mood_event/hulk) /datum/mutation/human/hulk/on_attack_hand(mob/living/carbon/human/owner, atom/target, proximity) if(proximity) //no telekinetic hulk attack @@ -33,10 +31,8 @@ owner.remove_trait(TRAIT_STUNIMMUNE, TRAIT_HULK) owner.remove_trait(TRAIT_PUSHIMMUNE, TRAIT_HULK) owner.update_body_parts() - GET_COMPONENT_FROM(mood, /datum/component/mood, owner) - if(mood) - mood.clear_event("hulk") - + owner.SendSignal(COMSIG_CLEAR_MOOD_EVENT, "hulk") + /datum/mutation/human/hulk/say_mod(message) if(message) message = "[uppertext(replacetext(message, ".", "!"))]!!" diff --git a/code/datums/mutations/sight.dm b/code/datums/mutations/sight.dm index 60f5d75c5e..464d435afd 100644 --- a/code/datums/mutations/sight.dm +++ b/code/datums/mutations/sight.dm @@ -60,7 +60,7 @@ dna_block = NON_SCANNABLE text_gain_indication = "You feel pressure building up behind your eyes." layer_used = FRONT_MUTATIONS_LAYER - limb_req = "head" + limb_req = BODY_ZONE_HEAD /datum/mutation/human/laser_eyes/New() ..() diff --git a/code/datums/mutations/telekinesis.dm b/code/datums/mutations/telekinesis.dm index 3aa562ee74..a5b15eacb8 100644 --- a/code/datums/mutations/telekinesis.dm +++ b/code/datums/mutations/telekinesis.dm @@ -5,7 +5,7 @@ get_chance = 20 lowest_value = 256 * 12 text_gain_indication = "You feel smarter!" - limb_req = "head" + limb_req = BODY_ZONE_HEAD /datum/mutation/human/telekinesis/New() ..() diff --git a/code/datums/status_effects/buffs.dm b/code/datums/status_effects/buffs.dm index 63b5ca81ba..6fb7637f82 100644 --- a/code/datums/status_effects/buffs.dm +++ b/code/datums/status_effects/buffs.dm @@ -499,11 +499,11 @@ if(!itemUser.has_hand_for_held_index(hand)) //If user does not have the corresponding hand anymore, give them one and return the rod to their hand if(((hand % 2) == 0)) - var/obj/item/bodypart/L = itemUser.newBodyPart("r_arm", FALSE, FALSE) + var/obj/item/bodypart/L = itemUser.newBodyPart(BODY_ZONE_R_ARM, FALSE, FALSE) L.attach_limb(itemUser) itemUser.put_in_hand(newRod, hand, forced = TRUE) else - var/obj/item/bodypart/L = itemUser.newBodyPart("l_arm", FALSE, FALSE) + var/obj/item/bodypart/L = itemUser.newBodyPart(BODY_ZONE_L_ARM, FALSE, FALSE) L.attach_limb(itemUser) itemUser.put_in_hand(newRod, hand, forced = TRUE) to_chat(itemUser, "Your arm suddenly grows back with the Rod of Asclepius still attached!") diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index 915d5bce8d..584e689d74 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -130,11 +130,11 @@ if(GLOB.ratvar_awakens) owner.Knockdown(20) if(iscultist(owner)) - owner.apply_damage(cultist_damage_on_toggle * 0.5, BURN, "l_leg") - owner.apply_damage(cultist_damage_on_toggle * 0.5, BURN, "r_leg") + owner.apply_damage(cultist_damage_on_toggle * 0.5, BURN, BODY_ZONE_L_LEG) + owner.apply_damage(cultist_damage_on_toggle * 0.5, BURN, BODY_ZONE_R_LEG) else - owner.apply_damage(leg_damage_on_toggle * 0.5, BURN, "l_leg") - owner.apply_damage(leg_damage_on_toggle * 0.5, BURN, "r_leg") + owner.apply_damage(leg_damage_on_toggle * 0.5, BURN, BODY_ZONE_L_LEG) + owner.apply_damage(leg_damage_on_toggle * 0.5, BURN, BODY_ZONE_R_LEG) if(owner.m_intent != MOVE_INTENT_WALK) if(!iscultist(owner)) to_chat(owner, "Your leg[number_legs > 1 ? "s shiver":" shivers"] with pain!") diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index 023a8c2197..59957ef2bc 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -11,6 +11,17 @@ lose_text = "You feel awake again." medical_record_text = "Patient has abnormal sleep study results and is difficult to wake up." +/datum/trait/brainproblems + name = "Brain Tumor" + desc = "You have a little friend in your brain that is slowly destroying it. Better bring some mannitol!" + value = -2 + gain_text = "You feel smooth." + lose_text = "You feel wrinkled again." + medical_record_text = "Patient has a tumor in their brain that is slowly driving them to brain death." + +/datum/trait/brainproblems/on_process() + trait_holder.adjustBrainLoss(0.2) + /datum/trait/nearsighted //t. errorage @@ -74,21 +85,21 @@ var/slot_string = "limb" /datum/trait/prosthetic_limb/on_spawn() - var/limb_slot = pick("l_arm", "r_arm", "l_leg", "r_leg") + var/limb_slot = pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) var/mob/living/carbon/human/H = trait_holder var/obj/item/bodypart/old_part = H.get_bodypart(limb_slot) var/obj/item/bodypart/prosthetic switch(limb_slot) - if("l_arm") + if(BODY_ZONE_L_ARM) prosthetic = new/obj/item/bodypart/l_arm/robot/surplus(trait_holder) slot_string = "left arm" - if("r_arm") + if(BODY_ZONE_R_ARM) prosthetic = new/obj/item/bodypart/r_arm/robot/surplus(trait_holder) slot_string = "right arm" - if("l_leg") + if(BODY_ZONE_L_LEG) prosthetic = new/obj/item/bodypart/l_leg/robot/surplus(trait_holder) slot_string = "left leg" - if("r_leg") + if(BODY_ZONE_R_LEG) prosthetic = new/obj/item/bodypart/r_leg/robot/surplus(trait_holder) slot_string = "right leg" prosthetic.replace_limb(H) diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 0f3bfb12b1..f5d0ec3bd7 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -31,8 +31,9 @@ var/outdoors = FALSE //For space, the asteroid, lavaland, etc. Used with blueprints to determine if we are adding a new area (vs editing a station room) - var/beauty = 0 //To see how clean/dirty this area is, only works with indoors areas. - var/areasize = 0 //Size of the area in tiles, only calculated for indoors areas. + var/totalbeauty = 0 //All beauty in this area combined, only includes indoor area. + var/beauty = 0 // Beauty average per open turf in the area + var/areasize = 0 //Size of the area in open turfs, only calculated for indoors areas. var/power_equip = TRUE var/power_light = TRUE @@ -136,6 +137,7 @@ GLOBAL_LIST_EMPTY(teleportlocs) if(contents.len) var/list/areas_in_z = SSmapping.areas_in_z var/z + update_areasize() for(var/i in 1 to contents.len) var/atom/thing = contents[i] if(!thing) @@ -148,12 +150,12 @@ GLOBAL_LIST_EMPTY(teleportlocs) if(!areas_in_z["[z]"]) areas_in_z["[z]"] = list() areas_in_z["[z]"] += src - update_area_size() return INITIALIZE_HINT_LATELOAD /area/LateInitialize() power_change() // all machines set to current power level, also updates icon + update_beauty() /area/Destroy() STOP_PROCESSING(SSobj, src) @@ -476,12 +478,14 @@ GLOBAL_LIST_EMPTY(teleportlocs) used_environ += amount -/area/Entered(A) +/area/Entered(atom/movable/M) set waitfor = FALSE - if(!isliving(A)) + SendSignal(COMSIG_AREA_ENTERED, M) + M.SendSignal(COMSIG_ENTER_AREA, src) //The atom that enters the area + if(!isliving(M)) return - var/mob/living/L = A + var/mob/living/L = M if(!L.ckey) return @@ -501,9 +505,9 @@ GLOBAL_LIST_EMPTY(teleportlocs) L.client.played = TRUE addtimer(CALLBACK(L.client, /client/proc/ResetAmbiencePlayed), 600) - GET_COMPONENT_FROM(mood, /datum/component/mood, L) - if(mood) - mood.update_beauty(src) +/area/Exited(atom/movable/M) + SendSignal(COMSIG_AREA_EXITED, M) + M.SendSignal(COMSIG_EXIT_AREA, src) //The atom that exits the area /client/proc/ResetAmbiencePlayed() played = FALSE @@ -532,11 +536,16 @@ GLOBAL_LIST_EMPTY(teleportlocs) blob_allowed = FALSE addSorted() -/area/proc/update_area_size() +/area/proc/update_beauty() + if(!areasize) + return FALSE + beauty = totalbeauty / areasize + +/area/proc/update_areasize() if(outdoors) return FALSE areasize = 0 - for(var/turf/T in src.contents) + for(var/turf/open/T in contents) areasize++ /area/AllowDrop() diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm index 24fa11eda0..100a0d7dd2 100644 --- a/code/game/data_huds.dm +++ b/code/game/data_huds.dm @@ -446,14 +446,14 @@ var/image/holder = hud_list[DIAG_STAT_HUD] var/icon/I = icon(icon, icon_state, dir) holder.pixel_y = I.Height() - world.icon_size - if((!isturf(loc))||hide) //if not on the ground dont show overlay + if((!isturf(loc))||hide) //if not on the ground don't show overlay holder.icon_state = null else if(!battery) holder.icon_state = "hudoffline" else if(battery.charge == 0) holder.icon_state = "hudoffline" else if(combat_circuits) //has a circuit that can harm people - holder.icon_state = "hudwarn" + holder.icon_state = prefered_hud_icon + "-red" else //Bot is on and not dangerous holder.icon_state = prefered_hud_icon diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 50ad92d44b..c8f5fa6911 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -323,18 +323,18 @@ for(var/datum/mind/mind in candidates) p_ckey = ckey(mind.key) p_rep = SSpersistence.antag_rep[p_ckey] - p_rep = p_rep == null ? 0 : p_rep - if(current <= antag_select) - var/subtract = min(p_rep + DEFAULT_ANTAG_TICKETS, MAX_TICKETS_PER_ROLL) - DEFAULT_ANTAG_TICKETS - SSpersistence.antag_rep_change[p_ckey] = -subtract + var/previous = current + var/spend = min(p_rep + DEFAULT_ANTAG_TICKETS, MAX_TICKETS_PER_ROLL) + current += spend -// WARNING("AR_DEBUG: Player [mind.key] won spending [subtract] tickets from starting value [SSpersistence.antag_rep[p_ckey]]") + if(antag_select >= previous && antag_select <= (current-1)) + SSpersistence.antag_rep_change[p_ckey] = -(spend - DEFAULT_ANTAG_TICKETS) + +// WARNING("AR_DEBUG: Player [mind.key] won spending [spend] tickets from starting value [SSpersistence.antag_rep[p_ckey]]") return mind - current += min(p_rep + DEFAULT_ANTAG_TICKETS, MAX_TICKETS_PER_ROLL) - WARNING("Something has gone terribly wrong. /datum/game_mode/proc/antag_pick failed to select a candidate. Falling back to pick()") return pick(candidates) diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 36e06663f6..d540f84b51 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -449,7 +449,7 @@ // brain function, they also have no limbs or internal organs. if(!H.has_trait(TRAIT_NODISMEMBER)) - var/static/list/zones = list("r_arm", "l_arm", "r_leg", "l_leg") + var/static/list/zones = list(BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_R_LEG, BODY_ZONE_L_LEG) for(var/zone in zones) var/obj/item/bodypart/BP = H.get_bodypart(zone) if(BP) diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index 07f5c0f923..566df0b6c2 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -70,9 +70,7 @@ Reset() /obj/machinery/computer/arcade/proc/prizevend(mob/user) - GET_COMPONENT_FROM(mood, /datum/component/mood, user) - if(mood) - mood.add_event("arcade", /datum/mood_event/arcade) + user.SendSignal(COMSIG_ADD_MOOD_EVENT, "arcade", /datum/mood_event/arcade) if(prob(0.0001)) //1 in a million new /obj/item/gun/energy/pulse/prize(src) SSmedals.UnlockMedal(MEDAL_PULSE, usr.client) @@ -175,7 +173,7 @@ sleep(10) enemy_hp -= attackamt - arcade_action() + arcade_action(usr) else if (href_list["heal"]) blocked = TRUE @@ -191,7 +189,7 @@ player_hp += healamt blocked = TRUE updateUsrDialog() - arcade_action() + arcade_action(usr) else if (href_list["charge"]) blocked = TRUE @@ -204,7 +202,7 @@ updateUsrDialog() sleep(10) - arcade_action() + arcade_action(usr) if (href_list["close"]) usr.unset_machine() @@ -227,7 +225,7 @@ updateUsrDialog() return -/obj/machinery/computer/arcade/battle/proc/arcade_action() +/obj/machinery/computer/arcade/battle/proc/arcade_action(mob/user) if ((enemy_mp <= 0) || (enemy_hp <= 0)) if(!gameover) gameover = TRUE @@ -242,7 +240,7 @@ Reset() obj_flags &= ~EMAGGED else - prizevend(usr) + prizevend(user) SSblackbox.record_feedback("nested tally", "arcade_results", 1, list("win", (obj_flags & EMAGGED ? "emagged":"normal"))) @@ -484,7 +482,7 @@ if (href_list["continue"]) //Continue your travels if(gameStatus == ORION_STATUS_NORMAL && !event && turns != 7) if(turns >= ORION_TRAIL_WINTURN) - win() + win(usr) else food -= (alive+lings_aboard)*2 fuel -= 5 @@ -1028,7 +1026,7 @@ return removed -/obj/machinery/computer/arcade/orion_trail/proc/win() +/obj/machinery/computer/arcade/orion_trail/proc/win(mob/user) gameStatus = ORION_STATUS_START say("Congratulations, you made it to Orion!") if(obj_flags & EMAGGED) @@ -1036,7 +1034,7 @@ message_admins("[key_name_admin(usr)] made it to Orion on an emagged machine and got an explosive toy ship.") log_game("[key_name(usr)] made it to Orion on an emagged machine and got an explosive toy ship.") else - prizevend(usr) + prizevend(user) obj_flags &= ~EMAGGED name = "The Orion Trail" desc = "Learn how our ancestors got to Orion, and have fun in the process!" diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 134aba6b27..c557223881 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -746,7 +746,7 @@ H.visible_message("[user] headbutts the airlock.", \ "You headbutt the airlock!") H.Knockdown(100) - H.apply_damage(10, BRUTE, "head") + H.apply_damage(10, BRUTE, BODY_ZONE_HEAD) else visible_message("[user] headbutts the airlock. Good thing [user.p_theyre()] wearing a helmet.") return @@ -1085,7 +1085,7 @@ H.Unconscious(160) H.adjust_fire_stacks(20) H.IgniteMob() //Guaranteed knockout and ignition for nearby people - H.apply_damage(40, BRUTE, "chest") + H.apply_damage(40, BRUTE, BODY_ZONE_CHEST) return if(forced < 2) if(obj_flags & EMAGGED) diff --git a/code/game/machinery/iv_drip.dm b/code/game/machinery/iv_drip.dm index 7aa3859cdf..2442e40943 100644 --- a/code/game/machinery/iv_drip.dm +++ b/code/game/machinery/iv_drip.dm @@ -114,7 +114,7 @@ if(!(get_dist(src, attached) <= 1 && isturf(attached.loc))) to_chat(attached, "The IV drip needle is ripped out of you!") - attached.apply_damage(3, BRUTE, pick("r_arm", "l_arm")) + attached.apply_damage(3, BRUTE, pick(BODY_ZONE_R_ARM, BODY_ZONE_L_ARM)) attached = null update_icon() return PROCESS_KILL diff --git a/code/game/mecha/equipment/mecha_equipment.dm b/code/game/mecha/equipment/mecha_equipment.dm index 97b8a95277..e434daa38d 100644 --- a/code/game/mecha/equipment/mecha_equipment.dm +++ b/code/game/mecha/equipment/mecha_equipment.dm @@ -14,7 +14,7 @@ var/range = MELEE //bitFflags var/salvageable = 1 var/selectable = 1 // Set to 0 for passive equipment such as mining scanner or armor plates - var/pacifist_safe = TRUE //Controls if equipment can be used to attack by a pacifist. + var/harmful = FALSE //Controls if equipment can be used to attack by a pacifist. /obj/item/mecha_parts/mecha_equipment/proc/update_chassis_page() if(chassis) diff --git a/code/game/mecha/equipment/tools/mining_tools.dm b/code/game/mecha/equipment/tools/mining_tools.dm index 37f12f1bc2..de19c28ef6 100644 --- a/code/game/mecha/equipment/tools/mining_tools.dm +++ b/code/game/mecha/equipment/tools/mining_tools.dm @@ -12,7 +12,7 @@ equip_cooldown = 15 energy_drain = 10 force = 15 - pacifist_safe = FALSE + harmful = TRUE var/drill_delay = 7 var/drill_level = DRILL_BASIC @@ -121,8 +121,8 @@ target.gib() else //drill makes a hole - var/obj/item/bodypart/target_part = target.get_bodypart(ran_zone("chest")) - target.apply_damage(10, BRUTE, "chest", target.run_armor_check(target_part, "melee")) + var/obj/item/bodypart/target_part = target.get_bodypart(ran_zone(BODY_ZONE_CHEST)) + target.apply_damage(10, BRUTE, BODY_ZONE_CHEST, target.run_armor_check(target_part, "melee")) //blood splatters var/splatter_dir = get_dir(chassis, target) diff --git a/code/game/mecha/equipment/tools/work_tools.dm b/code/game/mecha/equipment/tools/work_tools.dm index 330247f88c..2054a6ba9a 100644 --- a/code/game/mecha/equipment/tools/work_tools.dm +++ b/code/game/mecha/equipment/tools/work_tools.dm @@ -10,7 +10,7 @@ energy_drain = 10 var/dam_force = 20 var/obj/mecha/working/ripley/cargo_holder - pacifist_safe = FALSE + harmful = TRUE /obj/item/mecha_parts/mecha_equipment/hydraulic_clamp/can_attach(obj/mecha/working/ripley/M as obj) if(..()) diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm index f6a05c3fa6..061bf0a727 100644 --- a/code/game/mecha/equipment/weapons/weapons.dm +++ b/code/game/mecha/equipment/weapons/weapons.dm @@ -75,7 +75,7 @@ energy_drain = 30 projectile = /obj/item/projectile/beam/laser fire_sound = 'sound/weapons/laser.ogg' - pacifist_safe = FALSE + harmful = TRUE /obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/heavy equip_cooldown = 15 @@ -103,7 +103,7 @@ energy_drain = 500 projectile = /obj/item/projectile/energy/tesla/cannon fire_sound = 'sound/magic/lightningbolt.ogg' - pacifist_safe = FALSE + harmful = TRUE /obj/item/mecha_parts/mecha_equipment/weapon/energy/pulse equip_cooldown = 30 @@ -113,7 +113,7 @@ energy_drain = 120 projectile = /obj/item/projectile/beam/pulse/heavy fire_sound = 'sound/weapons/marauder.ogg' - pacifist_safe = FALSE + harmful = TRUE /obj/item/mecha_parts/mecha_equipment/weapon/energy/plasma equip_cooldown = 10 @@ -126,7 +126,7 @@ energy_drain = 30 projectile = /obj/item/projectile/plasma/adv/mech fire_sound = 'sound/weapons/plasma_cutter.ogg' - pacifist_safe = FALSE + harmful = TRUE /obj/item/mecha_parts/mecha_equipment/weapon/energy/plasma/can_attach(obj/mecha/working/M) if(..()) //combat mech @@ -246,7 +246,7 @@ projectile = /obj/item/projectile/bullet/incendiary/fnx99 projectiles = 24 projectile_energy_cost = 15 - pacifist_safe = FALSE + harmful = TRUE /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/silenced name = "\improper S.H.H. \"Quietus\" Carbine" @@ -257,7 +257,7 @@ projectile = /obj/item/projectile/bullet/mime projectiles = 6 projectile_energy_cost = 50 - pacifist_safe = FALSE + harmful = TRUE /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot name = "\improper LBX AC 10 \"Scattershot\"" @@ -269,7 +269,7 @@ projectile_energy_cost = 25 projectiles_per_shot = 4 variance = 25 - pacifist_safe = FALSE + harmful = TRUE /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/lmg name = "\improper Ultra AC 2" @@ -283,7 +283,7 @@ variance = 6 randomspread = 1 projectile_delay = 2 - pacifist_safe = FALSE + harmful = TRUE /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack name = "\improper SRM-8 missile rack" @@ -294,7 +294,7 @@ projectiles = 8 projectile_energy_cost = 1000 equip_cooldown = 60 - pacifist_safe = FALSE + harmful = TRUE /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 82394ba480..8c371ada2f 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -442,22 +442,17 @@ return var/mob/living/L = user - var/obj/structure/closet/C = target if(!Adjacent(target)) if(selected && selected.is_ranged()) - if(L.has_trait(TRAIT_PACIFISM) && !selected.pacifist_safe) + if(L.has_trait(TRAIT_PACIFISM) && selected.harmful) to_chat(user, "You don't want to harm other living beings!") return if(selected.action(target,params)) selected.start_cooldown() else if(selected && selected.is_melee()) - if(isliving(target) && !selected.pacifist_safe && L.has_trait(TRAIT_PACIFISM)) + if(isliving(target) && selected.harmful && L.has_trait(TRAIT_PACIFISM)) to_chat(user, "You don't want to harm other living beings!") return - if(istype(C) && L.has_trait(TRAIT_PACIFISM) && !selected.pacifist_safe && !istype(selected,/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp/)) - for(var/mob/living/M in C) - to_chat(user, "There's someone in there! I don't want to hurt them.") - return if(selected.action(target,params)) selected.start_cooldown() else diff --git a/code/game/objects/effects/contraband.dm b/code/game/objects/effects/contraband.dm index 4499b9b62e..4c4427e77f 100644 --- a/code/game/objects/effects/contraband.dm +++ b/code/game/objects/effects/contraband.dm @@ -60,6 +60,7 @@ /obj/structure/sign/poster/Initialize() . = ..() + addtimer(CALLBACK(src, /datum.proc/AddComponent, /datum/component/beauty, 75), 0) if(random_basetype) randomise(random_basetype) if(!ruined) diff --git a/code/game/objects/effects/decals/cleanable.dm b/code/game/objects/effects/decals/cleanable.dm index c070c1a6ea..0794b818da 100644 --- a/code/game/objects/effects/decals/cleanable.dm +++ b/code/game/objects/effects/decals/cleanable.dm @@ -4,17 +4,17 @@ var/list/random_icon_states = list() var/blood_state = "" //I'm sorry but cleanable/blood code is ass, and so is blood_DNA var/bloodiness = 0 //0-100, amount of blood in this decal, used for making footprints and affecting the alpha of bloody footprints - var/beauty = 0 var/mergeable_decal = TRUE //when two of these are on a same tile or do we need to merge them into just one? + var/beauty /obj/effect/decal/cleanable/Initialize(mapload, list/datum/disease/diseases) . = ..() - if (random_icon_states && length(src.random_icon_states) > 0) - src.icon_state = pick(src.random_icon_states) + if (random_icon_states && length(random_icon_states) > 0) + icon_state = pick(random_icon_states) create_reagents(300) - if(src.loc && isturf(src.loc)) - for(var/obj/effect/decal/cleanable/C in src.loc) - if(C != src && C.type == src.type && !QDELETED(C)) + if(loc && isturf(loc)) + for(var/obj/effect/decal/cleanable/C in loc) + if(C != src && C.type == type && !QDELETED(C)) if (replace_decal(C)) return INITIALIZE_HINT_QDEL @@ -26,10 +26,9 @@ if(LAZYLEN(diseases_to_add)) AddComponent(/datum/component/infective, diseases_to_add) -/obj/effect/decal/cleanable/LateInitialize() - if(src.loc && isturf(src.loc)) - var/area/A = get_area(src) - A.beauty += beauty / max(1, A.areasize) //Ensures that the effects scale with room size +/obj/effect/decal/cleanable/ComponentInitialize() + . = ..() + addtimer(CALLBACK(src, /datum.proc/AddComponent, /datum/component/beauty, beauty), 0) //inb4 i get yelled at for using the beauty var on cleanable instead of calling this proc on every subtype which would be pedantic and actually run worse. /obj/effect/decal/cleanable/proc/replace_decal(obj/effect/decal/cleanable/C) // Returns true if we should give up in favor of the pre-existing decal if(mergeable_decal) @@ -97,9 +96,3 @@ return bloodiness else return 0 - -/obj/effect/decal/cleanable/Destroy() - . = ..() - if(src.loc && isturf(src.loc)) - var/area/A = get_area(src) - A.beauty -= beauty / max(1, A.areasize) diff --git a/code/game/objects/effects/decals/cleanable/aliens.dm b/code/game/objects/effects/decals/cleanable/aliens.dm index 79103c28aa..f93d5b5f44 100644 --- a/code/game/objects/effects/decals/cleanable/aliens.dm +++ b/code/game/objects/effects/decals/cleanable/aliens.dm @@ -8,7 +8,7 @@ random_icon_states = list("xfloor1", "xfloor2", "xfloor3", "xfloor4", "xfloor5", "xfloor6", "xfloor7") bloodiness = MAX_SHOE_BLOODINESS blood_state = BLOOD_STATE_XENO - beauty = -200 + beauty = -250 /obj/effect/decal/cleanable/xenoblood/Initialize() . = ..() diff --git a/code/game/objects/effects/decals/cleanable/humans.dm b/code/game/objects/effects/decals/cleanable/humans.dm index 7b2c00a0b6..215a012b64 100644 --- a/code/game/objects/effects/decals/cleanable/humans.dm +++ b/code/game/objects/effects/decals/cleanable/humans.dm @@ -6,7 +6,7 @@ random_icon_states = list("floor1", "floor2", "floor3", "floor4", "floor5", "floor6", "floor7") blood_state = BLOOD_STATE_HUMAN bloodiness = MAX_SHOE_BLOODINESS - beauty = -200 + beauty = -250 /obj/effect/decal/cleanable/blood/replace_decal(obj/effect/decal/cleanable/blood/C) C.add_blood_DNA(return_blood_DNA()) diff --git a/code/game/objects/effects/decals/cleanable/misc.dm b/code/game/objects/effects/decals/cleanable/misc.dm index e5253d4b85..53e368ea64 100644 --- a/code/game/objects/effects/decals/cleanable/misc.dm +++ b/code/game/objects/effects/decals/cleanable/misc.dm @@ -3,7 +3,7 @@ desc = "Someone should clean that up." icon = 'icons/obj/objects.dmi' icon_state = "shards" - beauty = -150 + beauty = -300 /obj/effect/decal/cleanable/ash name = "ashes" @@ -11,7 +11,7 @@ icon = 'icons/obj/objects.dmi' icon_state = "ash" mergeable_decal = FALSE - beauty = -150 + beauty = -300 /obj/effect/decal/cleanable/ash/Initialize() . = ..() @@ -26,7 +26,7 @@ /obj/effect/decal/cleanable/ash/large name = "large pile of ashes" icon_state = "big_ash" - beauty = -150 + beauty = -300 /obj/effect/decal/cleanable/ash/large/Initialize() . = ..() @@ -37,7 +37,7 @@ desc = "Back to sand." icon = 'icons/obj/shards.dmi' icon_state = "tiny" - beauty = -20 + beauty = -125 /obj/effect/decal/cleanable/glass/Initialize() . = ..() @@ -51,7 +51,7 @@ desc = "Someone should clean that up." icon_state = "dirt" mouse_opacity = MOUSE_OPACITY_TRANSPARENT - beauty = -150 + beauty = -300 /obj/effect/decal/cleanable/flour name = "flour" @@ -64,7 +64,7 @@ desc = "Jeez. I hope that's not for lunch." light_color = LIGHT_COLOR_GREEN icon_state = "greenglow" - beauty = -100 + beauty = -200 /obj/effect/decal/cleanable/greenglow/Initialize(mapload) . = ..() @@ -80,7 +80,7 @@ layer = WALL_OBJ_LAYER icon_state = "cobweb1" resistance_flags = FLAMMABLE - beauty = -150 + beauty = -300 /obj/effect/decal/cleanable/cobweb/cobweb2 icon_state = "cobweb2" @@ -92,12 +92,12 @@ icon = 'icons/effects/effects.dmi' icon_state = "molten" mergeable_decal = FALSE - beauty = -250 + beauty = -300 /obj/effect/decal/cleanable/molten_object/large name = "big gooey grey mass" icon_state = "big_molten" - beauty = -200 + beauty = -450 //Vomit (sorry) /obj/effect/decal/cleanable/vomit @@ -106,7 +106,7 @@ icon = 'icons/effects/blood.dmi' icon_state = "vomit_1" random_icon_states = list("vomit_1", "vomit_2", "vomit_3", "vomit_4") - beauty = -400 + beauty = -600 /obj/effect/decal/cleanable/vomit/attack_hand(mob/user) if(ishuman(user)) @@ -161,7 +161,7 @@ gender = NEUTER icon = 'icons/effects/tomatodecal.dmi' random_icon_states = list("smashed_pie") - beauty = -125 + beauty = -200 /obj/effect/decal/cleanable/chem_pile name = "chemical pile" @@ -169,7 +169,7 @@ gender = NEUTER icon = 'icons/obj/objects.dmi' icon_state = "ash" - beauty = -125 + beauty = -200 /obj/effect/decal/cleanable/shreds name = "shreds" @@ -177,7 +177,7 @@ icon_state = "shreds" gender = PLURAL mergeable_decal = FALSE - beauty = -125 + beauty = -200 /obj/effect/decal/cleanable/shreds/ex_act(severity, target) if(severity == 1) //so shreds created during an explosion aren't deleted by the explosion. diff --git a/code/game/objects/effects/decals/cleanable/robots.dm b/code/game/objects/effects/decals/cleanable/robots.dm index b70b500bba..91956fdb65 100644 --- a/code/game/objects/effects/decals/cleanable/robots.dm +++ b/code/game/objects/effects/decals/cleanable/robots.dm @@ -47,7 +47,7 @@ random_icon_states = list("floor1", "floor2", "floor3", "floor4", "floor5", "floor6", "floor7") blood_state = BLOOD_STATE_OIL bloodiness = MAX_SHOE_BLOODINESS - beauty = -125 + beauty = -150 /obj/effect/decal/cleanable/oil/Initialize() . = ..() diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index b5c4e5bfb8..92a4a93243 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -482,7 +482,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) /obj/item/proc/eyestab(mob/living/carbon/M, mob/living/carbon/user) var/is_human_victim = 0 - var/obj/item/bodypart/affecting = M.get_bodypart("head") + var/obj/item/bodypart/affecting = M.get_bodypart(BODY_ZONE_HEAD) if(ishuman(M)) if(!affecting) //no head! return @@ -537,9 +537,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) else M.take_bodypart_damage(7) - GET_COMPONENT_FROM(mood, /datum/component/mood, M) - if(mood) - mood.add_event("eye_stab", /datum/mood_event/eye_stab) + M.SendSignal(COMSIG_ADD_MOOD_EVENT, "eye_stab", /datum/mood_event/eye_stab) add_logs(user, M, "attacked", "[src.name]", "(INTENT: [uppertext(user.a_intent)])") diff --git a/code/game/objects/items/blueprints.dm b/code/game/objects/items/blueprints.dm index 0383121308..ad616e8ad3 100644 --- a/code/game/objects/items/blueprints.dm +++ b/code/game/objects/items/blueprints.dm @@ -191,7 +191,7 @@ FD.CalculateAffectingAreas() to_chat(usr, "You rename the '[prevname]' to '[str]'.") log_game("[key_name(usr)] has renamed [prevname] to [str]") - A.update_area_size() + A.update_areasize() interact() return 1 diff --git a/code/game/objects/items/body_egg.dm b/code/game/objects/items/body_egg.dm index 13dd2c1f18..a8f5894b7c 100644 --- a/code/game/objects/items/body_egg.dm +++ b/code/game/objects/items/body_egg.dm @@ -2,7 +2,7 @@ name = "body egg" desc = "All slimy and yuck." icon_state = "innards" - zone = "chest" + zone = BODY_ZONE_CHEST slot = "parasite_egg" /obj/item/organ/body_egg/on_find(mob/living/finder) diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm index f2b656a074..cb934ce194 100644 --- a/code/game/objects/items/cigs_lighters.dm +++ b/code/game/objects/items/cigs_lighters.dm @@ -129,7 +129,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM reagents.add_reagent_list(list_reagents) if(starts_lit) light() - AddComponent(/datum/component/knockoff,90,list("mouth"),list(slot_wear_mask))//90% to knock off when wearing a mask + AddComponent(/datum/component/knockoff,90,list(BODY_ZONE_PRECISE_MOUTH),list(slot_wear_mask))//90% to knock off when wearing a mask /obj/item/clothing/mask/cigarette/Destroy() STOP_PROCESSING(SSobj, src) @@ -546,12 +546,10 @@ CIGARETTE PACKETS ARE IN FANCY.DM if(prot || prob(75)) user.visible_message("After a few attempts, [user] manages to light [src].", "After a few attempts, you manage to light [src].") else - var/hitzone = user.held_index_to_dir(user.active_hand_index) == "r" ? "r_hand" : "l_hand" + var/hitzone = user.held_index_to_dir(user.active_hand_index) == "r" ? BODY_ZONE_PRECISE_R_HAND : BODY_ZONE_PRECISE_L_HAND user.apply_damage(5, BURN, hitzone) user.visible_message("After a few attempts, [user] manages to light [src] - however, [user.p_they()] burn their finger in the process.", "You burn yourself while lighting the lighter!") - GET_COMPONENT_FROM(mood, /datum/component/mood, user) - if(mood) - mood.add_event("burnt_thumb", /datum/mood_event/burnt_thumb) + user.SendSignal(COMSIG_ADD_MOOD_EVENT, "burnt_thumb", /datum/mood_event/burnt_thumb) else set_lit(FALSE) @@ -800,7 +798,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM vapetime = 0 if(prob(5))//small chance for the vape to break and deal damage if it's emagged playsound(get_turf(src), 'sound/effects/pop_expl.ogg', 50, 0) - M.apply_damage(20, BURN, "head") + M.apply_damage(20, BURN, BODY_ZONE_HEAD) M.Knockdown(300, 1, 0) var/datum/effect_system/spark_spread/sp = new /datum/effect_system/spark_spread sp.set_up(5, 1, src) diff --git a/code/game/objects/items/clown_items.dm b/code/game/objects/items/clown_items.dm index 376f003232..515dab5e27 100644 --- a/code/game/objects/items/clown_items.dm +++ b/code/game/objects/items/clown_items.dm @@ -69,7 +69,7 @@ if(do_after(user, src.cleanspeed, target = target)) to_chat(user, "You scrub \the [target.name] out.") qdel(target) - else if(ishuman(target) && user.zone_selected == "mouth") + else if(ishuman(target) && user.zone_selected == BODY_ZONE_PRECISE_MOUTH) var/mob/living/carbon/human/H = user user.visible_message("\the [user] washes \the [target]'s mouth out with [src.name]!", "You wash \the [target]'s mouth out with [src.name]!") //washes mouth out with soap sounds better than 'the soap' here H.lip_style = null //removes lipstick @@ -117,9 +117,7 @@ AddComponent(/datum/component/squeak, list('sound/items/bikehorn.ogg'=1), 50) /obj/item/weapon/bikehorn/attack(mob/living/carbon/M, mob/living/carbon/user) - GET_COMPONENT_FROM(mood, /datum/component/mood, M) - if(mood) - mood.add_event("honk", /datum/mood_event/honk) + M.SendSignal(COMSIG_ADD_MOOD_EVENT, "honk", /datum/mood_event/honk) /obj/item/bikehorn/suicide_act(mob/user) user.visible_message("[user] solemnly points the horn at [user.p_their()] temple! It looks like [user.p_theyre()] trying to commit suicide!") diff --git a/code/game/objects/items/cosmetics.dm b/code/game/objects/items/cosmetics.dm index 9f1e05599d..8475e7d00e 100644 --- a/code/game/objects/items/cosmetics.dm +++ b/code/game/objects/items/cosmetics.dm @@ -78,7 +78,7 @@ //you can wipe off lipstick with paper! /obj/item/paper/attack(mob/M, mob/user) - if(user.zone_selected == "mouth") + if(user.zone_selected == BODY_ZONE_PRECISE_MOUTH) if(!ismob(M)) return @@ -109,12 +109,12 @@ /obj/item/razor/suicide_act(mob/living/carbon/user) user.visible_message("[user] begins shaving [user.p_them()]self without the razor guard! It looks like [user.p_theyre()] trying to commit suicide!") - shave(user, "mouth") - shave(user, "head")//doesnt need to be "head" specifically, but whatever + shave(user, BODY_ZONE_PRECISE_MOUTH) + shave(user, BODY_ZONE_HEAD)//doesnt need to be BODY_ZONE_HEAD specifically, but whatever return BRUTELOSS -/obj/item/razor/proc/shave(mob/living/carbon/human/H, location = "mouth") - if(location == "mouth") +/obj/item/razor/proc/shave(mob/living/carbon/human/H, location = BODY_ZONE_PRECISE_MOUTH) + if(location == BODY_ZONE_PRECISE_MOUTH) H.facial_hair_style = "Shaved" else H.hair_style = "Skinhead" @@ -127,10 +127,10 @@ if(ishuman(M)) var/mob/living/carbon/human/H = M var/location = user.zone_selected - if((location in list("eyes", "mouth", "head")) && !H.get_bodypart("head")) + if((location in list(BODY_ZONE_PRECISE_EYES, BODY_ZONE_PRECISE_MOUTH, BODY_ZONE_HEAD)) && !H.get_bodypart(BODY_ZONE_HEAD)) to_chat(user, "[H] doesn't have a head!") return - if(location == "mouth") + if(location == BODY_ZONE_PRECISE_MOUTH) if(!(FACEHAIR in H.dna.species.species_traits)) to_chat(user, "There is no facial hair to shave!") return @@ -158,7 +158,7 @@ "You shave [H]'s facial hair clean off.") shave(H, location) - else if(location == "head") + else if(location == BODY_ZONE_HEAD) if(!(HAIR in H.dna.species.species_traits)) to_chat(user, "There is no hair to shave!") return diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index 428412e11a..0abdc9a7c4 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -244,8 +244,13 @@ if(!proximity || !check_allowed_items(target)) return - if(check_empty(user)) + var/cost = 1 + if(paint_mode == PAINT_LARGE_HORIZONTAL) + cost = 5 + var/charges_used = use_charges(user, cost) + if(!charges_used) return + . = charges_used if(istype(target, /obj/effect/decal/cleanable)) target = target.loc @@ -353,10 +358,6 @@ audible_message("You hear spraying.") playsound(user.loc, 'sound/effects/spray.ogg', 5, 1, 5) - var/cost = 1 - if(paint_mode == PAINT_LARGE_HORIZONTAL) - cost = 5 - . = use_charges(user, cost) var/fraction = min(1, . / reagents.maximum_volume) if(affected_turfs.len) fraction /= affected_turfs.len diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm index e3194cd1a7..e52231f64f 100644 --- a/code/game/objects/items/defib.dm +++ b/code/game/objects/items/defib.dm @@ -417,7 +417,7 @@ var/mob/living/carbon/H = M - if(user.zone_selected != "chest") + if(user.zone_selected != BODY_ZONE_CHEST) to_chat(user, "You need to target your patient's chest with [src]!") return @@ -507,7 +507,7 @@ H.visible_message("[H] thrashes wildly, clutching at their chest!", "You feel a horrible agony in your chest!") H.set_heartattack(TRUE) - H.apply_damage(50, BURN, "chest") + H.apply_damage(50, BURN, BODY_ZONE_CHEST) add_logs(user, H, "overloaded the heart of", defib) H.Knockdown(100) H.Jitter(100) @@ -626,7 +626,7 @@ icon_state = "defibpaddles0" item_state = "defibpaddles0" req_defib = FALSE - + /obj/item/twohanded/shockpaddles/cyborg/attack(mob/M, mob/user) if(iscyborg(user)) var/mob/living/silicon/robot/R = user diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index f8ffc8aafb..13e5105439 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -47,7 +47,7 @@ /obj/item/device/flashlight/attack(mob/living/carbon/M, mob/living/carbon/human/user) add_fingerprint(user) - if(istype(M) && on && user.zone_selected in list("eyes", "mouth")) + if(istype(M) && on && user.zone_selected in list(BODY_ZONE_PRECISE_EYES, BODY_ZONE_PRECISE_MOUTH)) if((user.has_trait(TRAIT_CLUMSY) || user.has_trait(TRAIT_DUMB)) && prob(50)) //too dumb to use flashlight properly return ..() //just hit them in the head @@ -56,7 +56,7 @@ to_chat(user, "You don't have the dexterity to do this!") return - if(!M.get_bodypart("head")) + if(!M.get_bodypart(BODY_ZONE_HEAD)) to_chat(user, "[M] doesn't have a head!") return @@ -65,7 +65,7 @@ return switch(user.zone_selected) - if("eyes") + if(BODY_ZONE_PRECISE_EYES) if((M.head && M.head.flags_cover & HEADCOVERSEYES) || (M.wear_mask && M.wear_mask.flags_cover & MASKCOVERSEYES) || (M.glasses && M.glasses.flags_cover & GLASSESCOVERSEYES)) to_chat(user, "You're going to need to remove that [(M.head && M.head.flags_cover & HEADCOVERSEYES) ? "helmet" : (M.wear_mask && M.wear_mask.flags_cover & MASKCOVERSEYES) ? "mask": "glasses"] first.") return @@ -90,7 +90,7 @@ else //they're okay! to_chat(user, "[M]'s pupils narrow.") - if("mouth") + if(BODY_ZONE_PRECISE_MOUTH) if((M.head && M.head.flags_cover & HEADCOVERSMOUTH) || (M.wear_mask && M.wear_mask.flags_cover & MASKCOVERSMOUTH)) to_chat(user, "You're going to need to remove that [(M.head && M.head.flags_cover & HEADCOVERSMOUTH) ? "helmet" : "mask"] first.") @@ -100,7 +100,7 @@ var/list/mouth_organs = new for(var/obj/item/organ/O in M.internal_organs) - if(O.zone == "mouth") + if(O.zone == BODY_ZONE_PRECISE_MOUTH) mouth_organs.Add(O) var/organ_list = "" var/organ_count = LAZYLEN(mouth_organs) @@ -372,7 +372,7 @@ return TRUE /obj/item/device/flashlight/emp/attack(mob/living/M, mob/living/user) - if(on && user.zone_selected in list("eyes", "mouth")) // call original attack when examining organs + if(on && user.zone_selected in list(BODY_ZONE_PRECISE_EYES, BODY_ZONE_PRECISE_MOUTH)) // call original attack when examining organs ..() return diff --git a/code/game/objects/items/devices/laserpointer.dm b/code/game/objects/items/devices/laserpointer.dm index 2e65a6c108..098643e87f 100644 --- a/code/game/objects/items/devices/laserpointer.dm +++ b/code/game/objects/items/devices/laserpointer.dm @@ -89,7 +89,7 @@ //human/alien mobs if(iscarbon(target)) var/mob/living/carbon/C = target - if(user.zone_selected == "eyes") + if(user.zone_selected == BODY_ZONE_PRECISE_EYES) add_logs(user, C, "shone in the eyes", src) var/severity = 1 diff --git a/code/game/objects/items/devices/reverse_bear_trap.dm b/code/game/objects/items/devices/reverse_bear_trap.dm index dbdddb829b..0d41b12ccd 100644 --- a/code/game/objects/items/devices/reverse_bear_trap.dm +++ b/code/game/objects/items/devices/reverse_bear_trap.dm @@ -109,7 +109,7 @@ jill.emote("scream") playsound(src, 'sound/effects/snap.ogg', 75, TRUE, frequency = 0.5) playsound(src, 'sound/effects/splat.ogg', 50, TRUE, frequency = 0.5) - jill.apply_damage(9999, BRUTE, "head") + jill.apply_damage(9999, BRUTE, BODY_ZONE_HEAD) jill.death() //just in case, for some reason, they're still alive flash_color(jill, flash_color = "#FF0000", flash_time = 100) diff --git a/code/game/objects/items/handcuffs.dm b/code/game/objects/items/handcuffs.dm index 3a66268bd3..c8c43bc521 100644 --- a/code/game/objects/items/handcuffs.dm +++ b/code/game/objects/items/handcuffs.dm @@ -266,12 +266,12 @@ if(isliving(AM)) var/mob/living/L = AM var/snap = 0 - var/def_zone = "chest" + var/def_zone = BODY_ZONE_CHEST if(iscarbon(L)) var/mob/living/carbon/C = L snap = 1 if(!C.lying) - def_zone = pick("l_leg", "r_leg") + def_zone = pick(BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) if(!C.legcuffed && C.get_num_legs() >= 2) //beartrap can't cuff your leg if there's already a beartrap or legcuffs, or you don't have two legs. C.legcuffed = src forceMove(C) diff --git a/code/game/objects/items/kitchen.dm b/code/game/objects/items/kitchen.dm index abdca9e77a..c6b2a85d34 100644 --- a/code/game/objects/items/kitchen.dm +++ b/code/game/objects/items/kitchen.dm @@ -48,7 +48,7 @@ icon_state = "fork" forkload = null - else if(user.zone_selected == "eyes") + else if(user.zone_selected == BODY_ZONE_PRECISE_EYES) if(user.has_trait(TRAIT_CLUMSY) && prob(50)) M = user return eyestab(M,user) @@ -78,7 +78,7 @@ AddComponent(/datum/component/butchering, 80 - force, 100, force - 10) //bonus chance increases depending on force /obj/item/kitchen/knife/attack(mob/living/carbon/M, mob/living/carbon/user) - if(user.zone_selected == "eyes") + if(user.zone_selected == BODY_ZONE_PRECISE_EYES) if(user.has_trait(TRAIT_CLUMSY) && prob(50)) M = user return eyestab(M,user) diff --git a/code/game/objects/items/melee/misc.dm b/code/game/objects/items/melee/misc.dm index 7d74a00ce6..a78ba00bd6 100644 --- a/code/game/objects/items/melee/misc.dm +++ b/code/game/objects/items/melee/misc.dm @@ -116,7 +116,7 @@ user.Knockdown(60 * force) if(ishuman(user)) var/mob/living/carbon/human/H = user - H.apply_damage(2*force, BRUTE, "head") + H.apply_damage(2*force, BRUTE, BODY_ZONE_HEAD) else user.take_bodypart_damage(2*force) return diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm index 4851e111a8..11712f475f 100644 --- a/code/game/objects/items/robot/robot_items.dm +++ b/code/game/objects/items/robot/robot_items.dm @@ -70,7 +70,7 @@ switch(mode) if(0) if(M.health >= 0) - if(user.zone_selected == "head") + if(user.zone_selected == BODY_ZONE_HEAD) user.visible_message("[user] playfully boops [M] on the head!", \ "You playfully boop [M] on the head!") user.do_attack_animation(M, ATTACK_EFFECT_BOOP) @@ -95,7 +95,7 @@ if(M.lying) user.visible_message("[user] shakes [M] trying to get [M.p_them()] up!", \ "You shake [M] trying to get [M.p_them()] up!") - else if(user.zone_selected == "head") + else if(user.zone_selected == BODY_ZONE_HEAD) user.visible_message("[user] bops [M] on the head!", \ "You bop [M] on the head!") user.do_attack_animation(M, ATTACK_EFFECT_PUNCH) diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index ee74b7c84d..31fdcc6dbb 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -156,7 +156,7 @@ /obj/item/storage/bag/bio, /obj/item/reagent_containers/blood, /obj/item/tank/internals/emergency_oxygen, - /obj/item/pinpointer/crew, + /obj/item/pinpointer/crew, /obj/item/gun/syringe/syndicate, /obj/item/implantcase, /obj/item/implant, @@ -278,6 +278,10 @@ for(var/i in 1 to 6) new /obj/item/device/soulstone(src) +/obj/item/storage/belt/soulstone/full/chappy/PopulateContents() + for(var/i in 1 to 6) + new /obj/item/device/soulstone/anybody/chaplain(src) + /obj/item/storage/belt/champion name = "championship belt" desc = "Proves to the world that you are the strongest!" diff --git a/code/game/objects/items/storage/book.dm b/code/game/objects/items/storage/book.dm index cea183d493..10b28e12f6 100644 --- a/code/game/objects/items/storage/book.dm +++ b/code/game/objects/items/storage/book.dm @@ -96,9 +96,7 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "bible", H.visible_message("[user] heals [H] with the power of [deity_name]!") to_chat(H, "May the power of [deity_name] compel you to be healed!") playsound(src.loc, "punch", 25, 1, -1) - GET_COMPONENT_FROM(mood, /datum/component/mood, H) - if(mood) - mood.add_event("blessing", /datum/mood_event/blessing) + H.SendSignal(COMSIG_ADD_MOOD_EVENT, "blessing", /datum/mood_event/blessing) return 1 /obj/item/storage/book/bible/attack(mob/living/M, mob/living/carbon/human/user, heal_mode = TRUE) @@ -215,7 +213,7 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "bible", uses -= 1 to_chat(H, "You try to open the book AND IT BITES YOU!") playsound(src.loc, 'sound/effects/snap.ogg', 50, 1) - H.apply_damage(5, BRUTE, pick("l_arm", "r_arm")) + H.apply_damage(5, BRUTE, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM)) to_chat(H, "Your name appears on the inside cover, in blood.") var/ownername = H.real_name desc += "The name [ownername] is written in blood inside the cover." diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index 9987784f97..6d62ac9e77 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -37,7 +37,7 @@ update_icon() /obj/item/storage/box/suicide_act(mob/living/carbon/user) - var/obj/item/bodypart/head/myhead = user.get_bodypart("head") + var/obj/item/bodypart/head/myhead = user.get_bodypart(BODY_ZONE_HEAD) if(myhead) user.visible_message("[user] puts [user.p_their()] head into \the [src], and begins closing it! It looks like [user.p_theyre()] trying to commit suicide!") myhead.dismember() diff --git a/code/game/objects/items/tools/screwdriver.dm b/code/game/objects/items/tools/screwdriver.dm index 530580fab5..56537e703a 100644 --- a/code/game/objects/items/tools/screwdriver.dm +++ b/code/game/objects/items/tools/screwdriver.dm @@ -73,7 +73,7 @@ /obj/item/screwdriver/attack(mob/living/carbon/M, mob/living/carbon/user) if(!istype(M)) return ..() - if(user.zone_selected != "eyes" && user.zone_selected != "head") + if(user.zone_selected != BODY_ZONE_PRECISE_EYES && user.zone_selected != BODY_ZONE_HEAD) return ..() if(user.has_trait(TRAIT_CLUMSY) && prob(50)) M = user diff --git a/code/game/objects/items/tools/wirecutters.dm b/code/game/objects/items/tools/wirecutters.dm index d2981fc839..f189c26bb2 100644 --- a/code/game/objects/items/tools/wirecutters.dm +++ b/code/game/objects/items/tools/wirecutters.dm @@ -99,7 +99,7 @@ playsound(loc, 'sound/items/jaws_cut.ogg', 50, 1, -1) if(iscarbon(user)) var/mob/living/carbon/C = user - var/obj/item/bodypart/BP = C.get_bodypart("head") + var/obj/item/bodypart/BP = C.get_bodypart(BODY_ZONE_HEAD) if(BP) BP.drop_limb() playsound(loc,pick('sound/misc/desceration-01.ogg','sound/misc/desceration-02.ogg','sound/misc/desceration-01.ogg') ,50, 1, -1) diff --git a/code/game/objects/items/twohanded.dm b/code/game/objects/items/twohanded.dm index 8ae0508492..774ff2f7ce 100644 --- a/code/game/objects/items/twohanded.dm +++ b/code/game/objects/items/twohanded.dm @@ -294,7 +294,7 @@ if(wielded) user.visible_message("[user] begins spinning way too fast! It looks like [user.p_theyre()] trying to commit suicide!") - var/obj/item/bodypart/head/myhead = user.get_bodypart("head")//stole from chainsaw code + var/obj/item/bodypart/head/myhead = user.get_bodypart(BODY_ZONE_HEAD)//stole from chainsaw code var/obj/item/organ/brain/B = user.getorganslot(ORGAN_SLOT_BRAIN) B.vital = FALSE//this cant possibly be a good idea var/randdir @@ -578,7 +578,7 @@ if(on) user.visible_message("[user] begins to tear [user.p_their()] head off with [src]! It looks like [user.p_theyre()] trying to commit suicide!") playsound(src, 'sound/weapons/chainsawhit.ogg', 100, 1) - var/obj/item/bodypart/head/myhead = user.get_bodypart("head") + var/obj/item/bodypart/head/myhead = user.get_bodypart(BODY_ZONE_HEAD) if(myhead) myhead.dismember() else @@ -705,14 +705,14 @@ "\"As you pick up [src] your arms ignite, reminding you of all your past sins.\"") if(ishuman(U)) var/mob/living/carbon/human/H = U - H.apply_damage(rand(force/2, force), BURN, pick("l_arm", "r_arm")) + H.apply_damage(rand(force/2, force), BURN, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM)) else U.adjustFireLoss(rand(force/2,force)) /obj/item/twohanded/pitchfork/demonic/attack(mob/target, mob/living/carbon/human/user) if(user.mind && user.owns_soul() && !is_devil(user)) to_chat(user, "[src] burns in your hands.") - user.apply_damage(rand(force/2, force), BURN, pick("l_arm", "r_arm")) + user.apply_damage(rand(force/2, force), BURN, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM)) ..() /obj/item/twohanded/pitchfork/demonic/ascended/afterattack(atom/target, mob/user, proximity) diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index 713f5761c0..bf67efa6c7 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -19,7 +19,7 @@ return (BRUTELOSS|FIRELOSS|TOXLOSS|OXYLOSS) /obj/item/banhammer/attack(mob/M, mob/user) - if(user.zone_selected == "head") + if(user.zone_selected == BODY_ZONE_HEAD) M.visible_message("[user] are stroking the head of [M] with a bangammer", "[user] are stroking the head with a bangammer", "you hear a bangammer stroking a head"); else M.visible_message("[M] has been banned FOR NO REISIN by [user]", "You have been banned FOR NO REISIN by [user]", "you hear a banhammer banning someone") @@ -444,6 +444,10 @@ throw_range = 2 attack_verb = list("busted") +/obj/item/statuebust/Initialize() + . = ..() + addtimer(CALLBACK(src, /datum.proc/AddComponent, /datum/component/beauty, 1000), 0) + /obj/item/tailclub name = "tail club" desc = "For the beating to death of lizards with their own tails." @@ -605,7 +609,7 @@ if(ishuman(M)) var/mob/living/carbon/human/L = M L.endTailWag() - if(user.a_intent != INTENT_HARM && ((user.zone_selected == "mouth") || (user.zone_selected == "eyes") || (user.zone_selected == "head"))) + if(user.a_intent != INTENT_HARM && ((user.zone_selected == BODY_ZONE_PRECISE_MOUTH) || (user.zone_selected == BODY_ZONE_PRECISE_EYES) || (user.zone_selected == BODY_ZONE_HEAD))) user.do_attack_animation(M) playsound(M, 'sound/weapons/slap.ogg', 50, 1, -1) user.visible_message("[user] slaps [M]!", diff --git a/code/game/objects/structures/flora.dm b/code/game/objects/structures/flora.dm index 7c99a715cd..7d827abbb1 100644 --- a/code/game/objects/structures/flora.dm +++ b/code/game/objects/structures/flora.dm @@ -291,6 +291,10 @@ throw_speed = 2 throw_range = 4 +/obj/item/twohanded/required/kirbyplants/Initialize() + . = ..() + addtimer(CALLBACK(src, /datum.proc/AddComponent, /datum/component/beauty, 750), 0) + /obj/item/twohanded/required/kirbyplants/equipped(mob/living/user) var/image/I = image(icon = 'icons/obj/flora/plants.dmi' , icon_state = src.icon_state, loc = user) I.copy_overlays(src) diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm index 65b6e97a70..23d7682792 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -217,7 +217,7 @@ H.dna.update_ui_block(DNA_FACIAL_HAIR_COLOR_BLOCK) H.update_hair() - if("eyes") + if(BODY_ZONE_PRECISE_EYES) var/new_eye_color = input(H, "Choose your eye color", "Eye Color","#"+H.eye_color) as color|null if(!Adjacent(user)) return diff --git a/code/game/objects/structures/showcase.dm b/code/game/objects/structures/showcase.dm index a976c2e3fe..fe6785db2d 100644 --- a/code/game/objects/structures/showcase.dm +++ b/code/game/objects/structures/showcase.dm @@ -11,6 +11,10 @@ anchored = TRUE var/deconstruction_state = SHOWCASE_CONSTRUCTED +/obj/structure/showcase/Initialize() + . = ..() + addtimer(CALLBACK(src, /datum.proc/AddComponent, /datum/component/beauty, 750), 0) + /obj/structure/showcase/fakeid name = "\improper CentCom identification console" desc = "You can use this to change ID's." @@ -18,7 +22,7 @@ icon_state = "computer" /obj/structure/showcase/fakeid/Initialize() - ..() + . = ..() add_overlay("id") add_overlay("id_key") @@ -29,7 +33,7 @@ icon_state = "computer" /obj/structure/showcase/fakesec/Initialize() - ..() + . = ..() add_overlay("security") add_overlay("security_key") diff --git a/code/game/objects/structures/statues.dm b/code/game/objects/structures/statues.dm index e5ab4e5776..8a58cce1b0 100644 --- a/code/game/objects/structures/statues.dm +++ b/code/game/objects/structures/statues.dm @@ -10,6 +10,11 @@ var/material_drop_type = /obj/item/stack/sheet/metal CanAtmosPass = ATMOS_PASS_DENSITY + +/obj/structure/statue/Initialize() + . = ..() + addtimer(CALLBACK(src, /datum.proc/AddComponent, /datum/component/beauty, 1250), 0) + /obj/structure/statue/attackby(obj/item/W, mob/living/user, params) add_fingerprint(user) user.changeNext_move(CLICK_CD_MELEE) diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 3f47c7d7df..c83aa0efc7 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -116,14 +116,7 @@ if(!ishuman(pushed_mob)) return var/mob/living/carbon/human/H = pushed_mob - GET_COMPONENT_FROM(mood, /datum/component/mood, H) - if(mood) - if(iscatperson(H)) //Catpeople are a bit dumb and think its fun to be on a table - mood.add_event("table", /datum/mood_event/happytable) - H.startTailWag() - addtimer(CALLBACK(H, /mob/living/carbon/human.proc/endTailWag), 30) - else - mood.add_event("table", /datum/mood_event/table) + H.SendSignal(COMSIG_ADD_MOOD_EVENT, "table", /datum/mood_event/table) /obj/structure/table/attackby(obj/item/I, mob/user, params) if(!(flags_1 & NODECONSTRUCT_1)) diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index 047408c760..ec07a51380 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -335,9 +335,7 @@ L.ExtinguishMob() L.adjust_fire_stacks(-20) //Douse ourselves with water to avoid fire more easily L.remove_atom_colour(WASHABLE_COLOUR_PRIORITY) - GET_COMPONENT_FROM(mood, /datum/component/mood, L) - if(mood) - mood.add_event("shower", /datum/mood_event/nice_shower) + L.SendSignal(COMSIG_ADD_MOOD_EVENT, "shower", /datum/mood_event/nice_shower) if(iscarbon(L)) var/mob/living/carbon/M = L . = TRUE @@ -466,7 +464,7 @@ return var/selected_area = parse_zone(user.zone_selected) var/washing_face = 0 - if(selected_area in list("head", "mouth", "eyes")) + if(selected_area in list(BODY_ZONE_HEAD, BODY_ZONE_PRECISE_MOUTH, BODY_ZONE_PRECISE_EYES)) washing_face = 1 user.visible_message("[user] starts washing their [washing_face ? "face" : "hands"]...", \ "You start washing your [washing_face ? "face" : "hands"]...") diff --git a/code/game/turfs/open.dm b/code/game/turfs/open.dm index 9b19a9d093..b8a05de431 100644 --- a/code/game/turfs/open.dm +++ b/code/game/turfs/open.dm @@ -7,7 +7,7 @@ var/list/archdrops var/wet -/turf/open/Initialize() +/turf/open/ComponentInitialize() . = ..() if(wet) AddComponent(/datum/component/wet_floor, wet, INFINITY, 0, INFINITY, TRUE) @@ -203,9 +203,7 @@ if(!(lube&SLIDE_ICE)) playsound(C.loc, 'sound/misc/slip.ogg', 50, 1, -3) - GET_COMPONENT_FROM(mood, /datum/component/mood, C) - if(mood) - mood.add_event("slipped", /datum/mood_event/slipped) + C.SendSignal(COMSIG_ADD_MOOD_EVENT, "slipped", /datum/mood_event/slipped) for(var/obj/item/I in C.held_items) C.accident(I) diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index ff113f8cd9..a060b030a1 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -218,6 +218,11 @@ else if(istype(W, /obj/item/poster)) place_poster(W,user) return TRUE + //wall mounted IC assembly stuff + else if(istype(W, /obj/item/device/electronic_assembly/wallmount)) + var/obj/item/device/electronic_assembly/wallmount/A = W + A.mount_assembly(src, user) + return TRUE return FALSE @@ -303,5 +308,5 @@ cut_overlay(dent_decals) LAZYADD(dent_decals, decal) add_overlay(dent_decals) - + #undef MAX_DENT_DECALS diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm index 072c31b152..fd9de5308b 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -286,6 +286,7 @@ .["mainsettings"]["teamsize"]["value"] = newtemplate.teamsize .["mainsettings"]["mission"]["value"] = newtemplate.mission .["mainsettings"]["polldesc"]["value"] = newtemplate.polldesc + .["mainsettings"]["open_armory"]["value"] = newtemplate.opendoors ? "Yes" : "No" /datum/admins/proc/equipAntagOnDummy(mob/living/carbon/human/dummy/mannequin, datum/antagonist/antag) @@ -352,6 +353,7 @@ "mission" = list("desc" = "Mission", "type" = "string", "value" = ertemplate.mission), "polldesc" = list("desc" = "Ghost poll description", "string" = "text", "value" = ertemplate.polldesc), "enforce_human" = list("desc" = "Enforce human authority", "type" = "boolean", "value" = "[(CONFIG_GET(flag/enforce_human_authority) ? "Yes" : "No")]"), + "open_armory" = list("desc" = "Open armory doors", "type" = "boolean", "value" = "[(ertemplate.opendoors ? "Yes" : "No")]"), ) ) @@ -374,6 +376,7 @@ ertemplate.mission = prefs["mission"]["value"] ertemplate.polldesc = prefs["polldesc"]["value"] ertemplate.enforce_human = prefs["enforce_human"]["value"] == "Yes" ? TRUE : FALSE + ertemplate.opendoors = prefs["open_armory"]["value"] == "Yes" ? TRUE : FALSE var/list/mob/dead/observer/candidates = pollGhostCandidates("Do you wish to be considered for [ertemplate.polldesc] ?", "deathsquad", null) var/teamSpawned = FALSE diff --git a/code/modules/antagonists/_common/antag_datum.dm b/code/modules/antagonists/_common/antag_datum.dm index 8b603d109a..1ea471a346 100644 --- a/code/modules/antagonists/_common/antag_datum.dm +++ b/code/modules/antagonists/_common/antag_datum.dm @@ -109,16 +109,12 @@ GLOBAL_LIST_EMPTY(antagonists) /datum/antagonist/proc/give_antag_moodies() if(!antag_moodlet) return - GET_COMPONENT_FROM(mood, /datum/component/mood, owner.current) - if(mood) - mood.add_event("antag_moodlet", antag_moodlet) + owner.current.SendSignal(COMSIG_ADD_MOOD_EVENT, "antag_moodlet", antag_moodlet) /datum/antagonist/proc/clear_antag_moodies() if(!antag_moodlet) return - GET_COMPONENT_FROM(mood, /datum/component/mood, owner.current) - if(mood) - mood.add_event("antag_moodlet") + owner.current.SendSignal(COMSIG_CLEAR_MOOD_EVENT, "antag_moodlet") //Returns the team antagonist belongs to if any. /datum/antagonist/proc/get_team() diff --git a/code/modules/antagonists/abductor/equipment/abduction_surgery.dm b/code/modules/antagonists/abductor/equipment/abduction_surgery.dm index 656fb61f43..819dbafd6a 100644 --- a/code/modules/antagonists/abductor/equipment/abduction_surgery.dm +++ b/code/modules/antagonists/abductor/equipment/abduction_surgery.dm @@ -1,7 +1,7 @@ /datum/surgery/organ_extraction name = "experimental dissection" steps = list(/datum/surgery_step/incise, /datum/surgery_step/clamp_bleeders, /datum/surgery_step/retract_skin, /datum/surgery_step/incise, /datum/surgery_step/extract_organ, /datum/surgery_step/gland_insert) - possible_locs = list("chest") + possible_locs = list(BODY_ZONE_CHEST) ignore_clothes = 1 /datum/surgery/organ_extraction/can_start(mob/user, mob/living/carbon/target) diff --git a/code/modules/antagonists/changeling/powers/headcrab.dm b/code/modules/antagonists/changeling/powers/headcrab.dm index 673212ab23..70edf1e788 100644 --- a/code/modules/antagonists/changeling/powers/headcrab.dm +++ b/code/modules/antagonists/changeling/powers/headcrab.dm @@ -11,7 +11,7 @@ if(alert("Are we sure we wish to kill ourself and create a headslug?",,"Yes", "No") == "No") return var/datum/mind/M = user.mind - var/list/organs = user.getorganszone("head", 1) + var/list/organs = user.getorganszone(BODY_ZONE_HEAD, 1) for(var/obj/item/organ/I in organs) I.Remove(user, 1) diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm index d176de0ccd..e3fb55fa42 100644 --- a/code/modules/antagonists/changeling/powers/mutations.dm +++ b/code/modules/antagonists/changeling/powers/mutations.dm @@ -43,9 +43,9 @@ return var/limb_regen = 0 if(user.active_hand_index % 2 == 0) //we regen the arm before changing it into the weapon - limb_regen = user.regenerate_limb("r_arm", 1) + limb_regen = user.regenerate_limb(BODY_ZONE_R_ARM, 1) else - limb_regen = user.regenerate_limb("l_arm", 1) + limb_regen = user.regenerate_limb(BODY_ZONE_L_ARM, 1) if(limb_regen) user.visible_message("[user]'s missing arm reforms, making a loud, grotesque sound!", "Your arm regrows, making a loud, crunchy sound and giving you great pain!", "You hear organic matter ripping and tearing!") user.emote("scream") @@ -307,7 +307,7 @@ for(var/obj/item/I in H.held_items) if(I.is_sharp()) C.visible_message("[H] impales [C] with [H.p_their()] [I.name]!", "[H] impales you with [H.p_their()] [I.name]!") - C.apply_damage(I.force, BRUTE, "chest") + C.apply_damage(I.force, BRUTE, BODY_ZONE_CHEST) H.do_item_attack_animation(C, used_item = I) H.add_mob_blood(C) playsound(get_turf(H),I.hitsound,75,1) diff --git a/code/modules/antagonists/changeling/powers/revive.dm b/code/modules/antagonists/changeling/powers/revive.dm index 4165eeeff2..4dcc87ce74 100644 --- a/code/modules/antagonists/changeling/powers/revive.dm +++ b/code/modules/antagonists/changeling/powers/revive.dm @@ -1,36 +1,36 @@ -/obj/effect/proc_holder/changeling/revive - name = "Revive" - desc = "We regenerate, healing all damage from our form." - helptext = "Does not regrow lost organs or a missing head." - req_stat = DEAD - always_keep = TRUE - ignores_fakedeath = TRUE - -//Revive from revival stasis -/obj/effect/proc_holder/changeling/revive/sting_action(mob/living/carbon/user) - user.cure_fakedeath("changeling") - user.revive(full_heal = 1) - var/list/missing = user.get_missing_limbs() - missing -= "head" // headless changelings are funny - if(missing.len) - playsound(user, 'sound/magic/demon_consume.ogg', 50, 1) - user.visible_message("[user]'s missing limbs \ - reform, making a loud, grotesque sound!", - "Your limbs regrow, making a \ - loud, crunchy sound and giving you great pain!", - "You hear organic matter ripping \ - and tearing!") - user.emote("scream") - user.regenerate_limbs(0, list("head")) - user.regenerate_organs() - to_chat(user, "We have revived ourselves.") - var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling) - changeling.purchasedpowers -= src - return TRUE - -/obj/effect/proc_holder/changeling/revive/can_be_used_by(mob/living/user) - if((user.stat != DEAD) && !(user.has_trait(TRAIT_FAKEDEATH))) - var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling) - changeling.purchasedpowers -= src - return 0 +/obj/effect/proc_holder/changeling/revive + name = "Revive" + desc = "We regenerate, healing all damage from our form." + helptext = "Does not regrow lost organs or a missing head." + req_stat = DEAD + always_keep = TRUE + ignores_fakedeath = TRUE + +//Revive from revival stasis +/obj/effect/proc_holder/changeling/revive/sting_action(mob/living/carbon/user) + user.cure_fakedeath("changeling") + user.revive(full_heal = 1) + var/list/missing = user.get_missing_limbs() + missing -= BODY_ZONE_HEAD // headless changelings are funny + if(missing.len) + playsound(user, 'sound/magic/demon_consume.ogg', 50, 1) + user.visible_message("[user]'s missing limbs \ + reform, making a loud, grotesque sound!", + "Your limbs regrow, making a \ + loud, crunchy sound and giving you great pain!", + "You hear organic matter ripping \ + and tearing!") + user.emote("scream") + user.regenerate_limbs(0, list(BODY_ZONE_HEAD)) + user.regenerate_organs() + to_chat(user, "We have revived ourselves.") + var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling) + changeling.purchasedpowers -= src + return TRUE + +/obj/effect/proc_holder/changeling/revive/can_be_used_by(mob/living/user) + if((user.stat != DEAD) && !(user.has_trait(TRAIT_FAKEDEATH))) + var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling) + changeling.purchasedpowers -= src + return 0 . = ..() diff --git a/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm b/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm index 95ae8ff65f..8b018fa6d3 100644 --- a/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm +++ b/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm @@ -48,7 +48,7 @@ to_chat(user, "\"Do you have a hole in your head? You're about to.\"") to_chat(user, "The helmet tries to drive a spike through your head as you scramble to remove it!") user.emote("scream") - user.apply_damage(30, BRUTE, "head") + user.apply_damage(30, BRUTE, BODY_ZONE_HEAD) user.adjustBrainLoss(30) addtimer(CALLBACK(user, /mob/living.proc/dropItemToGround), src, 1) //equipped happens before putting stuff on(but not before picking items up), 1). thus, we need to wait for it to be on before forcing it off. @@ -114,7 +114,7 @@ to_chat(user, "\"I think this armor is too hot for you to handle.\"") to_chat(user, "The curiass emits a burst of flame as you scramble to get it off!") user.emote("scream") - user.apply_damage(15, BURN, "chest") + user.apply_damage(15, BURN, BODY_ZONE_CHEST) user.adjust_fire_stacks(2) user.IgniteMob() addtimer(CALLBACK(user, /mob/living.proc/dropItemToGround, src, TRUE), 1) @@ -175,8 +175,8 @@ to_chat(user, "\"Did you like having arms?\"") to_chat(user, "The gauntlets suddenly squeeze tight, crushing your arms before you manage to get them off!") user.emote("scream") - user.apply_damage(7, BRUTE, "l_arm") - user.apply_damage(7, BRUTE, "r_arm") + user.apply_damage(7, BRUTE, BODY_ZONE_L_ARM) + user.apply_damage(7, BRUTE, BODY_ZONE_R_ARM) addtimer(CALLBACK(user, /mob/living.proc/dropItemToGround, src, TRUE), 1) /obj/item/clothing/shoes/clockwork @@ -225,6 +225,6 @@ to_chat(user, "\"Let's see if you can dance with these.\"") to_chat(user, "The treads turn searing hot as you scramble to get them off!") user.emote("scream") - user.apply_damage(7, BURN, "l_leg") - user.apply_damage(7, BURN, "r_leg") + user.apply_damage(7, BURN, BODY_ZONE_L_LEG) + user.apply_damage(7, BURN, BODY_ZONE_R_LEG) addtimer(CALLBACK(user, /mob/living.proc/dropItemToGround, src, TRUE), 1) diff --git a/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm b/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm index 01160e8b2e..158a644c23 100644 --- a/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm +++ b/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm @@ -143,8 +143,8 @@ playsound(get_turf(user), 'sound/weapons/sear.ogg', 50, 1) user.dropItemToGround(src) user.emote("scream") - user.apply_damage(5, BURN, "l_arm") - user.apply_damage(5, BURN, "r_arm") + user.apply_damage(5, BURN, BODY_ZONE_L_ARM) + user.apply_damage(5, BURN, BODY_ZONE_R_ARM) return 0 if(!is_servant_of_ratvar(user)) to_chat(user, "The information on [src]'s display shifts rapidly. After a moment, your head begins to pound, and you tear your eyes away.") diff --git a/code/modules/antagonists/clockcult/clock_items/soul_vessel.dm b/code/modules/antagonists/clockcult/clock_items/soul_vessel.dm index 9dbbf4a11b..48466238a7 100644 --- a/code/modules/antagonists/clockcult/clock_items/soul_vessel.dm +++ b/code/modules/antagonists/clockcult/clock_items/soul_vessel.dm @@ -79,7 +79,7 @@ if(I.flags_inv & HIDEHAIR) //they're wearing a mask that covers their skull to_chat(user, "[H]'s head is covered, remove [H.wear_mask] first!") return - var/obj/item/bodypart/head/HE = H.get_bodypart("head") + var/obj/item/bodypart/head/HE = H.get_bodypart(BODY_ZONE_HEAD) if(!HE) //literally headless to_chat(user, "[H] has no head, and thus no mind to claim!") return diff --git a/code/modules/antagonists/clockcult/clock_structures/traps/brass_skewer.dm b/code/modules/antagonists/clockcult/clock_structures/traps/brass_skewer.dm index 20a18d18f6..93a3e14045 100644 --- a/code/modules/antagonists/clockcult/clock_structures/traps/brass_skewer.dm +++ b/code/modules/antagonists/clockcult/clock_structures/traps/brass_skewer.dm @@ -64,7 +64,7 @@ squirrel.emote("scream") playsound(squirrel, 'sound/effects/splat.ogg', 50, TRUE) playsound(squirrel, 'sound/misc/desceration-03.ogg', 50, TRUE) - squirrel.apply_damage(20, BRUTE, "chest") + squirrel.apply_damage(20, BRUTE, BODY_ZONE_CHEST) mouse_opacity = MOUSE_OPACITY_OPAQUE //So players can interact with the tile it's on to pull them off buckle_mob(squirrel, TRUE) else @@ -96,7 +96,7 @@ if(!do_after(user, 300, target = user)) user.visible_message("[user] slides back down [src]!") user.emote("scream") - user.apply_damage(10, BRUTE, "chest") + user.apply_damage(10, BRUTE, BODY_ZONE_CHEST) playsound(user, 'sound/misc/desceration-03.ogg', 50, TRUE) wiggle_wiggle = FALSE return diff --git a/code/modules/antagonists/cult/blood_magic.dm b/code/modules/antagonists/cult/blood_magic.dm index acf516259f..81bdd5815f 100644 --- a/code/modules/antagonists/cult/blood_magic.dm +++ b/code/modules/antagonists/cult/blood_magic.dm @@ -385,9 +385,9 @@ user.whisper(invocation, language = /datum/language/common) if(health_cost) if(user.active_hand_index == 1) - user.apply_damage(health_cost, BRUTE, "l_arm") + user.apply_damage(health_cost, BRUTE, BODY_ZONE_L_ARM) else - user.apply_damage(health_cost, BRUTE, "r_arm") + user.apply_damage(health_cost, BRUTE, BODY_ZONE_R_ARM) if(uses <= 0) qdel(src) else if(source) diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm index be014ae770..1b744863d8 100644 --- a/code/modules/antagonists/cult/cult_items.dm +++ b/code/modules/antagonists/cult/cult_items.dm @@ -57,7 +57,7 @@ "\"You shouldn't play with sharp things. You'll poke someone's eye out.\"") if(ishuman(user)) var/mob/living/carbon/human/H = user - H.apply_damage(rand(force/2, force), BRUTE, pick("l_arm", "r_arm")) + H.apply_damage(rand(force/2, force), BRUTE, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM)) else user.adjustBruteLoss(rand(force/2,force)) return @@ -79,7 +79,7 @@ to_chat(user, "\"One of Ratvar's toys is trying to play with things [user.p_they()] shouldn't. Cute.\"") to_chat(user, "A horrible force yanks at your arm!") user.emote("scream") - user.apply_damage(30, BRUTE, pick("l_arm", "r_arm")) + user.apply_damage(30, BRUTE, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM)) user.dropItemToGround(src) /obj/item/twohanded/required/cult_bastard @@ -147,7 +147,7 @@ to_chat(user, "\"One of Ratvar's toys is trying to play with things [user.p_they()] shouldn't. Cute.\"") to_chat(user, "A horrible force yanks at your arm!") user.emote("scream") - user.apply_damage(30, BRUTE, pick("l_arm", "r_arm")) + user.apply_damage(30, BRUTE, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM)) user.dropItemToGround(src, TRUE) user.Knockdown(50) return diff --git a/code/modules/antagonists/cult/ritual.dm b/code/modules/antagonists/cult/ritual.dm index 8167a1c0d9..dd129708a8 100644 --- a/code/modules/antagonists/cult/ritual.dm +++ b/code/modules/antagonists/cult/ritual.dm @@ -114,7 +114,7 @@ This file contains the cult dagger and rune list code user.visible_message("[user] [user.blood_volume ? "cuts open their arm and begins writing in their own blood":"begins sketching out a strange design"]!", \ "You [user.blood_volume ? "slice open your arm and ":""]begin drawing a sigil of the Geometer.") if(user.blood_volume) - user.apply_damage(initial(rune_to_scribe.scribe_damage), BRUTE, pick("l_arm", "r_arm")) + user.apply_damage(initial(rune_to_scribe.scribe_damage), BRUTE, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM)) var/scribe_mod = initial(rune_to_scribe.scribe_delay) if(istype(get_turf(user), /turf/open/floor/engine/cult)) scribe_mod *= 0.5 diff --git a/code/modules/antagonists/cult/runes.dm b/code/modules/antagonists/cult/runes.dm index eacf4fb518..8474bd63f1 100644 --- a/code/modules/antagonists/cult/runes.dm +++ b/code/modules/antagonists/cult/runes.dm @@ -637,7 +637,7 @@ structure_check() searches for nearby cultist structures required for the invoca "You channel [carbon_user ? "your life ":""]energy into [src], [density ? "temporarily preventing" : "allowing"] passage above it.") if(carbon_user) var/mob/living/carbon/C = user - C.apply_damage(2, BRUTE, pick("l_arm", "r_arm")) + C.apply_damage(2, BRUTE, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM)) /obj/effect/rune/wall/proc/spread_density() for(var/R in GLOB.wall_runes) diff --git a/code/modules/antagonists/nukeop/nukeop.dm b/code/modules/antagonists/nukeop/nukeop.dm index 9b3fa4bed9..648f62c4a5 100644 --- a/code/modules/antagonists/nukeop/nukeop.dm +++ b/code/modules/antagonists/nukeop/nukeop.dm @@ -325,6 +325,7 @@ var/text = "
The syndicate operatives were:" var/purchases = "" var/TC_uses = 0 + LAZYINITLIST(GLOB.uplink_purchase_logs_by_key) for(var/I in members) var/datum/mind/syndicate = I var/datum/uplink_purchase_log/H = GLOB.uplink_purchase_logs_by_key[syndicate.key] diff --git a/code/modules/antagonists/traitor/datum_traitor.dm b/code/modules/antagonists/traitor/datum_traitor.dm index c6aaee9c2c..ffe31b68ce 100644 --- a/code/modules/antagonists/traitor/datum_traitor.dm +++ b/code/modules/antagonists/traitor/datum_traitor.dm @@ -321,6 +321,7 @@ var/TC_uses = 0 var/uplink_true = FALSE var/purchases = "" + LAZYINITLIST(GLOB.uplink_purchase_logs_by_key) var/datum/uplink_purchase_log/H = GLOB.uplink_purchase_logs_by_key[owner.key] if(H) TC_uses = H.total_spent diff --git a/code/modules/antagonists/wizard/equipment/artefact.dm b/code/modules/antagonists/wizard/equipment/artefact.dm index 5a88607d55..cd2e4f60f0 100644 --- a/code/modules/antagonists/wizard/equipment/artefact.dm +++ b/code/modules/antagonists/wizard/equipment/artefact.dm @@ -263,7 +263,7 @@ target = input(user, "Select your victim!", "Voodoo") as null|anything in possible return - if(user.zone_selected == "chest") + if(user.zone_selected == BODY_ZONE_CHEST) if(voodoo_link) target = null voodoo_link.forceMove(drop_location()) @@ -274,24 +274,24 @@ if(target && cooldown < world.time) switch(user.zone_selected) - if("mouth") + if(BODY_ZONE_PRECISE_MOUTH) var/wgw = sanitize(input(user, "What would you like the victim to say", "Voodoo", null) as text) target.say(wgw) log_game("[user][user.key] made [target][target.key] say [wgw] with a voodoo doll.") - if("eyes") + if(BODY_ZONE_PRECISE_EYES) user.set_machine(src) user.reset_perspective(target) spawn(100) user.reset_perspective(null) user.unset_machine() - if("r_leg","l_leg") + if(BODY_ZONE_R_LEG,BODY_ZONE_L_LEG) to_chat(user, "You move the doll's legs around.") var/turf/T = get_step(target,pick(GLOB.cardinals)) target.Move(T) - if("r_arm","l_arm") + if(BODY_ZONE_R_ARM,BODY_ZONE_L_ARM) target.click_random_mob() GiveHint(target) - if("head") + if(BODY_ZONE_HEAD) to_chat(user, "You smack the doll's head with your hand.") target.Dizzy(10) to_chat(target, "You suddenly feel as if your head was hit with a hammer!") diff --git a/code/modules/assembly/mousetrap.dm b/code/modules/assembly/mousetrap.dm index 2ffe64f327..90b3b55b71 100644 --- a/code/modules/assembly/mousetrap.dm +++ b/code/modules/assembly/mousetrap.dm @@ -1,142 +1,142 @@ -/obj/item/device/assembly/mousetrap - name = "mousetrap" - desc = "A handy little spring-loaded trap for catching pesty rodents." - icon_state = "mousetrap" - materials = list(MAT_METAL=100) - attachable = 1 - var/armed = 0 - - -/obj/item/device/assembly/mousetrap/examine(mob/user) - ..() - if(armed) - to_chat(user, "The mousetrap is armed!") - else - to_chat(user, "The mousetrap is not armed.") - -/obj/item/device/assembly/mousetrap/activate() - if(..()) - armed = !armed - if(!armed) - if(ishuman(usr)) - var/mob/living/carbon/human/user = usr - if((user.has_trait(TRAIT_DUMB) || user.has_trait(TRAIT_CLUMSY)) && prob(50)) - to_chat(user, "Your hand slips, setting off the trigger!") - pulse(0) - update_icon() - if(usr) - playsound(usr.loc, 'sound/weapons/handcuffs.ogg', 30, 1, -3) - -/obj/item/device/assembly/mousetrap/describe() - return "The pressure switch is [armed?"primed":"safe"]." - -/obj/item/device/assembly/mousetrap/update_icon() - if(armed) - icon_state = "mousetraparmed" - else - icon_state = "mousetrap" - if(holder) - holder.update_icon() - -/obj/item/device/assembly/mousetrap/proc/triggered(mob/target, type = "feet") - if(!armed) - return - var/obj/item/bodypart/affecting = null - if(ishuman(target)) - var/mob/living/carbon/human/H = target - if(H.has_trait(TRAIT_PIERCEIMMUNE)) - playsound(src.loc, 'sound/effects/snap.ogg', 50, 1) - armed = 0 - update_icon() - pulse(0) - return 0 - switch(type) - if("feet") - if(!H.shoes) - affecting = H.get_bodypart(pick("l_leg", "r_leg")) - H.Knockdown(60) - if("l_hand", "r_hand") - if(!H.gloves) - affecting = H.get_bodypart(type) - H.Stun(60) - if(affecting) - if(affecting.receive_damage(1, 0)) - H.update_damage_overlays() - else if(ismouse(target)) - var/mob/living/simple_animal/mouse/M = target - visible_message("SPLAT!") - M.splat() - playsound(src.loc, 'sound/effects/snap.ogg', 50, 1) - armed = 0 - update_icon() - pulse(0) - - -/obj/item/device/assembly/mousetrap/attack_self(mob/living/carbon/human/user) - if(!armed) - to_chat(user, "You arm [src].") - else - if((user.has_trait(TRAIT_DUMB) || user.has_trait(TRAIT_CLUMSY)) && prob(50)) - var/which_hand = "l_hand" - if(!(user.active_hand_index % 2)) - which_hand = "r_hand" - triggered(user, which_hand) - user.visible_message("[user] accidentally sets off [src], breaking their fingers.", \ - "You accidentally trigger [src]!") - return - to_chat(user, "You disarm [src].") - armed = !armed - update_icon() - playsound(user.loc, 'sound/weapons/handcuffs.ogg', 30, 1, -3) - - -/obj/item/device/assembly/mousetrap/attack_hand(mob/living/carbon/human/user) - if(armed) - if((user.has_trait(TRAIT_DUMB) || user.has_trait(TRAIT_CLUMSY)) && prob(50)) - var/which_hand = "l_hand" - if(!(user.active_hand_index % 2)) - which_hand = "r_hand" - triggered(user, which_hand) - user.visible_message("[user] accidentally sets off [src], breaking their fingers.", \ - "You accidentally trigger [src]!") - return - ..() - - -/obj/item/device/assembly/mousetrap/Crossed(atom/movable/AM as mob|obj) - if(armed) - if(ismob(AM)) - var/mob/MM = AM - if(!(MM.movement_type & FLYING)) - if(ishuman(AM)) - var/mob/living/carbon/H = AM - if(H.m_intent == MOVE_INTENT_RUN) - triggered(H) - H.visible_message("[H] accidentally steps on [src].", \ - "You accidentally step on [src]") - else if(ismouse(MM)) - triggered(MM) - else if(AM.density) // For mousetrap grenades, set off by anything heavy - triggered(AM) - ..() - - -/obj/item/device/assembly/mousetrap/on_found(mob/finder) - if(armed) - finder.visible_message("[finder] accidentally sets off [src], breaking their fingers.", \ - "You accidentally trigger [src]!") - triggered(finder, (finder.active_hand_index % 2 == 0) ? "r_hand" : "l_hand") - return 1 //end the search! - return 0 - - -/obj/item/device/assembly/mousetrap/hitby(A as mob|obj) - if(!armed) - return ..() - visible_message("[src] is triggered by [A].") - triggered(null) - - -/obj/item/device/assembly/mousetrap/armed - icon_state = "mousetraparmed" +/obj/item/device/assembly/mousetrap + name = "mousetrap" + desc = "A handy little spring-loaded trap for catching pesty rodents." + icon_state = "mousetrap" + materials = list(MAT_METAL=100) + attachable = 1 + var/armed = 0 + + +/obj/item/device/assembly/mousetrap/examine(mob/user) + ..() + if(armed) + to_chat(user, "The mousetrap is armed!") + else + to_chat(user, "The mousetrap is not armed.") + +/obj/item/device/assembly/mousetrap/activate() + if(..()) + armed = !armed + if(!armed) + if(ishuman(usr)) + var/mob/living/carbon/human/user = usr + if((user.has_trait(TRAIT_DUMB) || user.has_trait(TRAIT_CLUMSY)) && prob(50)) + to_chat(user, "Your hand slips, setting off the trigger!") + pulse(0) + update_icon() + if(usr) + playsound(usr.loc, 'sound/weapons/handcuffs.ogg', 30, 1, -3) + +/obj/item/device/assembly/mousetrap/describe() + return "The pressure switch is [armed?"primed":"safe"]." + +/obj/item/device/assembly/mousetrap/update_icon() + if(armed) + icon_state = "mousetraparmed" + else + icon_state = "mousetrap" + if(holder) + holder.update_icon() + +/obj/item/device/assembly/mousetrap/proc/triggered(mob/target, type = "feet") + if(!armed) + return + var/obj/item/bodypart/affecting = null + if(ishuman(target)) + var/mob/living/carbon/human/H = target + if(H.has_trait(TRAIT_PIERCEIMMUNE)) + playsound(src.loc, 'sound/effects/snap.ogg', 50, 1) + armed = 0 + update_icon() + pulse(0) + return 0 + switch(type) + if("feet") + if(!H.shoes) + affecting = H.get_bodypart(pick(BODY_ZONE_L_LEG, BODY_ZONE_R_LEG)) + H.Knockdown(60) + if(BODY_ZONE_PRECISE_L_HAND, BODY_ZONE_PRECISE_R_HAND) + if(!H.gloves) + affecting = H.get_bodypart(type) + H.Stun(60) + if(affecting) + if(affecting.receive_damage(1, 0)) + H.update_damage_overlays() + else if(ismouse(target)) + var/mob/living/simple_animal/mouse/M = target + visible_message("SPLAT!") + M.splat() + playsound(src.loc, 'sound/effects/snap.ogg', 50, 1) + armed = 0 + update_icon() + pulse(0) + + +/obj/item/device/assembly/mousetrap/attack_self(mob/living/carbon/human/user) + if(!armed) + to_chat(user, "You arm [src].") + else + if((user.has_trait(TRAIT_DUMB) || user.has_trait(TRAIT_CLUMSY)) && prob(50)) + var/which_hand = BODY_ZONE_PRECISE_L_HAND + if(!(user.active_hand_index % 2)) + which_hand = BODY_ZONE_PRECISE_R_HAND + triggered(user, which_hand) + user.visible_message("[user] accidentally sets off [src], breaking their fingers.", \ + "You accidentally trigger [src]!") + return + to_chat(user, "You disarm [src].") + armed = !armed + update_icon() + playsound(user.loc, 'sound/weapons/handcuffs.ogg', 30, 1, -3) + + +/obj/item/device/assembly/mousetrap/attack_hand(mob/living/carbon/human/user) + if(armed) + if((user.has_trait(TRAIT_DUMB) || user.has_trait(TRAIT_CLUMSY)) && prob(50)) + var/which_hand = BODY_ZONE_PRECISE_L_HAND + if(!(user.active_hand_index % 2)) + which_hand = BODY_ZONE_PRECISE_R_HAND + triggered(user, which_hand) + user.visible_message("[user] accidentally sets off [src], breaking their fingers.", \ + "You accidentally trigger [src]!") + return + ..() + + +/obj/item/device/assembly/mousetrap/Crossed(atom/movable/AM as mob|obj) + if(armed) + if(ismob(AM)) + var/mob/MM = AM + if(!(MM.movement_type & FLYING)) + if(ishuman(AM)) + var/mob/living/carbon/H = AM + if(H.m_intent == MOVE_INTENT_RUN) + triggered(H) + H.visible_message("[H] accidentally steps on [src].", \ + "You accidentally step on [src]") + else if(ismouse(MM)) + triggered(MM) + else if(AM.density) // For mousetrap grenades, set off by anything heavy + triggered(AM) + ..() + + +/obj/item/device/assembly/mousetrap/on_found(mob/finder) + if(armed) + finder.visible_message("[finder] accidentally sets off [src], breaking their fingers.", \ + "You accidentally trigger [src]!") + triggered(finder, (finder.active_hand_index % 2 == 0) ? BODY_ZONE_PRECISE_R_HAND : BODY_ZONE_PRECISE_L_HAND) + return 1 //end the search! + return 0 + + +/obj/item/device/assembly/mousetrap/hitby(A as mob|obj) + if(!armed) + return ..() + visible_message("[src] is triggered by [A].") + triggered(null) + + +/obj/item/device/assembly/mousetrap/armed + icon_state = "mousetraparmed" armed = 1 diff --git a/code/modules/atmospherics/gasmixtures/reactions.dm b/code/modules/atmospherics/gasmixtures/reactions.dm index 3c0e403fe5..5b77db3402 100644 --- a/code/modules/atmospherics/gasmixtures/reactions.dm +++ b/code/modules/atmospherics/gasmixtures/reactions.dm @@ -146,8 +146,6 @@ if(temperature_scale > 0) var/o2 = cached_gases[/datum/gas/oxygen] ? cached_gases[/datum/gas/oxygen][MOLES] : 0 oxygen_burn_rate = OXYGEN_BURN_RATE_BASE - temperature_scale - if (o2 > cached_gases[/datum/gas/plasma][MOLES]*PLASMA_OXYGEN_FULLBURN) - plasma_burn_rate = (cached_gases[/datum/gas/plasma][MOLES]*temperature_scale)/PLASMA_BURN_RATE_DELTA if(o2 / cached_gases[/datum/gas/plasma][MOLES] > SUPER_SATURATION_THRESHOLD) //supersaturation. Form Tritium. super_saturation = TRUE if(o2 > cached_gases[/datum/gas/plasma][MOLES]*PLASMA_OXYGEN_FULLBURN) diff --git a/code/modules/atmospherics/machinery/pipes/heat_exchange/he_pipes.dm b/code/modules/atmospherics/machinery/pipes/heat_exchange/he_pipes.dm index c50ccc942b..ee52d89e5b 100644 --- a/code/modules/atmospherics/machinery/pipes/heat_exchange/he_pipes.dm +++ b/code/modules/atmospherics/machinery/pipes/heat_exchange/he_pipes.dm @@ -87,4 +87,4 @@ if(pipe_air.temperature > heat_limit + 1) for(var/m in buckled_mobs) var/mob/living/buckled_mob = m - buckled_mob.apply_damage(4 * log(pipe_air.temperature - heat_limit), BURN, "chest") + buckled_mob.apply_damage(4 * log(pipe_air.temperature - heat_limit), BURN, BODY_ZONE_CHEST) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 3ec224e73e..dbc84d19a3 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -1069,7 +1069,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) undershirt = random_undershirt(gender) if("socks") socks = random_socks() - if("eyes") + if(BODY_ZONE_PRECISE_EYES) eye_color = random_eye_color() if("s_tone") skin_tone = random_skin_tone() @@ -1211,7 +1211,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(new_socks) socks = new_socks - if("eyes") + if(BODY_ZONE_PRECISE_EYES) var/new_eyes = input(user, "Choose your character's eye colour:", "Character Preference","#"+eye_color) as color|null if(new_eyes) eye_color = sanitize_hexcolor(new_eyes) diff --git a/code/modules/client/preferences_toggles.dm b/code/modules/client/preferences_toggles.dm index 367a11c2cb..d5643a61fe 100644 --- a/code/modules/client/preferences_toggles.dm +++ b/code/modules/client/preferences_toggles.dm @@ -116,7 +116,7 @@ TOGGLE_CHECKBOX(/datum/verbs/menu/Settings/Ghost, togglemidroundantag)() return C.prefs.toggles & MIDROUND_ANTAG TOGGLE_CHECKBOX(/datum/verbs/menu/Settings/Sound, toggletitlemusic)() - set name = "Hear/Silence LobbyMusic" + set name = "Hear/Silence Lobby Music" set category = "Preferences" set desc = "Hear Music In Lobby" usr.client.prefs.toggles ^= SOUND_LOBBY diff --git a/code/modules/client/verbs/suicide.dm b/code/modules/client/verbs/suicide.dm index 9471f0ab9e..2b5602833a 100644 --- a/code/modules/client/verbs/suicide.dm +++ b/code/modules/client/verbs/suicide.dm @@ -21,9 +21,7 @@ if(damagetype & SHAME) adjustStaminaLoss(200) suiciding = FALSE - GET_COMPONENT_FROM(mood, /datum/component/mood, src) - if(mood) - mood.add_event("shameful_suicide", /datum/mood_event/shameful_suicide) + SendSignal(COMSIG_ADD_MOOD_EVENT, "shameful_suicide", /datum/mood_event/shameful_suicide) return var/damage_mod = 0 for(var/T in list(BRUTELOSS, FIRELOSS, TOXLOSS, OXYLOSS)) diff --git a/code/modules/clothing/head/_head.dm b/code/modules/clothing/head/_head.dm index 9ec6542cf5..d3dfa189d8 100644 --- a/code/modules/clothing/head/_head.dm +++ b/code/modules/clothing/head/_head.dm @@ -1,5 +1,5 @@ /obj/item/clothing/head - name = "head" + name = BODY_ZONE_HEAD icon = 'icons/obj/clothing/hats.dmi' icon_state = "top_hat" item_state = "that" diff --git a/code/modules/clothing/neck/_neck.dm b/code/modules/clothing/neck/_neck.dm index 7d81e2d005..1d92ab6e62 100644 --- a/code/modules/clothing/neck/_neck.dm +++ b/code/modules/clothing/neck/_neck.dm @@ -79,7 +79,7 @@ if(M.stat == DEAD && heart && world.time - M.timeofdeath < DEFIB_TIME_LIMIT * 10) heart_strength = "a faint, fluttery" - var/diagnosis = (body_part == "chest" ? "You hear [heart_strength] pulse and [lung_strength] respiration." : "You faintly hear [heart_strength] pulse.") + var/diagnosis = (body_part == BODY_ZONE_CHEST ? "You hear [heart_strength] pulse and [lung_strength] respiration." : "You faintly hear [heart_strength] pulse.") user.visible_message("[user] places [src] against [M]'s [body_part] and listens attentively.", "You place [src] against [M]'s [body_part]. [diagnosis]") return return ..(M,user) diff --git a/code/modules/clothing/outfits/ert.dm b/code/modules/clothing/outfits/ert.dm index 422d4735b2..97d4632130 100644 --- a/code/modules/clothing/outfits/ert.dm +++ b/code/modules/clothing/outfits/ert.dm @@ -254,9 +254,9 @@ suit = /obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor - belt = /obj/item/storage/belt/soulstone/full + belt = /obj/item/storage/belt/soulstone/full/chappy backpack_contents = list(/obj/item/storage/box/engineer=1, - /obj/item/storage/box/holy_grenades=1, + /obj/item/grenade/chem_grenade/holy=1, /obj/item/nullrod=1, /obj/item/clothing/mask/gas/sechailer=1, /obj/item/gun/energy/e_gun=1, diff --git a/code/modules/clothing/shoes/_shoes.dm b/code/modules/clothing/shoes/_shoes.dm index e725a24df1..0758013698 100644 --- a/code/modules/clothing/shoes/_shoes.dm +++ b/code/modules/clothing/shoes/_shoes.dm @@ -22,8 +22,8 @@ /obj/item/clothing/shoes/suicide_act(mob/living/carbon/user) if(rand(2)>1) user.visible_message("[user] begins tying \the [src] up waaay too tightly! It looks like [user.p_theyre()] trying to commit suicide!") - var/obj/item/bodypart/l_leg = user.get_bodypart("l_leg") - var/obj/item/bodypart/r_leg = user.get_bodypart("r_leg") + var/obj/item/bodypart/l_leg = user.get_bodypart(BODY_ZONE_L_LEG) + var/obj/item/bodypart/r_leg = user.get_bodypart(BODY_ZONE_R_LEG) if(l_leg) l_leg.dismember() playsound(user,pick('sound/misc/desceration-01.ogg','sound/misc/desceration-02.ogg','sound/misc/desceration-01.ogg') ,50, 1, -1) diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index 7ae401f564..d5e75d4bad 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -82,16 +82,12 @@ /obj/item/clothing/shoes/clown_shoes/equipped(mob/user, slot) . = ..() if(user.mind && user.mind.assigned_role == "Clown") - GET_COMPONENT_FROM(mood, /datum/component/mood, user) - if(mood) - mood.clear_event("noshoes") + user.SendSignal(COMSIG_CLEAR_MOOD_EVENT, "noshoes") /obj/item/clothing/shoes/clown_shoes/dropped(mob/user) . = ..() if(user.mind && user.mind.assigned_role == "Clown") - GET_COMPONENT_FROM(mood, /datum/component/mood, user) - if(mood) - mood.add_event("noshoes", /datum/mood_event/noshoes) + user.SendSignal(COMSIG_ADD_MOOD_EVENT, "noshoes", /datum/mood_event/noshoes) /obj/item/clothing/shoes/clown_shoes/jester name = "jester shoes" diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index f3ce410933..37d48b484e 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -149,7 +149,7 @@ var/hit_reflect_chance = 40 /obj/item/clothing/suit/armor/laserproof/IsReflect(def_zone) - if(!(def_zone in list("chest", "groin"))) //If not shot where ablative is covering you, you don't get the reflection bonus! + if(!(def_zone in list(BODY_ZONE_CHEST, BODY_ZONE_PRECISE_GROIN))) //If not shot where ablative is covering you, you don't get the reflection bonus! return 0 if (prob(hit_reflect_chance)) return 1 diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index c912a9b4e8..26391c0957 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -870,12 +870,7 @@ GLOBAL_LIST_INIT(hallucinations_major, list( //Rare audio if("creepy") //These sounds are (mostly) taken from Hidden: Source - var/static/list/hallucinations_creepyasssounds = list('sound/effects/ghost.ogg', 'sound/effects/ghost2.ogg', 'sound/effects/heart_beat.ogg', 'sound/effects/screech.ogg',\ - 'sound/hallucinations/behind_you1.ogg', 'sound/hallucinations/behind_you2.ogg', 'sound/hallucinations/far_noise.ogg', 'sound/hallucinations/growl1.ogg', 'sound/hallucinations/growl2.ogg',\ - 'sound/hallucinations/growl3.ogg', 'sound/hallucinations/im_here1.ogg', 'sound/hallucinations/im_here2.ogg', 'sound/hallucinations/i_see_you1.ogg', 'sound/hallucinations/i_see_you2.ogg',\ - 'sound/hallucinations/look_up1.ogg', 'sound/hallucinations/look_up2.ogg', 'sound/hallucinations/over_here1.ogg', 'sound/hallucinations/over_here2.ogg', 'sound/hallucinations/over_here3.ogg',\ - 'sound/hallucinations/turn_around1.ogg', 'sound/hallucinations/turn_around2.ogg', 'sound/hallucinations/veryfar_noise.ogg', 'sound/hallucinations/wail.ogg') - target.playsound_local(null, pick(hallucinations_creepyasssounds), 50, 1) + target.playsound_local(null, pick(CREEPY_SOUNDS), 50, 1) if("ratvar") target.playsound_local(null, 'sound/effects/ratvar_rises.ogg', 100) sleep(150) diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm index bbc56f9fe4..d6426cf20d 100644 --- a/code/modules/food_and_drinks/drinks/drinks.dm +++ b/code/modules/food_and_drinks/drinks/drinks.dm @@ -393,7 +393,7 @@ return BRUTELOSS /obj/item/reagent_containers/food/drinks/soda_cans/attack(mob/M, mob/user) - if(M == user && !src.reagents.total_volume && user.a_intent == INTENT_HARM && user.zone_selected == "head") + if(M == user && !src.reagents.total_volume && user.a_intent == INTENT_HARM && user.zone_selected == BODY_ZONE_HEAD) user.visible_message("[user] crushes the can of [src] on [user.p_their()] forehead!", "You crush the can of [src] on your forehead.") playsound(user.loc,'sound/weapons/pierce.ogg', rand(10,50), 1) var/obj/item/trash/can/crushed_can = new /obj/item/trash/can(user.loc) diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm index 821b09ae1a..1ab92e601d 100644 --- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm +++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm @@ -67,7 +67,7 @@ armor_block = H.run_armor_check(affecting, "melee","","",armour_penetration) // For normal attack damage //If they have a hat/helmet and the user is targeting their head. - if(istype(H.head, /obj/item/clothing/head) && affecting == "head") + if(istype(H.head, /obj/item/clothing/head) && affecting == BODY_ZONE_HEAD) headarmor = H.head.armor.melee else headarmor = 0 @@ -78,7 +78,7 @@ else //Only humans can have armor, right? armor_block = target.run_armor_check(affecting, "melee") - if(affecting == "head") + if(affecting == BODY_ZONE_HEAD) armor_duration = duration + force //Apply the damage! @@ -87,7 +87,7 @@ // You are going to knock someone out for longer if they are not wearing a helmet. var/head_attack_message = "" - if(affecting == "head" && istype(target, /mob/living/carbon/)) + if(affecting == BODY_ZONE_HEAD && istype(target, /mob/living/carbon/)) head_attack_message = " on the head" //Knockdown the target for the duration that we calculated and divide it by 5. if(armor_duration) diff --git a/code/modules/food_and_drinks/food.dm b/code/modules/food_and_drinks/food.dm index 4e38cb81d9..375ce80f96 100644 --- a/code/modules/food_and_drinks/food.dm +++ b/code/modules/food_and_drinks/food.dm @@ -23,21 +23,15 @@ if(foodtype & H.dna.species.toxic_food) to_chat(H,"What the hell was that thing?!") H.adjust_disgust(25 + 30 * fraction) - GET_COMPONENT_FROM(mood, /datum/component/mood, H) - if(mood) - mood.add_event("toxic_food", /datum/mood_event/disgusting_food) + H.SendSignal(COMSIG_ADD_MOOD_EVENT, "toxic_food", /datum/mood_event/disgusting_food) else if(foodtype & H.dna.species.disliked_food) to_chat(H,"That didn't taste very good...") H.adjust_disgust(11 + 15 * fraction) - GET_COMPONENT_FROM(mood, /datum/component/mood, H) - if(mood) - mood.add_event("gross_food", /datum/mood_event/gross_food) + H.SendSignal(COMSIG_ADD_MOOD_EVENT, "gross_food", /datum/mood_event/gross_food) else if(foodtype & H.dna.species.liked_food) to_chat(H,"I love this taste!") H.adjust_disgust(-5 + -2.5 * fraction) - GET_COMPONENT_FROM(mood, /datum/component/mood, H) - if(mood) - mood.add_event("fav_food", /datum/mood_event/favorite_food) + H.SendSignal(COMSIG_ADD_MOOD_EVENT, "fav_food", /datum/mood_event/favorite_food) else if(foodtype & H.dna.species.toxic_food) to_chat(H, "You don't feel so good...") diff --git a/code/modules/food_and_drinks/food/snacks_pie.dm b/code/modules/food_and_drinks/food/snacks_pie.dm index 1f755e24b2..5efcb98faf 100644 --- a/code/modules/food_and_drinks/food/snacks_pie.dm +++ b/code/modules/food_and_drinks/food/snacks_pie.dm @@ -56,9 +56,7 @@ if(!H.creamed) // one layer at a time H.add_overlay(creamoverlay) H.creamed = TRUE - GET_COMPONENT_FROM(mood, /datum/component/mood, H) - if(mood) - mood.add_event("creampie", /datum/mood_event/creampie) + H.SendSignal(COMSIG_ADD_MOOD_EVENT, "creampie", /datum/mood_event/creampie) qdel(src) /obj/item/reagent_containers/food/snacks/pie/cream/nostun diff --git a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm index 301585c13a..a008be2f22 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm @@ -142,7 +142,7 @@ God bless America. var/mob/living/carbon/C = user.pulling user.visible_message("[user] dunks [C]'s face in [src]!") reagents.reaction(C, TOUCH) - C.apply_damage(min(30, reagents.total_volume), BURN, "head") + C.apply_damage(min(30, reagents.total_volume), BURN, BODY_ZONE_HEAD) reagents.remove_any((reagents.total_volume/2)) C.Knockdown(60) user.changeNext_move(CLICK_CD_MELEE) diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm index 77a69f0475..c471ba8bb1 100644 --- a/code/modules/hydroponics/hydroitemdefines.dm +++ b/code/modules/hydroponics/hydroitemdefines.dm @@ -125,7 +125,7 @@ user.visible_message("[user] is beheading [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!") if(iscarbon(user)) var/mob/living/carbon/C = user - var/obj/item/bodypart/BP = C.get_bodypart("head") + var/obj/item/bodypart/BP = C.get_bodypart(BODY_ZONE_HEAD) if(BP) BP.drop_limb() playsound(src,pick('sound/misc/desceration-01.ogg','sound/misc/desceration-02.ogg','sound/misc/desceration-01.ogg') ,50, 1, -1) diff --git a/code/modules/integrated_electronics/core/assemblies.dm b/code/modules/integrated_electronics/core/assemblies.dm index 71605fc0dc..e62e26d576 100644 --- a/code/modules/integrated_electronics/core/assemblies.dm +++ b/code/modules/integrated_electronics/core/assemblies.dm @@ -30,6 +30,34 @@ hud_possible = list(DIAG_STAT_HUD, DIAG_BATT_HUD, DIAG_TRACK_HUD, DIAG_CIRCUIT_HUD) //diagnostic hud overlays max_integrity = 50 armor = list("melee" = 50, "bullet" = 70, "laser" = 70, "energy" = 100, "bomb" = 10, "bio" = 100, "rad" = 100, "fire" = 0, "acid" = 0) + anchored = FALSE + var/can_anchor = TRUE + var/detail_color = COLOR_ASSEMBLY_BLACK + var/list/color_whitelist = list( //This is just for checking that hacked colors aren't in the save data. + COLOR_ASSEMBLY_BLACK, + COLOR_FLOORTILE_GRAY, + COLOR_ASSEMBLY_BGRAY, + COLOR_ASSEMBLY_WHITE, + COLOR_ASSEMBLY_RED, + COLOR_ASSEMBLY_ORANGE, + COLOR_ASSEMBLY_BEIGE, + COLOR_ASSEMBLY_BROWN, + COLOR_ASSEMBLY_GOLD, + COLOR_ASSEMBLY_YELLOW, + COLOR_ASSEMBLY_GURKHA, + COLOR_ASSEMBLY_LGREEN, + COLOR_ASSEMBLY_GREEN, + COLOR_ASSEMBLY_LBLUE, + COLOR_ASSEMBLY_BLUE, + COLOR_ASSEMBLY_PURPLE + ) + +/obj/item/device/electronic_assembly/examine(mob/user) + . = ..() + if(can_anchor) + to_chat(user, "The anchoring bolts [anchored ? "are" : "can be"] wrenched in place and the maintainence panel [opened ? "can be" : "is"] screwed in place.") + else + to_chat(user, "The maintainence panel [opened ? "can be" : "is"] screwed in place.") /obj/item/device/electronic_assembly/proc/check_interactivity(mob/user) return user.canUseTopic(src, BE_CLOSE) @@ -233,6 +261,12 @@ icon_state = initial(icon_state) + "-open" else icon_state = initial(icon_state) + cut_overlays() + if(detail_color == COLOR_ASSEMBLY_BLACK) //Black colored overlay looks almost but not exactly like the base sprite, so just cut the overlay and avoid it looking kinda off. + return + var/mutable_appearance/detail_overlay = mutable_appearance('icons/obj/assemblies/electronic_setups.dmi', "[icon_state]-color") + detail_overlay.color = detail_color + add_overlay(detail_overlay) /obj/item/device/electronic_assembly/examine(mob/user) ..() @@ -357,24 +391,38 @@ return TRUE /obj/item/device/electronic_assembly/attackby(obj/item/I, mob/living/user) + if(can_anchor && default_unfasten_wrench(user, I, 20)) + return if(istype(I, /obj/item/integrated_circuit)) if(!user.canUnEquip(I)) return FALSE if(try_add_component(I, user)) interact(user) return TRUE + else + for(var/obj/item/integrated_circuit/input/S in assembly_components) + S.attackby_react(I,user,user.a_intent) + return ..() else if(istype(I, /obj/item/device/multitool) || istype(I, /obj/item/device/integrated_electronics/wirer) || istype(I, /obj/item/device/integrated_electronics/debugger)) if(opened) interact(user) + return TRUE else to_chat(user, "[src]'s hatch is closed, so you can't fiddle with the internal components.") + for(var/obj/item/integrated_circuit/input/S in assembly_components) + S.attackby_react(I,user,user.a_intent) + return ..() else if(istype(I, /obj/item/stock_parts/cell)) if(!opened) - to_chat(user, "[src]'s hatch is closed, so you can't put anything inside.") - return FALSE + to_chat(user, "[src]'s hatch is closed, so you can't access \the [src]'s power supplier.") + for(var/obj/item/integrated_circuit/input/S in assembly_components) + S.attackby_react(I,user,user.a_intent) + return ..() if(battery) to_chat(user, "[src] already has \a [battery] installed. Remove it first if you want to replace it.") - return FALSE + for(var/obj/item/integrated_circuit/input/S in assembly_components) + S.attackby_react(I,user,user.a_intent) + return ..() var/obj/item/stock_parts/cell = I user.transferItemToLoc(I, loc) cell.forceMove(src) @@ -384,6 +432,10 @@ to_chat(user, "You slot \the [cell] inside \the [src]'s power supplier.") interact(user) return TRUE + else if(istype(I, /obj/item/device/integrated_electronics/detailer)) + var/obj/item/device/integrated_electronics/detailer/D = I + detail_color = D.detail_color + update_icon() else for(var/obj/item/integrated_circuit/input/S in assembly_components) S.attackby_react(I,user,user.a_intent) @@ -471,6 +523,17 @@ return acting_object.drop_location() +/obj/item/device/electronic_assembly/attack_tk(mob/user) + if(anchored) + return + ..() + +/obj/item/device/electronic_assembly/attack_hand(mob/user) + if(anchored) + attack_self(user) + return + ..() + /obj/item/device/electronic_assembly/default //The /default electronic_assemblys are to allow the introduction of the new naming scheme without breaking old saves. name = "type-a electronic assembly" @@ -489,6 +552,16 @@ icon_state = "setup_small_simple" desc = "It's a case, for building small electronics with. This one has a simple design." +/obj/item/device/electronic_assembly/hook + name = "type-e electronic assembly" + icon_state = "setup_small_hook" + desc = "It's a case, for building small electronics with. This one looks like it has a belt clip, but it's purely decorative." + +/obj/item/device/electronic_assembly/pda + name = "type-f electronic assembly" + icon_state = "setup_small_pda" + desc = "It's a case, for building small electronics with. This one resembles a PDA." + /obj/item/device/electronic_assembly/medium name = "electronic mechanism" icon_state = "setup_medium" @@ -515,6 +588,16 @@ icon_state = "setup_medium_med" desc = "It's a case, for building medium-sized electronics with. This one resembles some type of medical apparatus." +/obj/item/device/electronic_assembly/medium/gun + name = "type-e electronic mechanism" + icon_state = "setup_medium_gun" + desc = "It's a case, for building medium-sized electronics with. This one resembles a gun, or some type of tool, if you're feeling optimistic." + +/obj/item/device/electronic_assembly/medium/radio + name = "type-f electronic mechanism" + icon_state = "setup_medium_radio" + desc = "It's a case, for building medium-sized electronics with. This one resembles an old radio." + /obj/item/device/electronic_assembly/large name = "electronic machine" icon_state = "setup_large" @@ -522,23 +605,6 @@ w_class = WEIGHT_CLASS_BULKY max_components = IC_MAX_SIZE_BASE * 4 max_complexity = IC_COMPLEXITY_BASE * 4 - anchored = FALSE - -/obj/item/device/electronic_assembly/large/attackby(obj/item/O, mob/user) - if(default_unfasten_wrench(user, O, 20)) - return - ..() - -/obj/item/device/electronic_assembly/large/attack_tk(mob/user) - if(anchored) - return - ..() - -/obj/item/device/electronic_assembly/large/attack_hand(mob/user) - if(anchored) - attack_self(user) - return - ..() /obj/item/device/electronic_assembly/large/default name = "type-a electronic machine" @@ -558,6 +624,16 @@ icon_state = "setup_large_arm" desc = "It's a case, for building large electronics with. This one resembles a robotic arm." +/obj/item/device/electronic_assembly/large/tall + name = "type-e electronic machine" + icon_state = "setup_large_tall" + desc = "It's a case, for building large electronics with. This one has a tall design." + +/obj/item/device/electronic_assembly/large/industrial + name = "type-f electronic machine" + icon_state = "setup_large_industrial" + desc = "It's a case, for building large electronics with. This one resembles some kind of industrial machinery." + /obj/item/device/electronic_assembly/drone name = "electronic drone" icon_state = "setup_drone" @@ -566,6 +642,7 @@ max_components = IC_MAX_SIZE_BASE * 3 max_complexity = IC_COMPLEXITY_BASE * 3 allowed_circuit_action_flags = IC_ACTION_MOVEMENT | IC_ACTION_COMBAT | IC_ACTION_LONG_RANGE + can_anchor = FALSE /obj/item/device/electronic_assembly/drone/can_move() return TRUE @@ -577,3 +654,75 @@ name = "type-b electronic drone" icon_state = "setup_drone_arms" desc = "It's a case, for building mobile electronics with. This one is armed and dangerous." + +/obj/item/device/electronic_assembly/drone/secbot + name = "type-c electronic drone" + icon_state = "setup_drone_secbot" + desc = "It's a case, for building mobile electronics with. This one resembles a Securitron." + +/obj/item/device/electronic_assembly/drone/medbot + name = "type-d electronic drone" + icon_state = "setup_drone_medbot" + desc = "It's a case, for building mobile electronics with. This one resembles a Medibot." + +/obj/item/device/electronic_assembly/drone/genbot + name = "type-e electronic drone" + icon_state = "setup_drone_genbot" + desc = "It's a case, for building mobile electronics with. This one has a generic bot design." + +/obj/item/device/electronic_assembly/drone/android + name = "type-f electronic drone" + icon_state = "setup_drone_android" + desc = "It's a case, for building mobile electronics with. This one has a hominoid design." + +/obj/item/device/electronic_assembly/wallmount + name = "wall-mounted electronic assembly" + icon_state = "setup_wallmount_medium" + desc = "It's a case, for building medium-sized electronics with. It has a magnetized backing to allow it to stick to walls, but you'll still need to wrench the anchoring bolts in place to keep it on." + w_class = WEIGHT_CLASS_NORMAL + max_components = IC_MAX_SIZE_BASE * 2 + max_complexity = IC_COMPLEXITY_BASE * 2 + +/obj/item/device/electronic_assembly/wallmount/heavy + name = "heavy wall-mounted electronic assembly" + icon_state = "setup_wallmount_large" + desc = "It's a case, for building large electronics with. It has a magnetized backing to allow it to stick to walls, but you'll still need to wrench the anchoring bolts in place to keep it on." + w_class = WEIGHT_CLASS_BULKY + max_components = IC_MAX_SIZE_BASE * 4 + max_complexity = IC_COMPLEXITY_BASE * 4 + +/obj/item/device/electronic_assembly/wallmount/light + name = "light wall-mounted electronic assembly" + icon_state = "setup_wallmount_small" + desc = "It's a case, for building small electronics with. It has a magnetized backing to allow it to stick to walls, but you'll still need to wrench the anchoring bolts in place to keep it on." + w_class = WEIGHT_CLASS_SMALL + max_components = IC_MAX_SIZE_BASE + max_complexity = IC_COMPLEXITY_BASE + +/obj/item/device/electronic_assembly/wallmount/proc/mount_assembly(turf/on_wall, mob/user) //Yeah, this is admittedly just an abridged and kitbashed version of the wallframe attach procs. + if(get_dist(on_wall,user)>1) + return + var/ndir = get_dir(on_wall, user) + if(!(ndir in GLOB.cardinals)) + return + var/turf/T = get_turf(user) + if(!isfloorturf(T)) + to_chat(user, "You cannot place [src] on this spot!") + return + if(gotwallitem(T, ndir)) + to_chat(user, "There's already an item on this wall!") + return + playsound(src.loc, 'sound/machines/click.ogg', 75, 1) + user.visible_message("[user.name] attaches [src] to the wall.", + "You attach [src] to the wall.", + "You hear clicking.") + user.dropItemToGround(src) + switch(ndir) + if(NORTH) + pixel_y = -31 + if(SOUTH) + pixel_y = 31 + if(EAST) + pixel_x = -31 + if(WEST) + pixel_x = 31 \ No newline at end of file diff --git a/code/modules/integrated_electronics/core/detailer.dm b/code/modules/integrated_electronics/core/detailer.dm new file mode 100644 index 0000000000..ef2cd3a138 --- /dev/null +++ b/code/modules/integrated_electronics/core/detailer.dm @@ -0,0 +1,47 @@ +/obj/item/device/integrated_electronics/detailer + name = "assembly detailer" + desc = "A combination autopainter and flash anodizer designed to give electronic assemblies a colorful, wear-resistant finish." + icon = 'icons/obj/assemblies/electronic_tools.dmi' + icon_state = "detailer" + flags_1 = CONDUCT_1 | NOBLUDGEON_1 + w_class = WEIGHT_CLASS_SMALL + var/data_to_write = null + var/accepting_refs = FALSE + var/detail_color = COLOR_ASSEMBLY_WHITE + var/list/color_list = list( + "black" = COLOR_ASSEMBLY_BLACK, + "gray" = COLOR_FLOORTILE_GRAY, + "machine gray" = COLOR_ASSEMBLY_BGRAY, + "white" = COLOR_ASSEMBLY_WHITE, + "red" = COLOR_ASSEMBLY_RED, + "orange" = COLOR_ASSEMBLY_ORANGE, + "beige" = COLOR_ASSEMBLY_BEIGE, + "brown" = COLOR_ASSEMBLY_BROWN, + "gold" = COLOR_ASSEMBLY_GOLD, + "yellow" = COLOR_ASSEMBLY_YELLOW, + "gurkha" = COLOR_ASSEMBLY_GURKHA, + "light green" = COLOR_ASSEMBLY_LGREEN, + "green" = COLOR_ASSEMBLY_GREEN, + "light blue" = COLOR_ASSEMBLY_LBLUE, + "blue" = COLOR_ASSEMBLY_BLUE, + "purple" = COLOR_ASSEMBLY_PURPLE + ) + +/obj/item/device/integrated_electronics/detailer/Initialize() + .=..() + update_icon() + +/obj/item/device/integrated_electronics/detailer/update_icon() + cut_overlays() + var/mutable_appearance/detail_overlay = mutable_appearance('icons/obj/assemblies/electronic_tools.dmi', "detailer-color") + detail_overlay.color = detail_color + add_overlay(detail_overlay) + +/obj/item/device/integrated_electronics/detailer/attack_self(mob/user) + var/color_choice = input(user, "Select color.", "Assembly Detailer") as null|anything in color_list + if(!color_list[color_choice]) + return + if(!in_range(src, user)) + return + detail_color = color_list[color_choice] + update_icon() \ No newline at end of file diff --git a/code/modules/integrated_electronics/core/saved_circuits.dm b/code/modules/integrated_electronics/core/saved_circuits.dm index 8833f6872f..1fd3212a82 100644 --- a/code/modules/integrated_electronics/core/saved_circuits.dm +++ b/code/modules/integrated_electronics/core/saved_circuits.dm @@ -3,6 +3,7 @@ // Saves type, modified name and modified inputs (if any) to a list // The list is converted to JSON down the line. +//"Special" is not verified at any point except for by the circuit itself. /obj/item/integrated_circuit/proc/save() var/list/component_params = list() var/init_name = initial(name) @@ -38,8 +39,14 @@ if(saved_inputs.len) component_params["inputs"] = saved_inputs + var/special = save_special() + if(special) + component_params["special"] = special + return component_params +/obj/item/integrated_circuit/proc/save_special() + return // Verifies a list of component parameters // Returns null on success, error name on failure @@ -100,7 +107,11 @@ pin.write_data_to_pin(input_value) // TODO: support for special input types, such as internal refs and maybe typepaths + if(component_params["special"]) + load_special(component_params["special"]) +/obj/item/integrated_circuit/proc/load_special(special_data) + return // Saves type and modified name (if any) to a list // The list is converted to JSON down the line. @@ -118,16 +129,21 @@ if(opened) assembly_params["opened"] = TRUE + // Save modified color + if(initial(detail_color) != detail_color) + assembly_params["detail_color"] = detail_color + return assembly_params // Verifies a list of assembly parameters // Returns null on success, error name on failure /obj/item/device/electronic_assembly/proc/verify_save(list/assembly_params) - // Validate name + // Validate name and color if(assembly_params["name"] && !reject_bad_name(assembly_params["name"], TRUE)) return "Bad assembly name." - + if(assembly_params["detail_color"] && !(assembly_params["detail_color"] in color_whitelist)) + return "Bad assembly color." // Loads assembly parameters from a list // Doesn't verify any of the parameters it loads, this is the job of verify_save() @@ -139,7 +155,11 @@ // Load panel status if(assembly_params["opened"]) opened = TRUE - update_icon() + + if(assembly_params["detail_color"]) + detail_color = assembly_params["detail_color"] + + update_icon() diff --git a/code/modules/integrated_electronics/subtypes/memory.dm b/code/modules/integrated_electronics/subtypes/memory.dm index 8d187a4b2a..0531dda533 100644 --- a/code/modules/integrated_electronics/subtypes/memory.dm +++ b/code/modules/integrated_electronics/subtypes/memory.dm @@ -84,6 +84,16 @@ var/datum/integrated_io/O = outputs[1] O.push_data() +/obj/item/integrated_circuit/memory/constant/save_special() + var/datum/integrated_io/O = outputs[1] + if(istext(O.data) || isnum(O.data)) + return O.data + +/obj/item/integrated_circuit/memory/constant/load_special(special_data) + var/datum/integrated_io/O = outputs[1] + if(istext(special_data) || isnum(special_data)) + O.data = special_data + /obj/item/integrated_circuit/memory/constant/attack_self(mob/user) var/datum/integrated_io/O = outputs[1] if(!user.IsAdvancedToolUser()) diff --git a/code/modules/integrated_electronics/subtypes/output.dm b/code/modules/integrated_electronics/subtypes/output.dm index 88c6530ccb..4a845ec25d 100644 --- a/code/modules/integrated_electronics/subtypes/output.dm +++ b/code/modules/integrated_electronics/subtypes/output.dm @@ -345,10 +345,14 @@ /obj/item/integrated_circuit/output/diagnostic_hud name = "AR interface" desc = "Takes an icon name as an input, and will update the status hud when data is written to it." - extended_desc = "Takes an icon name as an input, and will update the status hud when data is written to it, this means it can change the icon and have the icon stay that way even if the circuit is removed. The acceptable inputs are 'alert' and 'move'. Any input other than that will return the icon to its default state. The danger warning and offline status will appear over any input from this circuit." + extended_desc = "Takes an icon name as an input, and will update the status hud when data is written to it, this means it can change the icon and have the icon stay that way even if the circuit is removed. The acceptable inputs are 'alert', 'move', 'working', 'patrol', 'called', and 'heart'. Any input other than that will return the icon to its default state." var/list/icons = list( "alert" = "hudalert", - "move" = "hudmove" + "move" = "hudmove", + "working" = "hudworkingleft", + "patrol" = "hudpatrolleft", + "called" = "hudcalledleft", + "heart" = "hudsentientleft" ) complexity = 1 icon_state = "led" diff --git a/code/modules/jobs/job_types/assistant.dm b/code/modules/jobs/job_types/assistant.dm index 26d57d1e76..a18fe78906 100644 --- a/code/modules/jobs/job_types/assistant.dm +++ b/code/modules/jobs/job_types/assistant.dm @@ -13,6 +13,7 @@ Assistant access = list() //See /datum/job/assistant/get_access() minimal_access = list() //See /datum/job/assistant/get_access() outfit = /datum/outfit/job/assistant + antag_rep = 10 /datum/job/assistant/get_access() diff --git a/code/modules/jobs/job_types/captain.dm b/code/modules/jobs/job_types/captain.dm index 906bd570b4..78219629d3 100755 --- a/code/modules/jobs/job_types/captain.dm +++ b/code/modules/jobs/job_types/captain.dm @@ -69,8 +69,8 @@ Head of Personnel minimal_player_age = 10 exp_requirements = 180 exp_type = EXP_TYPE_CREW -// exp_type_department = EXP_TYPE_SUPPLY - CITADEL CHANGE - antag_rep = 16 +//exp_type_department = EXP_TYPE_SUPPLY - CITADEL CHANGE + antag_rep = 20 outfit = /datum/outfit/job/hop diff --git a/code/modules/jobs/job_types/cargo_service.dm b/code/modules/jobs/job_types/cargo_service.dm index 9c6c6f566d..a2c6fd62e5 100644 --- a/code/modules/jobs/job_types/cargo_service.dm +++ b/code/modules/jobs/job_types/cargo_service.dm @@ -11,7 +11,7 @@ Quartermaster spawn_positions = 1 supervisors = "the head of personnel" selection_color = "#d7b088" - antag_rep = 12 + antag_rep = 17 outfit = /datum/outfit/job/quartermaster @@ -42,7 +42,7 @@ Cargo Technician spawn_positions = 2 supervisors = "the quartermaster and the head of personnel" selection_color = "#dcba97" - antag_rep = 4 + antag_rep = 14 outfit = /datum/outfit/job/cargo_tech @@ -71,7 +71,7 @@ Shaft Miner spawn_positions = 3 supervisors = "the quartermaster and the head of personnel" selection_color = "#dcba97" - antag_rep = 8 + antag_rep = 17 outfit = /datum/outfit/job/miner @@ -150,12 +150,12 @@ Bartender spawn_positions = 1 supervisors = "the head of personnel" selection_color = "#bbe291" - antag_rep = 4 + antag_rep = 14 outfit = /datum/outfit/job/bartender - access = list(ACCESS_HYDROPONICS, ACCESS_BAR, ACCESS_KITCHEN, ACCESS_MORGUE, ACCESS_WEAPONS) - minimal_access = list(ACCESS_BAR) + access = list(ACCESS_HYDROPONICS, ACCESS_BAR, ACCESS_KITCHEN, ACCESS_MORGUE, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM) + minimal_access = list(ACCESS_BAR, ACCESS_MINERAL_STOREROOM) /datum/outfit/job/bartender @@ -184,12 +184,12 @@ Cook supervisors = "the head of personnel" selection_color = "#bbe291" var/cooks = 0 //Counts cooks amount - antag_rep = 8 + antag_rep = 17 outfit = /datum/outfit/job/cook - access = list(ACCESS_HYDROPONICS, ACCESS_BAR, ACCESS_KITCHEN, ACCESS_MORGUE) - minimal_access = list(ACCESS_KITCHEN, ACCESS_MORGUE) + access = list(ACCESS_HYDROPONICS, ACCESS_BAR, ACCESS_KITCHEN, ACCESS_MORGUE, ACCESS_MINERAL_STOREROOM) + minimal_access = list(ACCESS_KITCHEN, ACCESS_MORGUE, ACCESS_MINERAL_STOREROOM) /datum/outfit/job/cook name = "Cook" @@ -237,12 +237,12 @@ Botanist spawn_positions = 2 supervisors = "the head of personnel" selection_color = "#bbe291" - antag_rep = 8 + antag_rep = 17 outfit = /datum/outfit/job/botanist - access = list(ACCESS_HYDROPONICS, ACCESS_BAR, ACCESS_KITCHEN, ACCESS_MORGUE) - minimal_access = list(ACCESS_HYDROPONICS, ACCESS_MORGUE) + access = list(ACCESS_HYDROPONICS, ACCESS_BAR, ACCESS_KITCHEN, ACCESS_MORGUE, ACCESS_MINERAL_STOREROOM) + minimal_access = list(ACCESS_HYDROPONICS, ACCESS_MORGUE, ACCESS_MINERAL_STOREROOM) // Removed tox and chem access because STOP PISSING OFF THE CHEMIST GUYS // Removed medical access because WHAT THE FUCK YOU AREN'T A DOCTOR YOU GROW WHEAT // Given Morgue access because they have a viable means of cloning. @@ -277,12 +277,12 @@ Janitor supervisors = "the head of personnel" selection_color = "#bbe291" var/global/janitors = 0 - antag_rep = 8 + antag_rep = 17 outfit = /datum/outfit/job/janitor - access = list(ACCESS_JANITOR, ACCESS_MAINT_TUNNELS) - minimal_access = list(ACCESS_JANITOR, ACCESS_MAINT_TUNNELS) + access = list(ACCESS_JANITOR, ACCESS_MAINT_TUNNELS, ACCESS_MINERAL_STOREROOM) + minimal_access = list(ACCESS_JANITOR, ACCESS_MAINT_TUNNELS, ACCESS_MINERAL_STOREROOM) /datum/outfit/job/janitor name = "Janitor" diff --git a/code/modules/jobs/job_types/civilian.dm b/code/modules/jobs/job_types/civilian.dm index b2e4d63b2b..f4b0c47ba0 100644 --- a/code/modules/jobs/job_types/civilian.dm +++ b/code/modules/jobs/job_types/civilian.dm @@ -11,7 +11,7 @@ Clown spawn_positions = 1 supervisors = "the head of personnel" selection_color = "#dddddd" - antag_rep = 4 + antag_rep = 14 outfit = /datum/outfit/job/clown @@ -73,7 +73,7 @@ Mime spawn_positions = 1 supervisors = "the head of personnel" selection_color = "#dddddd" - antag_rep = 4 + antag_rep = 14 outfit = /datum/outfit/job/mime @@ -124,7 +124,7 @@ Curator spawn_positions = 1 supervisors = "the head of personnel" selection_color = "#dddddd" - antag_rep = 4 + antag_rep = 14 outfit = /datum/outfit/job/curator @@ -170,7 +170,7 @@ Lawyer supervisors = "the head of personnel" selection_color = "#dddddd" var/lawyers = 0 //Counts lawyer amount - antag_rep = 8 + antag_rep = 17 outfit = /datum/outfit/job/lawyer diff --git a/code/modules/jobs/job_types/civilian_chaplain.dm b/code/modules/jobs/job_types/civilian_chaplain.dm index 00685454b0..5e56fe5b4f 100644 --- a/code/modules/jobs/job_types/civilian_chaplain.dm +++ b/code/modules/jobs/job_types/civilian_chaplain.dm @@ -12,7 +12,7 @@ Chaplain spawn_positions = 1 supervisors = "the head of personnel" selection_color = "#dddddd" - antag_rep = 4 + antag_rep = 14 outfit = /datum/outfit/job/chaplain diff --git a/code/modules/jobs/job_types/engineering.dm b/code/modules/jobs/job_types/engineering.dm index 064422bfba..82a6fe1382 100644 --- a/code/modules/jobs/job_types/engineering.dm +++ b/code/modules/jobs/job_types/engineering.dm @@ -17,7 +17,7 @@ Chief Engineer exp_requirements = 180 exp_type = EXP_TYPE_CREW exp_type_department = EXP_TYPE_ENGINEERING - antag_rep = 16 + antag_rep = 20 outfit = /datum/outfit/job/ce @@ -77,14 +77,14 @@ Station Engineer selection_color = "#fff5cc" exp_requirements = 60 exp_type = EXP_TYPE_CREW - antag_rep = 8 + antag_rep = 17 outfit = /datum/outfit/job/engineer access = list(ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_TECH_STORAGE, ACCESS_MAINT_TUNNELS, - ACCESS_EXTERNAL_AIRLOCKS, ACCESS_CONSTRUCTION, ACCESS_ATMOSPHERICS, ACCESS_TCOMSAT) + ACCESS_EXTERNAL_AIRLOCKS, ACCESS_CONSTRUCTION, ACCESS_ATMOSPHERICS, ACCESS_TCOMSAT, ACCESS_MINERAL_STOREROOM) minimal_access = list(ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_TECH_STORAGE, ACCESS_MAINT_TUNNELS, - ACCESS_EXTERNAL_AIRLOCKS, ACCESS_CONSTRUCTION, ACCESS_TCOMSAT) + ACCESS_EXTERNAL_AIRLOCKS, ACCESS_CONSTRUCTION, ACCESS_TCOMSAT, ACCESS_MINERAL_STOREROOM) /datum/outfit/job/engineer name = "Station Engineer" @@ -134,13 +134,13 @@ Atmospheric Technician selection_color = "#fff5cc" exp_requirements = 60 exp_type = EXP_TYPE_CREW - antag_rep = 8 + antag_rep = 17 outfit = /datum/outfit/job/atmos access = list(ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_TECH_STORAGE, ACCESS_MAINT_TUNNELS, - ACCESS_EXTERNAL_AIRLOCKS, ACCESS_CONSTRUCTION, ACCESS_ATMOSPHERICS) - minimal_access = list(ACCESS_ATMOSPHERICS, ACCESS_MAINT_TUNNELS, ACCESS_EMERGENCY_STORAGE, ACCESS_CONSTRUCTION) + ACCESS_EXTERNAL_AIRLOCKS, ACCESS_CONSTRUCTION, ACCESS_ATMOSPHERICS, ACCESS_MINERAL_STOREROOM) + minimal_access = list(ACCESS_ATMOSPHERICS, ACCESS_MAINT_TUNNELS, ACCESS_EMERGENCY_STORAGE, ACCESS_CONSTRUCTION, ACCESS_MINERAL_STOREROOM) /datum/outfit/job/atmos name = "Atmospheric Technician" diff --git a/code/modules/jobs/job_types/medical.dm b/code/modules/jobs/job_types/medical.dm index 4da6568683..4997b3a7f3 100644 --- a/code/modules/jobs/job_types/medical.dm +++ b/code/modules/jobs/job_types/medical.dm @@ -17,7 +17,7 @@ Chief Medical Officer exp_requirements = 180 exp_type = EXP_TYPE_CREW exp_type_department = EXP_TYPE_MEDICAL - antag_rep = 16 + antag_rep = 20 outfit = /datum/outfit/job/cmo @@ -60,12 +60,12 @@ Medical Doctor spawn_positions = 3 supervisors = "the chief medical officer" selection_color = "#ffeef0" - antag_rep = 8 + antag_rep = 17 outfit = /datum/outfit/job/doctor access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CHEMISTRY, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_MINERAL_STOREROOM) - minimal_access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CLONING) + minimal_access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CLONING, ACCESS_MINERAL_STOREROOM) /datum/outfit/job/doctor name = "Medical Doctor" @@ -98,7 +98,7 @@ Chemist selection_color = "#ffeef0" exp_type = EXP_TYPE_CREW exp_requirements = 60 - antag_rep = 8 + antag_rep = 17 outfit = /datum/outfit/job/chemist @@ -134,12 +134,12 @@ Geneticist selection_color = "#ffeef0" exp_type = EXP_TYPE_CREW exp_requirements = 60 - antag_rep = 8 + antag_rep = 17 outfit = /datum/outfit/job/geneticist access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_CHEMISTRY, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_RESEARCH, ACCESS_XENOBIOLOGY, ACCESS_ROBOTICS, ACCESS_MINERAL_STOREROOM, ACCESS_TECH_STORAGE) - minimal_access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_RESEARCH) + minimal_access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_RESEARCH, ACCESS_MINERAL_STOREROOM) /datum/outfit/job/geneticist name = "Geneticist" @@ -171,7 +171,7 @@ Virologist selection_color = "#ffeef0" exp_type = EXP_TYPE_CREW exp_requirements = 60 - antag_rep = 8 + antag_rep = 17 outfit = /datum/outfit/job/virologist diff --git a/code/modules/jobs/job_types/science.dm b/code/modules/jobs/job_types/science.dm index 4fb1347208..0d5da1eec1 100644 --- a/code/modules/jobs/job_types/science.dm +++ b/code/modules/jobs/job_types/science.dm @@ -17,7 +17,7 @@ Research Director exp_type_department = EXP_TYPE_SCIENCE exp_requirements = 180 exp_type = EXP_TYPE_CREW - antag_rep = 16 + antag_rep = 20 outfit = /datum/outfit/job/rd @@ -73,7 +73,7 @@ Scientist selection_color = "#ffeeff" exp_requirements = 60 exp_type = EXP_TYPE_CREW - antag_rep = 8 + antag_rep = 17 outfit = /datum/outfit/job/scientist @@ -108,7 +108,7 @@ Roboticist selection_color = "#ffeeff" exp_requirements = 60 exp_type = EXP_TYPE_CREW - antag_rep = 8 + antag_rep = 17 outfit = /datum/outfit/job/roboticist diff --git a/code/modules/jobs/job_types/security.dm b/code/modules/jobs/job_types/security.dm index 322922a779..3cfd5ef73d 100644 --- a/code/modules/jobs/job_types/security.dm +++ b/code/modules/jobs/job_types/security.dm @@ -30,11 +30,11 @@ Head of Security access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_COURT, ACCESS_WEAPONS, ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, ACCESS_MAINT_TUNNELS, ACCESS_ALL_PERSONAL_LOCKERS, ACCESS_RESEARCH, ACCESS_ENGINE, ACCESS_MINING, ACCESS_MEDICAL, ACCESS_CONSTRUCTION, ACCESS_MAILSORTING, - ACCESS_HEADS, ACCESS_HOS, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_MAINT_TUNNELS) + ACCESS_HEADS, ACCESS_HOS, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_MAINT_TUNNELS, ACCESS_MINERAL_STOREROOM) minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_COURT, ACCESS_WEAPONS, ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, ACCESS_MAINT_TUNNELS, ACCESS_ALL_PERSONAL_LOCKERS, ACCESS_RESEARCH, ACCESS_ENGINE, ACCESS_MINING, ACCESS_MEDICAL, ACCESS_CONSTRUCTION, ACCESS_MAILSORTING, - ACCESS_HEADS, ACCESS_HOS, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_MAINT_TUNNELS) + ACCESS_HEADS, ACCESS_HOS, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_MAINT_TUNNELS, ACCESS_MINERAL_STOREROOM) /datum/outfit/job/hos name = "Head of Security" @@ -77,12 +77,12 @@ Warden minimal_player_age = 7 exp_requirements = 300 exp_type = EXP_TYPE_CREW - antag_rep = 16 + antag_rep = 20 outfit = /datum/outfit/job/warden - access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_COURT, ACCESS_MAINT_TUNNELS, ACCESS_MORGUE, ACCESS_WEAPONS, ACCESS_FORENSICS_LOCKERS) - minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_COURT, ACCESS_WEAPONS) //SEE /DATUM/JOB/WARDEN/GET_ACCESS() + access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_COURT, ACCESS_MAINT_TUNNELS, ACCESS_MORGUE, ACCESS_WEAPONS, ACCESS_FORENSICS_LOCKERS, ACCESS_MINERAL_STOREROOM) + minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_COURT, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM) //SEE /DATUM/JOB/WARDEN/GET_ACCESS() /datum/job/warden/get_access() var/list/L = list() @@ -130,12 +130,12 @@ Detective minimal_player_age = 7 exp_requirements = 300 exp_type = EXP_TYPE_CREW - antag_rep = 12 + antag_rep = 20 outfit = /datum/outfit/job/detective - access = list(ACCESS_SEC_DOORS, ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, ACCESS_MAINT_TUNNELS, ACCESS_COURT, ACCESS_BRIG, ACCESS_WEAPONS) - minimal_access = list(ACCESS_SEC_DOORS, ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, ACCESS_MAINT_TUNNELS, ACCESS_COURT, ACCESS_BRIG, ACCESS_WEAPONS) + access = list(ACCESS_SEC_DOORS, ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, ACCESS_MAINT_TUNNELS, ACCESS_COURT, ACCESS_BRIG, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM) + minimal_access = list(ACCESS_SEC_DOORS, ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, ACCESS_MAINT_TUNNELS, ACCESS_COURT, ACCESS_BRIG, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM) /datum/outfit/job/detective name = "Detective" @@ -181,12 +181,12 @@ Security Officer minimal_player_age = 7 exp_requirements = 300 exp_type = EXP_TYPE_CREW - antag_rep = 12 + antag_rep = 20 outfit = /datum/outfit/job/security - access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_COURT, ACCESS_MAINT_TUNNELS, ACCESS_MORGUE, ACCESS_WEAPONS, ACCESS_FORENSICS_LOCKERS) - minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_COURT, ACCESS_WEAPONS) //BUT SEE /DATUM/JOB/WARDEN/GET_ACCESS() + access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_COURT, ACCESS_MAINT_TUNNELS, ACCESS_MORGUE, ACCESS_WEAPONS, ACCESS_FORENSICS_LOCKERS, ACCESS_MINERAL_STOREROOM) + minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_COURT, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM) //BUT SEE /DATUM/JOB/WARDEN/GET_ACCESS() /datum/job/officer/get_access() diff --git a/code/modules/jobs/job_types/silicon.dm b/code/modules/jobs/job_types/silicon.dm index 0860c08113..89a44f8c1b 100644 --- a/code/modules/jobs/job_types/silicon.dm +++ b/code/modules/jobs/job_types/silicon.dm @@ -14,7 +14,7 @@ AI minimal_player_age = 30 exp_requirements = 180 exp_type = EXP_TYPE_CREW - antag_rep = 12 + antag_rep = 20 /datum/job/ai/equip(mob/living/carbon/human/H) return H.AIize(FALSE) diff --git a/code/modules/library/lib_items.dm b/code/modules/library/lib_items.dm index b302701b24..25b091d2c7 100644 --- a/code/modules/library/lib_items.dm +++ b/code/modules/library/lib_items.dm @@ -206,9 +206,7 @@ if(dat) user << browse("Penned by [author].
" + "[dat]", "window=book[window_size != null ? ";size=[window_size]" : ""]") user.visible_message("[user] opens a book titled \"[title]\" and begins reading intently.") - GET_COMPONENT_FROM(mood, /datum/component/mood, user) - if(mood) - mood.add_event("book_nerd", /datum/mood_event/book_nerd) + user.SendSignal(COMSIG_ADD_MOOD_EVENT, "book_nerd", /datum/mood_event/book_nerd) onclose(user, "book") else to_chat(user, "This book is completely blank!") diff --git a/code/modules/mining/aux_base.dm b/code/modules/mining/aux_base.dm index 397436bda8..fcb8dc9d1d 100644 --- a/code/modules/mining/aux_base.dm +++ b/code/modules/mining/aux_base.dm @@ -244,6 +244,7 @@ interface with the mining shuttle at the landing site if a mobile beacon is also /obj/docking_port/mobile/auxillary_base name = "auxillary base" id = "colony_drop" + timid = FALSE //Reminder to map-makers to set these values equal to the size of your base. dheight = 4 dwidth = 4 diff --git a/code/modules/mob/living/brain/brain_item.dm b/code/modules/mob/living/brain/brain_item.dm index 671685a95a..a63c8f7424 100644 --- a/code/modules/mob/living/brain/brain_item.dm +++ b/code/modules/mob/living/brain/brain_item.dm @@ -5,7 +5,7 @@ throw_speed = 3 throw_range = 5 layer = ABOVE_MOB_LAYER - zone = "head" + zone = BODY_ZONE_HEAD slot = ORGAN_SLOT_BRAIN vital = TRUE attack_verb = list("attacked", "slapped", "whacked") @@ -112,7 +112,7 @@ add_fingerprint(user) - if(user.zone_selected != "head") + if(user.zone_selected != BODY_ZONE_HEAD) return ..() if((C.head && (C.head.flags_cover & HEADCOVERSEYES)) || (C.wear_mask && (C.wear_mask.flags_cover & MASKCOVERSEYES)) || (C.glasses && (C.glasses.flags_1 & GLASSESCOVERSEYES))) @@ -122,7 +122,7 @@ //since these people will be dead M != usr if(!C.getorgan(/obj/item/organ/brain)) - if(!C.get_bodypart("head") || !user.temporarilyRemoveItemFromInventory(src)) + if(!C.get_bodypart(BODY_ZONE_HEAD) || !user.temporarilyRemoveItemFromInventory(src)) return var/msg = "[C] has [src] inserted into [C.p_their()] head by [user]." if(C == user) diff --git a/code/modules/mob/living/carbon/alien/organs.dm b/code/modules/mob/living/carbon/alien/organs.dm index 61ae0cba5d..1a407d0ca3 100644 --- a/code/modules/mob/living/carbon/alien/organs.dm +++ b/code/modules/mob/living/carbon/alien/organs.dm @@ -30,7 +30,7 @@ name = "plasma vessel" icon_state = "plasma" w_class = WEIGHT_CLASS_NORMAL - zone = "chest" + zone = BODY_ZONE_CHEST slot = "plasmavessel" alien_powers = list(/obj/effect/proc_holder/alien/plant, /obj/effect/proc_holder/alien/transfer) @@ -104,7 +104,7 @@ /obj/item/organ/alien/hivenode name = "hive node" icon_state = "hivenode" - zone = "head" + zone = BODY_ZONE_HEAD slot = "hivenode" w_class = WEIGHT_CLASS_TINY var/recent_queen_death = 0 //Indicates if the queen died recently, aliens are heavily weakened while this is active. @@ -156,7 +156,7 @@ /obj/item/organ/alien/resinspinner name = "resin spinner" icon_state = "stomach-x" - zone = "mouth" + zone = BODY_ZONE_PRECISE_MOUTH slot = "resinspinner" alien_powers = list(/obj/effect/proc_holder/alien/resin) @@ -164,7 +164,7 @@ /obj/item/organ/alien/acid name = "acid gland" icon_state = "acid" - zone = "mouth" + zone = BODY_ZONE_PRECISE_MOUTH slot = "acidgland" alien_powers = list(/obj/effect/proc_holder/alien/acid) @@ -172,7 +172,7 @@ /obj/item/organ/alien/neurotoxin name = "neurotoxin gland" icon_state = "neurotox" - zone = "mouth" + zone = BODY_ZONE_PRECISE_MOUTH slot = "neurotoxingland" alien_powers = list(/obj/effect/proc_holder/alien/neurotoxin) @@ -180,7 +180,7 @@ /obj/item/organ/alien/eggsac name = "egg sac" icon_state = "eggsac" - zone = "groin" + zone = BODY_ZONE_PRECISE_GROIN slot = "eggsac" w_class = WEIGHT_CLASS_BULKY alien_powers = list(/obj/effect/proc_holder/alien/lay_egg) diff --git a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm index 01626c5694..b4739f943e 100644 --- a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm +++ b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm @@ -56,7 +56,7 @@ if(stage == 5 && prob(50)) for(var/datum/surgery/S in owner.surgeries) - if(S.location == "chest" && istype(S.get_surgery_step(), /datum/surgery_step/manipulate_organs)) + if(S.location == BODY_ZONE_CHEST && istype(S.get_surgery_step(), /datum/surgery_step/manipulate_organs)) AttemptGrow(0) return AttemptGrow() diff --git a/code/modules/mob/living/carbon/alien/special/facehugger.dm b/code/modules/mob/living/carbon/alien/special/facehugger.dm index fe4454caeb..20036f2fb2 100644 --- a/code/modules/mob/living/carbon/alien/special/facehugger.dm +++ b/code/modules/mob/living/carbon/alien/special/facehugger.dm @@ -131,7 +131,7 @@ return FALSE var/mob/living/carbon/target = M // gotta have a head to be implanted (no changelings or sentient plants) - if(!target.get_bodypart("head")) + if(!target.get_bodypart(BODY_ZONE_HEAD)) return FALSE if(target.getorgan(/obj/item/organ/alien/hivenode) || target.getorgan(/obj/item/organ/body_egg/alien_embryo)) @@ -208,7 +208,7 @@ Die() icon_state = "[initial(icon_state)]_impregnated" - var/obj/item/bodypart/chest/LC = target.get_bodypart("chest") + var/obj/item/bodypart/chest/LC = target.get_bodypart(BODY_ZONE_CHEST) if((!LC || LC.status != BODYPART_ROBOTIC) && !target.getorgan(/obj/item/organ/body_egg/alien_embryo)) new /obj/item/organ/body_egg/alien_embryo(target) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 33d50bcd6f..dc0b094128 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -29,7 +29,7 @@ var/obj/item/I = user.get_active_held_item() if(I && I.force) var/d = rand(round(I.force / 4), I.force) - var/obj/item/bodypart/BP = get_bodypart("chest") + var/obj/item/bodypart/BP = get_bodypart(BODY_ZONE_CHEST) if(BP.receive_damage(d, 0)) update_damage_overlays() visible_message("[user] attacks [src]'s stomach wall with the [I.name]!", \ @@ -755,17 +755,14 @@ //called when we get cuffed/uncuffed /mob/living/carbon/proc/update_handcuffed() - GET_COMPONENT_FROM(mood, /datum/component/mood, src) if(handcuffed) drop_all_held_items() stop_pulling() throw_alert("handcuffed", /obj/screen/alert/restrained/handcuffed, new_master = src.handcuffed) - if(mood) - mood.add_event("handcuffed", /datum/mood_event/handcuffed) + SendSignal(COMSIG_ADD_MOOD_EVENT, "handcuffed", /datum/mood_event/handcuffed) else clear_alert("handcuffed") - if(mood) - mood.clear_event("handcuffed") + SendSignal(COMSIG_CLEAR_MOOD_EVENT, "handcuffed") update_action_buttons_icon() //some of our action buttons might be unusable when we're handcuffed. update_inv_handcuffed() update_hud_handcuffed() diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index 31be31160c..75233a70c1 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -97,7 +97,7 @@ if(get_dist(user, src) <= 1) //people with TK won't get smeared with blood user.add_mob_blood(src) - if(affecting.body_zone == "head") + if(affecting.body_zone == BODY_ZONE_HEAD) if(wear_mask) wear_mask.add_mob_blood(src) update_inv_wear_mask() @@ -195,7 +195,7 @@ var/list/things_to_ruin = shuffle(bodyparts.Copy()) for(var/B in things_to_ruin) var/obj/item/bodypart/bodypart = B - if(bodypart.body_zone == "head" || bodypart.body_zone == "chest") + if(bodypart.body_zone == BODY_ZONE_HEAD || bodypart.body_zone == BODY_ZONE_CHEST) continue if(!affecting || ((affecting.get_damage() / affecting.max_damage) < (bodypart.get_damage() / bodypart.max_damage))) affecting = bodypart @@ -277,9 +277,7 @@ else M.visible_message("[M] hugs [src] to make [p_them()] feel better!", \ "You hug [src] to make [p_them()] feel better!") - GET_COMPONENT_FROM(mood, /datum/component/mood, src) - if(mood) - mood.add_event("hug", /datum/mood_event/hug) + SendSignal(COMSIG_ADD_MOOD_EVENT, "hug", /datum/mood_event/hug) AdjustStun(-60) AdjustKnockdown(-60) AdjustUnconscious(-60) @@ -371,7 +369,7 @@ if(damage_type != BRUTE && damage_type != BURN) return damage_amount *= 0.5 //0.5 multiplier for balance reason, we don't want clothes to be too easily destroyed - if(!def_zone || def_zone == "head") + if(!def_zone || def_zone == BODY_ZONE_HEAD) var/obj/item/clothing/hit_clothes if(wear_mask) hit_clothes = wear_mask diff --git a/code/modules/mob/living/carbon/death.dm b/code/modules/mob/living/carbon/death.dm index 5969c72b41..4de59d4c3e 100644 --- a/code/modules/mob/living/carbon/death.dm +++ b/code/modules/mob/living/carbon/death.dm @@ -35,7 +35,7 @@ qdel(O) //so the brain isn't transfered to the head when the head drops. continue var/org_zone = check_zone(O.zone) //both groin and chest organs. - if(org_zone == "chest") + if(org_zone == BODY_ZONE_CHEST) O.Remove(src) O.forceMove(Tsec) O.throw_at(get_edge_target_turf(src,pick(GLOB.alldirs)),rand(1,3),5) diff --git a/code/modules/mob/living/carbon/examine.dm b/code/modules/mob/living/carbon/examine.dm index 48df33345c..9e0838210e 100644 --- a/code/modules/mob/living/carbon/examine.dm +++ b/code/modules/mob/living/carbon/examine.dm @@ -28,12 +28,12 @@ appears_dead = 1 if(getorgan(/obj/item/organ/brain)) msg += "[t_He] [t_is] limp and unresponsive, with no signs of life.\n" - else if(get_bodypart("head")) + else if(get_bodypart(BODY_ZONE_HEAD)) msg += "It appears that [t_his] brain is missing...\n" var/list/missing = get_missing_limbs() for(var/t in missing) - if(t=="head") + if(t==BODY_ZONE_HEAD) msg += "[t_His] [parse_zone(t)] is missing!\n" continue msg += "[t_His] [parse_zone(t)] is missing!\n" diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index d090b9f0f7..a280928731 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -131,14 +131,14 @@ msg += " and [t_his] soul has departed" msg += "...
\n" - if(get_bodypart("head") && !getorgan(/obj/item/organ/brain)) + if(get_bodypart(BODY_ZONE_HEAD) && !getorgan(/obj/item/organ/brain)) msg += "It appears that [t_his] brain is missing...\n" var/temp = getBruteLoss() //no need to calculate each of these twice msg += "" - var/list/missing = list("head", "chest", "l_arm", "r_arm", "l_leg", "r_leg") + var/list/missing = list(BODY_ZONE_HEAD, BODY_ZONE_CHEST, BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) for(var/X in bodyparts) var/obj/item/bodypart/BP = X missing -= BP.body_zone @@ -149,12 +149,12 @@ var/l_limbs_missing = 0 var/r_limbs_missing = 0 for(var/t in missing) - if(t=="head") + if(t==BODY_ZONE_HEAD) msg += "[t_His] [parse_zone(t)] is missing!\n" continue - if(t == "l_arm" || t == "l_leg") + if(t == BODY_ZONE_L_ARM || t == BODY_ZONE_L_LEG) l_limbs_missing++ - else if(t == "r_arm" || t == "r_leg") + else if(t == BODY_ZONE_R_ARM || t == BODY_ZONE_R_LEG) r_limbs_missing++ msg += "[capitalize(t_his)] [parse_zone(t)] is missing!\n" diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 2bcb1d5189..22587d97d3 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -32,6 +32,7 @@ /mob/living/carbon/human/ComponentInitialize() + . = ..() if(!CONFIG_GET(flag/disable_human_mood)) AddComponent(/datum/component/mood) @@ -229,9 +230,7 @@ usr.visible_message("[usr] successfully rips [I] out of their [L.name]!","You successfully remove [I] from your [L.name].") if(!has_embedded_objects()) clear_alert("embeddedobject") - GET_COMPONENT_FROM(mood, /datum/component/mood, usr) - if(mood) - mood.clear_event("embeddedobject") + usr.SendSignal(COMSIG_CLEAR_MOOD_EVENT, "embedded") return if(href_list["item"]) @@ -660,9 +659,7 @@ return src.visible_message("[src] performs CPR on [C.name]!", "You perform CPR on [C.name].") - GET_COMPONENT_FROM(mood, /datum/component/mood, src) - if(mood) - mood.add_event("perform_cpr", /datum/mood_event/perform_cpr) + SendSignal(COMSIG_ADD_MOOD_EVENT, "perform_cpr", /datum/mood_event/perform_cpr) C.cpr_time = world.time add_logs(src, C, "CPRed") diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 06cf675427..b744630a56 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -144,9 +144,7 @@ I.forceMove(src) L.receive_damage(I.w_class*I.embedding.embedded_impact_pain_multiplier) visible_message("[I] embeds itself in [src]'s [L.name]!","[I] embeds itself in your [L.name]!") - GET_COMPONENT_FROM(mood, /datum/component/mood, src) - if(mood) - mood.add_event("embedded", /datum/mood_event/embedded) + SendSignal(COMSIG_ADD_MOOD_EVENT, "embedded", /datum/mood_event/embedded) hitpush = FALSE skipcatch = TRUE //can't catch the now embedded item @@ -203,10 +201,10 @@ dna.species.spec_attack_hand(H, src) /mob/living/carbon/human/attack_paw(mob/living/carbon/monkey/M) - var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg") + var/dam_zone = pick(BODY_ZONE_CHEST, BODY_ZONE_PRECISE_L_HAND, BODY_ZONE_PRECISE_R_HAND, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) var/obj/item/bodypart/affecting = get_bodypart(ran_zone(dam_zone)) if(!affecting) - affecting = get_bodypart("chest") + affecting = get_bodypart(BODY_ZONE_CHEST) if(M.a_intent == INTENT_HELP) ..() //shaking return 0 @@ -253,7 +251,7 @@ return 0 var/obj/item/bodypart/affecting = get_bodypart(ran_zone(M.zone_selected)) if(!affecting) - affecting = get_bodypart("chest") + affecting = get_bodypart(BODY_ZONE_CHEST) var/armor_block = run_armor_check(affecting, "melee","","",10) playsound(loc, 'sound/weapons/slice.ogg', 25, 1, -1) @@ -288,7 +286,7 @@ L.amount_grown = min(L.amount_grown + damage, L.max_grown) var/obj/item/bodypart/affecting = get_bodypart(ran_zone(L.zone_selected)) if(!affecting) - affecting = get_bodypart("chest") + affecting = get_bodypart(BODY_ZONE_CHEST) var/armor_block = run_armor_check(affecting, "melee") apply_damage(damage, BRUTE, affecting, armor_block) @@ -299,12 +297,12 @@ var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) if(check_shields(M, damage, "the [M.name]", MELEE_ATTACK, M.armour_penetration)) return FALSE - var/dam_zone = dismembering_strike(M, pick("chest", "l_hand", "r_hand", "l_leg", "r_leg")) + var/dam_zone = dismembering_strike(M, pick(BODY_ZONE_CHEST, BODY_ZONE_PRECISE_L_HAND, BODY_ZONE_PRECISE_R_HAND, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG)) if(!dam_zone) //Dismemberment successful return TRUE var/obj/item/bodypart/affecting = get_bodypart(ran_zone(dam_zone)) if(!affecting) - affecting = get_bodypart("chest") + affecting = get_bodypart(BODY_ZONE_CHEST) var/armor = run_armor_check(affecting, "melee", armour_penetration = M.armour_penetration) apply_damage(damage, M.melee_damage_type, affecting, armor) @@ -318,13 +316,13 @@ if(check_shields(M, damage, "the [M.name]")) return 0 - var/dam_zone = dismembering_strike(M, pick("head", "chest", "l_arm", "r_arm", "l_leg", "r_leg")) + var/dam_zone = dismembering_strike(M, pick(BODY_ZONE_HEAD, BODY_ZONE_CHEST, BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG)) if(!dam_zone) //Dismemberment successful return 1 var/obj/item/bodypart/affecting = get_bodypart(ran_zone(dam_zone)) if(!affecting) - affecting = get_bodypart("chest") + affecting = get_bodypart(BODY_ZONE_CHEST) var/armor_block = run_armor_check(affecting, "melee") apply_damage(damage, BRUTE, affecting, armor_block) @@ -334,7 +332,7 @@ M.do_attack_animation(src) if(M.damtype == "brute") step_away(src,M,15) - var/obj/item/bodypart/temp = get_bodypart(pick("chest", "chest", "chest", "head")) + var/obj/item/bodypart/temp = get_bodypart(pick(BODY_ZONE_CHEST, BODY_ZONE_CHEST, BODY_ZONE_CHEST, BODY_ZONE_HEAD)) if(temp) var/update = 0 var/dmg = rand(M.force/2, M.force) @@ -416,7 +414,7 @@ var/max_limb_loss = round(4/severity) //so you don't lose four limbs at severity 3. for(var/X in bodyparts) var/obj/item/bodypart/BP = X - if(prob(50/severity) && !prob(getarmor(BP, "bomb")) && BP.body_zone != "head" && BP.body_zone != "chest") + if(prob(50/severity) && !prob(getarmor(BP, "bomb")) && BP.body_zone != BODY_ZONE_HEAD && BP.body_zone != BODY_ZONE_CHEST) BP.brute_dam = BP.max_damage BP.dismember() max_limb_loss-- @@ -428,7 +426,7 @@ if(stat == DEAD) return show_message("The blob attacks you!") - var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg") + var/dam_zone = pick(BODY_ZONE_CHEST, BODY_ZONE_PRECISE_L_HAND, BODY_ZONE_PRECISE_R_HAND, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) var/obj/item/bodypart/affecting = get_bodypart(ran_zone(dam_zone)) apply_damage(5, BRUTE, affecting, run_armor_check(affecting, "melee")) @@ -489,7 +487,7 @@ var/list/inventory_items_to_kill = list() var/acidity = acidpwr * min(acid_volume*0.005, 0.1) //HEAD// - if(!bodyzone_hit || bodyzone_hit == "head") //only if we didn't specify a zone or if that zone is the head. + if(!bodyzone_hit || bodyzone_hit == BODY_ZONE_HEAD) //only if we didn't specify a zone or if that zone is the head. var/obj/item/clothing/head_clothes = null if(glasses) head_clothes = glasses @@ -509,14 +507,14 @@ else to_chat(src, "Your [head_clothes.name] protects your head and face from the acid!") else - . = get_bodypart("head") + . = get_bodypart(BODY_ZONE_HEAD) if(.) damaged += . if(ears) inventory_items_to_kill += ears //CHEST// - if(!bodyzone_hit || bodyzone_hit == "chest") + if(!bodyzone_hit || bodyzone_hit == BODY_ZONE_CHEST) var/obj/item/clothing/chest_clothes = null if(w_uniform) chest_clothes = w_uniform @@ -530,7 +528,7 @@ else to_chat(src, "Your [chest_clothes.name] protects your body from the acid!") else - . = get_bodypart("chest") + . = get_bodypart(BODY_ZONE_CHEST) if(.) damaged += . if(wear_id) @@ -544,7 +542,7 @@ //ARMS & HANDS// - if(!bodyzone_hit || bodyzone_hit == "l_arm" || bodyzone_hit == "r_arm") + if(!bodyzone_hit || bodyzone_hit == BODY_ZONE_L_ARM || bodyzone_hit == BODY_ZONE_R_ARM) var/obj/item/clothing/arm_clothes = null if(gloves) arm_clothes = gloves @@ -562,16 +560,16 @@ else to_chat(src, "Your [arm_clothes.name] protects your arms and hands from the acid!") else - . = get_bodypart("r_arm") + . = get_bodypart(BODY_ZONE_R_ARM) if(.) damaged += . - . = get_bodypart("l_arm") + . = get_bodypart(BODY_ZONE_L_ARM) if(.) damaged += . //LEGS & FEET// - if(!bodyzone_hit || bodyzone_hit == "l_leg" || bodyzone_hit == "r_leg" || bodyzone_hit == "feet") + if(!bodyzone_hit || bodyzone_hit == BODY_ZONE_L_LEG || bodyzone_hit == BODY_ZONE_R_LEG || bodyzone_hit == "feet") var/obj/item/clothing/leg_clothes = null if(shoes) leg_clothes = shoes @@ -588,10 +586,10 @@ else to_chat(src, "Your [leg_clothes.name] protects your legs and feet from the acid!") else - . = get_bodypart("r_leg") + . = get_bodypart(BODY_ZONE_R_LEG) if(.) damaged += . - . = get_bodypart("l_leg") + . = get_bodypart(BODY_ZONE_L_LEG) if(.) damaged += . @@ -600,7 +598,7 @@ for(var/obj/item/bodypart/affecting in damaged) affecting.receive_damage(acidity, 2*acidity) - if(affecting.name == "head") + if(affecting.name == BODY_ZONE_HEAD) if(prob(min(acidpwr*acid_volume/10, 90))) //Applies disfigurement affecting.receive_damage(acidity, 2*acidity) emote("scream") @@ -645,7 +643,7 @@ visible_message("[src] examines [p_them()]self.", \ "You check yourself for injuries.") - var/list/missing = list("head", "chest", "l_arm", "r_arm", "l_leg", "r_leg") + var/list/missing = list(BODY_ZONE_HEAD, BODY_ZONE_CHEST, BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) for(var/X in bodyparts) var/obj/item/bodypart/LB = X missing -= LB.body_zone @@ -732,7 +730,7 @@ var/list/torn_items = list() //HEAD// - if(!def_zone || def_zone == "head") + if(!def_zone || def_zone == BODY_ZONE_HEAD) var/obj/item/clothing/head_clothes = null if(glasses) head_clothes = glasses @@ -748,7 +746,7 @@ torn_items += ears //CHEST// - if(!def_zone || def_zone == "chest") + if(!def_zone || def_zone == BODY_ZONE_CHEST) var/obj/item/clothing/chest_clothes = null if(w_uniform) chest_clothes = w_uniform @@ -758,7 +756,7 @@ torn_items += chest_clothes //ARMS & HANDS// - if(!def_zone || def_zone == "l_arm" || def_zone == "r_arm") + if(!def_zone || def_zone == BODY_ZONE_L_ARM || def_zone == BODY_ZONE_R_ARM) var/obj/item/clothing/arm_clothes = null if(gloves) arm_clothes = gloves @@ -770,7 +768,7 @@ torn_items += arm_clothes //LEGS & FEET// - if(!def_zone || def_zone == "l_leg" || def_zone == "r_leg") + if(!def_zone || def_zone == BODY_ZONE_L_LEG || def_zone == BODY_ZONE_R_LEG) var/obj/item/clothing/leg_clothes = null if(shoes) leg_clothes = shoes diff --git a/code/modules/mob/living/carbon/human/human_helpers.dm b/code/modules/mob/living/carbon/human/human_helpers.dm index f3f0fe0215..74562d6adb 100644 --- a/code/modules/mob/living/carbon/human/human_helpers.dm +++ b/code/modules/mob/living/carbon/human/human_helpers.dm @@ -55,7 +55,7 @@ return if_no_face if( head && (head.flags_inv&HIDEFACE) ) return if_no_face //Likewise for hats - var/obj/item/bodypart/O = get_bodypart("head") + var/obj/item/bodypart/O = get_bodypart(BODY_ZONE_HEAD) if( !O || (has_trait(TRAIT_DISFIGURED)) || (O.brutestate+O.burnstate)>2 || cloneloss>50 || !real_name ) //disfigured. use id-name if possible return if_no_face return real_name diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 246e615199..55f66c975e 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -85,18 +85,15 @@ to_chat(src, "You don't feel like harming anybody.") a_intent_change(INTENT_HELP) - GET_COMPONENT_FROM(mood, /datum/component/mood, src) - if (getBrainLoss() >= 60 && stat == CONSCIOUS) - if(mood) - mood.add_event("brain_damage", /datum/mood_event/brain_damage) + if (getBrainLoss() >= 60 && !incapacitated(TRUE)) + SendSignal(COMSIG_ADD_MOOD_EVENT, "brain_damage", /datum/mood_event/brain_damage) if(prob(3)) if(prob(25)) emote("drool") else say(pick_list_replacements(BRAIN_DAMAGE_FILE, "brain_damage")) else - if(mood) - mood.clear_event("brain_damage") + SendSignal(COMSIG_CLEAR_MOOD_EVENT, "brain_damage") /mob/living/carbon/human/handle_mutations_and_radiation() if(!dna || !dna.species.handle_mutations_and_radiation(src)) @@ -343,9 +340,7 @@ visible_message("[I] falls out of [name]'s [BP.name]!","[I] falls out of your [BP.name]!") if(!has_embedded_objects()) clear_alert("embeddedobject") - GET_COMPONENT_FROM(mood, /datum/component/mood, src) - if(mood) - mood.clear_event("embedded") + SendSignal(COMSIG_CLEAR_MOOD_EVENT, "embedded") /mob/living/carbon/human/proc/handle_active_genes() for(var/datum/mutation/human/HM in dna.mutations) @@ -474,4 +469,4 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put #undef THERMAL_PROTECTION_ARM_LEFT #undef THERMAL_PROTECTION_ARM_RIGHT #undef THERMAL_PROTECTION_HAND_LEFT -#undef THERMAL_PROTECTION_HAND_RIGHT \ No newline at end of file +#undef THERMAL_PROTECTION_HAND_RIGHT diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index c60eafbad2..9e7a508579 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -221,7 +221,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) tail = new mutanttail() tail.Insert(C) - if(C.get_bodypart("head")) + if(C.get_bodypart(BODY_ZONE_HEAD)) if(eyes && (replace_current || !should_have_eyes)) eyes.Remove(C,1) QDEL_NULL(eyes) @@ -315,7 +315,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) /datum/species/proc/handle_hair(mob/living/carbon/human/H, forced_colour) H.remove_overlay(HAIR_LAYER) - var/obj/item/bodypart/head/HD = H.get_bodypart("head") + var/obj/item/bodypart/head/HD = H.get_bodypart(BODY_ZONE_HEAD) if(!HD) //Decapitated return @@ -458,7 +458,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) var/list/standing = list() - var/obj/item/bodypart/head/HD = H.get_bodypart("head") + var/obj/item/bodypart/head/HD = H.get_bodypart(BODY_ZONE_HEAD) if(HD && !(H.has_trait(TRAIT_HUSK))) // lipstick @@ -526,7 +526,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) if(!mutant_bodyparts) return - var/obj/item/bodypart/head/HD = H.get_bodypart("head") + var/obj/item/bodypart/head/HD = H.get_bodypart(BODY_ZONE_HEAD) if("tail_lizard" in mutant_bodyparts) if(H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT) || (!H.dna.features["taur"] == "None")) @@ -897,7 +897,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) return 0 if( !(I.slot_flags & SLOT_MASK) ) return 0 - if(!H.get_bodypart("head")) + if(!H.get_bodypart(BODY_ZONE_HEAD)) return 0 return equip_delay_self_check(I, H, bypass_equip_delay_self) if(slot_neck) @@ -942,7 +942,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) if(H.belt) return 0 - var/obj/item/bodypart/O = H.get_bodypart("chest") + var/obj/item/bodypart/O = H.get_bodypart(BODY_ZONE_CHEST) if(!H.w_uniform && !nojumpsuit && (!O || O.status != BODYPART_ROBOTIC)) if(!disable_warning) @@ -956,7 +956,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) return 0 if( !(I.slot_flags & SLOT_EYES) ) return 0 - if(!H.get_bodypart("head")) + if(!H.get_bodypart(BODY_ZONE_HEAD)) return 0 return equip_delay_self_check(I, H, bypass_equip_delay_self) if(slot_head) @@ -964,7 +964,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) return 0 if( !(I.slot_flags & SLOT_HEAD) ) return 0 - if(!H.get_bodypart("head")) + if(!H.get_bodypart(BODY_ZONE_HEAD)) return 0 return equip_delay_self_check(I, H, bypass_equip_delay_self) if(slot_ears) @@ -972,7 +972,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) return 0 if( !(I.slot_flags & SLOT_EARS) ) return 0 - if(!H.get_bodypart("head")) + if(!H.get_bodypart(BODY_ZONE_HEAD)) return 0 return equip_delay_self_check(I, H, bypass_equip_delay_self) if(slot_w_uniform) @@ -985,7 +985,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) if(H.wear_id) return 0 - var/obj/item/bodypart/O = H.get_bodypart("chest") + var/obj/item/bodypart/O = H.get_bodypart(BODY_ZONE_CHEST) if(!H.w_uniform && !nojumpsuit && (!O || O.status != BODYPART_ROBOTIC)) if(!disable_warning) to_chat(H, "You need a jumpsuit before you can attach this [I.name]!") @@ -999,7 +999,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) if(H.l_store) return 0 - var/obj/item/bodypart/O = H.get_bodypart("l_leg") + var/obj/item/bodypart/O = H.get_bodypart(BODY_ZONE_L_LEG) if(!H.w_uniform && !nojumpsuit && (!O || O.status != BODYPART_ROBOTIC)) if(!disable_warning) @@ -1015,7 +1015,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) if(H.r_store) return 0 - var/obj/item/bodypart/O = H.get_bodypart("r_leg") + var/obj/item/bodypart/O = H.get_bodypart(BODY_ZONE_R_LEG) if(!H.w_uniform && !nojumpsuit && (!O || O.status != BODYPART_ROBOTIC)) if(!disable_warning) @@ -1124,14 +1124,8 @@ GLOBAL_LIST_EMPTY(roundstart_races) // THEY HUNGER var/hunger_rate = HUNGER_FACTOR GET_COMPONENT_FROM(mood, /datum/component/mood, H) - if(mood) - switch(mood.mood) //Alerts do_after delay based on how happy you are - if(MOOD_LEVEL_HAPPY2 to MOOD_LEVEL_HAPPY3) - hunger_rate *= 0.9 - if(MOOD_LEVEL_HAPPY3 to MOOD_LEVEL_HAPPY4) - hunger_rate *= 0.8 - if(MOOD_LEVEL_HAPPY4 to INFINITY) - hunger_rate *= 0.7 + if(mood && mood.sanity > SANITY_DISTURBED) + hunger_rate *= min(0.5, 1 - 0.002 * mood.sanity) //0.85 to 0.75 if(H.satiety > 0) H.satiety-- @@ -1166,31 +1160,24 @@ GLOBAL_LIST_EMPTY(roundstart_races) to_chat(H, "You no longer feel vigorous.") H.metabolism_efficiency = 1 - GET_COMPONENT_FROM(mood, /datum/component/mood, H) switch(H.nutrition) if(NUTRITION_LEVEL_FULL to INFINITY) - if(mood) - mood.add_event("nutrition", /datum/mood_event/nutrition/fat) + H.SendSignal(COMSIG_ADD_MOOD_EVENT, "nutrition", /datum/mood_event/nutrition/fat) H.throw_alert("nutrition", /obj/screen/alert/fat) if(NUTRITION_LEVEL_WELL_FED to NUTRITION_LEVEL_FULL) - if(mood) - mood.add_event("nutrition", /datum/mood_event/nutrition/wellfed) + H.SendSignal(COMSIG_ADD_MOOD_EVENT, "nutrition", /datum/mood_event/nutrition/wellfed) H.clear_alert("nutrition") if( NUTRITION_LEVEL_FED to NUTRITION_LEVEL_WELL_FED) - if(mood) - mood.add_event("nutrition", /datum/mood_event/nutrition/fed) + H.SendSignal(COMSIG_ADD_MOOD_EVENT, "nutrition", /datum/mood_event/nutrition/fed) H.clear_alert("nutrition") if(NUTRITION_LEVEL_HUNGRY to NUTRITION_LEVEL_FED) - if(mood) - mood.clear_event("nutrition") + H.SendSignal(COMSIG_CLEAR_MOOD_EVENT, "nutrition") H.clear_alert("nutrition") if(NUTRITION_LEVEL_STARVING to NUTRITION_LEVEL_HUNGRY) - if(mood) - mood.add_event("nutrition", /datum/mood_event/nutrition/hungry) + H.SendSignal(COMSIG_ADD_MOOD_EVENT, "nutrition", /datum/mood_event/nutrition/hungry) H.throw_alert("nutrition", /obj/screen/alert/hungry) if(0 to NUTRITION_LEVEL_STARVING) - if(mood) - mood.add_event("nutrition", /datum/mood_event/nutrition/starving) + H.SendSignal(COMSIG_ADD_MOOD_EVENT, "nutrition", /datum/mood_event/nutrition/starving) H.throw_alert("nutrition", /obj/screen/alert/starving) /datum/species/proc/update_health_hud(mob/living/carbon/human/H) @@ -1300,12 +1287,12 @@ GLOBAL_LIST_EMPTY(roundstart_races) GET_COMPONENT_FROM(mood, /datum/component/mood, H) if(mood && !flight) //How can depression slow you down if you can just fly away from your problems? - switch(mood.mood) - if(-INFINITY to MOOD_LEVEL_SAD4) + switch(mood.sanity) + if(SANITY_INSANE to SANITY_CRAZY) . += 1.5 - if(MOOD_LEVEL_SAD4 to MOOD_LEVEL_SAD3) + if(SANITY_CRAZY to SANITY_UNSTABLE) . += 1 - if(MOOD_LEVEL_SAD3 to MOOD_LEVEL_SAD2) + if(SANITY_UNSTABLE to SANITY_DISTURBED) . += 0.5 if(H.has_trait(TRAIT_FAT)) @@ -1584,7 +1571,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) user.add_mob_blood(H) switch(hit_area) - if("head") + if(BODY_ZONE_HEAD) if(H.stat == CONSCIOUS && armor_block < 50) if(prob(I.force)) H.visible_message("[H] has been knocked senseless!", \ @@ -1614,7 +1601,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) H.glasses.add_mob_blood(H) H.update_inv_glasses() - if("chest") + if(BODY_ZONE_CHEST) if(H.stat == CONSCIOUS && armor_block < 50) if(prob(I.force)) H.visible_message("[H] has been knocked down!", \ @@ -1728,13 +1715,11 @@ GLOBAL_LIST_EMPTY(roundstart_races) H.adjust_bodytemperature(natural*(1/(thermal_protection+1)) + min(thermal_protection * (loc_temp - H.bodytemperature) / BODYTEMP_HEAT_DIVISOR, BODYTEMP_HEATING_MAX)) // +/- 50 degrees from 310K is the 'safe' zone, where no damage is dealt. - GET_COMPONENT_FROM(mood, /datum/component/mood, H) if(H.bodytemperature > BODYTEMP_HEAT_DAMAGE_LIMIT && !H.has_trait(TRAIT_RESISTHEAT)) //Body temperature is too hot. var/burn_damage - if(mood) - mood.clear_event("cold") - mood.add_event("hot", /datum/mood_event/hot) + H.SendSignal(COMSIG_CLEAR_MOOD_EVENT, "cold") + H.SendSignal(COMSIG_ADD_MOOD_EVENT, "hot", /datum/mood_event/hot) switch(H.bodytemperature) if(BODYTEMP_HEAT_DAMAGE_LIMIT to 400) H.throw_alert("temp", /obj/screen/alert/hot, 1) @@ -1754,9 +1739,8 @@ GLOBAL_LIST_EMPTY(roundstart_races) H.apply_damage(burn_damage, BURN) else if(H.bodytemperature < BODYTEMP_COLD_DAMAGE_LIMIT && !(GLOB.mutations_list[COLDRES] in H.dna.mutations)) - if(mood) - mood.clear_event("hot") - mood.add_event("cold", /datum/mood_event/cold) + H.SendSignal(COMSIG_CLEAR_MOOD_EVENT, "hot") + H.SendSignal(COMSIG_ADD_MOOD_EVENT, "cold", /datum/mood_event/cold) switch(H.bodytemperature) if(200 to BODYTEMP_COLD_DAMAGE_LIMIT) H.throw_alert("temp", /obj/screen/alert/cold, 1) @@ -1770,9 +1754,8 @@ GLOBAL_LIST_EMPTY(roundstart_races) else H.clear_alert("temp") - if(mood) - mood.clear_event("cold") - mood.clear_event("hot") + H.SendSignal(COMSIG_CLEAR_MOOD_EVENT, "cold") + H.SendSignal(COMSIG_CLEAR_MOOD_EVENT, "hot") var/pressure = environment.return_pressure() var/adjusted_pressure = H.calculate_affecting_pressure(pressure) //Returns how much pressure actually affects the mob. @@ -1866,7 +1849,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) H.adjust_bodytemperature(11) else H.adjust_bodytemperature(BODYTEMP_HEATING_MAX + (H.fire_stacks * 12)) - + H.SendSignal(COMSIG_ADD_MOOD_EVENT, "on_fire", /datum/mood_event/on_fire) /datum/species/proc/CanIgniteMob(mob/living/carbon/human/H) if(H.has_trait(TRAIT_NOFIRE)) diff --git a/code/modules/mob/living/carbon/human/species_types/dullahan.dm b/code/modules/mob/living/carbon/human/species_types/dullahan.dm index 3a0e5a8415..6029182afe 100644 --- a/code/modules/mob/living/carbon/human/species_types/dullahan.dm +++ b/code/modules/mob/living/carbon/human/species_types/dullahan.dm @@ -26,7 +26,7 @@ /datum/species/dullahan/on_species_gain(mob/living/carbon/human/H, datum/species/old_species) . = ..() H.flags_1 &= ~HEAR_1 - var/obj/item/bodypart/head/head = H.get_bodypart("head") + var/obj/item/bodypart/head/head = H.get_bodypart(BODY_ZONE_HEAD) if(head) head.drop_limb() head.flags_1 = HEAR_1 @@ -42,14 +42,14 @@ myhead = null DR.owner = null qdel(DR) - H.regenerate_limb("head",FALSE) + H.regenerate_limb(BODY_ZONE_HEAD,FALSE) ..() /datum/species/dullahan/spec_life(mob/living/carbon/human/H) if(QDELETED(myhead)) myhead = null H.gib() - var/obj/item/bodypart/head/head2 = H.get_bodypart("head") + var/obj/item/bodypart/head/head2 = H.get_bodypart(BODY_ZONE_HEAD) if(head2) myhead = null H.gib() diff --git a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm index 809c657f23..2ae8125c5e 100644 --- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm @@ -59,13 +59,13 @@ regenerate_limbs.UpdateButtonIcon() /datum/species/jelly/proc/Cannibalize_Body(mob/living/carbon/human/H) - var/list/limbs_to_consume = list("r_arm", "l_arm", "r_leg", "l_leg") - H.get_missing_limbs() + var/list/limbs_to_consume = list(BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_R_LEG, BODY_ZONE_L_LEG) - H.get_missing_limbs() var/obj/item/bodypart/consumed_limb if(!limbs_to_consume.len) H.losebreath++ return if(H.get_num_legs()) //Legs go before arms - limbs_to_consume -= list("r_arm", "l_arm") + limbs_to_consume -= list(BODY_ZONE_R_ARM, BODY_ZONE_L_ARM) consumed_limb = H.get_bodypart(pick(limbs_to_consume)) consumed_limb.drop_limb() to_chat(H, "Your [consumed_limb] is drawn back into your body, unable to maintain its shape!") diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 3c57b172fe..ab4e39f922 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -208,7 +208,7 @@ There are several things that need to be remembered: /mob/living/carbon/human/update_inv_glasses() remove_overlay(GLASSES_LAYER) - if(!get_bodypart("head")) //decapitated + if(!get_bodypart(BODY_ZONE_HEAD)) //decapitated return if(client && hud_used) @@ -235,7 +235,7 @@ There are several things that need to be remembered: /mob/living/carbon/human/update_inv_ears() remove_overlay(EARS_LAYER) - if(!get_bodypart("head")) //decapitated + if(!get_bodypart(BODY_ZONE_HEAD)) //decapitated return if(client && hud_used) diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index dc939f8fc1..42547e3544 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -144,7 +144,6 @@ //OXYGEN - GET_COMPONENT_FROM(mood, /datum/component/mood, src) if(O2_partialpressure < safe_oxy_min) //Not enough oxygen if(prob(20)) emote("gasp") @@ -157,8 +156,7 @@ adjustOxyLoss(3) failed_last_breath = 1 throw_alert("not_enough_oxy", /obj/screen/alert/not_enough_oxy) - if(mood) - mood.add_event("suffocation", /datum/mood_event/suffocation) + SendSignal(COMSIG_ADD_MOOD_EVENT, "suffocation", /datum/mood_event/suffocation) else //Enough oxygen failed_last_breath = 0 @@ -166,8 +164,7 @@ adjustOxyLoss(-5) oxygen_used = breath_gases[/datum/gas/oxygen][MOLES] clear_alert("not_enough_oxy") - if(mood) - mood.clear_event("suffocation") + SendSignal(COMSIG_CLEAR_MOOD_EVENT, "suffocation") breath_gases[/datum/gas/oxygen][MOLES] -= oxygen_used breath_gases[/datum/gas/carbon_dioxide][MOLES] += oxygen_used diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm index a8f2e282ed..3baf5087d6 100644 --- a/code/modules/mob/living/carbon/monkey/life.dm +++ b/code/modules/mob/living/carbon/monkey/life.dm @@ -162,4 +162,4 @@ I.take_damage(fire_stacks, BURN, "fire", 0) adjust_bodytemperature(BODYTEMP_HEATING_MAX) - + SendSignal(COMSIG_ADD_MOOD_EVENT, "on_fire", /datum/mood_event/on_fire) diff --git a/code/modules/mob/living/carbon/monkey/monkey_defense.dm b/code/modules/mob/living/carbon/monkey/monkey_defense.dm index fe15e50975..f6b8e19468 100644 --- a/code/modules/mob/living/carbon/monkey/monkey_defense.dm +++ b/code/modules/mob/living/carbon/monkey/monkey_defense.dm @@ -7,10 +7,10 @@ /mob/living/carbon/monkey/attack_paw(mob/living/M) if(..()) //successful monkey bite. - var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg") + var/dam_zone = pick(BODY_ZONE_CHEST, BODY_ZONE_PRECISE_L_HAND, BODY_ZONE_PRECISE_R_HAND, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) var/obj/item/bodypart/affecting = get_bodypart(ran_zone(dam_zone)) if(!affecting) - affecting = get_bodypart("chest") + affecting = get_bodypart(BODY_ZONE_CHEST) if(M.limb_destroyer) dismembering_strike(M, affecting.body_zone) if(stat != DEAD) @@ -24,7 +24,7 @@ L.amount_grown = min(L.amount_grown + damage, L.max_grown) var/obj/item/bodypart/affecting = get_bodypart(ran_zone(L.zone_selected)) if(!affecting) - affecting = get_bodypart("chest") + affecting = get_bodypart(BODY_ZONE_CHEST) apply_damage(damage, BRUTE, affecting) /mob/living/carbon/monkey/attack_hand(mob/living/carbon/human/M) @@ -52,7 +52,7 @@ "[M] has knocked out [name]!", null, 5) var/obj/item/bodypart/affecting = get_bodypart(ran_zone(M.zone_selected)) if(!affecting) - affecting = get_bodypart("chest") + affecting = get_bodypart(BODY_ZONE_CHEST) apply_damage(damage, BRUTE, affecting) add_logs(M, src, "attacked") @@ -92,7 +92,7 @@ var/obj/item/bodypart/affecting = get_bodypart(ran_zone(M.zone_selected)) add_logs(M, src, "attacked") if(!affecting) - affecting = get_bodypart("chest") + affecting = get_bodypart(BODY_ZONE_CHEST) if(!dismembering_strike(M, affecting.body_zone)) //Dismemberment successful return 1 apply_damage(damage, BRUTE, affecting) @@ -123,12 +123,12 @@ . = ..() if(.) var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) - var/dam_zone = dismembering_strike(M, pick("chest", "l_hand", "r_hand", "l_leg", "r_leg")) + var/dam_zone = dismembering_strike(M, pick(BODY_ZONE_CHEST, BODY_ZONE_PRECISE_L_HAND, BODY_ZONE_PRECISE_R_HAND, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG)) if(!dam_zone) //Dismemberment successful return TRUE var/obj/item/bodypart/affecting = get_bodypart(ran_zone(dam_zone)) if(!affecting) - affecting = get_bodypart("chest") + affecting = get_bodypart(BODY_ZONE_CHEST) apply_damage(damage, M.melee_damage_type, affecting) /mob/living/carbon/monkey/attack_slime(mob/living/simple_animal/slime/M) @@ -136,17 +136,17 @@ var/damage = rand(5, 35) if(M.is_adult) damage = rand(20, 40) - var/dam_zone = dismembering_strike(M, pick("head", "chest", "l_arm", "r_arm", "l_leg", "r_leg")) + var/dam_zone = dismembering_strike(M, pick(BODY_ZONE_HEAD, BODY_ZONE_CHEST, BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG)) if(!dam_zone) //Dismemberment successful return 1 var/obj/item/bodypart/affecting = get_bodypart(ran_zone(dam_zone)) if(!affecting) - affecting = get_bodypart("chest") + affecting = get_bodypart(BODY_ZONE_CHEST) apply_damage(damage, BRUTE, affecting) /mob/living/carbon/monkey/acid_act(acidpwr, acid_volume, bodyzone_hit) . = 1 - if(!bodyzone_hit || bodyzone_hit == "head") + if(!bodyzone_hit || bodyzone_hit == BODY_ZONE_HEAD) if(wear_mask) if(!(wear_mask.resistance_flags & UNACIDABLE)) wear_mask.acid_act(acidpwr, acid_volume) @@ -192,7 +192,7 @@ var/max_limb_loss = round(4/severity) //so you don't lose four limbs at severity 3. for(var/X in bodyparts) var/obj/item/bodypart/BP = X - if(prob(50/severity) && BP.body_zone != "chest") + if(prob(50/severity) && BP.body_zone != BODY_ZONE_CHEST) BP.brute_dam = BP.max_damage BP.dismember() max_limb_loss-- diff --git a/code/modules/mob/living/carbon/monkey/update_icons.dm b/code/modules/mob/living/carbon/monkey/update_icons.dm index def7640b76..c807251af4 100644 --- a/code/modules/mob/living/carbon/monkey/update_icons.dm +++ b/code/modules/mob/living/carbon/monkey/update_icons.dm @@ -15,7 +15,7 @@ /mob/living/carbon/monkey/update_hair() remove_overlay(HAIR_LAYER) - var/obj/item/bodypart/head/HD = get_bodypart("head") + var/obj/item/bodypart/head/HD = get_bodypart(BODY_ZONE_HEAD) if(!HD) //Decapitated return diff --git a/code/modules/mob/living/carbon/status_procs.dm b/code/modules/mob/living/carbon/status_procs.dm index 1db31d5a2d..7a7a4681c5 100644 --- a/code/modules/mob/living/carbon/status_procs.dm +++ b/code/modules/mob/living/carbon/status_procs.dm @@ -42,17 +42,14 @@ /mob/living/carbon/adjust_drugginess(amount) druggy = max(druggy+amount, 0) - GET_COMPONENT_FROM(mood, /datum/component/mood, src) if(druggy) overlay_fullscreen("high", /obj/screen/fullscreen/high) throw_alert("high", /obj/screen/alert/high) - if(mood) - mood.add_event("high", /datum/mood_event/drugs/high) + SendSignal(COMSIG_ADD_MOOD_EVENT, "high", /datum/mood_event/drugs/high) else clear_fullscreen("high") clear_alert("high") - if(mood) - mood.clear_event("high") + SendSignal(COMSIG_CLEAR_MOOD_EVENT, "high") /mob/living/carbon/set_drugginess(amount) druggy = max(amount, 0) diff --git a/code/modules/mob/living/carbon/update_icons.dm b/code/modules/mob/living/carbon/update_icons.dm index d798a3cd25..abd02de061 100644 --- a/code/modules/mob/living/carbon/update_icons.dm +++ b/code/modules/mob/living/carbon/update_icons.dm @@ -115,7 +115,7 @@ /mob/living/carbon/update_inv_wear_mask() remove_overlay(FACEMASK_LAYER) - if(!get_bodypart("head")) //Decapitated + if(!get_bodypart(BODY_ZONE_HEAD)) //Decapitated return if(client && hud_used && hud_used.inv_slots[slot_wear_mask]) @@ -159,7 +159,7 @@ /mob/living/carbon/update_inv_head() remove_overlay(HEAD_LAYER) - if(!get_bodypart("head")) //Decapitated + if(!get_bodypart(BODY_ZONE_HEAD)) //Decapitated return if(client && hud_used && hud_used.inv_slots[slot_back]) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 5bd526efd5..933c25c992 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -446,8 +446,8 @@ /mob/living/proc/get_organ_target() var/mob/shooter = src var/t = shooter.zone_selected - if ((t in list( "eyes", "mouth" ))) - t = "head" + if ((t in list( BODY_ZONE_PRECISE_EYES, BODY_ZONE_PRECISE_MOUTH ))) + t = BODY_ZONE_HEAD var/def_zone = ran_zone(t) return def_zone @@ -984,9 +984,6 @@ "You're set on fire!") new/obj/effect/dummy/fire(src) throw_alert("fire", /obj/screen/alert/fire) - GET_COMPONENT_FROM(mood, /datum/component/mood, src) - if(mood) - mood.add_event("on_fire", /datum/mood_event/on_fire) update_fire() return TRUE return FALSE @@ -998,9 +995,7 @@ for(var/obj/effect/dummy/fire/F in src) qdel(F) clear_alert("fire") - GET_COMPONENT_FROM(mood, /datum/component/mood, src) - if(mood) - mood.clear_event("on_fire") + SendSignal(COMSIG_CLEAR_MOOD_EVENT, "on_fire") update_fire() /mob/living/proc/adjust_fire_stacks(add_fire_stacks) //Adjusting the amount of fire_stacks we have on person diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 6450c13bb7..085f43075c 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -64,7 +64,7 @@ /mob/living/hitby(atom/movable/AM, skipcatch, hitpush = TRUE, blocked = FALSE) if(istype(AM, /obj/item)) var/obj/item/I = AM - var/zone = ran_zone("chest", 65)//Hits a random part of the body, geared towards the chest + var/zone = ran_zone(BODY_ZONE_CHEST, 65)//Hits a random part of the body, geared towards the chest var/dtype = BRUTE var/volume = I.get_volume_by_throwforce_and_or_w_class() dtype = I.damtype diff --git a/code/modules/mob/living/silicon/ai/say.dm b/code/modules/mob/living/silicon/ai/say.dm index 75f0fb5e81..3ad39bb016 100644 --- a/code/modules/mob/living/silicon/ai/say.dm +++ b/code/modules/mob/living/silicon/ai/say.dm @@ -67,11 +67,16 @@ if(incapacitated()) return - var/dat = "Here is a list of words you can type into the 'Announcement' button to create sentences to vocally announce to everyone on the same level at you.
\ -
  • You can also click on the word to preview it.
  • \ -
  • You can only say 30 words for every announcement.
  • \ -
  • Do not use punctuation as you would normally, if you want a pause you can use the full stop and comma characters by separating them with spaces, like so: 'Alpha . Test , Bravo'.
\ - WARNING:
Misuse of the announcement system will get you job banned.
" + var/dat = {" + WARNING: Misuse of the announcement system will get you job banned.

+ Here is a list of words you can type into the 'Announcement' button to create sentences to vocally announce to everyone on the same level at you.
+
  • You can also click on the word to PREVIEW it.
  • +
  • You can only say 30 words for every announcement.
  • +
  • Do not use punctuation as you would normally, if you want a pause you can use the full stop and comma characters by separating them with spaces, like so: 'Alpha . Test , Bravo'.
  • +
  • Numbers are in word format, e.g. eight, sixty, etc
  • +
  • Sound effects begin with an 's' before the actual word, e.g. scensor
  • +
  • Use Ctrl+F to see if a word exists in the list.

+ "} var/index = 0 for(var/word in GLOB.vox_sounds) diff --git a/code/modules/mob/living/silicon/ai/vox_sounds.dm b/code/modules/mob/living/silicon/ai/vox_sounds.dm index 8f9eb26356..29b57f8dbc 100644 --- a/code/modules/mob/living/silicon/ai/vox_sounds.dm +++ b/code/modules/mob/living/silicon/ai/vox_sounds.dm @@ -1,717 +1,978 @@ -// List is required to compile the resources into the game when it loads. -// Dynamically loading it has bad results with sounds overtaking each other, even with the wait variable. -#ifdef AI_VOX - -GLOBAL_LIST_INIT(vox_sounds, list("," = 'sound/vox_fem/,.ogg', -"." = 'sound/vox_fem/..ogg', -"a" = 'sound/vox_fem/a.ogg', -"abortions" = 'sound/vox_fem/abortions.ogg', -"accelerating" = 'sound/vox_fem/accelerating.ogg', -"accelerator" = 'sound/vox_fem/accelerator.ogg', -"accepted" = 'sound/vox_fem/accepted.ogg', -"access" = 'sound/vox_fem/access.ogg', -"acknowledge" = 'sound/vox_fem/acknowledge.ogg', -"acknowledged" = 'sound/vox_fem/acknowledged.ogg', -"acquired" = 'sound/vox_fem/acquired.ogg', -"acquisition" = 'sound/vox_fem/acquisition.ogg', -"across" = 'sound/vox_fem/across.ogg', -"activate" = 'sound/vox_fem/activate.ogg', -"activated" = 'sound/vox_fem/activated.ogg', -"activity" = 'sound/vox_fem/activity.ogg', -"adios" = 'sound/vox_fem/adios.ogg', -"administration" = 'sound/vox_fem/administration.ogg', -"advanced" = 'sound/vox_fem/advanced.ogg', -"aft" = 'sound/vox_fem/aft.ogg', -"after" = 'sound/vox_fem/after.ogg', -"agent" = 'sound/vox_fem/agent.ogg', -"ai" = 'sound/vox_fem/ai.ogg', -"alarm" = 'sound/vox_fem/alarm.ogg', -"alert" = 'sound/vox_fem/alert.ogg', -"alien" = 'sound/vox_fem/alien.ogg', -"aligned" = 'sound/vox_fem/aligned.ogg', -"all" = 'sound/vox_fem/all.ogg', -"alpha" = 'sound/vox_fem/alpha.ogg', -"am" = 'sound/vox_fem/am.ogg', -"amigo" = 'sound/vox_fem/amigo.ogg', -"ammunition" = 'sound/vox_fem/ammunition.ogg', -"an" = 'sound/vox_fem/an.ogg', -"and" = 'sound/vox_fem/and.ogg', -"announcement" = 'sound/vox_fem/announcement.ogg', -"anomalous" = 'sound/vox_fem/anomalous.ogg', -"antenna" = 'sound/vox_fem/antenna.ogg', -"any" = 'sound/vox_fem/any.ogg', -"apprehend" = 'sound/vox_fem/apprehend.ogg', -"approach" = 'sound/vox_fem/approach.ogg', -"are" = 'sound/vox_fem/are.ogg', -"area" = 'sound/vox_fem/area.ogg', -"arm" = 'sound/vox_fem/arm.ogg', -"armed" = 'sound/vox_fem/armed.ogg', -"armor" = 'sound/vox_fem/armor.ogg', -"armory" = 'sound/vox_fem/armory.ogg', -"array" = 'sound/vox_fem/array.ogg', -"arrest" = 'sound/vox_fem/arrest.ogg', -"asimov" = 'sound/vox_fem/asimov.ogg', -"ass" = 'sound/vox_fem/ass.ogg', -"asshole" = 'sound/vox_fem/asshole.ogg', -"assholes" = 'sound/vox_fem/assholes.ogg', -"at" = 'sound/vox_fem/at.ogg', -"atomic" = 'sound/vox_fem/atomic.ogg', -"attention" = 'sound/vox_fem/attention.ogg', -"authorize" = 'sound/vox_fem/authorize.ogg', -"authorized" = 'sound/vox_fem/authorized.ogg', -"automatic" = 'sound/vox_fem/automatic.ogg', -"away" = 'sound/vox_fem/away.ogg', -"b" = 'sound/vox_fem/b.ogg', -"back" = 'sound/vox_fem/back.ogg', -"backman" = 'sound/vox_fem/backman.ogg', -"bad" = 'sound/vox_fem/bad.ogg', -"bag" = 'sound/vox_fem/bag.ogg', -"bailey" = 'sound/vox_fem/bailey.ogg', -"barracks" = 'sound/vox_fem/barracks.ogg', -"base" = 'sound/vox_fem/base.ogg', -"bay" = 'sound/vox_fem/bay.ogg', -"be" = 'sound/vox_fem/be.ogg', -"been" = 'sound/vox_fem/been.ogg', -"before" = 'sound/vox_fem/before.ogg', -"beyond" = 'sound/vox_fem/beyond.ogg', -"biohazard" = 'sound/vox_fem/biohazard.ogg', -"biological" = 'sound/vox_fem/biological.ogg', -"birdwell" = 'sound/vox_fem/birdwell.ogg', -"bitch" = 'sound/vox_fem/bitch.ogg', -"bitches" = 'sound/vox_fem/bitches.ogg', -"black" = 'sound/vox_fem/black.ogg', -"blast" = 'sound/vox_fem/blast.ogg', -"blocked" = 'sound/vox_fem/blocked.ogg', -"blue" = 'sound/vox_fem/blue.ogg', -"bottom" = 'sound/vox_fem/bottom.ogg', -"bravo" = 'sound/vox_fem/bravo.ogg', -"breach" = 'sound/vox_fem/breach.ogg', -"breached" = 'sound/vox_fem/breached.ogg', -"break" = 'sound/vox_fem/break.ogg', -"bridge" = 'sound/vox_fem/bridge.ogg', -"bust" = 'sound/vox_fem/bust.ogg', -"but" = 'sound/vox_fem/but.ogg', -"button" = 'sound/vox_fem/button.ogg', -"bypass" = 'sound/vox_fem/bypass.ogg', -"c" = 'sound/vox_fem/c.ogg', -"cable" = 'sound/vox_fem/cable.ogg', -"call" = 'sound/vox_fem/call.ogg', -"called" = 'sound/vox_fem/called.ogg', -"canal" = 'sound/vox_fem/canal.ogg', -"cap" = 'sound/vox_fem/cap.ogg', -"captain" = 'sound/vox_fem/captain.ogg', -"capture" = 'sound/vox_fem/capture.ogg', -"cargo" = 'sound/vox_fem/cargo.ogg', -"ceiling" = 'sound/vox_fem/ceiling.ogg', -"celsius" = 'sound/vox_fem/celsius.ogg', -"centcom" = 'sound/vox_fem/centcom.ogg', -"center" = 'sound/vox_fem/center.ogg', -"centi" = 'sound/vox_fem/centi.ogg', -"central" = 'sound/vox_fem/central.ogg', -"chamber" = 'sound/vox_fem/chamber.ogg', -"changed" = 'sound/vox_fem/changed.ogg', -"charlie" = 'sound/vox_fem/charlie.ogg', -"check" = 'sound/vox_fem/check.ogg', -"checkpoint" = 'sound/vox_fem/checkpoint.ogg', -"chemical" = 'sound/vox_fem/chemical.ogg', -"cleanup" = 'sound/vox_fem/cleanup.ogg', -"clear" = 'sound/vox_fem/clear.ogg', -"clearance" = 'sound/vox_fem/clearance.ogg', -"close" = 'sound/vox_fem/close.ogg', -"clown" = 'sound/vox_fem/clown.ogg', -"code" = 'sound/vox_fem/code.ogg', -"coded" = 'sound/vox_fem/coded.ogg', -"collider" = 'sound/vox_fem/collider.ogg', -"come" = 'sound/vox_fem/come.ogg', -"command" = 'sound/vox_fem/command.ogg', -"communication" = 'sound/vox_fem/communication.ogg', -"complex" = 'sound/vox_fem/complex.ogg', -"computer" = 'sound/vox_fem/computer.ogg', -"condition" = 'sound/vox_fem/condition.ogg', -"connor" = 'sound/vox_fem/connor.ogg', -"containment" = 'sound/vox_fem/containment.ogg', -"contamination" = 'sound/vox_fem/contamination.ogg', -"contraband" = 'sound/vox_fem/contraband.ogg', -"control" = 'sound/vox_fem/control.ogg', -"coolant" = 'sound/vox_fem/coolant.ogg', -"coomer" = 'sound/vox_fem/coomer.ogg', -"core" = 'sound/vox_fem/core.ogg', -"correct" = 'sound/vox_fem/correct.ogg', -"corridor" = 'sound/vox_fem/corridor.ogg', -"coward" = 'sound/vox_fem/coward.ogg', -"cowards" = 'sound/vox_fem/cowards.ogg', -"crew" = 'sound/vox_fem/crew.ogg', -"cross" = 'sound/vox_fem/cross.ogg', -"cryogenic" = 'sound/vox_fem/cryogenic.ogg', -"cunt" = 'sound/vox_fem/cunt.ogg', -"cyborg" = 'sound/vox_fem/cyborg.ogg', -"cyborgs" = 'sound/vox_fem/cyborgs.ogg', -"d" = 'sound/vox_fem/d.ogg', -"damage" = 'sound/vox_fem/damage.ogg', -"damaged" = 'sound/vox_fem/damaged.ogg', -"danger" = 'sound/vox_fem/danger.ogg', -"day" = 'sound/vox_fem/day.ogg', -"deactivated" = 'sound/vox_fem/deactivated.ogg', -"decompression" = 'sound/vox_fem/decompression.ogg', -"decontamination" = 'sound/vox_fem/decontamination.ogg', -"deeoo" = 'sound/vox_fem/deeoo.ogg', -"defense" = 'sound/vox_fem/defense.ogg', -"degrees" = 'sound/vox_fem/degrees.ogg', -"delta" = 'sound/vox_fem/delta.ogg', -"denied" = 'sound/vox_fem/denied.ogg', -"deploy" = 'sound/vox_fem/deploy.ogg', -"deployed" = 'sound/vox_fem/deployed.ogg', -"destroy" = 'sound/vox_fem/destroy.ogg', -"destroyed" = 'sound/vox_fem/destroyed.ogg', -"detain" = 'sound/vox_fem/detain.ogg', -"detected" = 'sound/vox_fem/detected.ogg', -"detonation" = 'sound/vox_fem/detonation.ogg', -"device" = 'sound/vox_fem/device.ogg', -"did" = 'sound/vox_fem/did.ogg', -"die" = 'sound/vox_fem/die.ogg', -"dimensional" = 'sound/vox_fem/dimensional.ogg', -"dirt" = 'sound/vox_fem/dirt.ogg', -"disengaged" = 'sound/vox_fem/disengaged.ogg', -"dish" = 'sound/vox_fem/dish.ogg', -"disposal" = 'sound/vox_fem/disposal.ogg', -"distance" = 'sound/vox_fem/distance.ogg', -"distortion" = 'sound/vox_fem/distortion.ogg', -"do" = 'sound/vox_fem/do.ogg', -"doctor" = 'sound/vox_fem/doctor.ogg', -"door" = 'sound/vox_fem/door.ogg', -"down" = 'sound/vox_fem/down.ogg', -"dual" = 'sound/vox_fem/dual.ogg', -"duct" = 'sound/vox_fem/duct.ogg', -"e" = 'sound/vox_fem/e.ogg', -"east" = 'sound/vox_fem/east.ogg', -"echo" = 'sound/vox_fem/echo.ogg', -"ed" = 'sound/vox_fem/ed.ogg', -"effect" = 'sound/vox_fem/effect.ogg', -"egress" = 'sound/vox_fem/egress.ogg', -"eight" = 'sound/vox_fem/eight.ogg', -"eighteen" = 'sound/vox_fem/eighteen.ogg', -"eighty" = 'sound/vox_fem/eighty.ogg', -"electric" = 'sound/vox_fem/electric.ogg', -"electromagnetic" = 'sound/vox_fem/electromagnetic.ogg', -"elevator" = 'sound/vox_fem/elevator.ogg', -"eleven" = 'sound/vox_fem/eleven.ogg', -"eliminate" = 'sound/vox_fem/eliminate.ogg', -"emergency" = 'sound/vox_fem/emergency.ogg', -"energy" = 'sound/vox_fem/energy.ogg', -"engage" = 'sound/vox_fem/engage.ogg', -"engaged" = 'sound/vox_fem/engaged.ogg', -"engine" = 'sound/vox_fem/engine.ogg', -"enter" = 'sound/vox_fem/enter.ogg', -"entry" = 'sound/vox_fem/entry.ogg', -"environment" = 'sound/vox_fem/environment.ogg', -"error" = 'sound/vox_fem/error.ogg', -"escape" = 'sound/vox_fem/escape.ogg', -"evacuate" = 'sound/vox_fem/evacuate.ogg', -"exchange" = 'sound/vox_fem/exchange.ogg', -"exit" = 'sound/vox_fem/exit.ogg', -"expect" = 'sound/vox_fem/expect.ogg', -"experiment" = 'sound/vox_fem/experiment.ogg', -"experimental" = 'sound/vox_fem/experimental.ogg', -"explode" = 'sound/vox_fem/explode.ogg', -"explosion" = 'sound/vox_fem/explosion.ogg', -"exposure" = 'sound/vox_fem/exposure.ogg', -"exterminate" = 'sound/vox_fem/exterminate.ogg', -"extinguish" = 'sound/vox_fem/extinguish.ogg', -"extinguisher" = 'sound/vox_fem/extinguisher.ogg', -"extreme" = 'sound/vox_fem/extreme.ogg', -"f" = 'sound/vox_fem/f.ogg', -"facility" = 'sound/vox_fem/facility.ogg', -"fahrenheit" = 'sound/vox_fem/fahrenheit.ogg', -"failed" = 'sound/vox_fem/failed.ogg', -"failure" = 'sound/vox_fem/failure.ogg', -"farthest" = 'sound/vox_fem/farthest.ogg', -"fast" = 'sound/vox_fem/fast.ogg', -"feet" = 'sound/vox_fem/feet.ogg', -"field" = 'sound/vox_fem/field.ogg', -"fifteen" = 'sound/vox_fem/fifteen.ogg', -"fifth" = 'sound/vox_fem/fifth.ogg', -"fifty" = 'sound/vox_fem/fifty.ogg', -"final" = 'sound/vox_fem/final.ogg', -"fine" = 'sound/vox_fem/fine.ogg', -"fire" = 'sound/vox_fem/fire.ogg', -"first" = 'sound/vox_fem/first.ogg', -"five" = 'sound/vox_fem/five.ogg', -"flooding" = 'sound/vox_fem/flooding.ogg', -"floor" = 'sound/vox_fem/floor.ogg', -"fool" = 'sound/vox_fem/fool.ogg', -"for" = 'sound/vox_fem/for.ogg', -"forbidden" = 'sound/vox_fem/forbidden.ogg', -"force" = 'sound/vox_fem/force.ogg', -"fore" = 'sound/vox_fem/fore.ogg', -"forms" = 'sound/vox_fem/forms.ogg', -"found" = 'sound/vox_fem/found.ogg', -"four" = 'sound/vox_fem/four.ogg', -"fourteen" = 'sound/vox_fem/fourteen.ogg', -"fourth" = 'sound/vox_fem/fourth.ogg', -"fourty" = 'sound/vox_fem/fourty.ogg', -"foxtrot" = 'sound/vox_fem/foxtrot.ogg', -"freeman" = 'sound/vox_fem/freeman.ogg', -"freezer" = 'sound/vox_fem/freezer.ogg', -"from" = 'sound/vox_fem/from.ogg', -"front" = 'sound/vox_fem/front.ogg', -"fuck" = 'sound/vox_fem/fuck.ogg', -"fucking" = 'sound/vox_fem/fucking.ogg', -"fucks" = 'sound/vox_fem/fucks.ogg', -"fuel" = 'sound/vox_fem/fuel.ogg', -"g" = 'sound/vox_fem/g.ogg', -"gas" = 'sound/vox_fem/gas.ogg', -"get" = 'sound/vox_fem/get.ogg', -"glory" = 'sound/vox_fem/glory.ogg', -"go" = 'sound/vox_fem/go.ogg', -"going" = 'sound/vox_fem/going.ogg', -"good" = 'sound/vox_fem/good.ogg', -"goodbye" = 'sound/vox_fem/goodbye.ogg', -"gordon" = 'sound/vox_fem/gordon.ogg', -"got" = 'sound/vox_fem/got.ogg', -"government" = 'sound/vox_fem/government.ogg', -"granted" = 'sound/vox_fem/granted.ogg', -"gray" = 'sound/vox_fem/gray.ogg', -"great" = 'sound/vox_fem/great.ogg', -"green" = 'sound/vox_fem/green.ogg', -"grenade" = 'sound/vox_fem/grenade.ogg', -"guard" = 'sound/vox_fem/guard.ogg', -"gulf" = 'sound/vox_fem/gulf.ogg', -"gun" = 'sound/vox_fem/gun.ogg', -"guthrie" = 'sound/vox_fem/guthrie.ogg', -"h" = 'sound/vox_fem/h.ogg', -"hacker" = 'sound/vox_fem/hacker.ogg', -"hackers" = 'sound/vox_fem/hackers.ogg', -"handling" = 'sound/vox_fem/handling.ogg', -"hangar" = 'sound/vox_fem/hangar.ogg', -"harm" = 'sound/vox_fem/harm.ogg', -"has" = 'sound/vox_fem/has.ogg', -"have" = 'sound/vox_fem/have.ogg', -"hazard" = 'sound/vox_fem/hazard.ogg', -"head" = 'sound/vox_fem/head.ogg', -"health" = 'sound/vox_fem/health.ogg', -"heat" = 'sound/vox_fem/heat.ogg', -"helicopter" = 'sound/vox_fem/helicopter.ogg', -"helium" = 'sound/vox_fem/helium.ogg', -"hello" = 'sound/vox_fem/hello.ogg', -"help" = 'sound/vox_fem/help.ogg', -"here" = 'sound/vox_fem/here.ogg', -"hide" = 'sound/vox_fem/hide.ogg', -"high" = 'sound/vox_fem/high.ogg', -"highest" = 'sound/vox_fem/highest.ogg', -"hit" = 'sound/vox_fem/hit.ogg', -"hole" = 'sound/vox_fem/hole.ogg', -"hostile" = 'sound/vox_fem/hostile.ogg', -"hot" = 'sound/vox_fem/hot.ogg', -"hotel" = 'sound/vox_fem/hotel.ogg', -"hour" = 'sound/vox_fem/hour.ogg', -"hours" = 'sound/vox_fem/hours.ogg', -"human" = 'sound/vox_fem/human.ogg', -"hundred" = 'sound/vox_fem/hundred.ogg', -"hunger" = 'sound/vox_fem/hunger.ogg', -"hydro" = 'sound/vox_fem/hydro.ogg', -"hydroponics" = 'sound/vox_fem/hydroponics.ogg', -"i" = 'sound/vox_fem/i.ogg', -"idiot" = 'sound/vox_fem/idiot.ogg', -"illegal" = 'sound/vox_fem/illegal.ogg', -"immediate" = 'sound/vox_fem/immediate.ogg', -"immediately" = 'sound/vox_fem/immediately.ogg', -"in" = 'sound/vox_fem/in.ogg', -"inches" = 'sound/vox_fem/inches.ogg', -"india" = 'sound/vox_fem/india.ogg', -"ing" = 'sound/vox_fem/ing.ogg', -"inoperative" = 'sound/vox_fem/inoperative.ogg', -"inside" = 'sound/vox_fem/inside.ogg', -"inspection" = 'sound/vox_fem/inspection.ogg', -"inspector" = 'sound/vox_fem/inspector.ogg', -"interchange" = 'sound/vox_fem/interchange.ogg', -"intruder" = 'sound/vox_fem/intruder.ogg', -"invalid" = 'sound/vox_fem/invalid.ogg', -"invasion" = 'sound/vox_fem/invasion.ogg', -"is" = 'sound/vox_fem/is.ogg', -"it" = 'sound/vox_fem/it.ogg', -"j" = 'sound/vox_fem/j.ogg', -"johnson" = 'sound/vox_fem/johnson.ogg', -"juliet" = 'sound/vox_fem/juliet.ogg', -"k" = 'sound/vox_fem/k.ogg', -"key" = 'sound/vox_fem/key.ogg', -"kill" = 'sound/vox_fem/kill.ogg', -"kilo" = 'sound/vox_fem/kilo.ogg', -"kit" = 'sound/vox_fem/kit.ogg', -"l" = 'sound/vox_fem/l.ogg', -"lab" = 'sound/vox_fem/lab.ogg', -"lambda" = 'sound/vox_fem/lambda.ogg', -"laser" = 'sound/vox_fem/laser.ogg', -"last" = 'sound/vox_fem/last.ogg', -"launch" = 'sound/vox_fem/launch.ogg', -"law" = 'sound/vox_fem/law.ogg', -"laws" = 'sound/vox_fem/laws.ogg', -"leak" = 'sound/vox_fem/leak.ogg', -"leave" = 'sound/vox_fem/leave.ogg', -"left" = 'sound/vox_fem/left.ogg', -"legal" = 'sound/vox_fem/legal.ogg', -"level" = 'sound/vox_fem/level.ogg', -"lever" = 'sound/vox_fem/lever.ogg', -"lie" = 'sound/vox_fem/lie.ogg', -"lieutenant" = 'sound/vox_fem/lieutenant.ogg', -"life" = 'sound/vox_fem/life.ogg', -"light" = 'sound/vox_fem/light.ogg', -"lima" = 'sound/vox_fem/lima.ogg', -"liquid" = 'sound/vox_fem/liquid.ogg', -"loading" = 'sound/vox_fem/loading.ogg', -"locate" = 'sound/vox_fem/locate.ogg', -"located" = 'sound/vox_fem/located.ogg', -"location" = 'sound/vox_fem/location.ogg', -"lock" = 'sound/vox_fem/lock.ogg', -"locked" = 'sound/vox_fem/locked.ogg', -"locker" = 'sound/vox_fem/locker.ogg', -"lockout" = 'sound/vox_fem/lockout.ogg', -"loose" = 'sound/vox_fem/loose.ogg', -"lower" = 'sound/vox_fem/lower.ogg', -"lowest" = 'sound/vox_fem/lowest.ogg', -"m" = 'sound/vox_fem/m.ogg', -"magnetic" = 'sound/vox_fem/magnetic.ogg', -"main" = 'sound/vox_fem/main.ogg', -"maintenance" = 'sound/vox_fem/maintenance.ogg', -"malfunction" = 'sound/vox_fem/malfunction.ogg', -"man" = 'sound/vox_fem/man.ogg', -"mass" = 'sound/vox_fem/mass.ogg', -"materials" = 'sound/vox_fem/materials.ogg', -"maximum" = 'sound/vox_fem/maximum.ogg', -"may" = 'sound/vox_fem/may.ogg', -"me" = 'sound/vox_fem/me.ogg', -"medbay" = 'sound/vox_fem/medbay.ogg', -"medical" = 'sound/vox_fem/medical.ogg', -"men" = 'sound/vox_fem/men.ogg', -"mercy" = 'sound/vox_fem/mercy.ogg', -"mesa" = 'sound/vox_fem/mesa.ogg', -"message" = 'sound/vox_fem/message.ogg', -"meter" = 'sound/vox_fem/meter.ogg', -"micro" = 'sound/vox_fem/micro.ogg', -"middle" = 'sound/vox_fem/middle.ogg', -"mike" = 'sound/vox_fem/mike.ogg', -"miles" = 'sound/vox_fem/miles.ogg', -"military" = 'sound/vox_fem/military.ogg', -"milli" = 'sound/vox_fem/milli.ogg', -"million" = 'sound/vox_fem/million.ogg', -"minefield" = 'sound/vox_fem/minefield.ogg', -"minimum" = 'sound/vox_fem/minimum.ogg', -"minutes" = 'sound/vox_fem/minutes.ogg', -"mister" = 'sound/vox_fem/mister.ogg', -"mode" = 'sound/vox_fem/mode.ogg', -"money" = 'sound/vox_fem/money.ogg', -"motor" = 'sound/vox_fem/motor.ogg', -"motorpool" = 'sound/vox_fem/motorpool.ogg', -"move" = 'sound/vox_fem/move.ogg', -"must" = 'sound/vox_fem/must.ogg', -"my" = 'sound/vox_fem/my.ogg', -"n" = 'sound/vox_fem/n.ogg', -"nanotrasen" = 'sound/vox_fem/nanotrasen.ogg', -"nearest" = 'sound/vox_fem/nearest.ogg', -"nice" = 'sound/vox_fem/nice.ogg', -"nine" = 'sound/vox_fem/nine.ogg', -"nineteen" = 'sound/vox_fem/nineteen.ogg', -"ninety" = 'sound/vox_fem/ninety.ogg', -"no" = 'sound/vox_fem/no.ogg', -"nominal" = 'sound/vox_fem/nominal.ogg', -"north" = 'sound/vox_fem/north.ogg', -"not" = 'sound/vox_fem/not.ogg', -"november" = 'sound/vox_fem/november.ogg', -"now" = 'sound/vox_fem/now.ogg', -"number" = 'sound/vox_fem/number.ogg', -"o" = 'sound/vox_fem/o.ogg', -"objective" = 'sound/vox_fem/objective.ogg', -"observation" = 'sound/vox_fem/observation.ogg', -"obtain" = 'sound/vox_fem/obtain.ogg', -"of" = 'sound/vox_fem/of.ogg', -"officer" = 'sound/vox_fem/officer.ogg', -"ok" = 'sound/vox_fem/ok.ogg', -"on" = 'sound/vox_fem/on.ogg', -"one" = 'sound/vox_fem/one.ogg', -"open" = 'sound/vox_fem/open.ogg', -"operating" = 'sound/vox_fem/operating.ogg', -"operations" = 'sound/vox_fem/operations.ogg', -"operative" = 'sound/vox_fem/operative.ogg', -"option" = 'sound/vox_fem/option.ogg', -"order" = 'sound/vox_fem/order.ogg', -"organic" = 'sound/vox_fem/organic.ogg', -"oscar" = 'sound/vox_fem/oscar.ogg', -"out" = 'sound/vox_fem/out.ogg', -"outside" = 'sound/vox_fem/outside.ogg', -"over" = 'sound/vox_fem/over.ogg', -"overload" = 'sound/vox_fem/overload.ogg', -"override" = 'sound/vox_fem/override.ogg', -"p" = 'sound/vox_fem/p.ogg', -"pacify" = 'sound/vox_fem/pacify.ogg', -"pain" = 'sound/vox_fem/pain.ogg', -"pal" = 'sound/vox_fem/pal.ogg', -"panel" = 'sound/vox_fem/panel.ogg', -"percent" = 'sound/vox_fem/percent.ogg', -"perimeter" = 'sound/vox_fem/perimeter.ogg', -"permitted" = 'sound/vox_fem/permitted.ogg', -"personnel" = 'sound/vox_fem/personnel.ogg', -"pipe" = 'sound/vox_fem/pipe.ogg', -"plant" = 'sound/vox_fem/plant.ogg', -"plasma" = 'sound/vox_fem/plasma.ogg', -"platform" = 'sound/vox_fem/platform.ogg', -"please" = 'sound/vox_fem/please.ogg', -"point" = 'sound/vox_fem/point.ogg', -"port" = 'sound/vox_fem/port.ogg', -"portal" = 'sound/vox_fem/portal.ogg', -"power" = 'sound/vox_fem/power.ogg', -"presence" = 'sound/vox_fem/presence.ogg', -"press" = 'sound/vox_fem/press.ogg', -"primary" = 'sound/vox_fem/primary.ogg', -"proceed" = 'sound/vox_fem/proceed.ogg', -"processing" = 'sound/vox_fem/processing.ogg', -"progress" = 'sound/vox_fem/progress.ogg', -"proper" = 'sound/vox_fem/proper.ogg', -"propulsion" = 'sound/vox_fem/propulsion.ogg', -"prosecute" = 'sound/vox_fem/prosecute.ogg', -"protective" = 'sound/vox_fem/protective.ogg', -"push" = 'sound/vox_fem/push.ogg', -"q" = 'sound/vox_fem/q.ogg', -"quantum" = 'sound/vox_fem/quantum.ogg', -"quebec" = 'sound/vox_fem/quebec.ogg', -"queen" = 'sound/vox_fem/queen.ogg', -"question" = 'sound/vox_fem/question.ogg', -"questioning" = 'sound/vox_fem/questioning.ogg', -"quick" = 'sound/vox_fem/quick.ogg', -"quit" = 'sound/vox_fem/quit.ogg', -"r" = 'sound/vox_fem/r.ogg', -"radiation" = 'sound/vox_fem/radiation.ogg', -"radioactive" = 'sound/vox_fem/radioactive.ogg', -"rads" = 'sound/vox_fem/rads.ogg', -"raider" = 'sound/vox_fem/raider.ogg', -"raiders" = 'sound/vox_fem/raiders.ogg', -"rapid" = 'sound/vox_fem/rapid.ogg', -"reach" = 'sound/vox_fem/reach.ogg', -"reached" = 'sound/vox_fem/reached.ogg', -"reactor" = 'sound/vox_fem/reactor.ogg', -"red" = 'sound/vox_fem/red.ogg', -"relay" = 'sound/vox_fem/relay.ogg', -"released" = 'sound/vox_fem/released.ogg', -"remaining" = 'sound/vox_fem/remaining.ogg', -"removal" = 'sound/vox_fem/removal.ogg', -"renegade" = 'sound/vox_fem/renegade.ogg', -"repair" = 'sound/vox_fem/repair.ogg', -"report" = 'sound/vox_fem/report.ogg', -"reports" = 'sound/vox_fem/reports.ogg', -"required" = 'sound/vox_fem/required.ogg', -"research" = 'sound/vox_fem/research.ogg', -"resevoir" = 'sound/vox_fem/resevoir.ogg', -"resistance" = 'sound/vox_fem/resistance.ogg', -"rest" = 'sound/vox_fem/rest.ogg', -"right" = 'sound/vox_fem/right.ogg', -"rocket" = 'sound/vox_fem/rocket.ogg', -"roger" = 'sound/vox_fem/roger.ogg', -"romeo" = 'sound/vox_fem/romeo.ogg', -"room" = 'sound/vox_fem/room.ogg', -"round" = 'sound/vox_fem/round.ogg', -"run" = 'sound/vox_fem/run.ogg', -"s" = 'sound/vox_fem/s.ogg', -"safe" = 'sound/vox_fem/safe.ogg', -"safety" = 'sound/vox_fem/safety.ogg', -"sarah" = 'sound/vox_fem/sarah.ogg', -"sargeant" = 'sound/vox_fem/sargeant.ogg', -"satellite" = 'sound/vox_fem/satellite.ogg', -"save" = 'sound/vox_fem/save.ogg', -"science" = 'sound/vox_fem/science.ogg', -"scream" = 'sound/vox_fem/scream.ogg', -"screen" = 'sound/vox_fem/screen.ogg', -"search" = 'sound/vox_fem/search.ogg', -"second" = 'sound/vox_fem/second.ogg', -"secondary" = 'sound/vox_fem/secondary.ogg', -"seconds" = 'sound/vox_fem/seconds.ogg', -"sector" = 'sound/vox_fem/sector.ogg', -"secure" = 'sound/vox_fem/secure.ogg', -"secured" = 'sound/vox_fem/secured.ogg', -"security" = 'sound/vox_fem/security.ogg', -"select" = 'sound/vox_fem/select.ogg', -"selected" = 'sound/vox_fem/selected.ogg', -"sensors" = 'sound/vox_fem/sensors.ogg', -"service" = 'sound/vox_fem/service.ogg', -"seven" = 'sound/vox_fem/seven.ogg', -"seventeen" = 'sound/vox_fem/seventeen.ogg', -"seventy" = 'sound/vox_fem/seventy.ogg', -"severe" = 'sound/vox_fem/severe.ogg', -"sewage" = 'sound/vox_fem/sewage.ogg', -"sewer" = 'sound/vox_fem/sewer.ogg', -"shield" = 'sound/vox_fem/shield.ogg', -"shipment" = 'sound/vox_fem/shipment.ogg', -"shirt" = 'sound/vox_fem/shirt.ogg', -"shit" = 'sound/vox_fem/shit.ogg', -"shitlord" = 'sound/vox_fem/shitlord.ogg', -"shits" = 'sound/vox_fem/shits.ogg', -"shitting" = 'sound/vox_fem/shitting.ogg', -"shock" = 'sound/vox_fem/shock.ogg', -"shoot" = 'sound/vox_fem/shoot.ogg', -"shower" = 'sound/vox_fem/shower.ogg', -"shut" = 'sound/vox_fem/shut.ogg', -"shuttle" = 'sound/vox_fem/shuttle.ogg', -"side" = 'sound/vox_fem/side.ogg', -"sierra" = 'sound/vox_fem/sierra.ogg', -"sight" = 'sound/vox_fem/sight.ogg', -"silo" = 'sound/vox_fem/silo.ogg', -"singularity" = 'sound/vox_fem/singularity.ogg', -"six" = 'sound/vox_fem/six.ogg', -"sixteen" = 'sound/vox_fem/sixteen.ogg', -"sixty" = 'sound/vox_fem/sixty.ogg', -"slime" = 'sound/vox_fem/slime.ogg', -"slow" = 'sound/vox_fem/slow.ogg', -"solar" = 'sound/vox_fem/solar.ogg', -"solars" = 'sound/vox_fem/solars.ogg', -"soldier" = 'sound/vox_fem/soldier.ogg', -"some" = 'sound/vox_fem/some.ogg', -"someone" = 'sound/vox_fem/someone.ogg', -"something" = 'sound/vox_fem/something.ogg', -"son" = 'sound/vox_fem/son.ogg', -"sorry" = 'sound/vox_fem/sorry.ogg', -"south" = 'sound/vox_fem/south.ogg', -"squad" = 'sound/vox_fem/squad.ogg', -"square" = 'sound/vox_fem/square.ogg', -"ss13" = 'sound/vox_fem/ss13.ogg', -"stairway" = 'sound/vox_fem/stairway.ogg', -"starboard" = 'sound/vox_fem/starboard.ogg', -"station" = 'sound/vox_fem/station.ogg', -"status" = 'sound/vox_fem/status.ogg', -"sterile" = 'sound/vox_fem/sterile.ogg', -"sterilization" = 'sound/vox_fem/sterilization.ogg', -"storage" = 'sound/vox_fem/storage.ogg', -"stuck" = 'sound/vox_fem/stuck.ogg', -"sub" = 'sound/vox_fem/sub.ogg', -"subsurface" = 'sound/vox_fem/subsurface.ogg', -"sudden" = 'sound/vox_fem/sudden.ogg', -"suffer" = 'sound/vox_fem/suffer.ogg', -"suit" = 'sound/vox_fem/suit.ogg', -"superconducting" = 'sound/vox_fem/superconducting.ogg', -"supercooled" = 'sound/vox_fem/supercooled.ogg', -"supply" = 'sound/vox_fem/supply.ogg', -"surface" = 'sound/vox_fem/surface.ogg', -"surrender" = 'sound/vox_fem/surrender.ogg', -"surround" = 'sound/vox_fem/surround.ogg', -"surrounded" = 'sound/vox_fem/surrounded.ogg', -"switch" = 'sound/vox_fem/switch.ogg', -"syndicate" = 'sound/vox_fem/syndicate.ogg', -"system" = 'sound/vox_fem/system.ogg', -"systems" = 'sound/vox_fem/systems.ogg', -"t" = 'sound/vox_fem/t.ogg', -"tactical" = 'sound/vox_fem/tactical.ogg', -"take" = 'sound/vox_fem/take.ogg', -"talk" = 'sound/vox_fem/talk.ogg', -"tango" = 'sound/vox_fem/tango.ogg', -"tank" = 'sound/vox_fem/tank.ogg', -"target" = 'sound/vox_fem/target.ogg', -"team" = 'sound/vox_fem/team.ogg', -"temperature" = 'sound/vox_fem/temperature.ogg', -"temporal" = 'sound/vox_fem/temporal.ogg', -"ten" = 'sound/vox_fem/ten.ogg', -"terminal" = 'sound/vox_fem/terminal.ogg', -"terminated" = 'sound/vox_fem/terminated.ogg', -"termination" = 'sound/vox_fem/termination.ogg', -"test" = 'sound/vox_fem/test.ogg', -"that" = 'sound/vox_fem/that.ogg', -"the" = 'sound/vox_fem/the.ogg', -"then" = 'sound/vox_fem/then.ogg', -"there" = 'sound/vox_fem/there.ogg', -"third" = 'sound/vox_fem/third.ogg', -"thirteen" = 'sound/vox_fem/thirteen.ogg', -"thirty" = 'sound/vox_fem/thirty.ogg', -"this" = 'sound/vox_fem/this.ogg', -"those" = 'sound/vox_fem/those.ogg', -"thousand" = 'sound/vox_fem/thousand.ogg', -"threat" = 'sound/vox_fem/threat.ogg', -"three" = 'sound/vox_fem/three.ogg', -"through" = 'sound/vox_fem/through.ogg', -"tide" = 'sound/vox_fem/tide.ogg', -"time" = 'sound/vox_fem/time.ogg', -"to" = 'sound/vox_fem/to.ogg', -"top" = 'sound/vox_fem/top.ogg', -"topside" = 'sound/vox_fem/topside.ogg', -"touch" = 'sound/vox_fem/touch.ogg', -"towards" = 'sound/vox_fem/towards.ogg', -"toxins" = 'sound/vox_fem/toxins.ogg', -"track" = 'sound/vox_fem/track.ogg', -"train" = 'sound/vox_fem/train.ogg', -"traitor" = 'sound/vox_fem/traitor.ogg', -"transportation" = 'sound/vox_fem/transportation.ogg', -"truck" = 'sound/vox_fem/truck.ogg', -"tunnel" = 'sound/vox_fem/tunnel.ogg', -"turn" = 'sound/vox_fem/turn.ogg', -"turret" = 'sound/vox_fem/turret.ogg', -"twelve" = 'sound/vox_fem/twelve.ogg', -"twenty" = 'sound/vox_fem/twenty.ogg', -"two" = 'sound/vox_fem/two.ogg', -"u" = 'sound/vox_fem/u.ogg', -"unauthorized" = 'sound/vox_fem/unauthorized.ogg', -"under" = 'sound/vox_fem/under.ogg', -"uniform" = 'sound/vox_fem/uniform.ogg', -"unlocked" = 'sound/vox_fem/unlocked.ogg', -"until" = 'sound/vox_fem/until.ogg', -"up" = 'sound/vox_fem/up.ogg', -"update" = 'sound/vox_fem/update.ogg', -"updated" = 'sound/vox_fem/updated.ogg', -"updating" = 'sound/vox_fem/updating.ogg', -"upload" = 'sound/vox_fem/upload.ogg', -"upper" = 'sound/vox_fem/upper.ogg', -"uranium" = 'sound/vox_fem/uranium.ogg', -"us" = 'sound/vox_fem/us.ogg', -"usa" = 'sound/vox_fem/usa.ogg', -"use" = 'sound/vox_fem/use.ogg', -"used" = 'sound/vox_fem/used.ogg', -"user" = 'sound/vox_fem/user.ogg', -"v" = 'sound/vox_fem/v.ogg', -"vacate" = 'sound/vox_fem/vacate.ogg', -"valid" = 'sound/vox_fem/valid.ogg', -"vapor" = 'sound/vox_fem/vapor.ogg', -"vent" = 'sound/vox_fem/vent.ogg', -"ventilation" = 'sound/vox_fem/ventilation.ogg', -"victor" = 'sound/vox_fem/victor.ogg', -"violated" = 'sound/vox_fem/violated.ogg', -"violation" = 'sound/vox_fem/violation.ogg', -"virology" = 'sound/vox_fem/virology.ogg', -"voltage" = 'sound/vox_fem/voltage.ogg', -"vox" = 'sound/vox_fem/vox.ogg', -"vox_login" = 'sound/vox_fem/vox_login.ogg', -"voxtest" = 'sound/vox_fem/voxtest.ogg', -"w" = 'sound/vox_fem/w.ogg', -"walk" = 'sound/vox_fem/walk.ogg', -"wall" = 'sound/vox_fem/wall.ogg', -"wanker" = 'sound/vox_fem/wanker.ogg', -"want" = 'sound/vox_fem/want.ogg', -"wanted" = 'sound/vox_fem/wanted.ogg', -"warm" = 'sound/vox_fem/warm.ogg', -"warn" = 'sound/vox_fem/warn.ogg', -"warning" = 'sound/vox_fem/warning.ogg', -"waste" = 'sound/vox_fem/waste.ogg', -"water" = 'sound/vox_fem/water.ogg', -"we" = 'sound/vox_fem/we.ogg', -"weapon" = 'sound/vox_fem/weapon.ogg', -"welcome" = 'sound/vox_fem/welcome.ogg', -"west" = 'sound/vox_fem/west.ogg', -"whiskey" = 'sound/vox_fem/whiskey.ogg', -"white" = 'sound/vox_fem/white.ogg', -"wilco" = 'sound/vox_fem/wilco.ogg', -"will" = 'sound/vox_fem/will.ogg', -"with" = 'sound/vox_fem/with.ogg', -"without" = 'sound/vox_fem/without.ogg', -"wood" = 'sound/vox_fem/wood.ogg', -"woody" = 'sound/vox_fem/woody.ogg', -"x" = 'sound/vox_fem/x.ogg', -"xeno" = 'sound/vox_fem/xeno.ogg', -"xenobiology" = 'sound/vox_fem/xenobiology.ogg', -"xenomorph" = 'sound/vox_fem/xenomorph.ogg', -"xenomorphs" = 'sound/vox_fem/xenomorphs.ogg', -"y" = 'sound/vox_fem/y.ogg', -"yankee" = 'sound/vox_fem/yankee.ogg', -"yards" = 'sound/vox_fem/yards.ogg', -"year" = 'sound/vox_fem/year.ogg', -"yellow" = 'sound/vox_fem/yellow.ogg', -"yes" = 'sound/vox_fem/yes.ogg', -"you" = 'sound/vox_fem/you.ogg', -"your" = 'sound/vox_fem/your.ogg', -"yourself" = 'sound/vox_fem/yourself.ogg', -"z" = 'sound/vox_fem/z.ogg', -"zero" = 'sound/vox_fem/zero.ogg', -"zone" = 'sound/vox_fem/zone.ogg', -"zulu" = 'sound/vox_fem/zulu.ogg')) -#endif \ No newline at end of file +// List is required to compile the resources into the game when it loads. +// Dynamically loading it has bad results with sounds overtaking each other, even with the wait variable. +#ifdef AI_VOX + +// Regex for collecting a list of ogg files +// (([a-zA-Z,.]+)\.ogg) + +// For vim +// :%s/\(\(.*\)\.ogg\)/"\2" = 'sound\/vox_fem\/\1',/g +GLOBAL_LIST_INIT(vox_sounds, list("abduction" = 'sound/vox_fem/abduction.ogg', +"abortions" = 'sound/vox_fem/abortions.ogg', +"above" = 'sound/vox_fem/above.ogg', +"abstain" = 'sound/vox_fem/abstain.ogg', +"accelerating" = 'sound/vox_fem/accelerating.ogg', +"accelerator" = 'sound/vox_fem/accelerator.ogg', +"accepted" = 'sound/vox_fem/accepted.ogg', +"access" = 'sound/vox_fem/access.ogg', +"acknowledged" = 'sound/vox_fem/acknowledged.ogg', +"acknowledge" = 'sound/vox_fem/acknowledge.ogg', +"acquired" = 'sound/vox_fem/acquired.ogg', +"acquisition" = 'sound/vox_fem/acquisition.ogg', +"across" = 'sound/vox_fem/across.ogg', +"activated" = 'sound/vox_fem/activated.ogg', +"activate" = 'sound/vox_fem/activate.ogg', +"activity" = 'sound/vox_fem/activity.ogg', +"adios" = 'sound/vox_fem/adios.ogg', +"administration" = 'sound/vox_fem/administration.ogg', +"advanced" = 'sound/vox_fem/advanced.ogg', +"advised" = 'sound/vox_fem/advised.ogg', +"after" = 'sound/vox_fem/after.ogg', +"aft" = 'sound/vox_fem/aft.ogg', +"agent" = 'sound/vox_fem/agent.ogg', +"ai" = 'sound/vox_fem/ai.ogg', +"airlock" = 'sound/vox_fem/airlock.ogg', +"air" = 'sound/vox_fem/air.ogg', +"alarm" = 'sound/vox_fem/alarm.ogg', +"alert" = 'sound/vox_fem/alert.ogg', +"alien" = 'sound/vox_fem/alien.ogg', +"aligned" = 'sound/vox_fem/aligned.ogg', +"all" = 'sound/vox_fem/all.ogg', +"alpha" = 'sound/vox_fem/alpha.ogg', +"also" = 'sound/vox_fem/also.ogg', +"amigo" = 'sound/vox_fem/amigo.ogg', +"ammunition" = 'sound/vox_fem/ammunition.ogg', +"am" = 'sound/vox_fem/am.ogg', +"and" = 'sound/vox_fem/and.ogg', +"animal" = 'sound/vox_fem/animal.ogg', +"announcement" = 'sound/vox_fem/announcement.ogg', +"an" = 'sound/vox_fem/an.ogg', +"anomalous" = 'sound/vox_fem/anomalous.ogg', +"answer" = 'sound/vox_fem/answer.ogg', +"antenna" = 'sound/vox_fem/antenna.ogg', +"any" = 'sound/vox_fem/any.ogg', +"a" = 'sound/vox_fem/a.ogg', +"apc" = 'sound/vox_fem/apc.ogg', +"apprehend" = 'sound/vox_fem/apprehend.ogg', +"approach" = 'sound/vox_fem/approach.ogg', +"area" = 'sound/vox_fem/area.ogg', +"are" = 'sound/vox_fem/are.ogg', +"armed" = 'sound/vox_fem/armed.ogg', +"arm" = 'sound/vox_fem/arm.ogg', +"armor" = 'sound/vox_fem/armor.ogg', +"armory" = 'sound/vox_fem/armory.ogg', +"array" = 'sound/vox_fem/array.ogg', +"arrest" = 'sound/vox_fem/arrest.ogg', +"asimov" = 'sound/vox_fem/asimov.ogg', +"asshole" = 'sound/vox_fem/asshole.ogg', +"assholes" = 'sound/vox_fem/assholes.ogg', +"assistance" = 'sound/vox_fem/assistance.ogg', +"assistant" = 'sound/vox_fem/assistant.ogg', +"ass" = 'sound/vox_fem/ass.ogg', +"atmosphere" = 'sound/vox_fem/atmosphere.ogg', +"atmospheric" = 'sound/vox_fem/atmospheric.ogg', +"atmospherics" = 'sound/vox_fem/atmospherics.ogg', +"at" = 'sound/vox_fem/at.ogg', +"atomic" = 'sound/vox_fem/atomic.ogg', +"attention" = 'sound/vox_fem/attention.ogg', +"authentication" = 'sound/vox_fem/authentication.ogg', +"authorized" = 'sound/vox_fem/authorized.ogg', +"authorize" = 'sound/vox_fem/authorize.ogg', +"automatic" = 'sound/vox_fem/automatic.ogg', +"away" = 'sound/vox_fem/away.ogg', +"awful" = 'sound/vox_fem/awful.ogg', +"backman" = 'sound/vox_fem/backman.ogg', +"back" = 'sound/vox_fem/back.ogg', +"bad" = 'sound/vox_fem/bad.ogg', +"bag" = 'sound/vox_fem/bag.ogg', +"bailey" = 'sound/vox_fem/bailey.ogg', +"bar" = 'sound/vox_fem/bar.ogg', +"barracks" = 'sound/vox_fem/barracks.ogg', +"bartender" = 'sound/vox_fem/bartender.ogg', +"base" = 'sound/vox_fem/base.ogg', +"bay" = 'sound/vox_fem/bay.ogg', +"beam" = 'sound/vox_fem/beam.ogg', +"been" = 'sound/vox_fem/been.ogg', +"beep" = 'sound/vox_fem/beep.ogg', +"before" = 'sound/vox_fem/before.ogg', +"below" = 'sound/vox_fem/below.ogg', +"be" = 'sound/vox_fem/be.ogg', +"beside" = 'sound/vox_fem/beside.ogg', +"beware" = 'sound/vox_fem/beware.ogg', +"beyond" = 'sound/vox_fem/beyond.ogg', +"biohazard" = 'sound/vox_fem/biohazard.ogg', +"biological" = 'sound/vox_fem/biological.ogg', +"birdwell" = 'sound/vox_fem/birdwell.ogg', +"bitches" = 'sound/vox_fem/bitches.ogg', +"bitch" = 'sound/vox_fem/bitch.ogg', +"bitcoin" = 'sound/vox_fem/bitcoin.ogg', +"black" = 'sound/vox_fem/black.ogg', +"blast" = 'sound/vox_fem/blast.ogg', +"bleed" = 'sound/vox_fem/bleed.ogg', +"blob" = 'sound/vox_fem/blob.ogg', +"blocked" = 'sound/vox_fem/blocked.ogg', +"blood" = 'sound/vox_fem/blood.ogg', +"bloop" = 'sound/vox_fem/bloop.ogg', +"blue" = 'sound/vox_fem/blue.ogg', +"b" = 'sound/vox_fem/b.ogg', +"bomb" = 'sound/vox_fem/bomb.ogg', +"bone" = 'sound/vox_fem/bone.ogg', +"botanist" = 'sound/vox_fem/botanist.ogg', +"botany" = 'sound/vox_fem/botany.ogg', +"bottom" = 'sound/vox_fem/bottom.ogg', +"bravo" = 'sound/vox_fem/bravo.ogg', +"breached" = 'sound/vox_fem/breached.ogg', +"breach" = 'sound/vox_fem/breach.ogg', +"break" = 'sound/vox_fem/break.ogg', +"bridge" = 'sound/vox_fem/bridge.ogg', +"brig" = 'sound/vox_fem/brig.ogg', +"bust" = 'sound/vox_fem/bust.ogg', +"but" = 'sound/vox_fem/but.ogg', +"button" = 'sound/vox_fem/button.ogg', +"bypass" = 'sound/vox_fem/bypass.ogg', +"cable" = 'sound/vox_fem/cable.ogg', +"called" = 'sound/vox_fem/called.ogg', +"call" = 'sound/vox_fem/call.ogg', +"canal" = 'sound/vox_fem/canal.ogg', +"canister" = 'sound/vox_fem/canister.ogg', +"cap" = 'sound/vox_fem/cap.ogg', +"captain" = 'sound/vox_fem/captain.ogg', +"capture" = 'sound/vox_fem/capture.ogg', +"carbon" = 'sound/vox_fem/carbon.ogg', +"cargo" = 'sound/vox_fem/cargo.ogg', +"cat" = 'sound/vox_fem/cat.ogg', +"cease" = 'sound/vox_fem/cease.ogg', +"ceiling" = 'sound/vox_fem/ceiling.ogg', +"celsius" = 'sound/vox_fem/celsius.ogg', +"centcom" = 'sound/vox_fem/centcom.ogg', +"center" = 'sound/vox_fem/center.ogg', +"centi" = 'sound/vox_fem/centi.ogg', +"central" = 'sound/vox_fem/central.ogg', +"ce" = 'sound/vox_fem/ce.ogg', +"challenge" = 'sound/vox_fem/challenge.ogg', +"chamber" = 'sound/vox_fem/chamber.ogg', +"changed" = 'sound/vox_fem/changed.ogg', +"changeling" = 'sound/vox_fem/changeling.ogg', +"change" = 'sound/vox_fem/change.ogg', +"chapel" = 'sound/vox_fem/chapel.ogg', +"chaplain" = 'sound/vox_fem/chaplain.ogg', +"charlie" = 'sound/vox_fem/charlie.ogg', +"check" = 'sound/vox_fem/check.ogg', +"checkpoint" = 'sound/vox_fem/checkpoint.ogg', +"chemical" = 'sound/vox_fem/chemical.ogg', +"chemist" = 'sound/vox_fem/chemist.ogg', +"chief" = 'sound/vox_fem/chief.ogg', +"christ" = 'sound/vox_fem/christ.ogg', +"chuckle" = 'sound/vox_fem/chuckle.ogg', +"circuit" = 'sound/vox_fem/circuit.ogg', +"cleanup" = 'sound/vox_fem/cleanup.ogg', +"clearance" = 'sound/vox_fem/clearance.ogg', +"clear" = 'sound/vox_fem/clear.ogg', +"clockwork" = 'sound/vox_fem/clockwork.ogg', +"close" = 'sound/vox_fem/close.ogg', +"clowning" = 'sound/vox_fem/clowning.ogg', +"clown" = 'sound/vox_fem/clown.ogg', +"cmo" = 'sound/vox_fem/cmo.ogg', +"coded" = 'sound/vox_fem/coded.ogg', +"code" = 'sound/vox_fem/code.ogg', +"c" = 'sound/vox_fem/c.ogg', +"cold" = 'sound/vox_fem/cold.ogg', +"collider" = 'sound/vox_fem/collider.ogg', +"come" = 'sound/vox_fem/come.ogg', +"command" = 'sound/vox_fem/command.ogg', +"communication" = 'sound/vox_fem/communication.ogg', +"complex" = 'sound/vox_fem/complex.ogg', +"comply" = 'sound/vox_fem/comply.ogg', +"computer" = 'sound/vox_fem/computer.ogg', +"condition" = 'sound/vox_fem/condition.ogg', +"condom" = 'sound/vox_fem/condom.ogg', +"confirmed" = 'sound/vox_fem/confirmed.ogg', +"connor" = 'sound/vox_fem/connor.ogg', +"console2" = 'sound/vox_fem/console2.ogg', +"console" = 'sound/vox_fem/console.ogg', +"construct" = 'sound/vox_fem/construct.ogg', +"containment" = 'sound/vox_fem/containment.ogg', +"contamination" = 'sound/vox_fem/contamination.ogg', +"contraband" = 'sound/vox_fem/contraband.ogg', +"control" = 'sound/vox_fem/control.ogg', +"cook" = 'sound/vox_fem/cook.ogg', +"coolant" = 'sound/vox_fem/coolant.ogg', +"coomer" = 'sound/vox_fem/coomer.ogg', +"core" = 'sound/vox_fem/core.ogg', +"corgi" = 'sound/vox_fem/corgi.ogg', +"corporation" = 'sound/vox_fem/corporation.ogg', +"correct" = 'sound/vox_fem/correct.ogg', +"corridor" = 'sound/vox_fem/corridor.ogg', +"corridors" = 'sound/vox_fem/corridors.ogg', +"coward" = 'sound/vox_fem/coward.ogg', +"cowards" = 'sound/vox_fem/cowards.ogg', +"crate" = 'sound/vox_fem/crate.ogg', +"created" = 'sound/vox_fem/created.ogg', +"creature" = 'sound/vox_fem/creature.ogg', +"crew" = 'sound/vox_fem/crew.ogg', +"critical" = 'sound/vox_fem/critical.ogg', +"cross" = 'sound/vox_fem/cross.ogg', +"cryogenic" = 'sound/vox_fem/cryogenic.ogg', +"crystal" = 'sound/vox_fem/crystal.ogg', +"cultist" = 'sound/vox_fem/cultist.ogg', +"cult" = 'sound/vox_fem/cult.ogg', +"cunt" = 'sound/vox_fem/cunt.ogg', +"curator" = 'sound/vox_fem/curator.ogg', +"cyborg" = 'sound/vox_fem/cyborg.ogg', +"cyborgs" = 'sound/vox_fem/cyborgs.ogg', +"damaged" = 'sound/vox_fem/damaged.ogg', +"damage" = 'sound/vox_fem/damage.ogg', +"danger" = 'sound/vox_fem/danger.ogg', +"dangerous" = 'sound/vox_fem/dangerous.ogg', +"day" = 'sound/vox_fem/day.ogg', +"deactivated" = 'sound/vox_fem/deactivated.ogg', +"dead" = 'sound/vox_fem/dead.ogg', +"death" = 'sound/vox_fem/death.ogg', +"decompression" = 'sound/vox_fem/decompression.ogg', +"decontamination" = 'sound/vox_fem/decontamination.ogg', +"deeoo" = 'sound/vox_fem/deeoo.ogg', +"defense" = 'sound/vox_fem/defense.ogg', +"degrees" = 'sound/vox_fem/degrees.ogg', +"delta" = 'sound/vox_fem/delta.ogg', +"demon" = 'sound/vox_fem/demon.ogg', +"denied" = 'sound/vox_fem/denied.ogg', +"departures" = 'sound/vox_fem/departures.ogg', +"deployed" = 'sound/vox_fem/deployed.ogg', +"deploy" = 'sound/vox_fem/deploy.ogg', +"desire" = 'sound/vox_fem/desire.ogg', +"desist" = 'sound/vox_fem/desist.ogg', +"destroyed" = 'sound/vox_fem/destroyed.ogg', +"destroy" = 'sound/vox_fem/destroy.ogg', +"destruction" = 'sound/vox_fem/destruction.ogg', +"detain" = 'sound/vox_fem/detain.ogg', +"detected" = 'sound/vox_fem/detected.ogg', +"detective" = 'sound/vox_fem/detective.ogg', +"detonation" = 'sound/vox_fem/detonation.ogg', +"device" = 'sound/vox_fem/device.ogg', +"devil" = 'sound/vox_fem/devil.ogg', +"did" = 'sound/vox_fem/did.ogg', +"die" = 'sound/vox_fem/die.ogg', +"dimensional" = 'sound/vox_fem/dimensional.ogg', +"dioxide" = 'sound/vox_fem/dioxide.ogg', +"director" = 'sound/vox_fem/director.ogg', +"dirt" = 'sound/vox_fem/dirt.ogg', +"disabled" = 'sound/vox_fem/disabled.ogg', +"disease" = 'sound/vox_fem/disease.ogg', +"disengaged" = 'sound/vox_fem/disengaged.ogg', +"dish" = 'sound/vox_fem/dish.ogg', +"disk" = 'sound/vox_fem/disk.ogg', +"disposal" = 'sound/vox_fem/disposal.ogg', +"distance" = 'sound/vox_fem/distance.ogg', +"distortion" = 'sound/vox_fem/distortion.ogg', +"doctor" = 'sound/vox_fem/doctor.ogg', +"d" = 'sound/vox_fem/d.ogg', +"dog" = 'sound/vox_fem/dog.ogg', +"do" = 'sound/vox_fem/do.ogg', +"doomsday" = 'sound/vox_fem/doomsday.ogg', +"doop" = 'sound/vox_fem/doop.ogg', +"door" = 'sound/vox_fem/door.ogg', +"dormitory" = 'sound/vox_fem/dormitory.ogg', +"dot" = 'sound/vox_fem/dot.ogg', +"down" = 'sound/vox_fem/down.ogg', +"drone" = 'sound/vox_fem/drone.ogg', +"dual" = 'sound/vox_fem/dual.ogg', +"duct" = 'sound/vox_fem/duct.ogg', +"east" = 'sound/vox_fem/east.ogg', +"echo" = 'sound/vox_fem/echo.ogg', +"ed" = 'sound/vox_fem/ed.ogg', +"effect" = 'sound/vox_fem/effect.ogg', +"egress" = 'sound/vox_fem/egress.ogg', +"eighteen" = 'sound/vox_fem/eighteen.ogg', +"eight" = 'sound/vox_fem/eight.ogg', +"eighty" = 'sound/vox_fem/eighty.ogg', +"electric" = 'sound/vox_fem/electric.ogg', +"electromagnetic" = 'sound/vox_fem/electromagnetic.ogg', +"elevator" = 'sound/vox_fem/elevator.ogg', +"eleven" = 'sound/vox_fem/eleven.ogg', +"eliminate" = 'sound/vox_fem/eliminate.ogg', +"emergency" = 'sound/vox_fem/emergency.ogg', +"enabled" = 'sound/vox_fem/enabled.ogg', +"energy" = 'sound/vox_fem/energy.ogg', +"engaged" = 'sound/vox_fem/engaged.ogg', +"engage" = 'sound/vox_fem/engage.ogg', +"engineering" = 'sound/vox_fem/engineering.ogg', +"engineer" = 'sound/vox_fem/engineer.ogg', +"engine" = 'sound/vox_fem/engine.ogg', +"enter" = 'sound/vox_fem/enter.ogg', +"entity" = 'sound/vox_fem/entity.ogg', +"entry" = 'sound/vox_fem/entry.ogg', +"environment" = 'sound/vox_fem/environment.ogg', +"e" = 'sound/vox_fem/e.ogg', +"epic" = 'sound/vox_fem/epic.ogg', +"equipment" = 'sound/vox_fem/equipment.ogg', +"error" = 'sound/vox_fem/error.ogg', +"escape" = 'sound/vox_fem/escape.ogg', +"evacuate" = 'sound/vox_fem/evacuate.ogg', +"eva" = 'sound/vox_fem/eva.ogg', +"exchange" = 'sound/vox_fem/exchange.ogg', +"exit" = 'sound/vox_fem/exit.ogg', +"expect" = 'sound/vox_fem/expect.ogg', +"experimental" = 'sound/vox_fem/experimental.ogg', +"experiment" = 'sound/vox_fem/experiment.ogg', +"explode" = 'sound/vox_fem/explode.ogg', +"explosion" = 'sound/vox_fem/explosion.ogg', +"explosive" = 'sound/vox_fem/explosive.ogg', +"exposure" = 'sound/vox_fem/exposure.ogg', +"exterminate" = 'sound/vox_fem/exterminate.ogg', +"extinguisher" = 'sound/vox_fem/extinguisher.ogg', +"extinguish" = 'sound/vox_fem/extinguish.ogg', +"extreme" = 'sound/vox_fem/extreme.ogg', +"facility" = 'sound/vox_fem/facility.ogg', +"factory" = 'sound/vox_fem/factory.ogg', +"fahrenheit" = 'sound/vox_fem/fahrenheit.ogg', +"failed" = 'sound/vox_fem/failed.ogg', +"failure" = 'sound/vox_fem/failure.ogg', +"false" = 'sound/vox_fem/false.ogg', +"farthest" = 'sound/vox_fem/farthest.ogg', +"fast" = 'sound/vox_fem/fast.ogg', +"fauna" = 'sound/vox_fem/fauna.ogg', +"feet" = 'sound/vox_fem/feet.ogg', +"field" = 'sound/vox_fem/field.ogg', +"fifteen" = 'sound/vox_fem/fifteen.ogg', +"fifth" = 'sound/vox_fem/fifth.ogg', +"fifty" = 'sound/vox_fem/fifty.ogg', +"final" = 'sound/vox_fem/final.ogg', +"fine" = 'sound/vox_fem/fine.ogg', +"fire" = 'sound/vox_fem/fire.ogg', +"first" = 'sound/vox_fem/first.ogg', +"five" = 'sound/vox_fem/five.ogg', +"fix" = 'sound/vox_fem/fix.ogg', +"flooding" = 'sound/vox_fem/flooding.ogg', +"floor" = 'sound/vox_fem/floor.ogg', +"flyman" = 'sound/vox_fem/flyman.ogg', +"f" = 'sound/vox_fem/f.ogg', +"fool" = 'sound/vox_fem/fool.ogg', +"forbidden" = 'sound/vox_fem/forbidden.ogg', +"force" = 'sound/vox_fem/force.ogg', +"fore" = 'sound/vox_fem/fore.ogg', +"formed" = 'sound/vox_fem/formed.ogg', +"form" = 'sound/vox_fem/form.ogg', +"forms" = 'sound/vox_fem/forms.ogg', +"for" = 'sound/vox_fem/for.ogg', +"found" = 'sound/vox_fem/found.ogg', +"four" = 'sound/vox_fem/four.ogg', +"fourteen" = 'sound/vox_fem/fourteen.ogg', +"fourth" = 'sound/vox_fem/fourth.ogg', +"fourty" = 'sound/vox_fem/fourty.ogg', +"foxtrot" = 'sound/vox_fem/foxtrot.ogg', +"freeman" = 'sound/vox_fem/freeman.ogg', +"free" = 'sound/vox_fem/free.ogg', +"freezer" = 'sound/vox_fem/freezer.ogg', +"freezing" = 'sound/vox_fem/freezing.ogg', +"from" = 'sound/vox_fem/from.ogg', +"front" = 'sound/vox_fem/front.ogg', +"fucking" = 'sound/vox_fem/fucking.ogg', +"fuck" = 'sound/vox_fem/fuck.ogg', +"fucks" = 'sound/vox_fem/fucks.ogg', +"fuel" = 'sound/vox_fem/fuel.ogg', +"gas" = 'sound/vox_fem/gas.ogg', +"generator" = 'sound/vox_fem/generator.ogg', +"geneticist" = 'sound/vox_fem/geneticist.ogg', +"get" = 'sound/vox_fem/get.ogg', +"glory" = 'sound/vox_fem/glory.ogg', +"god" = 'sound/vox_fem/god.ogg', +"g" = 'sound/vox_fem/g.ogg', +"going" = 'sound/vox_fem/going.ogg', +"golem" = 'sound/vox_fem/golem.ogg', +"goodbye" = 'sound/vox_fem/goodbye.ogg', +"good" = 'sound/vox_fem/good.ogg', +"go" = 'sound/vox_fem/go.ogg', +"gordon" = 'sound/vox_fem/gordon.ogg', +"got" = 'sound/vox_fem/got.ogg', +"government" = 'sound/vox_fem/government.ogg', +"granted" = 'sound/vox_fem/granted.ogg', +"gravity" = 'sound/vox_fem/gravity.ogg', +"gray" = 'sound/vox_fem/gray.ogg', +"great" = 'sound/vox_fem/great.ogg', +"green" = 'sound/vox_fem/green.ogg', +"grenade" = 'sound/vox_fem/grenade.ogg', +"guard" = 'sound/vox_fem/guard.ogg', +"gulf" = 'sound/vox_fem/gulf.ogg', +"gun" = 'sound/vox_fem/gun.ogg', +"guthrie" = 'sound/vox_fem/guthrie.ogg', +"hacker" = 'sound/vox_fem/hacker.ogg', +"hackers" = 'sound/vox_fem/hackers.ogg', +"hall" = 'sound/vox_fem/hall.ogg', +"hallway" = 'sound/vox_fem/hallway.ogg', +"handling" = 'sound/vox_fem/handling.ogg', +"hangar" = 'sound/vox_fem/hangar.ogg', +"harmful" = 'sound/vox_fem/harmful.ogg', +"harm" = 'sound/vox_fem/harm.ogg', +"has" = 'sound/vox_fem/has.ogg', +"have" = 'sound/vox_fem/have.ogg', +"hazard" = 'sound/vox_fem/hazard.ogg', +"head" = 'sound/vox_fem/head.ogg', +"health" = 'sound/vox_fem/health.ogg', +"heat" = 'sound/vox_fem/heat.ogg', +"helicopter" = 'sound/vox_fem/helicopter.ogg', +"helium" = 'sound/vox_fem/helium.ogg', +"hello" = 'sound/vox_fem/hello.ogg', +"help" = 'sound/vox_fem/help.ogg', +"he" = 'sound/vox_fem/he.ogg', +"here" = 'sound/vox_fem/here.ogg', +"hide" = 'sound/vox_fem/hide.ogg', +"highest" = 'sound/vox_fem/highest.ogg', +"high" = 'sound/vox_fem/high.ogg', +"hit" = 'sound/vox_fem/hit.ogg', +"h" = 'sound/vox_fem/h.ogg', +"hole" = 'sound/vox_fem/hole.ogg', +"honk" = 'sound/vox_fem/honk.ogg', +"hop" = 'sound/vox_fem/hop.ogg', +"hos" = 'sound/vox_fem/hos.ogg', +"hostile" = 'sound/vox_fem/hostile.ogg', +"hotel" = 'sound/vox_fem/hotel.ogg', +"hot" = 'sound/vox_fem/hot.ogg', +"hour" = 'sound/vox_fem/hour.ogg', +"hours" = 'sound/vox_fem/hours.ogg', +"how" = 'sound/vox_fem/how.ogg', +"human" = 'sound/vox_fem/human.ogg', +"humanoid" = 'sound/vox_fem/humanoid.ogg', +"humans" = 'sound/vox_fem/humans.ogg', +"hundred" = 'sound/vox_fem/hundred.ogg', +"hunger" = 'sound/vox_fem/hunger.ogg', +"hurt" = 'sound/vox_fem/hurt.ogg', +"hydro" = 'sound/vox_fem/hydro.ogg', +"hydroponics" = 'sound/vox_fem/hydroponics.ogg', +"ian" = 'sound/vox_fem/ian.ogg', +"idiot" = 'sound/vox_fem/idiot.ogg', +"if2" = 'sound/vox_fem/if2.ogg', +"if" = 'sound/vox_fem/if.ogg', +"illegal" = 'sound/vox_fem/illegal.ogg', +"immediately" = 'sound/vox_fem/immediately.ogg', +"immediate" = 'sound/vox_fem/immediate.ogg', +"immortal" = 'sound/vox_fem/immortal.ogg', +"impossible" = 'sound/vox_fem/impossible.ogg', +"inches" = 'sound/vox_fem/inches.ogg', +"india" = 'sound/vox_fem/india.ogg', +"ing" = 'sound/vox_fem/ing.ogg', +"in" = 'sound/vox_fem/in.ogg', +"inoperative" = 'sound/vox_fem/inoperative.ogg', +"inside" = 'sound/vox_fem/inside.ogg', +"inspection" = 'sound/vox_fem/inspection.ogg', +"inspector" = 'sound/vox_fem/inspector.ogg', +"interchange" = 'sound/vox_fem/interchange.ogg', +"internals" = 'sound/vox_fem/internals.ogg', +"intruder" = 'sound/vox_fem/intruder.ogg', +"invalid" = 'sound/vox_fem/invalid.ogg', +"invasion" = 'sound/vox_fem/invasion.ogg', +"i" = 'sound/vox_fem/i.ogg', +"is" = 'sound/vox_fem/is.ogg', +"it" = 'sound/vox_fem/it.ogg', +"janitor" = 'sound/vox_fem/janitor.ogg', +"jesus" = 'sound/vox_fem/jesus.ogg', +"j" = 'sound/vox_fem/j.ogg', +"johnson" = 'sound/vox_fem/johnson.ogg', +"juliet" = 'sound/vox_fem/juliet.ogg', +"key" = 'sound/vox_fem/key.ogg', +"kidnapped" = 'sound/vox_fem/kidnapped.ogg', +"kidnapping" = 'sound/vox_fem/kidnapping.ogg', +"killed" = 'sound/vox_fem/killed.ogg', +"kill" = 'sound/vox_fem/kill.ogg', +"kilo" = 'sound/vox_fem/kilo.ogg', +"kitchen" = 'sound/vox_fem/kitchen.ogg', +"kit" = 'sound/vox_fem/kit.ogg', +"k" = 'sound/vox_fem/k.ogg', +"lab" = 'sound/vox_fem/lab.ogg', +"lambda" = 'sound/vox_fem/lambda.ogg', +"laser" = 'sound/vox_fem/laser.ogg', +"last" = 'sound/vox_fem/last.ogg', +"launch" = 'sound/vox_fem/launch.ogg', +"lavaland" = 'sound/vox_fem/lavaland.ogg', +"law" = 'sound/vox_fem/law.ogg', +"laws" = 'sound/vox_fem/laws.ogg', +"lawyer" = 'sound/vox_fem/lawyer.ogg', +"leak" = 'sound/vox_fem/leak.ogg', +"leave" = 'sound/vox_fem/leave.ogg', +"left" = 'sound/vox_fem/left.ogg', +"legal" = 'sound/vox_fem/legal.ogg', +"level" = 'sound/vox_fem/level.ogg', +"lever" = 'sound/vox_fem/lever.ogg', +"library" = 'sound/vox_fem/library.ogg', +"lie" = 'sound/vox_fem/lie.ogg', +"lieutenant" = 'sound/vox_fem/lieutenant.ogg', +"lifeform" = 'sound/vox_fem/lifeform.ogg', +"life" = 'sound/vox_fem/life.ogg', +"light" = 'sound/vox_fem/light.ogg', +"lima" = 'sound/vox_fem/lima.ogg', +"liquid" = 'sound/vox_fem/liquid.ogg', +"live2" = 'sound/vox_fem/live2.ogg', +"live" = 'sound/vox_fem/live.ogg', +"lizard" = 'sound/vox_fem/lizard.ogg', +"loading" = 'sound/vox_fem/loading.ogg', +"located" = 'sound/vox_fem/located.ogg', +"locate" = 'sound/vox_fem/locate.ogg', +"location" = 'sound/vox_fem/location.ogg', +"locked" = 'sound/vox_fem/locked.ogg', +"locker" = 'sound/vox_fem/locker.ogg', +"lock" = 'sound/vox_fem/lock.ogg', +"lockout" = 'sound/vox_fem/lockout.ogg', +"l" = 'sound/vox_fem/l.ogg', +"long" = 'sound/vox_fem/long.ogg', +"look" = 'sound/vox_fem/look.ogg', +"loop" = 'sound/vox_fem/loop.ogg', +"loose" = 'sound/vox_fem/loose.ogg', +"lot" = 'sound/vox_fem/lot.ogg', +"lower" = 'sound/vox_fem/lower.ogg', +"lowest" = 'sound/vox_fem/lowest.ogg', +"lusty" = 'sound/vox_fem/lusty.ogg', +"machine" = 'sound/vox_fem/machine.ogg', +"magic" = 'sound/vox_fem/magic.ogg', +"magnetic" = 'sound/vox_fem/magnetic.ogg', +"main" = 'sound/vox_fem/main.ogg', +"maintenance" = 'sound/vox_fem/maintenance.ogg', +"malfunction" = 'sound/vox_fem/malfunction.ogg', +"man" = 'sound/vox_fem/man.ogg', +"many" = 'sound/vox_fem/many.ogg', +"mass" = 'sound/vox_fem/mass.ogg', +"materials" = 'sound/vox_fem/materials.ogg', +"maximum" = 'sound/vox_fem/maximum.ogg', +"may" = 'sound/vox_fem/may.ogg', +"meat" = 'sound/vox_fem/meat.ogg', +"medbay" = 'sound/vox_fem/medbay.ogg', +"medical" = 'sound/vox_fem/medical.ogg', +"megafauna" = 'sound/vox_fem/megafauna.ogg', +"men" = 'sound/vox_fem/men.ogg', +"me" = 'sound/vox_fem/me.ogg', +"mercy" = 'sound/vox_fem/mercy.ogg', +"mesa" = 'sound/vox_fem/mesa.ogg', +"message" = 'sound/vox_fem/message.ogg', +"meter" = 'sound/vox_fem/meter.ogg', +"micro" = 'sound/vox_fem/micro.ogg', +"middle" = 'sound/vox_fem/middle.ogg', +"mike" = 'sound/vox_fem/mike.ogg', +"miles" = 'sound/vox_fem/miles.ogg', +"military" = 'sound/vox_fem/military.ogg', +"milli" = 'sound/vox_fem/milli.ogg', +"million" = 'sound/vox_fem/million.ogg', +"mime" = 'sound/vox_fem/mime.ogg', +"minefield" = 'sound/vox_fem/minefield.ogg', +"miner" = 'sound/vox_fem/miner.ogg', +"minimum" = 'sound/vox_fem/minimum.ogg', +"minutes" = 'sound/vox_fem/minutes.ogg', +"mister" = 'sound/vox_fem/mister.ogg', +"mode" = 'sound/vox_fem/mode.ogg', +"modification" = 'sound/vox_fem/modification.ogg', +"m" = 'sound/vox_fem/m.ogg', +"money" = 'sound/vox_fem/money.ogg', +"monkey" = 'sound/vox_fem/monkey.ogg', +"moth" = 'sound/vox_fem/moth.ogg', +"motor" = 'sound/vox_fem/motor.ogg', +"motorpool" = 'sound/vox_fem/motorpool.ogg', +"move" = 'sound/vox_fem/move.ogg', +"multitude" = 'sound/vox_fem/multitude.ogg', +"murder" = 'sound/vox_fem/murder.ogg', +"must" = 'sound/vox_fem/must.ogg', +"my" = 'sound/vox_fem/my.ogg', +"mythic" = 'sound/vox_fem/mythic.ogg', +"nanotrasen" = 'sound/vox_fem/nanotrasen.ogg', +"nearest" = 'sound/vox_fem/nearest.ogg', +"need" = 'sound/vox_fem/need.ogg', +"nice" = 'sound/vox_fem/nice.ogg', +"nine" = 'sound/vox_fem/nine.ogg', +"nineteen" = 'sound/vox_fem/nineteen.ogg', +"ninety" = 'sound/vox_fem/ninety.ogg', +"nitrogen" = 'sound/vox_fem/nitrogen.ogg', +"n" = 'sound/vox_fem/n.ogg', +"nominal" = 'sound/vox_fem/nominal.ogg', +"no" = 'sound/vox_fem/no.ogg', +"north" = 'sound/vox_fem/north.ogg', +"not" = 'sound/vox_fem/not.ogg', +"november" = 'sound/vox_fem/november.ogg', +"now" = 'sound/vox_fem/now.ogg', +"nuclear" = 'sound/vox_fem/nuclear.ogg', +"nuke" = 'sound/vox_fem/nuke.ogg', +"number" = 'sound/vox_fem/number.ogg', +"objective" = 'sound/vox_fem/objective.ogg', +"observation" = 'sound/vox_fem/observation.ogg', +"obtain" = 'sound/vox_fem/obtain.ogg', +"office" = 'sound/vox_fem/office.ogg', +"officer" = 'sound/vox_fem/officer.ogg', +"off" = 'sound/vox_fem/off.ogg', +"of" = 'sound/vox_fem/of.ogg', +"," = 'sound/vox_fem/,.ogg', +"." = 'sound/vox_fem/..ogg', +"oh" = 'sound/vox_fem/oh.ogg', +"ok" = 'sound/vox_fem/ok.ogg', +"one" = 'sound/vox_fem/one.ogg', +"on" = 'sound/vox_fem/on.ogg', +"oof" = 'sound/vox_fem/oof.ogg', +"o" = 'sound/vox_fem/o.ogg', +"open" = 'sound/vox_fem/open.ogg', +"operating" = 'sound/vox_fem/operating.ogg', +"operations" = 'sound/vox_fem/operations.ogg', +"operative" = 'sound/vox_fem/operative.ogg', +"option" = 'sound/vox_fem/option.ogg', +"order" = 'sound/vox_fem/order.ogg', +"organic" = 'sound/vox_fem/organic.ogg', +"or" = 'sound/vox_fem/or.ogg', +"oscar" = 'sound/vox_fem/oscar.ogg', +"out" = 'sound/vox_fem/out.ogg', +"outside" = 'sound/vox_fem/outside.ogg', +"overload" = 'sound/vox_fem/overload.ogg', +"over" = 'sound/vox_fem/over.ogg', +"override" = 'sound/vox_fem/override.ogg', +"oxygen" = 'sound/vox_fem/oxygen.ogg', +"pacification" = 'sound/vox_fem/pacification.ogg', +"pacify" = 'sound/vox_fem/pacify.ogg', +"pain" = 'sound/vox_fem/pain.ogg', +"pal" = 'sound/vox_fem/pal.ogg', +"panel" = 'sound/vox_fem/panel.ogg', +"panting" = 'sound/vox_fem/panting.ogg', +"pathetic" = 'sound/vox_fem/pathetic.ogg', +"percent" = 'sound/vox_fem/percent.ogg', +"perfect" = 'sound/vox_fem/perfect.ogg', +"perimeter" = 'sound/vox_fem/perimeter.ogg', +"permitted" = 'sound/vox_fem/permitted.ogg', +"personal" = 'sound/vox_fem/personal.ogg', +"personnel" = 'sound/vox_fem/personnel.ogg', +"pipe" = 'sound/vox_fem/pipe.ogg', +"piping" = 'sound/vox_fem/piping.ogg', +"piss" = 'sound/vox_fem/piss.ogg', +"plant" = 'sound/vox_fem/plant.ogg', +"plasmaman" = 'sound/vox_fem/plasmaman.ogg', +"plasma" = 'sound/vox_fem/plasma.ogg', +"platform" = 'sound/vox_fem/platform.ogg', +"plausible" = 'sound/vox_fem/plausible.ogg', +"please" = 'sound/vox_fem/please.ogg', +"p" = 'sound/vox_fem/p.ogg', +"point" = 'sound/vox_fem/point.ogg', +"portal" = 'sound/vox_fem/portal.ogg', +"port" = 'sound/vox_fem/port.ogg', +"possible" = 'sound/vox_fem/possible.ogg', +"power" = 'sound/vox_fem/power.ogg', +"presence" = 'sound/vox_fem/presence.ogg', +"press" = 'sound/vox_fem/press.ogg', +"pressure" = 'sound/vox_fem/pressure.ogg', +"primary" = 'sound/vox_fem/primary.ogg', +"prisoner" = 'sound/vox_fem/prisoner.ogg', +"prison" = 'sound/vox_fem/prison.ogg', +"proceed" = 'sound/vox_fem/proceed.ogg', +"processing" = 'sound/vox_fem/processing.ogg', +"progress" = 'sound/vox_fem/progress.ogg', +"proper" = 'sound/vox_fem/proper.ogg', +"propulsion" = 'sound/vox_fem/propulsion.ogg', +"prosecute" = 'sound/vox_fem/prosecute.ogg', +"protective" = 'sound/vox_fem/protective.ogg', +"push" = 'sound/vox_fem/push.ogg', +"put" = 'sound/vox_fem/put.ogg', +"q" = 'sound/vox_fem/q.ogg', +"quantum" = 'sound/vox_fem/quantum.ogg', +"quarantine" = 'sound/vox_fem/quarantine.ogg', +"quartermaster" = 'sound/vox_fem/quartermaster.ogg', +"quebec" = 'sound/vox_fem/quebec.ogg', +"queen" = 'sound/vox_fem/queen.ogg', +"questionable" = 'sound/vox_fem/questionable.ogg', +"questioning" = 'sound/vox_fem/questioning.ogg', +"question" = 'sound/vox_fem/question.ogg', +"quick" = 'sound/vox_fem/quick.ogg', +"quit" = 'sound/vox_fem/quit.ogg', +"radiation" = 'sound/vox_fem/radiation.ogg', +"radioactive" = 'sound/vox_fem/radioactive.ogg', +"rads" = 'sound/vox_fem/rads.ogg', +"raider" = 'sound/vox_fem/raider.ogg', +"raiders" = 'sound/vox_fem/raiders.ogg', +"rapid" = 'sound/vox_fem/rapid.ogg', +"reached" = 'sound/vox_fem/reached.ogg', +"reach" = 'sound/vox_fem/reach.ogg', +"reactor" = 'sound/vox_fem/reactor.ogg', +"red" = 'sound/vox_fem/red.ogg', +"relay" = 'sound/vox_fem/relay.ogg', +"released" = 'sound/vox_fem/released.ogg', +"remaining" = 'sound/vox_fem/remaining.ogg', +"removal" = 'sound/vox_fem/removal.ogg', +"renegade" = 'sound/vox_fem/renegade.ogg', +"repair" = 'sound/vox_fem/repair.ogg', +"report" = 'sound/vox_fem/report.ogg', +"reports" = 'sound/vox_fem/reports.ogg', +"required" = 'sound/vox_fem/required.ogg', +"require" = 'sound/vox_fem/require.ogg', +"research" = 'sound/vox_fem/research.ogg', +"resevoir" = 'sound/vox_fem/resevoir.ogg', +"resistance" = 'sound/vox_fem/resistance.ogg', +"rest" = 'sound/vox_fem/rest.ogg', +"restoration" = 'sound/vox_fem/restoration.ogg', +"revolutionary" = 'sound/vox_fem/revolutionary.ogg', +"revolution" = 'sound/vox_fem/revolution.ogg', +"right" = 'sound/vox_fem/right.ogg', +"riot" = 'sound/vox_fem/riot.ogg', +"roboticist" = 'sound/vox_fem/roboticist.ogg', +"rocket" = 'sound/vox_fem/rocket.ogg', +"roger" = 'sound/vox_fem/roger.ogg', +"r" = 'sound/vox_fem/r.ogg', +"rogue" = 'sound/vox_fem/rogue.ogg', +"romeo" = 'sound/vox_fem/romeo.ogg', +"room" = 'sound/vox_fem/room.ogg', +"round" = 'sound/vox_fem/round.ogg', +"rune" = 'sound/vox_fem/rune.ogg', +"run" = 'sound/vox_fem/run.ogg', +"runtime" = 'sound/vox_fem/runtime.ogg', +"sabotage" = 'sound/vox_fem/sabotage.ogg', +"safe" = 'sound/vox_fem/safe.ogg', +"safety" = 'sound/vox_fem/safety.ogg', +"sairhorn" = 'sound/vox_fem/sairhorn.ogg', +"sarah" = 'sound/vox_fem/sarah.ogg', +"sargeant" = 'sound/vox_fem/sargeant.ogg', +"satellite" = 'sound/vox_fem/satellite.ogg', +"save" = 'sound/vox_fem/save.ogg', +"scensor" = 'sound/vox_fem/scensor.ogg', +"science" = 'sound/vox_fem/science.ogg', +"scientist" = 'sound/vox_fem/scientist.ogg', +"scream" = 'sound/vox_fem/scream.ogg', +"screen" = 'sound/vox_fem/screen.ogg', +"search" = 'sound/vox_fem/search.ogg', +"secondary" = 'sound/vox_fem/secondary.ogg', +"second" = 'sound/vox_fem/second.ogg', +"seconds" = 'sound/vox_fem/seconds.ogg', +"section" = 'sound/vox_fem/section.ogg', +"sector" = 'sound/vox_fem/sector.ogg', +"secured" = 'sound/vox_fem/secured.ogg', +"secure" = 'sound/vox_fem/secure.ogg', +"security" = 'sound/vox_fem/security.ogg', +"selected" = 'sound/vox_fem/selected.ogg', +"select" = 'sound/vox_fem/select.ogg', +"self" = 'sound/vox_fem/self.ogg', +"sensors" = 'sound/vox_fem/sensors.ogg', +"server" = 'sound/vox_fem/server.ogg', +"service" = 'sound/vox_fem/service.ogg', +"seven" = 'sound/vox_fem/seven.ogg', +"seventeen" = 'sound/vox_fem/seventeen.ogg', +"seventy" = 'sound/vox_fem/seventy.ogg', +"severe" = 'sound/vox_fem/severe.ogg', +"sewage" = 'sound/vox_fem/sewage.ogg', +"sewer" = 'sound/vox_fem/sewer.ogg', +"shaft" = 'sound/vox_fem/shaft.ogg', +"she" = 'sound/vox_fem/she.ogg', +"shield" = 'sound/vox_fem/shield.ogg', +"shipment" = 'sound/vox_fem/shipment.ogg', +"shirt" = 'sound/vox_fem/shirt.ogg', +"shitlord" = 'sound/vox_fem/shitlord.ogg', +"shit" = 'sound/vox_fem/shit.ogg', +"shits" = 'sound/vox_fem/shits.ogg', +"shitting" = 'sound/vox_fem/shitting.ogg', +"shock" = 'sound/vox_fem/shock.ogg', +"shonk" = 'sound/vox_fem/shonk.ogg', +"shoot" = 'sound/vox_fem/shoot.ogg', +"shower" = 'sound/vox_fem/shower.ogg', +"shut" = 'sound/vox_fem/shut.ogg', +"shuttle" = 'sound/vox_fem/shuttle.ogg', +"sick" = 'sound/vox_fem/sick.ogg', +"side" = 'sound/vox_fem/side.ogg', +"sierra" = 'sound/vox_fem/sierra.ogg', +"sight" = 'sound/vox_fem/sight.ogg', +"silicon" = 'sound/vox_fem/silicon.ogg', +"silo" = 'sound/vox_fem/silo.ogg', +"singularity" = 'sound/vox_fem/singularity.ogg', +"six" = 'sound/vox_fem/six.ogg', +"sixteen" = 'sound/vox_fem/sixteen.ogg', +"sixty" = 'sound/vox_fem/sixty.ogg', +"skeleton" = 'sound/vox_fem/skeleton.ogg', +"slaughter" = 'sound/vox_fem/slaughter.ogg', +"slime" = 'sound/vox_fem/slime.ogg', +"slip" = 'sound/vox_fem/slip.ogg', +"slippery" = 'sound/vox_fem/slippery.ogg', +"slow" = 'sound/vox_fem/slow.ogg', +"sm" = 'sound/vox_fem/sm.ogg', +"s" = 'sound/vox_fem/s.ogg', +"solar" = 'sound/vox_fem/solar.ogg', +"solars" = 'sound/vox_fem/solars.ogg', +"soldier" = 'sound/vox_fem/soldier.ogg', +"some" = 'sound/vox_fem/some.ogg', +"someone" = 'sound/vox_fem/someone.ogg', +"something" = 'sound/vox_fem/something.ogg', +"son" = 'sound/vox_fem/son.ogg', +"sorry" = 'sound/vox_fem/sorry.ogg', +"south" = 'sound/vox_fem/south.ogg', +"space" = 'sound/vox_fem/space.ogg', +"squad" = 'sound/vox_fem/squad.ogg', +"square" = 'sound/vox_fem/square.ogg', +"ss13" = 'sound/vox_fem/ss13.ogg', +"stairway" = 'sound/vox_fem/stairway.ogg', +"starboard" = 'sound/vox_fem/starboard.ogg', +"station" = 'sound/vox_fem/station.ogg', +"status" = 'sound/vox_fem/status.ogg', +"stay" = 'sound/vox_fem/stay.ogg', +"sterile" = 'sound/vox_fem/sterile.ogg', +"sterilization" = 'sound/vox_fem/sterilization.ogg', +"stop" = 'sound/vox_fem/stop.ogg', +"storage" = 'sound/vox_fem/storage.ogg', +"strong" = 'sound/vox_fem/strong.ogg', +"stuck" = 'sound/vox_fem/stuck.ogg', +"sub" = 'sound/vox_fem/sub.ogg', +"subsurface" = 'sound/vox_fem/subsurface.ogg', +"sudden" = 'sound/vox_fem/sudden.ogg', +"suffer" = 'sound/vox_fem/suffer.ogg', +"suit" = 'sound/vox_fem/suit.ogg', +"superconducting" = 'sound/vox_fem/superconducting.ogg', +"supercooled" = 'sound/vox_fem/supercooled.ogg', +"supermatter" = 'sound/vox_fem/supermatter.ogg', +"supply" = 'sound/vox_fem/supply.ogg', +"surface" = 'sound/vox_fem/surface.ogg', +"surrender" = 'sound/vox_fem/surrender.ogg', +"surrounded" = 'sound/vox_fem/surrounded.ogg', +"surround" = 'sound/vox_fem/surround.ogg', +"sweating" = 'sound/vox_fem/sweating.ogg', +"swhitenoise" = 'sound/vox_fem/swhitenoise.ogg', +"switch" = 'sound/vox_fem/switch.ogg', +"syndicate" = 'sound/vox_fem/syndicate.ogg', +"system" = 'sound/vox_fem/system.ogg', +"systems" = 'sound/vox_fem/systems.ogg', +"table" = 'sound/vox_fem/table.ogg', +"tactical" = 'sound/vox_fem/tactical.ogg', +"take" = 'sound/vox_fem/take.ogg', +"talk" = 'sound/vox_fem/talk.ogg', +"tampered" = 'sound/vox_fem/tampered.ogg', +"tango" = 'sound/vox_fem/tango.ogg', +"tank" = 'sound/vox_fem/tank.ogg', +"target" = 'sound/vox_fem/target.ogg', +"team" = 'sound/vox_fem/team.ogg', +"technician" = 'sound/vox_fem/technician.ogg', +"technology" = 'sound/vox_fem/technology.ogg', +"tech" = 'sound/vox_fem/tech.ogg', +"temperature" = 'sound/vox_fem/temperature.ogg', +"temporal" = 'sound/vox_fem/temporal.ogg', +"ten" = 'sound/vox_fem/ten.ogg', +"terminal" = 'sound/vox_fem/terminal.ogg', +"terminated" = 'sound/vox_fem/terminated.ogg', +"termination" = 'sound/vox_fem/termination.ogg', +"test" = 'sound/vox_fem/test.ogg', +"text" = 'sound/vox_fem/text.ogg', +"that" = 'sound/vox_fem/that.ogg', +"theater" = 'sound/vox_fem/theater.ogg', +"them" = 'sound/vox_fem/them.ogg', +"then" = 'sound/vox_fem/then.ogg', +"the" = 'sound/vox_fem/the.ogg', +"there" = 'sound/vox_fem/there.ogg', +"they" = 'sound/vox_fem/they.ogg', +"third" = 'sound/vox_fem/third.ogg', +"thirteen" = 'sound/vox_fem/thirteen.ogg', +"thirty" = 'sound/vox_fem/thirty.ogg', +"this" = 'sound/vox_fem/this.ogg', +"those" = 'sound/vox_fem/those.ogg', +"thousand" = 'sound/vox_fem/thousand.ogg', +"threat" = 'sound/vox_fem/threat.ogg', +"three" = 'sound/vox_fem/three.ogg', +"through" = 'sound/vox_fem/through.ogg', +"tide" = 'sound/vox_fem/tide.ogg', +"time" = 'sound/vox_fem/time.ogg', +"t" = 'sound/vox_fem/t.ogg', +"to" = 'sound/vox_fem/to.ogg', +"top" = 'sound/vox_fem/top.ogg', +"topside" = 'sound/vox_fem/topside.ogg', +"touch" = 'sound/vox_fem/touch.ogg', +"towards" = 'sound/vox_fem/towards.ogg', +"toxins" = 'sound/vox_fem/toxins.ogg', +"track" = 'sound/vox_fem/track.ogg', +"train" = 'sound/vox_fem/train.ogg', +"traitor" = 'sound/vox_fem/traitor.ogg', +"transportation" = 'sound/vox_fem/transportation.ogg', +"truck" = 'sound/vox_fem/truck.ogg', +"true" = 'sound/vox_fem/true.ogg', +"tunnel" = 'sound/vox_fem/tunnel.ogg', +"turn" = 'sound/vox_fem/turn.ogg', +"turret" = 'sound/vox_fem/turret.ogg', +"twelve" = 'sound/vox_fem/twelve.ogg', +"twenty" = 'sound/vox_fem/twenty.ogg', +"two" = 'sound/vox_fem/two.ogg', +"ughh" = 'sound/vox_fem/ughh.ogg', +"ugh" = 'sound/vox_fem/ugh.ogg', +"unable" = 'sound/vox_fem/unable.ogg', +"unauthorized" = 'sound/vox_fem/unauthorized.ogg', +"under" = 'sound/vox_fem/under.ogg', +"uniform" = 'sound/vox_fem/uniform.ogg', +"unknown" = 'sound/vox_fem/unknown.ogg', +"unlocked" = 'sound/vox_fem/unlocked.ogg', +"unsafe" = 'sound/vox_fem/unsafe.ogg', +"until" = 'sound/vox_fem/until.ogg', +"u" = 'sound/vox_fem/u.ogg', +"updated" = 'sound/vox_fem/updated.ogg', +"update" = 'sound/vox_fem/update.ogg', +"updating" = 'sound/vox_fem/updating.ogg', +"upload" = 'sound/vox_fem/upload.ogg', +"up" = 'sound/vox_fem/up.ogg', +"upper" = 'sound/vox_fem/upper.ogg', +"uranium" = 'sound/vox_fem/uranium.ogg', +"usa" = 'sound/vox_fem/usa.ogg', +"used" = 'sound/vox_fem/used.ogg', +"use" = 'sound/vox_fem/use.ogg', +"user" = 'sound/vox_fem/user.ogg', +"us" = 'sound/vox_fem/us.ogg', +"vacate" = 'sound/vox_fem/vacate.ogg', +"vacuum" = 'sound/vox_fem/vacuum.ogg', +"valid" = 'sound/vox_fem/valid.ogg', +"vapor" = 'sound/vox_fem/vapor.ogg', +"vendor" = 'sound/vox_fem/vendor.ogg', +"ventilation" = 'sound/vox_fem/ventilation.ogg', +"vent" = 'sound/vox_fem/vent.ogg', +"very" = 'sound/vox_fem/very.ogg', +"victor" = 'sound/vox_fem/victor.ogg', +"violated" = 'sound/vox_fem/violated.ogg', +"violation" = 'sound/vox_fem/violation.ogg', +"virologist" = 'sound/vox_fem/virologist.ogg', +"virology" = 'sound/vox_fem/virology.ogg', +"virus" = 'sound/vox_fem/virus.ogg', +"vitals" = 'sound/vox_fem/vitals.ogg', +"v" = 'sound/vox_fem/v.ogg', +"voltage" = 'sound/vox_fem/voltage.ogg', +"vox_login" = 'sound/vox_fem/vox_login.ogg', +"vox" = 'sound/vox_fem/vox.ogg', +"voxtest" = 'sound/vox_fem/voxtest.ogg', +"walk" = 'sound/vox_fem/walk.ogg', +"wall" = 'sound/vox_fem/wall.ogg', +"wanker" = 'sound/vox_fem/wanker.ogg', +"wanted" = 'sound/vox_fem/wanted.ogg', +"want" = 'sound/vox_fem/want.ogg', +"warden" = 'sound/vox_fem/warden.ogg', +"warm" = 'sound/vox_fem/warm.ogg', +"warning" = 'sound/vox_fem/warning.ogg', +"warn" = 'sound/vox_fem/warn.ogg', +"waste" = 'sound/vox_fem/waste.ogg', +"water" = 'sound/vox_fem/water.ogg', +"weak" = 'sound/vox_fem/weak.ogg', +"weapon" = 'sound/vox_fem/weapon.ogg', +"welcome" = 'sound/vox_fem/welcome.ogg', +"we" = 'sound/vox_fem/we.ogg', +"west" = 'sound/vox_fem/west.ogg', +"wew" = 'sound/vox_fem/wew.ogg', +"what" = 'sound/vox_fem/what.ogg', +"when" = 'sound/vox_fem/when.ogg', +"where" = 'sound/vox_fem/where.ogg', +"whiskey" = 'sound/vox_fem/whiskey.ogg', +"white" = 'sound/vox_fem/white.ogg', +"why" = 'sound/vox_fem/why.ogg', +"wilco" = 'sound/vox_fem/wilco.ogg', +"will" = 'sound/vox_fem/will.ogg', +"wing" = 'sound/vox_fem/wing.ogg', +"wire" = 'sound/vox_fem/wire.ogg', +"with" = 'sound/vox_fem/with.ogg', +"without" = 'sound/vox_fem/without.ogg', +"wizard" = 'sound/vox_fem/wizard.ogg', +"w" = 'sound/vox_fem/w.ogg', +"wood" = 'sound/vox_fem/wood.ogg', +"woody" = 'sound/vox_fem/woody.ogg', +"woop" = 'sound/vox_fem/woop.ogg', +"wow" = 'sound/vox_fem/wow.ogg', +"xenobiology" = 'sound/vox_fem/xenobiology.ogg', +"xenomorph" = 'sound/vox_fem/xenomorph.ogg', +"xenomorphs" = 'sound/vox_fem/xenomorphs.ogg', +"xeno" = 'sound/vox_fem/xeno.ogg', +"x" = 'sound/vox_fem/x.ogg', +"yankee" = 'sound/vox_fem/yankee.ogg', +"yards" = 'sound/vox_fem/yards.ogg', +"year" = 'sound/vox_fem/year.ogg', +"yellow" = 'sound/vox_fem/yellow.ogg', +"yes" = 'sound/vox_fem/yes.ogg', +"y" = 'sound/vox_fem/y.ogg', +"you" = 'sound/vox_fem/you.ogg', +"your" = 'sound/vox_fem/your.ogg', +"yourself" = 'sound/vox_fem/yourself.ogg', +"zero" = 'sound/vox_fem/zero.ogg', +"z" = 'sound/vox_fem/z.ogg', +"zombie" = 'sound/vox_fem/zombie.ogg', +"zone" = 'sound/vox_fem/zone.ogg', +"zulu" = 'sound/vox_fem/zulu.ogg')) +#endif diff --git a/code/modules/mob/living/simple_animal/bot/mulebot.dm b/code/modules/mob/living/simple_animal/bot/mulebot.dm index 37cf224edd..ad59ce7e34 100644 --- a/code/modules/mob/living/simple_animal/bot/mulebot.dm +++ b/code/modules/mob/living/simple_animal/bot/mulebot.dm @@ -641,12 +641,12 @@ playsound(loc, 'sound/effects/splat.ogg', 50, 1) var/damage = rand(5,15) - H.apply_damage(2*damage, BRUTE, "head", run_armor_check("head", "melee")) - H.apply_damage(2*damage, BRUTE, "chest", run_armor_check("chest", "melee")) - H.apply_damage(0.5*damage, BRUTE, "l_leg", run_armor_check("l_leg", "melee")) - H.apply_damage(0.5*damage, BRUTE, "r_leg", run_armor_check("r_leg", "melee")) - H.apply_damage(0.5*damage, BRUTE, "l_arm", run_armor_check("l_arm", "melee")) - H.apply_damage(0.5*damage, BRUTE, "r_arm", run_armor_check("r_arm", "melee")) + H.apply_damage(2*damage, BRUTE, BODY_ZONE_HEAD, run_armor_check(BODY_ZONE_HEAD, "melee")) + H.apply_damage(2*damage, BRUTE, BODY_ZONE_CHEST, run_armor_check(BODY_ZONE_CHEST, "melee")) + H.apply_damage(0.5*damage, BRUTE, BODY_ZONE_L_LEG, run_armor_check(BODY_ZONE_L_LEG, "melee")) + H.apply_damage(0.5*damage, BRUTE, BODY_ZONE_R_LEG, run_armor_check(BODY_ZONE_R_LEG, "melee")) + H.apply_damage(0.5*damage, BRUTE, BODY_ZONE_L_ARM, run_armor_check(BODY_ZONE_L_ARM, "melee")) + H.apply_damage(0.5*damage, BRUTE, BODY_ZONE_R_ARM, run_armor_check(BODY_ZONE_R_ARM, "melee")) var/turf/T = get_turf(src) T.add_mob_blood(H) diff --git a/code/modules/mob/living/simple_animal/friendly/dog.dm b/code/modules/mob/living/simple_animal/friendly/dog.dm index ae1681cbef..5c68ca8117 100644 --- a/code/modules/mob/living/simple_animal/friendly/dog.dm +++ b/code/modules/mob/living/simple_animal/friendly/dog.dm @@ -85,7 +85,7 @@ var/armorval = 0 if(def_zone) - if(def_zone == "head") + if(def_zone == BODY_ZONE_HEAD) if(inventory_head) armorval = inventory_head.armor.getRating(type) else @@ -139,7 +139,7 @@ return var/remove_from = href_list["remove_inv"] switch(remove_from) - if("head") + if(BODY_ZONE_HEAD) if(inventory_head) inventory_head.forceMove(drop_location()) inventory_head = null @@ -168,7 +168,7 @@ var/add_to = href_list["add_inv"] switch(add_to) - if("head") + if(BODY_ZONE_HEAD) place_on_head(usr.get_active_held_item(),usr) if("back") @@ -231,9 +231,7 @@ return if(!item_to_add) user.visible_message("[user] pets [src].","You rest your hand on [src]'s head for a moment.") - GET_COMPONENT_FROM(mood, /datum/component/mood, user) - if(mood) - mood.add_event("pet_corgi", /datum/mood_event/pet_corgi) + user.SendSignal(COMSIG_ADD_MOOD_EVENT, "pet_corgi", /datum/mood_event/pet_corgi) return if(user && !user.temporarilyRemoveItemFromInventory(item_to_add)) @@ -616,9 +614,7 @@ if(M && stat != DEAD) // Added check to see if this mob (the dog) is dead to fix issue 2454 new /obj/effect/temp_visual/heart(loc) emote("me", 1, "yaps happily!") - GET_COMPONENT_FROM(mood, /datum/component/mood, M) - if(mood) - mood.add_event("pet_corgi", /datum/mood_event/pet_corgi) + M.SendSignal(COMSIG_ADD_MOOD_EVENT, "pet_corgi", /datum/mood_event/pet_corgi) else if(M && stat != DEAD) // Same check here, even though emote checks it as well (poor form to check it only in the help case) emote("me", 1, "growls!") diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm index e0e7efd11b..1dfd27c7e5 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm @@ -252,7 +252,7 @@ Difficulty: Hard if(!faction_check_mob(L)) to_chat(L, "[src] rends you!") playsound(T, attack_sound, 100, 1, -1) - var/limb_to_hit = L.get_bodypart(pick("head", "chest", "r_arm", "l_arm", "r_leg", "l_leg")) + var/limb_to_hit = L.get_bodypart(pick(BODY_ZONE_HEAD, BODY_ZONE_CHEST, BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_R_LEG, BODY_ZONE_L_LEG)) L.apply_damage(25, BRUTE, limb_to_hit, L.run_armor_check(limb_to_hit, "melee", null, null, armour_penetration)) sleep(3) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm index 142883fa02..22891265ae 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm @@ -628,7 +628,7 @@ Difficulty: Hard flash_color(L.client, "#660099", 1) playsound(L,'sound/weapons/sear.ogg', 50, 1, -4) to_chat(L, "You're struck by a [name]!") - var/limb_to_hit = L.get_bodypart(pick("head", "chest", "r_arm", "l_arm", "r_leg", "l_leg")) + var/limb_to_hit = L.get_bodypart(pick(BODY_ZONE_HEAD, BODY_ZONE_CHEST, BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_R_LEG, BODY_ZONE_L_LEG)) var/armor = L.run_armor_check(limb_to_hit, "melee", "Your armor absorbs [src]!", "Your armor blocks part of [src]!", 50, "Your armor was penetrated by [src]!") L.apply_damage(damage, BURN, limb_to_hit, armor) if(ishostile(L)) diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm index 5b8976396a..46e5b4f3b1 100644 --- a/code/modules/mob/living/simple_animal/parrot.dm +++ b/code/modules/mob/living/simple_animal/parrot.dm @@ -65,7 +65,7 @@ var/parrot_state = PARROT_WANDER //Hunt for a perch when created var/parrot_sleep_max = 25 //The time the parrot sits while perched before looking around. Mosly a way to avoid the parrot's AI in life() being run every single tick. var/parrot_sleep_dur = 25 //Same as above, this is the var that physically counts down - var/parrot_dam_zone = list("chest", "head", "l_arm", "l_leg", "r_arm", "r_leg") //For humans, select a bodypart to attack + var/parrot_dam_zone = list(BODY_ZONE_CHEST, BODY_ZONE_HEAD, BODY_ZONE_L_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_ARM, BODY_ZONE_R_LEG) //For humans, select a bodypart to attack var/parrot_speed = 5 //"Delay in world ticks between movement." according to byond. Yeah, that's BS but it does directly affect movement. Higher number = slower. var/parrot_lastmove = null //Updates/Stores position of the parrot while it's moving diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 3b9930faa9..242e1c8177 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -16,22 +16,22 @@ /proc/check_zone(zone) if(!zone) - return "chest" + return BODY_ZONE_CHEST switch(zone) - if("eyes") - zone = "head" - if("mouth") - zone = "head" - if("l_hand") - zone = "l_arm" - if("r_hand") - zone = "r_arm" - if("l_foot") - zone = "l_leg" - if("r_foot") - zone = "r_leg" - if("groin") - zone = "chest" + if(BODY_ZONE_PRECISE_EYES) + zone = BODY_ZONE_HEAD + if(BODY_ZONE_PRECISE_MOUTH) + zone = BODY_ZONE_HEAD + if(BODY_ZONE_PRECISE_L_HAND) + zone = BODY_ZONE_L_ARM + if(BODY_ZONE_PRECISE_R_HAND) + zone = BODY_ZONE_R_ARM + if(BODY_ZONE_PRECISE_L_FOOT) + zone = BODY_ZONE_L_LEG + if(BODY_ZONE_PRECISE_R_FOOT) + zone = BODY_ZONE_R_LEG + if(BODY_ZONE_PRECISE_GROIN) + zone = BODY_ZONE_CHEST return zone @@ -45,22 +45,22 @@ var/t = rand(1, 18) // randomly pick a different zone, or maybe the same one switch(t) if(1) - return "head" + return BODY_ZONE_HEAD if(2) - return "chest" + return BODY_ZONE_CHEST if(3 to 6) - return "l_arm" + return BODY_ZONE_L_ARM if(7 to 10) - return "r_arm" + return BODY_ZONE_R_ARM if(11 to 14) - return "l_leg" + return BODY_ZONE_L_LEG if(15 to 18) - return "r_leg" + return BODY_ZONE_R_LEG return zone /proc/above_neck(zone) - var/list/zones = list("head", "mouth", "eyes") + var/list/zones = list(BODY_ZONE_HEAD, BODY_ZONE_PRECISE_MOUTH, BODY_ZONE_PRECISE_EYES) if(zones.Find(zone)) return 1 else diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index 0e441361d1..291ae1e425 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -282,12 +282,12 @@ var/next_in_line switch(mob.zone_selected) - if("head") - next_in_line = "eyes" - if("eyes") - next_in_line = "mouth" + if(BODY_ZONE_HEAD) + next_in_line = BODY_ZONE_PRECISE_EYES + if(BODY_ZONE_PRECISE_EYES) + next_in_line = BODY_ZONE_PRECISE_MOUTH else - next_in_line = "head" + next_in_line = BODY_ZONE_HEAD var/obj/screen/zone_sel/selector = mob.hud_used.zone_select selector.set_selected_zone(next_in_line, mob) @@ -300,7 +300,7 @@ return var/obj/screen/zone_sel/selector = mob.hud_used.zone_select - selector.set_selected_zone("r_arm", mob) + selector.set_selected_zone(BODY_ZONE_R_ARM, mob) /client/verb/body_chest() set name = "body-chest" @@ -310,7 +310,7 @@ return var/obj/screen/zone_sel/selector = mob.hud_used.zone_select - selector.set_selected_zone("chest", mob) + selector.set_selected_zone(BODY_ZONE_CHEST, mob) /client/verb/body_l_arm() set name = "body-l-arm" @@ -320,7 +320,7 @@ return var/obj/screen/zone_sel/selector = mob.hud_used.zone_select - selector.set_selected_zone("l_arm", mob) + selector.set_selected_zone(BODY_ZONE_L_ARM, mob) /client/verb/body_r_leg() set name = "body-r-leg" @@ -330,7 +330,7 @@ return var/obj/screen/zone_sel/selector = mob.hud_used.zone_select - selector.set_selected_zone("r_leg", mob) + selector.set_selected_zone(BODY_ZONE_R_LEG, mob) /client/verb/body_groin() set name = "body-groin" @@ -340,7 +340,7 @@ return var/obj/screen/zone_sel/selector = mob.hud_used.zone_select - selector.set_selected_zone("groin", mob) + selector.set_selected_zone(BODY_ZONE_PRECISE_GROIN, mob) /client/verb/body_l_leg() set name = "body-l-leg" @@ -350,7 +350,7 @@ return var/obj/screen/zone_sel/selector = mob.hud_used.zone_select - selector.set_selected_zone("l_leg", mob) + selector.set_selected_zone(BODY_ZONE_L_LEG, mob) /client/verb/toggle_walk_run() set name = "toggle-walk-run" diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index 9178a2341b..84dbb6ef9f 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -17,7 +17,7 @@ var/obj/item/cavity_object - var/obj/item/bodypart/chest/CH = get_bodypart("chest") + var/obj/item/bodypart/chest/CH = get_bodypart(BODY_ZONE_CHEST) if(CH.cavity_item) cavity_object = CH.cavity_item CH.cavity_item = null @@ -107,7 +107,7 @@ var/obj/item/organ/I = X I.Insert(O, 1) - var/obj/item/bodypart/chest/torso = O.get_bodypart("chest") + var/obj/item/bodypart/chest/torso = O.get_bodypart(BODY_ZONE_CHEST) if(cavity_object) torso.cavity_item = cavity_object //cavity item is given to the new chest cavity_object.forceMove(O) @@ -167,7 +167,7 @@ var/obj/item/cavity_object - var/obj/item/bodypart/chest/CH = get_bodypart("chest") + var/obj/item/bodypart/chest/CH = get_bodypart(BODY_ZONE_CHEST) if(CH.cavity_item) cavity_object = CH.cavity_item CH.cavity_item = null @@ -266,7 +266,7 @@ I.Insert(O, 1) - var/obj/item/bodypart/chest/torso = get_bodypart("chest") + var/obj/item/bodypart/chest/torso = get_bodypart(BODY_ZONE_CHEST) if(cavity_object) torso.cavity_item = cavity_object //cavity item is given to the new chest cavity_object.forceMove(O) diff --git a/code/modules/paperwork/paper_cutter.dm b/code/modules/paperwork/paper_cutter.dm index 92543bad90..c3ffc14b80 100644 --- a/code/modules/paperwork/paper_cutter.dm +++ b/code/modules/paperwork/paper_cutter.dm @@ -23,7 +23,7 @@ user.visible_message("[user] is beheading [user.p_them()]self with [src.name]! It looks like [user.p_theyre()] trying to commit suicide!") if(iscarbon(user)) var/mob/living/carbon/C = user - var/obj/item/bodypart/BP = C.get_bodypart("head") + var/obj/item/bodypart/BP = C.get_bodypart(BODY_ZONE_HEAD) if(BP) BP.drop_limb() playsound(loc,pick('sound/misc/desceration-01.ogg','sound/misc/desceration-02.ogg','sound/misc/desceration-01.ogg') ,50, 1, -1) diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index 7a07ba5a7f..5ed6b84a18 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -233,9 +233,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_shard) if(M.z == z) SEND_SOUND(M, 'sound/magic/charge.ogg') to_chat(M, "You feel reality distort for a moment...") - GET_COMPONENT_FROM(mood, /datum/component/mood, M) - if(mood) - mood.add_event("delam", /datum/mood_event/delam) + M.SendSignal(COMSIG_ADD_MOOD_EVENT, "delam", /datum/mood_event/delam) if(combined_gas > MOLE_PENALTY_THRESHOLD) investigate_log("has collapsed into a singularity.", INVESTIGATE_SUPERMATTER) if(T) @@ -486,7 +484,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_shard) if(iscarbon(user)) var/mob/living/carbon/C = user to_chat(C, "That was a really dumb idea.") - var/obj/item/bodypart/head/rip_u = C.get_bodypart("head") + var/obj/item/bodypart/head/rip_u = C.get_bodypart(BODY_ZONE_HEAD) rip_u.dismember(BURN) //nice try jedi /obj/machinery/power/supermatter_shard/attack_paw(mob/user) diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 7b7daadc18..6500374a6a 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -138,7 +138,7 @@ return if(!ismob(target) || user.a_intent == INTENT_HARM) //melee attack return - if(target == user && user.zone_selected != "mouth") //so we can't shoot ourselves (unless mouth selected) + if(target == user && user.zone_selected != BODY_ZONE_PRECISE_MOUTH) //so we can't shoot ourselves (unless mouth selected) return if(istype(user))//Check if the user can use the gun, if the user isn't alive(turrets) assume it can. @@ -151,7 +151,7 @@ return if(flag) - if(user.zone_selected == "mouth") + if(user.zone_selected == BODY_ZONE_PRECISE_MOUTH) handle_suicide(user, target, params) return @@ -161,7 +161,7 @@ if(istype(user)) if (user.has_trait(TRAIT_CLUMSY) && prob(40)) to_chat(user, "You shoot yourself in the foot with [src]!") - var/shot_leg = pick("l_leg", "r_leg") + var/shot_leg = pick(BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) process_fire(user, user, FALSE, params, shot_leg) user.dropItemToGround(src, TRUE) return @@ -429,7 +429,7 @@ semicd = TRUE - if(!do_mob(user, target, 120) || user.zone_selected != "mouth") + if(!do_mob(user, target, 120) || user.zone_selected != BODY_ZONE_PRECISE_MOUTH) if(user) if(user == target) user.visible_message("[user] decided not to shoot.") diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm index f7cb05486f..f83a2d9edd 100644 --- a/code/modules/projectiles/guns/ballistic.dm +++ b/code/modules/projectiles/guns/ballistic.dm @@ -159,7 +159,7 @@ sleep(25) if(user.is_holding(src)) var/turf/T = get_turf(user) - process_fire(user, user, FALSE, null, "head") + process_fire(user, user, FALSE, null, BODY_ZONE_HEAD) user.visible_message("[user] blows [user.p_their()] brain[user.p_s()] out with [src]!") var/turf/target = get_ranged_target_turf(user, turn(user.dir, 180), BRAINS_BLOWN_THROW_RANGE) B.Remove(user) diff --git a/code/modules/projectiles/guns/ballistic/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm index 489f88ffad..3cbff78aee 100644 --- a/code/modules/projectiles/guns/ballistic/revolver.dm +++ b/code/modules/projectiles/guns/ballistic/revolver.dm @@ -218,7 +218,7 @@ playsound(user, fire_sound, 50, 1) var/zone = check_zone(user.zone_selected) var/obj/item/bodypart/affecting = H.get_bodypart(zone) - if(zone == "head" || zone == "eyes" || zone == "mouth") + if(zone == BODY_ZONE_HEAD || zone == BODY_ZONE_PRECISE_EYES || zone == BODY_ZONE_PRECISE_MOUTH) shoot_self(user, affecting) else user.visible_message("[user.name] cowardly fires [src] at [user.p_their()] [affecting.name]!", "You cowardly fire [src] at your [affecting.name]!", "You hear a gunshot!") @@ -228,7 +228,7 @@ user.visible_message("*click*") playsound(src, "gun_dry_fire", 30, 1) -/obj/item/gun/ballistic/revolver/russian/proc/shoot_self(mob/living/carbon/human/user, affecting = "head") +/obj/item/gun/ballistic/revolver/russian/proc/shoot_self(mob/living/carbon/human/user, affecting = BODY_ZONE_HEAD) user.apply_damage(300, BRUTE, affecting) user.visible_message("[user.name] fires [src] at [user.p_their()] head!", "You fire [src] at your head!", "You hear a gunshot!") @@ -349,7 +349,7 @@ /obj/item/gun/ballistic/revolver/reverse/can_trigger_gun(mob/living/user) if((user.has_trait(TRAIT_CLUMSY)) || (user.mind && user.mind.assigned_role == "Clown")) return ..() - if(process_fire(user, user, FALSE, null, "head")) + if(process_fire(user, user, FALSE, null, BODY_ZONE_HEAD)) user.visible_message("[user] somehow manages to shoot [user.p_them()]self in the face!", "You somehow shoot yourself in the face! How the hell?!") user.emote("scream") user.drop_all_held_items() diff --git a/code/modules/projectiles/guns/misc/beam_rifle.dm b/code/modules/projectiles/guns/misc/beam_rifle.dm index 59465eb989..80cbf11318 100644 --- a/code/modules/projectiles/guns/misc/beam_rifle.dm +++ b/code/modules/projectiles/guns/misc/beam_rifle.dm @@ -332,7 +332,7 @@ return if(!ismob(target) || user.a_intent == INTENT_HARM) //melee attack return - if(target == user && user.zone_selected != "mouth") //so we can't shoot ourselves (unless mouth selected) + if(target == user && user.zone_selected != BODY_ZONE_PRECISE_MOUTH) //so we can't shoot ourselves (unless mouth selected) return if(!passthrough && (aiming_time > aiming_time_fire_threshold)) return diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index db43917d6c..ad1d0f76d0 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -105,7 +105,7 @@ if(get_bodypart(hit_zone)) return hit_zone else //when a limb is missing the damage is actually passed to the chest - return "chest" + return BODY_ZONE_CHEST /obj/item/projectile/proc/prehit(atom/target) return TRUE diff --git a/code/modules/projectiles/projectile/energy/stun.dm b/code/modules/projectiles/projectile/energy/stun.dm index 3b04febae3..1c24d47a9d 100644 --- a/code/modules/projectiles/projectile/energy/stun.dm +++ b/code/modules/projectiles/projectile/energy/stun.dm @@ -18,9 +18,7 @@ do_sparks(1, TRUE, src) else if(iscarbon(target)) var/mob/living/carbon/C = target - GET_COMPONENT_FROM(mood, /datum/component/mood, C) - if(mood) - mood.add_event("tased", /datum/mood_event/tased) + C.SendSignal(COMSIG_ADD_MOOD_EVENT, "tased", /datum/mood_event/tased) if(C.dna && C.dna.check_mutation(HULK)) C.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" )) else if((C.status_flags & CANKNOCKDOWN) && !C.has_trait(TRAIT_STUNIMMUNE)) diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index 2a650f3381..d49c4a6fa0 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -303,9 +303,7 @@ need_mob_update += R.addiction_act_stage4(C) if(40 to INFINITY) to_chat(C, "You feel like you've gotten over your need for [R.name].") - GET_COMPONENT_FROM(mood, /datum/component/mood, C) - if(mood) - mood.clear_event("[R.id]_addiction") + C.SendSignal(COMSIG_CLEAR_MOOD_EVENT, "[R.id]_addiction") cached_addictions.Remove(R) addiction_tick++ if(C && need_mob_update) //some of the metabolized reagents had effects on the mob that requires some updates. diff --git a/code/modules/reagents/chemistry/reagents.dm b/code/modules/reagents/chemistry/reagents.dm index a1a65409a1..3fe5d47479 100644 --- a/code/modules/reagents/chemistry/reagents.dm +++ b/code/modules/reagents/chemistry/reagents.dm @@ -91,39 +91,29 @@ /datum/reagent/proc/overdose_start(mob/living/M) to_chat(M, "You feel like you took too much of [name]!") - GET_COMPONENT_FROM(mood, /datum/component/mood, M) - if(mood) - mood.add_event("[id]_overdose", /datum/mood_event/drugs/overdose, name) + M.SendSignal(COMSIG_ADD_MOOD_EVENT, "[id]_overdose", /datum/mood_event/drugs/overdose, name) return /datum/reagent/proc/addiction_act_stage1(mob/living/M) - GET_COMPONENT_FROM(mood, /datum/component/mood, M) - if(mood) - mood.add_event("[id]_overdose", /datum/mood_event/drugs/withdrawal_light, name) + M.SendSignal(COMSIG_ADD_MOOD_EVENT, "[id]_overdose", /datum/mood_event/drugs/withdrawal_light, name) if(prob(30)) to_chat(M, "You feel like having some [name] right about now.") return /datum/reagent/proc/addiction_act_stage2(mob/living/M) - GET_COMPONENT_FROM(mood, /datum/component/mood, M) - if(mood) - mood.add_event("[id]_overdose", /datum/mood_event/drugs/withdrawal_medium, name) + M.SendSignal(COMSIG_ADD_MOOD_EVENT, "[id]_overdose", /datum/mood_event/drugs/withdrawal_medium, name) if(prob(30)) to_chat(M, "You feel like you need [name]. You just can't get enough.") return /datum/reagent/proc/addiction_act_stage3(mob/living/M) - GET_COMPONENT_FROM(mood, /datum/component/mood, M) - if(mood) - mood.add_event("[id]_overdose", /datum/mood_event/drugs/withdrawal_severe, name) + M.SendSignal(COMSIG_ADD_MOOD_EVENT, "[id]_overdose", /datum/mood_event/drugs/withdrawal_severe, name) if(prob(30)) to_chat(M, "You have an intense craving for [name].") return /datum/reagent/proc/addiction_act_stage4(mob/living/M) - GET_COMPONENT_FROM(mood, /datum/component/mood, M) - if(mood) - mood.add_event("[id]_overdose", /datum/mood_event/drugs/withdrawal_critical, name) + M.SendSignal(COMSIG_ADD_MOOD_EVENT, "[id]_overdose", /datum/mood_event/drugs/withdrawal_critical, name) if(prob(30)) to_chat(M, "You're not feeling good at all! You really need some [name].") return diff --git a/code/modules/reagents/chemistry/reagents/drug_reagents.dm b/code/modules/reagents/chemistry/reagents/drug_reagents.dm index 22d638ea20..32b96d2780 100644 --- a/code/modules/reagents/chemistry/reagents/drug_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drug_reagents.dm @@ -6,9 +6,8 @@ var/trippy = TRUE //Does this drug make you trip? /datum/reagent/drug/on_mob_delete(mob/living/M) - GET_COMPONENT_FROM(mood, /datum/component/mood, M) - if(mood && trippy) - mood.clear_event("[id]_high") + if(trippy) + M.SendSignal(COMSIG_CLEAR_MOOD_EVENT, "[id]_high") /datum/reagent/drug/space_drugs name = "Space drugs" @@ -29,9 +28,7 @@ /datum/reagent/drug/space_drugs/overdose_start(mob/living/M) to_chat(M, "You start tripping hard!") - GET_COMPONENT_FROM(mood, /datum/component/mood, M) - if(mood) - mood.add_event("[id]_overdose", /datum/mood_event/drugs/overdose, name) + M.SendSignal(COMSIG_ADD_MOOD_EVENT, "[id]_overdose", /datum/mood_event/drugs/overdose, name) /datum/reagent/drug/space_drugs/overdose_process(mob/living/M) if(M.hallucination < volume && prob(20)) @@ -52,9 +49,7 @@ if(prob(1)) var/smoke_message = pick("You feel relaxed.", "You feel calmed.","You feel alert.","You feel rugged.") to_chat(M, "[smoke_message]") - GET_COMPONENT_FROM(mood, /datum/component/mood, M) - if(mood) - mood.add_event("smoked", /datum/mood_event/drugs/smoked, name) + M.SendSignal(COMSIG_ADD_MOOD_EVENT, "smoked", /datum/mood_event/drugs/smoked, name) M.AdjustStun(-20, 0) M.AdjustKnockdown(-20, 0) M.AdjustUnconscious(-20, 0) diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index 92d73e2ccf..101e391a52 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -214,7 +214,7 @@ id = "spaceacillin" description = "Spaceacillin will prevent a patient from conventionally spreading any diseases they are currently infected with." color = "#C8A5DC" // rgb: 200, 165, 220 - metabolization_rate = 0.5 * REAGENTS_METABOLISM + metabolization_rate = 0.1 * REAGENTS_METABOLISM //Goon Chems. Ported mainly from Goonstation. Easily mixable (or not so easily) and provide a variety of effects. /datum/reagent/medicine/silver_sulfadiazine diff --git a/code/modules/research/designs/comp_board_designs.dm b/code/modules/research/designs/comp_board_designs.dm index 6ab6978326..9f29c3dbff 100644 --- a/code/modules/research/designs/comp_board_designs.dm +++ b/code/modules/research/designs/comp_board_designs.dm @@ -12,6 +12,7 @@ id = "arcade_battle" build_path = /obj/item/circuitboard/computer/arcade/battle category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_ALL /datum/design/board/orion_trail name = "Computer Design (Orion Trail Arcade Machine)" @@ -19,6 +20,7 @@ id = "arcade_orion" build_path = /obj/item/circuitboard/computer/arcade/orion_trail category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_ALL /datum/design/board/seccamera name = "Computer Design (Security Camera)" @@ -26,6 +28,7 @@ id = "seccamera" build_path = /obj/item/circuitboard/computer/security category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY /datum/design/board/xenobiocamera name = "Computer Design (Xenobiology Console)" @@ -41,6 +44,7 @@ id = "aiupload" build_path = /obj/item/circuitboard/computer/aiupload category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE /datum/design/board/borgupload name = "Computer Design (Cyborg Upload)" @@ -48,6 +52,7 @@ id = "borgupload" build_path = /obj/item/circuitboard/computer/borgupload category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE /datum/design/board/med_data name = "Computer Design (Medical Records)" @@ -55,6 +60,7 @@ id = "med_data" build_path = /obj/item/circuitboard/computer/med_data category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL /datum/design/board/operating name = "Computer Design (Operating Computer)" @@ -62,6 +68,7 @@ id = "operating" build_path = /obj/item/circuitboard/computer/operating category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE /datum/design/board/pandemic name = "Computer Design (PanD.E.M.I.C. 2200)" @@ -69,6 +76,7 @@ id = "pandemic" build_path = /obj/item/circuitboard/computer/pandemic category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL /datum/design/board/scan_console name = "Computer Design (DNA Machine)" @@ -76,6 +84,7 @@ id = "scan_console" build_path = /obj/item/circuitboard/computer/scan_consolenew category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE /datum/design/board/comconsole name = "Computer Design (Communications)" @@ -83,6 +92,7 @@ id = "comconsole" build_path = /obj/item/circuitboard/computer/communications category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SECURITY //Honestly should have a bridge techfab for this sometime. /datum/design/board/idcardconsole name = "Computer Design (ID Console)" @@ -90,6 +100,7 @@ id = "idcardconsole" build_path = /obj/item/circuitboard/computer/card category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SECURITY //Honestly should have a bridge techfab for this sometime. /datum/design/board/crewconsole name = "Computer Design (Crew monitoring computer)" @@ -97,6 +108,7 @@ id = "crewconsole" build_path = /obj/item/circuitboard/computer/crew category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_MEDICAL /datum/design/board/secdata name = "Computer Design (Security Records Console)" @@ -104,6 +116,7 @@ id = "secdata" build_path = /obj/item/circuitboard/computer/secure_data category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY /datum/design/board/atmosalerts name = "Computer Design (Atmosphere Alert)" @@ -111,6 +124,7 @@ id = "atmosalerts" build_path = /obj/item/circuitboard/computer/atmos_alert category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING /datum/design/board/atmos_control name = "Computer Design (Atmospheric Monitor)" @@ -118,6 +132,7 @@ id = "atmos_control" build_path = /obj/item/circuitboard/computer/atmos_control category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING /datum/design/board/robocontrol name = "Computer Design (Robotics Control Console)" @@ -125,6 +140,7 @@ id = "robocontrol" build_path = /obj/item/circuitboard/computer/robotics category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE /datum/design/board/slot_machine name = "Computer Design (Slot Machine)" @@ -132,6 +148,7 @@ id = "slotmachine" build_path = /obj/item/circuitboard/computer/slot_machine category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_ALL /datum/design/board/powermonitor name = "Computer Design (Power Monitor)" @@ -139,6 +156,7 @@ id = "powermonitor" build_path = /obj/item/circuitboard/computer/powermonitor category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING /datum/design/board/solarcontrol name = "Computer Design (Solar Control)" @@ -146,6 +164,7 @@ id = "solarcontrol" build_path = /obj/item/circuitboard/computer/solar_control category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING /datum/design/board/prisonmanage name = "Computer Design (Prisoner Management Console)" @@ -153,6 +172,7 @@ id = "prisonmanage" build_path = /obj/item/circuitboard/computer/prisoner category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY /datum/design/board/mechacontrol name = "Computer Design (Exosuit Control Console)" @@ -184,6 +204,7 @@ id = "cargo" build_path = /obj/item/circuitboard/computer/cargo category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_CARGO /datum/design/board/cargorequest name = "Computer Design (Supply Request Console)" @@ -191,13 +212,15 @@ id = "cargorequest" build_path = /obj/item/circuitboard/computer/cargo/request category = list("Computer Boards") - + departmental_flags = DEPARTMENTAL_FLAG_CARGO + /datum/design/board/stockexchange name = "Computer Design (Stock Exchange Console)" desc = "Allows for the construction of circuit boards used to build a Stock Exchange Console." id = "stockexchange" build_path = /obj/item/circuitboard/computer/stockexchange category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_CARGO /datum/design/board/mining name = "Computer Design (Outpost Status Display)" @@ -205,6 +228,7 @@ id = "mining" build_path = /obj/item/circuitboard/computer/mining category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SECURITY /datum/design/board/comm_monitor name = "Computer Design (Telecommunications Monitoring Console)" @@ -212,6 +236,7 @@ id = "comm_monitor" build_path = /obj/item/circuitboard/computer/comm_monitor category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING /datum/design/board/comm_server name = "Computer Design (Telecommunications Server Monitoring Console)" @@ -219,6 +244,7 @@ id = "comm_server" build_path = /obj/item/circuitboard/computer/comm_server category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING /datum/design/board/message_monitor name = "Computer Design (Messaging Monitor Console)" @@ -226,6 +252,7 @@ id = "message_monitor" build_path = /obj/item/circuitboard/computer/message_monitor category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING /datum/design/board/aifixer name = "Computer Design (AI Integrity Restorer)" @@ -241,6 +268,7 @@ id = "libraryconsole" build_path = /obj/item/circuitboard/computer/libraryconsole category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_ALL /datum/design/board/apc_control name = "Computer Design (APC Control)" @@ -248,3 +276,4 @@ id = "apc_control" build_path = /obj/item/circuitboard/computer/apc_control category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm index fc06dcd0ab..2ab19c4d83 100644 --- a/code/modules/research/designs/machine_designs.dm +++ b/code/modules/research/designs/machine_designs.dm @@ -8,6 +8,7 @@ id = "smes" build_path = /obj/item/circuitboard/machine/smes category = list ("Engineering Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING /datum/design/board/announcement_system name = "Machine Design (Automated Announcement System Board)" @@ -15,6 +16,7 @@ id = "automated_announcement" build_path = /obj/item/circuitboard/machine/announcement_system category = list("Subspace Telecomms") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING /datum/design/board/turbine_computer name = "Computer Design (Power Turbine Console Board)" @@ -22,6 +24,7 @@ id = "power_turbine_console" build_path = /obj/item/circuitboard/computer/turbine_computer category = list ("Engineering Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE /datum/design/board/emitter name = "Machine Design (Emitter Board)" @@ -29,6 +32,7 @@ id = "emitter" build_path = /obj/item/circuitboard/machine/emitter category = list ("Engineering Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING /datum/design/board/power_compressor name = "Machine Design (Power Compressor Board)" @@ -36,6 +40,7 @@ id = "power_compressor" build_path = /obj/item/circuitboard/machine/power_compressor category = list ("Engineering Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE /datum/design/board/power_turbine name = "Machine Design (Power Turbine Board)" @@ -43,6 +48,7 @@ id = "power_turbine" build_path = /obj/item/circuitboard/machine/power_turbine category = list ("Engineering Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE /datum/design/board/thermomachine name = "Machine Design (Freezer/Heater Board)" @@ -50,6 +56,7 @@ id = "thermomachine" build_path = /obj/item/circuitboard/machine/thermomachine category = list ("Engineering Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE /datum/design/board/space_heater name = "Machine Design (Space Heater Board)" @@ -57,6 +64,7 @@ id = "space_heater" build_path = /obj/item/circuitboard/machine/space_heater category = list ("Engineering Machinery") + departmental_flags = ALL /datum/design/board/teleport_station name = "Machine Design (Teleportation Station Board)" @@ -64,7 +72,7 @@ id = "tele_station" build_path = /obj/item/circuitboard/machine/teleporter_station category = list ("Teleportation Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE /datum/design/board/teleport_hub name = "Machine Design (Teleportation Hub Board)" @@ -72,7 +80,7 @@ id = "tele_hub" build_path = /obj/item/circuitboard/machine/teleporter_hub category = list ("Teleportation Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE /datum/design/board/quantumpad name = "Machine Design (Quantum Pad Board)" @@ -80,7 +88,7 @@ id = "quantumpad" build_path = /obj/item/circuitboard/machine/quantumpad category = list ("Teleportation Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE /datum/design/board/launchpad name = "Machine Design (Bluespace Launchpad Board)" @@ -88,7 +96,7 @@ id = "launchpad" build_path = /obj/item/circuitboard/machine/launchpad category = list ("Teleportation Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE /datum/design/board/launchpad_console name = "Machine Design (Bluespace Launchpad Console Board)" @@ -96,7 +104,7 @@ id = "launchpad_console" build_path = /obj/item/circuitboard/computer/launchpad_console category = list ("Teleportation Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE /datum/design/board/teleconsole name = "Computer Design (Teleporter Console)" @@ -104,7 +112,7 @@ id = "teleconsole" build_path = /obj/item/circuitboard/computer/teleporter category = list("Teleportation Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE /datum/design/board/sleeper name = "Machine Design (Sleeper Board)" @@ -152,6 +160,7 @@ id = "smoke_machine" build_path = /obj/item/circuitboard/machine/smoke_machine category = list ("Medical Machinery") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL /datum/design/board/reagentgrinder name = "Machine Design (All-In-One Grinder)" @@ -159,20 +168,21 @@ id = "reagentgrinder" build_path = /obj/item/circuitboard/machine/reagentgrinder category = list ("Medical Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ALL /datum/design/board/clonecontrol name = "Computer Design (Cloning Machine Console)" desc = "Allows for the construction of circuit boards used to build a new Cloning Machine console." id = "clonecontrol" build_path = /obj/item/circuitboard/computer/cloning - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_MEDICAL + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL category = list("Medical Machinery") /datum/design/board/clonepod name = "Machine Design (Clone Pod)" desc = "Allows for the construction of circuit boards used to build a Cloning Pod." id = "clonepod" - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_MEDICAL + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL build_path = /obj/item/circuitboard/machine/clonepod category = list("Medical Machinery") @@ -180,7 +190,7 @@ name = "Machine Design (Cloning Scanner)" desc = "Allows for the construction of circuit boards used to build a Cloning Scanner." id = "clonescanner" - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_MEDICAL + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL build_path = /obj/item/circuitboard/machine/clonescanner category = list("Medical Machinery") @@ -190,6 +200,7 @@ id = "biogenerator" build_path = /obj/item/circuitboard/machine/biogenerator category = list ("Hydroponics Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SERVICE /datum/design/board/hydroponics name = "Machine Design (Hydroponics Tray Board)" @@ -197,6 +208,7 @@ id = "hydro_tray" build_path = /obj/item/circuitboard/machine/hydroponics category = list ("Hydroponics Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SERVICE /datum/design/board/destructive_analyzer name = "Machine Design (Destructive Analyzer Board)" @@ -220,6 +232,7 @@ id = "protolathe" build_path = /obj/item/circuitboard/machine/protolathe category = list("Research Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE /datum/design/board/circuit_imprinter name = "Machine Design (Circuit Imprinter Board)" @@ -227,6 +240,7 @@ id = "circuit_imprinter" build_path = /obj/item/circuitboard/machine/circuit_imprinter category = list("Research Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE /datum/design/board/rdservercontrol name = "Computer Design (R&D Server Control Console Board)" @@ -274,6 +288,7 @@ id = "microwave" build_path = /obj/item/circuitboard/machine/microwave category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ALL /datum/design/board/gibber name = "Machine Design (Gibber Board)" @@ -281,6 +296,7 @@ id = "gibber" build_path = /obj/item/circuitboard/machine/gibber category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SERVICE /datum/design/board/smartfridge name = "Machine Design (Smartfridge Board)" @@ -288,6 +304,7 @@ id = "smartfridge" build_path = /obj/item/circuitboard/machine/smartfridge category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ALL /datum/design/board/monkey_recycler name = "Machine Design (Monkey Recycler Board)" @@ -295,6 +312,7 @@ id = "monkey_recycler" build_path = /obj/item/circuitboard/machine/monkey_recycler category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_SERVICE /datum/design/board/seed_extractor name = "Machine Design (Seed Extractor Board)" @@ -302,6 +320,7 @@ id = "seed_extractor" build_path = /obj/item/circuitboard/machine/seed_extractor category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SERVICE /datum/design/board/processor name = "Machine Design (Food Processor Board)" @@ -309,6 +328,7 @@ id = "processor" build_path = /obj/item/circuitboard/machine/processor category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SERVICE /datum/design/board/slimeprocessor name = "Machine Design (Slime Processor Board)" @@ -316,6 +336,7 @@ id = "slimeprocessor" build_path = /obj/item/circuitboard/machine/processor/slime category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE /datum/design/board/recycler name = "Machine Design (Recycler Board)" @@ -323,6 +344,7 @@ id = "recycler" build_path = /obj/item/circuitboard/machine/recycler category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ALL /datum/design/board/holopad name = "Machine Design (AI Holopad Board)" @@ -338,6 +360,7 @@ id = "autolathe" build_path = /obj/item/circuitboard/machine/autolathe category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ALL //Lets be honest here half the maps have public ones. /datum/design/board/recharger name = "Machine Design (Weapon Recharger Board)" @@ -346,6 +369,7 @@ materials = list(MAT_GLASS = 1000, MAT_GOLD = 100) build_path = /obj/item/circuitboard/machine/recharger category = list("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ALL /datum/design/board/vendor name = "Machine Design (Vendor Board)" @@ -353,6 +377,7 @@ id = "vendor" build_path = /obj/item/circuitboard/machine/vendor category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ALL /datum/design/board/ore_redemption name = "Machine Design (Ore Redemption Board)" @@ -360,7 +385,7 @@ id = "ore_redemption" build_path = /obj/item/circuitboard/machine/ore_redemption category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_ENGINEERING /datum/design/board/mining_equipment_vendor name = "Machine Design (Mining Rewards Vender Board)" @@ -368,7 +393,7 @@ id = "mining_equipment_vendor" build_path = /obj/item/circuitboard/machine/mining_equipment_vendor category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_CARGO /datum/design/board/tesla_coil name = "Machine Design (Tesla Coil Board)" @@ -376,6 +401,7 @@ id = "tesla_coil" build_path = /obj/item/circuitboard/machine/tesla_coil category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE /datum/design/board/grounding_rod name = "Machine Design (Grounding Rod Board)" @@ -383,6 +409,7 @@ id = "grounding_rod" build_path = /obj/item/circuitboard/machine/grounding_rod category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE /datum/design/board/plantgenes name = "Machine Design (Plant DNA Manipulator Board)" @@ -390,6 +417,7 @@ id = "plantgenes" build_path = /obj/item/circuitboard/machine/plantgenes category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SERVICE /datum/design/board/ntnet_relay name = "Machine Design (NTNet Relay Board)" @@ -397,7 +425,7 @@ id = "ntnet_relay" build_path = /obj/item/circuitboard/machine/ntnet_relay category = list("Subspace Telecomms") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE /datum/design/board/limbgrower name = "Machine Design (Limb Grower Board)" @@ -405,6 +433,7 @@ id = "limbgrower" build_path = /obj/item/circuitboard/machine/limbgrower category = list("Medical Machinery") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL /datum/design/board/deepfryer name = "Machine Design (Deep Fryer)" @@ -412,6 +441,7 @@ id = "deepfryer" build_path = /obj/item/circuitboard/machine/deep_fryer category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SERVICE /datum/design/board/donksofttoyvendor name = "Machine Design (Donksoft Toy Vendor Board)" @@ -419,6 +449,7 @@ id = "donksofttoyvendor" build_path = /obj/item/circuitboard/machine/vending/donksofttoyvendor category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ALL //Toys!! /datum/design/board/cell_charger name = "Machine Design (Cell Charger Board)" @@ -426,6 +457,7 @@ id = "cell_charger" build_path = /obj/item/circuitboard/machine/cell_charger category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ALL /datum/design/board/dish_drive name = "Machine Design (Dish Drive)" @@ -433,3 +465,4 @@ id = "dish_drive" build_path = /obj/item/circuitboard/machine/dish_drive category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SERVICE diff --git a/code/modules/research/designs/mining_designs.dm b/code/modules/research/designs/mining_designs.dm index 61bfb53fb5..b2a6c34269 100644 --- a/code/modules/research/designs/mining_designs.dm +++ b/code/modules/research/designs/mining_designs.dm @@ -6,7 +6,7 @@ name = "Computer Design (Express Supply Console)"//shes beautiful desc = "Allows for the construction of circuit boards used to build an Express Supply Console."//who? id = "cargoexpress"//the coder reading this - build_type = PROTOLATHE + build_type = IMPRINTER materials = list(MAT_GLASS = 1000) build_path = /obj/item/circuitboard/computer/cargo/express category = list("Mining Designs") diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm index 9ffe65f7b9..0e66644c6f 100644 --- a/code/modules/research/experimentor.dm +++ b/code/modules/research/experimentor.dm @@ -257,7 +257,7 @@ else if(prob(EFFECT_PROB_VERYLOW-badThingCoeff)) visible_message("[src] malfunctions and destroys [exp_on], lashing its arms out at nearby people!") for(var/mob/living/m in oview(1, src)) - m.apply_damage(15, BRUTE, pick("head","chest","groin")) + m.apply_damage(15, BRUTE, pick(BODY_ZONE_HEAD,BODY_ZONE_CHEST,BODY_ZONE_PRECISE_GROIN)) investigate_log("Experimentor dealt minor brute to [m].", INVESTIGATE_EXPERIMENTOR) ejectItem(TRUE) else if(prob(EFFECT_PROB_LOW-badThingCoeff)) @@ -390,7 +390,7 @@ visible_message("[src] malfunctions, activating its emergency coolant systems!") throwSmoke(loc) for(var/mob/living/m in oview(1, src)) - m.apply_damage(5, BURN, pick("head","chest","groin")) + m.apply_damage(5, BURN, pick(BODY_ZONE_HEAD,BODY_ZONE_CHEST,BODY_ZONE_PRECISE_GROIN)) investigate_log("Experimentor has dealt minor burn damage to [m]", INVESTIGATE_EXPERIMENTOR) ejectItem() //////////////////////////////////////////////////////////////////////////////////////////////// @@ -503,7 +503,7 @@ visible_message("Experimentor draws the life essence of those nearby!") for(var/mob/living/m in view(4,src)) to_chat(m, "You feel your flesh being torn from you, mists of blood drifting to [src]!") - m.apply_damage(50, BRUTE, "chest") + m.apply_damage(50, BRUTE, BODY_ZONE_CHEST) investigate_log("Experimentor has taken 50 brute a blood sacrifice from [m]", INVESTIGATE_EXPERIMENTOR) if(globalMalf > 51 && globalMalf < 75) visible_message("[src] encounters a run-time error!") diff --git a/code/modules/research/machinery/_production.dm b/code/modules/research/machinery/_production.dm index ac5d1b225a..0ae773b3e7 100644 --- a/code/modules/research/machinery/_production.dm +++ b/code/modules/research/machinery/_production.dm @@ -41,7 +41,7 @@ cached_designs.Cut() for(var/i in stored_research.researched_designs) var/datum/design/d = stored_research.researched_designs[i] - if((d.departmental_flags & allowed_department_flags) && (d.build_type & allowed_buildtypes)) + if((isnull(allowed_department_flags) || (d.departmental_flags & allowed_department_flags)) && (d.build_type & allowed_buildtypes)) cached_designs |= d /obj/machinery/rnd/production/RefreshParts() @@ -115,7 +115,7 @@ var/datum/design/D = (linked_console || requires_console)? linked_console.stored_research.researched_designs[id] : get_techweb_design_by_id(id) if(!istype(D)) return FALSE - if(!(D.departmental_flags & allowed_department_flags)) + if(!(isnull(allowed_department_flags) || (D.departmental_flags & allowed_department_flags))) say("Warning: Printing failed: This fabricator does not have the necessary keys to decrypt design schematics. Please update the research data with the on-screen button and contact Nanotrasen Support!") return FALSE if(D.build_type && !(D.build_type & allowed_buildtypes)) @@ -152,7 +152,7 @@ matching_designs.Cut() for(var/v in stored_research.researched_designs) var/datum/design/D = stored_research.researched_designs[v] - if(!(D.build_type & allowed_buildtypes) || !(D.departmental_flags & allowed_department_flags)) + if(!(D.build_type & allowed_buildtypes) || !(isnull(allowed_department_flags) || (D.departmental_flags & allowed_department_flags))) continue if(findtext(D.name,string)) matching_designs.Add(D) @@ -308,7 +308,7 @@ var/datum/design/D = stored_research.researched_designs[v] if(!(selected_category in D.category)|| !(D.build_type & allowed_buildtypes)) continue - if(!(D.departmental_flags & allowed_department_flags)) + if(!(isnull(allowed_department_flags) || (D.departmental_flags & allowed_department_flags))) continue l += design_menu_entry(D, coeff) l += "" diff --git a/code/modules/research/machinery/circuit_imprinter.dm b/code/modules/research/machinery/circuit_imprinter.dm index e51b1c5cf5..5a84f2f663 100644 --- a/code/modules/research/machinery/circuit_imprinter.dm +++ b/code/modules/research/machinery/circuit_imprinter.dm @@ -22,4 +22,12 @@ /obj/machinery/rnd/production/circuit_imprinter/disconnect_console() linked_console.linked_imprinter = null - ..() \ No newline at end of file + ..() + +/obj/machinery/rnd/production/circuit_imprinter/calculate_efficiency() + . = ..() + var/total_rating = 0 + for(var/obj/item/stock_parts/manipulator/M in component_parts) + total_rating += M.rating * 2 //There is only one. + total_rating = max(1, total_rating) + efficiency_coeff = total_rating diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index c4628c70ef..96903c93de 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -280,7 +280,7 @@ doesn't have toxins access. var/datum/design/D = stored_research.researched_designs[v] if(!(selected_category in D.category)|| !(D.build_type & PROTOLATHE)) continue - if(!(D.departmental_flags & linked_lathe.allowed_department_flags)) + if(!(isnull(linked_lathe.allowed_department_flags) || (D.departmental_flags & linked_lathe.allowed_department_flags))) continue var/temp_material var/c = 50 @@ -291,9 +291,9 @@ doesn't have toxins access. t = linked_lathe.check_mat(D, M) temp_material += " | " if (t < 1) - temp_material += "[all_materials[M]*coeff] [CallMaterialName(M)]" + temp_material += "[all_materials[M]/coeff] [CallMaterialName(M)]" else - temp_material += " [all_materials[M]*coeff] [CallMaterialName(M)]" + temp_material += " [all_materials[M]/coeff] [CallMaterialName(M)]" c = min(c,t) if (c >= 1) @@ -332,7 +332,7 @@ doesn't have toxins access. l += ui_protolathe_header() var/coeff = linked_lathe.efficiency_coeff for(var/datum/design/D in matching_designs) - if(!(D.departmental_flags & linked_lathe.allowed_department_flags)) + if(!(isnull(linked_lathe.allowed_department_flags) || (D.departmental_flags & linked_lathe.allowed_department_flags))) continue var/temp_material var/c = 50 @@ -342,9 +342,9 @@ doesn't have toxins access. t = linked_lathe.check_mat(D, M) temp_material += " | " if (t < 1) - temp_material += "[all_materials[M]*coeff] [CallMaterialName(M)]" + temp_material += "[all_materials[M]/coeff] [CallMaterialName(M)]" else - temp_material += " [all_materials[M]*coeff] [CallMaterialName(M)]" + temp_material += " [all_materials[M]/coeff] [CallMaterialName(M)]" c = min(c,t) if (c >= 1) @@ -422,7 +422,7 @@ doesn't have toxins access. var/datum/design/D = stored_research.researched_designs[v] if(!(selected_category in D.category) || !(D.build_type & IMPRINTER)) continue - if(!(D.departmental_flags & linked_imprinter.allowed_department_flags)) + if(!(isnull(linked_imprinter.allowed_department_flags) || (D.departmental_flags & linked_imprinter.allowed_department_flags))) continue var/temp_materials var/check_materials = TRUE @@ -451,7 +451,7 @@ doesn't have toxins access. var/coeff = linked_imprinter.efficiency_coeff for(var/datum/design/D in matching_designs) - if(!(D.departmental_flags & linked_imprinter.allowed_department_flags)) + if(!(isnull(linked_imprinter.allowed_department_flags) || (D.departmental_flags & linked_imprinter.allowed_department_flags))) continue var/temp_materials var/check_materials = TRUE diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm index 3340486d2f..92517591e5 100644 --- a/code/modules/research/xenobiology/xenobiology.dm +++ b/code/modules/research/xenobiology/xenobiology.dm @@ -599,6 +599,8 @@ SM.sentience_act() to_chat(SM, "All at once it makes sense: you know what you are and who you are! Self awareness is yours!") to_chat(SM, "You are grateful to be self aware and owe [user.real_name] a great debt. Serve [user.real_name], and assist [user.p_them()] in completing [user.p_their()] goals at any cost.") + if(SM.flags_2 & HOLOGRAM_2) //Check to see if it's a holodeck creature + to_chat(SM, "You also become depressingly aware that you are not a real creature, but instead a holoform. Your existence is limited to the parameters of the holodeck.") to_chat(user, "[SM] accepts [src] and suddenly becomes attentive and aware. It worked!") SM.copy_known_languages_from(user, FALSE) after_success(user, SM) diff --git a/code/modules/shuttle/assault_pod.dm b/code/modules/shuttle/assault_pod.dm index 57c6e303f7..f2b1bd5e08 100644 --- a/code/modules/shuttle/assault_pod.dm +++ b/code/modules/shuttle/assault_pod.dm @@ -1,6 +1,7 @@ /obj/docking_port/mobile/assault_pod name = "assault pod" id = "steel_rain" + timid = FALSE dwidth = 3 width = 7 height = 7 diff --git a/code/modules/shuttle/elevator.dm b/code/modules/shuttle/elevator.dm index 4584cd5958..959cc2dae7 100644 --- a/code/modules/shuttle/elevator.dm +++ b/code/modules/shuttle/elevator.dm @@ -1,6 +1,7 @@ /obj/docking_port/mobile/elevator name = "elevator" id = "elevator" + timid = FALSE dwidth = 3 width = 7 height = 7 diff --git a/code/modules/shuttle/emergency.dm b/code/modules/shuttle/emergency.dm index 1e78462eaa..de669df143 100644 --- a/code/modules/shuttle/emergency.dm +++ b/code/modules/shuttle/emergency.dm @@ -407,6 +407,7 @@ /obj/docking_port/mobile/pod name = "escape pod" id = "pod" + timid = FALSE dwidth = 1 width = 3 height = 4 diff --git a/code/modules/spells/spell_types/mime.dm b/code/modules/spells/spell_types/mime.dm index d51f89be18..f6b1921e6c 100644 --- a/code/modules/spells/spell_types/mime.dm +++ b/code/modules/spells/spell_types/mime.dm @@ -56,15 +56,12 @@ /obj/effect/proc_holder/spell/targeted/mime/speak/cast(list/targets,mob/user = usr) for(var/mob/living/carbon/human/H in targets) H.mind.miming=!H.mind.miming - GET_COMPONENT_FROM(mood, /datum/component/mood, H) if(H.mind.miming) to_chat(H, "You make a vow of silence.") - if(mood) - mood.clear_event("vow") + H.SendSignal(COMSIG_CLEAR_MOOD_EVENT, "vow") else + H.SendSignal(COMSIG_ADD_MOOD_EVENT, "vow", /datum/mood_event/broken_vow) to_chat(H, "You break your vow of silence.") - if(mood) - mood.add_event("vow", /datum/mood_event/broken_vow) // These spells can only be gotten from the "Guide for Advanced Mimery series" for Mime Traitors. diff --git a/code/modules/spells/spell_types/summonitem.dm b/code/modules/spells/spell_types/summonitem.dm index d568aa67f4..bd5099da68 100644 --- a/code/modules/spells/spell_types/summonitem.dm +++ b/code/modules/spells/spell_types/summonitem.dm @@ -83,9 +83,7 @@ to_chat(C, "The [item_to_retrieve] that was embedded in your [L] has mysteriously vanished. How fortunate!") if(!C.has_embedded_objects()) C.clear_alert("embeddedobject") - GET_COMPONENT_FROM(mood, /datum/component/mood, C) - if(mood) - mood.clear_event("embedded") + C.SendSignal(COMSIG_CLEAR_MOOD_EVENT, "embedded") break else diff --git a/code/modules/surgery/advanced/bioware/nerve_grounding.dm b/code/modules/surgery/advanced/bioware/nerve_grounding.dm index 9868956efe..7834884f52 100644 --- a/code/modules/surgery/advanced/bioware/nerve_grounding.dm +++ b/code/modules/surgery/advanced/bioware/nerve_grounding.dm @@ -12,7 +12,7 @@ /datum/surgery_step/incise, /datum/surgery_step/ground_nerves, /datum/surgery_step/close) - possible_locs = list("chest") + possible_locs = list(BODY_ZONE_CHEST) bioware_target = BIOWARE_NERVES /datum/surgery_step/ground_nerves diff --git a/code/modules/surgery/advanced/bioware/nerve_splicing.dm b/code/modules/surgery/advanced/bioware/nerve_splicing.dm index 54a71e1fc9..770a8d67e6 100644 --- a/code/modules/surgery/advanced/bioware/nerve_splicing.dm +++ b/code/modules/surgery/advanced/bioware/nerve_splicing.dm @@ -12,7 +12,7 @@ /datum/surgery_step/incise, /datum/surgery_step/splice_nerves, /datum/surgery_step/close) - possible_locs = list("chest") + possible_locs = list(BODY_ZONE_CHEST) bioware_target = BIOWARE_NERVES /datum/surgery_step/splice_nerves diff --git a/code/modules/surgery/advanced/bioware/vein_threading.dm b/code/modules/surgery/advanced/bioware/vein_threading.dm index a94caeecaa..99f6506de8 100644 --- a/code/modules/surgery/advanced/bioware/vein_threading.dm +++ b/code/modules/surgery/advanced/bioware/vein_threading.dm @@ -12,7 +12,7 @@ /datum/surgery_step/incise, /datum/surgery_step/thread_veins, /datum/surgery_step/close) - possible_locs = list("chest") + possible_locs = list(BODY_ZONE_CHEST) bioware_target = BIOWARE_CIRCULATION /datum/surgery_step/thread_veins diff --git a/code/modules/surgery/advanced/brainwashing.dm b/code/modules/surgery/advanced/brainwashing.dm index 3cf3c264b3..0c67b8267d 100644 --- a/code/modules/surgery/advanced/brainwashing.dm +++ b/code/modules/surgery/advanced/brainwashing.dm @@ -14,7 +14,7 @@ /datum/surgery_step/close) species = list(/mob/living/carbon/human) - possible_locs = list("head") + possible_locs = list(BODY_ZONE_HEAD) /datum/surgery/advanced/brainwashing/can_start(mob/user, mob/living/carbon/target) if(!..()) diff --git a/code/modules/surgery/advanced/lobotomy.dm b/code/modules/surgery/advanced/lobotomy.dm index 0f4f8daace..94eea5d8ff 100644 --- a/code/modules/surgery/advanced/lobotomy.dm +++ b/code/modules/surgery/advanced/lobotomy.dm @@ -14,7 +14,7 @@ /datum/surgery_step/close) species = list(/mob/living/carbon/human, /mob/living/carbon/monkey) - possible_locs = list("head") + possible_locs = list(BODY_ZONE_HEAD) requires_bodypart_type = 0 /datum/surgery/advanced/lobotomy/can_start(mob/user, mob/living/carbon/target) diff --git a/code/modules/surgery/advanced/necrotic_revival.dm b/code/modules/surgery/advanced/necrotic_revival.dm index 7fb31c9b8e..55f502a3d0 100644 --- a/code/modules/surgery/advanced/necrotic_revival.dm +++ b/code/modules/surgery/advanced/necrotic_revival.dm @@ -12,7 +12,7 @@ /datum/surgery_step/bionecrosis, /datum/surgery_step/close) - possible_locs = list("head") + possible_locs = list(BODY_ZONE_HEAD) /datum/surgery/advanced/necrotic_revival/can_start(mob/user, mob/living/carbon/target) . = ..() diff --git a/code/modules/surgery/advanced/pacification.dm b/code/modules/surgery/advanced/pacification.dm index e9b557cf5c..ed3da3665f 100644 --- a/code/modules/surgery/advanced/pacification.dm +++ b/code/modules/surgery/advanced/pacification.dm @@ -13,7 +13,7 @@ /datum/surgery_step/close) species = list(/mob/living/carbon/human, /mob/living/carbon/monkey) - possible_locs = list("head") + possible_locs = list(BODY_ZONE_HEAD) requires_bodypart_type = 0 /datum/surgery/advanced/pacify/can_start(mob/user, mob/living/carbon/target) diff --git a/code/modules/surgery/advanced/reconstruction.dm b/code/modules/surgery/advanced/reconstruction.dm index 180a7cd81c..9fbf97070c 100644 --- a/code/modules/surgery/advanced/reconstruction.dm +++ b/code/modules/surgery/advanced/reconstruction.dm @@ -16,7 +16,7 @@ /datum/surgery_step/close) species = list(/mob/living/carbon/human, /mob/living/carbon/monkey) - possible_locs = list("chest") + possible_locs = list(BODY_ZONE_CHEST) requires_bodypart_type = 0 /datum/surgery_step/reconstruct diff --git a/code/modules/surgery/advanced/revival.dm b/code/modules/surgery/advanced/revival.dm index 61244066b2..cd602eabdf 100644 --- a/code/modules/surgery/advanced/revival.dm +++ b/code/modules/surgery/advanced/revival.dm @@ -14,7 +14,7 @@ /datum/surgery_step/close) species = list(/mob/living/carbon/human, /mob/living/carbon/monkey) - possible_locs = list("head") + possible_locs = list(BODY_ZONE_HEAD) requires_bodypart_type = 0 /datum/surgery/advanced/revival/can_start(mob/user, mob/living/carbon/target) diff --git a/code/modules/surgery/advanced/viral_bonding.dm b/code/modules/surgery/advanced/viral_bonding.dm index 7b4f986560..61f7185db6 100644 --- a/code/modules/surgery/advanced/viral_bonding.dm +++ b/code/modules/surgery/advanced/viral_bonding.dm @@ -13,7 +13,7 @@ /datum/surgery_step/close) species = list(/mob/living/carbon/human, /mob/living/carbon/monkey) - possible_locs = list("chest") + possible_locs = list(BODY_ZONE_CHEST) /datum/surgery/advanced/viral_bonding/can_start(mob/user, mob/living/carbon/target) if(!..()) diff --git a/code/modules/surgery/amputation.dm b/code/modules/surgery/amputation.dm index 0f8003b9b4..8465a6d332 100644 --- a/code/modules/surgery/amputation.dm +++ b/code/modules/surgery/amputation.dm @@ -3,7 +3,7 @@ name = "amputation" steps = list(/datum/surgery_step/incise, /datum/surgery_step/clamp_bleeders, /datum/surgery_step/retract_skin, /datum/surgery_step/saw, /datum/surgery_step/clamp_bleeders, /datum/surgery_step/sever_limb) species = list(/mob/living/carbon/human, /mob/living/carbon/monkey) - possible_locs = list("r_arm", "l_arm", "l_leg", "r_leg", "head") + possible_locs = list(BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG, BODY_ZONE_HEAD) requires_bodypart_type = 0 diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm index 133c22510e..4261e52e04 100644 --- a/code/modules/surgery/bodyparts/bodyparts.dm +++ b/code/modules/surgery/bodyparts/bodyparts.dm @@ -10,7 +10,7 @@ var/mob/living/carbon/owner = null var/mob/living/carbon/original_owner = null var/status = BODYPART_ORGANIC - var/body_zone //"chest", "l_arm", etc , used for def_zone + var/body_zone //BODY_ZONE_CHEST, BODY_ZONE_L_ARM, etc , used for def_zone var/aux_zone // used for hands var/aux_layer var/body_part = null //bitflag used to check which clothes cover this bodypart @@ -316,7 +316,7 @@ var/icon_gender = (body_gender == FEMALE) ? "f" : "m" //gender of the icon, if applicable - if((body_zone != "head" && body_zone != "chest")) + if((body_zone != BODY_ZONE_HEAD && body_zone != BODY_ZONE_CHEST)) should_draw_gender = FALSE if(status == BODYPART_ORGANIC) @@ -359,11 +359,11 @@ qdel(src) /obj/item/bodypart/chest - name = "chest" + name = BODY_ZONE_CHEST desc = "It's impolite to stare at a person's chest." icon_state = "default_human_chest" max_damage = 200 - body_zone = "chest" + body_zone = BODY_ZONE_CHEST body_part = CHEST px_x = 0 px_y = 0 @@ -413,9 +413,9 @@ icon_state = "default_human_l_arm" attack_verb = list("slapped", "punched") max_damage = 50 - body_zone ="l_arm" + body_zone =BODY_ZONE_L_ARM body_part = ARM_LEFT - aux_zone = "l_hand" + aux_zone = BODY_ZONE_PRECISE_L_HAND aux_layer = HANDS_PART_LAYER held_index = 1 px_x = -6 @@ -449,9 +449,9 @@ icon_state = "default_human_r_arm" attack_verb = list("slapped", "punched") max_damage = 50 - body_zone = "r_arm" + body_zone = BODY_ZONE_R_ARM body_part = ARM_RIGHT - aux_zone = "r_hand" + aux_zone = BODY_ZONE_PRECISE_R_HAND aux_layer = HANDS_PART_LAYER held_index = 2 px_x = 6 @@ -485,7 +485,7 @@ icon_state = "default_human_l_leg" attack_verb = list("kicked", "stomped") max_damage = 50 - body_zone = "l_leg" + body_zone = BODY_ZONE_L_LEG body_part = LEG_LEFT px_x = -2 px_y = 12 @@ -523,7 +523,7 @@ icon_state = "default_human_r_leg" attack_verb = list("kicked", "stomped") max_damage = 50 - body_zone = "r_leg" + body_zone = BODY_ZONE_R_LEG body_part = LEG_RIGHT px_x = 2 px_y = 12 diff --git a/code/modules/surgery/bodyparts/dismemberment.dm b/code/modules/surgery/bodyparts/dismemberment.dm index e80cd5dfd7..aa0b714cc8 100644 --- a/code/modules/surgery/bodyparts/dismemberment.dm +++ b/code/modules/surgery/bodyparts/dismemberment.dm @@ -15,13 +15,11 @@ if(C.has_trait(TRAIT_NODISMEMBER)) return FALSE - var/obj/item/bodypart/affecting = C.get_bodypart("chest") + var/obj/item/bodypart/affecting = C.get_bodypart(BODY_ZONE_CHEST) affecting.receive_damage(CLAMP(brute_dam/2, 15, 50), CLAMP(burn_dam/2, 0, 50)) //Damage the chest based on limb's existing damage C.visible_message("[C]'s [src.name] has been violently dismembered!") C.emote("scream") - GET_COMPONENT_FROM(mood, /datum/component/mood, C) - if(mood) - mood.add_event("dismembered", /datum/mood_event/dismembered) + C.SendSignal(COMSIG_ADD_MOOD_EVENT, "dismembered", /datum/mood_event/dismembered) drop_limb() if(dam_type == BURN) @@ -61,7 +59,7 @@ for(var/X in C.internal_organs) var/obj/item/organ/O = X var/org_zone = check_zone(O.zone) - if(org_zone != "chest") + if(org_zone != BODY_ZONE_CHEST) continue O.Remove(C) O.forceMove(T) @@ -104,9 +102,7 @@ I.forceMove(src) if(!C.has_embedded_objects()) C.clear_alert("embeddedobject") - GET_COMPONENT_FROM(mood, /datum/component/mood, C) - if(mood) - mood.clear_event("embedded") + C.SendSignal(COMSIG_CLEAR_MOOD_EVENT, "embedded") if(!special) if(C.dna) @@ -347,7 +343,7 @@ return 0 /mob/living/carbon/regenerate_limbs(noheal, list/excluded_limbs) - var/list/limb_list = list("head", "chest", "r_arm", "l_arm", "r_leg", "l_leg") + var/list/limb_list = list(BODY_ZONE_HEAD, BODY_ZONE_CHEST, BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_R_LEG, BODY_ZONE_L_LEG) if(excluded_limbs) limb_list -= excluded_limbs for(var/Z in limb_list) diff --git a/code/modules/surgery/bodyparts/head.dm b/code/modules/surgery/bodyparts/head.dm index 50dd2641e4..57b1c09cab 100644 --- a/code/modules/surgery/bodyparts/head.dm +++ b/code/modules/surgery/bodyparts/head.dm @@ -1,10 +1,10 @@ /obj/item/bodypart/head - name = "head" + name = BODY_ZONE_HEAD desc = "Didn't make sense not to live for fun, your brain gets smart but your head gets dumb." icon = 'icons/mob/human_parts.dmi' icon_state = "default_human_head" max_damage = 200 - body_zone = "head" + body_zone = BODY_ZONE_HEAD body_part = HEAD w_class = WEIGHT_CLASS_BULKY //Quite a hefty load slowdown = 1 //Balancing measure diff --git a/code/modules/surgery/bodyparts/helpers.dm b/code/modules/surgery/bodyparts/helpers.dm index 2c90496eb6..12531a9ee5 100644 --- a/code/modules/surgery/bodyparts/helpers.dm +++ b/code/modules/surgery/bodyparts/helpers.dm @@ -4,7 +4,7 @@ /mob/living/carbon/get_bodypart(zone) if(!zone) - zone = "chest" + zone = BODY_ZONE_CHEST for(var/X in bodyparts) var/obj/item/bodypart/L = X if(L.body_zone == zone) @@ -97,14 +97,14 @@ return list() /mob/living/carbon/get_missing_limbs() - var/list/full = list("head", "chest", "r_arm", "l_arm", "r_leg", "l_leg") + var/list/full = list(BODY_ZONE_HEAD, BODY_ZONE_CHEST, BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_R_LEG, BODY_ZONE_L_LEG) for(var/zone in full) if(get_bodypart(zone)) full -= zone return full /mob/living/carbon/alien/larva/get_missing_limbs() - var/list/full = list("head", "chest") + var/list/full = list(BODY_ZONE_HEAD, BODY_ZONE_CHEST) for(var/zone in full) if(get_bodypart(zone)) full -= zone @@ -121,9 +121,7 @@ I.forceMove(T) clear_alert("embeddedobject") - GET_COMPONENT_FROM(mood, /datum/component/mood, src) - if(mood) - mood.clear_event("embedded") + SendSignal(COMSIG_CLEAR_MOOD_EVENT, "embedded") /mob/living/carbon/proc/has_embedded_objects() . = 0 @@ -137,17 +135,17 @@ /mob/living/carbon/proc/newBodyPart(zone, robotic, fixed_icon) var/obj/item/bodypart/L switch(zone) - if("l_arm") + if(BODY_ZONE_L_ARM) L = new /obj/item/bodypart/l_arm() - if("r_arm") + if(BODY_ZONE_R_ARM) L = new /obj/item/bodypart/r_arm() - if("head") + if(BODY_ZONE_HEAD) L = new /obj/item/bodypart/head() - if("l_leg") + if(BODY_ZONE_L_LEG) L = new /obj/item/bodypart/l_leg() - if("r_leg") + if(BODY_ZONE_R_LEG) L = new /obj/item/bodypart/r_leg() - if("chest") + if(BODY_ZONE_CHEST) L = new /obj/item/bodypart/chest() if(L) L.update_limb(fixed_icon, src) @@ -158,17 +156,17 @@ /mob/living/carbon/monkey/newBodyPart(zone, robotic, fixed_icon) var/obj/item/bodypart/L switch(zone) - if("l_arm") + if(BODY_ZONE_L_ARM) L = new /obj/item/bodypart/l_arm/monkey() - if("r_arm") + if(BODY_ZONE_R_ARM) L = new /obj/item/bodypart/r_arm/monkey() - if("head") + if(BODY_ZONE_HEAD) L = new /obj/item/bodypart/head/monkey() - if("l_leg") + if(BODY_ZONE_L_LEG) L = new /obj/item/bodypart/l_leg/monkey() - if("r_leg") + if(BODY_ZONE_R_LEG) L = new /obj/item/bodypart/r_leg/monkey() - if("chest") + if(BODY_ZONE_CHEST) L = new /obj/item/bodypart/chest/monkey() if(L) L.update_limb(fixed_icon, src) @@ -179,9 +177,9 @@ /mob/living/carbon/alien/larva/newBodyPart(zone, robotic, fixed_icon) var/obj/item/bodypart/L switch(zone) - if("head") + if(BODY_ZONE_HEAD) L = new /obj/item/bodypart/head/larva() - if("chest") + if(BODY_ZONE_CHEST) L = new /obj/item/bodypart/chest/larva() if(L) L.update_limb(fixed_icon, src) @@ -192,17 +190,17 @@ /mob/living/carbon/alien/humanoid/newBodyPart(zone, robotic, fixed_icon) var/obj/item/bodypart/L switch(zone) - if("l_arm") + if(BODY_ZONE_L_ARM) L = new /obj/item/bodypart/l_arm/alien() - if("r_arm") + if(BODY_ZONE_R_ARM) L = new /obj/item/bodypart/r_arm/alien() - if("head") + if(BODY_ZONE_HEAD) L = new /obj/item/bodypart/head/alien() - if("l_leg") + if(BODY_ZONE_L_LEG) L = new /obj/item/bodypart/l_leg/alien() - if("r_leg") + if(BODY_ZONE_R_LEG) L = new /obj/item/bodypart/r_leg/alien() - if("chest") + if(BODY_ZONE_CHEST) L = new /obj/item/bodypart/chest/alien() if(L) L.update_limb(fixed_icon, src) diff --git a/code/modules/surgery/brain_surgery.dm b/code/modules/surgery/brain_surgery.dm index 840c40a102..fcd626ad97 100644 --- a/code/modules/surgery/brain_surgery.dm +++ b/code/modules/surgery/brain_surgery.dm @@ -9,7 +9,7 @@ /datum/surgery_step/close) species = list(/mob/living/carbon/human, /mob/living/carbon/monkey) - possible_locs = list("head") + possible_locs = list(BODY_ZONE_HEAD) requires_bodypart_type = 0 /datum/surgery_step/fix_brain diff --git a/code/modules/surgery/cavity_implant.dm b/code/modules/surgery/cavity_implant.dm index 0d13e81188..fe4f1a6edf 100644 --- a/code/modules/surgery/cavity_implant.dm +++ b/code/modules/surgery/cavity_implant.dm @@ -2,7 +2,7 @@ name = "cavity implant" steps = list(/datum/surgery_step/incise, /datum/surgery_step/clamp_bleeders, /datum/surgery_step/retract_skin, /datum/surgery_step/incise, /datum/surgery_step/handle_cavity, /datum/surgery_step/close) species = list(/mob/living/carbon/human, /mob/living/carbon/monkey) - possible_locs = list("chest") + possible_locs = list(BODY_ZONE_CHEST) //handle cavity @@ -14,7 +14,7 @@ var/obj/item/IC = null /datum/surgery_step/handle_cavity/preop(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool, datum/surgery/surgery) - var/obj/item/bodypart/chest/CH = target.get_bodypart("chest") + var/obj/item/bodypart/chest/CH = target.get_bodypart(BODY_ZONE_CHEST) IC = CH.cavity_item if(tool) if(istype(tool, /obj/item/surgical_drapes) || istype(tool, /obj/item/bedsheet)) @@ -27,7 +27,7 @@ user.visible_message("[user] checks for items in [target]'s [target_zone].", "You check for items in [target]'s [target_zone]...") /datum/surgery_step/handle_cavity/success(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool, datum/surgery/surgery) - var/obj/item/bodypart/chest/CH = target.get_bodypart("chest") + var/obj/item/bodypart/chest/CH = target.get_bodypart(BODY_ZONE_CHEST) if(tool) if(IC || tool.w_class > WEIGHT_CLASS_NORMAL || (tool.flags_1 & NODROP_1) || istype(tool, /obj/item/organ)) to_chat(user, "You can't seem to fit [tool] in [target]'s [target_zone]!") diff --git a/code/modules/surgery/core_removal.dm b/code/modules/surgery/core_removal.dm index fe6b9a5b88..98b69b5eae 100644 --- a/code/modules/surgery/core_removal.dm +++ b/code/modules/surgery/core_removal.dm @@ -1,36 +1,36 @@ -/datum/surgery/core_removal - name = "core removal" - steps = list(/datum/surgery_step/incise, /datum/surgery_step/extract_core) - species = list(/mob/living/simple_animal/slime) - possible_locs = list("r_arm","l_arm","r_leg","l_leg","chest","head") - -/datum/surgery/core_removal/can_start(mob/user, mob/living/target) - if(target.stat == DEAD) - return 1 - return 0 - -//extract brain -/datum/surgery_step/extract_core - name = "extract core" - implements = list(/obj/item/hemostat = 100, TOOL_CROWBAR = 100) - time = 16 - -/datum/surgery_step/extract_core/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - user.visible_message("[user] begins to extract a core from [target].", "You begin to extract a core from [target]...") - -/datum/surgery_step/extract_core/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - var/mob/living/simple_animal/slime/slime = target - if(slime.cores > 0) - slime.cores-- - user.visible_message("[user] successfully extracts a core from [target]!", "You successfully extract a core from [target]. [slime.cores] core\s remaining.") - - new slime.coretype(slime.loc) - - if(slime.cores <= 0) - slime.icon_state = "[slime.colour] baby slime dead-nocore" - return 1 - else - return 0 - else +/datum/surgery/core_removal + name = "core removal" + steps = list(/datum/surgery_step/incise, /datum/surgery_step/extract_core) + species = list(/mob/living/simple_animal/slime) + possible_locs = list(BODY_ZONE_R_ARM,BODY_ZONE_L_ARM,BODY_ZONE_R_LEG,BODY_ZONE_L_LEG,BODY_ZONE_CHEST,BODY_ZONE_HEAD) + +/datum/surgery/core_removal/can_start(mob/user, mob/living/target) + if(target.stat == DEAD) + return 1 + return 0 + +//extract brain +/datum/surgery_step/extract_core + name = "extract core" + implements = list(/obj/item/hemostat = 100, TOOL_CROWBAR = 100) + time = 16 + +/datum/surgery_step/extract_core/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) + user.visible_message("[user] begins to extract a core from [target].", "You begin to extract a core from [target]...") + +/datum/surgery_step/extract_core/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) + var/mob/living/simple_animal/slime/slime = target + if(slime.cores > 0) + slime.cores-- + user.visible_message("[user] successfully extracts a core from [target]!", "You successfully extract a core from [target]. [slime.cores] core\s remaining.") + + new slime.coretype(slime.loc) + + if(slime.cores <= 0) + slime.icon_state = "[slime.colour] baby slime dead-nocore" + return 1 + else + return 0 + else to_chat(user, "There aren't any cores left in [target]!") - return 1 \ No newline at end of file + return 1 diff --git a/code/modules/surgery/dental_implant.dm b/code/modules/surgery/dental_implant.dm index 0073c59f8d..4e1d8eb743 100644 --- a/code/modules/surgery/dental_implant.dm +++ b/code/modules/surgery/dental_implant.dm @@ -1,7 +1,7 @@ /datum/surgery/dental_implant name = "dental implant" steps = list(/datum/surgery_step/drill, /datum/surgery_step/insert_pill) - possible_locs = list("mouth") + possible_locs = list(BODY_ZONE_PRECISE_MOUTH) /datum/surgery_step/insert_pill name = "insert pill" diff --git a/code/modules/surgery/eye_surgery.dm b/code/modules/surgery/eye_surgery.dm index dad5c3551c..e700d02be1 100644 --- a/code/modules/surgery/eye_surgery.dm +++ b/code/modules/surgery/eye_surgery.dm @@ -2,7 +2,7 @@ name = "eye surgery" steps = list(/datum/surgery_step/incise, /datum/surgery_step/retract_skin, /datum/surgery_step/clamp_bleeders, /datum/surgery_step/fix_eyes, /datum/surgery_step/close) species = list(/mob/living/carbon/human, /mob/living/carbon/monkey) - possible_locs = list("eyes") + possible_locs = list(BODY_ZONE_PRECISE_EYES) requires_bodypart_type = 0 //fix eyes diff --git a/code/modules/surgery/helpers.dm b/code/modules/surgery/helpers.dm index c3322126e4..2470146532 100644 --- a/code/modules/surgery/helpers.dm +++ b/code/modules/surgery/helpers.dm @@ -128,43 +128,43 @@ eyesmouth_covered |= I.flags_cover switch(location) - if("head") + if(BODY_ZONE_HEAD) if(covered_locations & HEAD) return 0 - if("eyes") + if(BODY_ZONE_PRECISE_EYES) if(covered_locations & HEAD || face_covered & HIDEEYES || eyesmouth_covered & GLASSESCOVERSEYES) return 0 - if("mouth") + if(BODY_ZONE_PRECISE_MOUTH) if(covered_locations & HEAD || face_covered & HIDEFACE || eyesmouth_covered & MASKCOVERSMOUTH || eyesmouth_covered & HEADCOVERSMOUTH) return 0 - if("chest") + if(BODY_ZONE_CHEST) if(covered_locations & CHEST) return 0 - if("groin") + if(BODY_ZONE_PRECISE_GROIN) if(covered_locations & GROIN) return 0 - if("l_arm") + if(BODY_ZONE_L_ARM) if(covered_locations & ARM_LEFT) return 0 - if("r_arm") + if(BODY_ZONE_R_ARM) if(covered_locations & ARM_RIGHT) return 0 - if("l_leg") + if(BODY_ZONE_L_LEG) if(covered_locations & LEG_LEFT) return 0 - if("r_leg") + if(BODY_ZONE_R_LEG) if(covered_locations & LEG_RIGHT) return 0 - if("l_hand") + if(BODY_ZONE_PRECISE_L_HAND) if(covered_locations & HAND_LEFT) return 0 - if("r_hand") + if(BODY_ZONE_PRECISE_R_HAND) if(covered_locations & HAND_RIGHT) return 0 - if("l_foot") + if(BODY_ZONE_PRECISE_L_FOOT) if(covered_locations & FOOT_LEFT) return 0 - if("r_foot") + if(BODY_ZONE_PRECISE_R_FOOT) if(covered_locations & FOOT_RIGHT) return 0 diff --git a/code/modules/surgery/implant_removal.dm b/code/modules/surgery/implant_removal.dm index 7dc2a6afa9..92c5e05246 100644 --- a/code/modules/surgery/implant_removal.dm +++ b/code/modules/surgery/implant_removal.dm @@ -2,7 +2,7 @@ name = "implant removal" steps = list(/datum/surgery_step/incise, /datum/surgery_step/clamp_bleeders, /datum/surgery_step/retract_skin, /datum/surgery_step/extract_implant, /datum/surgery_step/close) species = list(/mob/living/carbon/human, /mob/living/carbon/monkey) - possible_locs = list("chest") + possible_locs = list(BODY_ZONE_CHEST) //extract implant diff --git a/code/modules/surgery/limb_augmentation.dm b/code/modules/surgery/limb_augmentation.dm index 0183b2bba1..10ef58ff18 100644 --- a/code/modules/surgery/limb_augmentation.dm +++ b/code/modules/surgery/limb_augmentation.dm @@ -44,7 +44,7 @@ name = "augmentation" steps = list(/datum/surgery_step/incise, /datum/surgery_step/clamp_bleeders, /datum/surgery_step/retract_skin, /datum/surgery_step/replace, /datum/surgery_step/saw, /datum/surgery_step/add_limb) species = list(/mob/living/carbon/human) - possible_locs = list("r_arm","l_arm","r_leg","l_leg","chest","head") + possible_locs = list(BODY_ZONE_R_ARM,BODY_ZONE_L_ARM,BODY_ZONE_R_LEG,BODY_ZONE_L_LEG,BODY_ZONE_CHEST,BODY_ZONE_HEAD) requires_real_bodypart = TRUE //SURGERY STEP SUCCESSES diff --git a/code/modules/surgery/lipoplasty.dm b/code/modules/surgery/lipoplasty.dm index 002b68fdf9..7bc7553023 100644 --- a/code/modules/surgery/lipoplasty.dm +++ b/code/modules/surgery/lipoplasty.dm @@ -1,7 +1,7 @@ /datum/surgery/lipoplasty name = "lipoplasty" steps = list(/datum/surgery_step/incise, /datum/surgery_step/clamp_bleeders, /datum/surgery_step/cut_fat, /datum/surgery_step/remove_fat, /datum/surgery_step/close) - possible_locs = list("chest") + possible_locs = list(BODY_ZONE_CHEST) /datum/surgery/lipoplasty/can_start(mob/user, mob/living/carbon/target) if(target.has_trait(TRAIT_FAT)) diff --git a/code/modules/surgery/organ_manipulation.dm b/code/modules/surgery/organ_manipulation.dm index d8b4bf4229..3b260017d3 100644 --- a/code/modules/surgery/organ_manipulation.dm +++ b/code/modules/surgery/organ_manipulation.dm @@ -1,7 +1,7 @@ /datum/surgery/organ_manipulation name = "organ manipulation" species = list(/mob/living/carbon/human, /mob/living/carbon/monkey) - possible_locs = list("chest", "head") + possible_locs = list(BODY_ZONE_CHEST, BODY_ZONE_HEAD) requires_real_bodypart = 1 steps = list( /datum/surgery_step/incise, @@ -15,7 +15,7 @@ ) /datum/surgery/organ_manipulation/soft - possible_locs = list("groin", "eyes", "mouth", "l_arm", "r_arm") + possible_locs = list(BODY_ZONE_PRECISE_GROIN, BODY_ZONE_PRECISE_EYES, BODY_ZONE_PRECISE_MOUTH, BODY_ZONE_L_ARM, BODY_ZONE_R_ARM) steps = list( /datum/surgery_step/incise, /datum/surgery_step/retract_skin, @@ -27,7 +27,7 @@ /datum/surgery/organ_manipulation/alien name = "alien organ manipulation" - possible_locs = list("chest", "head", "groin", "eyes", "mouth", "l_arm", "r_arm") + possible_locs = list(BODY_ZONE_CHEST, BODY_ZONE_HEAD, BODY_ZONE_PRECISE_GROIN, BODY_ZONE_PRECISE_EYES, BODY_ZONE_PRECISE_MOUTH, BODY_ZONE_L_ARM, BODY_ZONE_R_ARM) species = list(/mob/living/carbon/alien/humanoid) steps = list( /datum/surgery_step/saw, @@ -40,7 +40,7 @@ /datum/surgery/organ_manipulation/mechanic name = "prosthesis organ manipulation" - possible_locs = list("chest", "head") + possible_locs = list(BODY_ZONE_CHEST, BODY_ZONE_HEAD) requires_bodypart_type = BODYPART_ROBOTIC steps = list( /datum/surgery_step/mechanic_open, @@ -53,7 +53,7 @@ ) /datum/surgery/organ_manipulation/mechanic/soft - possible_locs = list("groin", "eyes", "mouth", "l_arm", "r_arm") + possible_locs = list(BODY_ZONE_PRECISE_GROIN, BODY_ZONE_PRECISE_EYES, BODY_ZONE_PRECISE_MOUTH, BODY_ZONE_L_ARM, BODY_ZONE_R_ARM) steps = list( /datum/surgery_step/mechanic_open, /datum/surgery_step/open_hatch, diff --git a/code/modules/surgery/organs/appendix.dm b/code/modules/surgery/organs/appendix.dm index 4494148082..34a7e16ebf 100644 --- a/code/modules/surgery/organs/appendix.dm +++ b/code/modules/surgery/organs/appendix.dm @@ -1,7 +1,7 @@ /obj/item/organ/appendix name = "appendix" icon_state = "appendix" - zone = "groin" + zone = BODY_ZONE_PRECISE_GROIN slot = ORGAN_SLOT_APPENDIX var/inflamed = 0 diff --git a/code/modules/surgery/organs/augments_arms.dm b/code/modules/surgery/organs/augments_arms.dm index ef0101d36a..4b9a472b32 100644 --- a/code/modules/surgery/organs/augments_arms.dm +++ b/code/modules/surgery/organs/augments_arms.dm @@ -1,7 +1,7 @@ /obj/item/organ/cyberimp/arm name = "arm-mounted implant" desc = "You shouldn't see this! Adminhelp and report this as an issue on github!" - zone = "r_arm" + zone = BODY_ZONE_R_ARM icon_state = "implant-toolkit" w_class = WEIGHT_CLASS_NORMAL actions_types = list(/datum/action/item_action/organ_action/toggle) @@ -24,31 +24,31 @@ /obj/item/organ/cyberimp/arm/proc/SetSlotFromZone() switch(zone) - if("l_arm") + if(BODY_ZONE_L_ARM) slot = ORGAN_SLOT_LEFT_ARM_AUG - if("r_arm") + if(BODY_ZONE_R_ARM) slot = ORGAN_SLOT_RIGHT_ARM_AUG else CRASH("Invalid zone for [type]") /obj/item/organ/cyberimp/arm/update_icon() - if(zone == "r_arm") + if(zone == BODY_ZONE_R_ARM) transform = null else // Mirroring the icon transform = matrix(-1, 0, 0, 0, 1, 0) /obj/item/organ/cyberimp/arm/examine(mob/user) ..() - to_chat(user, "[src] is assembled in the [zone == "r_arm" ? "right" : "left"] arm configuration. You can use a screwdriver to reassemble it.") + to_chat(user, "[src] is assembled in the [zone == BODY_ZONE_R_ARM ? "right" : "left"] arm configuration. You can use a screwdriver to reassemble it.") /obj/item/organ/cyberimp/arm/screwdriver_act(mob/living/user, obj/item/I) I.play_tool_sound(src) - if(zone == "r_arm") - zone = "l_arm" + if(zone == BODY_ZONE_R_ARM) + zone = BODY_ZONE_L_ARM else - zone = "r_arm" + zone = BODY_ZONE_R_ARM SetSlotFromZone() - to_chat(user, "You modify [src] to be installed on the [zone == "r_arm" ? "right" : "left"] arm.") + to_chat(user, "You modify [src] to be installed on the [zone == BODY_ZONE_R_ARM ? "right" : "left"] arm.") update_icon() /obj/item/organ/cyberimp/arm/Remove(mob/living/carbon/M, special = 0) @@ -66,8 +66,8 @@ if(!holder || (holder in src)) return - owner.visible_message("[owner] retracts [holder] back into [owner.p_their()] [zone == "r_arm" ? "right" : "left"] arm.", - "[holder] snaps back into your [zone == "r_arm" ? "right" : "left"] arm.", + owner.visible_message("[owner] retracts [holder] back into [owner.p_their()] [zone == BODY_ZONE_R_ARM ? "right" : "left"] arm.", + "[holder] snaps back into your [zone == BODY_ZONE_R_ARM ? "right" : "left"] arm.", "You hear a short mechanical noise.") if(istype(holder, /obj/item/device/assembly/flash/armimplant)) @@ -102,7 +102,7 @@ else to_chat(owner, "You drop [arm_item] to activate [src]!") - var/result = (zone == "r_arm" ? owner.put_in_r_hand(holder) : owner.put_in_l_hand(holder)) + var/result = (zone == BODY_ZONE_R_ARM ? owner.put_in_r_hand(holder) : owner.put_in_l_hand(holder)) if(!result) to_chat(owner, "Your [name] fails to activate!") return @@ -110,8 +110,8 @@ // Activate the hand that now holds our item. owner.swap_hand(result)//... or the 1st hand if the index gets lost somehow - owner.visible_message("[owner] extends [holder] from [owner.p_their()] [zone == "r_arm" ? "right" : "left"] arm.", - "You extend [holder] from your [zone == "r_arm" ? "right" : "left"] arm.", + owner.visible_message("[owner] extends [holder] from [owner.p_their()] [zone == BODY_ZONE_R_ARM ? "right" : "left"] arm.", + "You extend [holder] from your [zone == BODY_ZONE_R_ARM ? "right" : "left"] arm.", "You hear a short mechanical noise.") playsound(get_turf(owner), 'sound/mecha/mechmove03.ogg', 50, 1) @@ -136,9 +136,9 @@ /obj/item/organ/cyberimp/arm/gun/emp_act(severity) if(prob(30/severity) && owner && !crit_fail) Retract() - owner.visible_message("A loud bang comes from [owner]\'s [zone == "r_arm" ? "right" : "left"] arm!") + owner.visible_message("A loud bang comes from [owner]\'s [zone == BODY_ZONE_R_ARM ? "right" : "left"] arm!") playsound(get_turf(owner), 'sound/weapons/flashbang.ogg', 100, 1) - to_chat(owner, "You feel an explosion erupt inside your [zone == "r_arm" ? "right" : "left"] arm as your implant breaks!") + to_chat(owner, "You feel an explosion erupt inside your [zone == BODY_ZONE_R_ARM ? "right" : "left"] arm as your implant breaks!") owner.adjust_fire_stacks(20) owner.IgniteMob() owner.adjustFireLoss(25) @@ -154,7 +154,7 @@ contents = newlist(/obj/item/gun/energy/laser/mounted) /obj/item/organ/cyberimp/arm/gun/laser/l - zone = "l_arm" + zone = BODY_ZONE_L_ARM /obj/item/organ/cyberimp/arm/gun/taser @@ -164,7 +164,7 @@ contents = newlist(/obj/item/gun/energy/e_gun/advtaser/mounted) /obj/item/organ/cyberimp/arm/gun/taser/l - zone = "l_arm" + zone = BODY_ZONE_L_ARM /obj/item/organ/cyberimp/arm/toolset name = "integrated toolset implant" @@ -173,7 +173,7 @@ /obj/item/crowbar/cyborg, /obj/item/wirecutters/cyborg, /obj/item/device/multitool/cyborg) /obj/item/organ/cyberimp/arm/toolset/l - zone = "l_arm" + zone = BODY_ZONE_L_ARM /obj/item/organ/cyberimp/arm/toolset/emag_act() if(!(locate(/obj/item/kitchen/knife/combat/cyborg) in items_list)) diff --git a/code/modules/surgery/organs/augments_chest.dm b/code/modules/surgery/organs/augments_chest.dm index ad8727ef50..e50e0e3fc3 100644 --- a/code/modules/surgery/organs/augments_chest.dm +++ b/code/modules/surgery/organs/augments_chest.dm @@ -3,7 +3,7 @@ desc = "Implants for the organs in your torso." icon_state = "chest_implant" implant_overlay = "chest_implant_overlay" - zone = "chest" + zone = BODY_ZONE_CHEST /obj/item/organ/cyberimp/chest/nutriment name = "Nutriment pump implant" diff --git a/code/modules/surgery/organs/augments_eyes.dm b/code/modules/surgery/organs/augments_eyes.dm index 37cbb9e022..86732ae2eb 100644 --- a/code/modules/surgery/organs/augments_eyes.dm +++ b/code/modules/surgery/organs/augments_eyes.dm @@ -4,7 +4,7 @@ icon_state = "eye_implant" implant_overlay = "eye_implant_overlay" slot = ORGAN_SLOT_EYES - zone = "eyes" + zone = BODY_ZONE_PRECISE_EYES w_class = WEIGHT_CLASS_TINY // HUD implants diff --git a/code/modules/surgery/organs/augments_internal.dm b/code/modules/surgery/organs/augments_internal.dm index 7e209a1de0..0e9e08bf08 100644 --- a/code/modules/surgery/organs/augments_internal.dm +++ b/code/modules/surgery/organs/augments_internal.dm @@ -26,7 +26,7 @@ desc = "Injectors of extra sub-routines for the brain." icon_state = "brain_implant" implant_overlay = "brain_implant_overlay" - zone = "head" + zone = BODY_ZONE_HEAD w_class = WEIGHT_CLASS_TINY /obj/item/organ/cyberimp/brain/emp_act(severity) @@ -125,7 +125,7 @@ //[[[[MOUTH]]]] /obj/item/organ/cyberimp/mouth - zone = "mouth" + zone = BODY_ZONE_PRECISE_MOUTH /obj/item/organ/cyberimp/mouth/breathing_tube name = "breathing tube implant" diff --git a/code/modules/surgery/organs/ears.dm b/code/modules/surgery/organs/ears.dm index 83646ab4d0..db90bbf924 100644 --- a/code/modules/surgery/organs/ears.dm +++ b/code/modules/surgery/organs/ears.dm @@ -2,7 +2,7 @@ name = "ears" icon_state = "ears" desc = "There are three parts to the ear. Inner, middle and outer. Only one of these parts should be normally visible." - zone = "head" + zone = BODY_ZONE_HEAD slot = ORGAN_SLOT_EARS gender = PLURAL diff --git a/code/modules/surgery/organs/eyes.dm b/code/modules/surgery/organs/eyes.dm index b840d82670..456ff681fe 100644 --- a/code/modules/surgery/organs/eyes.dm +++ b/code/modules/surgery/organs/eyes.dm @@ -1,8 +1,8 @@ /obj/item/organ/eyes - name = "eyes" + name = BODY_ZONE_PRECISE_EYES icon_state = "eyeballs" desc = "I see you!" - zone = "eyes" + zone = BODY_ZONE_PRECISE_EYES slot = ORGAN_SLOT_EYES gender = PLURAL diff --git a/code/modules/surgery/organs/heart.dm b/code/modules/surgery/organs/heart.dm index f36d9c7a14..6de223e67b 100644 --- a/code/modules/surgery/organs/heart.dm +++ b/code/modules/surgery/organs/heart.dm @@ -2,7 +2,7 @@ name = "heart" desc = "I feel bad for the heartless bastard who lost this." icon_state = "heart-on" - zone = "chest" + zone = BODY_ZONE_CHEST slot = ORGAN_SLOT_HEART // Heart attack code is in code/modules/mob/living/carbon/human/life.dm var/beating = 1 diff --git a/code/modules/surgery/organs/helpers.dm b/code/modules/surgery/organs/helpers.dm index f58b18d164..8728544323 100644 --- a/code/modules/surgery/organs/helpers.dm +++ b/code/modules/surgery/organs/helpers.dm @@ -1,29 +1,29 @@ -/mob/proc/getorgan(typepath) - return - -/mob/proc/getorganszone(zone) - return - -/mob/proc/getorganslot(slot) - return - -/mob/living/carbon/getorgan(typepath) - return (locate(typepath) in internal_organs) - -/mob/living/carbon/getorganszone(zone, subzones = 0) - var/list/returnorg = list() - if(subzones) - // Include subzones - groin for chest, eyes and mouth for head - if(zone == "head") - returnorg = getorganszone("eyes") + getorganszone("mouth") - if(zone == "chest") - returnorg = getorganszone("groin") - - for(var/X in internal_organs) - var/obj/item/organ/O = X - if(zone == O.zone) - returnorg += O - return returnorg - -/mob/living/carbon/getorganslot(slot) +/mob/proc/getorgan(typepath) + return + +/mob/proc/getorganszone(zone) + return + +/mob/proc/getorganslot(slot) + return + +/mob/living/carbon/getorgan(typepath) + return (locate(typepath) in internal_organs) + +/mob/living/carbon/getorganszone(zone, subzones = 0) + var/list/returnorg = list() + if(subzones) + // Include subzones - groin for chest, eyes and mouth for head + if(zone == BODY_ZONE_HEAD) + returnorg = getorganszone(BODY_ZONE_PRECISE_EYES) + getorganszone(BODY_ZONE_PRECISE_MOUTH) + if(zone == BODY_ZONE_CHEST) + returnorg = getorganszone(BODY_ZONE_PRECISE_GROIN) + + for(var/X in internal_organs) + var/obj/item/organ/O = X + if(zone == O.zone) + returnorg += O + return returnorg + +/mob/living/carbon/getorganslot(slot) return internal_organs_slot[slot] diff --git a/code/modules/surgery/organs/liver.dm b/code/modules/surgery/organs/liver.dm index 7e106e0b45..0cc7af703c 100755 --- a/code/modules/surgery/organs/liver.dm +++ b/code/modules/surgery/organs/liver.dm @@ -6,7 +6,7 @@ name = "liver" icon_state = "liver" w_class = WEIGHT_CLASS_NORMAL - zone = "chest" + zone = BODY_ZONE_CHEST slot = ORGAN_SLOT_LIVER desc = "Pairing suggestion: chianti and fava beans." var/damage = 0 //liver damage, 0 is no damage, damage=maxHealth causes liver failure diff --git a/code/modules/surgery/organs/lungs.dm b/code/modules/surgery/organs/lungs.dm index 737ffbe6e8..aaed5757d1 100644 --- a/code/modules/surgery/organs/lungs.dm +++ b/code/modules/surgery/organs/lungs.dm @@ -11,7 +11,7 @@ /obj/item/organ/lungs name = "lungs" icon_state = "lungs" - zone = "chest" + zone = BODY_ZONE_CHEST slot = ORGAN_SLOT_LUNGS gender = PLURAL w_class = WEIGHT_CLASS_NORMAL diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm index fe613af015..1408bff60c 100644 --- a/code/modules/surgery/organs/organ_internal.dm +++ b/code/modules/surgery/organs/organ_internal.dm @@ -5,7 +5,7 @@ var/status = ORGAN_ORGANIC w_class = WEIGHT_CLASS_SMALL throwforce = 0 - var/zone = "chest" + var/zone = BODY_ZONE_CHEST var/slot // DO NOT add slots with matching names to different zones - it will break internal_organs_slot list! var/vital = 0 diff --git a/code/modules/surgery/organs/stomach.dm b/code/modules/surgery/organs/stomach.dm index d54f94b0be..21b6f6abb3 100755 --- a/code/modules/surgery/organs/stomach.dm +++ b/code/modules/surgery/organs/stomach.dm @@ -2,7 +2,7 @@ name = "stomach" icon_state = "stomach" w_class = WEIGHT_CLASS_NORMAL - zone = "chest" + zone = BODY_ZONE_CHEST slot = ORGAN_SLOT_STOMACH attack_verb = list("gored", "squished", "slapped", "digested") desc = "Onaka ga suite imasu." @@ -36,33 +36,25 @@ H.blur_eyes(3) //We need to add more shit down here H.adjust_disgust(-0.5 * disgust_metabolism) - GET_COMPONENT_FROM(mood, /datum/component/mood, H) switch(H.disgust) if(0 to DISGUST_LEVEL_GROSS) H.clear_alert("disgust") - if(mood) - mood.clear_event("disgust") + H.SendSignal(COMSIG_CLEAR_MOOD_EVENT, "disgust") if(DISGUST_LEVEL_GROSS to DISGUST_LEVEL_VERYGROSS) H.throw_alert("disgust", /obj/screen/alert/gross) - if(mood) - mood.add_event("disgust", /datum/mood_event/disgust/gross) + H.SendSignal(COMSIG_ADD_MOOD_EVENT, "disgust", /datum/mood_event/disgust/gross) if(DISGUST_LEVEL_VERYGROSS to DISGUST_LEVEL_DISGUSTED) H.throw_alert("disgust", /obj/screen/alert/verygross) - if(mood) - mood.add_event("disgust", /datum/mood_event/disgust/verygross) + H.SendSignal(COMSIG_ADD_MOOD_EVENT, "disgust", /datum/mood_event/disgust/verygross) if(DISGUST_LEVEL_DISGUSTED to INFINITY) H.throw_alert("disgust", /obj/screen/alert/disgusted) - if(mood) - mood.add_event("disgust", /datum/mood_event/disgust/disgusted) + H.SendSignal(COMSIG_ADD_MOOD_EVENT, "disgust", /datum/mood_event/disgust/disgusted) /obj/item/organ/stomach/Remove(mob/living/carbon/M, special = 0) var/mob/living/carbon/human/H = owner if(istype(H)) H.clear_alert("disgust") - GET_COMPONENT_FROM(mood, /datum/component/mood, H) - if(mood) - mood.clear_event("disgust") - + H.SendSignal(COMSIG_CLEAR_MOOD_EVENT, "disgust") ..() /obj/item/organ/stomach/fly diff --git a/code/modules/surgery/organs/tails.dm b/code/modules/surgery/organs/tails.dm index 9fd4a337a0..076db2390d 100644 --- a/code/modules/surgery/organs/tails.dm +++ b/code/modules/surgery/organs/tails.dm @@ -4,7 +4,7 @@ name = "tail" desc = "A severed tail. What did you cut this off of?" icon_state = "severedtail" - zone = "groin" + zone = BODY_ZONE_PRECISE_GROIN slot = ORGAN_SLOT_TAIL var/tail_type = "None" diff --git a/code/modules/surgery/organs/tongue.dm b/code/modules/surgery/organs/tongue.dm index 09926a3fdc..90f0cde100 100644 --- a/code/modules/surgery/organs/tongue.dm +++ b/code/modules/surgery/organs/tongue.dm @@ -2,7 +2,7 @@ name = "tongue" desc = "A fleshy muscle mostly used for lying." icon_state = "tonguenormal" - zone = "mouth" + zone = BODY_ZONE_PRECISE_MOUTH slot = ORGAN_SLOT_TONGUE attack_verb = list("licked", "slobbered", "slapped", "frenched", "tongued") var/list/languages_possible diff --git a/code/modules/surgery/organs/vocal_cords.dm b/code/modules/surgery/organs/vocal_cords.dm index a07722cb3b..480c65fe5b 100644 --- a/code/modules/surgery/organs/vocal_cords.dm +++ b/code/modules/surgery/organs/vocal_cords.dm @@ -6,7 +6,7 @@ /obj/item/organ/vocal_cords //organs that are activated through speech with the :x channel name = "vocal cords" icon_state = "appendix" - zone = "mouth" + zone = BODY_ZONE_PRECISE_MOUTH slot = ORGAN_SLOT_VOICE gender = PLURAL var/list/spans = null @@ -23,7 +23,7 @@ /obj/item/organ/adamantine_resonator name = "adamantine resonator" desc = "Fragments of adamantine exist in all golems, stemming from their origins as purely magical constructs. These are used to \"hear\" messages from their leaders." - zone = "head" + zone = BODY_ZONE_HEAD slot = ORGAN_SLOT_ADAMANTINE_RESONATOR icon_state = "adamantine_resonator" @@ -312,7 +312,7 @@ cooldown = COOLDOWN_DAMAGE for(var/V in listeners) var/mob/living/L = V - L.apply_damage(15 * power_multiplier, def_zone = "chest") + L.apply_damage(15 * power_multiplier, def_zone = BODY_ZONE_CHEST) //BLEED else if((findtext(message, bleed_words))) diff --git a/code/modules/surgery/plastic_surgery.dm b/code/modules/surgery/plastic_surgery.dm index fbb2e64cd2..3a3dd6a1dd 100644 --- a/code/modules/surgery/plastic_surgery.dm +++ b/code/modules/surgery/plastic_surgery.dm @@ -1,7 +1,7 @@ /datum/surgery/plastic_surgery name = "plastic surgery" steps = list(/datum/surgery_step/incise, /datum/surgery_step/retract_skin, /datum/surgery_step/reshape_face, /datum/surgery_step/close) - possible_locs = list("head") + possible_locs = list(BODY_ZONE_HEAD) //reshape_face /datum/surgery_step/reshape_face diff --git a/code/modules/surgery/prosthetic_replacement.dm b/code/modules/surgery/prosthetic_replacement.dm index bb5301d79e..9032964ae4 100644 --- a/code/modules/surgery/prosthetic_replacement.dm +++ b/code/modules/surgery/prosthetic_replacement.dm @@ -2,7 +2,7 @@ name = "prosthetic replacement" steps = list(/datum/surgery_step/incise, /datum/surgery_step/clamp_bleeders, /datum/surgery_step/retract_skin, /datum/surgery_step/add_prosthetic) species = list(/mob/living/carbon/human, /mob/living/carbon/monkey) - possible_locs = list("r_arm", "l_arm", "l_leg", "r_leg", "head") + possible_locs = list(BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG, BODY_ZONE_HEAD) requires_bodypart = FALSE //need a missing limb requires_bodypart_type = 0 @@ -52,7 +52,7 @@ else to_chat(user, "[tool] isn't the right type for [parse_zone(target_zone)].") return -1 - else if(target_zone == "l_arm" || target_zone == "r_arm") + else if(target_zone == BODY_ZONE_L_ARM || target_zone == BODY_ZONE_R_ARM) user.visible_message("[user] begins to attach [tool] onto [target].", "You begin to attach [tool] onto [target]...") else to_chat(user, "[tool] must be installed onto an arm.") @@ -79,10 +79,10 @@ qdel(tool) if(istype(tool, /obj/item/twohanded/required/chainsaw)) var/obj/item/mounted_chainsaw/new_arm = new(target) - target_zone == "r_arm" ? target.put_in_r_hand(new_arm) : target.put_in_l_hand(new_arm) + target_zone == BODY_ZONE_R_ARM ? target.put_in_r_hand(new_arm) : target.put_in_l_hand(new_arm) return 1 else if(istype(tool, /obj/item/melee/synthetic_arm_blade)) var/obj/item/melee/arm_blade/new_arm = new(target,TRUE,TRUE) - target_zone == "r_arm" ? target.put_in_r_hand(new_arm) : target.put_in_l_hand(new_arm) + target_zone == BODY_ZONE_R_ARM ? target.put_in_r_hand(new_arm) : target.put_in_l_hand(new_arm) return 1 diff --git a/code/modules/surgery/remove_embedded_object.dm b/code/modules/surgery/remove_embedded_object.dm index 8f3fad38f8..548a73627d 100644 --- a/code/modules/surgery/remove_embedded_object.dm +++ b/code/modules/surgery/remove_embedded_object.dm @@ -1,7 +1,7 @@ /datum/surgery/embedded_removal name = "removal of embedded objects" steps = list(/datum/surgery_step/incise, /datum/surgery_step/clamp_bleeders, /datum/surgery_step/retract_skin, /datum/surgery_step/remove_object) - possible_locs = list("r_arm","l_arm","r_leg","l_leg","chest","head") + possible_locs = list(BODY_ZONE_R_ARM,BODY_ZONE_L_ARM,BODY_ZONE_R_LEG,BODY_ZONE_L_LEG,BODY_ZONE_CHEST,BODY_ZONE_HEAD) /datum/surgery_step/remove_object @@ -30,9 +30,7 @@ L.embedded_objects -= I if(!H.has_embedded_objects()) H.clear_alert("embeddedobject") - GET_COMPONENT_FROM(mood, /datum/component/mood, H) - if(mood) - mood.clear_event("embedded") + H.SendSignal(COMSIG_CLEAR_MOOD_EVENT, "embedded") if(objects > 0) user.visible_message("[user] successfully removes [objects] objects from [H]'s [L]!", "You successfully remove [objects] objects from [H]'s [L.name].") diff --git a/code/modules/surgery/surgery.dm b/code/modules/surgery/surgery.dm index 7b40b790fa..ff4703c601 100644 --- a/code/modules/surgery/surgery.dm +++ b/code/modules/surgery/surgery.dm @@ -5,7 +5,7 @@ var/step_in_progress = 0 //Actively performing a Surgery var/can_cancel = 1 //Can cancel this surgery after step 1 with cautery var/list/species = list(/mob/living/carbon/human) //Acceptable Species - var/location = "chest" //Surgery location + var/location = BODY_ZONE_CHEST //Surgery location var/requires_bodypart_type = BODYPART_ORGANIC //Prevents you from performing an operation on incorrect limbs. 0 for any limb type var/list/possible_locs = list() //Multiple locations var/ignore_clothes = 0 //This surgery ignores clothes diff --git a/code/modules/zombie/items.dm b/code/modules/zombie/items.dm index cc42b7a67e..154941ce70 100644 --- a/code/modules/zombie/items.dm +++ b/code/modules/zombie/items.dm @@ -54,7 +54,7 @@ user.visible_message("[user] is ripping [user.p_their()] brains out! It looks like [user.p_theyre()] trying to commit suicide!") if(isliving(user)) var/mob/living/L = user - var/obj/item/bodypart/O = L.get_bodypart("head") + var/obj/item/bodypart/O = L.get_bodypart(BODY_ZONE_HEAD) if(O) O.dismember() return (BRUTELOSS) diff --git a/code/modules/zombie/organs.dm b/code/modules/zombie/organs.dm index 119ed27926..12aa2e41f6 100644 --- a/code/modules/zombie/organs.dm +++ b/code/modules/zombie/organs.dm @@ -1,7 +1,7 @@ /obj/item/organ/zombie_infection name = "festering ooze" desc = "A black web of pus and viscera." - zone = "head" + zone = BODY_ZONE_HEAD slot = ORGAN_SLOT_ZOMBIE icon_state = "blacktumor" var/datum/species/old_species = /datum/species/human diff --git a/icons/mob/custom_w.dmi b/icons/mob/custom_w.dmi index bda9dcea61..99e63a2524 100644 Binary files a/icons/mob/custom_w.dmi and b/icons/mob/custom_w.dmi differ diff --git a/icons/mob/hud.dmi b/icons/mob/hud.dmi index c27834de5c..d694c0243a 100644 Binary files a/icons/mob/hud.dmi and b/icons/mob/hud.dmi differ diff --git a/icons/mob/inhands/weapons/swords_lefthand.dmi b/icons/mob/inhands/weapons/swords_lefthand.dmi index d6950f4e1e..8ac9feaae7 100644 Binary files a/icons/mob/inhands/weapons/swords_lefthand.dmi and b/icons/mob/inhands/weapons/swords_lefthand.dmi differ diff --git a/icons/mob/inhands/weapons/swords_righthand.dmi b/icons/mob/inhands/weapons/swords_righthand.dmi index 9655829113..4a770d0cbd 100644 Binary files a/icons/mob/inhands/weapons/swords_righthand.dmi and b/icons/mob/inhands/weapons/swords_righthand.dmi differ diff --git a/icons/mob/screen_gen.dmi b/icons/mob/screen_gen.dmi index 2c234e9894..28e37d526c 100644 Binary files a/icons/mob/screen_gen.dmi and b/icons/mob/screen_gen.dmi differ diff --git a/icons/obj/assemblies/electronic_setups.dmi b/icons/obj/assemblies/electronic_setups.dmi index 643d652be1..f18018c0ae 100644 Binary files a/icons/obj/assemblies/electronic_setups.dmi and b/icons/obj/assemblies/electronic_setups.dmi differ diff --git a/icons/obj/assemblies/electronic_tools.dmi b/icons/obj/assemblies/electronic_tools.dmi index 5c0b2faaa9..975f2fc9a8 100644 Binary files a/icons/obj/assemblies/electronic_tools.dmi and b/icons/obj/assemblies/electronic_tools.dmi differ diff --git a/icons/obj/custom.dmi b/icons/obj/custom.dmi index 8ed3bb4eca..d59ce84fdf 100644 Binary files a/icons/obj/custom.dmi and b/icons/obj/custom.dmi differ diff --git a/modular_citadel/code/game/objects/items/stunsword.dm b/modular_citadel/code/game/objects/items/stunsword.dm index 3d541bb139..11e37eafa0 100644 --- a/modular_citadel/code/game/objects/items/stunsword.dm +++ b/modular_citadel/code/game/objects/items/stunsword.dm @@ -28,4 +28,6 @@ else to_chat(user,"Remove the powercell first!") //We make this check because the stunsword starts without a battery. else - to_chat(user, " You can't modify [O] with this kit!") \ No newline at end of file + to_chat(user, " You can't modify [O] with this kit!") + + diff --git a/modular_citadel/code/modules/client/loadout/__donator.dm b/modular_citadel/code/modules/client/loadout/__donator.dm index 69015b064d..cbafd69f15 100644 --- a/modular_citadel/code/modules/client/loadout/__donator.dm +++ b/modular_citadel/code/modules/client/loadout/__donator.dm @@ -209,7 +209,7 @@ name = "Puffy Dress" category = slot_wear_suit path = /obj/item/clothing/suit/puffydress - //ckeywhitelist = //Don't know their ckey yet + ckeywhitelist = ("Stallingratt") /datum/gear/labredblack name = "Black and Red Coat" @@ -217,6 +217,18 @@ path = /obj/item/clothing/suit/toggle/labcoat/labredblack ckeywhitelist = list("blakeryan") +/datum/gear/darksabre + name = "Dark Sabre" + category = slot_in_backpack + path = /obj/item/toy/sword/darksabre + ckeywhitelist = list("inferno707") + +datum/gear/darksabresheath + name = "Dark Sabre Sheath" + category = slot_in_backpack + path = /obj/item/storage/belt/sabre/darksabre + ckeywhitelist = list("inferno707") + diff --git a/modular_citadel/code/modules/custom_loadout/custom_items.dm b/modular_citadel/code/modules/custom_loadout/custom_items.dm index 8001d71874..74c93859d3 100644 --- a/modular_citadel/code/modules/custom_loadout/custom_items.dm +++ b/modular_citadel/code/modules/custom_loadout/custom_items.dm @@ -322,3 +322,31 @@ H.arousalloss = H.max_arousal / 3 if(prob(5) && H.hallucination < 15) H.hallucination += 10 + +/obj/item/toy/sword/darksabre + name = "Kiara's Sabre" + desc = "This blade looks as dangerous as its owner." + icon = 'icons/obj/custom.dmi' + icon_override = 'icons/mob/custom_w.dmi' + icon_state = "darksabre" + item_state = "darksabre" + lefthand_file = 'modular_citadel/icons/mob/inhands/stunsword_left.dmi' + righthand_file = 'modular_citadel/icons/mob/inhands/stunsword_right.dmi' + w_class = WEIGHT_CLASS_SMALL + attack_verb = list("attacked", "struck", "hit") + + +/obj/item/storage/belt/sabre/darksabre + name = "Ornate Sheathe" + desc = "An ornate and rather sinister looking sabre sheathe." + icon = 'icons/obj/custom.dmi' + icon_override = 'icons/mob/custom_w.dmi' + icon_state = "darksheath" + item_state = "darksheath" + storage_slots = 1 + rustle_jimmies = FALSE + w_class = WEIGHT_CLASS_BULKY + max_w_class = WEIGHT_CLASS_BULKY + can_hold = list( + /obj/item/toy/sword/darksabre + ) diff --git a/modular_citadel/code/modules/mentor/mentorpm.dm b/modular_citadel/code/modules/mentor/mentorpm.dm index dc63cb01d2..4184a4abef 100644 --- a/modular_citadel/code/modules/mentor/mentorpm.dm +++ b/modular_citadel/code/modules/mentor/mentorpm.dm @@ -31,11 +31,15 @@ else mentorhelp(msg) //Mentor we are replying to left. Mentorhelp instead(check below) return + if(is_mentor(whom)) + to_chat(GLOB.admins | GLOB.mentors, "[src] has started replying to [whom]'s mhelp.") + //get message text, limit it's length.and clean/escape html if(!msg) msg = input(src,"Message:", "Private message") as text|null - - if(!msg) + + if(!msg && is_mentor(whom)) + to_chat(GLOB.admins | GLOB.mentors, "[src] has stopped their reply to [whom]'s mhelp.") return if(!C) @@ -50,7 +54,9 @@ return msg = sanitize(copytext(msg,1,MAX_MESSAGE_LEN)) - if(!msg) return + if(!msg && is_mentor(whom)) + to_chat(GLOB.admins | GLOB.mentors, "[src] has stopped their reply to [whom]'s mhelp.") + return log_mentor("Mentor PM: [key_name(src)]->[key_name(C)]: [msg]") diff --git a/modular_citadel/icons/mob/inhands/stunsword_left.dmi b/modular_citadel/icons/mob/inhands/stunsword_left.dmi index 68adffaa61..0ecc02d31a 100644 Binary files a/modular_citadel/icons/mob/inhands/stunsword_left.dmi and b/modular_citadel/icons/mob/inhands/stunsword_left.dmi differ diff --git a/modular_citadel/icons/mob/inhands/stunsword_right.dmi b/modular_citadel/icons/mob/inhands/stunsword_right.dmi index 57ef58126e..76fa4d57c9 100644 Binary files a/modular_citadel/icons/mob/inhands/stunsword_right.dmi and b/modular_citadel/icons/mob/inhands/stunsword_right.dmi differ diff --git a/sound/instruments/piano/Ab1.ogg b/sound/instruments/piano/Ab1.ogg deleted file mode 100644 index 0c5ae36216..0000000000 Binary files a/sound/instruments/piano/Ab1.ogg and /dev/null differ diff --git a/sound/instruments/piano/Ab2.ogg b/sound/instruments/piano/Ab2.ogg index 4dabf2cc82..22591b0f2a 100644 Binary files a/sound/instruments/piano/Ab2.ogg and b/sound/instruments/piano/Ab2.ogg differ diff --git a/sound/instruments/piano/Ab3.ogg b/sound/instruments/piano/Ab3.ogg index beb96005de..149fa26c89 100644 Binary files a/sound/instruments/piano/Ab3.ogg and b/sound/instruments/piano/Ab3.ogg differ diff --git a/sound/instruments/piano/Ab4.ogg b/sound/instruments/piano/Ab4.ogg index bfcf301877..5a64cb10f8 100644 Binary files a/sound/instruments/piano/Ab4.ogg and b/sound/instruments/piano/Ab4.ogg differ diff --git a/sound/instruments/piano/Ab5.ogg b/sound/instruments/piano/Ab5.ogg index b95acaf5a0..8635b8a624 100644 Binary files a/sound/instruments/piano/Ab5.ogg and b/sound/instruments/piano/Ab5.ogg differ diff --git a/sound/instruments/piano/Ab6.ogg b/sound/instruments/piano/Ab6.ogg index 501f51b3e1..b771a29f27 100644 Binary files a/sound/instruments/piano/Ab6.ogg and b/sound/instruments/piano/Ab6.ogg differ diff --git a/sound/instruments/piano/Ab7.ogg b/sound/instruments/piano/Ab7.ogg index b96f4e0766..ff98fb05a8 100644 Binary files a/sound/instruments/piano/Ab7.ogg and b/sound/instruments/piano/Ab7.ogg differ diff --git a/sound/instruments/piano/Ab8.ogg b/sound/instruments/piano/Ab8.ogg index c4bd37195b..aca8ed4d4f 100644 Binary files a/sound/instruments/piano/Ab8.ogg and b/sound/instruments/piano/Ab8.ogg differ diff --git a/sound/instruments/piano/An1.ogg b/sound/instruments/piano/An1.ogg index 5698578e79..72c3a64360 100644 Binary files a/sound/instruments/piano/An1.ogg and b/sound/instruments/piano/An1.ogg differ diff --git a/sound/instruments/piano/An2.ogg b/sound/instruments/piano/An2.ogg index aaff9b8e65..b92232621c 100644 Binary files a/sound/instruments/piano/An2.ogg and b/sound/instruments/piano/An2.ogg differ diff --git a/sound/instruments/piano/An3.ogg b/sound/instruments/piano/An3.ogg index 16fe54be83..f4fa9a1e72 100644 Binary files a/sound/instruments/piano/An3.ogg and b/sound/instruments/piano/An3.ogg differ diff --git a/sound/instruments/piano/An4.ogg b/sound/instruments/piano/An4.ogg index 52cfc701a0..6946e13516 100644 Binary files a/sound/instruments/piano/An4.ogg and b/sound/instruments/piano/An4.ogg differ diff --git a/sound/instruments/piano/An5.ogg b/sound/instruments/piano/An5.ogg index ba4ad8ee61..322cc3b4c5 100644 Binary files a/sound/instruments/piano/An5.ogg and b/sound/instruments/piano/An5.ogg differ diff --git a/sound/instruments/piano/An6.ogg b/sound/instruments/piano/An6.ogg index 49be4e31a8..7a561af80e 100644 Binary files a/sound/instruments/piano/An6.ogg and b/sound/instruments/piano/An6.ogg differ diff --git a/sound/instruments/piano/An7.ogg b/sound/instruments/piano/An7.ogg index da5f477db7..5e935dfe3c 100644 Binary files a/sound/instruments/piano/An7.ogg and b/sound/instruments/piano/An7.ogg differ diff --git a/sound/instruments/piano/An8.ogg b/sound/instruments/piano/An8.ogg index 32e5cb81e7..b70ba0b901 100644 Binary files a/sound/instruments/piano/An8.ogg and b/sound/instruments/piano/An8.ogg differ diff --git a/sound/instruments/piano/Bb1.ogg b/sound/instruments/piano/Bb1.ogg index c872abe1a9..d66d6b2f01 100644 Binary files a/sound/instruments/piano/Bb1.ogg and b/sound/instruments/piano/Bb1.ogg differ diff --git a/sound/instruments/piano/Bb2.ogg b/sound/instruments/piano/Bb2.ogg index acd54ab388..c75195976c 100644 Binary files a/sound/instruments/piano/Bb2.ogg and b/sound/instruments/piano/Bb2.ogg differ diff --git a/sound/instruments/piano/Bb3.ogg b/sound/instruments/piano/Bb3.ogg index 33bea9f079..648c8b3717 100644 Binary files a/sound/instruments/piano/Bb3.ogg and b/sound/instruments/piano/Bb3.ogg differ diff --git a/sound/instruments/piano/Bb4.ogg b/sound/instruments/piano/Bb4.ogg index 736fa1fc8d..aa842dd3ed 100644 Binary files a/sound/instruments/piano/Bb4.ogg and b/sound/instruments/piano/Bb4.ogg differ diff --git a/sound/instruments/piano/Bb5.ogg b/sound/instruments/piano/Bb5.ogg index 38bddcf761..0ae78e81e6 100644 Binary files a/sound/instruments/piano/Bb5.ogg and b/sound/instruments/piano/Bb5.ogg differ diff --git a/sound/instruments/piano/Bb6.ogg b/sound/instruments/piano/Bb6.ogg index e7a0425745..172f63f3f4 100644 Binary files a/sound/instruments/piano/Bb6.ogg and b/sound/instruments/piano/Bb6.ogg differ diff --git a/sound/instruments/piano/Bb7.ogg b/sound/instruments/piano/Bb7.ogg index 89441baba6..d1240c623d 100644 Binary files a/sound/instruments/piano/Bb7.ogg and b/sound/instruments/piano/Bb7.ogg differ diff --git a/sound/instruments/piano/Bb8.ogg b/sound/instruments/piano/Bb8.ogg index 49dce93253..53eff2867d 100644 Binary files a/sound/instruments/piano/Bb8.ogg and b/sound/instruments/piano/Bb8.ogg differ diff --git a/sound/instruments/piano/Bn1.ogg b/sound/instruments/piano/Bn1.ogg index 2ddf3f59b8..1af185c0e8 100644 Binary files a/sound/instruments/piano/Bn1.ogg and b/sound/instruments/piano/Bn1.ogg differ diff --git a/sound/instruments/piano/Bn2.ogg b/sound/instruments/piano/Bn2.ogg index 92b49a24ca..acd03a4f1d 100644 Binary files a/sound/instruments/piano/Bn2.ogg and b/sound/instruments/piano/Bn2.ogg differ diff --git a/sound/instruments/piano/Bn3.ogg b/sound/instruments/piano/Bn3.ogg index 20aa8ca434..61a8d157b7 100644 Binary files a/sound/instruments/piano/Bn3.ogg and b/sound/instruments/piano/Bn3.ogg differ diff --git a/sound/instruments/piano/Bn4.ogg b/sound/instruments/piano/Bn4.ogg index b2ecc85255..e38b9eec56 100644 Binary files a/sound/instruments/piano/Bn4.ogg and b/sound/instruments/piano/Bn4.ogg differ diff --git a/sound/instruments/piano/Bn5.ogg b/sound/instruments/piano/Bn5.ogg index e03af44292..4759c0f825 100644 Binary files a/sound/instruments/piano/Bn5.ogg and b/sound/instruments/piano/Bn5.ogg differ diff --git a/sound/instruments/piano/Bn6.ogg b/sound/instruments/piano/Bn6.ogg index 1acf0d94d0..0282535a01 100644 Binary files a/sound/instruments/piano/Bn6.ogg and b/sound/instruments/piano/Bn6.ogg differ diff --git a/sound/instruments/piano/Bn7.ogg b/sound/instruments/piano/Bn7.ogg index b68372b4ab..57334fba24 100644 Binary files a/sound/instruments/piano/Bn7.ogg and b/sound/instruments/piano/Bn7.ogg differ diff --git a/sound/instruments/piano/Bn8.ogg b/sound/instruments/piano/Bn8.ogg index 5db915a607..5d723d196d 100644 Binary files a/sound/instruments/piano/Bn8.ogg and b/sound/instruments/piano/Bn8.ogg differ diff --git a/sound/instruments/piano/Cn1.ogg b/sound/instruments/piano/Cn1.ogg deleted file mode 100644 index e05b36d325..0000000000 Binary files a/sound/instruments/piano/Cn1.ogg and /dev/null differ diff --git a/sound/instruments/piano/Cn2.ogg b/sound/instruments/piano/Cn2.ogg index cc96f26570..251c3bd1f2 100644 Binary files a/sound/instruments/piano/Cn2.ogg and b/sound/instruments/piano/Cn2.ogg differ diff --git a/sound/instruments/piano/Cn3.ogg b/sound/instruments/piano/Cn3.ogg index 6d2f206927..66286e5e71 100644 Binary files a/sound/instruments/piano/Cn3.ogg and b/sound/instruments/piano/Cn3.ogg differ diff --git a/sound/instruments/piano/Cn4.ogg b/sound/instruments/piano/Cn4.ogg index d0c0f4995e..e271c7e4b0 100644 Binary files a/sound/instruments/piano/Cn4.ogg and b/sound/instruments/piano/Cn4.ogg differ diff --git a/sound/instruments/piano/Cn5.ogg b/sound/instruments/piano/Cn5.ogg index 1d95dfa099..375987640d 100644 Binary files a/sound/instruments/piano/Cn5.ogg and b/sound/instruments/piano/Cn5.ogg differ diff --git a/sound/instruments/piano/Cn6.ogg b/sound/instruments/piano/Cn6.ogg index f1e847d32f..1c675eb73e 100644 Binary files a/sound/instruments/piano/Cn6.ogg and b/sound/instruments/piano/Cn6.ogg differ diff --git a/sound/instruments/piano/Cn7.ogg b/sound/instruments/piano/Cn7.ogg index 85cb1dd0fe..8d87e17a64 100644 Binary files a/sound/instruments/piano/Cn7.ogg and b/sound/instruments/piano/Cn7.ogg differ diff --git a/sound/instruments/piano/Cn8.ogg b/sound/instruments/piano/Cn8.ogg index f081d91d8b..bdb8a046b6 100644 Binary files a/sound/instruments/piano/Cn8.ogg and b/sound/instruments/piano/Cn8.ogg differ diff --git a/sound/instruments/piano/Cn9.ogg b/sound/instruments/piano/Cn9.ogg index 06172ca6f1..09ce034cd8 100644 Binary files a/sound/instruments/piano/Cn9.ogg and b/sound/instruments/piano/Cn9.ogg differ diff --git a/sound/instruments/piano/Db1.ogg b/sound/instruments/piano/Db1.ogg deleted file mode 100644 index a33554e476..0000000000 Binary files a/sound/instruments/piano/Db1.ogg and /dev/null differ diff --git a/sound/instruments/piano/Db2.ogg b/sound/instruments/piano/Db2.ogg index dd45c2f11d..840ffd49b5 100644 Binary files a/sound/instruments/piano/Db2.ogg and b/sound/instruments/piano/Db2.ogg differ diff --git a/sound/instruments/piano/Db3.ogg b/sound/instruments/piano/Db3.ogg index ebfa23bbc3..d286473854 100644 Binary files a/sound/instruments/piano/Db3.ogg and b/sound/instruments/piano/Db3.ogg differ diff --git a/sound/instruments/piano/Db4.ogg b/sound/instruments/piano/Db4.ogg index 52486484eb..adffd15837 100644 Binary files a/sound/instruments/piano/Db4.ogg and b/sound/instruments/piano/Db4.ogg differ diff --git a/sound/instruments/piano/Db5.ogg b/sound/instruments/piano/Db5.ogg index 8250bbb7cb..1c43e84804 100644 Binary files a/sound/instruments/piano/Db5.ogg and b/sound/instruments/piano/Db5.ogg differ diff --git a/sound/instruments/piano/Db6.ogg b/sound/instruments/piano/Db6.ogg index 8ec394da17..92bd1d2aa6 100644 Binary files a/sound/instruments/piano/Db6.ogg and b/sound/instruments/piano/Db6.ogg differ diff --git a/sound/instruments/piano/Db7.ogg b/sound/instruments/piano/Db7.ogg index 9a6c81dc34..72c34b0f6e 100644 Binary files a/sound/instruments/piano/Db7.ogg and b/sound/instruments/piano/Db7.ogg differ diff --git a/sound/instruments/piano/Db8.ogg b/sound/instruments/piano/Db8.ogg index 2790f60390..4984f3da6f 100644 Binary files a/sound/instruments/piano/Db8.ogg and b/sound/instruments/piano/Db8.ogg differ diff --git a/sound/instruments/piano/Dn1.ogg b/sound/instruments/piano/Dn1.ogg deleted file mode 100644 index 89ac14cc14..0000000000 Binary files a/sound/instruments/piano/Dn1.ogg and /dev/null differ diff --git a/sound/instruments/piano/Dn2.ogg b/sound/instruments/piano/Dn2.ogg index bb5f18fbf7..1d3b39a0f7 100644 Binary files a/sound/instruments/piano/Dn2.ogg and b/sound/instruments/piano/Dn2.ogg differ diff --git a/sound/instruments/piano/Dn3.ogg b/sound/instruments/piano/Dn3.ogg index 6a54b77549..36aa1e3e98 100644 Binary files a/sound/instruments/piano/Dn3.ogg and b/sound/instruments/piano/Dn3.ogg differ diff --git a/sound/instruments/piano/Dn4.ogg b/sound/instruments/piano/Dn4.ogg index 8f930b8b50..89e64a10b6 100644 Binary files a/sound/instruments/piano/Dn4.ogg and b/sound/instruments/piano/Dn4.ogg differ diff --git a/sound/instruments/piano/Dn5.ogg b/sound/instruments/piano/Dn5.ogg index 981d37e910..0e928f4613 100644 Binary files a/sound/instruments/piano/Dn5.ogg and b/sound/instruments/piano/Dn5.ogg differ diff --git a/sound/instruments/piano/Dn6.ogg b/sound/instruments/piano/Dn6.ogg index 112f101bb2..8413e46635 100644 Binary files a/sound/instruments/piano/Dn6.ogg and b/sound/instruments/piano/Dn6.ogg differ diff --git a/sound/instruments/piano/Dn7.ogg b/sound/instruments/piano/Dn7.ogg index ff2724463c..4516a46bc4 100644 Binary files a/sound/instruments/piano/Dn7.ogg and b/sound/instruments/piano/Dn7.ogg differ diff --git a/sound/instruments/piano/Dn8.ogg b/sound/instruments/piano/Dn8.ogg index 5e2523f123..348c690fef 100644 Binary files a/sound/instruments/piano/Dn8.ogg and b/sound/instruments/piano/Dn8.ogg differ diff --git a/sound/instruments/piano/Eb1.ogg b/sound/instruments/piano/Eb1.ogg deleted file mode 100644 index 8923e11fd9..0000000000 Binary files a/sound/instruments/piano/Eb1.ogg and /dev/null differ diff --git a/sound/instruments/piano/Eb2.ogg b/sound/instruments/piano/Eb2.ogg index b61faa1737..b300b39eb9 100644 Binary files a/sound/instruments/piano/Eb2.ogg and b/sound/instruments/piano/Eb2.ogg differ diff --git a/sound/instruments/piano/Eb3.ogg b/sound/instruments/piano/Eb3.ogg index bf80c6eeeb..879b6907fc 100644 Binary files a/sound/instruments/piano/Eb3.ogg and b/sound/instruments/piano/Eb3.ogg differ diff --git a/sound/instruments/piano/Eb4.ogg b/sound/instruments/piano/Eb4.ogg index fa991d11c5..e2d57556db 100644 Binary files a/sound/instruments/piano/Eb4.ogg and b/sound/instruments/piano/Eb4.ogg differ diff --git a/sound/instruments/piano/Eb5.ogg b/sound/instruments/piano/Eb5.ogg index e63e0143a5..6eec439bf8 100644 Binary files a/sound/instruments/piano/Eb5.ogg and b/sound/instruments/piano/Eb5.ogg differ diff --git a/sound/instruments/piano/Eb6.ogg b/sound/instruments/piano/Eb6.ogg index e3f6ccb4c4..80b4952ab9 100644 Binary files a/sound/instruments/piano/Eb6.ogg and b/sound/instruments/piano/Eb6.ogg differ diff --git a/sound/instruments/piano/Eb7.ogg b/sound/instruments/piano/Eb7.ogg index a7dc94edbd..e88eec4fec 100644 Binary files a/sound/instruments/piano/Eb7.ogg and b/sound/instruments/piano/Eb7.ogg differ diff --git a/sound/instruments/piano/Eb8.ogg b/sound/instruments/piano/Eb8.ogg index f6a7f46657..cb7b3efdfd 100644 Binary files a/sound/instruments/piano/Eb8.ogg and b/sound/instruments/piano/Eb8.ogg differ diff --git a/sound/instruments/piano/En1.ogg b/sound/instruments/piano/En1.ogg deleted file mode 100644 index fbcb29c2de..0000000000 Binary files a/sound/instruments/piano/En1.ogg and /dev/null differ diff --git a/sound/instruments/piano/En2.ogg b/sound/instruments/piano/En2.ogg index b6f4f1a5e8..0f5e8a073d 100644 Binary files a/sound/instruments/piano/En2.ogg and b/sound/instruments/piano/En2.ogg differ diff --git a/sound/instruments/piano/En3.ogg b/sound/instruments/piano/En3.ogg index 5f6ade5f1b..f24b26bf06 100644 Binary files a/sound/instruments/piano/En3.ogg and b/sound/instruments/piano/En3.ogg differ diff --git a/sound/instruments/piano/En4.ogg b/sound/instruments/piano/En4.ogg index 0f567ffb98..eb409d0e09 100644 Binary files a/sound/instruments/piano/En4.ogg and b/sound/instruments/piano/En4.ogg differ diff --git a/sound/instruments/piano/En5.ogg b/sound/instruments/piano/En5.ogg index 05719f2a2d..cd83f438d2 100644 Binary files a/sound/instruments/piano/En5.ogg and b/sound/instruments/piano/En5.ogg differ diff --git a/sound/instruments/piano/En6.ogg b/sound/instruments/piano/En6.ogg index b1295b67ee..62a0361284 100644 Binary files a/sound/instruments/piano/En6.ogg and b/sound/instruments/piano/En6.ogg differ diff --git a/sound/instruments/piano/En7.ogg b/sound/instruments/piano/En7.ogg index 0d97b93fbc..c1072ade23 100644 Binary files a/sound/instruments/piano/En7.ogg and b/sound/instruments/piano/En7.ogg differ diff --git a/sound/instruments/piano/En8.ogg b/sound/instruments/piano/En8.ogg index f0ea5f1ec5..79b7176061 100644 Binary files a/sound/instruments/piano/En8.ogg and b/sound/instruments/piano/En8.ogg differ diff --git a/sound/instruments/piano/Fn1.ogg b/sound/instruments/piano/Fn1.ogg deleted file mode 100644 index 9d10f8ccf6..0000000000 Binary files a/sound/instruments/piano/Fn1.ogg and /dev/null differ diff --git a/sound/instruments/piano/Fn2.ogg b/sound/instruments/piano/Fn2.ogg index 24cff105e6..449cd6a8a2 100644 Binary files a/sound/instruments/piano/Fn2.ogg and b/sound/instruments/piano/Fn2.ogg differ diff --git a/sound/instruments/piano/Fn3.ogg b/sound/instruments/piano/Fn3.ogg index 313c54b59a..afd5b3b802 100644 Binary files a/sound/instruments/piano/Fn3.ogg and b/sound/instruments/piano/Fn3.ogg differ diff --git a/sound/instruments/piano/Fn4.ogg b/sound/instruments/piano/Fn4.ogg index 3331d67fbe..ac18206012 100644 Binary files a/sound/instruments/piano/Fn4.ogg and b/sound/instruments/piano/Fn4.ogg differ diff --git a/sound/instruments/piano/Fn5.ogg b/sound/instruments/piano/Fn5.ogg index 7294171595..e59a4c6cc6 100644 Binary files a/sound/instruments/piano/Fn5.ogg and b/sound/instruments/piano/Fn5.ogg differ diff --git a/sound/instruments/piano/Fn6.ogg b/sound/instruments/piano/Fn6.ogg index 8218928c85..7636c242dc 100644 Binary files a/sound/instruments/piano/Fn6.ogg and b/sound/instruments/piano/Fn6.ogg differ diff --git a/sound/instruments/piano/Fn7.ogg b/sound/instruments/piano/Fn7.ogg index b459e82acd..810338b641 100644 Binary files a/sound/instruments/piano/Fn7.ogg and b/sound/instruments/piano/Fn7.ogg differ diff --git a/sound/instruments/piano/Fn8.ogg b/sound/instruments/piano/Fn8.ogg index be14499059..3504877e8a 100644 Binary files a/sound/instruments/piano/Fn8.ogg and b/sound/instruments/piano/Fn8.ogg differ diff --git a/sound/instruments/piano/Gb1.ogg b/sound/instruments/piano/Gb1.ogg deleted file mode 100644 index d53e3ea9d8..0000000000 Binary files a/sound/instruments/piano/Gb1.ogg and /dev/null differ diff --git a/sound/instruments/piano/Gb2.ogg b/sound/instruments/piano/Gb2.ogg index 0ceea3ecc8..353d09af13 100644 Binary files a/sound/instruments/piano/Gb2.ogg and b/sound/instruments/piano/Gb2.ogg differ diff --git a/sound/instruments/piano/Gb3.ogg b/sound/instruments/piano/Gb3.ogg index 53b56c5017..4527d9849d 100644 Binary files a/sound/instruments/piano/Gb3.ogg and b/sound/instruments/piano/Gb3.ogg differ diff --git a/sound/instruments/piano/Gb4.ogg b/sound/instruments/piano/Gb4.ogg index c982d7beaf..abb5264465 100644 Binary files a/sound/instruments/piano/Gb4.ogg and b/sound/instruments/piano/Gb4.ogg differ diff --git a/sound/instruments/piano/Gb5.ogg b/sound/instruments/piano/Gb5.ogg index 787c19bed8..3765c1882c 100644 Binary files a/sound/instruments/piano/Gb5.ogg and b/sound/instruments/piano/Gb5.ogg differ diff --git a/sound/instruments/piano/Gb6.ogg b/sound/instruments/piano/Gb6.ogg index d5a5dbb2d1..fb6ff9006b 100644 Binary files a/sound/instruments/piano/Gb6.ogg and b/sound/instruments/piano/Gb6.ogg differ diff --git a/sound/instruments/piano/Gb7.ogg b/sound/instruments/piano/Gb7.ogg index c6f9271680..07983100d5 100644 Binary files a/sound/instruments/piano/Gb7.ogg and b/sound/instruments/piano/Gb7.ogg differ diff --git a/sound/instruments/piano/Gb8.ogg b/sound/instruments/piano/Gb8.ogg index 85c0b70754..717707816b 100644 Binary files a/sound/instruments/piano/Gb8.ogg and b/sound/instruments/piano/Gb8.ogg differ diff --git a/sound/instruments/piano/Gn1.ogg b/sound/instruments/piano/Gn1.ogg deleted file mode 100644 index d2829a4c0b..0000000000 Binary files a/sound/instruments/piano/Gn1.ogg and /dev/null differ diff --git a/sound/instruments/piano/Gn2.ogg b/sound/instruments/piano/Gn2.ogg index e657124c71..bad4105f25 100644 Binary files a/sound/instruments/piano/Gn2.ogg and b/sound/instruments/piano/Gn2.ogg differ diff --git a/sound/instruments/piano/Gn3.ogg b/sound/instruments/piano/Gn3.ogg index c1e88555f1..b69d27986f 100644 Binary files a/sound/instruments/piano/Gn3.ogg and b/sound/instruments/piano/Gn3.ogg differ diff --git a/sound/instruments/piano/Gn4.ogg b/sound/instruments/piano/Gn4.ogg index bbae7fa3e8..c26d227122 100644 Binary files a/sound/instruments/piano/Gn4.ogg and b/sound/instruments/piano/Gn4.ogg differ diff --git a/sound/instruments/piano/Gn5.ogg b/sound/instruments/piano/Gn5.ogg index 556cd6085a..18b94e8e72 100644 Binary files a/sound/instruments/piano/Gn5.ogg and b/sound/instruments/piano/Gn5.ogg differ diff --git a/sound/instruments/piano/Gn6.ogg b/sound/instruments/piano/Gn6.ogg index 6bf8c36013..587a8432b0 100644 Binary files a/sound/instruments/piano/Gn6.ogg and b/sound/instruments/piano/Gn6.ogg differ diff --git a/sound/instruments/piano/Gn7.ogg b/sound/instruments/piano/Gn7.ogg index 0637492985..5da32b72a9 100644 Binary files a/sound/instruments/piano/Gn7.ogg and b/sound/instruments/piano/Gn7.ogg differ diff --git a/sound/instruments/piano/Gn8.ogg b/sound/instruments/piano/Gn8.ogg index 85f89a198e..13559c201d 100644 Binary files a/sound/instruments/piano/Gn8.ogg and b/sound/instruments/piano/Gn8.ogg differ diff --git a/sound/vox_fem/,.ogg b/sound/vox_fem/,.ogg index a94221d0ed..62152d87b7 100644 Binary files a/sound/vox_fem/,.ogg and b/sound/vox_fem/,.ogg differ diff --git a/sound/vox_fem/..ogg b/sound/vox_fem/..ogg index e333dc159b..df8a465e9a 100644 Binary files a/sound/vox_fem/..ogg and b/sound/vox_fem/..ogg differ diff --git a/sound/vox_fem/a.ogg b/sound/vox_fem/a.ogg index f91e6de8f2..8acb94837a 100644 Binary files a/sound/vox_fem/a.ogg and b/sound/vox_fem/a.ogg differ diff --git a/sound/vox_fem/abduction.ogg b/sound/vox_fem/abduction.ogg new file mode 100644 index 0000000000..aafe3c95c2 Binary files /dev/null and b/sound/vox_fem/abduction.ogg differ diff --git a/sound/vox_fem/abortions.ogg b/sound/vox_fem/abortions.ogg index 1eecff6c89..615e4cd11b 100644 Binary files a/sound/vox_fem/abortions.ogg and b/sound/vox_fem/abortions.ogg differ diff --git a/sound/vox_fem/above.ogg b/sound/vox_fem/above.ogg new file mode 100644 index 0000000000..c9a3636824 Binary files /dev/null and b/sound/vox_fem/above.ogg differ diff --git a/sound/vox_fem/abstain.ogg b/sound/vox_fem/abstain.ogg new file mode 100644 index 0000000000..66074764a1 Binary files /dev/null and b/sound/vox_fem/abstain.ogg differ diff --git a/sound/vox_fem/accelerating.ogg b/sound/vox_fem/accelerating.ogg index 2ad134d963..bfe97d8388 100644 Binary files a/sound/vox_fem/accelerating.ogg and b/sound/vox_fem/accelerating.ogg differ diff --git a/sound/vox_fem/accelerator.ogg b/sound/vox_fem/accelerator.ogg index 3cc4044525..bddacd65f6 100644 Binary files a/sound/vox_fem/accelerator.ogg and b/sound/vox_fem/accelerator.ogg differ diff --git a/sound/vox_fem/accepted.ogg b/sound/vox_fem/accepted.ogg index 0e93357e9d..97b5af22cc 100644 Binary files a/sound/vox_fem/accepted.ogg and b/sound/vox_fem/accepted.ogg differ diff --git a/sound/vox_fem/access.ogg b/sound/vox_fem/access.ogg index 21c926651c..f8da87fb29 100644 Binary files a/sound/vox_fem/access.ogg and b/sound/vox_fem/access.ogg differ diff --git a/sound/vox_fem/acknowledge.ogg b/sound/vox_fem/acknowledge.ogg index 29938de29d..cf75b2c1d4 100644 Binary files a/sound/vox_fem/acknowledge.ogg and b/sound/vox_fem/acknowledge.ogg differ diff --git a/sound/vox_fem/acknowledged.ogg b/sound/vox_fem/acknowledged.ogg index 910a31fc17..4cdeb50b0f 100644 Binary files a/sound/vox_fem/acknowledged.ogg and b/sound/vox_fem/acknowledged.ogg differ diff --git a/sound/vox_fem/acquired.ogg b/sound/vox_fem/acquired.ogg index 8248e05778..805ab98c7f 100644 Binary files a/sound/vox_fem/acquired.ogg and b/sound/vox_fem/acquired.ogg differ diff --git a/sound/vox_fem/acquisition.ogg b/sound/vox_fem/acquisition.ogg index 28d3dc6735..45b75ba69d 100644 Binary files a/sound/vox_fem/acquisition.ogg and b/sound/vox_fem/acquisition.ogg differ diff --git a/sound/vox_fem/across.ogg b/sound/vox_fem/across.ogg index e3a82f7ee9..975aa1f037 100644 Binary files a/sound/vox_fem/across.ogg and b/sound/vox_fem/across.ogg differ diff --git a/sound/vox_fem/activate.ogg b/sound/vox_fem/activate.ogg index 662f74e7a5..cd3cf9c54a 100644 Binary files a/sound/vox_fem/activate.ogg and b/sound/vox_fem/activate.ogg differ diff --git a/sound/vox_fem/activated.ogg b/sound/vox_fem/activated.ogg index 526352d0be..30a3533753 100644 Binary files a/sound/vox_fem/activated.ogg and b/sound/vox_fem/activated.ogg differ diff --git a/sound/vox_fem/activity.ogg b/sound/vox_fem/activity.ogg index b45be28c06..b7edde2e1a 100644 Binary files a/sound/vox_fem/activity.ogg and b/sound/vox_fem/activity.ogg differ diff --git a/sound/vox_fem/adios.ogg b/sound/vox_fem/adios.ogg index d90dec63ab..44164d6620 100644 Binary files a/sound/vox_fem/adios.ogg and b/sound/vox_fem/adios.ogg differ diff --git a/sound/vox_fem/administration.ogg b/sound/vox_fem/administration.ogg index 89df9d6889..7744870a59 100644 Binary files a/sound/vox_fem/administration.ogg and b/sound/vox_fem/administration.ogg differ diff --git a/sound/vox_fem/advanced.ogg b/sound/vox_fem/advanced.ogg index 04359f62e2..96f076fc96 100644 Binary files a/sound/vox_fem/advanced.ogg and b/sound/vox_fem/advanced.ogg differ diff --git a/sound/vox_fem/advised.ogg b/sound/vox_fem/advised.ogg new file mode 100644 index 0000000000..7c8d4f7515 Binary files /dev/null and b/sound/vox_fem/advised.ogg differ diff --git a/sound/vox_fem/aft.ogg b/sound/vox_fem/aft.ogg index c7d967e815..b9b3edcf90 100644 Binary files a/sound/vox_fem/aft.ogg and b/sound/vox_fem/aft.ogg differ diff --git a/sound/vox_fem/after.ogg b/sound/vox_fem/after.ogg index 950e3019b2..a728cf4af4 100644 Binary files a/sound/vox_fem/after.ogg and b/sound/vox_fem/after.ogg differ diff --git a/sound/vox_fem/agent.ogg b/sound/vox_fem/agent.ogg index 0375ccaa70..9b4f3dc216 100644 Binary files a/sound/vox_fem/agent.ogg and b/sound/vox_fem/agent.ogg differ diff --git a/sound/vox_fem/ai.ogg b/sound/vox_fem/ai.ogg index af61ae25ce..978455d087 100644 Binary files a/sound/vox_fem/ai.ogg and b/sound/vox_fem/ai.ogg differ diff --git a/sound/vox_fem/air.ogg b/sound/vox_fem/air.ogg new file mode 100644 index 0000000000..ac161097c8 Binary files /dev/null and b/sound/vox_fem/air.ogg differ diff --git a/sound/vox_fem/airlock.ogg b/sound/vox_fem/airlock.ogg new file mode 100644 index 0000000000..650b6c0e3d Binary files /dev/null and b/sound/vox_fem/airlock.ogg differ diff --git a/sound/vox_fem/alarm.ogg b/sound/vox_fem/alarm.ogg index b3aad59735..424e4aefc4 100644 Binary files a/sound/vox_fem/alarm.ogg and b/sound/vox_fem/alarm.ogg differ diff --git a/sound/vox_fem/alert.ogg b/sound/vox_fem/alert.ogg index 9e66d9b1c2..dd0005f90d 100644 Binary files a/sound/vox_fem/alert.ogg and b/sound/vox_fem/alert.ogg differ diff --git a/sound/vox_fem/alien.ogg b/sound/vox_fem/alien.ogg index 4895423f5e..ceb29585b4 100644 Binary files a/sound/vox_fem/alien.ogg and b/sound/vox_fem/alien.ogg differ diff --git a/sound/vox_fem/aligned.ogg b/sound/vox_fem/aligned.ogg index 9a427ad6fb..4ffeba396a 100644 Binary files a/sound/vox_fem/aligned.ogg and b/sound/vox_fem/aligned.ogg differ diff --git a/sound/vox_fem/all.ogg b/sound/vox_fem/all.ogg index d02fbf8d5b..240899126d 100644 Binary files a/sound/vox_fem/all.ogg and b/sound/vox_fem/all.ogg differ diff --git a/sound/vox_fem/alpha.ogg b/sound/vox_fem/alpha.ogg index ab5aa85a0f..cb8419f130 100644 Binary files a/sound/vox_fem/alpha.ogg and b/sound/vox_fem/alpha.ogg differ diff --git a/sound/vox_fem/also.ogg b/sound/vox_fem/also.ogg new file mode 100644 index 0000000000..cd541f0ce7 Binary files /dev/null and b/sound/vox_fem/also.ogg differ diff --git a/sound/vox_fem/am.ogg b/sound/vox_fem/am.ogg index a38d05c935..58152f19ec 100644 Binary files a/sound/vox_fem/am.ogg and b/sound/vox_fem/am.ogg differ diff --git a/sound/vox_fem/amigo.ogg b/sound/vox_fem/amigo.ogg index efe51a5568..34001cb33d 100644 Binary files a/sound/vox_fem/amigo.ogg and b/sound/vox_fem/amigo.ogg differ diff --git a/sound/vox_fem/ammunition.ogg b/sound/vox_fem/ammunition.ogg index e13406ab28..67a1e32c02 100644 Binary files a/sound/vox_fem/ammunition.ogg and b/sound/vox_fem/ammunition.ogg differ diff --git a/sound/vox_fem/an.ogg b/sound/vox_fem/an.ogg index c371f13ee3..2b8f5d4888 100644 Binary files a/sound/vox_fem/an.ogg and b/sound/vox_fem/an.ogg differ diff --git a/sound/vox_fem/and.ogg b/sound/vox_fem/and.ogg index 6765aaa98d..cbf10ac905 100644 Binary files a/sound/vox_fem/and.ogg and b/sound/vox_fem/and.ogg differ diff --git a/sound/vox_fem/animal.ogg b/sound/vox_fem/animal.ogg new file mode 100644 index 0000000000..570a4572f7 Binary files /dev/null and b/sound/vox_fem/animal.ogg differ diff --git a/sound/vox_fem/announcement.ogg b/sound/vox_fem/announcement.ogg index 16cc4b4571..579e333228 100644 Binary files a/sound/vox_fem/announcement.ogg and b/sound/vox_fem/announcement.ogg differ diff --git a/sound/vox_fem/anomalous.ogg b/sound/vox_fem/anomalous.ogg index 00849a70c7..88cf095629 100644 Binary files a/sound/vox_fem/anomalous.ogg and b/sound/vox_fem/anomalous.ogg differ diff --git a/sound/vox_fem/answer.ogg b/sound/vox_fem/answer.ogg new file mode 100644 index 0000000000..533a1f7a8b Binary files /dev/null and b/sound/vox_fem/answer.ogg differ diff --git a/sound/vox_fem/antenna.ogg b/sound/vox_fem/antenna.ogg index 65e50cb55d..da6d727da6 100644 Binary files a/sound/vox_fem/antenna.ogg and b/sound/vox_fem/antenna.ogg differ diff --git a/sound/vox_fem/any.ogg b/sound/vox_fem/any.ogg index bf10035db9..353f6f8619 100644 Binary files a/sound/vox_fem/any.ogg and b/sound/vox_fem/any.ogg differ diff --git a/sound/vox_fem/apc.ogg b/sound/vox_fem/apc.ogg new file mode 100644 index 0000000000..38c7e8175d Binary files /dev/null and b/sound/vox_fem/apc.ogg differ diff --git a/sound/vox_fem/apprehend.ogg b/sound/vox_fem/apprehend.ogg index 8b84b7b543..22088088d4 100644 Binary files a/sound/vox_fem/apprehend.ogg and b/sound/vox_fem/apprehend.ogg differ diff --git a/sound/vox_fem/approach.ogg b/sound/vox_fem/approach.ogg index e1514d1bde..195175a5be 100644 Binary files a/sound/vox_fem/approach.ogg and b/sound/vox_fem/approach.ogg differ diff --git a/sound/vox_fem/are.ogg b/sound/vox_fem/are.ogg index c91427b976..9efe22b27c 100644 Binary files a/sound/vox_fem/are.ogg and b/sound/vox_fem/are.ogg differ diff --git a/sound/vox_fem/area.ogg b/sound/vox_fem/area.ogg index 7bb402ba3e..369782b006 100644 Binary files a/sound/vox_fem/area.ogg and b/sound/vox_fem/area.ogg differ diff --git a/sound/vox_fem/arm.ogg b/sound/vox_fem/arm.ogg index 270325ca9b..0aaa0840d5 100644 Binary files a/sound/vox_fem/arm.ogg and b/sound/vox_fem/arm.ogg differ diff --git a/sound/vox_fem/armed.ogg b/sound/vox_fem/armed.ogg index 6710dc1332..caf544e3db 100644 Binary files a/sound/vox_fem/armed.ogg and b/sound/vox_fem/armed.ogg differ diff --git a/sound/vox_fem/armor.ogg b/sound/vox_fem/armor.ogg index be00c5c1ae..6fbdf476d7 100644 Binary files a/sound/vox_fem/armor.ogg and b/sound/vox_fem/armor.ogg differ diff --git a/sound/vox_fem/armory.ogg b/sound/vox_fem/armory.ogg index 1b8b486713..9d445cf2da 100644 Binary files a/sound/vox_fem/armory.ogg and b/sound/vox_fem/armory.ogg differ diff --git a/sound/vox_fem/array.ogg b/sound/vox_fem/array.ogg index 3caabbf9d9..5e976190a5 100644 Binary files a/sound/vox_fem/array.ogg and b/sound/vox_fem/array.ogg differ diff --git a/sound/vox_fem/arrest.ogg b/sound/vox_fem/arrest.ogg index db4291d93e..843711c35a 100644 Binary files a/sound/vox_fem/arrest.ogg and b/sound/vox_fem/arrest.ogg differ diff --git a/sound/vox_fem/asimov.ogg b/sound/vox_fem/asimov.ogg index 6665a1c2b6..c20264de2c 100644 Binary files a/sound/vox_fem/asimov.ogg and b/sound/vox_fem/asimov.ogg differ diff --git a/sound/vox_fem/ass.ogg b/sound/vox_fem/ass.ogg index ab51e76032..e85e315e1a 100644 Binary files a/sound/vox_fem/ass.ogg and b/sound/vox_fem/ass.ogg differ diff --git a/sound/vox_fem/asshole.ogg b/sound/vox_fem/asshole.ogg index d446c21281..a24442ba9d 100644 Binary files a/sound/vox_fem/asshole.ogg and b/sound/vox_fem/asshole.ogg differ diff --git a/sound/vox_fem/assholes.ogg b/sound/vox_fem/assholes.ogg index ce06096ef4..5312d8f07f 100644 Binary files a/sound/vox_fem/assholes.ogg and b/sound/vox_fem/assholes.ogg differ diff --git a/sound/vox_fem/assistance.ogg b/sound/vox_fem/assistance.ogg new file mode 100644 index 0000000000..9f13867a64 Binary files /dev/null and b/sound/vox_fem/assistance.ogg differ diff --git a/sound/vox_fem/assistant.ogg b/sound/vox_fem/assistant.ogg new file mode 100644 index 0000000000..7d4e901cf1 Binary files /dev/null and b/sound/vox_fem/assistant.ogg differ diff --git a/sound/vox_fem/at.ogg b/sound/vox_fem/at.ogg index 446edf4787..1517054a49 100644 Binary files a/sound/vox_fem/at.ogg and b/sound/vox_fem/at.ogg differ diff --git a/sound/vox_fem/atmosphere.ogg b/sound/vox_fem/atmosphere.ogg new file mode 100644 index 0000000000..6e0d541d38 Binary files /dev/null and b/sound/vox_fem/atmosphere.ogg differ diff --git a/sound/vox_fem/atmospheric.ogg b/sound/vox_fem/atmospheric.ogg new file mode 100644 index 0000000000..d618ae9773 Binary files /dev/null and b/sound/vox_fem/atmospheric.ogg differ diff --git a/sound/vox_fem/atmospherics.ogg b/sound/vox_fem/atmospherics.ogg new file mode 100644 index 0000000000..bac1013b74 Binary files /dev/null and b/sound/vox_fem/atmospherics.ogg differ diff --git a/sound/vox_fem/atomic.ogg b/sound/vox_fem/atomic.ogg index 6d75570f0e..be6de2fad9 100644 Binary files a/sound/vox_fem/atomic.ogg and b/sound/vox_fem/atomic.ogg differ diff --git a/sound/vox_fem/attention.ogg b/sound/vox_fem/attention.ogg index 1de7b20fca..00780e35a9 100644 Binary files a/sound/vox_fem/attention.ogg and b/sound/vox_fem/attention.ogg differ diff --git a/sound/vox_fem/authentication.ogg b/sound/vox_fem/authentication.ogg new file mode 100644 index 0000000000..031484edaf Binary files /dev/null and b/sound/vox_fem/authentication.ogg differ diff --git a/sound/vox_fem/authorize.ogg b/sound/vox_fem/authorize.ogg index 332ed3b331..4df4830b65 100644 Binary files a/sound/vox_fem/authorize.ogg and b/sound/vox_fem/authorize.ogg differ diff --git a/sound/vox_fem/authorized.ogg b/sound/vox_fem/authorized.ogg index d7f91f8132..6a989aeff6 100644 Binary files a/sound/vox_fem/authorized.ogg and b/sound/vox_fem/authorized.ogg differ diff --git a/sound/vox_fem/automatic.ogg b/sound/vox_fem/automatic.ogg index 2f7fedada2..5f87645f89 100644 Binary files a/sound/vox_fem/automatic.ogg and b/sound/vox_fem/automatic.ogg differ diff --git a/sound/vox_fem/away.ogg b/sound/vox_fem/away.ogg index 3f482d5ccf..e158d2cd80 100644 Binary files a/sound/vox_fem/away.ogg and b/sound/vox_fem/away.ogg differ diff --git a/sound/vox_fem/awful.ogg b/sound/vox_fem/awful.ogg new file mode 100644 index 0000000000..49768538ac Binary files /dev/null and b/sound/vox_fem/awful.ogg differ diff --git a/sound/vox_fem/b.ogg b/sound/vox_fem/b.ogg index 9985f7c56a..f41d01e441 100644 Binary files a/sound/vox_fem/b.ogg and b/sound/vox_fem/b.ogg differ diff --git a/sound/vox_fem/back.ogg b/sound/vox_fem/back.ogg index 87fd5b3cc0..63cbfcde1b 100644 Binary files a/sound/vox_fem/back.ogg and b/sound/vox_fem/back.ogg differ diff --git a/sound/vox_fem/backman.ogg b/sound/vox_fem/backman.ogg index 6b3e758e90..73690c48e7 100644 Binary files a/sound/vox_fem/backman.ogg and b/sound/vox_fem/backman.ogg differ diff --git a/sound/vox_fem/bad.ogg b/sound/vox_fem/bad.ogg index 3dd4e2cec6..ff05d65af2 100644 Binary files a/sound/vox_fem/bad.ogg and b/sound/vox_fem/bad.ogg differ diff --git a/sound/vox_fem/bag.ogg b/sound/vox_fem/bag.ogg index 04d64df9f2..79a1d686f4 100644 Binary files a/sound/vox_fem/bag.ogg and b/sound/vox_fem/bag.ogg differ diff --git a/sound/vox_fem/bailey.ogg b/sound/vox_fem/bailey.ogg index 25fee81844..95b6ef6b0b 100644 Binary files a/sound/vox_fem/bailey.ogg and b/sound/vox_fem/bailey.ogg differ diff --git a/sound/vox_fem/bar.ogg b/sound/vox_fem/bar.ogg new file mode 100644 index 0000000000..69a21c9746 Binary files /dev/null and b/sound/vox_fem/bar.ogg differ diff --git a/sound/vox_fem/barracks.ogg b/sound/vox_fem/barracks.ogg index 6f78b3a820..0ff6cbb0f1 100644 Binary files a/sound/vox_fem/barracks.ogg and b/sound/vox_fem/barracks.ogg differ diff --git a/sound/vox_fem/bartender.ogg b/sound/vox_fem/bartender.ogg new file mode 100644 index 0000000000..a9dfbbcafd Binary files /dev/null and b/sound/vox_fem/bartender.ogg differ diff --git a/sound/vox_fem/base.ogg b/sound/vox_fem/base.ogg index 9706d29945..242432b822 100644 Binary files a/sound/vox_fem/base.ogg and b/sound/vox_fem/base.ogg differ diff --git a/sound/vox_fem/bay.ogg b/sound/vox_fem/bay.ogg index a4aac8563f..8ac3e449e7 100644 Binary files a/sound/vox_fem/bay.ogg and b/sound/vox_fem/bay.ogg differ diff --git a/sound/vox_fem/be.ogg b/sound/vox_fem/be.ogg index e3ee37f2a0..5ae70289ef 100644 Binary files a/sound/vox_fem/be.ogg and b/sound/vox_fem/be.ogg differ diff --git a/sound/vox_fem/beam.ogg b/sound/vox_fem/beam.ogg new file mode 100644 index 0000000000..b26df5ca45 Binary files /dev/null and b/sound/vox_fem/beam.ogg differ diff --git a/sound/vox_fem/been.ogg b/sound/vox_fem/been.ogg index 202d8f229c..02a4fccfbc 100644 Binary files a/sound/vox_fem/been.ogg and b/sound/vox_fem/been.ogg differ diff --git a/sound/vox_fem/beep.ogg b/sound/vox_fem/beep.ogg new file mode 100644 index 0000000000..38e825b80d Binary files /dev/null and b/sound/vox_fem/beep.ogg differ diff --git a/sound/vox_fem/before.ogg b/sound/vox_fem/before.ogg index 9b25bf1d2c..cfde021dfd 100644 Binary files a/sound/vox_fem/before.ogg and b/sound/vox_fem/before.ogg differ diff --git a/sound/vox_fem/below.ogg b/sound/vox_fem/below.ogg new file mode 100644 index 0000000000..6425b7fd10 Binary files /dev/null and b/sound/vox_fem/below.ogg differ diff --git a/sound/vox_fem/beside.ogg b/sound/vox_fem/beside.ogg new file mode 100644 index 0000000000..3522726d46 Binary files /dev/null and b/sound/vox_fem/beside.ogg differ diff --git a/sound/vox_fem/beware.ogg b/sound/vox_fem/beware.ogg new file mode 100644 index 0000000000..77808fe138 Binary files /dev/null and b/sound/vox_fem/beware.ogg differ diff --git a/sound/vox_fem/beyond.ogg b/sound/vox_fem/beyond.ogg index d9064b764a..c48b2dc8bf 100644 Binary files a/sound/vox_fem/beyond.ogg and b/sound/vox_fem/beyond.ogg differ diff --git a/sound/vox_fem/biohazard.ogg b/sound/vox_fem/biohazard.ogg index 914a083c5b..c6db0331d8 100644 Binary files a/sound/vox_fem/biohazard.ogg and b/sound/vox_fem/biohazard.ogg differ diff --git a/sound/vox_fem/biological.ogg b/sound/vox_fem/biological.ogg index 4efbb34970..8549b3ce21 100644 Binary files a/sound/vox_fem/biological.ogg and b/sound/vox_fem/biological.ogg differ diff --git a/sound/vox_fem/birdwell.ogg b/sound/vox_fem/birdwell.ogg index b291d8d40b..f76d0957eb 100644 Binary files a/sound/vox_fem/birdwell.ogg and b/sound/vox_fem/birdwell.ogg differ diff --git a/sound/vox_fem/bitch.ogg b/sound/vox_fem/bitch.ogg index 348715b151..1cdac8de7f 100644 Binary files a/sound/vox_fem/bitch.ogg and b/sound/vox_fem/bitch.ogg differ diff --git a/sound/vox_fem/bitches.ogg b/sound/vox_fem/bitches.ogg index dab8e1257a..c97a0df116 100644 Binary files a/sound/vox_fem/bitches.ogg and b/sound/vox_fem/bitches.ogg differ diff --git a/sound/vox_fem/bitcoin.ogg b/sound/vox_fem/bitcoin.ogg new file mode 100644 index 0000000000..2407f6a2a6 Binary files /dev/null and b/sound/vox_fem/bitcoin.ogg differ diff --git a/sound/vox_fem/black.ogg b/sound/vox_fem/black.ogg index 9c74790de4..d4abc24167 100644 Binary files a/sound/vox_fem/black.ogg and b/sound/vox_fem/black.ogg differ diff --git a/sound/vox_fem/blast.ogg b/sound/vox_fem/blast.ogg index 21d13d1e3b..79a0190433 100644 Binary files a/sound/vox_fem/blast.ogg and b/sound/vox_fem/blast.ogg differ diff --git a/sound/vox_fem/bleed.ogg b/sound/vox_fem/bleed.ogg new file mode 100644 index 0000000000..541fedfb9e Binary files /dev/null and b/sound/vox_fem/bleed.ogg differ diff --git a/sound/vox_fem/blob.ogg b/sound/vox_fem/blob.ogg new file mode 100644 index 0000000000..9332313e3d Binary files /dev/null and b/sound/vox_fem/blob.ogg differ diff --git a/sound/vox_fem/blocked.ogg b/sound/vox_fem/blocked.ogg index 0d97cf44e0..451898fed1 100644 Binary files a/sound/vox_fem/blocked.ogg and b/sound/vox_fem/blocked.ogg differ diff --git a/sound/vox_fem/blood.ogg b/sound/vox_fem/blood.ogg new file mode 100644 index 0000000000..3d5132b48b Binary files /dev/null and b/sound/vox_fem/blood.ogg differ diff --git a/sound/vox_fem/bloop.ogg b/sound/vox_fem/bloop.ogg new file mode 100644 index 0000000000..e65d755560 Binary files /dev/null and b/sound/vox_fem/bloop.ogg differ diff --git a/sound/vox_fem/blue.ogg b/sound/vox_fem/blue.ogg index 2bca816f34..ed25ec8575 100644 Binary files a/sound/vox_fem/blue.ogg and b/sound/vox_fem/blue.ogg differ diff --git a/sound/vox_fem/bomb.ogg b/sound/vox_fem/bomb.ogg new file mode 100644 index 0000000000..c8e1981578 Binary files /dev/null and b/sound/vox_fem/bomb.ogg differ diff --git a/sound/vox_fem/bone.ogg b/sound/vox_fem/bone.ogg new file mode 100644 index 0000000000..432d8c9188 Binary files /dev/null and b/sound/vox_fem/bone.ogg differ diff --git a/sound/vox_fem/botanist.ogg b/sound/vox_fem/botanist.ogg new file mode 100644 index 0000000000..edb7e3e4c4 Binary files /dev/null and b/sound/vox_fem/botanist.ogg differ diff --git a/sound/vox_fem/botany.ogg b/sound/vox_fem/botany.ogg new file mode 100644 index 0000000000..7aed8ec827 Binary files /dev/null and b/sound/vox_fem/botany.ogg differ diff --git a/sound/vox_fem/bottom.ogg b/sound/vox_fem/bottom.ogg index c1850574c5..871f40d906 100644 Binary files a/sound/vox_fem/bottom.ogg and b/sound/vox_fem/bottom.ogg differ diff --git a/sound/vox_fem/bravo.ogg b/sound/vox_fem/bravo.ogg index eaba95e28b..c40d957223 100644 Binary files a/sound/vox_fem/bravo.ogg and b/sound/vox_fem/bravo.ogg differ diff --git a/sound/vox_fem/breach.ogg b/sound/vox_fem/breach.ogg index b95f17f8d7..4b7fe2033d 100644 Binary files a/sound/vox_fem/breach.ogg and b/sound/vox_fem/breach.ogg differ diff --git a/sound/vox_fem/breached.ogg b/sound/vox_fem/breached.ogg index fd5369c05a..9202861bc6 100644 Binary files a/sound/vox_fem/breached.ogg and b/sound/vox_fem/breached.ogg differ diff --git a/sound/vox_fem/break.ogg b/sound/vox_fem/break.ogg index 7a846fad7f..1bf2f85c75 100644 Binary files a/sound/vox_fem/break.ogg and b/sound/vox_fem/break.ogg differ diff --git a/sound/vox_fem/bridge.ogg b/sound/vox_fem/bridge.ogg index 9d99aaf706..61a00d1610 100644 Binary files a/sound/vox_fem/bridge.ogg and b/sound/vox_fem/bridge.ogg differ diff --git a/sound/vox_fem/brig.ogg b/sound/vox_fem/brig.ogg new file mode 100644 index 0000000000..6deacfa0b6 Binary files /dev/null and b/sound/vox_fem/brig.ogg differ diff --git a/sound/vox_fem/bust.ogg b/sound/vox_fem/bust.ogg index eb22702486..f0944fd31f 100644 Binary files a/sound/vox_fem/bust.ogg and b/sound/vox_fem/bust.ogg differ diff --git a/sound/vox_fem/but.ogg b/sound/vox_fem/but.ogg index a1c80f6d5d..fd02fd97de 100644 Binary files a/sound/vox_fem/but.ogg and b/sound/vox_fem/but.ogg differ diff --git a/sound/vox_fem/button.ogg b/sound/vox_fem/button.ogg index b31c342b14..b85f48e7a4 100644 Binary files a/sound/vox_fem/button.ogg and b/sound/vox_fem/button.ogg differ diff --git a/sound/vox_fem/bypass.ogg b/sound/vox_fem/bypass.ogg index f5e7449143..cf67642e9c 100644 Binary files a/sound/vox_fem/bypass.ogg and b/sound/vox_fem/bypass.ogg differ diff --git a/sound/vox_fem/c.ogg b/sound/vox_fem/c.ogg index 4fdccce68c..a65bb86b08 100644 Binary files a/sound/vox_fem/c.ogg and b/sound/vox_fem/c.ogg differ diff --git a/sound/vox_fem/cable.ogg b/sound/vox_fem/cable.ogg index d859a72729..0e69ff8d7e 100644 Binary files a/sound/vox_fem/cable.ogg and b/sound/vox_fem/cable.ogg differ diff --git a/sound/vox_fem/call.ogg b/sound/vox_fem/call.ogg index 9040e35ca1..4777387195 100644 Binary files a/sound/vox_fem/call.ogg and b/sound/vox_fem/call.ogg differ diff --git a/sound/vox_fem/called.ogg b/sound/vox_fem/called.ogg index b40530537d..b1a0a73368 100644 Binary files a/sound/vox_fem/called.ogg and b/sound/vox_fem/called.ogg differ diff --git a/sound/vox_fem/canal.ogg b/sound/vox_fem/canal.ogg index 74b888be6b..52d3c8a604 100644 Binary files a/sound/vox_fem/canal.ogg and b/sound/vox_fem/canal.ogg differ diff --git a/sound/vox_fem/canister.ogg b/sound/vox_fem/canister.ogg new file mode 100644 index 0000000000..ea2d178955 Binary files /dev/null and b/sound/vox_fem/canister.ogg differ diff --git a/sound/vox_fem/cap.ogg b/sound/vox_fem/cap.ogg index 842cd36f51..482ba1d58f 100644 Binary files a/sound/vox_fem/cap.ogg and b/sound/vox_fem/cap.ogg differ diff --git a/sound/vox_fem/captain.ogg b/sound/vox_fem/captain.ogg index b3c418cdd3..644bc0c8c6 100644 Binary files a/sound/vox_fem/captain.ogg and b/sound/vox_fem/captain.ogg differ diff --git a/sound/vox_fem/capture.ogg b/sound/vox_fem/capture.ogg index 7ff6e2d303..54bbcf06b6 100644 Binary files a/sound/vox_fem/capture.ogg and b/sound/vox_fem/capture.ogg differ diff --git a/sound/vox_fem/carbon.ogg b/sound/vox_fem/carbon.ogg new file mode 100644 index 0000000000..219d2c6ec0 Binary files /dev/null and b/sound/vox_fem/carbon.ogg differ diff --git a/sound/vox_fem/cargo.ogg b/sound/vox_fem/cargo.ogg index bacb92bcef..3dfa1530ca 100644 Binary files a/sound/vox_fem/cargo.ogg and b/sound/vox_fem/cargo.ogg differ diff --git a/sound/vox_fem/cat.ogg b/sound/vox_fem/cat.ogg new file mode 100644 index 0000000000..f9b9928f92 Binary files /dev/null and b/sound/vox_fem/cat.ogg differ diff --git a/sound/vox_fem/ce.ogg b/sound/vox_fem/ce.ogg new file mode 100644 index 0000000000..dd3d06f2c2 Binary files /dev/null and b/sound/vox_fem/ce.ogg differ diff --git a/sound/vox_fem/cease.ogg b/sound/vox_fem/cease.ogg new file mode 100644 index 0000000000..92f99b30a9 Binary files /dev/null and b/sound/vox_fem/cease.ogg differ diff --git a/sound/vox_fem/ceiling.ogg b/sound/vox_fem/ceiling.ogg index 23077d3190..2ad9dcea3c 100644 Binary files a/sound/vox_fem/ceiling.ogg and b/sound/vox_fem/ceiling.ogg differ diff --git a/sound/vox_fem/celsius.ogg b/sound/vox_fem/celsius.ogg index c581b1826c..4a033ee513 100644 Binary files a/sound/vox_fem/celsius.ogg and b/sound/vox_fem/celsius.ogg differ diff --git a/sound/vox_fem/centcom.ogg b/sound/vox_fem/centcom.ogg index fa959cf317..38fd4cdc77 100644 Binary files a/sound/vox_fem/centcom.ogg and b/sound/vox_fem/centcom.ogg differ diff --git a/sound/vox_fem/center.ogg b/sound/vox_fem/center.ogg index 2528798901..f47ae98a4f 100644 Binary files a/sound/vox_fem/center.ogg and b/sound/vox_fem/center.ogg differ diff --git a/sound/vox_fem/centi.ogg b/sound/vox_fem/centi.ogg index 1edbec2af6..af1137f63e 100644 Binary files a/sound/vox_fem/centi.ogg and b/sound/vox_fem/centi.ogg differ diff --git a/sound/vox_fem/central.ogg b/sound/vox_fem/central.ogg index 46391d79d5..10f244f739 100644 Binary files a/sound/vox_fem/central.ogg and b/sound/vox_fem/central.ogg differ diff --git a/sound/vox_fem/challenge.ogg b/sound/vox_fem/challenge.ogg new file mode 100644 index 0000000000..4dc806d173 Binary files /dev/null and b/sound/vox_fem/challenge.ogg differ diff --git a/sound/vox_fem/chamber.ogg b/sound/vox_fem/chamber.ogg index 2ebe6e95ef..9f917eaef1 100644 Binary files a/sound/vox_fem/chamber.ogg and b/sound/vox_fem/chamber.ogg differ diff --git a/sound/vox_fem/change.ogg b/sound/vox_fem/change.ogg new file mode 100644 index 0000000000..51e3f3c109 Binary files /dev/null and b/sound/vox_fem/change.ogg differ diff --git a/sound/vox_fem/changed.ogg b/sound/vox_fem/changed.ogg index a18a7e0bfa..f4c4defe6c 100644 Binary files a/sound/vox_fem/changed.ogg and b/sound/vox_fem/changed.ogg differ diff --git a/sound/vox_fem/changeling.ogg b/sound/vox_fem/changeling.ogg new file mode 100644 index 0000000000..79244a0b78 Binary files /dev/null and b/sound/vox_fem/changeling.ogg differ diff --git a/sound/vox_fem/chapel.ogg b/sound/vox_fem/chapel.ogg new file mode 100644 index 0000000000..e5c3959c49 Binary files /dev/null and b/sound/vox_fem/chapel.ogg differ diff --git a/sound/vox_fem/chaplain.ogg b/sound/vox_fem/chaplain.ogg new file mode 100644 index 0000000000..9bca07f7e3 Binary files /dev/null and b/sound/vox_fem/chaplain.ogg differ diff --git a/sound/vox_fem/charlie.ogg b/sound/vox_fem/charlie.ogg index 0178175604..01e5f99df4 100644 Binary files a/sound/vox_fem/charlie.ogg and b/sound/vox_fem/charlie.ogg differ diff --git a/sound/vox_fem/check.ogg b/sound/vox_fem/check.ogg index 111d71d51a..1c6002b65c 100644 Binary files a/sound/vox_fem/check.ogg and b/sound/vox_fem/check.ogg differ diff --git a/sound/vox_fem/checkpoint.ogg b/sound/vox_fem/checkpoint.ogg index 591e4506a7..3f7748a3da 100644 Binary files a/sound/vox_fem/checkpoint.ogg and b/sound/vox_fem/checkpoint.ogg differ diff --git a/sound/vox_fem/chemical.ogg b/sound/vox_fem/chemical.ogg index f79015a82f..198cf4ea09 100644 Binary files a/sound/vox_fem/chemical.ogg and b/sound/vox_fem/chemical.ogg differ diff --git a/sound/vox_fem/chemist.ogg b/sound/vox_fem/chemist.ogg new file mode 100644 index 0000000000..e17afefcb9 Binary files /dev/null and b/sound/vox_fem/chemist.ogg differ diff --git a/sound/vox_fem/chief.ogg b/sound/vox_fem/chief.ogg new file mode 100644 index 0000000000..b7d0942021 Binary files /dev/null and b/sound/vox_fem/chief.ogg differ diff --git a/sound/vox_fem/christ.ogg b/sound/vox_fem/christ.ogg new file mode 100644 index 0000000000..86242d8c03 Binary files /dev/null and b/sound/vox_fem/christ.ogg differ diff --git a/sound/vox_fem/chuckle.ogg b/sound/vox_fem/chuckle.ogg new file mode 100644 index 0000000000..866611bef6 Binary files /dev/null and b/sound/vox_fem/chuckle.ogg differ diff --git a/sound/vox_fem/circuit.ogg b/sound/vox_fem/circuit.ogg new file mode 100644 index 0000000000..349167735a Binary files /dev/null and b/sound/vox_fem/circuit.ogg differ diff --git a/sound/vox_fem/cleanup.ogg b/sound/vox_fem/cleanup.ogg index 21bb943905..ae2efcbbb9 100644 Binary files a/sound/vox_fem/cleanup.ogg and b/sound/vox_fem/cleanup.ogg differ diff --git a/sound/vox_fem/clear.ogg b/sound/vox_fem/clear.ogg index 28bc282ae2..98926f58f6 100644 Binary files a/sound/vox_fem/clear.ogg and b/sound/vox_fem/clear.ogg differ diff --git a/sound/vox_fem/clearance.ogg b/sound/vox_fem/clearance.ogg index 31e27ea453..1ece107c76 100644 Binary files a/sound/vox_fem/clearance.ogg and b/sound/vox_fem/clearance.ogg differ diff --git a/sound/vox_fem/clockwork.ogg b/sound/vox_fem/clockwork.ogg new file mode 100644 index 0000000000..5e04e5d078 Binary files /dev/null and b/sound/vox_fem/clockwork.ogg differ diff --git a/sound/vox_fem/close.ogg b/sound/vox_fem/close.ogg index e478f3c242..7ac5412aa4 100644 Binary files a/sound/vox_fem/close.ogg and b/sound/vox_fem/close.ogg differ diff --git a/sound/vox_fem/clown.ogg b/sound/vox_fem/clown.ogg index 3d92a00373..d823a01d00 100644 Binary files a/sound/vox_fem/clown.ogg and b/sound/vox_fem/clown.ogg differ diff --git a/sound/vox_fem/clowning.ogg b/sound/vox_fem/clowning.ogg new file mode 100644 index 0000000000..1dfb779e5d Binary files /dev/null and b/sound/vox_fem/clowning.ogg differ diff --git a/sound/vox_fem/cmo.ogg b/sound/vox_fem/cmo.ogg new file mode 100644 index 0000000000..2e469ffa48 Binary files /dev/null and b/sound/vox_fem/cmo.ogg differ diff --git a/sound/vox_fem/code.ogg b/sound/vox_fem/code.ogg index 2f4f969e63..2d36d7ff45 100644 Binary files a/sound/vox_fem/code.ogg and b/sound/vox_fem/code.ogg differ diff --git a/sound/vox_fem/coded.ogg b/sound/vox_fem/coded.ogg index a82df55580..01dad555a8 100644 Binary files a/sound/vox_fem/coded.ogg and b/sound/vox_fem/coded.ogg differ diff --git a/sound/vox_fem/cold.ogg b/sound/vox_fem/cold.ogg new file mode 100644 index 0000000000..0538fb512a Binary files /dev/null and b/sound/vox_fem/cold.ogg differ diff --git a/sound/vox_fem/collider.ogg b/sound/vox_fem/collider.ogg index 985d715bff..0506ff9468 100644 Binary files a/sound/vox_fem/collider.ogg and b/sound/vox_fem/collider.ogg differ diff --git a/sound/vox_fem/come.ogg b/sound/vox_fem/come.ogg index d3c414ff98..7f61947ff6 100644 Binary files a/sound/vox_fem/come.ogg and b/sound/vox_fem/come.ogg differ diff --git a/sound/vox_fem/command.ogg b/sound/vox_fem/command.ogg index 4461a7f1a4..66370be8a7 100644 Binary files a/sound/vox_fem/command.ogg and b/sound/vox_fem/command.ogg differ diff --git a/sound/vox_fem/communication.ogg b/sound/vox_fem/communication.ogg index 1bdea077e1..efff5b2168 100644 Binary files a/sound/vox_fem/communication.ogg and b/sound/vox_fem/communication.ogg differ diff --git a/sound/vox_fem/complex.ogg b/sound/vox_fem/complex.ogg index baedb710c9..d1a817f90a 100644 Binary files a/sound/vox_fem/complex.ogg and b/sound/vox_fem/complex.ogg differ diff --git a/sound/vox_fem/comply.ogg b/sound/vox_fem/comply.ogg new file mode 100644 index 0000000000..aa0194054a Binary files /dev/null and b/sound/vox_fem/comply.ogg differ diff --git a/sound/vox_fem/computer.ogg b/sound/vox_fem/computer.ogg index 9582c594bb..563c739ec5 100644 Binary files a/sound/vox_fem/computer.ogg and b/sound/vox_fem/computer.ogg differ diff --git a/sound/vox_fem/condition.ogg b/sound/vox_fem/condition.ogg index d646753410..6b70d88b39 100644 Binary files a/sound/vox_fem/condition.ogg and b/sound/vox_fem/condition.ogg differ diff --git a/sound/vox_fem/condom.ogg b/sound/vox_fem/condom.ogg new file mode 100644 index 0000000000..9bc1d45997 Binary files /dev/null and b/sound/vox_fem/condom.ogg differ diff --git a/sound/vox_fem/confirmed.ogg b/sound/vox_fem/confirmed.ogg new file mode 100644 index 0000000000..331c31e218 Binary files /dev/null and b/sound/vox_fem/confirmed.ogg differ diff --git a/sound/vox_fem/connor.ogg b/sound/vox_fem/connor.ogg index d151e640d3..a1721dd36f 100644 Binary files a/sound/vox_fem/connor.ogg and b/sound/vox_fem/connor.ogg differ diff --git a/sound/vox_fem/console.ogg b/sound/vox_fem/console.ogg new file mode 100644 index 0000000000..2a9784e277 Binary files /dev/null and b/sound/vox_fem/console.ogg differ diff --git a/sound/vox_fem/console2.ogg b/sound/vox_fem/console2.ogg new file mode 100644 index 0000000000..36cab49dfb Binary files /dev/null and b/sound/vox_fem/console2.ogg differ diff --git a/sound/vox_fem/construct.ogg b/sound/vox_fem/construct.ogg new file mode 100644 index 0000000000..71026f5292 Binary files /dev/null and b/sound/vox_fem/construct.ogg differ diff --git a/sound/vox_fem/containment.ogg b/sound/vox_fem/containment.ogg index 669ab3ebba..be81333e84 100644 Binary files a/sound/vox_fem/containment.ogg and b/sound/vox_fem/containment.ogg differ diff --git a/sound/vox_fem/contamination.ogg b/sound/vox_fem/contamination.ogg index 11dd067ace..a6544716f1 100644 Binary files a/sound/vox_fem/contamination.ogg and b/sound/vox_fem/contamination.ogg differ diff --git a/sound/vox_fem/contraband.ogg b/sound/vox_fem/contraband.ogg index f236049a7c..8627917f06 100644 Binary files a/sound/vox_fem/contraband.ogg and b/sound/vox_fem/contraband.ogg differ diff --git a/sound/vox_fem/control.ogg b/sound/vox_fem/control.ogg index 0074e0ffbb..23f13913a2 100644 Binary files a/sound/vox_fem/control.ogg and b/sound/vox_fem/control.ogg differ diff --git a/sound/vox_fem/cook.ogg b/sound/vox_fem/cook.ogg new file mode 100644 index 0000000000..59e6bbbc06 Binary files /dev/null and b/sound/vox_fem/cook.ogg differ diff --git a/sound/vox_fem/coolant.ogg b/sound/vox_fem/coolant.ogg index dc4065daee..b4969ee55d 100644 Binary files a/sound/vox_fem/coolant.ogg and b/sound/vox_fem/coolant.ogg differ diff --git a/sound/vox_fem/coomer.ogg b/sound/vox_fem/coomer.ogg index 4f7f8ca3b9..fb40b8a1c0 100644 Binary files a/sound/vox_fem/coomer.ogg and b/sound/vox_fem/coomer.ogg differ diff --git a/sound/vox_fem/core.ogg b/sound/vox_fem/core.ogg index c44383dd59..8641800b90 100644 Binary files a/sound/vox_fem/core.ogg and b/sound/vox_fem/core.ogg differ diff --git a/sound/vox_fem/corgi.ogg b/sound/vox_fem/corgi.ogg new file mode 100644 index 0000000000..d21b56d0ae Binary files /dev/null and b/sound/vox_fem/corgi.ogg differ diff --git a/sound/vox_fem/corporation.ogg b/sound/vox_fem/corporation.ogg new file mode 100644 index 0000000000..31371bd8d6 Binary files /dev/null and b/sound/vox_fem/corporation.ogg differ diff --git a/sound/vox_fem/correct.ogg b/sound/vox_fem/correct.ogg index 952bee8356..cab75c9383 100644 Binary files a/sound/vox_fem/correct.ogg and b/sound/vox_fem/correct.ogg differ diff --git a/sound/vox_fem/corridor.ogg b/sound/vox_fem/corridor.ogg index 04227fd5d4..ce8cd73c8a 100644 Binary files a/sound/vox_fem/corridor.ogg and b/sound/vox_fem/corridor.ogg differ diff --git a/sound/vox_fem/corridors.ogg b/sound/vox_fem/corridors.ogg new file mode 100644 index 0000000000..9b2fa88793 Binary files /dev/null and b/sound/vox_fem/corridors.ogg differ diff --git a/sound/vox_fem/coward.ogg b/sound/vox_fem/coward.ogg index a343df23f7..020c046e68 100644 Binary files a/sound/vox_fem/coward.ogg and b/sound/vox_fem/coward.ogg differ diff --git a/sound/vox_fem/cowards.ogg b/sound/vox_fem/cowards.ogg index f5dac8813c..6c3ed83ae5 100644 Binary files a/sound/vox_fem/cowards.ogg and b/sound/vox_fem/cowards.ogg differ diff --git a/sound/vox_fem/crate.ogg b/sound/vox_fem/crate.ogg new file mode 100644 index 0000000000..4d6fb5772a Binary files /dev/null and b/sound/vox_fem/crate.ogg differ diff --git a/sound/vox_fem/created.ogg b/sound/vox_fem/created.ogg new file mode 100644 index 0000000000..b5cb976af1 Binary files /dev/null and b/sound/vox_fem/created.ogg differ diff --git a/sound/vox_fem/creature.ogg b/sound/vox_fem/creature.ogg new file mode 100644 index 0000000000..14aecf4312 Binary files /dev/null and b/sound/vox_fem/creature.ogg differ diff --git a/sound/vox_fem/crew.ogg b/sound/vox_fem/crew.ogg index 4a886bbfb7..f97e77af78 100644 Binary files a/sound/vox_fem/crew.ogg and b/sound/vox_fem/crew.ogg differ diff --git a/sound/vox_fem/critical.ogg b/sound/vox_fem/critical.ogg new file mode 100644 index 0000000000..813df8a515 Binary files /dev/null and b/sound/vox_fem/critical.ogg differ diff --git a/sound/vox_fem/cross.ogg b/sound/vox_fem/cross.ogg index caaeb7057f..a080b2e921 100644 Binary files a/sound/vox_fem/cross.ogg and b/sound/vox_fem/cross.ogg differ diff --git a/sound/vox_fem/cryogenic.ogg b/sound/vox_fem/cryogenic.ogg index 04624fe560..c7ef8fe0d2 100644 Binary files a/sound/vox_fem/cryogenic.ogg and b/sound/vox_fem/cryogenic.ogg differ diff --git a/sound/vox_fem/crystal.ogg b/sound/vox_fem/crystal.ogg new file mode 100644 index 0000000000..3945bc141e Binary files /dev/null and b/sound/vox_fem/crystal.ogg differ diff --git a/sound/vox_fem/cult.ogg b/sound/vox_fem/cult.ogg new file mode 100644 index 0000000000..f5d441ad9e Binary files /dev/null and b/sound/vox_fem/cult.ogg differ diff --git a/sound/vox_fem/cultist.ogg b/sound/vox_fem/cultist.ogg new file mode 100644 index 0000000000..f9f7fc967c Binary files /dev/null and b/sound/vox_fem/cultist.ogg differ diff --git a/sound/vox_fem/cunt.ogg b/sound/vox_fem/cunt.ogg index 37abf11e92..1aafad77f8 100644 Binary files a/sound/vox_fem/cunt.ogg and b/sound/vox_fem/cunt.ogg differ diff --git a/sound/vox_fem/curator.ogg b/sound/vox_fem/curator.ogg new file mode 100644 index 0000000000..032a83da27 Binary files /dev/null and b/sound/vox_fem/curator.ogg differ diff --git a/sound/vox_fem/cyborg.ogg b/sound/vox_fem/cyborg.ogg index 76ea47f7d2..a42d0a8c0d 100644 Binary files a/sound/vox_fem/cyborg.ogg and b/sound/vox_fem/cyborg.ogg differ diff --git a/sound/vox_fem/cyborgs.ogg b/sound/vox_fem/cyborgs.ogg index f05ec68ac0..9aa1705783 100644 Binary files a/sound/vox_fem/cyborgs.ogg and b/sound/vox_fem/cyborgs.ogg differ diff --git a/sound/vox_fem/d.ogg b/sound/vox_fem/d.ogg index 55a4132060..d708d41991 100644 Binary files a/sound/vox_fem/d.ogg and b/sound/vox_fem/d.ogg differ diff --git a/sound/vox_fem/damage.ogg b/sound/vox_fem/damage.ogg index 08b44edc4e..c3eae6ab8d 100644 Binary files a/sound/vox_fem/damage.ogg and b/sound/vox_fem/damage.ogg differ diff --git a/sound/vox_fem/damaged.ogg b/sound/vox_fem/damaged.ogg index dddb8ce976..321bf85b98 100644 Binary files a/sound/vox_fem/damaged.ogg and b/sound/vox_fem/damaged.ogg differ diff --git a/sound/vox_fem/danger.ogg b/sound/vox_fem/danger.ogg index 4e3f77b0ea..5fb815418c 100644 Binary files a/sound/vox_fem/danger.ogg and b/sound/vox_fem/danger.ogg differ diff --git a/sound/vox_fem/dangerous.ogg b/sound/vox_fem/dangerous.ogg new file mode 100644 index 0000000000..4274bceac8 Binary files /dev/null and b/sound/vox_fem/dangerous.ogg differ diff --git a/sound/vox_fem/day.ogg b/sound/vox_fem/day.ogg index a1ad0c915f..bcd49a608b 100644 Binary files a/sound/vox_fem/day.ogg and b/sound/vox_fem/day.ogg differ diff --git a/sound/vox_fem/deactivated.ogg b/sound/vox_fem/deactivated.ogg index 9553b60f79..f799206ada 100644 Binary files a/sound/vox_fem/deactivated.ogg and b/sound/vox_fem/deactivated.ogg differ diff --git a/sound/vox_fem/dead.ogg b/sound/vox_fem/dead.ogg new file mode 100644 index 0000000000..ba4ca54e00 Binary files /dev/null and b/sound/vox_fem/dead.ogg differ diff --git a/sound/vox_fem/death.ogg b/sound/vox_fem/death.ogg new file mode 100644 index 0000000000..1a37fbd5ed Binary files /dev/null and b/sound/vox_fem/death.ogg differ diff --git a/sound/vox_fem/decompression.ogg b/sound/vox_fem/decompression.ogg index d6bf99ddf4..0add62768b 100644 Binary files a/sound/vox_fem/decompression.ogg and b/sound/vox_fem/decompression.ogg differ diff --git a/sound/vox_fem/decontamination.ogg b/sound/vox_fem/decontamination.ogg index 6c2678fea9..6398fea3c2 100644 Binary files a/sound/vox_fem/decontamination.ogg and b/sound/vox_fem/decontamination.ogg differ diff --git a/sound/vox_fem/deeoo.ogg b/sound/vox_fem/deeoo.ogg index 3a8bbd48ae..2af141dfa1 100644 Binary files a/sound/vox_fem/deeoo.ogg and b/sound/vox_fem/deeoo.ogg differ diff --git a/sound/vox_fem/defense.ogg b/sound/vox_fem/defense.ogg index fb96cc7cce..3c53261dd4 100644 Binary files a/sound/vox_fem/defense.ogg and b/sound/vox_fem/defense.ogg differ diff --git a/sound/vox_fem/degrees.ogg b/sound/vox_fem/degrees.ogg index cb483e04fb..845588a84c 100644 Binary files a/sound/vox_fem/degrees.ogg and b/sound/vox_fem/degrees.ogg differ diff --git a/sound/vox_fem/delta.ogg b/sound/vox_fem/delta.ogg index 63cfcbc64c..9e6e66b41a 100644 Binary files a/sound/vox_fem/delta.ogg and b/sound/vox_fem/delta.ogg differ diff --git a/sound/vox_fem/demon.ogg b/sound/vox_fem/demon.ogg new file mode 100644 index 0000000000..f6220c886d Binary files /dev/null and b/sound/vox_fem/demon.ogg differ diff --git a/sound/vox_fem/denied.ogg b/sound/vox_fem/denied.ogg index b44fc72b8f..e839c4174f 100644 Binary files a/sound/vox_fem/denied.ogg and b/sound/vox_fem/denied.ogg differ diff --git a/sound/vox_fem/departures.ogg b/sound/vox_fem/departures.ogg new file mode 100644 index 0000000000..22a4cb0490 Binary files /dev/null and b/sound/vox_fem/departures.ogg differ diff --git a/sound/vox_fem/deploy.ogg b/sound/vox_fem/deploy.ogg index 1ff0a0e862..2af4fc6d55 100644 Binary files a/sound/vox_fem/deploy.ogg and b/sound/vox_fem/deploy.ogg differ diff --git a/sound/vox_fem/deployed.ogg b/sound/vox_fem/deployed.ogg index 28bde2e276..48db9e7e0d 100644 Binary files a/sound/vox_fem/deployed.ogg and b/sound/vox_fem/deployed.ogg differ diff --git a/sound/vox_fem/desire.ogg b/sound/vox_fem/desire.ogg new file mode 100644 index 0000000000..bfb4d7f3d3 Binary files /dev/null and b/sound/vox_fem/desire.ogg differ diff --git a/sound/vox_fem/desist.ogg b/sound/vox_fem/desist.ogg new file mode 100644 index 0000000000..59f44f79f7 Binary files /dev/null and b/sound/vox_fem/desist.ogg differ diff --git a/sound/vox_fem/destroy.ogg b/sound/vox_fem/destroy.ogg index 924ec152f6..e71008be95 100644 Binary files a/sound/vox_fem/destroy.ogg and b/sound/vox_fem/destroy.ogg differ diff --git a/sound/vox_fem/destroyed.ogg b/sound/vox_fem/destroyed.ogg index 0cbd8474f9..e4e3627fa6 100644 Binary files a/sound/vox_fem/destroyed.ogg and b/sound/vox_fem/destroyed.ogg differ diff --git a/sound/vox_fem/destruction.ogg b/sound/vox_fem/destruction.ogg new file mode 100644 index 0000000000..8512afedf1 Binary files /dev/null and b/sound/vox_fem/destruction.ogg differ diff --git a/sound/vox_fem/detain.ogg b/sound/vox_fem/detain.ogg index 3391f7f859..353884e5ae 100644 Binary files a/sound/vox_fem/detain.ogg and b/sound/vox_fem/detain.ogg differ diff --git a/sound/vox_fem/detected.ogg b/sound/vox_fem/detected.ogg index b308ce59c9..b29f19c5bc 100644 Binary files a/sound/vox_fem/detected.ogg and b/sound/vox_fem/detected.ogg differ diff --git a/sound/vox_fem/detective.ogg b/sound/vox_fem/detective.ogg new file mode 100644 index 0000000000..ca8dca481c Binary files /dev/null and b/sound/vox_fem/detective.ogg differ diff --git a/sound/vox_fem/detonation.ogg b/sound/vox_fem/detonation.ogg index 835111b1d7..afe0027d5a 100644 Binary files a/sound/vox_fem/detonation.ogg and b/sound/vox_fem/detonation.ogg differ diff --git a/sound/vox_fem/device.ogg b/sound/vox_fem/device.ogg index a08e6c3f44..d44d322bdd 100644 Binary files a/sound/vox_fem/device.ogg and b/sound/vox_fem/device.ogg differ diff --git a/sound/vox_fem/devil.ogg b/sound/vox_fem/devil.ogg new file mode 100644 index 0000000000..8e1f2618ff Binary files /dev/null and b/sound/vox_fem/devil.ogg differ diff --git a/sound/vox_fem/did.ogg b/sound/vox_fem/did.ogg index 3af6acb99e..d73d2c7e23 100644 Binary files a/sound/vox_fem/did.ogg and b/sound/vox_fem/did.ogg differ diff --git a/sound/vox_fem/die.ogg b/sound/vox_fem/die.ogg index 602cc083ca..1d0e885825 100644 Binary files a/sound/vox_fem/die.ogg and b/sound/vox_fem/die.ogg differ diff --git a/sound/vox_fem/dimensional.ogg b/sound/vox_fem/dimensional.ogg index 175bfe0107..0779d44d31 100644 Binary files a/sound/vox_fem/dimensional.ogg and b/sound/vox_fem/dimensional.ogg differ diff --git a/sound/vox_fem/dioxide.ogg b/sound/vox_fem/dioxide.ogg new file mode 100644 index 0000000000..31686aee67 Binary files /dev/null and b/sound/vox_fem/dioxide.ogg differ diff --git a/sound/vox_fem/director.ogg b/sound/vox_fem/director.ogg new file mode 100644 index 0000000000..26937c7835 Binary files /dev/null and b/sound/vox_fem/director.ogg differ diff --git a/sound/vox_fem/dirt.ogg b/sound/vox_fem/dirt.ogg index 39cc18c616..0c20d472b4 100644 Binary files a/sound/vox_fem/dirt.ogg and b/sound/vox_fem/dirt.ogg differ diff --git a/sound/vox_fem/disabled.ogg b/sound/vox_fem/disabled.ogg new file mode 100644 index 0000000000..e9a53794c8 Binary files /dev/null and b/sound/vox_fem/disabled.ogg differ diff --git a/sound/vox_fem/disease.ogg b/sound/vox_fem/disease.ogg new file mode 100644 index 0000000000..dd49df1236 Binary files /dev/null and b/sound/vox_fem/disease.ogg differ diff --git a/sound/vox_fem/disengaged.ogg b/sound/vox_fem/disengaged.ogg index 906350fd67..beb57e639b 100644 Binary files a/sound/vox_fem/disengaged.ogg and b/sound/vox_fem/disengaged.ogg differ diff --git a/sound/vox_fem/dish.ogg b/sound/vox_fem/dish.ogg index 5dd123050f..61ace0be59 100644 Binary files a/sound/vox_fem/dish.ogg and b/sound/vox_fem/dish.ogg differ diff --git a/sound/vox_fem/disk.ogg b/sound/vox_fem/disk.ogg new file mode 100644 index 0000000000..849487f4ef Binary files /dev/null and b/sound/vox_fem/disk.ogg differ diff --git a/sound/vox_fem/disposal.ogg b/sound/vox_fem/disposal.ogg index 25331eeaf2..5306720089 100644 Binary files a/sound/vox_fem/disposal.ogg and b/sound/vox_fem/disposal.ogg differ diff --git a/sound/vox_fem/distance.ogg b/sound/vox_fem/distance.ogg index a663a6386b..fc66bc93f7 100644 Binary files a/sound/vox_fem/distance.ogg and b/sound/vox_fem/distance.ogg differ diff --git a/sound/vox_fem/distortion.ogg b/sound/vox_fem/distortion.ogg index 825cc55816..8208ca347c 100644 Binary files a/sound/vox_fem/distortion.ogg and b/sound/vox_fem/distortion.ogg differ diff --git a/sound/vox_fem/do.ogg b/sound/vox_fem/do.ogg index 6ac7099d0b..0add3672c3 100644 Binary files a/sound/vox_fem/do.ogg and b/sound/vox_fem/do.ogg differ diff --git a/sound/vox_fem/doctor.ogg b/sound/vox_fem/doctor.ogg index a073605021..e4ec144894 100644 Binary files a/sound/vox_fem/doctor.ogg and b/sound/vox_fem/doctor.ogg differ diff --git a/sound/vox_fem/dog.ogg b/sound/vox_fem/dog.ogg new file mode 100644 index 0000000000..55a15810e5 Binary files /dev/null and b/sound/vox_fem/dog.ogg differ diff --git a/sound/vox_fem/doomsday.ogg b/sound/vox_fem/doomsday.ogg new file mode 100644 index 0000000000..c682fa23f8 Binary files /dev/null and b/sound/vox_fem/doomsday.ogg differ diff --git a/sound/vox_fem/doop.ogg b/sound/vox_fem/doop.ogg new file mode 100644 index 0000000000..34f653f12d Binary files /dev/null and b/sound/vox_fem/doop.ogg differ diff --git a/sound/vox_fem/door.ogg b/sound/vox_fem/door.ogg index 4d93d28cd8..d6c9bdf047 100644 Binary files a/sound/vox_fem/door.ogg and b/sound/vox_fem/door.ogg differ diff --git a/sound/vox_fem/dormitory.ogg b/sound/vox_fem/dormitory.ogg new file mode 100644 index 0000000000..89f7104d53 Binary files /dev/null and b/sound/vox_fem/dormitory.ogg differ diff --git a/sound/vox_fem/dot.ogg b/sound/vox_fem/dot.ogg new file mode 100644 index 0000000000..bd8d47b659 Binary files /dev/null and b/sound/vox_fem/dot.ogg differ diff --git a/sound/vox_fem/down.ogg b/sound/vox_fem/down.ogg index c6a69398b2..b34a096959 100644 Binary files a/sound/vox_fem/down.ogg and b/sound/vox_fem/down.ogg differ diff --git a/sound/vox_fem/drone.ogg b/sound/vox_fem/drone.ogg new file mode 100644 index 0000000000..d58a86ccea Binary files /dev/null and b/sound/vox_fem/drone.ogg differ diff --git a/sound/vox_fem/dual.ogg b/sound/vox_fem/dual.ogg index 291c5eca45..539d7dcfdc 100644 Binary files a/sound/vox_fem/dual.ogg and b/sound/vox_fem/dual.ogg differ diff --git a/sound/vox_fem/duct.ogg b/sound/vox_fem/duct.ogg index 0430995064..cae11fcc36 100644 Binary files a/sound/vox_fem/duct.ogg and b/sound/vox_fem/duct.ogg differ diff --git a/sound/vox_fem/e.ogg b/sound/vox_fem/e.ogg index 7a9af66368..23712e56cd 100644 Binary files a/sound/vox_fem/e.ogg and b/sound/vox_fem/e.ogg differ diff --git a/sound/vox_fem/east.ogg b/sound/vox_fem/east.ogg index 6034fcc641..c3df2851d2 100644 Binary files a/sound/vox_fem/east.ogg and b/sound/vox_fem/east.ogg differ diff --git a/sound/vox_fem/echo.ogg b/sound/vox_fem/echo.ogg index 6bbf45589f..0cf14ffbda 100644 Binary files a/sound/vox_fem/echo.ogg and b/sound/vox_fem/echo.ogg differ diff --git a/sound/vox_fem/ed.ogg b/sound/vox_fem/ed.ogg index e4bb08f3e8..911901c2a0 100644 Binary files a/sound/vox_fem/ed.ogg and b/sound/vox_fem/ed.ogg differ diff --git a/sound/vox_fem/effect.ogg b/sound/vox_fem/effect.ogg index 5c60751cf3..b17d6ec7e3 100644 Binary files a/sound/vox_fem/effect.ogg and b/sound/vox_fem/effect.ogg differ diff --git a/sound/vox_fem/egress.ogg b/sound/vox_fem/egress.ogg index b7b6a29d0d..daab242620 100644 Binary files a/sound/vox_fem/egress.ogg and b/sound/vox_fem/egress.ogg differ diff --git a/sound/vox_fem/eight.ogg b/sound/vox_fem/eight.ogg index ecf7111a42..11695053ee 100644 Binary files a/sound/vox_fem/eight.ogg and b/sound/vox_fem/eight.ogg differ diff --git a/sound/vox_fem/eighteen.ogg b/sound/vox_fem/eighteen.ogg index b9c239faf6..e5778706f3 100644 Binary files a/sound/vox_fem/eighteen.ogg and b/sound/vox_fem/eighteen.ogg differ diff --git a/sound/vox_fem/eighty.ogg b/sound/vox_fem/eighty.ogg index c9b2f0ac5f..2849238266 100644 Binary files a/sound/vox_fem/eighty.ogg and b/sound/vox_fem/eighty.ogg differ diff --git a/sound/vox_fem/electric.ogg b/sound/vox_fem/electric.ogg index 58788723d2..fa8b62db79 100644 Binary files a/sound/vox_fem/electric.ogg and b/sound/vox_fem/electric.ogg differ diff --git a/sound/vox_fem/electromagnetic.ogg b/sound/vox_fem/electromagnetic.ogg index bec4c9d2f9..022f00cd14 100644 Binary files a/sound/vox_fem/electromagnetic.ogg and b/sound/vox_fem/electromagnetic.ogg differ diff --git a/sound/vox_fem/elevator.ogg b/sound/vox_fem/elevator.ogg index d4383ba908..97e68b7662 100644 Binary files a/sound/vox_fem/elevator.ogg and b/sound/vox_fem/elevator.ogg differ diff --git a/sound/vox_fem/eleven.ogg b/sound/vox_fem/eleven.ogg index ea38113247..08c8c0e644 100644 Binary files a/sound/vox_fem/eleven.ogg and b/sound/vox_fem/eleven.ogg differ diff --git a/sound/vox_fem/eliminate.ogg b/sound/vox_fem/eliminate.ogg index 1e2bc8cc65..11b9552292 100644 Binary files a/sound/vox_fem/eliminate.ogg and b/sound/vox_fem/eliminate.ogg differ diff --git a/sound/vox_fem/emergency.ogg b/sound/vox_fem/emergency.ogg index 5289a375ca..d89f2f342d 100644 Binary files a/sound/vox_fem/emergency.ogg and b/sound/vox_fem/emergency.ogg differ diff --git a/sound/vox_fem/enabled.ogg b/sound/vox_fem/enabled.ogg new file mode 100644 index 0000000000..7a377221d0 Binary files /dev/null and b/sound/vox_fem/enabled.ogg differ diff --git a/sound/vox_fem/energy.ogg b/sound/vox_fem/energy.ogg index d0e52f084b..3887a11bd6 100644 Binary files a/sound/vox_fem/energy.ogg and b/sound/vox_fem/energy.ogg differ diff --git a/sound/vox_fem/engage.ogg b/sound/vox_fem/engage.ogg index ee7d2112b8..66f17507a0 100644 Binary files a/sound/vox_fem/engage.ogg and b/sound/vox_fem/engage.ogg differ diff --git a/sound/vox_fem/engaged.ogg b/sound/vox_fem/engaged.ogg index 358d13f106..6f625ed812 100644 Binary files a/sound/vox_fem/engaged.ogg and b/sound/vox_fem/engaged.ogg differ diff --git a/sound/vox_fem/engine.ogg b/sound/vox_fem/engine.ogg index 1936b115cc..267179cb7a 100644 Binary files a/sound/vox_fem/engine.ogg and b/sound/vox_fem/engine.ogg differ diff --git a/sound/vox_fem/engineer.ogg b/sound/vox_fem/engineer.ogg new file mode 100644 index 0000000000..5b1761013a Binary files /dev/null and b/sound/vox_fem/engineer.ogg differ diff --git a/sound/vox_fem/engineering.ogg b/sound/vox_fem/engineering.ogg new file mode 100644 index 0000000000..821060a7b6 Binary files /dev/null and b/sound/vox_fem/engineering.ogg differ diff --git a/sound/vox_fem/enter.ogg b/sound/vox_fem/enter.ogg index 93d796ca9c..072d98b344 100644 Binary files a/sound/vox_fem/enter.ogg and b/sound/vox_fem/enter.ogg differ diff --git a/sound/vox_fem/entity.ogg b/sound/vox_fem/entity.ogg new file mode 100644 index 0000000000..40b2f1d803 Binary files /dev/null and b/sound/vox_fem/entity.ogg differ diff --git a/sound/vox_fem/entry.ogg b/sound/vox_fem/entry.ogg index a11ed9be4e..bb42ea6cf9 100644 Binary files a/sound/vox_fem/entry.ogg and b/sound/vox_fem/entry.ogg differ diff --git a/sound/vox_fem/environment.ogg b/sound/vox_fem/environment.ogg index 02a2a172cf..c2bfc9163f 100644 Binary files a/sound/vox_fem/environment.ogg and b/sound/vox_fem/environment.ogg differ diff --git a/sound/vox_fem/epic.ogg b/sound/vox_fem/epic.ogg new file mode 100644 index 0000000000..461c72652d Binary files /dev/null and b/sound/vox_fem/epic.ogg differ diff --git a/sound/vox_fem/equipment.ogg b/sound/vox_fem/equipment.ogg new file mode 100644 index 0000000000..224b7b232d Binary files /dev/null and b/sound/vox_fem/equipment.ogg differ diff --git a/sound/vox_fem/error.ogg b/sound/vox_fem/error.ogg index 44c45e4a99..6dab23ef3b 100644 Binary files a/sound/vox_fem/error.ogg and b/sound/vox_fem/error.ogg differ diff --git a/sound/vox_fem/escape.ogg b/sound/vox_fem/escape.ogg index 5567566d5a..d1e8195d81 100644 Binary files a/sound/vox_fem/escape.ogg and b/sound/vox_fem/escape.ogg differ diff --git a/sound/vox_fem/eva.ogg b/sound/vox_fem/eva.ogg new file mode 100644 index 0000000000..55deb8df42 Binary files /dev/null and b/sound/vox_fem/eva.ogg differ diff --git a/sound/vox_fem/evacuate.ogg b/sound/vox_fem/evacuate.ogg index 929f5514a3..a0d8b2105b 100644 Binary files a/sound/vox_fem/evacuate.ogg and b/sound/vox_fem/evacuate.ogg differ diff --git a/sound/vox_fem/exchange.ogg b/sound/vox_fem/exchange.ogg index 844fd8e7bb..9b2a5b2dbb 100644 Binary files a/sound/vox_fem/exchange.ogg and b/sound/vox_fem/exchange.ogg differ diff --git a/sound/vox_fem/exit.ogg b/sound/vox_fem/exit.ogg index 7a6f504887..38649506b5 100644 Binary files a/sound/vox_fem/exit.ogg and b/sound/vox_fem/exit.ogg differ diff --git a/sound/vox_fem/expect.ogg b/sound/vox_fem/expect.ogg index e02d791316..4489c61cf6 100644 Binary files a/sound/vox_fem/expect.ogg and b/sound/vox_fem/expect.ogg differ diff --git a/sound/vox_fem/experiment.ogg b/sound/vox_fem/experiment.ogg index 7937c16d4d..6a09111114 100644 Binary files a/sound/vox_fem/experiment.ogg and b/sound/vox_fem/experiment.ogg differ diff --git a/sound/vox_fem/experimental.ogg b/sound/vox_fem/experimental.ogg index d9b1312603..689168a413 100644 Binary files a/sound/vox_fem/experimental.ogg and b/sound/vox_fem/experimental.ogg differ diff --git a/sound/vox_fem/explode.ogg b/sound/vox_fem/explode.ogg index ad026fe003..4ae77dcca3 100644 Binary files a/sound/vox_fem/explode.ogg and b/sound/vox_fem/explode.ogg differ diff --git a/sound/vox_fem/explosion.ogg b/sound/vox_fem/explosion.ogg index 717f55ad63..4e94d50cc0 100644 Binary files a/sound/vox_fem/explosion.ogg and b/sound/vox_fem/explosion.ogg differ diff --git a/sound/vox_fem/explosive.ogg b/sound/vox_fem/explosive.ogg new file mode 100644 index 0000000000..a0113ee760 Binary files /dev/null and b/sound/vox_fem/explosive.ogg differ diff --git a/sound/vox_fem/exposure.ogg b/sound/vox_fem/exposure.ogg index c10c8a621d..6f7bf4bea2 100644 Binary files a/sound/vox_fem/exposure.ogg and b/sound/vox_fem/exposure.ogg differ diff --git a/sound/vox_fem/exterminate.ogg b/sound/vox_fem/exterminate.ogg index 476f16484f..6068cd0f88 100644 Binary files a/sound/vox_fem/exterminate.ogg and b/sound/vox_fem/exterminate.ogg differ diff --git a/sound/vox_fem/extinguish.ogg b/sound/vox_fem/extinguish.ogg index 184541bf63..b20db6dab6 100644 Binary files a/sound/vox_fem/extinguish.ogg and b/sound/vox_fem/extinguish.ogg differ diff --git a/sound/vox_fem/extinguisher.ogg b/sound/vox_fem/extinguisher.ogg index 53afe9584b..21dd46ff0d 100644 Binary files a/sound/vox_fem/extinguisher.ogg and b/sound/vox_fem/extinguisher.ogg differ diff --git a/sound/vox_fem/extreme.ogg b/sound/vox_fem/extreme.ogg index 73bd6d769f..21b4f4f1ff 100644 Binary files a/sound/vox_fem/extreme.ogg and b/sound/vox_fem/extreme.ogg differ diff --git a/sound/vox_fem/f.ogg b/sound/vox_fem/f.ogg index edf6d8aa2e..b6d85c14c7 100644 Binary files a/sound/vox_fem/f.ogg and b/sound/vox_fem/f.ogg differ diff --git a/sound/vox_fem/facility.ogg b/sound/vox_fem/facility.ogg index a9a6992ee9..3d9016157a 100644 Binary files a/sound/vox_fem/facility.ogg and b/sound/vox_fem/facility.ogg differ diff --git a/sound/vox_fem/factory.ogg b/sound/vox_fem/factory.ogg new file mode 100644 index 0000000000..33cf90dc58 Binary files /dev/null and b/sound/vox_fem/factory.ogg differ diff --git a/sound/vox_fem/fahrenheit.ogg b/sound/vox_fem/fahrenheit.ogg index 5a49a31a29..6c3df93bef 100644 Binary files a/sound/vox_fem/fahrenheit.ogg and b/sound/vox_fem/fahrenheit.ogg differ diff --git a/sound/vox_fem/failed.ogg b/sound/vox_fem/failed.ogg index 1914ade3c4..d0dcfeb88f 100644 Binary files a/sound/vox_fem/failed.ogg and b/sound/vox_fem/failed.ogg differ diff --git a/sound/vox_fem/failure.ogg b/sound/vox_fem/failure.ogg index 352bce6e45..955e757888 100644 Binary files a/sound/vox_fem/failure.ogg and b/sound/vox_fem/failure.ogg differ diff --git a/sound/vox_fem/false.ogg b/sound/vox_fem/false.ogg new file mode 100644 index 0000000000..664215f948 Binary files /dev/null and b/sound/vox_fem/false.ogg differ diff --git a/sound/vox_fem/farthest.ogg b/sound/vox_fem/farthest.ogg index 74216b9a2e..e5c4337226 100644 Binary files a/sound/vox_fem/farthest.ogg and b/sound/vox_fem/farthest.ogg differ diff --git a/sound/vox_fem/fast.ogg b/sound/vox_fem/fast.ogg index 80f7468142..802a6d165e 100644 Binary files a/sound/vox_fem/fast.ogg and b/sound/vox_fem/fast.ogg differ diff --git a/sound/vox_fem/fauna.ogg b/sound/vox_fem/fauna.ogg new file mode 100644 index 0000000000..14972097c1 Binary files /dev/null and b/sound/vox_fem/fauna.ogg differ diff --git a/sound/vox_fem/feet.ogg b/sound/vox_fem/feet.ogg index b94c99517c..bdc3c783b2 100644 Binary files a/sound/vox_fem/feet.ogg and b/sound/vox_fem/feet.ogg differ diff --git a/sound/vox_fem/field.ogg b/sound/vox_fem/field.ogg index 89cc50ea82..80c4e1f02e 100644 Binary files a/sound/vox_fem/field.ogg and b/sound/vox_fem/field.ogg differ diff --git a/sound/vox_fem/fifteen.ogg b/sound/vox_fem/fifteen.ogg index 0343d6b3ff..8a77f21ab3 100644 Binary files a/sound/vox_fem/fifteen.ogg and b/sound/vox_fem/fifteen.ogg differ diff --git a/sound/vox_fem/fifth.ogg b/sound/vox_fem/fifth.ogg index b8255dad44..536592e78b 100644 Binary files a/sound/vox_fem/fifth.ogg and b/sound/vox_fem/fifth.ogg differ diff --git a/sound/vox_fem/fifty.ogg b/sound/vox_fem/fifty.ogg index b71757c7c1..25545b950c 100644 Binary files a/sound/vox_fem/fifty.ogg and b/sound/vox_fem/fifty.ogg differ diff --git a/sound/vox_fem/final.ogg b/sound/vox_fem/final.ogg index d1dc9e44ec..6dbc6507cc 100644 Binary files a/sound/vox_fem/final.ogg and b/sound/vox_fem/final.ogg differ diff --git a/sound/vox_fem/fine.ogg b/sound/vox_fem/fine.ogg index 4737c4259a..f791d94f2b 100644 Binary files a/sound/vox_fem/fine.ogg and b/sound/vox_fem/fine.ogg differ diff --git a/sound/vox_fem/fire.ogg b/sound/vox_fem/fire.ogg index db52a76917..b432413223 100644 Binary files a/sound/vox_fem/fire.ogg and b/sound/vox_fem/fire.ogg differ diff --git a/sound/vox_fem/first.ogg b/sound/vox_fem/first.ogg index 9ef771b167..2e5e035c5b 100644 Binary files a/sound/vox_fem/first.ogg and b/sound/vox_fem/first.ogg differ diff --git a/sound/vox_fem/five.ogg b/sound/vox_fem/five.ogg index 014b7d4251..4718bda670 100644 Binary files a/sound/vox_fem/five.ogg and b/sound/vox_fem/five.ogg differ diff --git a/sound/vox_fem/fix.ogg b/sound/vox_fem/fix.ogg new file mode 100644 index 0000000000..ac318fcfee Binary files /dev/null and b/sound/vox_fem/fix.ogg differ diff --git a/sound/vox_fem/flooding.ogg b/sound/vox_fem/flooding.ogg index a1019a56b9..d9e14b6526 100644 Binary files a/sound/vox_fem/flooding.ogg and b/sound/vox_fem/flooding.ogg differ diff --git a/sound/vox_fem/floor.ogg b/sound/vox_fem/floor.ogg index d5d501d475..68a86a3fbe 100644 Binary files a/sound/vox_fem/floor.ogg and b/sound/vox_fem/floor.ogg differ diff --git a/sound/vox_fem/flyman.ogg b/sound/vox_fem/flyman.ogg new file mode 100644 index 0000000000..5d8b9ce20a Binary files /dev/null and b/sound/vox_fem/flyman.ogg differ diff --git a/sound/vox_fem/fool.ogg b/sound/vox_fem/fool.ogg index 6b3f5e0fa3..703d3b846a 100644 Binary files a/sound/vox_fem/fool.ogg and b/sound/vox_fem/fool.ogg differ diff --git a/sound/vox_fem/for.ogg b/sound/vox_fem/for.ogg index eaf89e5f78..097242e42b 100644 Binary files a/sound/vox_fem/for.ogg and b/sound/vox_fem/for.ogg differ diff --git a/sound/vox_fem/forbidden.ogg b/sound/vox_fem/forbidden.ogg index 4f5fc36bbe..f87e9584ab 100644 Binary files a/sound/vox_fem/forbidden.ogg and b/sound/vox_fem/forbidden.ogg differ diff --git a/sound/vox_fem/force.ogg b/sound/vox_fem/force.ogg index 575ffb613e..ff0c380a4d 100644 Binary files a/sound/vox_fem/force.ogg and b/sound/vox_fem/force.ogg differ diff --git a/sound/vox_fem/fore.ogg b/sound/vox_fem/fore.ogg index 61f995103b..1257ff7b21 100644 Binary files a/sound/vox_fem/fore.ogg and b/sound/vox_fem/fore.ogg differ diff --git a/sound/vox_fem/form.ogg b/sound/vox_fem/form.ogg new file mode 100644 index 0000000000..35a89f3435 Binary files /dev/null and b/sound/vox_fem/form.ogg differ diff --git a/sound/vox_fem/formed.ogg b/sound/vox_fem/formed.ogg new file mode 100644 index 0000000000..abb791a9d6 Binary files /dev/null and b/sound/vox_fem/formed.ogg differ diff --git a/sound/vox_fem/forms.ogg b/sound/vox_fem/forms.ogg index 2de5796c8d..c3cd6bfd6c 100644 Binary files a/sound/vox_fem/forms.ogg and b/sound/vox_fem/forms.ogg differ diff --git a/sound/vox_fem/found.ogg b/sound/vox_fem/found.ogg index e6ff55b242..6cde24b793 100644 Binary files a/sound/vox_fem/found.ogg and b/sound/vox_fem/found.ogg differ diff --git a/sound/vox_fem/four.ogg b/sound/vox_fem/four.ogg index a7f16e38ec..1d92ce099b 100644 Binary files a/sound/vox_fem/four.ogg and b/sound/vox_fem/four.ogg differ diff --git a/sound/vox_fem/fourteen.ogg b/sound/vox_fem/fourteen.ogg index 268b18abf9..5b8ada9684 100644 Binary files a/sound/vox_fem/fourteen.ogg and b/sound/vox_fem/fourteen.ogg differ diff --git a/sound/vox_fem/fourth.ogg b/sound/vox_fem/fourth.ogg index 5c867743b5..39d79cab3a 100644 Binary files a/sound/vox_fem/fourth.ogg and b/sound/vox_fem/fourth.ogg differ diff --git a/sound/vox_fem/fourty.ogg b/sound/vox_fem/fourty.ogg index 5280d49b2f..988dd49192 100644 Binary files a/sound/vox_fem/fourty.ogg and b/sound/vox_fem/fourty.ogg differ diff --git a/sound/vox_fem/foxtrot.ogg b/sound/vox_fem/foxtrot.ogg index 4f64b89c48..737e87c8c7 100644 Binary files a/sound/vox_fem/foxtrot.ogg and b/sound/vox_fem/foxtrot.ogg differ diff --git a/sound/vox_fem/free.ogg b/sound/vox_fem/free.ogg new file mode 100644 index 0000000000..2a897ee44a Binary files /dev/null and b/sound/vox_fem/free.ogg differ diff --git a/sound/vox_fem/freeman.ogg b/sound/vox_fem/freeman.ogg index e94c55fbf2..632ea4cc7c 100644 Binary files a/sound/vox_fem/freeman.ogg and b/sound/vox_fem/freeman.ogg differ diff --git a/sound/vox_fem/freezer.ogg b/sound/vox_fem/freezer.ogg index f2f5362b3e..a4ca890423 100644 Binary files a/sound/vox_fem/freezer.ogg and b/sound/vox_fem/freezer.ogg differ diff --git a/sound/vox_fem/freezing.ogg b/sound/vox_fem/freezing.ogg new file mode 100644 index 0000000000..95ae8c5005 Binary files /dev/null and b/sound/vox_fem/freezing.ogg differ diff --git a/sound/vox_fem/from.ogg b/sound/vox_fem/from.ogg index eacf7a7c01..f2087b873a 100644 Binary files a/sound/vox_fem/from.ogg and b/sound/vox_fem/from.ogg differ diff --git a/sound/vox_fem/front.ogg b/sound/vox_fem/front.ogg index 748d021e33..92e2877f9b 100644 Binary files a/sound/vox_fem/front.ogg and b/sound/vox_fem/front.ogg differ diff --git a/sound/vox_fem/fuck.ogg b/sound/vox_fem/fuck.ogg index adc5e48c9f..83b80edb39 100644 Binary files a/sound/vox_fem/fuck.ogg and b/sound/vox_fem/fuck.ogg differ diff --git a/sound/vox_fem/fucking.ogg b/sound/vox_fem/fucking.ogg index 1c877c0129..de3f4db4e3 100644 Binary files a/sound/vox_fem/fucking.ogg and b/sound/vox_fem/fucking.ogg differ diff --git a/sound/vox_fem/fucks.ogg b/sound/vox_fem/fucks.ogg index 2b4c010265..8b42d553af 100644 Binary files a/sound/vox_fem/fucks.ogg and b/sound/vox_fem/fucks.ogg differ diff --git a/sound/vox_fem/fuel.ogg b/sound/vox_fem/fuel.ogg index 3604ce4c91..a05fe4b858 100644 Binary files a/sound/vox_fem/fuel.ogg and b/sound/vox_fem/fuel.ogg differ diff --git a/sound/vox_fem/g.ogg b/sound/vox_fem/g.ogg index fccf3f566a..b94600a58d 100644 Binary files a/sound/vox_fem/g.ogg and b/sound/vox_fem/g.ogg differ diff --git a/sound/vox_fem/gas.ogg b/sound/vox_fem/gas.ogg index a65a8b11b0..acf3608421 100644 Binary files a/sound/vox_fem/gas.ogg and b/sound/vox_fem/gas.ogg differ diff --git a/sound/vox_fem/generator.ogg b/sound/vox_fem/generator.ogg new file mode 100644 index 0000000000..e1573884d8 Binary files /dev/null and b/sound/vox_fem/generator.ogg differ diff --git a/sound/vox_fem/geneticist.ogg b/sound/vox_fem/geneticist.ogg new file mode 100644 index 0000000000..d74a5cc248 Binary files /dev/null and b/sound/vox_fem/geneticist.ogg differ diff --git a/sound/vox_fem/get.ogg b/sound/vox_fem/get.ogg index 9ae01e8c99..aab3994119 100644 Binary files a/sound/vox_fem/get.ogg and b/sound/vox_fem/get.ogg differ diff --git a/sound/vox_fem/glory.ogg b/sound/vox_fem/glory.ogg index 4bf9738844..533be3c4b1 100644 Binary files a/sound/vox_fem/glory.ogg and b/sound/vox_fem/glory.ogg differ diff --git a/sound/vox_fem/go.ogg b/sound/vox_fem/go.ogg index e8ace3d943..a053330358 100644 Binary files a/sound/vox_fem/go.ogg and b/sound/vox_fem/go.ogg differ diff --git a/sound/vox_fem/god.ogg b/sound/vox_fem/god.ogg new file mode 100644 index 0000000000..c13b29aa37 Binary files /dev/null and b/sound/vox_fem/god.ogg differ diff --git a/sound/vox_fem/going.ogg b/sound/vox_fem/going.ogg index 3f21184de9..1084b39132 100644 Binary files a/sound/vox_fem/going.ogg and b/sound/vox_fem/going.ogg differ diff --git a/sound/vox_fem/golem.ogg b/sound/vox_fem/golem.ogg new file mode 100644 index 0000000000..9ac3a8ca45 Binary files /dev/null and b/sound/vox_fem/golem.ogg differ diff --git a/sound/vox_fem/good.ogg b/sound/vox_fem/good.ogg index 63760754d5..30df3b967f 100644 Binary files a/sound/vox_fem/good.ogg and b/sound/vox_fem/good.ogg differ diff --git a/sound/vox_fem/goodbye.ogg b/sound/vox_fem/goodbye.ogg index 9be827d7a4..2a16f6bc2a 100644 Binary files a/sound/vox_fem/goodbye.ogg and b/sound/vox_fem/goodbye.ogg differ diff --git a/sound/vox_fem/gordon.ogg b/sound/vox_fem/gordon.ogg index 586f15063d..8b5d9b8267 100644 Binary files a/sound/vox_fem/gordon.ogg and b/sound/vox_fem/gordon.ogg differ diff --git a/sound/vox_fem/got.ogg b/sound/vox_fem/got.ogg index 893e9a1569..c8e34f7590 100644 Binary files a/sound/vox_fem/got.ogg and b/sound/vox_fem/got.ogg differ diff --git a/sound/vox_fem/government.ogg b/sound/vox_fem/government.ogg index 581e92c918..a1cab06525 100644 Binary files a/sound/vox_fem/government.ogg and b/sound/vox_fem/government.ogg differ diff --git a/sound/vox_fem/granted.ogg b/sound/vox_fem/granted.ogg index f7d7345607..457dddda10 100644 Binary files a/sound/vox_fem/granted.ogg and b/sound/vox_fem/granted.ogg differ diff --git a/sound/vox_fem/gravity.ogg b/sound/vox_fem/gravity.ogg new file mode 100644 index 0000000000..ca23eee8bd Binary files /dev/null and b/sound/vox_fem/gravity.ogg differ diff --git a/sound/vox_fem/gray.ogg b/sound/vox_fem/gray.ogg index 11e2e143f2..6efbc31c1a 100644 Binary files a/sound/vox_fem/gray.ogg and b/sound/vox_fem/gray.ogg differ diff --git a/sound/vox_fem/great.ogg b/sound/vox_fem/great.ogg index b88d5eb40d..4cefc28f4d 100644 Binary files a/sound/vox_fem/great.ogg and b/sound/vox_fem/great.ogg differ diff --git a/sound/vox_fem/green.ogg b/sound/vox_fem/green.ogg index 45d82c59c9..cb30e04b3f 100644 Binary files a/sound/vox_fem/green.ogg and b/sound/vox_fem/green.ogg differ diff --git a/sound/vox_fem/grenade.ogg b/sound/vox_fem/grenade.ogg index de9050bc91..dfa8f1c670 100644 Binary files a/sound/vox_fem/grenade.ogg and b/sound/vox_fem/grenade.ogg differ diff --git a/sound/vox_fem/guard.ogg b/sound/vox_fem/guard.ogg index 1fc69a3499..223042652b 100644 Binary files a/sound/vox_fem/guard.ogg and b/sound/vox_fem/guard.ogg differ diff --git a/sound/vox_fem/gulf.ogg b/sound/vox_fem/gulf.ogg index 0237ae19c0..e4e750d228 100644 Binary files a/sound/vox_fem/gulf.ogg and b/sound/vox_fem/gulf.ogg differ diff --git a/sound/vox_fem/gun.ogg b/sound/vox_fem/gun.ogg index 7d2195b4c5..af149660f0 100644 Binary files a/sound/vox_fem/gun.ogg and b/sound/vox_fem/gun.ogg differ diff --git a/sound/vox_fem/guthrie.ogg b/sound/vox_fem/guthrie.ogg index 1b7e5b6ae4..1696df1f63 100644 Binary files a/sound/vox_fem/guthrie.ogg and b/sound/vox_fem/guthrie.ogg differ diff --git a/sound/vox_fem/h.ogg b/sound/vox_fem/h.ogg index 837d5ce44c..52ff09f7fb 100644 Binary files a/sound/vox_fem/h.ogg and b/sound/vox_fem/h.ogg differ diff --git a/sound/vox_fem/hacker.ogg b/sound/vox_fem/hacker.ogg index 16e1fbffeb..b9394207a8 100644 Binary files a/sound/vox_fem/hacker.ogg and b/sound/vox_fem/hacker.ogg differ diff --git a/sound/vox_fem/hackers.ogg b/sound/vox_fem/hackers.ogg index f2d1a8b5e6..52c892d940 100644 Binary files a/sound/vox_fem/hackers.ogg and b/sound/vox_fem/hackers.ogg differ diff --git a/sound/vox_fem/hall.ogg b/sound/vox_fem/hall.ogg new file mode 100644 index 0000000000..32bf2e20c0 Binary files /dev/null and b/sound/vox_fem/hall.ogg differ diff --git a/sound/vox_fem/hallway.ogg b/sound/vox_fem/hallway.ogg new file mode 100644 index 0000000000..7a3c9074fb Binary files /dev/null and b/sound/vox_fem/hallway.ogg differ diff --git a/sound/vox_fem/handling.ogg b/sound/vox_fem/handling.ogg index 91d6e879ba..783e7afa09 100644 Binary files a/sound/vox_fem/handling.ogg and b/sound/vox_fem/handling.ogg differ diff --git a/sound/vox_fem/hangar.ogg b/sound/vox_fem/hangar.ogg index c7add65988..061b52b50a 100644 Binary files a/sound/vox_fem/hangar.ogg and b/sound/vox_fem/hangar.ogg differ diff --git a/sound/vox_fem/harm.ogg b/sound/vox_fem/harm.ogg index 777935ecf3..69cd1d9744 100644 Binary files a/sound/vox_fem/harm.ogg and b/sound/vox_fem/harm.ogg differ diff --git a/sound/vox_fem/harmful.ogg b/sound/vox_fem/harmful.ogg new file mode 100644 index 0000000000..0292ad1a6c Binary files /dev/null and b/sound/vox_fem/harmful.ogg differ diff --git a/sound/vox_fem/has.ogg b/sound/vox_fem/has.ogg index a094d6017d..1012e621db 100644 Binary files a/sound/vox_fem/has.ogg and b/sound/vox_fem/has.ogg differ diff --git a/sound/vox_fem/have.ogg b/sound/vox_fem/have.ogg index df454d1168..8e79a4298a 100644 Binary files a/sound/vox_fem/have.ogg and b/sound/vox_fem/have.ogg differ diff --git a/sound/vox_fem/hazard.ogg b/sound/vox_fem/hazard.ogg index 864acfd0b0..4e1d7a6fba 100644 Binary files a/sound/vox_fem/hazard.ogg and b/sound/vox_fem/hazard.ogg differ diff --git a/sound/vox_fem/he.ogg b/sound/vox_fem/he.ogg new file mode 100644 index 0000000000..4efc1788df Binary files /dev/null and b/sound/vox_fem/he.ogg differ diff --git a/sound/vox_fem/head.ogg b/sound/vox_fem/head.ogg index ae99aaf3fa..793c30b1ec 100644 Binary files a/sound/vox_fem/head.ogg and b/sound/vox_fem/head.ogg differ diff --git a/sound/vox_fem/health.ogg b/sound/vox_fem/health.ogg index 2302294844..0680e8bbce 100644 Binary files a/sound/vox_fem/health.ogg and b/sound/vox_fem/health.ogg differ diff --git a/sound/vox_fem/heat.ogg b/sound/vox_fem/heat.ogg index d83892a4c3..8835b21b4b 100644 Binary files a/sound/vox_fem/heat.ogg and b/sound/vox_fem/heat.ogg differ diff --git a/sound/vox_fem/helicopter.ogg b/sound/vox_fem/helicopter.ogg index 3e7ecac435..9b262f6abb 100644 Binary files a/sound/vox_fem/helicopter.ogg and b/sound/vox_fem/helicopter.ogg differ diff --git a/sound/vox_fem/helium.ogg b/sound/vox_fem/helium.ogg index 3cf5c1638a..285e669ff1 100644 Binary files a/sound/vox_fem/helium.ogg and b/sound/vox_fem/helium.ogg differ diff --git a/sound/vox_fem/hello.ogg b/sound/vox_fem/hello.ogg index 3122f27511..43443199b9 100644 Binary files a/sound/vox_fem/hello.ogg and b/sound/vox_fem/hello.ogg differ diff --git a/sound/vox_fem/help.ogg b/sound/vox_fem/help.ogg index 221aec588a..e526e36159 100644 Binary files a/sound/vox_fem/help.ogg and b/sound/vox_fem/help.ogg differ diff --git a/sound/vox_fem/here.ogg b/sound/vox_fem/here.ogg index 974c80b862..07fcded668 100644 Binary files a/sound/vox_fem/here.ogg and b/sound/vox_fem/here.ogg differ diff --git a/sound/vox_fem/hide.ogg b/sound/vox_fem/hide.ogg index 41a3556c35..9a91074391 100644 Binary files a/sound/vox_fem/hide.ogg and b/sound/vox_fem/hide.ogg differ diff --git a/sound/vox_fem/high.ogg b/sound/vox_fem/high.ogg index 29569f6a7a..acff09cb42 100644 Binary files a/sound/vox_fem/high.ogg and b/sound/vox_fem/high.ogg differ diff --git a/sound/vox_fem/highest.ogg b/sound/vox_fem/highest.ogg index c59ff59216..99a24ca7ff 100644 Binary files a/sound/vox_fem/highest.ogg and b/sound/vox_fem/highest.ogg differ diff --git a/sound/vox_fem/hit.ogg b/sound/vox_fem/hit.ogg index 47cbbab958..e48528770a 100644 Binary files a/sound/vox_fem/hit.ogg and b/sound/vox_fem/hit.ogg differ diff --git a/sound/vox_fem/hole.ogg b/sound/vox_fem/hole.ogg index 4507339b19..9bef172d53 100644 Binary files a/sound/vox_fem/hole.ogg and b/sound/vox_fem/hole.ogg differ diff --git a/sound/vox_fem/honk.ogg b/sound/vox_fem/honk.ogg new file mode 100644 index 0000000000..ed000a2565 Binary files /dev/null and b/sound/vox_fem/honk.ogg differ diff --git a/sound/vox_fem/hop.ogg b/sound/vox_fem/hop.ogg new file mode 100644 index 0000000000..a09f3e525a Binary files /dev/null and b/sound/vox_fem/hop.ogg differ diff --git a/sound/vox_fem/hos.ogg b/sound/vox_fem/hos.ogg new file mode 100644 index 0000000000..59dddae828 Binary files /dev/null and b/sound/vox_fem/hos.ogg differ diff --git a/sound/vox_fem/hostile.ogg b/sound/vox_fem/hostile.ogg index cad5232be5..cc7555ceb8 100644 Binary files a/sound/vox_fem/hostile.ogg and b/sound/vox_fem/hostile.ogg differ diff --git a/sound/vox_fem/hot.ogg b/sound/vox_fem/hot.ogg index b56cab9942..1eb650fae0 100644 Binary files a/sound/vox_fem/hot.ogg and b/sound/vox_fem/hot.ogg differ diff --git a/sound/vox_fem/hotel.ogg b/sound/vox_fem/hotel.ogg index 54f3297485..12b39a3bc0 100644 Binary files a/sound/vox_fem/hotel.ogg and b/sound/vox_fem/hotel.ogg differ diff --git a/sound/vox_fem/hour.ogg b/sound/vox_fem/hour.ogg index 963b2a1f11..b2ce9e7148 100644 Binary files a/sound/vox_fem/hour.ogg and b/sound/vox_fem/hour.ogg differ diff --git a/sound/vox_fem/hours.ogg b/sound/vox_fem/hours.ogg index 516adc16fa..9515bc858c 100644 Binary files a/sound/vox_fem/hours.ogg and b/sound/vox_fem/hours.ogg differ diff --git a/sound/vox_fem/how.ogg b/sound/vox_fem/how.ogg new file mode 100644 index 0000000000..42d00c739f Binary files /dev/null and b/sound/vox_fem/how.ogg differ diff --git a/sound/vox_fem/human.ogg b/sound/vox_fem/human.ogg index 247164486f..2bf56adb05 100644 Binary files a/sound/vox_fem/human.ogg and b/sound/vox_fem/human.ogg differ diff --git a/sound/vox_fem/humanoid.ogg b/sound/vox_fem/humanoid.ogg new file mode 100644 index 0000000000..4d20646a54 Binary files /dev/null and b/sound/vox_fem/humanoid.ogg differ diff --git a/sound/vox_fem/humans.ogg b/sound/vox_fem/humans.ogg new file mode 100644 index 0000000000..717ceef104 Binary files /dev/null and b/sound/vox_fem/humans.ogg differ diff --git a/sound/vox_fem/hundred.ogg b/sound/vox_fem/hundred.ogg index bdee8e497f..3dfe563eca 100644 Binary files a/sound/vox_fem/hundred.ogg and b/sound/vox_fem/hundred.ogg differ diff --git a/sound/vox_fem/hunger.ogg b/sound/vox_fem/hunger.ogg index 52de984e6e..e5e8be858a 100644 Binary files a/sound/vox_fem/hunger.ogg and b/sound/vox_fem/hunger.ogg differ diff --git a/sound/vox_fem/hurt.ogg b/sound/vox_fem/hurt.ogg new file mode 100644 index 0000000000..ba3ac0e04c Binary files /dev/null and b/sound/vox_fem/hurt.ogg differ diff --git a/sound/vox_fem/hydro.ogg b/sound/vox_fem/hydro.ogg index e371348a80..37be6cfc11 100644 Binary files a/sound/vox_fem/hydro.ogg and b/sound/vox_fem/hydro.ogg differ diff --git a/sound/vox_fem/hydroponics.ogg b/sound/vox_fem/hydroponics.ogg index b82884ad7d..465ccb1640 100644 Binary files a/sound/vox_fem/hydroponics.ogg and b/sound/vox_fem/hydroponics.ogg differ diff --git a/sound/vox_fem/i.ogg b/sound/vox_fem/i.ogg index 4184feccea..5ad1e1084c 100644 Binary files a/sound/vox_fem/i.ogg and b/sound/vox_fem/i.ogg differ diff --git a/sound/vox_fem/ian.ogg b/sound/vox_fem/ian.ogg new file mode 100644 index 0000000000..1025001b14 Binary files /dev/null and b/sound/vox_fem/ian.ogg differ diff --git a/sound/vox_fem/idiot.ogg b/sound/vox_fem/idiot.ogg index 54539dc84d..6e865a6b93 100644 Binary files a/sound/vox_fem/idiot.ogg and b/sound/vox_fem/idiot.ogg differ diff --git a/sound/vox_fem/if.ogg b/sound/vox_fem/if.ogg new file mode 100644 index 0000000000..4513597e8e Binary files /dev/null and b/sound/vox_fem/if.ogg differ diff --git a/sound/vox_fem/if2.ogg b/sound/vox_fem/if2.ogg new file mode 100644 index 0000000000..de05d5e2f5 Binary files /dev/null and b/sound/vox_fem/if2.ogg differ diff --git a/sound/vox_fem/illegal.ogg b/sound/vox_fem/illegal.ogg index efc7a24f31..59cf1fb10f 100644 Binary files a/sound/vox_fem/illegal.ogg and b/sound/vox_fem/illegal.ogg differ diff --git a/sound/vox_fem/immediate.ogg b/sound/vox_fem/immediate.ogg index 589cb64d42..95dca25aea 100644 Binary files a/sound/vox_fem/immediate.ogg and b/sound/vox_fem/immediate.ogg differ diff --git a/sound/vox_fem/immediately.ogg b/sound/vox_fem/immediately.ogg index 0fb1a653e1..82f12bd4d9 100644 Binary files a/sound/vox_fem/immediately.ogg and b/sound/vox_fem/immediately.ogg differ diff --git a/sound/vox_fem/immortal.ogg b/sound/vox_fem/immortal.ogg new file mode 100644 index 0000000000..06fa27c0b3 Binary files /dev/null and b/sound/vox_fem/immortal.ogg differ diff --git a/sound/vox_fem/impossible.ogg b/sound/vox_fem/impossible.ogg new file mode 100644 index 0000000000..a34c4898f9 Binary files /dev/null and b/sound/vox_fem/impossible.ogg differ diff --git a/sound/vox_fem/in.ogg b/sound/vox_fem/in.ogg index 5620518d9f..72bcd0a6fb 100644 Binary files a/sound/vox_fem/in.ogg and b/sound/vox_fem/in.ogg differ diff --git a/sound/vox_fem/inches.ogg b/sound/vox_fem/inches.ogg index 77a5a9f8ed..3b81358ae0 100644 Binary files a/sound/vox_fem/inches.ogg and b/sound/vox_fem/inches.ogg differ diff --git a/sound/vox_fem/india.ogg b/sound/vox_fem/india.ogg index c9db0e71a1..ff2dfd9360 100644 Binary files a/sound/vox_fem/india.ogg and b/sound/vox_fem/india.ogg differ diff --git a/sound/vox_fem/ing.ogg b/sound/vox_fem/ing.ogg index 9373505f27..1642237407 100644 Binary files a/sound/vox_fem/ing.ogg and b/sound/vox_fem/ing.ogg differ diff --git a/sound/vox_fem/inoperative.ogg b/sound/vox_fem/inoperative.ogg index 09db3ab062..2a1d96a14f 100644 Binary files a/sound/vox_fem/inoperative.ogg and b/sound/vox_fem/inoperative.ogg differ diff --git a/sound/vox_fem/inside.ogg b/sound/vox_fem/inside.ogg index 4524e2b452..1b94b170a1 100644 Binary files a/sound/vox_fem/inside.ogg and b/sound/vox_fem/inside.ogg differ diff --git a/sound/vox_fem/inspection.ogg b/sound/vox_fem/inspection.ogg index 93af36a415..130b4b2f5d 100644 Binary files a/sound/vox_fem/inspection.ogg and b/sound/vox_fem/inspection.ogg differ diff --git a/sound/vox_fem/inspector.ogg b/sound/vox_fem/inspector.ogg index b18db6ab2b..db17e333b3 100644 Binary files a/sound/vox_fem/inspector.ogg and b/sound/vox_fem/inspector.ogg differ diff --git a/sound/vox_fem/interchange.ogg b/sound/vox_fem/interchange.ogg index 29028b2223..1998831b3c 100644 Binary files a/sound/vox_fem/interchange.ogg and b/sound/vox_fem/interchange.ogg differ diff --git a/sound/vox_fem/internals.ogg b/sound/vox_fem/internals.ogg new file mode 100644 index 0000000000..cc37b7f6cb Binary files /dev/null and b/sound/vox_fem/internals.ogg differ diff --git a/sound/vox_fem/intruder.ogg b/sound/vox_fem/intruder.ogg index 766980da4b..e53e34d056 100644 Binary files a/sound/vox_fem/intruder.ogg and b/sound/vox_fem/intruder.ogg differ diff --git a/sound/vox_fem/invalid.ogg b/sound/vox_fem/invalid.ogg index beb8b66e8e..58fceb71b2 100644 Binary files a/sound/vox_fem/invalid.ogg and b/sound/vox_fem/invalid.ogg differ diff --git a/sound/vox_fem/invasion.ogg b/sound/vox_fem/invasion.ogg index 9a73e827f8..628f8dd26c 100644 Binary files a/sound/vox_fem/invasion.ogg and b/sound/vox_fem/invasion.ogg differ diff --git a/sound/vox_fem/is.ogg b/sound/vox_fem/is.ogg index d8b1d6a1e7..de691f49ed 100644 Binary files a/sound/vox_fem/is.ogg and b/sound/vox_fem/is.ogg differ diff --git a/sound/vox_fem/it.ogg b/sound/vox_fem/it.ogg index f0a09d7083..96f9e1c3a7 100644 Binary files a/sound/vox_fem/it.ogg and b/sound/vox_fem/it.ogg differ diff --git a/sound/vox_fem/j.ogg b/sound/vox_fem/j.ogg index bcf17e34a1..f31196e2ba 100644 Binary files a/sound/vox_fem/j.ogg and b/sound/vox_fem/j.ogg differ diff --git a/sound/vox_fem/janitor.ogg b/sound/vox_fem/janitor.ogg new file mode 100644 index 0000000000..2d841e660f Binary files /dev/null and b/sound/vox_fem/janitor.ogg differ diff --git a/sound/vox_fem/jesus.ogg b/sound/vox_fem/jesus.ogg new file mode 100644 index 0000000000..9ec9500a62 Binary files /dev/null and b/sound/vox_fem/jesus.ogg differ diff --git a/sound/vox_fem/johnson.ogg b/sound/vox_fem/johnson.ogg index 4b95210e8f..7a77bfecea 100644 Binary files a/sound/vox_fem/johnson.ogg and b/sound/vox_fem/johnson.ogg differ diff --git a/sound/vox_fem/juliet.ogg b/sound/vox_fem/juliet.ogg index c93e5a453b..f5e25ca197 100644 Binary files a/sound/vox_fem/juliet.ogg and b/sound/vox_fem/juliet.ogg differ diff --git a/sound/vox_fem/k.ogg b/sound/vox_fem/k.ogg index 4e791416bd..da57e114df 100644 Binary files a/sound/vox_fem/k.ogg and b/sound/vox_fem/k.ogg differ diff --git a/sound/vox_fem/key.ogg b/sound/vox_fem/key.ogg index d4abd3cdbd..65ab8c30e1 100644 Binary files a/sound/vox_fem/key.ogg and b/sound/vox_fem/key.ogg differ diff --git a/sound/vox_fem/kidnapped.ogg b/sound/vox_fem/kidnapped.ogg new file mode 100644 index 0000000000..68fb1f70b3 Binary files /dev/null and b/sound/vox_fem/kidnapped.ogg differ diff --git a/sound/vox_fem/kidnapping.ogg b/sound/vox_fem/kidnapping.ogg new file mode 100644 index 0000000000..15099206ae Binary files /dev/null and b/sound/vox_fem/kidnapping.ogg differ diff --git a/sound/vox_fem/kill.ogg b/sound/vox_fem/kill.ogg index 3d9d0f58fc..330f5436ad 100644 Binary files a/sound/vox_fem/kill.ogg and b/sound/vox_fem/kill.ogg differ diff --git a/sound/vox_fem/killed.ogg b/sound/vox_fem/killed.ogg new file mode 100644 index 0000000000..d7f6f3d0e9 Binary files /dev/null and b/sound/vox_fem/killed.ogg differ diff --git a/sound/vox_fem/kilo.ogg b/sound/vox_fem/kilo.ogg index b00875f0ea..c328cf2078 100644 Binary files a/sound/vox_fem/kilo.ogg and b/sound/vox_fem/kilo.ogg differ diff --git a/sound/vox_fem/kit.ogg b/sound/vox_fem/kit.ogg index 9f9b0fee20..22ace95367 100644 Binary files a/sound/vox_fem/kit.ogg and b/sound/vox_fem/kit.ogg differ diff --git a/sound/vox_fem/kitchen.ogg b/sound/vox_fem/kitchen.ogg new file mode 100644 index 0000000000..d1b54baf00 Binary files /dev/null and b/sound/vox_fem/kitchen.ogg differ diff --git a/sound/vox_fem/l.ogg b/sound/vox_fem/l.ogg index d32e84f8b6..a1be387ad2 100644 Binary files a/sound/vox_fem/l.ogg and b/sound/vox_fem/l.ogg differ diff --git a/sound/vox_fem/lab.ogg b/sound/vox_fem/lab.ogg index 1e5e48f4dd..6592f2bb19 100644 Binary files a/sound/vox_fem/lab.ogg and b/sound/vox_fem/lab.ogg differ diff --git a/sound/vox_fem/lambda.ogg b/sound/vox_fem/lambda.ogg index 111041cb52..14d5d9655b 100644 Binary files a/sound/vox_fem/lambda.ogg and b/sound/vox_fem/lambda.ogg differ diff --git a/sound/vox_fem/laser.ogg b/sound/vox_fem/laser.ogg index 93b5d9fd5b..9912dafbe1 100644 Binary files a/sound/vox_fem/laser.ogg and b/sound/vox_fem/laser.ogg differ diff --git a/sound/vox_fem/last.ogg b/sound/vox_fem/last.ogg index a9e1703d78..2a00976beb 100644 Binary files a/sound/vox_fem/last.ogg and b/sound/vox_fem/last.ogg differ diff --git a/sound/vox_fem/launch.ogg b/sound/vox_fem/launch.ogg index 03319bb3a8..151e60cd78 100644 Binary files a/sound/vox_fem/launch.ogg and b/sound/vox_fem/launch.ogg differ diff --git a/sound/vox_fem/lavaland.ogg b/sound/vox_fem/lavaland.ogg new file mode 100644 index 0000000000..fd4196d3e2 Binary files /dev/null and b/sound/vox_fem/lavaland.ogg differ diff --git a/sound/vox_fem/law.ogg b/sound/vox_fem/law.ogg index 1d78bb78c9..5d585b137a 100644 Binary files a/sound/vox_fem/law.ogg and b/sound/vox_fem/law.ogg differ diff --git a/sound/vox_fem/laws.ogg b/sound/vox_fem/laws.ogg index 7806471586..82e8efcd54 100644 Binary files a/sound/vox_fem/laws.ogg and b/sound/vox_fem/laws.ogg differ diff --git a/sound/vox_fem/lawyer.ogg b/sound/vox_fem/lawyer.ogg new file mode 100644 index 0000000000..344e94bf10 Binary files /dev/null and b/sound/vox_fem/lawyer.ogg differ diff --git a/sound/vox_fem/leak.ogg b/sound/vox_fem/leak.ogg index ac2966daff..951fb62cc9 100644 Binary files a/sound/vox_fem/leak.ogg and b/sound/vox_fem/leak.ogg differ diff --git a/sound/vox_fem/leave.ogg b/sound/vox_fem/leave.ogg index 023d6ccec9..b3c5de4d86 100644 Binary files a/sound/vox_fem/leave.ogg and b/sound/vox_fem/leave.ogg differ diff --git a/sound/vox_fem/left.ogg b/sound/vox_fem/left.ogg index bab8c25f96..0a08b6d1de 100644 Binary files a/sound/vox_fem/left.ogg and b/sound/vox_fem/left.ogg differ diff --git a/sound/vox_fem/legal.ogg b/sound/vox_fem/legal.ogg index 89d11ae6a1..624f0fba3f 100644 Binary files a/sound/vox_fem/legal.ogg and b/sound/vox_fem/legal.ogg differ diff --git a/sound/vox_fem/level.ogg b/sound/vox_fem/level.ogg index d2a38d0160..49832c299e 100644 Binary files a/sound/vox_fem/level.ogg and b/sound/vox_fem/level.ogg differ diff --git a/sound/vox_fem/lever.ogg b/sound/vox_fem/lever.ogg index e21aa7521d..baebe1978f 100644 Binary files a/sound/vox_fem/lever.ogg and b/sound/vox_fem/lever.ogg differ diff --git a/sound/vox_fem/library.ogg b/sound/vox_fem/library.ogg new file mode 100644 index 0000000000..ad7496b11f Binary files /dev/null and b/sound/vox_fem/library.ogg differ diff --git a/sound/vox_fem/lie.ogg b/sound/vox_fem/lie.ogg index bf78bfde8b..a3ff443f81 100644 Binary files a/sound/vox_fem/lie.ogg and b/sound/vox_fem/lie.ogg differ diff --git a/sound/vox_fem/lieutenant.ogg b/sound/vox_fem/lieutenant.ogg index bdc3aa05ef..340e01bcb4 100644 Binary files a/sound/vox_fem/lieutenant.ogg and b/sound/vox_fem/lieutenant.ogg differ diff --git a/sound/vox_fem/life.ogg b/sound/vox_fem/life.ogg index a445c04df4..1ad4252d50 100644 Binary files a/sound/vox_fem/life.ogg and b/sound/vox_fem/life.ogg differ diff --git a/sound/vox_fem/lifeform.ogg b/sound/vox_fem/lifeform.ogg new file mode 100644 index 0000000000..e142bf9abf Binary files /dev/null and b/sound/vox_fem/lifeform.ogg differ diff --git a/sound/vox_fem/light.ogg b/sound/vox_fem/light.ogg index b3514dfc55..fa8df5da7f 100644 Binary files a/sound/vox_fem/light.ogg and b/sound/vox_fem/light.ogg differ diff --git a/sound/vox_fem/lima.ogg b/sound/vox_fem/lima.ogg index 4870bbe950..3efdd8e7f3 100644 Binary files a/sound/vox_fem/lima.ogg and b/sound/vox_fem/lima.ogg differ diff --git a/sound/vox_fem/liquid.ogg b/sound/vox_fem/liquid.ogg index 8c07173125..4cc68591fb 100644 Binary files a/sound/vox_fem/liquid.ogg and b/sound/vox_fem/liquid.ogg differ diff --git a/sound/vox_fem/live.ogg b/sound/vox_fem/live.ogg new file mode 100644 index 0000000000..a4472110e6 Binary files /dev/null and b/sound/vox_fem/live.ogg differ diff --git a/sound/vox_fem/live2.ogg b/sound/vox_fem/live2.ogg new file mode 100644 index 0000000000..6f6ca716e9 Binary files /dev/null and b/sound/vox_fem/live2.ogg differ diff --git a/sound/vox_fem/lizard.ogg b/sound/vox_fem/lizard.ogg new file mode 100644 index 0000000000..8f14c52c32 Binary files /dev/null and b/sound/vox_fem/lizard.ogg differ diff --git a/sound/vox_fem/loading.ogg b/sound/vox_fem/loading.ogg index f3cca6e482..ea91fccb1f 100644 Binary files a/sound/vox_fem/loading.ogg and b/sound/vox_fem/loading.ogg differ diff --git a/sound/vox_fem/locate.ogg b/sound/vox_fem/locate.ogg index 47d4e442bf..99b998d253 100644 Binary files a/sound/vox_fem/locate.ogg and b/sound/vox_fem/locate.ogg differ diff --git a/sound/vox_fem/located.ogg b/sound/vox_fem/located.ogg index 2bf7cc84cb..439f41904b 100644 Binary files a/sound/vox_fem/located.ogg and b/sound/vox_fem/located.ogg differ diff --git a/sound/vox_fem/location.ogg b/sound/vox_fem/location.ogg index 5b9466f5e2..2ba782b191 100644 Binary files a/sound/vox_fem/location.ogg and b/sound/vox_fem/location.ogg differ diff --git a/sound/vox_fem/lock.ogg b/sound/vox_fem/lock.ogg index 1e6b9e66c5..e5eb350d70 100644 Binary files a/sound/vox_fem/lock.ogg and b/sound/vox_fem/lock.ogg differ diff --git a/sound/vox_fem/locked.ogg b/sound/vox_fem/locked.ogg index e704c91cd5..796b43e466 100644 Binary files a/sound/vox_fem/locked.ogg and b/sound/vox_fem/locked.ogg differ diff --git a/sound/vox_fem/locker.ogg b/sound/vox_fem/locker.ogg index 33a4d8172b..f7fb650522 100644 Binary files a/sound/vox_fem/locker.ogg and b/sound/vox_fem/locker.ogg differ diff --git a/sound/vox_fem/lockout.ogg b/sound/vox_fem/lockout.ogg index a49f98b0cc..efbc376dad 100644 Binary files a/sound/vox_fem/lockout.ogg and b/sound/vox_fem/lockout.ogg differ diff --git a/sound/vox_fem/long.ogg b/sound/vox_fem/long.ogg new file mode 100644 index 0000000000..023ccb12ba Binary files /dev/null and b/sound/vox_fem/long.ogg differ diff --git a/sound/vox_fem/look.ogg b/sound/vox_fem/look.ogg new file mode 100644 index 0000000000..e45323f2ce Binary files /dev/null and b/sound/vox_fem/look.ogg differ diff --git a/sound/vox_fem/loop.ogg b/sound/vox_fem/loop.ogg new file mode 100644 index 0000000000..aba556ae3e Binary files /dev/null and b/sound/vox_fem/loop.ogg differ diff --git a/sound/vox_fem/loose.ogg b/sound/vox_fem/loose.ogg index 99434ebf14..43afa09ba8 100644 Binary files a/sound/vox_fem/loose.ogg and b/sound/vox_fem/loose.ogg differ diff --git a/sound/vox_fem/lot.ogg b/sound/vox_fem/lot.ogg new file mode 100644 index 0000000000..248ea20a89 Binary files /dev/null and b/sound/vox_fem/lot.ogg differ diff --git a/sound/vox_fem/lower.ogg b/sound/vox_fem/lower.ogg index 30b78e0e17..658fe84873 100644 Binary files a/sound/vox_fem/lower.ogg and b/sound/vox_fem/lower.ogg differ diff --git a/sound/vox_fem/lowest.ogg b/sound/vox_fem/lowest.ogg index bac548f7c8..3f20560fb9 100644 Binary files a/sound/vox_fem/lowest.ogg and b/sound/vox_fem/lowest.ogg differ diff --git a/sound/vox_fem/lusty.ogg b/sound/vox_fem/lusty.ogg new file mode 100644 index 0000000000..e7820d9a25 Binary files /dev/null and b/sound/vox_fem/lusty.ogg differ diff --git a/sound/vox_fem/m.ogg b/sound/vox_fem/m.ogg index f80354f00d..c7143b35a2 100644 Binary files a/sound/vox_fem/m.ogg and b/sound/vox_fem/m.ogg differ diff --git a/sound/vox_fem/machine.ogg b/sound/vox_fem/machine.ogg new file mode 100644 index 0000000000..b40d1b4579 Binary files /dev/null and b/sound/vox_fem/machine.ogg differ diff --git a/sound/vox_fem/magic.ogg b/sound/vox_fem/magic.ogg new file mode 100644 index 0000000000..009ebeb660 Binary files /dev/null and b/sound/vox_fem/magic.ogg differ diff --git a/sound/vox_fem/magnetic.ogg b/sound/vox_fem/magnetic.ogg index 453363e076..ef50cc422f 100644 Binary files a/sound/vox_fem/magnetic.ogg and b/sound/vox_fem/magnetic.ogg differ diff --git a/sound/vox_fem/main.ogg b/sound/vox_fem/main.ogg index f95b10ddd5..817192e69c 100644 Binary files a/sound/vox_fem/main.ogg and b/sound/vox_fem/main.ogg differ diff --git a/sound/vox_fem/maintenance.ogg b/sound/vox_fem/maintenance.ogg index 7dd53dc47f..3159ff3a50 100644 Binary files a/sound/vox_fem/maintenance.ogg and b/sound/vox_fem/maintenance.ogg differ diff --git a/sound/vox_fem/malfunction.ogg b/sound/vox_fem/malfunction.ogg index df1655ca06..90d9fc6ccc 100644 Binary files a/sound/vox_fem/malfunction.ogg and b/sound/vox_fem/malfunction.ogg differ diff --git a/sound/vox_fem/man.ogg b/sound/vox_fem/man.ogg index ec48fe61cb..981630432a 100644 Binary files a/sound/vox_fem/man.ogg and b/sound/vox_fem/man.ogg differ diff --git a/sound/vox_fem/many.ogg b/sound/vox_fem/many.ogg new file mode 100644 index 0000000000..33e82a15de Binary files /dev/null and b/sound/vox_fem/many.ogg differ diff --git a/sound/vox_fem/mass.ogg b/sound/vox_fem/mass.ogg index 5a71a33f07..66718fcf84 100644 Binary files a/sound/vox_fem/mass.ogg and b/sound/vox_fem/mass.ogg differ diff --git a/sound/vox_fem/materials.ogg b/sound/vox_fem/materials.ogg index 250e678114..a420e3aa78 100644 Binary files a/sound/vox_fem/materials.ogg and b/sound/vox_fem/materials.ogg differ diff --git a/sound/vox_fem/maximum.ogg b/sound/vox_fem/maximum.ogg index 6b39bf1614..e9a2bc2ed6 100644 Binary files a/sound/vox_fem/maximum.ogg and b/sound/vox_fem/maximum.ogg differ diff --git a/sound/vox_fem/may.ogg b/sound/vox_fem/may.ogg index 0739b28b26..ef7a17dba4 100644 Binary files a/sound/vox_fem/may.ogg and b/sound/vox_fem/may.ogg differ diff --git a/sound/vox_fem/me.ogg b/sound/vox_fem/me.ogg index c96355b58d..39df2cd6f0 100644 Binary files a/sound/vox_fem/me.ogg and b/sound/vox_fem/me.ogg differ diff --git a/sound/vox_fem/meat.ogg b/sound/vox_fem/meat.ogg new file mode 100644 index 0000000000..a022f1d6a0 Binary files /dev/null and b/sound/vox_fem/meat.ogg differ diff --git a/sound/vox_fem/medbay.ogg b/sound/vox_fem/medbay.ogg index e16b458ab6..3cbb471169 100644 Binary files a/sound/vox_fem/medbay.ogg and b/sound/vox_fem/medbay.ogg differ diff --git a/sound/vox_fem/medical.ogg b/sound/vox_fem/medical.ogg index 66b24a5d3f..d756042b8c 100644 Binary files a/sound/vox_fem/medical.ogg and b/sound/vox_fem/medical.ogg differ diff --git a/sound/vox_fem/megafauna.ogg b/sound/vox_fem/megafauna.ogg new file mode 100644 index 0000000000..71b933de3d Binary files /dev/null and b/sound/vox_fem/megafauna.ogg differ diff --git a/sound/vox_fem/men.ogg b/sound/vox_fem/men.ogg index f3a9588ada..8a99ebed9f 100644 Binary files a/sound/vox_fem/men.ogg and b/sound/vox_fem/men.ogg differ diff --git a/sound/vox_fem/mercy.ogg b/sound/vox_fem/mercy.ogg index 8cdba6a257..9bbe2ebd81 100644 Binary files a/sound/vox_fem/mercy.ogg and b/sound/vox_fem/mercy.ogg differ diff --git a/sound/vox_fem/mesa.ogg b/sound/vox_fem/mesa.ogg index de69e00c8f..1406297857 100644 Binary files a/sound/vox_fem/mesa.ogg and b/sound/vox_fem/mesa.ogg differ diff --git a/sound/vox_fem/message.ogg b/sound/vox_fem/message.ogg index 83eeb175d0..83d8b7c5bc 100644 Binary files a/sound/vox_fem/message.ogg and b/sound/vox_fem/message.ogg differ diff --git a/sound/vox_fem/meter.ogg b/sound/vox_fem/meter.ogg index ba0e43ab9b..0a32027b1f 100644 Binary files a/sound/vox_fem/meter.ogg and b/sound/vox_fem/meter.ogg differ diff --git a/sound/vox_fem/micro.ogg b/sound/vox_fem/micro.ogg index 502bce58aa..6aff060cb4 100644 Binary files a/sound/vox_fem/micro.ogg and b/sound/vox_fem/micro.ogg differ diff --git a/sound/vox_fem/middle.ogg b/sound/vox_fem/middle.ogg index 429b39857f..1343ecff46 100644 Binary files a/sound/vox_fem/middle.ogg and b/sound/vox_fem/middle.ogg differ diff --git a/sound/vox_fem/mike.ogg b/sound/vox_fem/mike.ogg index 75a1549c6f..663731e855 100644 Binary files a/sound/vox_fem/mike.ogg and b/sound/vox_fem/mike.ogg differ diff --git a/sound/vox_fem/miles.ogg b/sound/vox_fem/miles.ogg index 0de3bd36c7..badfc77ee4 100644 Binary files a/sound/vox_fem/miles.ogg and b/sound/vox_fem/miles.ogg differ diff --git a/sound/vox_fem/military.ogg b/sound/vox_fem/military.ogg index 0ff33b8234..19726e27dd 100644 Binary files a/sound/vox_fem/military.ogg and b/sound/vox_fem/military.ogg differ diff --git a/sound/vox_fem/milli.ogg b/sound/vox_fem/milli.ogg index 4713bac1cd..b26252f082 100644 Binary files a/sound/vox_fem/milli.ogg and b/sound/vox_fem/milli.ogg differ diff --git a/sound/vox_fem/million.ogg b/sound/vox_fem/million.ogg index dadcffc3ff..f141a467d3 100644 Binary files a/sound/vox_fem/million.ogg and b/sound/vox_fem/million.ogg differ diff --git a/sound/vox_fem/mime.ogg b/sound/vox_fem/mime.ogg new file mode 100644 index 0000000000..4bc30a2942 Binary files /dev/null and b/sound/vox_fem/mime.ogg differ diff --git a/sound/vox_fem/minefield.ogg b/sound/vox_fem/minefield.ogg index b4f1d01370..7b91ab833e 100644 Binary files a/sound/vox_fem/minefield.ogg and b/sound/vox_fem/minefield.ogg differ diff --git a/sound/vox_fem/miner.ogg b/sound/vox_fem/miner.ogg new file mode 100644 index 0000000000..d388d6ecad Binary files /dev/null and b/sound/vox_fem/miner.ogg differ diff --git a/sound/vox_fem/minimum.ogg b/sound/vox_fem/minimum.ogg index 39b7e1439c..f71d7a53ac 100644 Binary files a/sound/vox_fem/minimum.ogg and b/sound/vox_fem/minimum.ogg differ diff --git a/sound/vox_fem/minutes.ogg b/sound/vox_fem/minutes.ogg index f1eb19eb74..62f773f247 100644 Binary files a/sound/vox_fem/minutes.ogg and b/sound/vox_fem/minutes.ogg differ diff --git a/sound/vox_fem/mister.ogg b/sound/vox_fem/mister.ogg index 97fdde4c18..252b31645f 100644 Binary files a/sound/vox_fem/mister.ogg and b/sound/vox_fem/mister.ogg differ diff --git a/sound/vox_fem/mode.ogg b/sound/vox_fem/mode.ogg index b585fc4a09..86651994da 100644 Binary files a/sound/vox_fem/mode.ogg and b/sound/vox_fem/mode.ogg differ diff --git a/sound/vox_fem/modification.ogg b/sound/vox_fem/modification.ogg new file mode 100644 index 0000000000..d87fe090ca Binary files /dev/null and b/sound/vox_fem/modification.ogg differ diff --git a/sound/vox_fem/money.ogg b/sound/vox_fem/money.ogg index ad054a7130..a4bdefb0bc 100644 Binary files a/sound/vox_fem/money.ogg and b/sound/vox_fem/money.ogg differ diff --git a/sound/vox_fem/monkey.ogg b/sound/vox_fem/monkey.ogg new file mode 100644 index 0000000000..fc10ada116 Binary files /dev/null and b/sound/vox_fem/monkey.ogg differ diff --git a/sound/vox_fem/moth.ogg b/sound/vox_fem/moth.ogg new file mode 100644 index 0000000000..a1fcfb1e90 Binary files /dev/null and b/sound/vox_fem/moth.ogg differ diff --git a/sound/vox_fem/motor.ogg b/sound/vox_fem/motor.ogg index 9a78193b46..d4ce7892b6 100644 Binary files a/sound/vox_fem/motor.ogg and b/sound/vox_fem/motor.ogg differ diff --git a/sound/vox_fem/motorpool.ogg b/sound/vox_fem/motorpool.ogg index 4dcbdc6e9d..cac2b6303b 100644 Binary files a/sound/vox_fem/motorpool.ogg and b/sound/vox_fem/motorpool.ogg differ diff --git a/sound/vox_fem/move.ogg b/sound/vox_fem/move.ogg index 1f9ef74e54..367ae5f5ae 100644 Binary files a/sound/vox_fem/move.ogg and b/sound/vox_fem/move.ogg differ diff --git a/sound/vox_fem/multitude.ogg b/sound/vox_fem/multitude.ogg new file mode 100644 index 0000000000..c017a04428 Binary files /dev/null and b/sound/vox_fem/multitude.ogg differ diff --git a/sound/vox_fem/murder.ogg b/sound/vox_fem/murder.ogg new file mode 100644 index 0000000000..8f72bd27cc Binary files /dev/null and b/sound/vox_fem/murder.ogg differ diff --git a/sound/vox_fem/must.ogg b/sound/vox_fem/must.ogg index 54d4ffe53a..798a27a175 100644 Binary files a/sound/vox_fem/must.ogg and b/sound/vox_fem/must.ogg differ diff --git a/sound/vox_fem/my.ogg b/sound/vox_fem/my.ogg index fc6ae2366a..aed75cd1ff 100644 Binary files a/sound/vox_fem/my.ogg and b/sound/vox_fem/my.ogg differ diff --git a/sound/vox_fem/mythic.ogg b/sound/vox_fem/mythic.ogg new file mode 100644 index 0000000000..5f4eef1fed Binary files /dev/null and b/sound/vox_fem/mythic.ogg differ diff --git a/sound/vox_fem/n.ogg b/sound/vox_fem/n.ogg index e0c396f547..e9732a92c3 100644 Binary files a/sound/vox_fem/n.ogg and b/sound/vox_fem/n.ogg differ diff --git a/sound/vox_fem/nanotrasen.ogg b/sound/vox_fem/nanotrasen.ogg index 10aa196c4e..9210b5be84 100644 Binary files a/sound/vox_fem/nanotrasen.ogg and b/sound/vox_fem/nanotrasen.ogg differ diff --git a/sound/vox_fem/nearest.ogg b/sound/vox_fem/nearest.ogg index c11a89d995..fd03d3a6dc 100644 Binary files a/sound/vox_fem/nearest.ogg and b/sound/vox_fem/nearest.ogg differ diff --git a/sound/vox_fem/need.ogg b/sound/vox_fem/need.ogg new file mode 100644 index 0000000000..428fc94658 Binary files /dev/null and b/sound/vox_fem/need.ogg differ diff --git a/sound/vox_fem/nice.ogg b/sound/vox_fem/nice.ogg index e800e84d00..6db574a3e7 100644 Binary files a/sound/vox_fem/nice.ogg and b/sound/vox_fem/nice.ogg differ diff --git a/sound/vox_fem/nine.ogg b/sound/vox_fem/nine.ogg index 86601bfa1e..86bc1811a0 100644 Binary files a/sound/vox_fem/nine.ogg and b/sound/vox_fem/nine.ogg differ diff --git a/sound/vox_fem/nineteen.ogg b/sound/vox_fem/nineteen.ogg index d28d7b15b6..a35d66dc4b 100644 Binary files a/sound/vox_fem/nineteen.ogg and b/sound/vox_fem/nineteen.ogg differ diff --git a/sound/vox_fem/ninety.ogg b/sound/vox_fem/ninety.ogg index ad5a1c1b42..d5f19581ce 100644 Binary files a/sound/vox_fem/ninety.ogg and b/sound/vox_fem/ninety.ogg differ diff --git a/sound/vox_fem/nitrogen.ogg b/sound/vox_fem/nitrogen.ogg new file mode 100644 index 0000000000..9cd5373449 Binary files /dev/null and b/sound/vox_fem/nitrogen.ogg differ diff --git a/sound/vox_fem/no.ogg b/sound/vox_fem/no.ogg index 8eee9df35f..cbbb77e745 100644 Binary files a/sound/vox_fem/no.ogg and b/sound/vox_fem/no.ogg differ diff --git a/sound/vox_fem/nominal.ogg b/sound/vox_fem/nominal.ogg index f6fb6736e7..5f6a491a8b 100644 Binary files a/sound/vox_fem/nominal.ogg and b/sound/vox_fem/nominal.ogg differ diff --git a/sound/vox_fem/north.ogg b/sound/vox_fem/north.ogg index 7efef865cf..3e942e32d4 100644 Binary files a/sound/vox_fem/north.ogg and b/sound/vox_fem/north.ogg differ diff --git a/sound/vox_fem/not.ogg b/sound/vox_fem/not.ogg index b5cd9e5f55..3756ce7053 100644 Binary files a/sound/vox_fem/not.ogg and b/sound/vox_fem/not.ogg differ diff --git a/sound/vox_fem/november.ogg b/sound/vox_fem/november.ogg index 403b9160f7..a3c0d62146 100644 Binary files a/sound/vox_fem/november.ogg and b/sound/vox_fem/november.ogg differ diff --git a/sound/vox_fem/now.ogg b/sound/vox_fem/now.ogg index f5d4df7193..af4b24ea37 100644 Binary files a/sound/vox_fem/now.ogg and b/sound/vox_fem/now.ogg differ diff --git a/sound/vox_fem/nuclear.ogg b/sound/vox_fem/nuclear.ogg new file mode 100644 index 0000000000..8d10eba833 Binary files /dev/null and b/sound/vox_fem/nuclear.ogg differ diff --git a/sound/vox_fem/nuke.ogg b/sound/vox_fem/nuke.ogg new file mode 100644 index 0000000000..4098a13e90 Binary files /dev/null and b/sound/vox_fem/nuke.ogg differ diff --git a/sound/vox_fem/number.ogg b/sound/vox_fem/number.ogg index afa6bb4595..153e098046 100644 Binary files a/sound/vox_fem/number.ogg and b/sound/vox_fem/number.ogg differ diff --git a/sound/vox_fem/o.ogg b/sound/vox_fem/o.ogg index 09fc769dd9..b4bd0fcd93 100644 Binary files a/sound/vox_fem/o.ogg and b/sound/vox_fem/o.ogg differ diff --git a/sound/vox_fem/objective.ogg b/sound/vox_fem/objective.ogg index ecfacb733e..e7ce511f28 100644 Binary files a/sound/vox_fem/objective.ogg and b/sound/vox_fem/objective.ogg differ diff --git a/sound/vox_fem/observation.ogg b/sound/vox_fem/observation.ogg index 653c31e346..d6e9967578 100644 Binary files a/sound/vox_fem/observation.ogg and b/sound/vox_fem/observation.ogg differ diff --git a/sound/vox_fem/obtain.ogg b/sound/vox_fem/obtain.ogg index ae28974e40..81d8186af8 100644 Binary files a/sound/vox_fem/obtain.ogg and b/sound/vox_fem/obtain.ogg differ diff --git a/sound/vox_fem/of.ogg b/sound/vox_fem/of.ogg index 5bf2488341..6ac3bd3ad7 100644 Binary files a/sound/vox_fem/of.ogg and b/sound/vox_fem/of.ogg differ diff --git a/sound/vox_fem/off.ogg b/sound/vox_fem/off.ogg new file mode 100644 index 0000000000..c6215b810a Binary files /dev/null and b/sound/vox_fem/off.ogg differ diff --git a/sound/vox_fem/office.ogg b/sound/vox_fem/office.ogg new file mode 100644 index 0000000000..cdde6cd1e3 Binary files /dev/null and b/sound/vox_fem/office.ogg differ diff --git a/sound/vox_fem/officer.ogg b/sound/vox_fem/officer.ogg index 4f80dd195a..9c4b7365b8 100644 Binary files a/sound/vox_fem/officer.ogg and b/sound/vox_fem/officer.ogg differ diff --git a/sound/vox_fem/oh.ogg b/sound/vox_fem/oh.ogg new file mode 100644 index 0000000000..f9072e9ff2 Binary files /dev/null and b/sound/vox_fem/oh.ogg differ diff --git a/sound/vox_fem/ok.ogg b/sound/vox_fem/ok.ogg index 072a208af9..d3d4ca9116 100644 Binary files a/sound/vox_fem/ok.ogg and b/sound/vox_fem/ok.ogg differ diff --git a/sound/vox_fem/on.ogg b/sound/vox_fem/on.ogg index be42780f46..fb06bf2383 100644 Binary files a/sound/vox_fem/on.ogg and b/sound/vox_fem/on.ogg differ diff --git a/sound/vox_fem/one.ogg b/sound/vox_fem/one.ogg index 749a9e5be9..0e6e48b9f3 100644 Binary files a/sound/vox_fem/one.ogg and b/sound/vox_fem/one.ogg differ diff --git a/sound/vox_fem/oof.ogg b/sound/vox_fem/oof.ogg new file mode 100644 index 0000000000..02455b91fe Binary files /dev/null and b/sound/vox_fem/oof.ogg differ diff --git a/sound/vox_fem/open.ogg b/sound/vox_fem/open.ogg index 96806dc329..78fa9a56e0 100644 Binary files a/sound/vox_fem/open.ogg and b/sound/vox_fem/open.ogg differ diff --git a/sound/vox_fem/operating.ogg b/sound/vox_fem/operating.ogg index 5404634ab1..685d2b558b 100644 Binary files a/sound/vox_fem/operating.ogg and b/sound/vox_fem/operating.ogg differ diff --git a/sound/vox_fem/operations.ogg b/sound/vox_fem/operations.ogg index 114c603ed0..74b11c59c4 100644 Binary files a/sound/vox_fem/operations.ogg and b/sound/vox_fem/operations.ogg differ diff --git a/sound/vox_fem/operative.ogg b/sound/vox_fem/operative.ogg index d93b653436..f681b26004 100644 Binary files a/sound/vox_fem/operative.ogg and b/sound/vox_fem/operative.ogg differ diff --git a/sound/vox_fem/option.ogg b/sound/vox_fem/option.ogg index c9d163c3bb..dde1c8ee45 100644 Binary files a/sound/vox_fem/option.ogg and b/sound/vox_fem/option.ogg differ diff --git a/sound/vox_fem/or.ogg b/sound/vox_fem/or.ogg new file mode 100644 index 0000000000..ab4c192faa Binary files /dev/null and b/sound/vox_fem/or.ogg differ diff --git a/sound/vox_fem/order.ogg b/sound/vox_fem/order.ogg index fc19d3311a..d76f4fe293 100644 Binary files a/sound/vox_fem/order.ogg and b/sound/vox_fem/order.ogg differ diff --git a/sound/vox_fem/organic.ogg b/sound/vox_fem/organic.ogg index 0ad410030a..f11e917643 100644 Binary files a/sound/vox_fem/organic.ogg and b/sound/vox_fem/organic.ogg differ diff --git a/sound/vox_fem/oscar.ogg b/sound/vox_fem/oscar.ogg index ae2dea023f..50ae2404ad 100644 Binary files a/sound/vox_fem/oscar.ogg and b/sound/vox_fem/oscar.ogg differ diff --git a/sound/vox_fem/out.ogg b/sound/vox_fem/out.ogg index 005b7e204e..a46efe142f 100644 Binary files a/sound/vox_fem/out.ogg and b/sound/vox_fem/out.ogg differ diff --git a/sound/vox_fem/outside.ogg b/sound/vox_fem/outside.ogg index 5c6f721dc0..648aa00c72 100644 Binary files a/sound/vox_fem/outside.ogg and b/sound/vox_fem/outside.ogg differ diff --git a/sound/vox_fem/over.ogg b/sound/vox_fem/over.ogg index 567bb69431..fc8c88926e 100644 Binary files a/sound/vox_fem/over.ogg and b/sound/vox_fem/over.ogg differ diff --git a/sound/vox_fem/overload.ogg b/sound/vox_fem/overload.ogg index d9ab530b1e..52807701ce 100644 Binary files a/sound/vox_fem/overload.ogg and b/sound/vox_fem/overload.ogg differ diff --git a/sound/vox_fem/override.ogg b/sound/vox_fem/override.ogg index fcc285fb8b..1060729fa7 100644 Binary files a/sound/vox_fem/override.ogg and b/sound/vox_fem/override.ogg differ diff --git a/sound/vox_fem/oxygen.ogg b/sound/vox_fem/oxygen.ogg new file mode 100644 index 0000000000..d078491202 Binary files /dev/null and b/sound/vox_fem/oxygen.ogg differ diff --git a/sound/vox_fem/p.ogg b/sound/vox_fem/p.ogg index 98eacdf549..e6b0a26bc6 100644 Binary files a/sound/vox_fem/p.ogg and b/sound/vox_fem/p.ogg differ diff --git a/sound/vox_fem/pacification.ogg b/sound/vox_fem/pacification.ogg new file mode 100644 index 0000000000..7ebe210516 Binary files /dev/null and b/sound/vox_fem/pacification.ogg differ diff --git a/sound/vox_fem/pacify.ogg b/sound/vox_fem/pacify.ogg index 15747e8d93..396b4cf672 100644 Binary files a/sound/vox_fem/pacify.ogg and b/sound/vox_fem/pacify.ogg differ diff --git a/sound/vox_fem/pain.ogg b/sound/vox_fem/pain.ogg index 23ec6e2b7b..b1bf8b6d75 100644 Binary files a/sound/vox_fem/pain.ogg and b/sound/vox_fem/pain.ogg differ diff --git a/sound/vox_fem/pal.ogg b/sound/vox_fem/pal.ogg index d9eaecc16d..f36a05f8df 100644 Binary files a/sound/vox_fem/pal.ogg and b/sound/vox_fem/pal.ogg differ diff --git a/sound/vox_fem/panel.ogg b/sound/vox_fem/panel.ogg index c68029951d..3f108bb61a 100644 Binary files a/sound/vox_fem/panel.ogg and b/sound/vox_fem/panel.ogg differ diff --git a/sound/vox_fem/panting.ogg b/sound/vox_fem/panting.ogg new file mode 100644 index 0000000000..900d9d11b0 Binary files /dev/null and b/sound/vox_fem/panting.ogg differ diff --git a/sound/vox_fem/pathetic.ogg b/sound/vox_fem/pathetic.ogg new file mode 100644 index 0000000000..6019ef98fd Binary files /dev/null and b/sound/vox_fem/pathetic.ogg differ diff --git a/sound/vox_fem/percent.ogg b/sound/vox_fem/percent.ogg index 5c7432454d..cf96077c62 100644 Binary files a/sound/vox_fem/percent.ogg and b/sound/vox_fem/percent.ogg differ diff --git a/sound/vox_fem/perfect.ogg b/sound/vox_fem/perfect.ogg new file mode 100644 index 0000000000..e61ab54fe1 Binary files /dev/null and b/sound/vox_fem/perfect.ogg differ diff --git a/sound/vox_fem/perimeter.ogg b/sound/vox_fem/perimeter.ogg index f4d5cebad9..e83c6296f7 100644 Binary files a/sound/vox_fem/perimeter.ogg and b/sound/vox_fem/perimeter.ogg differ diff --git a/sound/vox_fem/permitted.ogg b/sound/vox_fem/permitted.ogg index 39ebc8678a..57e4a0c586 100644 Binary files a/sound/vox_fem/permitted.ogg and b/sound/vox_fem/permitted.ogg differ diff --git a/sound/vox_fem/personal.ogg b/sound/vox_fem/personal.ogg new file mode 100644 index 0000000000..d60ca7b927 Binary files /dev/null and b/sound/vox_fem/personal.ogg differ diff --git a/sound/vox_fem/personnel.ogg b/sound/vox_fem/personnel.ogg index 9eba8eab37..3334451cf6 100644 Binary files a/sound/vox_fem/personnel.ogg and b/sound/vox_fem/personnel.ogg differ diff --git a/sound/vox_fem/pipe.ogg b/sound/vox_fem/pipe.ogg index 54f6d7cd52..39324ca9cf 100644 Binary files a/sound/vox_fem/pipe.ogg and b/sound/vox_fem/pipe.ogg differ diff --git a/sound/vox_fem/piping.ogg b/sound/vox_fem/piping.ogg new file mode 100644 index 0000000000..ed5f54b5c2 Binary files /dev/null and b/sound/vox_fem/piping.ogg differ diff --git a/sound/vox_fem/piss.ogg b/sound/vox_fem/piss.ogg new file mode 100644 index 0000000000..7ec7aae9a4 Binary files /dev/null and b/sound/vox_fem/piss.ogg differ diff --git a/sound/vox_fem/plant.ogg b/sound/vox_fem/plant.ogg index 4b693d75bc..1e7316a325 100644 Binary files a/sound/vox_fem/plant.ogg and b/sound/vox_fem/plant.ogg differ diff --git a/sound/vox_fem/plasma.ogg b/sound/vox_fem/plasma.ogg index 4187d273d8..39008f1237 100644 Binary files a/sound/vox_fem/plasma.ogg and b/sound/vox_fem/plasma.ogg differ diff --git a/sound/vox_fem/plasmaman.ogg b/sound/vox_fem/plasmaman.ogg new file mode 100644 index 0000000000..95a1289bfd Binary files /dev/null and b/sound/vox_fem/plasmaman.ogg differ diff --git a/sound/vox_fem/platform.ogg b/sound/vox_fem/platform.ogg index ede9921a16..d8cc5a4b97 100644 Binary files a/sound/vox_fem/platform.ogg and b/sound/vox_fem/platform.ogg differ diff --git a/sound/vox_fem/plausible.ogg b/sound/vox_fem/plausible.ogg new file mode 100644 index 0000000000..339d83542b Binary files /dev/null and b/sound/vox_fem/plausible.ogg differ diff --git a/sound/vox_fem/please.ogg b/sound/vox_fem/please.ogg index 829119d817..f0fb0e9e51 100644 Binary files a/sound/vox_fem/please.ogg and b/sound/vox_fem/please.ogg differ diff --git a/sound/vox_fem/point.ogg b/sound/vox_fem/point.ogg index c837b25f76..e4970362f6 100644 Binary files a/sound/vox_fem/point.ogg and b/sound/vox_fem/point.ogg differ diff --git a/sound/vox_fem/port.ogg b/sound/vox_fem/port.ogg index aa2c783b50..9b645595d0 100644 Binary files a/sound/vox_fem/port.ogg and b/sound/vox_fem/port.ogg differ diff --git a/sound/vox_fem/portal.ogg b/sound/vox_fem/portal.ogg index fa1345c3dc..744753f369 100644 Binary files a/sound/vox_fem/portal.ogg and b/sound/vox_fem/portal.ogg differ diff --git a/sound/vox_fem/possible.ogg b/sound/vox_fem/possible.ogg new file mode 100644 index 0000000000..19449cdf56 Binary files /dev/null and b/sound/vox_fem/possible.ogg differ diff --git a/sound/vox_fem/power.ogg b/sound/vox_fem/power.ogg index 8c7f8f147a..c7a3f04d6c 100644 Binary files a/sound/vox_fem/power.ogg and b/sound/vox_fem/power.ogg differ diff --git a/sound/vox_fem/presence.ogg b/sound/vox_fem/presence.ogg index 7f8cb296d7..62ab4989de 100644 Binary files a/sound/vox_fem/presence.ogg and b/sound/vox_fem/presence.ogg differ diff --git a/sound/vox_fem/press.ogg b/sound/vox_fem/press.ogg index a3e52593a3..681a2e8068 100644 Binary files a/sound/vox_fem/press.ogg and b/sound/vox_fem/press.ogg differ diff --git a/sound/vox_fem/pressure.ogg b/sound/vox_fem/pressure.ogg new file mode 100644 index 0000000000..cab3b8c40a Binary files /dev/null and b/sound/vox_fem/pressure.ogg differ diff --git a/sound/vox_fem/primary.ogg b/sound/vox_fem/primary.ogg index 0452d8f00e..92c7032016 100644 Binary files a/sound/vox_fem/primary.ogg and b/sound/vox_fem/primary.ogg differ diff --git a/sound/vox_fem/prison.ogg b/sound/vox_fem/prison.ogg new file mode 100644 index 0000000000..09522c8eb6 Binary files /dev/null and b/sound/vox_fem/prison.ogg differ diff --git a/sound/vox_fem/prisoner.ogg b/sound/vox_fem/prisoner.ogg new file mode 100644 index 0000000000..7d034b73d7 Binary files /dev/null and b/sound/vox_fem/prisoner.ogg differ diff --git a/sound/vox_fem/proceed.ogg b/sound/vox_fem/proceed.ogg index 13d301240d..2ec29be05d 100644 Binary files a/sound/vox_fem/proceed.ogg and b/sound/vox_fem/proceed.ogg differ diff --git a/sound/vox_fem/processing.ogg b/sound/vox_fem/processing.ogg index c31af991ab..188a4248aa 100644 Binary files a/sound/vox_fem/processing.ogg and b/sound/vox_fem/processing.ogg differ diff --git a/sound/vox_fem/progress.ogg b/sound/vox_fem/progress.ogg index deefb0e56a..2a1b96ac35 100644 Binary files a/sound/vox_fem/progress.ogg and b/sound/vox_fem/progress.ogg differ diff --git a/sound/vox_fem/proper.ogg b/sound/vox_fem/proper.ogg index 4564070d09..8f951cd677 100644 Binary files a/sound/vox_fem/proper.ogg and b/sound/vox_fem/proper.ogg differ diff --git a/sound/vox_fem/propulsion.ogg b/sound/vox_fem/propulsion.ogg index b6f532b55c..2d7e614369 100644 Binary files a/sound/vox_fem/propulsion.ogg and b/sound/vox_fem/propulsion.ogg differ diff --git a/sound/vox_fem/prosecute.ogg b/sound/vox_fem/prosecute.ogg index 98478476fe..1d2a43b6a8 100644 Binary files a/sound/vox_fem/prosecute.ogg and b/sound/vox_fem/prosecute.ogg differ diff --git a/sound/vox_fem/protective.ogg b/sound/vox_fem/protective.ogg index c0f8ccc63e..127ad1078d 100644 Binary files a/sound/vox_fem/protective.ogg and b/sound/vox_fem/protective.ogg differ diff --git a/sound/vox_fem/push.ogg b/sound/vox_fem/push.ogg index 9c15d2dd3e..29a11eb368 100644 Binary files a/sound/vox_fem/push.ogg and b/sound/vox_fem/push.ogg differ diff --git a/sound/vox_fem/put.ogg b/sound/vox_fem/put.ogg new file mode 100644 index 0000000000..ae4172b34f Binary files /dev/null and b/sound/vox_fem/put.ogg differ diff --git a/sound/vox_fem/q.ogg b/sound/vox_fem/q.ogg index 1763bb631a..312915feee 100644 Binary files a/sound/vox_fem/q.ogg and b/sound/vox_fem/q.ogg differ diff --git a/sound/vox_fem/quantum.ogg b/sound/vox_fem/quantum.ogg index 57a03c9e82..e852399cea 100644 Binary files a/sound/vox_fem/quantum.ogg and b/sound/vox_fem/quantum.ogg differ diff --git a/sound/vox_fem/quarantine.ogg b/sound/vox_fem/quarantine.ogg new file mode 100644 index 0000000000..b465c3c455 Binary files /dev/null and b/sound/vox_fem/quarantine.ogg differ diff --git a/sound/vox_fem/quartermaster.ogg b/sound/vox_fem/quartermaster.ogg new file mode 100644 index 0000000000..9059a07162 Binary files /dev/null and b/sound/vox_fem/quartermaster.ogg differ diff --git a/sound/vox_fem/quebec.ogg b/sound/vox_fem/quebec.ogg index 7234289c36..cfb41bd7a6 100644 Binary files a/sound/vox_fem/quebec.ogg and b/sound/vox_fem/quebec.ogg differ diff --git a/sound/vox_fem/queen.ogg b/sound/vox_fem/queen.ogg index 468d2eaf31..b5dc2c2dc5 100644 Binary files a/sound/vox_fem/queen.ogg and b/sound/vox_fem/queen.ogg differ diff --git a/sound/vox_fem/question.ogg b/sound/vox_fem/question.ogg index b849d536b0..b03bd961b7 100644 Binary files a/sound/vox_fem/question.ogg and b/sound/vox_fem/question.ogg differ diff --git a/sound/vox_fem/questionable.ogg b/sound/vox_fem/questionable.ogg new file mode 100644 index 0000000000..05ea4fc1e9 Binary files /dev/null and b/sound/vox_fem/questionable.ogg differ diff --git a/sound/vox_fem/questioning.ogg b/sound/vox_fem/questioning.ogg index fed35a8464..904fa083ce 100644 Binary files a/sound/vox_fem/questioning.ogg and b/sound/vox_fem/questioning.ogg differ diff --git a/sound/vox_fem/quick.ogg b/sound/vox_fem/quick.ogg index efd970ea19..1eb296fbbd 100644 Binary files a/sound/vox_fem/quick.ogg and b/sound/vox_fem/quick.ogg differ diff --git a/sound/vox_fem/quit.ogg b/sound/vox_fem/quit.ogg index ad3af8c462..625cdc0aba 100644 Binary files a/sound/vox_fem/quit.ogg and b/sound/vox_fem/quit.ogg differ diff --git a/sound/vox_fem/r.ogg b/sound/vox_fem/r.ogg index ee0c442249..4b9e8b4cb5 100644 Binary files a/sound/vox_fem/r.ogg and b/sound/vox_fem/r.ogg differ diff --git a/sound/vox_fem/radiation.ogg b/sound/vox_fem/radiation.ogg index 83c4293657..cab9e9b429 100644 Binary files a/sound/vox_fem/radiation.ogg and b/sound/vox_fem/radiation.ogg differ diff --git a/sound/vox_fem/radioactive.ogg b/sound/vox_fem/radioactive.ogg index 73dcd7f0ee..4ca8511d05 100644 Binary files a/sound/vox_fem/radioactive.ogg and b/sound/vox_fem/radioactive.ogg differ diff --git a/sound/vox_fem/rads.ogg b/sound/vox_fem/rads.ogg index a5d1e631f6..3390c97229 100644 Binary files a/sound/vox_fem/rads.ogg and b/sound/vox_fem/rads.ogg differ diff --git a/sound/vox_fem/raider.ogg b/sound/vox_fem/raider.ogg index a14a2eaf0b..b9fee4074d 100644 Binary files a/sound/vox_fem/raider.ogg and b/sound/vox_fem/raider.ogg differ diff --git a/sound/vox_fem/raiders.ogg b/sound/vox_fem/raiders.ogg index 5d4e668979..294555ebfc 100644 Binary files a/sound/vox_fem/raiders.ogg and b/sound/vox_fem/raiders.ogg differ diff --git a/sound/vox_fem/rapid.ogg b/sound/vox_fem/rapid.ogg index 17bcad6f12..e31e40c187 100644 Binary files a/sound/vox_fem/rapid.ogg and b/sound/vox_fem/rapid.ogg differ diff --git a/sound/vox_fem/reach.ogg b/sound/vox_fem/reach.ogg index c3cb81cc39..fbff196cac 100644 Binary files a/sound/vox_fem/reach.ogg and b/sound/vox_fem/reach.ogg differ diff --git a/sound/vox_fem/reached.ogg b/sound/vox_fem/reached.ogg index 2fe07542c7..41be8956bb 100644 Binary files a/sound/vox_fem/reached.ogg and b/sound/vox_fem/reached.ogg differ diff --git a/sound/vox_fem/reactor.ogg b/sound/vox_fem/reactor.ogg index ea05564d41..68110fbb75 100644 Binary files a/sound/vox_fem/reactor.ogg and b/sound/vox_fem/reactor.ogg differ diff --git a/sound/vox_fem/red.ogg b/sound/vox_fem/red.ogg index 4d7226a0b1..8338c4b6f5 100644 Binary files a/sound/vox_fem/red.ogg and b/sound/vox_fem/red.ogg differ diff --git a/sound/vox_fem/relay.ogg b/sound/vox_fem/relay.ogg index 2f661b9c5e..34d440000c 100644 Binary files a/sound/vox_fem/relay.ogg and b/sound/vox_fem/relay.ogg differ diff --git a/sound/vox_fem/released.ogg b/sound/vox_fem/released.ogg index d7be271f41..70dff1f4a4 100644 Binary files a/sound/vox_fem/released.ogg and b/sound/vox_fem/released.ogg differ diff --git a/sound/vox_fem/remaining.ogg b/sound/vox_fem/remaining.ogg index a59165e1a5..0d018750d7 100644 Binary files a/sound/vox_fem/remaining.ogg and b/sound/vox_fem/remaining.ogg differ diff --git a/sound/vox_fem/removal.ogg b/sound/vox_fem/removal.ogg index cb4c68c4b7..fb581b43c6 100644 Binary files a/sound/vox_fem/removal.ogg and b/sound/vox_fem/removal.ogg differ diff --git a/sound/vox_fem/renegade.ogg b/sound/vox_fem/renegade.ogg index 3c25e933fb..cfae7f3b8e 100644 Binary files a/sound/vox_fem/renegade.ogg and b/sound/vox_fem/renegade.ogg differ diff --git a/sound/vox_fem/repair.ogg b/sound/vox_fem/repair.ogg index ee6f092191..6829bee5ef 100644 Binary files a/sound/vox_fem/repair.ogg and b/sound/vox_fem/repair.ogg differ diff --git a/sound/vox_fem/report.ogg b/sound/vox_fem/report.ogg index 13a3dcf613..8cfe18bea2 100644 Binary files a/sound/vox_fem/report.ogg and b/sound/vox_fem/report.ogg differ diff --git a/sound/vox_fem/reports.ogg b/sound/vox_fem/reports.ogg index d4317a29c0..1f27a862a6 100644 Binary files a/sound/vox_fem/reports.ogg and b/sound/vox_fem/reports.ogg differ diff --git a/sound/vox_fem/require.ogg b/sound/vox_fem/require.ogg new file mode 100644 index 0000000000..0ada75c698 Binary files /dev/null and b/sound/vox_fem/require.ogg differ diff --git a/sound/vox_fem/required.ogg b/sound/vox_fem/required.ogg index 89fe4af635..554f2ab120 100644 Binary files a/sound/vox_fem/required.ogg and b/sound/vox_fem/required.ogg differ diff --git a/sound/vox_fem/research.ogg b/sound/vox_fem/research.ogg index b7426ed657..77b4ae3d3e 100644 Binary files a/sound/vox_fem/research.ogg and b/sound/vox_fem/research.ogg differ diff --git a/sound/vox_fem/resevoir.ogg b/sound/vox_fem/resevoir.ogg index b021c4b0b4..b15a52ccb5 100644 Binary files a/sound/vox_fem/resevoir.ogg and b/sound/vox_fem/resevoir.ogg differ diff --git a/sound/vox_fem/resistance.ogg b/sound/vox_fem/resistance.ogg index 3abbe8c383..f64a043d89 100644 Binary files a/sound/vox_fem/resistance.ogg and b/sound/vox_fem/resistance.ogg differ diff --git a/sound/vox_fem/rest.ogg b/sound/vox_fem/rest.ogg index e41daa22d8..a1c0ac95de 100644 Binary files a/sound/vox_fem/rest.ogg and b/sound/vox_fem/rest.ogg differ diff --git a/sound/vox_fem/restoration.ogg b/sound/vox_fem/restoration.ogg new file mode 100644 index 0000000000..b307653e5a Binary files /dev/null and b/sound/vox_fem/restoration.ogg differ diff --git a/sound/vox_fem/revolution.ogg b/sound/vox_fem/revolution.ogg new file mode 100644 index 0000000000..a72904df36 Binary files /dev/null and b/sound/vox_fem/revolution.ogg differ diff --git a/sound/vox_fem/revolutionary.ogg b/sound/vox_fem/revolutionary.ogg new file mode 100644 index 0000000000..a893a64669 Binary files /dev/null and b/sound/vox_fem/revolutionary.ogg differ diff --git a/sound/vox_fem/right.ogg b/sound/vox_fem/right.ogg index b515afdfe1..09087c0a1f 100644 Binary files a/sound/vox_fem/right.ogg and b/sound/vox_fem/right.ogg differ diff --git a/sound/vox_fem/riot.ogg b/sound/vox_fem/riot.ogg new file mode 100644 index 0000000000..b5beb3ec2f Binary files /dev/null and b/sound/vox_fem/riot.ogg differ diff --git a/sound/vox_fem/roboticist.ogg b/sound/vox_fem/roboticist.ogg new file mode 100644 index 0000000000..c644557dc8 Binary files /dev/null and b/sound/vox_fem/roboticist.ogg differ diff --git a/sound/vox_fem/rocket.ogg b/sound/vox_fem/rocket.ogg index ef56fb7397..bc476fc6e0 100644 Binary files a/sound/vox_fem/rocket.ogg and b/sound/vox_fem/rocket.ogg differ diff --git a/sound/vox_fem/roger.ogg b/sound/vox_fem/roger.ogg index ae9d841daa..1665b78bbe 100644 Binary files a/sound/vox_fem/roger.ogg and b/sound/vox_fem/roger.ogg differ diff --git a/sound/vox_fem/rogue.ogg b/sound/vox_fem/rogue.ogg new file mode 100644 index 0000000000..168fef8a1d Binary files /dev/null and b/sound/vox_fem/rogue.ogg differ diff --git a/sound/vox_fem/romeo.ogg b/sound/vox_fem/romeo.ogg index e5e5586d50..547e6823cb 100644 Binary files a/sound/vox_fem/romeo.ogg and b/sound/vox_fem/romeo.ogg differ diff --git a/sound/vox_fem/room.ogg b/sound/vox_fem/room.ogg index 6f72372f88..a4c1ed95af 100644 Binary files a/sound/vox_fem/room.ogg and b/sound/vox_fem/room.ogg differ diff --git a/sound/vox_fem/round.ogg b/sound/vox_fem/round.ogg index b5ed3e15ce..8e0a8e24d8 100644 Binary files a/sound/vox_fem/round.ogg and b/sound/vox_fem/round.ogg differ diff --git a/sound/vox_fem/run.ogg b/sound/vox_fem/run.ogg index edfde382d3..799adfb8cb 100644 Binary files a/sound/vox_fem/run.ogg and b/sound/vox_fem/run.ogg differ diff --git a/sound/vox_fem/rune.ogg b/sound/vox_fem/rune.ogg new file mode 100644 index 0000000000..d29ccc801a Binary files /dev/null and b/sound/vox_fem/rune.ogg differ diff --git a/sound/vox_fem/runtime.ogg b/sound/vox_fem/runtime.ogg new file mode 100644 index 0000000000..9776a7460d Binary files /dev/null and b/sound/vox_fem/runtime.ogg differ diff --git a/sound/vox_fem/s.ogg b/sound/vox_fem/s.ogg index 40d08fa599..404fca0148 100644 Binary files a/sound/vox_fem/s.ogg and b/sound/vox_fem/s.ogg differ diff --git a/sound/vox_fem/sabotage.ogg b/sound/vox_fem/sabotage.ogg new file mode 100644 index 0000000000..49d0175647 Binary files /dev/null and b/sound/vox_fem/sabotage.ogg differ diff --git a/sound/vox_fem/safe.ogg b/sound/vox_fem/safe.ogg index b7ffe4245b..ae4fc6b56a 100644 Binary files a/sound/vox_fem/safe.ogg and b/sound/vox_fem/safe.ogg differ diff --git a/sound/vox_fem/safety.ogg b/sound/vox_fem/safety.ogg index 4535a175af..79a824542b 100644 Binary files a/sound/vox_fem/safety.ogg and b/sound/vox_fem/safety.ogg differ diff --git a/sound/vox_fem/sairhorn.ogg b/sound/vox_fem/sairhorn.ogg new file mode 100644 index 0000000000..36504ab0d4 Binary files /dev/null and b/sound/vox_fem/sairhorn.ogg differ diff --git a/sound/vox_fem/sarah.ogg b/sound/vox_fem/sarah.ogg index caece78a0b..689fafd050 100644 Binary files a/sound/vox_fem/sarah.ogg and b/sound/vox_fem/sarah.ogg differ diff --git a/sound/vox_fem/sargeant.ogg b/sound/vox_fem/sargeant.ogg index 6e1c38a943..1c8bab79b2 100644 Binary files a/sound/vox_fem/sargeant.ogg and b/sound/vox_fem/sargeant.ogg differ diff --git a/sound/vox_fem/satellite.ogg b/sound/vox_fem/satellite.ogg index 95a8b7043a..427cadc825 100644 Binary files a/sound/vox_fem/satellite.ogg and b/sound/vox_fem/satellite.ogg differ diff --git a/sound/vox_fem/save.ogg b/sound/vox_fem/save.ogg index 7a91a6429d..392e5e9c2e 100644 Binary files a/sound/vox_fem/save.ogg and b/sound/vox_fem/save.ogg differ diff --git a/sound/vox_fem/scensor.ogg b/sound/vox_fem/scensor.ogg new file mode 100644 index 0000000000..f79af3fb5d Binary files /dev/null and b/sound/vox_fem/scensor.ogg differ diff --git a/sound/vox_fem/science.ogg b/sound/vox_fem/science.ogg index 72c62bfcbf..d092fab3aa 100644 Binary files a/sound/vox_fem/science.ogg and b/sound/vox_fem/science.ogg differ diff --git a/sound/vox_fem/scientist.ogg b/sound/vox_fem/scientist.ogg new file mode 100644 index 0000000000..f59a5da98f Binary files /dev/null and b/sound/vox_fem/scientist.ogg differ diff --git a/sound/vox_fem/scream.ogg b/sound/vox_fem/scream.ogg index 2e7a12a6db..52616eaa8a 100644 Binary files a/sound/vox_fem/scream.ogg and b/sound/vox_fem/scream.ogg differ diff --git a/sound/vox_fem/screen.ogg b/sound/vox_fem/screen.ogg index 0303f1e398..ffe54256af 100644 Binary files a/sound/vox_fem/screen.ogg and b/sound/vox_fem/screen.ogg differ diff --git a/sound/vox_fem/search.ogg b/sound/vox_fem/search.ogg index a1153e1bab..d19b53e192 100644 Binary files a/sound/vox_fem/search.ogg and b/sound/vox_fem/search.ogg differ diff --git a/sound/vox_fem/second.ogg b/sound/vox_fem/second.ogg index 6e13ef4047..4e2988aa2b 100644 Binary files a/sound/vox_fem/second.ogg and b/sound/vox_fem/second.ogg differ diff --git a/sound/vox_fem/secondary.ogg b/sound/vox_fem/secondary.ogg index bdbadfa27e..2a7f53a4db 100644 Binary files a/sound/vox_fem/secondary.ogg and b/sound/vox_fem/secondary.ogg differ diff --git a/sound/vox_fem/seconds.ogg b/sound/vox_fem/seconds.ogg index 29d22cae9e..546a76de57 100644 Binary files a/sound/vox_fem/seconds.ogg and b/sound/vox_fem/seconds.ogg differ diff --git a/sound/vox_fem/section.ogg b/sound/vox_fem/section.ogg new file mode 100644 index 0000000000..b40b16949c Binary files /dev/null and b/sound/vox_fem/section.ogg differ diff --git a/sound/vox_fem/sector.ogg b/sound/vox_fem/sector.ogg index f80294a816..0973b485cf 100644 Binary files a/sound/vox_fem/sector.ogg and b/sound/vox_fem/sector.ogg differ diff --git a/sound/vox_fem/secure.ogg b/sound/vox_fem/secure.ogg index 6ed743af7c..88ff5f639c 100644 Binary files a/sound/vox_fem/secure.ogg and b/sound/vox_fem/secure.ogg differ diff --git a/sound/vox_fem/secured.ogg b/sound/vox_fem/secured.ogg index f5126adec5..f2bfcf17cb 100644 Binary files a/sound/vox_fem/secured.ogg and b/sound/vox_fem/secured.ogg differ diff --git a/sound/vox_fem/security.ogg b/sound/vox_fem/security.ogg index 79c380eaf0..58ac63e69b 100644 Binary files a/sound/vox_fem/security.ogg and b/sound/vox_fem/security.ogg differ diff --git a/sound/vox_fem/select.ogg b/sound/vox_fem/select.ogg index e98a0b8de8..0d9a2fed6d 100644 Binary files a/sound/vox_fem/select.ogg and b/sound/vox_fem/select.ogg differ diff --git a/sound/vox_fem/selected.ogg b/sound/vox_fem/selected.ogg index 4aca550867..a1045477a8 100644 Binary files a/sound/vox_fem/selected.ogg and b/sound/vox_fem/selected.ogg differ diff --git a/sound/vox_fem/self.ogg b/sound/vox_fem/self.ogg new file mode 100644 index 0000000000..ab1433ebf0 Binary files /dev/null and b/sound/vox_fem/self.ogg differ diff --git a/sound/vox_fem/sensors.ogg b/sound/vox_fem/sensors.ogg index ee582ca9ab..9bfa83f176 100644 Binary files a/sound/vox_fem/sensors.ogg and b/sound/vox_fem/sensors.ogg differ diff --git a/sound/vox_fem/server.ogg b/sound/vox_fem/server.ogg new file mode 100644 index 0000000000..db5ef5e9ef Binary files /dev/null and b/sound/vox_fem/server.ogg differ diff --git a/sound/vox_fem/service.ogg b/sound/vox_fem/service.ogg index 372a89ce9d..4f78c06428 100644 Binary files a/sound/vox_fem/service.ogg and b/sound/vox_fem/service.ogg differ diff --git a/sound/vox_fem/seven.ogg b/sound/vox_fem/seven.ogg index e86498ddf4..77f7b1b7d5 100644 Binary files a/sound/vox_fem/seven.ogg and b/sound/vox_fem/seven.ogg differ diff --git a/sound/vox_fem/seventeen.ogg b/sound/vox_fem/seventeen.ogg index 84e52f12d6..863b8bf6e2 100644 Binary files a/sound/vox_fem/seventeen.ogg and b/sound/vox_fem/seventeen.ogg differ diff --git a/sound/vox_fem/seventy.ogg b/sound/vox_fem/seventy.ogg index d42bf34d0e..bad82c2fc2 100644 Binary files a/sound/vox_fem/seventy.ogg and b/sound/vox_fem/seventy.ogg differ diff --git a/sound/vox_fem/severe.ogg b/sound/vox_fem/severe.ogg index b99d49ebc7..070d36f5bc 100644 Binary files a/sound/vox_fem/severe.ogg and b/sound/vox_fem/severe.ogg differ diff --git a/sound/vox_fem/sewage.ogg b/sound/vox_fem/sewage.ogg index f9988fcbb2..f520a266b9 100644 Binary files a/sound/vox_fem/sewage.ogg and b/sound/vox_fem/sewage.ogg differ diff --git a/sound/vox_fem/sewer.ogg b/sound/vox_fem/sewer.ogg index 30e9b08a5a..a7a4814956 100644 Binary files a/sound/vox_fem/sewer.ogg and b/sound/vox_fem/sewer.ogg differ diff --git a/sound/vox_fem/shaft.ogg b/sound/vox_fem/shaft.ogg new file mode 100644 index 0000000000..b18870d84c Binary files /dev/null and b/sound/vox_fem/shaft.ogg differ diff --git a/sound/vox_fem/she.ogg b/sound/vox_fem/she.ogg new file mode 100644 index 0000000000..dedf01c15d Binary files /dev/null and b/sound/vox_fem/she.ogg differ diff --git a/sound/vox_fem/shield.ogg b/sound/vox_fem/shield.ogg index 3a4daa666a..47f1e1ec68 100644 Binary files a/sound/vox_fem/shield.ogg and b/sound/vox_fem/shield.ogg differ diff --git a/sound/vox_fem/shipment.ogg b/sound/vox_fem/shipment.ogg index bfcbaddeeb..ec5b78f615 100644 Binary files a/sound/vox_fem/shipment.ogg and b/sound/vox_fem/shipment.ogg differ diff --git a/sound/vox_fem/shirt.ogg b/sound/vox_fem/shirt.ogg index 6fc1d20256..c746fc4ea5 100644 Binary files a/sound/vox_fem/shirt.ogg and b/sound/vox_fem/shirt.ogg differ diff --git a/sound/vox_fem/shit.ogg b/sound/vox_fem/shit.ogg index ac9dcd6684..cb726c44b6 100644 Binary files a/sound/vox_fem/shit.ogg and b/sound/vox_fem/shit.ogg differ diff --git a/sound/vox_fem/shitlord.ogg b/sound/vox_fem/shitlord.ogg index 2f615748fe..4093d18fa5 100644 Binary files a/sound/vox_fem/shitlord.ogg and b/sound/vox_fem/shitlord.ogg differ diff --git a/sound/vox_fem/shits.ogg b/sound/vox_fem/shits.ogg index 7bab92de7f..b7d2586e5b 100644 Binary files a/sound/vox_fem/shits.ogg and b/sound/vox_fem/shits.ogg differ diff --git a/sound/vox_fem/shitting.ogg b/sound/vox_fem/shitting.ogg index 550e3e6fe7..7db29e5868 100644 Binary files a/sound/vox_fem/shitting.ogg and b/sound/vox_fem/shitting.ogg differ diff --git a/sound/vox_fem/shock.ogg b/sound/vox_fem/shock.ogg index 0eaaae1f47..ae722b6b33 100644 Binary files a/sound/vox_fem/shock.ogg and b/sound/vox_fem/shock.ogg differ diff --git a/sound/vox_fem/shonk.ogg b/sound/vox_fem/shonk.ogg new file mode 100644 index 0000000000..4e23c73df5 Binary files /dev/null and b/sound/vox_fem/shonk.ogg differ diff --git a/sound/vox_fem/shoot.ogg b/sound/vox_fem/shoot.ogg index 3b2333e489..b4d72c61dc 100644 Binary files a/sound/vox_fem/shoot.ogg and b/sound/vox_fem/shoot.ogg differ diff --git a/sound/vox_fem/shower.ogg b/sound/vox_fem/shower.ogg index 0ee0234961..a10829d2f8 100644 Binary files a/sound/vox_fem/shower.ogg and b/sound/vox_fem/shower.ogg differ diff --git a/sound/vox_fem/shut.ogg b/sound/vox_fem/shut.ogg index c7db582d06..b0920b27f2 100644 Binary files a/sound/vox_fem/shut.ogg and b/sound/vox_fem/shut.ogg differ diff --git a/sound/vox_fem/shuttle.ogg b/sound/vox_fem/shuttle.ogg index fd99a8239c..903292aa2e 100644 Binary files a/sound/vox_fem/shuttle.ogg and b/sound/vox_fem/shuttle.ogg differ diff --git a/sound/vox_fem/sick.ogg b/sound/vox_fem/sick.ogg new file mode 100644 index 0000000000..4bee521f75 Binary files /dev/null and b/sound/vox_fem/sick.ogg differ diff --git a/sound/vox_fem/side.ogg b/sound/vox_fem/side.ogg index ea7b6fe807..d9bd817e94 100644 Binary files a/sound/vox_fem/side.ogg and b/sound/vox_fem/side.ogg differ diff --git a/sound/vox_fem/sierra.ogg b/sound/vox_fem/sierra.ogg index dff0940bfe..2379c6866b 100644 Binary files a/sound/vox_fem/sierra.ogg and b/sound/vox_fem/sierra.ogg differ diff --git a/sound/vox_fem/sight.ogg b/sound/vox_fem/sight.ogg index 18c2057275..c2224392a7 100644 Binary files a/sound/vox_fem/sight.ogg and b/sound/vox_fem/sight.ogg differ diff --git a/sound/vox_fem/silicon.ogg b/sound/vox_fem/silicon.ogg new file mode 100644 index 0000000000..bb2a45bb35 Binary files /dev/null and b/sound/vox_fem/silicon.ogg differ diff --git a/sound/vox_fem/silo.ogg b/sound/vox_fem/silo.ogg index 9089802988..81db10ca5f 100644 Binary files a/sound/vox_fem/silo.ogg and b/sound/vox_fem/silo.ogg differ diff --git a/sound/vox_fem/singularity.ogg b/sound/vox_fem/singularity.ogg index 18fa8c0a57..09cb93e077 100644 Binary files a/sound/vox_fem/singularity.ogg and b/sound/vox_fem/singularity.ogg differ diff --git a/sound/vox_fem/six.ogg b/sound/vox_fem/six.ogg index ddb45cfe20..3ecce0bcb1 100644 Binary files a/sound/vox_fem/six.ogg and b/sound/vox_fem/six.ogg differ diff --git a/sound/vox_fem/sixteen.ogg b/sound/vox_fem/sixteen.ogg index ae4a4acc75..4edb7e6231 100644 Binary files a/sound/vox_fem/sixteen.ogg and b/sound/vox_fem/sixteen.ogg differ diff --git a/sound/vox_fem/sixty.ogg b/sound/vox_fem/sixty.ogg index 4f1877f979..a6a2f1f34b 100644 Binary files a/sound/vox_fem/sixty.ogg and b/sound/vox_fem/sixty.ogg differ diff --git a/sound/vox_fem/skeleton.ogg b/sound/vox_fem/skeleton.ogg new file mode 100644 index 0000000000..f6d1b85040 Binary files /dev/null and b/sound/vox_fem/skeleton.ogg differ diff --git a/sound/vox_fem/slaughter.ogg b/sound/vox_fem/slaughter.ogg new file mode 100644 index 0000000000..0bde97fcff Binary files /dev/null and b/sound/vox_fem/slaughter.ogg differ diff --git a/sound/vox_fem/slime.ogg b/sound/vox_fem/slime.ogg index eeae42794e..9f02e58e43 100644 Binary files a/sound/vox_fem/slime.ogg and b/sound/vox_fem/slime.ogg differ diff --git a/sound/vox_fem/slip.ogg b/sound/vox_fem/slip.ogg new file mode 100644 index 0000000000..bc6a3f8930 Binary files /dev/null and b/sound/vox_fem/slip.ogg differ diff --git a/sound/vox_fem/slippery.ogg b/sound/vox_fem/slippery.ogg new file mode 100644 index 0000000000..72d7052003 Binary files /dev/null and b/sound/vox_fem/slippery.ogg differ diff --git a/sound/vox_fem/slow.ogg b/sound/vox_fem/slow.ogg index d08f367ccc..b2087a3fc5 100644 Binary files a/sound/vox_fem/slow.ogg and b/sound/vox_fem/slow.ogg differ diff --git a/sound/vox_fem/sm.ogg b/sound/vox_fem/sm.ogg new file mode 100644 index 0000000000..7e4d6f51f1 Binary files /dev/null and b/sound/vox_fem/sm.ogg differ diff --git a/sound/vox_fem/solar.ogg b/sound/vox_fem/solar.ogg index e1b842a1ef..98668c7be3 100644 Binary files a/sound/vox_fem/solar.ogg and b/sound/vox_fem/solar.ogg differ diff --git a/sound/vox_fem/solars.ogg b/sound/vox_fem/solars.ogg index 4c2699194d..d13080877c 100644 Binary files a/sound/vox_fem/solars.ogg and b/sound/vox_fem/solars.ogg differ diff --git a/sound/vox_fem/soldier.ogg b/sound/vox_fem/soldier.ogg index 33e82c8da6..0e4fa1aed8 100644 Binary files a/sound/vox_fem/soldier.ogg and b/sound/vox_fem/soldier.ogg differ diff --git a/sound/vox_fem/some.ogg b/sound/vox_fem/some.ogg index ea24836f7f..a415dd8243 100644 Binary files a/sound/vox_fem/some.ogg and b/sound/vox_fem/some.ogg differ diff --git a/sound/vox_fem/someone.ogg b/sound/vox_fem/someone.ogg index 1586dfe0f6..875b1e0335 100644 Binary files a/sound/vox_fem/someone.ogg and b/sound/vox_fem/someone.ogg differ diff --git a/sound/vox_fem/something.ogg b/sound/vox_fem/something.ogg index a7f12de205..85c587ded4 100644 Binary files a/sound/vox_fem/something.ogg and b/sound/vox_fem/something.ogg differ diff --git a/sound/vox_fem/son.ogg b/sound/vox_fem/son.ogg index 943d4fe23c..9b91846f76 100644 Binary files a/sound/vox_fem/son.ogg and b/sound/vox_fem/son.ogg differ diff --git a/sound/vox_fem/sorry.ogg b/sound/vox_fem/sorry.ogg index 9d2da84540..400c13f1b2 100644 Binary files a/sound/vox_fem/sorry.ogg and b/sound/vox_fem/sorry.ogg differ diff --git a/sound/vox_fem/south.ogg b/sound/vox_fem/south.ogg index 5ce09ffa69..ff51246596 100644 Binary files a/sound/vox_fem/south.ogg and b/sound/vox_fem/south.ogg differ diff --git a/sound/vox_fem/space.ogg b/sound/vox_fem/space.ogg new file mode 100644 index 0000000000..23909673a3 Binary files /dev/null and b/sound/vox_fem/space.ogg differ diff --git a/sound/vox_fem/squad.ogg b/sound/vox_fem/squad.ogg index d356c019fc..163dd570cb 100644 Binary files a/sound/vox_fem/squad.ogg and b/sound/vox_fem/squad.ogg differ diff --git a/sound/vox_fem/square.ogg b/sound/vox_fem/square.ogg index e7c91123cd..f75eee54a1 100644 Binary files a/sound/vox_fem/square.ogg and b/sound/vox_fem/square.ogg differ diff --git a/sound/vox_fem/ss13.ogg b/sound/vox_fem/ss13.ogg index e4e80e829e..6cd69f5415 100644 Binary files a/sound/vox_fem/ss13.ogg and b/sound/vox_fem/ss13.ogg differ diff --git a/sound/vox_fem/stairway.ogg b/sound/vox_fem/stairway.ogg index 713960cf62..8cf54e0584 100644 Binary files a/sound/vox_fem/stairway.ogg and b/sound/vox_fem/stairway.ogg differ diff --git a/sound/vox_fem/starboard.ogg b/sound/vox_fem/starboard.ogg index 02c0ffe10b..d5b328a3b2 100644 Binary files a/sound/vox_fem/starboard.ogg and b/sound/vox_fem/starboard.ogg differ diff --git a/sound/vox_fem/station.ogg b/sound/vox_fem/station.ogg index 465b83db80..cddcb9bcd0 100644 Binary files a/sound/vox_fem/station.ogg and b/sound/vox_fem/station.ogg differ diff --git a/sound/vox_fem/status.ogg b/sound/vox_fem/status.ogg index 985765375f..3eefa0ea91 100644 Binary files a/sound/vox_fem/status.ogg and b/sound/vox_fem/status.ogg differ diff --git a/sound/vox_fem/stay.ogg b/sound/vox_fem/stay.ogg new file mode 100644 index 0000000000..6ee63fcded Binary files /dev/null and b/sound/vox_fem/stay.ogg differ diff --git a/sound/vox_fem/sterile.ogg b/sound/vox_fem/sterile.ogg index 3a51aecaf6..3cac8c1a74 100644 Binary files a/sound/vox_fem/sterile.ogg and b/sound/vox_fem/sterile.ogg differ diff --git a/sound/vox_fem/sterilization.ogg b/sound/vox_fem/sterilization.ogg index ebf092c844..203fc532ab 100644 Binary files a/sound/vox_fem/sterilization.ogg and b/sound/vox_fem/sterilization.ogg differ diff --git a/sound/vox_fem/stop.ogg b/sound/vox_fem/stop.ogg new file mode 100644 index 0000000000..dc8f4e1666 Binary files /dev/null and b/sound/vox_fem/stop.ogg differ diff --git a/sound/vox_fem/storage.ogg b/sound/vox_fem/storage.ogg index cc57069c25..5a75b6ad70 100644 Binary files a/sound/vox_fem/storage.ogg and b/sound/vox_fem/storage.ogg differ diff --git a/sound/vox_fem/strong.ogg b/sound/vox_fem/strong.ogg new file mode 100644 index 0000000000..eeb71bdcfc Binary files /dev/null and b/sound/vox_fem/strong.ogg differ diff --git a/sound/vox_fem/stuck.ogg b/sound/vox_fem/stuck.ogg index c4e477de6a..31d93647a4 100644 Binary files a/sound/vox_fem/stuck.ogg and b/sound/vox_fem/stuck.ogg differ diff --git a/sound/vox_fem/sub.ogg b/sound/vox_fem/sub.ogg index 92c240a646..7105f5a691 100644 Binary files a/sound/vox_fem/sub.ogg and b/sound/vox_fem/sub.ogg differ diff --git a/sound/vox_fem/subsurface.ogg b/sound/vox_fem/subsurface.ogg index 24da9c8893..d363797642 100644 Binary files a/sound/vox_fem/subsurface.ogg and b/sound/vox_fem/subsurface.ogg differ diff --git a/sound/vox_fem/sudden.ogg b/sound/vox_fem/sudden.ogg index baee11baae..8eeb44f4ad 100644 Binary files a/sound/vox_fem/sudden.ogg and b/sound/vox_fem/sudden.ogg differ diff --git a/sound/vox_fem/suffer.ogg b/sound/vox_fem/suffer.ogg index a1ab81689d..e37727f4a4 100644 Binary files a/sound/vox_fem/suffer.ogg and b/sound/vox_fem/suffer.ogg differ diff --git a/sound/vox_fem/suit.ogg b/sound/vox_fem/suit.ogg index e188763215..e4b4a9be8e 100644 Binary files a/sound/vox_fem/suit.ogg and b/sound/vox_fem/suit.ogg differ diff --git a/sound/vox_fem/superconducting.ogg b/sound/vox_fem/superconducting.ogg index c89ab9b9eb..7b5c6a7033 100644 Binary files a/sound/vox_fem/superconducting.ogg and b/sound/vox_fem/superconducting.ogg differ diff --git a/sound/vox_fem/supercooled.ogg b/sound/vox_fem/supercooled.ogg index c377951455..b0736de608 100644 Binary files a/sound/vox_fem/supercooled.ogg and b/sound/vox_fem/supercooled.ogg differ diff --git a/sound/vox_fem/supermatter.ogg b/sound/vox_fem/supermatter.ogg new file mode 100644 index 0000000000..7aa405a662 Binary files /dev/null and b/sound/vox_fem/supermatter.ogg differ diff --git a/sound/vox_fem/supply.ogg b/sound/vox_fem/supply.ogg index 992b2c68f8..8f18d501d2 100644 Binary files a/sound/vox_fem/supply.ogg and b/sound/vox_fem/supply.ogg differ diff --git a/sound/vox_fem/surface.ogg b/sound/vox_fem/surface.ogg index afe81808dd..e5ac17d86c 100644 Binary files a/sound/vox_fem/surface.ogg and b/sound/vox_fem/surface.ogg differ diff --git a/sound/vox_fem/surrender.ogg b/sound/vox_fem/surrender.ogg index 207629f6cc..563d5bf3f8 100644 Binary files a/sound/vox_fem/surrender.ogg and b/sound/vox_fem/surrender.ogg differ diff --git a/sound/vox_fem/surround.ogg b/sound/vox_fem/surround.ogg index 88d209d265..514ba97e70 100644 Binary files a/sound/vox_fem/surround.ogg and b/sound/vox_fem/surround.ogg differ diff --git a/sound/vox_fem/surrounded.ogg b/sound/vox_fem/surrounded.ogg index 411040fa4d..d47c74b95c 100644 Binary files a/sound/vox_fem/surrounded.ogg and b/sound/vox_fem/surrounded.ogg differ diff --git a/sound/vox_fem/sweating.ogg b/sound/vox_fem/sweating.ogg new file mode 100644 index 0000000000..140e467341 Binary files /dev/null and b/sound/vox_fem/sweating.ogg differ diff --git a/sound/vox_fem/swhitenoise.ogg b/sound/vox_fem/swhitenoise.ogg new file mode 100644 index 0000000000..4642bf92b0 Binary files /dev/null and b/sound/vox_fem/swhitenoise.ogg differ diff --git a/sound/vox_fem/switch.ogg b/sound/vox_fem/switch.ogg index f98be12953..4e3e058b11 100644 Binary files a/sound/vox_fem/switch.ogg and b/sound/vox_fem/switch.ogg differ diff --git a/sound/vox_fem/syndicate.ogg b/sound/vox_fem/syndicate.ogg index e085c98156..ad6708e4d7 100644 Binary files a/sound/vox_fem/syndicate.ogg and b/sound/vox_fem/syndicate.ogg differ diff --git a/sound/vox_fem/system.ogg b/sound/vox_fem/system.ogg index 8c3cb383ff..49293e2803 100644 Binary files a/sound/vox_fem/system.ogg and b/sound/vox_fem/system.ogg differ diff --git a/sound/vox_fem/systems.ogg b/sound/vox_fem/systems.ogg index 79b7ca80c3..394f56ca18 100644 Binary files a/sound/vox_fem/systems.ogg and b/sound/vox_fem/systems.ogg differ diff --git a/sound/vox_fem/t.ogg b/sound/vox_fem/t.ogg index f7bc5996a3..e6d81bf978 100644 Binary files a/sound/vox_fem/t.ogg and b/sound/vox_fem/t.ogg differ diff --git a/sound/vox_fem/table.ogg b/sound/vox_fem/table.ogg new file mode 100644 index 0000000000..e8f84ec10b Binary files /dev/null and b/sound/vox_fem/table.ogg differ diff --git a/sound/vox_fem/tactical.ogg b/sound/vox_fem/tactical.ogg index a482dba476..cddffb42b5 100644 Binary files a/sound/vox_fem/tactical.ogg and b/sound/vox_fem/tactical.ogg differ diff --git a/sound/vox_fem/take.ogg b/sound/vox_fem/take.ogg index f3c5c6f1ee..2fbc7d2dbd 100644 Binary files a/sound/vox_fem/take.ogg and b/sound/vox_fem/take.ogg differ diff --git a/sound/vox_fem/talk.ogg b/sound/vox_fem/talk.ogg index 122cc1e59e..639c05d6d8 100644 Binary files a/sound/vox_fem/talk.ogg and b/sound/vox_fem/talk.ogg differ diff --git a/sound/vox_fem/tampered.ogg b/sound/vox_fem/tampered.ogg new file mode 100644 index 0000000000..1540d1fdb8 Binary files /dev/null and b/sound/vox_fem/tampered.ogg differ diff --git a/sound/vox_fem/tango.ogg b/sound/vox_fem/tango.ogg index eb8602f8c5..1901272c2d 100644 Binary files a/sound/vox_fem/tango.ogg and b/sound/vox_fem/tango.ogg differ diff --git a/sound/vox_fem/tank.ogg b/sound/vox_fem/tank.ogg index 6a7943a998..de601ee42b 100644 Binary files a/sound/vox_fem/tank.ogg and b/sound/vox_fem/tank.ogg differ diff --git a/sound/vox_fem/target.ogg b/sound/vox_fem/target.ogg index f12c29de47..cd25f973c7 100644 Binary files a/sound/vox_fem/target.ogg and b/sound/vox_fem/target.ogg differ diff --git a/sound/vox_fem/team.ogg b/sound/vox_fem/team.ogg index 7269dd8223..0da37a0e72 100644 Binary files a/sound/vox_fem/team.ogg and b/sound/vox_fem/team.ogg differ diff --git a/sound/vox_fem/tech.ogg b/sound/vox_fem/tech.ogg new file mode 100644 index 0000000000..508f2b3613 Binary files /dev/null and b/sound/vox_fem/tech.ogg differ diff --git a/sound/vox_fem/technician.ogg b/sound/vox_fem/technician.ogg new file mode 100644 index 0000000000..d2726c02bf Binary files /dev/null and b/sound/vox_fem/technician.ogg differ diff --git a/sound/vox_fem/technology.ogg b/sound/vox_fem/technology.ogg new file mode 100644 index 0000000000..6ffd2f21db Binary files /dev/null and b/sound/vox_fem/technology.ogg differ diff --git a/sound/vox_fem/temperature.ogg b/sound/vox_fem/temperature.ogg index ae85c3ffed..f211ef728c 100644 Binary files a/sound/vox_fem/temperature.ogg and b/sound/vox_fem/temperature.ogg differ diff --git a/sound/vox_fem/temporal.ogg b/sound/vox_fem/temporal.ogg index efa1de6189..4d3476bfff 100644 Binary files a/sound/vox_fem/temporal.ogg and b/sound/vox_fem/temporal.ogg differ diff --git a/sound/vox_fem/ten.ogg b/sound/vox_fem/ten.ogg index d7c97e6310..2bd4483bbf 100644 Binary files a/sound/vox_fem/ten.ogg and b/sound/vox_fem/ten.ogg differ diff --git a/sound/vox_fem/terminal.ogg b/sound/vox_fem/terminal.ogg index e19141b4de..2f78cf1e14 100644 Binary files a/sound/vox_fem/terminal.ogg and b/sound/vox_fem/terminal.ogg differ diff --git a/sound/vox_fem/terminated.ogg b/sound/vox_fem/terminated.ogg index 505b595512..b816e39ec5 100644 Binary files a/sound/vox_fem/terminated.ogg and b/sound/vox_fem/terminated.ogg differ diff --git a/sound/vox_fem/termination.ogg b/sound/vox_fem/termination.ogg index bc96b64a00..745b150c67 100644 Binary files a/sound/vox_fem/termination.ogg and b/sound/vox_fem/termination.ogg differ diff --git a/sound/vox_fem/test.ogg b/sound/vox_fem/test.ogg index 90261697c9..ec0240b20c 100644 Binary files a/sound/vox_fem/test.ogg and b/sound/vox_fem/test.ogg differ diff --git a/sound/vox_fem/text.ogg b/sound/vox_fem/text.ogg new file mode 100644 index 0000000000..b7f0ed2ab9 Binary files /dev/null and b/sound/vox_fem/text.ogg differ diff --git a/sound/vox_fem/that.ogg b/sound/vox_fem/that.ogg index 868cdb0bf2..65c08f1394 100644 Binary files a/sound/vox_fem/that.ogg and b/sound/vox_fem/that.ogg differ diff --git a/sound/vox_fem/the.ogg b/sound/vox_fem/the.ogg index f3783635aa..79629c2bc2 100644 Binary files a/sound/vox_fem/the.ogg and b/sound/vox_fem/the.ogg differ diff --git a/sound/vox_fem/theater.ogg b/sound/vox_fem/theater.ogg new file mode 100644 index 0000000000..4cf901fbb7 Binary files /dev/null and b/sound/vox_fem/theater.ogg differ diff --git a/sound/vox_fem/them.ogg b/sound/vox_fem/them.ogg new file mode 100644 index 0000000000..8984ce9bb8 Binary files /dev/null and b/sound/vox_fem/them.ogg differ diff --git a/sound/vox_fem/then.ogg b/sound/vox_fem/then.ogg index 547b2238b1..f7bd169fe2 100644 Binary files a/sound/vox_fem/then.ogg and b/sound/vox_fem/then.ogg differ diff --git a/sound/vox_fem/there.ogg b/sound/vox_fem/there.ogg index 928bba6419..05d665592e 100644 Binary files a/sound/vox_fem/there.ogg and b/sound/vox_fem/there.ogg differ diff --git a/sound/vox_fem/they.ogg b/sound/vox_fem/they.ogg new file mode 100644 index 0000000000..f0bc1b424b Binary files /dev/null and b/sound/vox_fem/they.ogg differ diff --git a/sound/vox_fem/third.ogg b/sound/vox_fem/third.ogg index 63202c5321..6cc5316a63 100644 Binary files a/sound/vox_fem/third.ogg and b/sound/vox_fem/third.ogg differ diff --git a/sound/vox_fem/thirteen.ogg b/sound/vox_fem/thirteen.ogg index 88115f5fa1..859b89ea1a 100644 Binary files a/sound/vox_fem/thirteen.ogg and b/sound/vox_fem/thirteen.ogg differ diff --git a/sound/vox_fem/thirty.ogg b/sound/vox_fem/thirty.ogg index 12e50744c3..3a977ba8c9 100644 Binary files a/sound/vox_fem/thirty.ogg and b/sound/vox_fem/thirty.ogg differ diff --git a/sound/vox_fem/this.ogg b/sound/vox_fem/this.ogg index b55923a48f..95bdb5b6fe 100644 Binary files a/sound/vox_fem/this.ogg and b/sound/vox_fem/this.ogg differ diff --git a/sound/vox_fem/those.ogg b/sound/vox_fem/those.ogg index 41fc745657..53b754d188 100644 Binary files a/sound/vox_fem/those.ogg and b/sound/vox_fem/those.ogg differ diff --git a/sound/vox_fem/thousand.ogg b/sound/vox_fem/thousand.ogg index ba92bcb2e8..ad4cb3912d 100644 Binary files a/sound/vox_fem/thousand.ogg and b/sound/vox_fem/thousand.ogg differ diff --git a/sound/vox_fem/threat.ogg b/sound/vox_fem/threat.ogg index d4003d6ab5..74b99e07a6 100644 Binary files a/sound/vox_fem/threat.ogg and b/sound/vox_fem/threat.ogg differ diff --git a/sound/vox_fem/three.ogg b/sound/vox_fem/three.ogg index 2e8dbf175c..9efb946754 100644 Binary files a/sound/vox_fem/three.ogg and b/sound/vox_fem/three.ogg differ diff --git a/sound/vox_fem/through.ogg b/sound/vox_fem/through.ogg index ad2e5ed1b7..77adca3bb0 100644 Binary files a/sound/vox_fem/through.ogg and b/sound/vox_fem/through.ogg differ diff --git a/sound/vox_fem/tide.ogg b/sound/vox_fem/tide.ogg index 45917e2f57..27807fa63b 100644 Binary files a/sound/vox_fem/tide.ogg and b/sound/vox_fem/tide.ogg differ diff --git a/sound/vox_fem/time.ogg b/sound/vox_fem/time.ogg index 02746c98df..26b061cc00 100644 Binary files a/sound/vox_fem/time.ogg and b/sound/vox_fem/time.ogg differ diff --git a/sound/vox_fem/to.ogg b/sound/vox_fem/to.ogg index aaf695702d..cb8594d73c 100644 Binary files a/sound/vox_fem/to.ogg and b/sound/vox_fem/to.ogg differ diff --git a/sound/vox_fem/top.ogg b/sound/vox_fem/top.ogg index 1db5b104f2..dea64d66f4 100644 Binary files a/sound/vox_fem/top.ogg and b/sound/vox_fem/top.ogg differ diff --git a/sound/vox_fem/topside.ogg b/sound/vox_fem/topside.ogg index c3c4639830..dd542435a1 100644 Binary files a/sound/vox_fem/topside.ogg and b/sound/vox_fem/topside.ogg differ diff --git a/sound/vox_fem/touch.ogg b/sound/vox_fem/touch.ogg index 4a165a15b8..1be63a0fb5 100644 Binary files a/sound/vox_fem/touch.ogg and b/sound/vox_fem/touch.ogg differ diff --git a/sound/vox_fem/towards.ogg b/sound/vox_fem/towards.ogg index 1ee555597f..ce9b4ff30a 100644 Binary files a/sound/vox_fem/towards.ogg and b/sound/vox_fem/towards.ogg differ diff --git a/sound/vox_fem/toxins.ogg b/sound/vox_fem/toxins.ogg index 34d29ed792..95f57ea702 100644 Binary files a/sound/vox_fem/toxins.ogg and b/sound/vox_fem/toxins.ogg differ diff --git a/sound/vox_fem/track.ogg b/sound/vox_fem/track.ogg index 70467c449a..6110b0b439 100644 Binary files a/sound/vox_fem/track.ogg and b/sound/vox_fem/track.ogg differ diff --git a/sound/vox_fem/train.ogg b/sound/vox_fem/train.ogg index c3b92d956d..cabdb2310d 100644 Binary files a/sound/vox_fem/train.ogg and b/sound/vox_fem/train.ogg differ diff --git a/sound/vox_fem/traitor.ogg b/sound/vox_fem/traitor.ogg index 5cfc3714d1..133a632f44 100644 Binary files a/sound/vox_fem/traitor.ogg and b/sound/vox_fem/traitor.ogg differ diff --git a/sound/vox_fem/transportation.ogg b/sound/vox_fem/transportation.ogg index 97d56ff61e..739c35ff6a 100644 Binary files a/sound/vox_fem/transportation.ogg and b/sound/vox_fem/transportation.ogg differ diff --git a/sound/vox_fem/truck.ogg b/sound/vox_fem/truck.ogg index bd190eed3b..fb2f3a0eca 100644 Binary files a/sound/vox_fem/truck.ogg and b/sound/vox_fem/truck.ogg differ diff --git a/sound/vox_fem/true.ogg b/sound/vox_fem/true.ogg new file mode 100644 index 0000000000..b4c4373d4a Binary files /dev/null and b/sound/vox_fem/true.ogg differ diff --git a/sound/vox_fem/tunnel.ogg b/sound/vox_fem/tunnel.ogg index d42beae155..cf5f8b6839 100644 Binary files a/sound/vox_fem/tunnel.ogg and b/sound/vox_fem/tunnel.ogg differ diff --git a/sound/vox_fem/turn.ogg b/sound/vox_fem/turn.ogg index f6a11de5b5..d37277b56f 100644 Binary files a/sound/vox_fem/turn.ogg and b/sound/vox_fem/turn.ogg differ diff --git a/sound/vox_fem/turret.ogg b/sound/vox_fem/turret.ogg index 541846aa2b..9e59d9522c 100644 Binary files a/sound/vox_fem/turret.ogg and b/sound/vox_fem/turret.ogg differ diff --git a/sound/vox_fem/twelve.ogg b/sound/vox_fem/twelve.ogg index e192edeccd..2cbcf01143 100644 Binary files a/sound/vox_fem/twelve.ogg and b/sound/vox_fem/twelve.ogg differ diff --git a/sound/vox_fem/twenty.ogg b/sound/vox_fem/twenty.ogg index 7b920b0ba8..da12231471 100644 Binary files a/sound/vox_fem/twenty.ogg and b/sound/vox_fem/twenty.ogg differ diff --git a/sound/vox_fem/two.ogg b/sound/vox_fem/two.ogg index c327cc105e..aaabc5c66a 100644 Binary files a/sound/vox_fem/two.ogg and b/sound/vox_fem/two.ogg differ diff --git a/sound/vox_fem/u.ogg b/sound/vox_fem/u.ogg index 790bd09520..3948f2514a 100644 Binary files a/sound/vox_fem/u.ogg and b/sound/vox_fem/u.ogg differ diff --git a/sound/vox_fem/ugh.ogg b/sound/vox_fem/ugh.ogg new file mode 100644 index 0000000000..e010a96f8a Binary files /dev/null and b/sound/vox_fem/ugh.ogg differ diff --git a/sound/vox_fem/ughh.ogg b/sound/vox_fem/ughh.ogg new file mode 100644 index 0000000000..5b0610ed0c Binary files /dev/null and b/sound/vox_fem/ughh.ogg differ diff --git a/sound/vox_fem/unable.ogg b/sound/vox_fem/unable.ogg new file mode 100644 index 0000000000..2c51bb8206 Binary files /dev/null and b/sound/vox_fem/unable.ogg differ diff --git a/sound/vox_fem/unauthorized.ogg b/sound/vox_fem/unauthorized.ogg index 35d48120e9..b52445c6c2 100644 Binary files a/sound/vox_fem/unauthorized.ogg and b/sound/vox_fem/unauthorized.ogg differ diff --git a/sound/vox_fem/under.ogg b/sound/vox_fem/under.ogg index 89d91bef37..8c453b81bb 100644 Binary files a/sound/vox_fem/under.ogg and b/sound/vox_fem/under.ogg differ diff --git a/sound/vox_fem/uniform.ogg b/sound/vox_fem/uniform.ogg index 6f7de6902f..bfe3a42c71 100644 Binary files a/sound/vox_fem/uniform.ogg and b/sound/vox_fem/uniform.ogg differ diff --git a/sound/vox_fem/unknown.ogg b/sound/vox_fem/unknown.ogg new file mode 100644 index 0000000000..f0eb85939b Binary files /dev/null and b/sound/vox_fem/unknown.ogg differ diff --git a/sound/vox_fem/unlocked.ogg b/sound/vox_fem/unlocked.ogg index 725f8a6c81..3f0f610f15 100644 Binary files a/sound/vox_fem/unlocked.ogg and b/sound/vox_fem/unlocked.ogg differ diff --git a/sound/vox_fem/unsafe.ogg b/sound/vox_fem/unsafe.ogg new file mode 100644 index 0000000000..22fa219f4c Binary files /dev/null and b/sound/vox_fem/unsafe.ogg differ diff --git a/sound/vox_fem/until.ogg b/sound/vox_fem/until.ogg index 43cadd1a88..d468f47f86 100644 Binary files a/sound/vox_fem/until.ogg and b/sound/vox_fem/until.ogg differ diff --git a/sound/vox_fem/up.ogg b/sound/vox_fem/up.ogg index 1c395a6195..6261bd7648 100644 Binary files a/sound/vox_fem/up.ogg and b/sound/vox_fem/up.ogg differ diff --git a/sound/vox_fem/update.ogg b/sound/vox_fem/update.ogg index 31a4e651ab..190f2aed44 100644 Binary files a/sound/vox_fem/update.ogg and b/sound/vox_fem/update.ogg differ diff --git a/sound/vox_fem/updated.ogg b/sound/vox_fem/updated.ogg index 61559f2293..46514d82e9 100644 Binary files a/sound/vox_fem/updated.ogg and b/sound/vox_fem/updated.ogg differ diff --git a/sound/vox_fem/updating.ogg b/sound/vox_fem/updating.ogg index 0403f77796..208a611422 100644 Binary files a/sound/vox_fem/updating.ogg and b/sound/vox_fem/updating.ogg differ diff --git a/sound/vox_fem/upload.ogg b/sound/vox_fem/upload.ogg index f96547bfea..807aa7573d 100644 Binary files a/sound/vox_fem/upload.ogg and b/sound/vox_fem/upload.ogg differ diff --git a/sound/vox_fem/upper.ogg b/sound/vox_fem/upper.ogg index 810d330ef0..312b369dda 100644 Binary files a/sound/vox_fem/upper.ogg and b/sound/vox_fem/upper.ogg differ diff --git a/sound/vox_fem/uranium.ogg b/sound/vox_fem/uranium.ogg index e2ac70d93e..cd940ca19e 100644 Binary files a/sound/vox_fem/uranium.ogg and b/sound/vox_fem/uranium.ogg differ diff --git a/sound/vox_fem/us.ogg b/sound/vox_fem/us.ogg index 0731a879a5..c14eca5969 100644 Binary files a/sound/vox_fem/us.ogg and b/sound/vox_fem/us.ogg differ diff --git a/sound/vox_fem/usa.ogg b/sound/vox_fem/usa.ogg index f3bc1912e9..1177e3dee7 100644 Binary files a/sound/vox_fem/usa.ogg and b/sound/vox_fem/usa.ogg differ diff --git a/sound/vox_fem/use.ogg b/sound/vox_fem/use.ogg index 3ab7367a25..3bd41893f9 100644 Binary files a/sound/vox_fem/use.ogg and b/sound/vox_fem/use.ogg differ diff --git a/sound/vox_fem/used.ogg b/sound/vox_fem/used.ogg index 5cb1afd853..801df8e4b6 100644 Binary files a/sound/vox_fem/used.ogg and b/sound/vox_fem/used.ogg differ diff --git a/sound/vox_fem/user.ogg b/sound/vox_fem/user.ogg index 739b3a3164..79f60d30df 100644 Binary files a/sound/vox_fem/user.ogg and b/sound/vox_fem/user.ogg differ diff --git a/sound/vox_fem/v.ogg b/sound/vox_fem/v.ogg index 9148450229..fc6c85112d 100644 Binary files a/sound/vox_fem/v.ogg and b/sound/vox_fem/v.ogg differ diff --git a/sound/vox_fem/vacate.ogg b/sound/vox_fem/vacate.ogg index 12f1c52c4c..bdf52a36b3 100644 Binary files a/sound/vox_fem/vacate.ogg and b/sound/vox_fem/vacate.ogg differ diff --git a/sound/vox_fem/vacuum.ogg b/sound/vox_fem/vacuum.ogg new file mode 100644 index 0000000000..1e380ca986 Binary files /dev/null and b/sound/vox_fem/vacuum.ogg differ diff --git a/sound/vox_fem/valid.ogg b/sound/vox_fem/valid.ogg index a2d58b879c..befacfc5d5 100644 Binary files a/sound/vox_fem/valid.ogg and b/sound/vox_fem/valid.ogg differ diff --git a/sound/vox_fem/vapor.ogg b/sound/vox_fem/vapor.ogg index 859d103ea6..fb69407b2b 100644 Binary files a/sound/vox_fem/vapor.ogg and b/sound/vox_fem/vapor.ogg differ diff --git a/sound/vox_fem/vendor.ogg b/sound/vox_fem/vendor.ogg new file mode 100644 index 0000000000..f6f96bc8a7 Binary files /dev/null and b/sound/vox_fem/vendor.ogg differ diff --git a/sound/vox_fem/vent.ogg b/sound/vox_fem/vent.ogg index 35fdffafa0..5e6103c1d3 100644 Binary files a/sound/vox_fem/vent.ogg and b/sound/vox_fem/vent.ogg differ diff --git a/sound/vox_fem/ventilation.ogg b/sound/vox_fem/ventilation.ogg index 594cfbb5b8..62f625d3b6 100644 Binary files a/sound/vox_fem/ventilation.ogg and b/sound/vox_fem/ventilation.ogg differ diff --git a/sound/vox_fem/very.ogg b/sound/vox_fem/very.ogg new file mode 100644 index 0000000000..1bfaf00148 Binary files /dev/null and b/sound/vox_fem/very.ogg differ diff --git a/sound/vox_fem/victor.ogg b/sound/vox_fem/victor.ogg index 97ce16b7f6..02e23afb72 100644 Binary files a/sound/vox_fem/victor.ogg and b/sound/vox_fem/victor.ogg differ diff --git a/sound/vox_fem/violated.ogg b/sound/vox_fem/violated.ogg index f7b0b72a8b..8ec6a900a4 100644 Binary files a/sound/vox_fem/violated.ogg and b/sound/vox_fem/violated.ogg differ diff --git a/sound/vox_fem/violation.ogg b/sound/vox_fem/violation.ogg index d50801ee76..e74c8a0931 100644 Binary files a/sound/vox_fem/violation.ogg and b/sound/vox_fem/violation.ogg differ diff --git a/sound/vox_fem/virologist.ogg b/sound/vox_fem/virologist.ogg new file mode 100644 index 0000000000..1f9c42d7c6 Binary files /dev/null and b/sound/vox_fem/virologist.ogg differ diff --git a/sound/vox_fem/virology.ogg b/sound/vox_fem/virology.ogg index 9050ed5057..687f925ccb 100644 Binary files a/sound/vox_fem/virology.ogg and b/sound/vox_fem/virology.ogg differ diff --git a/sound/vox_fem/virus.ogg b/sound/vox_fem/virus.ogg new file mode 100644 index 0000000000..57772dae84 Binary files /dev/null and b/sound/vox_fem/virus.ogg differ diff --git a/sound/vox_fem/vitals.ogg b/sound/vox_fem/vitals.ogg new file mode 100644 index 0000000000..021c6aad09 Binary files /dev/null and b/sound/vox_fem/vitals.ogg differ diff --git a/sound/vox_fem/voltage.ogg b/sound/vox_fem/voltage.ogg index efcc71ffa9..bafe38bd72 100644 Binary files a/sound/vox_fem/voltage.ogg and b/sound/vox_fem/voltage.ogg differ diff --git a/sound/vox_fem/vox.ogg b/sound/vox_fem/vox.ogg index 9e173140c7..ba680bd29c 100644 Binary files a/sound/vox_fem/vox.ogg and b/sound/vox_fem/vox.ogg differ diff --git a/sound/vox_fem/vox_login.ogg b/sound/vox_fem/vox_login.ogg index 4c349b5835..f812f9813d 100644 Binary files a/sound/vox_fem/vox_login.ogg and b/sound/vox_fem/vox_login.ogg differ diff --git a/sound/vox_fem/voxtest.ogg b/sound/vox_fem/voxtest.ogg index cc73b4e853..6805e68893 100644 Binary files a/sound/vox_fem/voxtest.ogg and b/sound/vox_fem/voxtest.ogg differ diff --git a/sound/vox_fem/w.ogg b/sound/vox_fem/w.ogg index 9d79ce4a2a..4e470c240b 100644 Binary files a/sound/vox_fem/w.ogg and b/sound/vox_fem/w.ogg differ diff --git a/sound/vox_fem/walk.ogg b/sound/vox_fem/walk.ogg index 10f5d04cf2..f36ea852b5 100644 Binary files a/sound/vox_fem/walk.ogg and b/sound/vox_fem/walk.ogg differ diff --git a/sound/vox_fem/wall.ogg b/sound/vox_fem/wall.ogg index cc08c00256..594d8b8dcd 100644 Binary files a/sound/vox_fem/wall.ogg and b/sound/vox_fem/wall.ogg differ diff --git a/sound/vox_fem/wanker.ogg b/sound/vox_fem/wanker.ogg index fbb8c404e6..713189ff71 100644 Binary files a/sound/vox_fem/wanker.ogg and b/sound/vox_fem/wanker.ogg differ diff --git a/sound/vox_fem/want.ogg b/sound/vox_fem/want.ogg index 49ad91c895..93ad1ad111 100644 Binary files a/sound/vox_fem/want.ogg and b/sound/vox_fem/want.ogg differ diff --git a/sound/vox_fem/wanted.ogg b/sound/vox_fem/wanted.ogg index 1c87b3e140..0d21f8911c 100644 Binary files a/sound/vox_fem/wanted.ogg and b/sound/vox_fem/wanted.ogg differ diff --git a/sound/vox_fem/warden.ogg b/sound/vox_fem/warden.ogg new file mode 100644 index 0000000000..231f67020e Binary files /dev/null and b/sound/vox_fem/warden.ogg differ diff --git a/sound/vox_fem/warm.ogg b/sound/vox_fem/warm.ogg index 534203ba70..d010b18d59 100644 Binary files a/sound/vox_fem/warm.ogg and b/sound/vox_fem/warm.ogg differ diff --git a/sound/vox_fem/warn.ogg b/sound/vox_fem/warn.ogg index 437ef92c68..e0a67bc8dd 100644 Binary files a/sound/vox_fem/warn.ogg and b/sound/vox_fem/warn.ogg differ diff --git a/sound/vox_fem/warning.ogg b/sound/vox_fem/warning.ogg index 5ff68583a0..5ff8ddc980 100644 Binary files a/sound/vox_fem/warning.ogg and b/sound/vox_fem/warning.ogg differ diff --git a/sound/vox_fem/waste.ogg b/sound/vox_fem/waste.ogg index 46726eaa2d..9acb2bc87f 100644 Binary files a/sound/vox_fem/waste.ogg and b/sound/vox_fem/waste.ogg differ diff --git a/sound/vox_fem/water.ogg b/sound/vox_fem/water.ogg index 08e6c8a0f1..49791f4da4 100644 Binary files a/sound/vox_fem/water.ogg and b/sound/vox_fem/water.ogg differ diff --git a/sound/vox_fem/we.ogg b/sound/vox_fem/we.ogg index eb417004f5..c7fd6556a3 100644 Binary files a/sound/vox_fem/we.ogg and b/sound/vox_fem/we.ogg differ diff --git a/sound/vox_fem/weak.ogg b/sound/vox_fem/weak.ogg new file mode 100644 index 0000000000..f4551000e6 Binary files /dev/null and b/sound/vox_fem/weak.ogg differ diff --git a/sound/vox_fem/weapon.ogg b/sound/vox_fem/weapon.ogg index b892f246d9..82861665fd 100644 Binary files a/sound/vox_fem/weapon.ogg and b/sound/vox_fem/weapon.ogg differ diff --git a/sound/vox_fem/welcome.ogg b/sound/vox_fem/welcome.ogg index cde71ac125..7da063318c 100644 Binary files a/sound/vox_fem/welcome.ogg and b/sound/vox_fem/welcome.ogg differ diff --git a/sound/vox_fem/west.ogg b/sound/vox_fem/west.ogg index 588020a1d9..7ed4832bfa 100644 Binary files a/sound/vox_fem/west.ogg and b/sound/vox_fem/west.ogg differ diff --git a/sound/vox_fem/wew.ogg b/sound/vox_fem/wew.ogg new file mode 100644 index 0000000000..85e493bfd8 Binary files /dev/null and b/sound/vox_fem/wew.ogg differ diff --git a/sound/vox_fem/what.ogg b/sound/vox_fem/what.ogg new file mode 100644 index 0000000000..d8badc4123 Binary files /dev/null and b/sound/vox_fem/what.ogg differ diff --git a/sound/vox_fem/when.ogg b/sound/vox_fem/when.ogg new file mode 100644 index 0000000000..310d877fac Binary files /dev/null and b/sound/vox_fem/when.ogg differ diff --git a/sound/vox_fem/where.ogg b/sound/vox_fem/where.ogg new file mode 100644 index 0000000000..5d432dc312 Binary files /dev/null and b/sound/vox_fem/where.ogg differ diff --git a/sound/vox_fem/whiskey.ogg b/sound/vox_fem/whiskey.ogg index 9b1b03c04c..a82424ae47 100644 Binary files a/sound/vox_fem/whiskey.ogg and b/sound/vox_fem/whiskey.ogg differ diff --git a/sound/vox_fem/white.ogg b/sound/vox_fem/white.ogg index 0c95d531f1..681ff5a299 100644 Binary files a/sound/vox_fem/white.ogg and b/sound/vox_fem/white.ogg differ diff --git a/sound/vox_fem/why.ogg b/sound/vox_fem/why.ogg new file mode 100644 index 0000000000..4e8038503d Binary files /dev/null and b/sound/vox_fem/why.ogg differ diff --git a/sound/vox_fem/wilco.ogg b/sound/vox_fem/wilco.ogg index 29109ecbdc..f1a9fbcea8 100644 Binary files a/sound/vox_fem/wilco.ogg and b/sound/vox_fem/wilco.ogg differ diff --git a/sound/vox_fem/will.ogg b/sound/vox_fem/will.ogg index fa1e53b78f..d5a9a1a48d 100644 Binary files a/sound/vox_fem/will.ogg and b/sound/vox_fem/will.ogg differ diff --git a/sound/vox_fem/wing.ogg b/sound/vox_fem/wing.ogg new file mode 100644 index 0000000000..87c23cf431 Binary files /dev/null and b/sound/vox_fem/wing.ogg differ diff --git a/sound/vox_fem/wire.ogg b/sound/vox_fem/wire.ogg new file mode 100644 index 0000000000..52eacfdbac Binary files /dev/null and b/sound/vox_fem/wire.ogg differ diff --git a/sound/vox_fem/with.ogg b/sound/vox_fem/with.ogg index 7bed6fcc46..961166efba 100644 Binary files a/sound/vox_fem/with.ogg and b/sound/vox_fem/with.ogg differ diff --git a/sound/vox_fem/without.ogg b/sound/vox_fem/without.ogg index 814e123c8c..d1645c46f5 100644 Binary files a/sound/vox_fem/without.ogg and b/sound/vox_fem/without.ogg differ diff --git a/sound/vox_fem/wizard.ogg b/sound/vox_fem/wizard.ogg new file mode 100644 index 0000000000..823e17304b Binary files /dev/null and b/sound/vox_fem/wizard.ogg differ diff --git a/sound/vox_fem/wood.ogg b/sound/vox_fem/wood.ogg index ec84917ea4..2312a10c7c 100644 Binary files a/sound/vox_fem/wood.ogg and b/sound/vox_fem/wood.ogg differ diff --git a/sound/vox_fem/woody.ogg b/sound/vox_fem/woody.ogg index 54e56f72e8..c617fff4ae 100644 Binary files a/sound/vox_fem/woody.ogg and b/sound/vox_fem/woody.ogg differ diff --git a/sound/vox_fem/woop.ogg b/sound/vox_fem/woop.ogg new file mode 100644 index 0000000000..a5006b78c7 Binary files /dev/null and b/sound/vox_fem/woop.ogg differ diff --git a/sound/vox_fem/wow.ogg b/sound/vox_fem/wow.ogg new file mode 100644 index 0000000000..b760c9a369 Binary files /dev/null and b/sound/vox_fem/wow.ogg differ diff --git a/sound/vox_fem/x.ogg b/sound/vox_fem/x.ogg index c483daca87..030a364d4d 100644 Binary files a/sound/vox_fem/x.ogg and b/sound/vox_fem/x.ogg differ diff --git a/sound/vox_fem/xeno.ogg b/sound/vox_fem/xeno.ogg index ed486388d8..588890473e 100644 Binary files a/sound/vox_fem/xeno.ogg and b/sound/vox_fem/xeno.ogg differ diff --git a/sound/vox_fem/xenobiology.ogg b/sound/vox_fem/xenobiology.ogg index f5e6554052..60e998580a 100644 Binary files a/sound/vox_fem/xenobiology.ogg and b/sound/vox_fem/xenobiology.ogg differ diff --git a/sound/vox_fem/xenomorph.ogg b/sound/vox_fem/xenomorph.ogg index 5558123f93..684a4ce5be 100644 Binary files a/sound/vox_fem/xenomorph.ogg and b/sound/vox_fem/xenomorph.ogg differ diff --git a/sound/vox_fem/xenomorphs.ogg b/sound/vox_fem/xenomorphs.ogg index caf268c966..c29132a9fd 100644 Binary files a/sound/vox_fem/xenomorphs.ogg and b/sound/vox_fem/xenomorphs.ogg differ diff --git a/sound/vox_fem/y.ogg b/sound/vox_fem/y.ogg index eac894378f..de3178a943 100644 Binary files a/sound/vox_fem/y.ogg and b/sound/vox_fem/y.ogg differ diff --git a/sound/vox_fem/yankee.ogg b/sound/vox_fem/yankee.ogg index 6121116435..07e78d6059 100644 Binary files a/sound/vox_fem/yankee.ogg and b/sound/vox_fem/yankee.ogg differ diff --git a/sound/vox_fem/yards.ogg b/sound/vox_fem/yards.ogg index ed7a8a35e0..b5008d6bfe 100644 Binary files a/sound/vox_fem/yards.ogg and b/sound/vox_fem/yards.ogg differ diff --git a/sound/vox_fem/year.ogg b/sound/vox_fem/year.ogg index 4376f8f125..ad37e38084 100644 Binary files a/sound/vox_fem/year.ogg and b/sound/vox_fem/year.ogg differ diff --git a/sound/vox_fem/yellow.ogg b/sound/vox_fem/yellow.ogg index 0588027ab6..6611404edf 100644 Binary files a/sound/vox_fem/yellow.ogg and b/sound/vox_fem/yellow.ogg differ diff --git a/sound/vox_fem/yes.ogg b/sound/vox_fem/yes.ogg index 8c9d4fe441..1223cac35f 100644 Binary files a/sound/vox_fem/yes.ogg and b/sound/vox_fem/yes.ogg differ diff --git a/sound/vox_fem/you.ogg b/sound/vox_fem/you.ogg index 0f00616bd6..54c717ac9c 100644 Binary files a/sound/vox_fem/you.ogg and b/sound/vox_fem/you.ogg differ diff --git a/sound/vox_fem/your.ogg b/sound/vox_fem/your.ogg index 9113df51ec..45f997c82c 100644 Binary files a/sound/vox_fem/your.ogg and b/sound/vox_fem/your.ogg differ diff --git a/sound/vox_fem/yourself.ogg b/sound/vox_fem/yourself.ogg index 137be1bb37..d0004f187e 100644 Binary files a/sound/vox_fem/yourself.ogg and b/sound/vox_fem/yourself.ogg differ diff --git a/sound/vox_fem/z.ogg b/sound/vox_fem/z.ogg index 6ece175d8f..07d7ad0540 100644 Binary files a/sound/vox_fem/z.ogg and b/sound/vox_fem/z.ogg differ diff --git a/sound/vox_fem/zero.ogg b/sound/vox_fem/zero.ogg index 1d9344f220..08a4d8f68b 100644 Binary files a/sound/vox_fem/zero.ogg and b/sound/vox_fem/zero.ogg differ diff --git a/sound/vox_fem/zombie.ogg b/sound/vox_fem/zombie.ogg new file mode 100644 index 0000000000..fb1d76daaf Binary files /dev/null and b/sound/vox_fem/zombie.ogg differ diff --git a/sound/vox_fem/zone.ogg b/sound/vox_fem/zone.ogg index b054cca741..1935032d66 100644 Binary files a/sound/vox_fem/zone.ogg and b/sound/vox_fem/zone.ogg differ diff --git a/sound/vox_fem/zulu.ogg b/sound/vox_fem/zulu.ogg index f54eeac952..a2fffea656 100644 Binary files a/sound/vox_fem/zulu.ogg and b/sound/vox_fem/zulu.ogg differ diff --git a/tgstation.dme b/tgstation.dme index 443d286b4d..e57765a3dc 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -314,6 +314,7 @@ #include "code\datums\components\_component.dm" #include "code\datums\components\anti_magic.dm" #include "code\datums\components\archaeology.dm" +#include "code\datums\components\beauty.dm" #include "code\datums\components\butchering.dm" #include "code\datums\components\caltrop.dm" #include "code\datums\components\chasm.dm" @@ -408,6 +409,7 @@ #include "code\datums\martial\psychotic_brawl.dm" #include "code\datums\martial\sleeping_carp.dm" #include "code\datums\martial\wrestling.dm" +#include "code\datums\mood_events\beauty_events.dm" #include "code\datums\mood_events\drug_events.dm" #include "code\datums\mood_events\generic_negative_events.dm" #include "code\datums\mood_events\generic_positive_events.dm" @@ -1618,6 +1620,7 @@ #include "code\modules\integrated_electronics\core\analyzer.dm" #include "code\modules\integrated_electronics\core\assemblies.dm" #include "code\modules\integrated_electronics\core\debugger.dm" +#include "code\modules\integrated_electronics\core\detailer.dm" #include "code\modules\integrated_electronics\core\helpers.dm" #include "code\modules\integrated_electronics\core\integrated_circuit.dm" #include "code\modules\integrated_electronics\core\pins.dm"