From ce473dad9c560f72dc2580205e2a3a9da5dec830 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 17 Mar 2019 22:15:41 -0700 Subject: [PATCH 01/37] Update shuttle.dm --- modular_citadel/code/controllers/subsystem/shuttle.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modular_citadel/code/controllers/subsystem/shuttle.dm b/modular_citadel/code/controllers/subsystem/shuttle.dm index 4b9dd33d08..bb4592f819 100644 --- a/modular_citadel/code/controllers/subsystem/shuttle.dm +++ b/modular_citadel/code/controllers/subsystem/shuttle.dm @@ -1,5 +1,5 @@ /datum/controller/subsystem/shuttle/proc/autoEnd() //CIT CHANGE - allows shift to end after 3 hours has passed. - if(world.time > auto_call && EMERGENCY_IDLE_OR_RECALLED) //3 hours + if((world.realtime - SSshuttle.realtimeofstart) > auto_call && EMERGENCY_IDLE_OR_RECALLED) //3 hours SSshuttle.emergency.request() priority_announce("The shift has come to an end and the shuttle called.") log_game("Round time limit reached. Shuttle has been auto-called.") From 079264bf9302cb1ca7ea067db21a5f8fb441fea1 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 17 Mar 2019 22:16:44 -0700 Subject: [PATCH 02/37] Update communications.dm --- code/game/machinery/computer/communications.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index 3b87c923d7..43f5b96fbd 100755 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -202,7 +202,7 @@ state = STATE_CANCELSHUTTLE if("cancelshuttle2") if(authenticated) - if(world.time > SSshuttle.auto_call) //Citadel Edit Removing auto_call caused recall. + if((world.realtime - SSshuttle.realtimeofstart) > SSshuttle.auto_call) //Citadel Edit Removing auto_call caused recall. say("Warning: Emergency shuttle recalls have been blocked by Central Command due to ongoing crew transfer procedures.") else SSshuttle.cancelEvac(usr) From 39397ea938f00c5e11e656d87df52c30756c8a93 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 17 Mar 2019 22:17:30 -0700 Subject: [PATCH 03/37] Update shuttle.dm --- code/controllers/subsystem/shuttle.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/controllers/subsystem/shuttle.dm b/code/controllers/subsystem/shuttle.dm index e2e7c3d327..78cceddc8b 100644 --- a/code/controllers/subsystem/shuttle.dm +++ b/code/controllers/subsystem/shuttle.dm @@ -54,6 +54,7 @@ SUBSYSTEM_DEF(shuttle) var/lockdown = FALSE //disallow transit after nuke goes off var/auto_call = 72000 //CIT CHANGE - time before in deciseconds in which the shuttle is auto called. Default is 2ish hours plus 15 for the shuttle. So total is 3. + var/realtimeofstart = 0 /datum/controller/subsystem/shuttle/Initialize(timeofday) ordernum = rand(1, 9000) @@ -74,6 +75,7 @@ SUBSYSTEM_DEF(shuttle) WARNING("No /obj/docking_port/mobile/emergency/backup placed on the map!") if(!supply) WARNING("No /obj/docking_port/mobile/supply placed on the map!") + realtimeofstart = world.realtime return ..() /datum/controller/subsystem/shuttle/proc/initial_load() From 461d42ae6b28165e9fd0d7240a6384b6c6a2f02c Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 17 Mar 2019 22:18:13 -0700 Subject: [PATCH 04/37] Update ticker.dm --- code/controllers/subsystem/ticker.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index d54f6fc3ef..acfb2babc3 100755 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -304,6 +304,7 @@ SUBSYSTEM_DEF(ticker) to_chat(world, "

[holiday.greet()]

") PostSetup() + SSshuttle.realtimeofstart = world.realtime return TRUE From ff28797d946be696ef5e08a9b7754ef5413c985c Mon Sep 17 00:00:00 2001 From: Poojawa Date: Mon, 18 Mar 2019 04:39:47 -0500 Subject: [PATCH 05/37] Initial belly interactions return + wet sound check --- .../code/modules/vore/eating/belly_obj_vr.dm | 101 ++++++++++-------- .../code/modules/vore/eating/living_vr.dm | 22 ++-- .../code/modules/vore/eating/vore_vr.dm | 2 +- .../code/modules/vore/eating/vorepanel_vr.dm | 7 ++ 4 files changed, 74 insertions(+), 58 deletions(-) diff --git a/modular_citadel/code/modules/vore/eating/belly_obj_vr.dm b/modular_citadel/code/modules/vore/eating/belly_obj_vr.dm index 1aa8122be5..e76a09d4b7 100644 --- a/modular_citadel/code/modules/vore/eating/belly_obj_vr.dm +++ b/modular_citadel/code/modules/vore/eating/belly_obj_vr.dm @@ -26,18 +26,19 @@ var/escapetime = 20 SECONDS // Deciseconds, how long to escape this belly var/digestchance = 0 // % Chance of stomach beginning to digest if prey struggles var/absorbchance = 0 // % Chance of stomach beginning to absorb if prey struggles - var/escapechance = 100 // % Chance of prey beginning to escape if prey struggles. + var/escapechance = 0 // % Chance of prey beginning to escape if prey struggles. var/can_taste = FALSE // If this belly prints the flavor of prey when it eats someone. var/bulge_size = 0.25 // The minimum size the prey has to be in order to show up on examine. // var/shrink_grow_size = 1 // This horribly named variable determines the minimum/maximum size it will shrink/grow prey to. var/silent = FALSE - var/transferlocation = null // Location that the prey is released if they struggle and get dropped off. + var/transferlocation // Location that the prey is released if they struggle and get dropped off. var/transferchance = 0 // % Chance of prey being transferred to transfer location when resisting var/autotransferchance = 0 // % Chance of prey being autotransferred to transfer location var/autotransferwait = 10 // Time between trying to transfer. var/swallow_time = 10 SECONDS // for mob transfering automation var/vore_capacity = 1 // simple animal nom capacity + var/is_wet = TRUE // Is this belly inside slimy parts? //I don't think we've ever altered these lists. making them static until someone actually overrides them somewhere. var/tmp/static/list/digest_modes = list(DM_HOLD,DM_DIGEST,DM_HEAL,DM_NOISY,DM_ABSORB,DM_UNABSORB) // Possible digest modes @@ -138,7 +139,8 @@ "digest_messages_owner", "digest_messages_prey", "examine_messages", - "emote_lists" + "emote_lists", + "is_wet" ) //ommitted list @@ -167,7 +169,7 @@ to_chat(owner,"[thing] slides into your [lowertext(name)].") //Sound w/ antispam flag setting - if(!silent && !recent_sound) + if(is_wet && !recent_sound) for(var/mob/M in get_hearers_in_view(5, get_turf(owner))) if(M.client && (M.client.prefs.cit_toggles & EATING_NOISES)) playsound(get_turf(owner),"[src.vore_sound]",50,0,-5,0,ignore_walls = FALSE,channel=CHANNEL_PRED) @@ -268,8 +270,10 @@ prey.forceMove(src) var/sound/preyloop = sound('sound/vore/prey/loop.ogg', repeat = TRUE) - if(!silent) + + if(is_wet) prey.playsound_local(loc,preyloop,70,0, channel = CHANNEL_PREYLOOP) + owner.updateVRPanel() for(var/mob/living/M in contents) @@ -461,6 +465,9 @@ //Yes, it's ""safe"" to drop items here /obj/belly/AllowDrop() return TRUE +/* +/obj/belly/onDropInto(var/atom/movable/AM) + return null */ //Handle a mob struggling // Called from /mob/living/carbon/relaymove() @@ -469,6 +476,23 @@ return // User is not in this belly R.setClickCooldown(50) + + if(owner.stat) //If owner is stat (dead, KO) we can actually escape + to_chat(R,"You attempt to climb out of \the [lowertext(name)]. (This will take around [escapetime/10] seconds.)") + to_chat(owner,"Someone is attempting to climb out of your [lowertext(name)]!") + + if(do_after(R, owner, escapetime)) + if((owner.stat || escapable) && (R.loc == src)) //Can still escape? + release_specific_contents(R) + return + else if(R.loc != src) //Aren't even in the belly. Quietly fail. + return + else //Belly became inescapable or mob revived + to_chat(R,"Your attempt to escape [lowertext(name)] has failed!") + to_chat(owner,"The attempt to escape from your [lowertext(name)] has failed!") + return + return + var/struggle_outer_message = pick(struggle_messages_outside) var/struggle_user_message = pick(struggle_messages_inside) @@ -483,41 +507,33 @@ struggle_outer_message = "" + struggle_outer_message + "" struggle_user_message = "" + struggle_user_message + "" - if((owner.stat || !owner.client) && (R.a_intent != INTENT_HELP)) //If owner is stat (dead, KO) we can actually escape - to_chat(R,"You attempt to climb out of \the [lowertext(name)]. (This will take around 5 seconds.)") - to_chat(owner,"Someone is attempting to climb out of your [lowertext(name)]!") - - if(!do_mob(R,owner,50)) - return - if(!(R in contents)) //Aren't even in the belly. Quietly fail. - return - if(R.a_intent != INTENT_HELP) //still want to? - release_specific_contents(R) - return - else //Belly became inescapable or mob revived - to_chat(R,"Your attempt to escape [lowertext(name)] has failed!") - to_chat(owner,"The attempt to escape from your [lowertext(name)] has failed!") - return - else if(R.a_intent != INTENT_HELP) //failsafe to make sure people are able to struggle out. friendly ERP should be on help intent. - to_chat(R,"You attempt to climb out of [lowertext(name)]. (This will take around [escapetime] seconds.)") - to_chat(owner,"Someone is attempting to climb out of your [lowertext(name)]!") - if(!do_mob(R,owner,escapetime)) - return - release_specific_contents(R) - return - else if (R.a_intent == INTENT_HELP) - for(var/mob/M in get_hearers_in_view(3, get_turf(owner))) - M.show_message(struggle_outer_message, 1) // visible - to_chat(R,struggle_user_message) - - if(!silent) - for(var/mob/M in get_hearers_in_view(5, get_turf(owner))) + if(is_wet) + for(var/mob/M in get_hearers_in_view(2, get_turf(owner))) if(M.client && (M.client.prefs.cit_toggles & EATING_NOISES)) playsound(get_turf(owner),"struggle_sound",35,0,-5,1,ignore_walls = FALSE,channel=CHANNEL_PRED) R.stop_sound_channel(CHANNEL_PRED) var/sound/prey_struggle = sound(get_sfx("prey_struggle")) R.playsound_local(get_turf(R),prey_struggle,45,0) + for(var/mob/M in get_hearers_in_view(3, get_turf(owner))) + if(M.client && (M.client.prefs.cit_toggles & EATING_NOISES)) //Might as well censor the normies here too. + M.show_message(struggle_outer_message, 1) // visible + to_chat(R,struggle_user_message) + + if(escapable) //If the stomach has escapable enabled. + if(prob(escapechance)) //Let's have it check to see if the prey escapes first. + to_chat(R,"You start to climb out of \the [lowertext(name)].") + to_chat(owner,"Someone is attempting to climb out of your [lowertext(name)]!") + if(do_after(R, escapetime)) + if((owner.stat || escapable) && (R.loc == src)) //Can still escape? + release_specific_contents(R) + return + else if(R.loc != src) //Aren't even in the belly. Quietly fail. + return + else //Belly became inescapable or mob revived + to_chat(R,"Your attempt to escape [lowertext(name)] has failed!") + to_chat(owner,"The attempt to escape from your [lowertext(name)] has failed!") + return else if(prob(transferchance) && transferlocation) //Next, let's have it see if they end up getting into an even bigger mess then when they started. var/obj/belly/dest_belly for(var/belly in owner.vore_organs) @@ -525,6 +541,7 @@ if(B.name == transferlocation) dest_belly = B break + if(!dest_belly) to_chat(owner, "Something went wrong with your belly transfer settings. Your [lowertext(name)] has had it's transfer chance and transfer location cleared as a precaution.") transferchance = 0 @@ -541,21 +558,10 @@ to_chat(owner,"You feel your [lowertext(name)] start to cling onto its contents...") digest_mode = DM_ABSORB return -/* - else if(prob(digestchance) && digest_mode != DM_ITEMWEAK && digest_mode != DM_DIGEST) //Finally, let's see if it should run the digest chance. + + else if(prob(digestchance) && digest_mode != DM_DIGEST) //Finally, let's see if it should run the digest chance. to_chat(R,"In response to your struggling, \the [lowertext(name)] begins to get more active...") to_chat(owner,"You feel your [lowertext(name)] beginning to become active!") - digest_mode = DM_ITEMWEAK - return - - else if(prob(digestchance) && digest_mode == DM_ITEMWEAK) //Oh god it gets even worse if you fail twice! - to_chat(R,"In response to your struggling, \the [lowertext(name)] begins to get even more active!") - to_chat(owner,"You feel your [lowertext(name)] beginning to become even more active!") - digest_mode = DM_DIGEST - return */ - else if(prob(digestchance)) //Finally, let's see if it should run the digest chance.) - to_chat(R, "In response to your struggling, \the [name] begins to get more active...") - to_chat(owner, "You feel your [name] beginning to become active!") digest_mode = DM_DIGEST return @@ -609,6 +615,7 @@ dupe.autotransferwait = autotransferwait dupe.swallow_time = swallow_time dupe.vore_capacity = vore_capacity + dupe.is_wet = is_wet //// Object-holding variables //struggle_messages_outside - strings diff --git a/modular_citadel/code/modules/vore/eating/living_vr.dm b/modular_citadel/code/modules/vore/eating/living_vr.dm index 2e6018f112..74ae0bfe35 100644 --- a/modular_citadel/code/modules/vore/eating/living_vr.dm +++ b/modular_citadel/code/modules/vore/eating/living_vr.dm @@ -1,15 +1,16 @@ ///////////////////// Mob Living ///////////////////// /mob/living var/digestable = FALSE // Can the mob be digested inside a belly? - var/obj/belly/vore_selected // Default to no vore capability. - var/list/vore_organs = list() // List of vore containers inside a mob + var/showvoreprefs = TRUE // Determines if the mechanical vore preferences button will be displayed on the mob or not. + var/obj/belly/vore_selected // Default to no vore capability. + var/list/vore_organs = list() // List of vore containers inside a mob var/devourable = FALSE // Can the mob be vored at all? -// var/feeding = FALSE // Are we going to feed someone else? - var/vore_taste = null // What the character tastes like +// var/feeding = FALSE // Are we going to feed someone else? + var/vore_taste = null // What the character tastes like var/no_vore = FALSE // If the character/mob can vore. - var/openpanel = 0 // Is the vore panel open? - var/noisy = FALSE // tummies are rumbly? - var/absorbed = FALSE //are we absorbed? + var/openpanel = 0 // Is the vore panel open? + var/noisy = FALSE // tummies are rumbly? + var/absorbed = FALSE //are we absorbed? var/next_preyloop // @@ -26,7 +27,8 @@ //Tries to load prefs if a client is present otherwise gives freebie stomach spawn(10 SECONDS) // long delay because the server delays in its startup. just on the safe side. - M.init_vore() + if(M) + M.init_vore() //Return 1 to hook-caller return 1 @@ -281,7 +283,7 @@ */ // -// Custom resist catches for /mob/living +// Our custom resist catches for /mob/living // /mob/living/proc/vore_process_resist() @@ -293,7 +295,7 @@ //Other overridden resists go here - return FALSE + return 0 // internal slimy button in case the loop stops playing but the player wants to hear it /mob/living/proc/preyloop_refresh() diff --git a/modular_citadel/code/modules/vore/eating/vore_vr.dm b/modular_citadel/code/modules/vore/eating/vore_vr.dm index 16366bbb14..32d19fc11b 100644 --- a/modular_citadel/code/modules/vore/eating/vore_vr.dm +++ b/modular_citadel/code/modules/vore/eating/vore_vr.dm @@ -28,7 +28,7 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE // The datum type bolted onto normal preferences datums for storing Vore stuff // -#define VORE_VERSION 2 +#define VORE_VERSION 3 GLOBAL_LIST_EMPTY(vore_preferences_datums) diff --git a/modular_citadel/code/modules/vore/eating/vorepanel_vr.dm b/modular_citadel/code/modules/vore/eating/vorepanel_vr.dm index 30209b6da2..bc30de6ca6 100644 --- a/modular_citadel/code/modules/vore/eating/vorepanel_vr.dm +++ b/modular_citadel/code/modules/vore/eating/vorepanel_vr.dm @@ -156,6 +156,10 @@ dat += "Name:" dat += " '[selected.name]'" + //Belly Type button + dat += "Has Flesh Noises?" + dat += "[selected.is_wet ? "Yes" : "No"]" + //Digest Mode Button dat += "
Belly Mode:" dat += " [selected.digest_mode]" @@ -457,6 +461,9 @@ selected.name = new_name + if(href_list["b_wetness"]) + selected.is_wet = !selected.is_wet + if(href_list["b_mode"]) var/list/menu_list = selected.digest_modes From 9cb42656756daed90e77d584a674be96d2463307 Mon Sep 17 00:00:00 2001 From: Ragolution Date: Mon, 18 Mar 2019 16:22:18 -0400 Subject: [PATCH 06/37] Improves operation console stuff Changes confusing wording on Optable console --- code/modules/surgery/advanced/revival.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/surgery/advanced/revival.dm b/code/modules/surgery/advanced/revival.dm index 085253e4c9..55d048db21 100644 --- a/code/modules/surgery/advanced/revival.dm +++ b/code/modules/surgery/advanced/revival.dm @@ -26,7 +26,7 @@ return TRUE /datum/surgery_step/revive - name = "repair body" + name = "electric stimulation" implements = list(/obj/item/twohanded/shockpaddles = 100, /obj/item/melee/baton = 75, /obj/item/gun/energy = 60) time = 120 From 81ba8ff40b33d07ceba1596e2253f715a5266c67 Mon Sep 17 00:00:00 2001 From: Ragolution Date: Tue, 19 Mar 2019 23:55:37 -0400 Subject: [PATCH 07/37] Update vent_clog.dm Works locally, like this. Fuck if I know. --- code/modules/events/vent_clog.dm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/code/modules/events/vent_clog.dm b/code/modules/events/vent_clog.dm index 3945a12a40..02d7596678 100644 --- a/code/modules/events/vent_clog.dm +++ b/code/modules/events/vent_clog.dm @@ -118,6 +118,9 @@ foam.start() CHECK_TICK +/datum/round_event/vent_clog/male/announce() + priority_announce("The scrubbers network is experiencing a backpressure surge. Some ejection of contents may occur.", "Atmospherics alert") + /datum/round_event/vent_clog/male/start() for(var/obj/machinery/atmospherics/components/unary/vent in vents) if(vent && vent.loc) @@ -130,6 +133,9 @@ foam.start() CHECK_TICK +/datum/round_event/vent_clog/female/announce() + priority_announce("The scrubbers network is experiencing a backpressure surge. Some ejection of contents may occur.", "Atmospherics alert") + /datum/round_event/vent_clog/female/start() for(var/obj/machinery/atmospherics/components/unary/vent in vents) if(vent && vent.loc) From 0b459ad06ffe1bef25c8ada7e24323004a3c42fc Mon Sep 17 00:00:00 2001 From: Ragolution Date: Wed, 20 Mar 2019 00:35:42 -0400 Subject: [PATCH 08/37] Fixes 200,000 runtimes during scrubber event thanks kevinz thanks kevinz thanks kevinz thanks kevinz thanks kevinz thanks kevinz thanks kevinz thanks kevinz thanks kevinz thanks kevinz thanks kevinz thanks kevinz thanks kevinz --- .../code/modules/reagents/reagents/cit_reagents.dm | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm b/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm index e5d2b49b37..1390417a5c 100644 --- a/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm +++ b/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm @@ -37,10 +37,17 @@ ..() dir = pick(1,2,4,8) -/datum/reagent/consumable/semen/reaction_turf(turf/T, reac_volume) +/* /datum/reagent/consumable/semen/reaction_turf(turf/T, reac_volume) if(!isspaceturf(T)) var/obj/effect/decal/cleanable/reagentdecal = new/obj/effect/decal/cleanable/semen(T) - reagentdecal.reagents.add_reagent("semen", reac_volume) + reagentdecal.reagents.add_reagent("semen", reac_volume) */ + +/datum/reagent/consumable/semen/reaction_turf(turf/T, reac_volume) + if(!isspaceturf(T)) + var/obj/effect/decal/cleanable/semen/S = locate() in T.contents + if(!S) + S = new/obj/effect/decal/cleanable/semen(T) + S.reagents.add_reagent("semen", reac_volume) /datum/reagent/consumable/femcum name = "Female Ejaculate" From f7807ceb737618fd38e61ba3ac9e3fcbc58fbe02 Mon Sep 17 00:00:00 2001 From: Ragolution Date: Wed, 20 Mar 2019 01:14:43 -0400 Subject: [PATCH 09/37] Hmm... --- .../code/modules/reagents/reagents/cit_reagents.dm | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm b/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm index 1390417a5c..30bf43bfea 100644 --- a/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm +++ b/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm @@ -40,14 +40,8 @@ /* /datum/reagent/consumable/semen/reaction_turf(turf/T, reac_volume) if(!isspaceturf(T)) var/obj/effect/decal/cleanable/reagentdecal = new/obj/effect/decal/cleanable/semen(T) - reagentdecal.reagents.add_reagent("semen", reac_volume) */ - -/datum/reagent/consumable/semen/reaction_turf(turf/T, reac_volume) - if(!isspaceturf(T)) - var/obj/effect/decal/cleanable/semen/S = locate() in T.contents - if(!S) - S = new/obj/effect/decal/cleanable/semen(T) - S.reagents.add_reagent("semen", reac_volume) + reagentdecal.reagents.add_reagent("semen", reac_volume) +*/ /datum/reagent/consumable/femcum name = "Female Ejaculate" From 793a8c5c44ad1b2aeccde91219ff1c05cf8bfef9 Mon Sep 17 00:00:00 2001 From: Ragolution Date: Wed, 20 Mar 2019 01:42:18 -0400 Subject: [PATCH 10/37] QoL naming changes It's MY CODE NOW, TRILBY. YOU CAN'ST STOPP ME --- code/modules/events/vent_clog.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/events/vent_clog.dm b/code/modules/events/vent_clog.dm index 02d7596678..f84fe2edb0 100644 --- a/code/modules/events/vent_clog.dm +++ b/code/modules/events/vent_clog.dm @@ -75,7 +75,7 @@ reagentsAmount = 250 /datum/round_event_control/vent_clog/beer - name = "Foamy beer stationwide" + name = "Clogged Vents: Beer" typepath = /datum/round_event/vent_clog/beer max_occurrences = 0 @@ -83,12 +83,12 @@ reagentsAmount = 100 /datum/round_event_control/vent_clog/plasma_decon - name = "Plasma decontamination" + name = "Anti-Plasma Flood" typepath = /datum/round_event/vent_clog/plasma_decon max_occurrences = 0 /datum/round_event_control/vent_clog/female - name = "FemCum stationwide" + name = "Clogged Vents; Girlcum" typepath = /datum/round_event/vent_clog/female max_occurrences = 0 @@ -96,7 +96,7 @@ reagentsAmount = 100 /datum/round_event_control/vent_clog/male - name = "Semen stationwide" + name = "Clogged Vents: Semen" typepath = /datum/round_event/vent_clog/male max_occurrences = 0 From ee9368cadb4e7ba36333a3099a1589aea2de5d61 Mon Sep 17 00:00:00 2001 From: Ragolution Date: Wed, 20 Mar 2019 20:08:07 -0400 Subject: [PATCH 11/37] why does ghomme help us is it because he feels bad for us real deepthink --- code/modules/events/vent_clog.dm | 4 ++-- code/modules/reagents/chemistry/reagents/other_reagents.dm | 2 +- .../code/modules/reagents/reagents/cit_reagents.dm | 6 ------ 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/code/modules/events/vent_clog.dm b/code/modules/events/vent_clog.dm index f84fe2edb0..86ede7f255 100644 --- a/code/modules/events/vent_clog.dm +++ b/code/modules/events/vent_clog.dm @@ -119,7 +119,7 @@ CHECK_TICK /datum/round_event/vent_clog/male/announce() - priority_announce("The scrubbers network is experiencing a backpressure surge. Some ejection of contents may occur.", "Atmospherics alert") + priority_announce("The scrubbers network is experiencing a backpressure surge. Some ejaculation of contents may occur.", "Atmospherics alert") /datum/round_event/vent_clog/male/start() for(var/obj/machinery/atmospherics/components/unary/vent in vents) @@ -134,7 +134,7 @@ CHECK_TICK /datum/round_event/vent_clog/female/announce() - priority_announce("The scrubbers network is experiencing a backpressure surge. Some ejection of contents may occur.", "Atmospherics alert") + priority_announce("The scrubbers network is experiencing a backpressure squirt. Some ejection of contents may occur.", "Atmospherics alert") /datum/round_event/vent_clog/female/start() for(var/obj/machinery/atmospherics/components/unary/vent in vents) diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 4b4f118a9c..15a2ef1cba 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -1251,7 +1251,7 @@ L.remove_trait(TRAIT_SLEEPIMMUNE, id) ..() -/datum/reagent/stimulum/on_mob_life(mob/living/carbon/M) +/datum/reagent/stimulum/on_mob_life(mob/living/carbon/M) M.adjustStaminaLoss(-2*REM, 0) current_cycle++ holder.remove_reagent(id, 0.99) //Gives time for the next tick of life(). diff --git a/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm b/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm index 30bf43bfea..ae77fbcfc0 100644 --- a/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm +++ b/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm @@ -37,12 +37,6 @@ ..() dir = pick(1,2,4,8) -/* /datum/reagent/consumable/semen/reaction_turf(turf/T, reac_volume) - if(!isspaceturf(T)) - var/obj/effect/decal/cleanable/reagentdecal = new/obj/effect/decal/cleanable/semen(T) - reagentdecal.reagents.add_reagent("semen", reac_volume) -*/ - /datum/reagent/consumable/femcum name = "Female Ejaculate" id = "femcum" From 0ffa3f6670ce6e1968792efd9fdbccec5aab4f74 Mon Sep 17 00:00:00 2001 From: Poojawa Date: Thu, 21 Mar 2019 15:05:58 -0500 Subject: [PATCH 12/37] carbon Oxygen toxicity --- .../mob/living/carbon/carbon_defines.dm | 1 + .../human/species_types/lizardpeople.dm | 3 +- code/modules/mob/living/carbon/life.dm | 20 +++++++++- code/modules/surgery/organs/lungs.dm | 36 +++++++++++++++++- icons/obj/surgery.dmi | Bin 33800 -> 33847 bytes 5 files changed, 55 insertions(+), 5 deletions(-) diff --git a/code/modules/mob/living/carbon/carbon_defines.dm b/code/modules/mob/living/carbon/carbon_defines.dm index cc01a83a15..f782289e18 100644 --- a/code/modules/mob/living/carbon/carbon_defines.dm +++ b/code/modules/mob/living/carbon/carbon_defines.dm @@ -34,6 +34,7 @@ var/failed_last_breath = 0 //This is used to determine if the mob failed a breath. If they did fail a brath, they will attempt to breathe each tick, otherwise just once per 4 ticks. var/co2overloadtime = null + var/o2overloadtime = null //for Ash walker's weaker lungs, and future atmosia hazards var/temperature_resistance = T0C+75 var/obj/item/reagent_containers/food/snacks/meat/slab/type_of_meat = /obj/item/reagent_containers/food/snacks/meat/slab diff --git a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm index e3164e0dcb..b851552dc5 100644 --- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm @@ -91,6 +91,7 @@ id = "ashlizard" limbs_id = "lizard" species_traits = list(MUTCOLORS,EYECOLOR,LIPS,DIGITIGRADE) - inherent_traits = list(TRAIT_NOGUNS,TRAIT_NOBREATH) + inherent_traits = list(TRAIT_NOGUNS) + mutantlungs = /obj/item/organ/lungs/ashwalker burnmod = 0.9 brutemod = 0.9 \ No newline at end of file diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index a2f6a469d9..903b136996 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -141,6 +141,7 @@ return 0 var/safe_oxy_min = 16 + var/safe_oxy_max = 50 var/safe_co2_max = 10 var/safe_tox_max = 0.05 var/SA_para_min = 1 @@ -156,6 +157,19 @@ //OXYGEN + if(O2_partialpressure > safe_oxy_max) // Too much Oxygen - blatant CO2 effect copy/pasta + if(!o2overloadtime) + o2overloadtime = world.time + else if(world.time - o2overloadtime > 120) + Dizzy(10) // better than a minute of you're fucked KO, but certainly a wake up call. Honk. + adjustOxyLoss(3) + if(world.time - o2overloadtime > 300) + adjustOxyLoss(8) + if(prob(20)) + emote("cough") + throw_alert("too_much_oxy", /obj/screen/alert/too_much_oxy) + SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "suffocation", /datum/mood_event/suffocation) + if(O2_partialpressure < safe_oxy_min) //Not enough oxygen if(prob(20)) emote("gasp") @@ -167,11 +181,13 @@ else adjustOxyLoss(3) failed_last_breath = 1 - throw_alert("not_enough_oxy", /obj/screen/alert/not_enough_oxy) - SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "suffocation", /datum/mood_event/suffocation) + if(!o2overloadtime) + throw_alert("not_enough_oxy", /obj/screen/alert/not_enough_oxy) + SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "suffocation", /datum/mood_event/suffocation) else //Enough oxygen failed_last_breath = 0 + o2overloadtime = 0 //reset our counter for this too if(health >= crit_threshold) adjustOxyLoss(-5) oxygen_used = breath_gases[/datum/gas/oxygen][MOLES] diff --git a/code/modules/surgery/organs/lungs.dm b/code/modules/surgery/organs/lungs.dm index 6ec1ea12d9..56aa715190 100644 --- a/code/modules/surgery/organs/lungs.dm +++ b/code/modules/surgery/organs/lungs.dm @@ -9,7 +9,7 @@ //Breath damage var/safe_oxygen_min = 16 // Minimum safe partial pressure of O2, in kPa - var/safe_oxygen_max = 0 + var/safe_oxygen_max = 50 // Too much of a good thing, in kPa as well. var/safe_nitro_min = 0 var/safe_nitro_max = 0 var/safe_co2_min = 0 @@ -97,11 +97,25 @@ //Too much oxygen! //Yes, some species may not like it. if(safe_oxygen_max) - if(O2_pp > safe_oxygen_max) + if((O2_pp > safe_oxygen_max) && safe_oxygen_max == 0) //I guess plasma men technically need to have a check. var/ratio = (breath_gases[/datum/gas/oxygen][MOLES]/safe_oxygen_max) * 10 H.apply_damage_type(CLAMP(ratio, oxy_breath_dam_min, oxy_breath_dam_max), oxy_damage_type) H.throw_alert("too_much_oxy", /obj/screen/alert/too_much_oxy) + + else if((O2_pp > safe_oxygen_max) && !(safe_oxygen_max == 0)) //Why yes, this is like too much CO2 and spahget. Dirty lizards. + if(!H.o2overloadtime) + H.o2overloadtime = world.time + else if(world.time - H.o2overloadtime > 120) + H.Dizzy(10) // better than a minute of you're fucked KO, but certainly a wake up call. Honk. + H.adjustOxyLoss(3) + if(world.time - H.o2overloadtime > 300) + H.adjustOxyLoss(8) + if(prob(20)) + H.emote("cough") + H.throw_alert("too_much_oxy", /obj/screen/alert/too_much_oxy) + else + H.o2overloadtime = 0 H.clear_alert("too_much_oxy") //Too little oxygen! @@ -129,6 +143,7 @@ var/ratio = (breath_gases[/datum/gas/nitrogen][MOLES]/safe_nitro_max) * 10 H.apply_damage_type(CLAMP(ratio, nitro_breath_dam_min, nitro_breath_dam_max), nitro_damage_type) H.throw_alert("too_much_nitro", /obj/screen/alert/too_much_nitro) + H.losebreath += 2 else H.clear_alert("too_much_nitro") @@ -407,7 +422,24 @@ icon_state = "lungs-c-u" safe_toxins_max = 20 safe_co2_max = 20 + safe_oxygen_max = 250 cold_level_1_threshold = 200 cold_level_2_threshold = 140 cold_level_3_threshold = 100 + +/obj/item/organ/lungs/ashwalker + name = "ash lungs" + desc = "blackened lungs identical from specimens recovered from lavaland, unsuited to higher air pressures." + icon_state = "lungs-ll" + safe_oxygen_min = 3 //able to handle much thinner oxygen, something something ash storm adaptation + safe_oxygen_max = 18 // Air standard is 22kpA of O2, LL is 14kpA + safe_nitro_max = 28 // Air standard is 82kpA of N2, LL is 23kpA + + cold_level_1_threshold = 280 // Ash Lizards can't take the cold very well, station air is only just warm enough + cold_level_2_threshold = 240 + cold_level_3_threshold = 200 + + heat_level_1_threshold = 400 // better adapted for heat, obv. Lavaland standard is 300 + heat_level_2_threshold = 600 // up 200 from level 1, 1000 is silly but w/e for level 3 + diff --git a/icons/obj/surgery.dmi b/icons/obj/surgery.dmi index e3a0d595a62a89c0933667f4befaf34db586053b..4ab614cf83ab404dc5a27dc2e6c3710307ea194d 100755 GIT binary patch literal 33847 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 VN*Q9w^#ut6WF-|OO2rNQ{s&{n!>#}T literal 33800 zcmb@tWmpwo^e;Y#LpLIwf^>ICHUF-Z#P-W> zxFQTapi~)T(y4m_I!e-(a|LsdGz%6<*cHbzI}hvNXX3cJ+&g3 zxx7vG#M1+KX|eE`X3MSHh3 zZPh}(srp28nGQ}v3iB^7KHQ&K&VUc6{`0{)g@@X$uNe9Ob$WO4b(959RuZ&dztQGc zJ+PC;C@_+SKbGDVlhe1*lJIL#*_W?I`nfWf;uk3g(8t$keUQ&8dN7Cwx^Y1ANZU_| zP|H)kA202I!_9m(aRD;DhhNWPNDfBQOHvYgT1Rpnwo2>8t>~pV9l7Cu=LH#6U&Z}< zO(^0$xqsxzzD`Begl5``zhV!y?)i%zUsuv^e5umUM(_sJBN%FIBldwJ=hq8~q2#mY zlas%`0;T&EcTe}0Tnb}lD4WoKQ}o>UttZIXzrCXw-kwOBd9;_%kdmbOK11B9*bHy^ zIJmi!{OMiz`yd0fw)T!-tkhVikOX-bN4)DS%e_tQAMN}jkI*=FT+?gpHPoG;`WhY& zu=b@{G8~NFA5F|-DdX(yf6Fj^@XCygi zDlq5PORkW})icE7(YcoOVt|qTshgq1rxdqF0~UNbCAA*5nh&2J*drqwNIeRTDA}~@ z^S=6ZFps>IOFa6AiAwsXrvI#2v7&~Ce}KxnAf#X^5f*bbz_oAnz1Sj<=+<5)Fi>>F z%(PAxNcs1rFq0sy9{?BubtU=d?=ttZd;>_mktnl?+d>}aJZFWx(Ufroo-|q~c?$>x zj*^=^I>eYC7Rr17D=1o~46PE`)@!J5Z~Me3D>J}Dzd z2|IR@>J$E~J14#}^nsd!LZ7eLCN?f^nwN7%G{t=|AYmQm{C*6CmoC8l)jm`Rzzply zE)t(@f_xYzm33oFfH;l}C6@!?mS_jG)+Z$MKZSCy5Ij2bRUOoWc zfh=X^`2M4k-`^U_+G}?=Ifx|4ENBW%mm~}C*oFikk(W|!<~gGev}Ti)bw*Hsmku2G zq{jh!SA^b@%q*7D{J3IT*vF67)^>Il`!nt{=O;c2Bf$fyBTp_`b6)*O{y;BH{WJm% z*sXJ(7gZ^Lne)0ez_$ft*Pb1R%8(x=g|Zb zEAc%!Tp7}me}=w#!i!pJWmd%WUHvpI`{o@|uGq@fM#PplA|k>;TU*WNVAy{kBqd9i)6NusB$dP8f$;UzOiz>}j4utJhRIR7kat+!xpw+BYUb`DBa{rP zh{c3C?JsQJ`SnpCB5&&-TphK2yz~EIKg8x-;TVAIO(vh8I3Q>@U2`q35q`Tbo_8gC zluh>d$rC(}5yE8XTt+acf|;NSe*OiDh;d+=!gFh|WB7H`56`V(bs#P6xQyqcF^H#|Y@oxl5eZRtl6i#FwLXUo70F3V)y$oz zmP53Ee$2%5z^YGl3gOIwB)YTUWLk@a0zW5s(SW)jPhDbEl~v!px+jki<_iUPhZ7QR zZ?774i_EZ}@84_v{z5GtK{YHspvF0{%m0;wZMYXMM|)a|wF6~=s>i=Us%jhKlU7qg z{7d=W3y*CY(%d+x?{T;w0l-uWNT!Cqhzz`$2SttH z?%GXf=ClhmK=YkF;-ULj*r8LOVP^)NrC-cTZ<0;&0O6Q6k=0_#Z@cKE;=uw0@=r0y zFKX}^gH|+uUY6IwmxE=yK(iArZ^nuANPX44hFWN&{}Fu#{9CLJMS%RDBut`+zuFto z7gUFhr=4E98`lj!#-rfH{1K{|agn)yH2=WN%uK4voaN-=LfP8-acEeW`~Hjo(7vIb z!tXm?NOE^m{y3cY^yHEtE1Tu-xOwhESRi-n!J7VRao-1AO-3=7h4x(eFn*5>HAAcV z3|wh(1zjCYSXe<>9(nn7xRR1eJv&m)3e(N}iilFif}1y6O&%o=H44zG7XmGOKQB8{ zsz#WUgyg-3FR|dmQr__giu-N^Q;`HTv@gqEJu-oq7#YQU;xdRgYzw;E86VdJU{8mN zI|z!H2wz#C!xHLU?N5v!fD6jx_3LN)`c~ezBeE!bF|m5qJvL4Iz^~ZmyyVYExu<7^ zkS>$Xr{goTZ)1solRs76rY9Msp5-rN<-;&>T96G54dhq#WEZ@=>{@NOL^k}px3>_R z({96>f20qnzbR?eLMmKLJI5brobc(EVvyRucd-Ew5Brq?bNv&nckUzFO*3V1{q74m zoviE1&+6-{nEie3-`&gPLLp_V6^t7N&MV*k(r$rQ?=iT3TO~-py&3#01h=2}t9Ux( z&h@g4-#so3-+XDIk?_ge!|wGn1Ii2`h&z$ztHr6Ys1x-E?5>s>nG8M7Cr6tewq?OSw3T7b6mEk!WEevM@0HEH<} zV)IG2?6#O&z<$I`Q)3Nvt%~Y7+8XKTA>{~#qZ%%1vxP8;Nl0d`v)g#OgO{WON;lh= zQp%6sbQCoQE)+>Q%v(7#&ZO#|T!DJ#?d?qkF#HPY!Wqxc~jJhLVrbxH# zxyUcJM0$mFsl;=6C z`_za3X0;tRWwW9E+l%i2u&$CouJmrI%upP35-BsNt6&sXt^jnV!JYZvNKV4ReEoU{ z7DG2^1QXNKqZxt`Bx7S^qxQlj*z78fSx*2)E&aHfTBo7-*=%^FF#c0LW_x{vC9~e* z^&dkcZ><#gb42m}9sbdX(SjucHMp@pLErH3!~hh+<%i`5XImqx=H`s|>Z2ojAXz_G znw5nf_D|I0Cz2^=)uU|HRe#lBfsA-f)|O z*W^Q+v?vkkDu-@}w=bT?w0vUMLh$nfCs)}tF;AoW-Q0WUWtWW6)W9B!R|Ii!ohan( z=Ry`TCn@1G3_;6oIyH556=Ofto+%<;GeczQEA;2(Ae#M9n*?{9`R1QbDzG-k!8zoM z7cVG9EzyG{0??y~7>1eJLy>Ef8}CdYZL(bV0JF9u%|_#9p>$` z)ppN7t5I4k-OUr$nb**D!XpF|?YVLziSU8tH#h|3(M86Puj{WKl%DX+wgx@{txe?J z?N$A?NL{Y5CF41v3Z?YIvx7YXwaiUu`*{>nJyM5qzGAwjXrEc7AJEf2gaRh|V%i;& z?i*-9$ZO)5Snmcu5z>y14sq|@!XMncQ>$~ew3*WWbLFkA^q|=fCr*#XVP%FqVkK5E z7yis|uS>~^?_1!t@lnQpz_54{2pQowb z15^@RD9<;mfs>#^TuU%?qJ31@bG?X1&J6%2t!@xmI&q+)f}Wo`d?!qjp6{z_7TiEI0vu?fCAxjXGeE$jNW472fB>qmRFCpzphHz@Wm%cHp~#(7aT6m7M3mzOQjl4k2QkCU5qsc@+L>=hQ(CfyYUt3uEqfXTxDhVXREQMV~0KI z4M?MZTPp+w$=qD*VcFT)rE3Nl=CydQPF>dfAR5_x@DhS4wi9kY-tChI2P)uWF`Ey- zEq^&;5>rx!%2^St?1y)_^4-Ye~~74ZlJFg2_u1pKr{mLDwP8x5lw zt!McxL4d(*X__vT4?z1>|JD9%n6&>T_N|SbotSU=!?4iHcvO=dN|XR?fb5<{)jr5R zNgE4&z;OrfX9z+jf-gzJw~>iGSGG-XllzT3A0x-=0+|--XsQ?e4M%(G!4K6pPWy;+ z5D}qUM#bz#`orcm;0~CA)`@9uc)0#GQ2XXPXp4caKY^SSsp{a9qh_lKysUk)w#LtL zHCKE-0Wn25WjfJSdsn=i{2`z{T&(YguJ78$osEL0b-z8F!^jORV)9=YujlHaFvF9pDuVln z(2}k^bc}ufDdoi>#zO6Ze#x#g2>yPx`StZ#ABBg*My+k zw(L^O?>BSG=lS71#fdX~4;egD4w7+wBH(*Xyy%d{(< z^;s?%kv(GP~n2U+}=Lja_^QIZ5vxA%Eby`i2IcWv@;yt(Zv`2TdU~icgr?q zB*O%*aM9S)sJI)0MIkT=BF&!JjR8s#7fM>%MRUQI&~%>ev@ZP6#jf|&)m&(yHwDkX zhXtd8_(4nbS+k^~OhIiM0AOSG=zo)xv`JsNT?FAHk2!!iGc@r5vhuy&<*jkJa?K~~ zH?cSLd|1*69ekp#!Tvu+in=w?oqdrG0gpuAI4KA@-3>0aNhh9ykv%X~d0o;YY`saN z<8{MO&FjZ`a!wz8`!%6`%xogj>*$@F8KIs9>}f%74*4(!K%7P1-lF74`fmHMw7ZWP z`)crpPMbkC>Lev7>gMKY`iDu~(iiWJ6Nms{ckd5mkkunyPEI%YIW;G6tYGF)0?UYc zBGuAjE=>LGwIPNWkq;bx-C<9wfcvfT_i04ByFDqamuU5S5k-ic1e5mxd`+})X}DgU zrWLMBu)@*QUDs{8wQNN5#+R_<`uyYBayMW^>ZOtWZtcBoec<_+DxH0@_hE(%nwV!r zX9gGM`DVjsPqIJe7?}7pg!vN+Mb8we%G$f1M6N7HK0bZZ`%E3W#8Ntj_$gx_P{oU(VE0Te+ne z#d7M8GrqfPF(KH6lME9N&My%`A))e$g!p*!c!$RF7DIXO7Z|u_6;^WZKK{_ADqB%z z04N@!u>hY`2wuM@?48TMq;0)`Pl}A%pOR2hFHxH1Jycrmspb2KD_8VV-k?m;Ca|&a zp4&V=F6bk4deiKZZzW2vwRkd3GQk1Zup(`2Y<^M!K){3au0RDCi}Gr?Od8KCig=WO z*k@4cTLyDKua7Fo~9FbiL+NBy=|vfm~ynQUa| z<%rZ_$iXDFe~3DxsLU-Zc{&bfQR>MvQOAB1N|LV0`uEdRo=%QTNqGe(@LY`BIi$P| z{+b85zQJ!-IgVwHx^g{&?;|uwmv<@UG}e|#xV0k0BI+{Q=X=r`w?+tB_%uUg*&^tptZH*Ul>3Pu2CHFuPA4G+deNqF%ONm zR-h)TK9 z%N&+}lb4@NfpVI5&EK|_h%YRjRf1{c{nIUCzIXmuXbJO7RCXE0*76*)P6hw;Z9z+5L70=u`I3zGWZ1EvaYhcRF0g6;k; z7B)9GbHDbS^3m*mY{_xy;NZZ{>3Hop-`?K)T{tEtCLO{L%7UV6H^Ll*^lV2mxK?YF zoG?M~l@kBfauT??I!XZbA-CpQ^3HtOLTO>3enH3NrKRn?TYXLRy$xH`yd5~-o35Os z=mYmqyu8ET+9}A$aOSD*{qe;Q$^RVihisx-E%X1dTz)9{#SXTJ;VM3m8k`FD z?|W&BMhBw;LFDb1CQr;}trru~iT=N)w_wwIr!6k`lPRr2s*2S~XIXyIZGcV`m`*lt z%Gs_IJ$&4ypppWfYcz~sA(rUc>Q4^njDNcZFR~y4!MC5@Q?c@{Nw>|Z#3yeh)+SCz zdW^*&0EO#f_kw@H@o6a4JKqlc=3fU`7BmIUuUhE5jNN%~SeGE#qtu@Jr&fGyI@wBY zD0y+;)5owzZkbqD(kW#f=NBv415)hsK1}Tb&69AwV79gvD=w1hMF%Ps?gp>h+Otpa z%lPt*j%E7fP1^ebKe;mN0e^6CPC*Mc_EypwfW)sV5w$;QCxr!mfE``LVYxk6?@Q=| zpFH{9r88u6Vi+)++nGbT<5Xwr#ICZ$gY{VDM!|{w-&N0Zrdk}`)r5E|n>y2?KOypF zq1)-tbW1(ppKjckCa(O&GdXNjH?Rsx&3^@XHl=?n&&aSIITQ9EKNs|>7t^0j*e(v>K zM=Ew?4cZI`!6POelGxxSp4M;QxW-p_UVpK6#&N@Edk)7)a+TvoVg}*>a+T$Y`%gGT z0jD*FEfI9jqqql-r?RQpuyGE`CW0Kbo3@4#CmdgKLG@@^DQmfuz}7#KoW3SEzIzkJ zM1KYbB5X9&t_=%M5|mZfD+VTEpDhPQU$e>pAUQ8018^JHjk=sTUn9%k2QSOms12b3SPc?Rxvd!LJ!T(7 zPOxBuAF2WP5i4LQX+7n4MWo8Qx>lZ{)h#>hg#DJL&_$lvA<~I5{wpS<&qB6J6lO>Z zR4OBY_(1t(DyE?!wZB*wukKluU4VaG$IGf|WgQl%qNY~2nd>MNh#3f6`B#>tg}9e& zTD@8I8qsklUonU>t?4)&gRj-I@R zt)y4~8xE|roB+u8>_8mwoTrYk8XL16s2eYpH;<7XYF}bf8|ovZbE_7e5o&Fzy11RD zIcMj+g0$nw0wt~|^BcR@u~iR)1U#Z;`O2W^Aw`?n2K9Hq3uzScMG^IEPjLMzDerJ> z+pgHKlUfQl1jfGFk<~k>#1B6Azd<;329{DF>9*GN7!hhJ40+dCO3Ybv{ye+ z(@U$JGeCs!^S$lJacMK5BP_!eb-M4o_o?wkN7!6~cEy92{e; zRu+2QM}J+>CT3+}HDTJ$9diq=^CJotC;o~E?=gLKaAp-sqb$Fhw!NDxE;@#u#>lph zw1LY23do;B`j^)0G3l_$i4XbNHW8ULX!l#G0^?+`$BY%@FSh?oF25hgK9&U~ zcq8pUlMK>>!2bg>mj;Z?zrA+dc#JGn0B!%BIp(OAAt){G*LCeKti&sn+WA&00;J~r zzXS$>Ujj?YT+c$lwY*`nQBocyY^RrmUkns7_aK4CtyTc-|M$finByAr8j6%$r{WfTO`83PM z>W1$pFFYQs%)pnrS@=)yKb!Z35fJ2pYBVi zI za7>`US^y$>hLiEG>-&^}s3G5$|JR)ALHx6y3GZ4mXGgwjnOV;MjOaWYs2_G)3wbqg zpy$agN$q1}D@wEM(Uh6Fboy%+Wj@HvH~ZIZpDG6zBpQiF^VXNJb<>|`|XQo4fziXaAho0@e(Z!`=7Ma?Y^yU7ozyBI{dK!=5e><6Q!wj_2 zF{uc#;5=0-CKIH)@g=QHbJCPUNEB+sfMc>k^KG03;KMz;liwl0cLTA@)}6PFGqPtL zP#>(b_UG=Okw2Miy zwxxQZ>1bZt`G~u?zFFJLgydM-+^s)y;Mc9&7K3TnRW-v($r)t3A%BX9=@}x)^+++l zt&Nxg6=Ze^V$!v@9!X{%G=^q(m@TE4vr1TT&xmSEn-}}`N4axB;nN;mS6(JC*Ja~8 zUoT#@A6c$_oZc@&x-BijMr(lB{37no1kRaQ?B~Wa@y{SpcEBeS{}+3ch@@^1ty|hE z=5Hu_P{Nmaj1>e_t~xuVw7&fs3mdxTVGT(&EYYJP{Bl8g&Z5iN#WEtpvG&u_X_M}k z^nG;FUiR?BmbRPqd8u$sC9ZJ9E(UBjMm*r_G|%Fwm=an5=Rt`-G)2z@@8hA|8 zl1AozxA2ORpDjmYoM6z_43&!50@WOH zEFCOK2m^GiZ8JqOQcI>^0zq1Y(=PNuj=a-ThH_qJayN!@Yt#*gVd6hGh={_@hye4Y z^|s`!5NRyENAwvYJG!|v9cnjJdd#FmCk#OkVDfvoeKeY~1Kmqm_H11@ znz`fdkbKJQ_i*9@;(QKQD9M1c%l#7m3@Pmx7ICIfuW>O8g@M6vQsbv!Zh8Y;92^pQ zI~xb;)VQ$rv!%bCujAo5tpK3*;J~xdVsTSzys!9!?*_}^G@mRZ@Flt|GvAdexbVc` zG1~DfDaB}qSU9kJJ2F|ava|Ufzkm=^4^Oe2u&;ItqWakuGR8-xi%sN1^nFcR3vH#x zED$dlhxjh}{j}jFZ>jodcH3XH?pU}G3_%^55~K{z@UyWIpX zQje#r_mb&5JV!d{A%Lz}_b^EA#*;5Hrg`&%XsA5x%Rj#x4_n}gDK;^^stTs@V&B{i z9UuA%7-GfA?uUudh&?{|(c0Pp6vpuNzEqfhu?~e5Q=k@w5{*h0&mdl!a1Q4$m~-}M zpW;T8y@Q?RpUg2jz4`(hJ#)2a`goGjHRlcJ-Q#hFr%_E+m!GbvNA@7dh1=`nMNLiw z?0n0V8`AggYdrBbYO4I>o50VM8o!`tCaZfWsKp4$ct#q2CspP=D5DZ<~%^h)R4e0gQ2{T2k z7^T_2I&n@IG{O#9BkT$+xUcp09&(c*u(PcQ#O2$K#%`=pEd7hH| zAVQCs&PUSk;|Sn@$%s``y!;p$Pp5!r`VuTrfY;erEnGfe<=c@}Ue&x3Z(%&=QAsCp z)Ms@B$G=^5_+-P{g1r~1g;|RfC z=31gm`uW`eH?GL$+an&gczl)F;RAN*^ueQd0}BuRQXU1Y(kUX#j--#$I<`4L7{9K4 z?S}Gn)dksCSNo(@ekV`=I75(-A)o~VI96LBCI(g++7g@+WaA!z=ghtwOrW{AaeQ5C z1Oh2$SPp*@FxKU~!O6^7GX{0}|kTsN6_d8tkzLRS10;X{l{q}HvMc{`#8WZ+!QjEmAhgaEFE zlT#x%c~dpiO&dGvLaY$=lg@=y1@L#Z{8oup+bj7Ic|#)(1hOuL{9JEay-b?u+>-!y z+TLJcb=u)A(tg2+t`2E)s@1&-Ck1q0Y^mKuxR!1OEqBW%gGkf&%KMG_F~RYN{L*8e ztv8HUdjcC{-p$7-kD$t9`bf;U$FJoPsMEBzmExSB(1HSHaz0ah*k_oD?ij_{4lTup zbn+2dLtNrFm_I(hYo5BXD=?;M|CDq@O!}x_#+{5XC5-rhHoC+t&F3b}XFq2o6uKh) z2vV`WMsi!+!-#=teq{Rh%LjHzzf=a0J*zU+tl!Zxq=$fJ2V^YR|n-#J$0f3uQK?70xw$n&?8&k2x!r3z>U?Jd8vnpOC4 zc8FE!-qisaWitz(ZXj8aLsw+iX^oaySIL#SMr-aPz``OlzB>A}zYy-HObWca+kIiN zm{WfKu1IC4_v%vd(^JHQ3${0?i`QkP-&1-3ZeNF4qtlzO!8Kgks-_bUuCx%$c`9d{ ztqJAyKC6R$IPEkOhwCVv)H5b}XznJX`%Ag2s#=ag>X8gN2M3Nz7S}ZCw_}qrwIR>4 zQHf8q4cavkq>#c>B0ky%^y&+*-$YpE8&+H4R>ESh7V@}4?t^As4&w6x^%4s^HV9S5LF`h0eSy5vA=(()i06KG=3{!QC+vjvu6Mdt5~b+B=XmlyNGIhtmBFv6Zy?STWjof zn=xVT7-ivCJ&|O5g0=q9-1xSf;pQo7;q~o(89HStLURtJ*Zd+*^}b-GKWHB^7uL)g zZw1hVV}kEx;?d(67xk6zy4|$OK_|Go2HtBL9LAx0(&o0J*R?y;2~>&9IRmkKR@h{B zd$p4IZ%?oQ@Lyl^4bIPWx!$b3-#W+v^_DbdLemx)n{?Z{=xw(Bsl5OA*%KFwp5R7i z*~eCv%g2O$6Is82*QdVEr>FBG(^muq$pPZ6)hOx|oMGmu{3+}3z5YBmI;t=u%h0_N z%7*xuh=KmR649xGDQhJjfz_rQLbdT*ida-@;O$@?i)ebg62>YkCpKFe&c{!m9+?$& zev*vmk6yyjq}6-j#fVrv-ZU`%ZKmcliq;7V55 z{&8L>YT&ws_KwuGTFm1LVb}aOfKG%X2(xtIjxvw+5gU<~*=dMTInrMbfuE7?+*v_{ zA&)i6eyIV`yKz~+>F$kU{@SxXA;Ak6WmEmFctA`R45%IBN2G<}eVFuSU%>}ppatdN zO?%9P@j50j<@pkONATotc=uJ|th;Ocg63`k-KvZr+Ka89B$tzB5eJ4oEjpK3>MlMU z_U?iBR9lOcd4-B{?Hx`Vy0nrW5A{=6<#WCe9wjM4fE!N(fcPCtZ$8tfV9oZBbvs+I z7eB3(hms%^ewKs!z}LDGF}<84wp4CV$>csK{I2k>e^Ue-)s9J;&hGBepTi#A)bvE* z)6>6GC!gbDt36|_AXRsy>V6iSs%Z!Br?aqJio$W5ZA$y*>Y7MxN#az({#_m&KJFP| zl#!8{2}GdW@$6)@PtVREfGXdedG*!J`jl1Ea?tI;ELb;&$lf7Z^v+p0`Sv$MohcPJ zRK`+E$`$RsJ@>V6I%KPfc8xIDNhnk@K&au2>{@sFBV!{k5#ZMHGAg5YJf41-(_ySK zahW%#FXI|(s2la+3U8xqgjz2#g=i85H)`1prub3mhjX3h#{mJHJ?J@OIp^rkgo^Qb z4TEXCS(!6cmAY({9y;#D0kE~|G+jHve7Gj{x4pepDJEQRR??V}uP4$$DLA~$OwXJI zI~bPEdt(3U@?_^G~6)($*!2J@HfxSI@>)qvi{hMcm zPh)cAgBJYW_@Iz?c3cl}&ySXaFB6Ot4(gO8*vT?ZwkwQo3ajdK<{CBv(!^w3nVqvS z9v|K%oDwQJzYwXIJYiup!j(LHXR6oH6xf6xIcKzg(#B4E_VKJb+|x@j$o)}HNcyg> zH!lr!0X<7$jMyWwcIOgV6K(Og;%^BA@>nkf0qg>{El#iKtK+VsKM%T#zjk>lJxIW=V}roYLWYC@u&o?_LcE+$1vb(dcQmvlmu#L%;HNb3 zv@?H+FBl71{ITcZ-0cDFSE$bfh@i$JtHXi7smm1d)_rI*D6MKTT#T0$ChsryrWMOy zj=0Rkm&*p77XEebnUK-1qQYsC>Gnm?iMLmhVuq9+$NrIX76^N52ZX&wxWCMabyA_j zFC?FK^44wI(%?k`$7gX~nzTa8^+LQ^>dRYequtf3ng_&m$2`A`sxCu*;|)p5SNHNUdSzr* zht?tCzf*7{*1EQGf`f?2P+-~W+Vxh>vSR%Ji5N)$j;cwo`piY%kGswgjktBFS7f67 zS6!zXUwpYti0ot)*DJWR78n9b(!cqpv8l`q-2$Vdh%ungE*3)ZgkL6tbg!RH1{?21QxK8VR2{q_^D6JX+6)oX>?qDrqa=-rY6M~ zSzTK6qH%!SOKrk$-@dIJ9umsk#P;|-8Tu4##EEx-p1fw4I6A5ua6il7sNTQ)jxk!@ z2LO8%uxDT(@+1c*x(~fw2ddR$``FTh~TBJ9rVR zhEuBWzVrd6UTh6jpgRKY{!p=phl5TBHx9EpIqC1bJ+`!?Cf|)rX-tbe1_KvM7wWU|~B|ff?9jA}1iqzpP z5!P`h(Xj$wHs(|RJM|Nx=yFY1opPRT0K37+GWC=u7(~!C9QU$Rb3dxGs3_T>2%U{_ z{Z5|5sOqZebq#~UC@$LAfMdR+oc+^BIiv!S?;4vd+}w!AJp5GuY!;k{L3A>bFE2!5ll{Y^5_ z8y;j0zEWK7dwB6F%cCmz#B{$0%a8I`dXm|%v>~-@o=m-o0s=|mSxFc`i#CGeFM78P zBPSBz_ni^;fS-n#`nqgHwka$9oK-fLeul^(J^$y3tP_U#Gl_<%`b^^LD~0q5gw`z( zR~S>u8CYv~Q=*-lo?w;H00#$Li=FD$@5Dh~6J8-gvR_Ih?0@lTx2{9Dje7Lh6Jiv-oYN+~lh+HDu1`09GWv$`$MrOtL>STA;8#Ef`EV zUw!SmLbJS2JzquMCm`-Cx9-!m=I46bfp;{et{c35pl{4 zqPu<>3PI1i8*gwIJ-=%7KoiU!KFI$5Tw-(slhhWiC8J3HYf8kK-O9j$EC7%X=RnLQ zEm%jr!Oi&gL(3C`Qjh(4%E*20EWsA_*NrUl(@tkJ;W@#Bi8*zbNQf=4NbkN=#C6`F z5t_ehkobOupJf2ex_b)c!--h$q=Nw2^w|JV3DX7QzRC^3E|DUi+05;UgM!Q=c~*); z>*B4$+SgS+?0&lX^cKuIr(U=k_tJ|9;B;6#MUUdh_`B--{^_T%2_V5UZ(J1l6l@V=l|@~ zgtwq6tnRG7??m8pXUalkRKMIpbiL#hp9VjU&YcHSAI>HXf``1t57|%WSi{y$k zc+GTkc>|?2%?Fadf{UTCYfzY3i|hB3yWPO|aFNSguu?l0`X9f7w;}4f3&A;~d&_6; ztXM!bLjr5vAo{ORVB%MO%iJj0?%{pze&e(a>kZzC4=7X+1wTH$gwh57sKptLk1Bt{ zcrL^@T({AW*4=^x`FbSL#~$7C3LaL#);`gtUvgyd{AGLY5QV8?p33NyJ8Yc*&Cg^g z>3)BJV_;ySNf}*A8o6>oHo-`40rGx&6XTFBX@Sklir)?1mlAjWGAkhILAbq#8Afp) z{R25lMxkh6^5N;20M{gK-X3%3%{rclDyA`QS89zNe(vl4hV_8|Wx^XDEI586DP&?T z!uft!{xZWGZ$9CS5(OBwq`dw^u*Sy(WYo(`!5#NRb;t06{rSdsv+mJ-TQo4?4nmx> zmi}1pa7ToMhAn5?DlNccb`aJ>M+CgO^9|7&LhYXvxDCr-OkN#zN!)(i*!mJ9TYfe{ zkId89)Y63E{u0MK#>FPfE~XIA&rfzWQ?|iqo);(NehgguB~IvNa#kw{}SZ_;M!yPJZ)sADmZ` znA$uLggD3eU}ek&nP`OG=gM4smY|z=It9FI+8MoH(Gp)CJwESzLzU56U)D6w`4;Q} z=J;_o>5XD?S#zgf%5jhD)pa~+uU4NeXhzq49mOqBUK^6yBHYMXhHM5lS?YvBsAUNZ z!0ZDk4td0mBu9K3xBwo|SU=oF)I{Z+&Fk2*%8}SX*1T7J5T@_6JmN`YOnHI1Y{*8b z!~@)R<~WAugy_1@48sNtT;)BR%6=oi%-b{sT#$2eIuXzO7-l|D<*iwLMJGYACW`M8 zUCG6Z30QChm2vT^DBBQVY7jRue@OVOKp%Mi46r{dXPlG5i%#{u49NT)MTbYzrq0| zoAKq(BNdDOkaU}w_@sR&NIgT0(97b2Kx)uZP$;CdHJD-eMjzOqumqbxjR%t?5Wsk8 zW!foD;^$=@_-WCxEZ%5ef*9!V7>yqV4A&y`zKuwe1;dWY6*Gv!L~|-{jj??!f-rBQ zdUKg%6=!l{o($o4_nvHCGVt>*kQf^9qPe}P<$)?o+a=U6NT36J3vZbjuBTRCJ|p|K z;N5x2=|h*6x~a2}8TT%~hT0YLxu@$_5ov9IlD4<`p>9F7tx99dSd-rIwkOgL!#yk4 z)(h$gYo?b!&*(AE53MBgWp1MNs-y%dkM&E!A1OFtR}|0kLUS2{0NACS{P`OTwC4fc zof;Z^9(|b9PDsmDvU+*Pl9Q6>5}_+!2oOyA?8<+Y7jRrNlX;;0w{2m3DBu*YjnWU< z=Eqa=Thv&`_YT;ikoz$Jk%I6%Ai@z>EYD{u6ZsAcj_ zuI`68iQqH}6I>Wjn+@0LorKI$QZ2v>gP!=Ke8+@6

XJxY_)!2T#IBJtVNSsIS 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

)sqRxrUpFqBj;CgO6xL{rV|-FyBjOq{WJ4SW%P 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 Hn*{t9lMUxL From fbc2b15d21d05e07fb3be0a37dde1336aa3dcc57 Mon Sep 17 00:00:00 2001 From: Poojawa Date: Thu, 21 Mar 2019 15:13:11 -0500 Subject: [PATCH 13/37] Make sure the oxygen max doesn't do fucky things --- code/modules/surgery/organs/lungs.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/surgery/organs/lungs.dm b/code/modules/surgery/organs/lungs.dm index 56aa715190..1e22796b1b 100644 --- a/code/modules/surgery/organs/lungs.dm +++ b/code/modules/surgery/organs/lungs.dm @@ -400,6 +400,7 @@ icon_state = "lungs-plasma" safe_oxygen_min = 0 //We don't breath this + safe_oxygen_max = 0 // Like, at all. safe_toxins_min = 16 //We breath THIS! safe_toxins_max = 0 From 8893108130467ae9541976bf29aabaf32994c5a3 Mon Sep 17 00:00:00 2001 From: Poojawa Date: Thu, 21 Mar 2019 15:15:47 -0500 Subject: [PATCH 14/37] actually completely pointless of a check, so let's not fuck with it --- code/modules/mob/living/carbon/life.dm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index 903b136996..48a401802b 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -181,9 +181,8 @@ else adjustOxyLoss(3) failed_last_breath = 1 - if(!o2overloadtime) - throw_alert("not_enough_oxy", /obj/screen/alert/not_enough_oxy) - SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "suffocation", /datum/mood_event/suffocation) + throw_alert("not_enough_oxy", /obj/screen/alert/not_enough_oxy) + SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "suffocation", /datum/mood_event/suffocation) else //Enough oxygen failed_last_breath = 0 From e00c196824a4bd08246b5b5c3a0b971384be3097 Mon Sep 17 00:00:00 2001 From: Ragolution Date: Thu, 21 Mar 2019 19:07:22 -0400 Subject: [PATCH 15/37] CALL IT A MEME PR ONE MORE TIME AND SEE WHAT HAPPENS bottom text --- code/modules/surgery/advanced/revival.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/surgery/advanced/revival.dm b/code/modules/surgery/advanced/revival.dm index 4ba8660855..0cd7a64235 100644 --- a/code/modules/surgery/advanced/revival.dm +++ b/code/modules/surgery/advanced/revival.dm @@ -26,7 +26,7 @@ return TRUE /datum/surgery_step/revive - name = "electric stimulation" + name = "electrically stimulate brain" implements = list(/obj/item/twohanded/shockpaddles = 100, /obj/item/abductor/gizmo = 100, /obj/item/melee/baton = 75, /obj/item/organ/cyberimp/arm/baton = 75, /obj/item/organ/cyberimp/arm/gun/taser = 60, /obj/item/gun/energy/e_gun/advtaser = 60, /obj/item/gun/energy/taser = 60) time = 120 From ae02f091ff3c27bef7a684717dc345d80739eb65 Mon Sep 17 00:00:00 2001 From: Poojawa Date: Fri, 22 Mar 2019 15:06:36 -0500 Subject: [PATCH 16/37] Dragon fixes, UI fixes --- code/__DEFINES/voreconstants.dm | 123 +++--------------- .../living/simple_animal/hostile/hostile.dm | 6 +- .../hostile/megafauna/megafauna.dm | 16 +-- .../code/modules/vore/eating/belly_obj_vr.dm | 25 ++-- .../code/modules/vore/eating/bellymodes_vr.dm | 2 +- .../code/modules/vore/eating/vorepanel_vr.dm | 118 ++++++++--------- 6 files changed, 93 insertions(+), 197 deletions(-) diff --git a/code/__DEFINES/voreconstants.dm b/code/__DEFINES/voreconstants.dm index a133297315..a396cf9962 100644 --- a/code/__DEFINES/voreconstants.dm +++ b/code/__DEFINES/voreconstants.dm @@ -18,39 +18,6 @@ /* // removing sizeplay again GLOBAL_LIST_INIT(player_sizes_list, list("Macro" = SIZESCALE_HUGE, "Big" = SIZESCALE_BIG, "Normal" = SIZESCALE_NORMAL, "Small" = SIZESCALE_SMALL, "Tiny" = SIZESCALE_TINY)) // Edited to make the new travis check go away - - -GLOBAL_LIST_INIT(digest_pred, list( - 'sound/vore/pred/digest_01.ogg', - 'sound/vore/pred/digest_02.ogg', - 'sound/vore/pred/digest_03.ogg', - 'sound/vore/pred/digest_04.ogg', - 'sound/vore/pred/digest_05.ogg', - 'sound/vore/pred/digest_06.ogg', - 'sound/vore/pred/digest_07.ogg', - 'sound/vore/pred/digest_08.ogg', - 'sound/vore/pred/digest_09.ogg', - 'sound/vore/pred/digest_10.ogg', - 'sound/vore/pred/digest_11.ogg', - 'sound/vore/pred/digest_12.ogg', - 'sound/vore/pred/digest_13.ogg', - 'sound/vore/pred/digest_14.ogg', - 'sound/vore/pred/digest_15.ogg', - 'sound/vore/pred/digest_16.ogg', - 'sound/vore/pred/digest_17.ogg', - 'sound/vore/pred/digest_18.ogg')) - -GLOBAL_LIST_INIT(death_pred, list( - 'sound/vore/pred/death_01.ogg', - 'sound/vore/pred/death_02.ogg', - 'sound/vore/pred/death_03.ogg', - 'sound/vore/pred/death_04.ogg', - 'sound/vore/pred/death_05.ogg', - 'sound/vore/pred/death_06.ogg', - 'sound/vore/pred/death_07.ogg', - 'sound/vore/pred/death_08.ogg', - 'sound/vore/pred/death_09.ogg', - 'sound/vore/pred/death_10.ogg')) */ GLOBAL_LIST_INIT(vore_sounds, list( @@ -66,79 +33,21 @@ GLOBAL_LIST_INIT(vore_sounds, list( "Squish3" = 'sound/vore/pred/squish_03.ogg', "Squish4" = 'sound/vore/pred/squish_04.ogg', "Rustle (cloth)" = 'sound/effects/rustle5.ogg', - "rustle2(cloth)" = 'sound/effects/rustle2.ogg', - "rustle3(cloth)" = 'sound/effects/rustle3.ogg', - "rustle4(cloth)" = 'sound/effects/rustle4.ogg', - "rustle5(cloth)" = 'sound/effects/rustle5.ogg', - "None" = null)) -/* -GLOBAL_LIST_INIT(pred_struggle_sounds, list( - "Struggle1" = 'sound/vore/pred/struggle_01.ogg', - "Struggle2" = 'sound/vore/pred/struggle_02.ogg', - "Struggle3" = 'sound/vore/pred/struggle_03.ogg', - "Struggle4" = 'sound/vore/pred/struggle_04.ogg', - "Struggle5" = 'sound/vore/pred/struggle_05.ogg')) - -GLOBAL_LIST_INIT(prey_vore_sounds, list( - "Gulp" = 'sound/vore/prey/swallow_01.ogg', - "Swallow" = 'sound/vore/prey/swallow_02.ogg', - "Insertion1" = 'sound/vore/prey/insertion_01.ogg', - "Insertion2" = 'sound/vore/prey/insertion_02.ogg', - "Tauric Swallow" = 'sound/vore/prey/taurswallow.ogg', - "Schlorp" = 'sound/vore/prey/schlorp.ogg', - "Squish1" = 'sound/vore/prey/squish_01.ogg', - "Squish2" = 'sound/vore/prey/squish_02.ogg', - "Squish3" = 'sound/vore/prey/squish_03.ogg', - "Squish4" = 'sound/vore/prey/squish_04.ogg')) - - -GLOBAL_LIST_INIT(prey_struggle_sounds, list( - "Struggle1" = 'sound/vore/prey/struggle_01.ogg', - "Struggle2" = 'sound/vore/prey/struggle_02.ogg', - "Struggle3" = 'sound/vore/prey/struggle_03.ogg', - "Struggle4" = 'sound/vore/prey/struggle_04.ogg', - "Struggle5" = 'sound/vore/prey/struggle_05.ogg')) - -GLOBAL_LIST_INIT(digest_prey, list( - "digest1" = 'sound/vore/prey/digest_01.ogg', - "digest2" = 'sound/vore/prey/digest_02.ogg', - "digest3" = 'sound/vore/prey/digest_03.ogg', - "digest4" = 'sound/vore/prey/digest_04.ogg', - "digest5" = 'sound/vore/prey/digest_05.ogg', - "digest6" = 'sound/vore/prey/digest_06.ogg', - "digest7" = 'sound/vore/prey/digest_07.ogg', - "digest8" = 'sound/vore/prey/digest_08.ogg', - "digest9" = 'sound/vore/prey/digest_09.ogg', - "digest10" = 'sound/vore/prey/digest_10.ogg', - "digest11" = 'sound/vore/prey/digest_11.ogg', - "digest12" = 'sound/vore/prey/digest_12.ogg', - "digest13" = 'sound/vore/prey/digest_13.ogg', - "digest14" = 'sound/vore/prey/digest_14.ogg', - "digest15" = 'sound/vore/prey/digest_15.ogg', - "digest16" = 'sound/vore/prey/digest_16.ogg', - "digest17" = 'sound/vore/prey/digest_17.ogg', - "digest18" = 'sound/vore/prey/digest_18.ogg')) - -GLOBAL_LIST_INIT(death_prey, list( - "death1" = 'sound/vore/prey/death_01.ogg', - "death2" = 'sound/vore/prey/death_02.ogg', - "death3" = 'sound/vore/prey/death_03.ogg', - "death4" = 'sound/vore/prey/death_04.ogg', - "death5" = 'sound/vore/prey/death_05.ogg', - "death6" = 'sound/vore/prey/death_06.ogg', - "death7" = 'sound/vore/prey/death_07.ogg', - "death8" = 'sound/vore/prey/death_08.ogg', - "death9" = 'sound/vore/prey/death_09.ogg', - "death10" = 'sound/vore/prey/death_10.ogg')) - */ + "Rustle 2 (cloth)" = 'sound/effects/rustle2.ogg', + "Rustle 3 (cloth)" = 'sound/effects/rustle3.ogg', + "Rustle 4 (cloth)" = 'sound/effects/rustle4.ogg', + "Rustle 5 (cloth)" = 'sound/effects/rustle5.ogg', + "None" = null + )) GLOBAL_LIST_INIT(release_sounds, list( - "rustle (cloth)" = 'sound/effects/rustle1.ogg', - "rustle2 (cloth)" = 'sound/effects/rustle2.ogg', - "rustle3 (cloth)" = 'sound/effects/rustle3.ogg', - "rustle4 (cloth)" = 'sound/effects/rustle4.ogg', - "rustle5 (cloth)" = 'sound/effects/rustle5.ogg', - "Stomach Move" = 'sound/vore/pred/stomachmove.ogg', - "Pred Escape" = 'sound/vore/pred/escape.ogg', - "Splatter" = 'sound/effects/splat.ogg', - "None" = null)) \ No newline at end of file + "Rustle (cloth)" = 'sound/effects/rustle1.ogg', + "Rustle 2 (cloth)" = 'sound/effects/rustle2.ogg', + "Rustle 3 (cloth)" = 'sound/effects/rustle3.ogg', + "Rustle 4 (cloth)" = 'sound/effects/rustle4.ogg', + "Rustle 5 (cloth)" = 'sound/effects/rustle5.ogg', + "Stomach Move" = 'sound/vore/pred/stomachmove.ogg', + "Pred Escape" = 'sound/vore/pred/escape.ogg', + "Splatter" = 'sound/effects/splat.ogg', + "None" = null + ) diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index d8635060ee..941ba0ec69 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -100,7 +100,7 @@ if(!target || !isturf(target.loc) || !isturf(loc) || stat == DEAD) return var/target_dir = get_dir(src,target) - + var/static/list/cardinal_sidestep_directions = list(-90,-45,0,45,90) var/static/list/diagonal_sidestep_directions = list(-45,0,45) var/chosen_dir = 0 @@ -202,6 +202,8 @@ if(see_invisible < the_target.invisibility)//Target's invisible to us, forget it return FALSE + if(isbelly(the_target.loc)) //Target's inside a gut, forget about it too + return FALSE if(search_objects < 2) if(isliving(the_target)) var/mob/living/L = the_target @@ -301,7 +303,7 @@ if(target) if(targets_from && isturf(targets_from.loc) && target.Adjacent(targets_from)) //If they're next to us, attack MeleeAction() - else + else if(rapid_melee > 1 && target_distance <= melee_queue_distance) MeleeAction(FALSE) in_melee = FALSE //If we're just preparing to strike do not enter sidestep mode diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm index 43bc2c26f8..92ac07b1a0 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm @@ -83,18 +83,12 @@ if(L.stat != DEAD) if(!client && ranged && ranged_cooldown <= world.time) OpenFire() - - else if(L.stat >= SOFT_CRIT) - if(vore_active == TRUE && L.devourable == TRUE) - if(isliving(target) && !target.Adjacent(targets_from)) - return - else + if(L.Adjacent(src) && (L.stat != CONSCIOUS)) + if(vore_active && L.devourable == TRUE) dragon_feeding(src,L) - if(L.loc == src.contents) - LoseTarget() - return 0 - else - devour(L) + LoseTarget() + else + devour(L) /mob/living/simple_animal/hostile/megafauna/proc/devour(mob/living/L) if(!L) diff --git a/modular_citadel/code/modules/vore/eating/belly_obj_vr.dm b/modular_citadel/code/modules/vore/eating/belly_obj_vr.dm index e76a09d4b7..142e5880d5 100644 --- a/modular_citadel/code/modules/vore/eating/belly_obj_vr.dm +++ b/modular_citadel/code/modules/vore/eating/belly_obj_vr.dm @@ -15,7 +15,7 @@ desc = "It's a belly! You're in it!" // Flavor text description of inside sight/sound/smells/feels. var/vore_sound = "Gulp" // Sound when ingesting someone var/vore_verb = "ingest" // Verb for eating with this in messages - var/release_sound = "Splatter" + var/release_sound = "Splatter" // Sound for letting someone out. var/human_prey_swallow_time = 100 // Time in deciseconds to swallow /mob/living/carbon/human var/nonhuman_prey_swallow_time = 30 // Time in deciseconds to swallow anything else var/emote_time = 60 SECONDS // How long between stomach emotes at prey @@ -30,7 +30,6 @@ var/can_taste = FALSE // If this belly prints the flavor of prey when it eats someone. var/bulge_size = 0.25 // The minimum size the prey has to be in order to show up on examine. // var/shrink_grow_size = 1 // This horribly named variable determines the minimum/maximum size it will shrink/grow prey to. - var/silent = FALSE var/transferlocation // Location that the prey is released if they struggle and get dropped off. var/transferchance = 0 // % Chance of prey being transferred to transfer location when resisting @@ -127,7 +126,6 @@ "escapechance", "can_taste", "bulge_size", - "silent", "transferlocation", "transferchance", "autotransferchance", @@ -170,7 +168,7 @@ //Sound w/ antispam flag setting if(is_wet && !recent_sound) - for(var/mob/M in get_hearers_in_view(5, get_turf(owner))) + for(var/mob/M in get_hearers_in_view(2, get_turf(owner))) if(M.client && (M.client.prefs.cit_toggles & EATING_NOISES)) playsound(get_turf(owner),"[src.vore_sound]",50,0,-5,0,ignore_walls = FALSE,channel=CHANNEL_PRED) recent_sound = TRUE @@ -184,7 +182,7 @@ // Release all contents of this belly into the owning mob's location. // If that location is another mob, contents are transferred into whichever of its bellies the owning mob is in. // Returns the number of mobs so released. -/obj/belly/proc/release_all_contents(var/include_absorbed = FALSE) +/obj/belly/proc/release_all_contents(var/include_absorbed = FALSE, var/silent = FALSE) var/atom/destination = drop_location() var/count = 0 for(var/thing in contents) @@ -203,7 +201,7 @@ SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "emptyprey", /datum/mood_event/emptyprey) AM.forceMove(destination) // Move the belly contents into the same location as belly's owner. count++ - for(var/mob/M in get_hearers_in_view(5, get_turf(owner))) + for(var/mob/M in get_hearers_in_view(2, get_turf(owner))) if(M.client && (M.client.prefs.cit_toggles & EATING_NOISES)) playsound(get_turf(owner),"[src.release_sound]",50,0,-5,0,ignore_walls = FALSE,channel=CHANNEL_PRED) if(!silent) @@ -216,16 +214,15 @@ // Release a specific atom from the contents of this belly into the owning mob's location. // If that location is another mob, the atom is transferred into whichever of its bellies the owning mob is in. // Returns the number of atoms so released. -/obj/belly/proc/release_specific_contents(var/atom/movable/M) +/obj/belly/proc/release_specific_contents(var/atom/movable/M, var/silent = FALSE) if (!(M in contents)) return FALSE // They weren't in this belly anyway M.forceMove(drop_location()) // Move the belly contents into the same location as belly's owner. items_preserved -= M - if(release_sound) - for(var/mob/H in get_hearers_in_view(5, get_turf(owner))) - if(H.client && (H.client.prefs.cit_toggles & EATING_NOISES)) - playsound(get_turf(owner),"[src.release_sound]",50,0,-5,0,ignore_walls = FALSE,channel=CHANNEL_PRED) + for(var/mob/H in get_hearers_in_view(2, get_turf(owner))) + if(H.client && (H.client.prefs.cit_toggles & EATING_NOISES)) + playsound(get_turf(owner),"[src.release_sound]",50,0,-5,0,ignore_walls = FALSE,channel=CHANNEL_PRED) if(istype(M,/mob/living)) var/mob/living/ML = M @@ -515,6 +512,11 @@ var/sound/prey_struggle = sound(get_sfx("prey_struggle")) R.playsound_local(get_turf(R),prey_struggle,45,0) + else + for(var/mob/M in get_hearers_in_view(2, get_turf(owner))) + if(M.client && (M.client.prefs.cit_toggles & EATING_NOISES)) + playsound(get_turf(owner),"rustle",35,0,-5,1,ignore_walls = FALSE,channel=CHANNEL_PRED) + for(var/mob/M in get_hearers_in_view(3, get_turf(owner))) if(M.client && (M.client.prefs.cit_toggles & EATING_NOISES)) //Might as well censor the normies here too. M.show_message(struggle_outer_message, 1) // visible @@ -608,7 +610,6 @@ dupe.escapechance = escapechance dupe.can_taste = can_taste dupe.bulge_size = bulge_size - dupe.silent = silent dupe.transferlocation = transferlocation dupe.transferchance = transferchance dupe.autotransferchance = autotransferchance diff --git a/modular_citadel/code/modules/vore/eating/bellymodes_vr.dm b/modular_citadel/code/modules/vore/eating/bellymodes_vr.dm index 6c528f75a9..542241e9f2 100644 --- a/modular_citadel/code/modules/vore/eating/bellymodes_vr.dm +++ b/modular_citadel/code/modules/vore/eating/bellymodes_vr.dm @@ -25,7 +25,7 @@ for(var/mob/living/M in contents) if(isbelly(M.loc)) if(world.time > M.next_preyloop) - if(!silent) + if(is_wet) M.stop_sound_channel(CHANNEL_PREYLOOP) // sanity just in case var/sound/preyloop = sound('sound/vore/prey/loop.ogg', repeat = TRUE) M.playsound_local(get_turf(src),preyloop,80,0, channel = CHANNEL_PREYLOOP) diff --git a/modular_citadel/code/modules/vore/eating/vorepanel_vr.dm b/modular_citadel/code/modules/vore/eating/vorepanel_vr.dm index bc30de6ca6..3d20526a5c 100644 --- a/modular_citadel/code/modules/vore/eating/vorepanel_vr.dm +++ b/modular_citadel/code/modules/vore/eating/vorepanel_vr.dm @@ -18,9 +18,10 @@ var/dat = picker_holder.gen_vui(src) - picker_holder.popup = new(src, "insidePanel","Vore Panel", 400, 600, picker_holder) + picker_holder.popup = new(src, "insidePanel","Vore Panel", 450, 700, picker_holder) picker_holder.popup.set_content(dat) picker_holder.popup.open() + src.openpanel = 1 /mob/living/proc/updateVRPanel() //Panel popup update call from belly events. if(src.openpanel == 1) @@ -30,7 +31,7 @@ var/dat = picker_holder.gen_vui(src) - picker_holder.popup = new(src, "insidePanel","Vore Panel", 400, 600, picker_holder) + picker_holder.popup = new(src, "insidePanel","Vore Panel", 450, 700, picker_holder) picker_holder.popup.set_content(dat) picker_holder.popup.open() @@ -39,7 +40,7 @@ // /datum/vore_look var/obj/belly/selected - var/show_interacts = TRUE + var/show_interacts = 0 var/datum/browser/popup var/loop = null; // Magic self-reference to stop the handler from being GC'd before user takes action. @@ -61,7 +62,7 @@ var/obj/belly/inside_belly = userloc var/mob/living/eater = inside_belly.owner - //Don't display this part if we couldn't find the belly since could be held in hand. + //Don't display this part if we couldn't find the belly since could be held in hand. if(inside_belly) dat += "You are currently [user.absorbed ? "absorbed into " : "inside "] [eater]'s [inside_belly]!

" @@ -102,7 +103,6 @@ dat += "

  • [B.name]" else dat += "
  • [B.name]" - var/spanstyle switch(B.digest_mode) if(DM_HOLD) @@ -157,7 +157,7 @@ dat += " '[selected.name]'" //Belly Type button - dat += "Has Flesh Noises?" + dat += "
    Is Fleshy:" dat += "[selected.is_wet ? "Yes" : "No"]" //Digest Mode Button @@ -173,11 +173,11 @@ dat += " '[selected.desc]'" //Belly sound - dat += "
    Set Vore Sound" + dat += "
    Vore Sound: [selected.vore_sound]" dat += "Test" //Release sound - dat += "
    Set Release Sound" + dat += "
    Release Sound: [selected.release_sound]" dat += "Test" //Belly messages @@ -205,10 +205,6 @@ dat += "
    Set Belly Escape Time" dat += " [selected.escapetime/10]s" - dat += "
    " - dat += "
    Set Belly Absorb Chance" - dat += " [selected.absorbchance]%" - //Special
    here to add a gap dat += "
    " dat += "
    Set Belly Transfer Chance" @@ -219,14 +215,13 @@ //Special
    here to add a gap dat += "
    " + dat += "
    Set Belly Absorb Chance" + dat += " [selected.absorbchance]%" + dat += "
    Set Belly Digest Chance" dat += " [selected.digestchance]%" dat += "
    " - // Belly Silence - dat += "
    Belly Silence (for not belly bellies):" - dat += " [selected.silent ? "Yes" : "No"]" - //Delete button dat += "
    Delete Belly" @@ -262,25 +257,26 @@ if(href_list["close"]) qdel(src) // Cleanup + user.openpanel = 0 return if(href_list["show_int"]) show_interacts = !show_interacts - return TRUE //Force update + return 1 //Force update if(href_list["int_help"]) - to_chat(usr,"These control how your belly responds to someone using 'resist' while inside you. The percent chance to trigger each is listed below, \ + alert("These control how your belly responds to someone using 'resist' while inside you. The percent chance to trigger each is listed below, \ and you can change them to whatever you see fit. Setting them to 0% will disable the possibility of that interaction. \ - These only function as long as interactions are turned on in general. Keep in mind, the 'belly mode' interactions (digest) \ - will affect all prey in that belly, if one resists and triggers digestion. If multiple trigger at the same time, \ - only the first in the order of 'Escape > Transfer > Absorb > Digest' will occur.") - return TRUE //Force update + These only function as long as interactions are turned on in general. Keep in mind, the 'belly mode' interactions (digest/absorb) \ + will affect all prey in that belly, if one resists and triggers digestion/absorption. If multiple trigger at the same time, \ + only the first in the order of 'Escape > Transfer > Absorb > Digest' will occur.","Interactions Help") + return 0 //Force update if(href_list["outsidepick"]) var/atom/movable/tgt = locate(href_list["outsidepick"]) var/obj/belly/OB = locate(href_list["outsidebelly"]) if(!(tgt in OB)) //Aren't here anymore, need to update menu. - return TRUE + return 1 var/intent = "Examine" if(istype(tgt,/mob/living)) @@ -293,11 +289,11 @@ if("Help Out") //Help the inside-mob out if(user.stat || user.absorbed || M.absorbed) to_chat(user,"You can't do that in your state!") - return + return 1 to_chat(user,"You begin to push [M] to freedom!") to_chat(M,"[usr] begins to push you to freedom!") - to_chat(OB.owner,"Someone is trying to escape from inside you!") + to_chat(M.loc,"Someone is trying to escape from inside you!") sleep(50) if(prob(33)) OB.release_specific_contents(M) @@ -309,15 +305,14 @@ to_chat(M," Even with [user]'s help, you slip back inside again.") to_chat(OB.owner,"Your body efficiently shoves [M] back where they belong.") - if("Devour") //Eat the inside mob if(user.absorbed || user.stat) to_chat(user,"You can't do that in your state!") - return + return 1 if(!user.vore_selected) to_chat(user,"Pick a belly on yourself first!") - return + return 1 var/obj/belly/TB = user.vore_selected to_chat(user,"You begin to [lowertext(TB.vore_verb)] [M] into your [lowertext(TB.name)]!") @@ -333,9 +328,9 @@ else if(istype(tgt,/obj/item)) var/obj/item/T = tgt - if(!(tgt in OB.contents)) + if(!(tgt in OB)) //Doesn't exist anymore, update. - return TRUE + return 1 intent = alert("What do you want to do to that?","Query","Examine","Use Hand") switch(intent) if("Examine") @@ -343,8 +338,8 @@ if("Use Hand") if(user.stat) - to_chat(user, "You can't do that in your state!") - return + to_chat(user,"You can't do that in your state!") + return 1 user.ClickOn(T) sleep(5) //Seems to exit too fast for the panel to update @@ -357,32 +352,31 @@ intent = alert("Eject all, Move all?","Query","Eject all","Cancel","Move all") switch(intent) if("Cancel") - return + return 0 if("Eject all") if(user.stat) - to_chat(user, "You can't do that in your state!") - return + to_chat(user,"You can't do that in your state!") + return 0 selected.release_all_contents() - to_chat(user.loc,"Everything is released from [user]!") if("Move all") if(user.stat) - to_chat(user, "You can't do that in your state!") - return FALSE + to_chat(user,"You can't do that in your state!") + return 0 var/obj/belly/choice = input("Move all where?","Select Belly") as null|anything in user.vore_organs if(!choice) - return FALSE + return 0 for(var/atom/movable/tgt in selected) - selected.transfer_contents(tgt, choice, 1) to_chat(tgt,"You're squished from [user]'s [lowertext(selected)] to their [lowertext(choice.name)]!") + selected.transfer_contents(tgt, choice, 1) var/atom/movable/tgt = locate(href_list["insidepick"]) if(!(tgt in selected)) //Old menu, needs updating because they aren't really there. - return TRUE//Forces update + return 1 //Forces update intent = "Examine" intent = alert("Examine, Eject, Move? Examine if you want to leave this box.","Query","Examine","Eject","Move") switch(intent) @@ -391,11 +385,10 @@ if("Eject") if(user.stat) - to_chat(user, "You can't do that in your state!") - return FALSE + to_chat(user,"You can't do that in your state!") + return 0 selected.release_specific_contents(tgt) - user.loc << "[tgt] is released from [user]!" if("Move") if(user.stat) @@ -547,7 +540,7 @@ if(!choice) return - selected.release_sound = GLOB.release_sounds[choice] + selected.release_sound = choice if(href_list["b_releasesoundtest"]) var/soundfile = selected.release_sound @@ -560,7 +553,7 @@ if(!choice) return - selected.vore_sound = GLOB.vore_sounds[choice] + selected.vore_sound = choice if(href_list["b_soundtest"]) var/soundfile = selected.vore_sound @@ -584,17 +577,17 @@ selected.bulge_size = (new_bulge/100) if(href_list["b_escapable"]) - if(selected.escapable == FALSE) //Possibly escapable and special interactions. - selected.escapable = TRUE - to_chat(usr,"Prey now have special interactions with your [selected.name] depending on your settings.") - else if(selected.escapable == TRUE) //Never escapable. - selected.escapable = FALSE - to_chat(usr,"Prey will not be able to have special interactions with your [selected.name].") - show_interacts = FALSE //Force the hiding of the panel + if(selected.escapable == 0) //Possibly escapable and special interactions. + selected.escapable = 1 + to_chat(usr,"Prey now have special interactions with your [lowertext(selected.name)] depending on your settings.") + else if(selected.escapable == 1) //Never escapable. + selected.escapable = 0 + to_chat(usr,"Prey will not be able to have special interactions with your [lowertext(selected.name)].") + show_interacts = 0 //Force the hiding of the panel else - to_chat(usr,"Something went wrong. Your stomach will now not have special interactions. Press the button enable them again and tell a dev.") //If they somehow have a varable that's not 0 or 1 - selected.escapable = TRUE - show_interacts = FALSE //Force the hiding of the panel + alert("Something went wrong. Your stomach will now not have special interactions. Press the button enable them again and tell a dev.","Error") //If they somehow have a varable that's not 0 or 1 + selected.escapable = 0 + show_interacts = 0 //Force the hiding of the panel if(href_list["b_escapechance"]) var/escape_chance_input = input(user, "Set prey escape chance on resist (as %)", "Prey Escape Chance") as num|null @@ -612,14 +605,14 @@ selected.transferchance = sanitize_integer(transfer_chance_input, 0, 100, initial(selected.transferchance)) if(href_list["b_transferlocation"]) - var/choice = input("Where do you want your [selected.name] to lead if prey resists?","Select Belly") as null|anything in (user.vore_organs + "None - Remove" - selected.name) + var/obj/belly/choice = input("Where do you want your [lowertext(selected.name)] to lead if prey resists?","Select Belly") as null|anything in (user.vore_organs + "None - Remove" - selected) if(!choice) //They cancelled, no changes - return FALSE + return 0 else if(choice == "None - Remove") selected.transferlocation = null else - selected.transferlocation = user.vore_organs[choice] + selected.transferlocation = choice.name if(href_list["b_absorbchance"]) var/absorb_chance_input = input(user, "Set belly absorb mode chance on resist (as %)", "Prey Absorb Chance") as num|null @@ -631,13 +624,10 @@ if(!isnull(digest_chance_input)) selected.digestchance = sanitize_integer(digest_chance_input, 0, 100, initial(selected.digestchance)) - if(href_list["b_silent"]) - selected.silent = !selected.silent - if(href_list["b_del"]) var/alert = alert("Are you sure you want to delete your [lowertext(selected.name)]?","Confirmation","Delete","Cancel") if(!alert == "Delete") - return FALSE + return 0 var/failure_msg = "" @@ -658,7 +648,7 @@ if(failure_msg) alert(user,failure_msg,"Error!") - return FALSE + return 0 qdel(selected) selected = user.vore_organs[1] From df0aa7cadbcf907dc4105570475a5644af247834 Mon Sep 17 00:00:00 2001 From: Poojawa Date: Fri, 22 Mar 2019 17:16:38 -0500 Subject: [PATCH 17/37] missing ) in macro call --- code/__DEFINES/voreconstants.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/__DEFINES/voreconstants.dm b/code/__DEFINES/voreconstants.dm index a396cf9962..710b11ae16 100644 --- a/code/__DEFINES/voreconstants.dm +++ b/code/__DEFINES/voreconstants.dm @@ -50,4 +50,4 @@ GLOBAL_LIST_INIT(release_sounds, list( "Pred Escape" = 'sound/vore/pred/escape.ogg', "Splatter" = 'sound/effects/splat.ogg', "None" = null - ) + )) From e8dcb44317f312e3347fbc7d6455895a90f1eeed Mon Sep 17 00:00:00 2001 From: Poojawa Date: Sat, 23 Mar 2019 07:43:55 -0500 Subject: [PATCH 18/37] Prevents teleport mice teeth --- code/modules/mob/living/simple_animal/friendly/mouse.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index 8c6300fab5..6ec95084dd 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -63,6 +63,9 @@ ..() /mob/living/simple_animal/mouse/handle_automated_action() + if(isbelly(loc) + return + if(prob(chew_probability)) var/turf/open/floor/F = get_turf(src) if(istype(F) && !F.intact) From bdfc3273b8e006f39f1170da8fea231ed133c69d Mon Sep 17 00:00:00 2001 From: Poojawa Date: Sat, 23 Mar 2019 07:44:29 -0500 Subject: [PATCH 19/37] oops I commited before test compiling --- code/modules/mob/living/simple_animal/friendly/mouse.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index 6ec95084dd..bf45c9cc73 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -63,7 +63,7 @@ ..() /mob/living/simple_animal/mouse/handle_automated_action() - if(isbelly(loc) + if(isbelly(loc)) return if(prob(chew_probability)) From 3175bf1db98377ce435e698c89220403d5ab7aa0 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sat, 23 Mar 2019 12:37:03 -0700 Subject: [PATCH 20/37] Update pyrotechnics.dm --- .../chemistry/recipes/pyrotechnics.dm | 41 +++++++++++-------- 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm index 587d6c8b38..eec94c7b35 100644 --- a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm +++ b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm @@ -3,23 +3,25 @@ id = "reagent_explosion" var/strengthdiv = 10 var/modifier = 0 + var/noexplosion = FALSE -/datum/chemical_reaction/reagent_explosion/on_reaction(datum/reagents/holder, created_volume) - var/turf/T = get_turf(holder.my_atom) - var/inside_msg - if(ismob(holder.my_atom)) - var/mob/M = holder.my_atom - inside_msg = " inside [ADMIN_LOOKUPFLW(M)]" - var/lastkey = holder.my_atom.fingerprintslast - var/touch_msg = "N/A" - if(lastkey) - var/mob/toucher = get_mob_by_key(lastkey) - touch_msg = "[ADMIN_LOOKUPFLW(toucher)]" - message_admins("Reagent explosion reaction occurred at [ADMIN_VERBOSEJMP(T)][inside_msg]. Last Fingerprint: [touch_msg].") - log_game("Reagent explosion reaction occurred at [AREACOORD(T)]. Last Fingerprint: [lastkey ? lastkey : "N/A"]." ) - var/datum/effect_system/reagents_explosion/e = new() - e.set_up(modifier + round(created_volume/strengthdiv, 1), T, 0, 0) - e.start() +/datum/chemical_reaction/reagent_explosion/on_reaction(datum/reagents/holder, created_volume, turf/overrde) + if(!noexplosion) + var/turf/T = override || get_turf(holder.my_atom) + var/inside_msg + if(ismob(holder.my_atom)) + var/mob/M = holder.my_atom + inside_msg = " inside [ADMIN_LOOKUPFLW(M)]" + var/lastkey = holder.my_atom.fingerprintslast + var/touch_msg = "N/A" + if(lastkey) + var/mob/toucher = get_mob_by_key(lastkey) + touch_msg = "[ADMIN_LOOKUPFLW(toucher)]" + message_admins("Reagent explosion reaction occurred at [ADMIN_VERBOSEJMP(T)][inside_msg]. Last Fingerprint: [touch_msg].") + log_game("Reagent explosion reaction occurred at [AREACOORD(T)]. Last Fingerprint: [lastkey ? lastkey : "N/A"]." ) + var/datum/effect_system/reagents_explosion/e = new() + e.set_up(modifier + round(created_volume/strengthdiv, 1), T, 0, 0) + e.start() holder.clear_reagents() @@ -56,6 +58,7 @@ required_reagents = list("holywater" = 1, "potassium" = 1) /datum/chemical_reaction/reagent_explosion/potassium_explosion/holyboom/on_reaction(datum/reagents/holder, created_volume) + var/turf/T = get_turf(holder.my_atom) if(created_volume >= 150) playsound(get_turf(holder.my_atom), 'sound/effects/pray.ogg', 80, 0, round(created_volume/48)) strengthdiv = 8 @@ -76,7 +79,7 @@ C.Knockdown(40) C.adjust_fire_stacks(5) C.IgniteMob() - ..() + ..(holder, created_volume, T) /datum/chemical_reaction/blackpowder @@ -95,8 +98,9 @@ mix_message = "Sparks start flying around the black powder!" /datum/chemical_reaction/reagent_explosion/blackpowder_explosion/on_reaction(datum/reagents/holder, created_volume) + var/turf/T = get_turf(holder.my_atom) sleep(rand(50,100)) - ..() + ..(holder, created_volume, T) /datum/chemical_reaction/thermite name = "Thermite" @@ -423,6 +427,7 @@ required_reagents = list("teslium" = 1, "water" = 1) strengthdiv = 100 modifier = -100 + noexplosion = TRUE mix_message = "The teslium starts to spark as electricity arcs away from it!" mix_sound = 'sound/machines/defib_zap.ogg' var/tesla_flags = TESLA_MOB_DAMAGE | TESLA_OBJ_DAMAGE | TESLA_MOB_STUN From e9558d1b1753937cc9508ea58f1bf104d56e2ec7 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sat, 23 Mar 2019 12:38:23 -0700 Subject: [PATCH 21/37] Update pyrotechnics.dm --- code/modules/reagents/chemistry/recipes/pyrotechnics.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm index eec94c7b35..29863c2b90 100644 --- a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm +++ b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm @@ -5,7 +5,7 @@ var/modifier = 0 var/noexplosion = FALSE -/datum/chemical_reaction/reagent_explosion/on_reaction(datum/reagents/holder, created_volume, turf/overrde) +/datum/chemical_reaction/reagent_explosion/on_reaction(datum/reagents/holder, created_volume, turf/override) if(!noexplosion) var/turf/T = override || get_turf(holder.my_atom) var/inside_msg From fb615dbb07861e53c1ee7fb635bdf178298d3f6c Mon Sep 17 00:00:00 2001 From: deathride58 Date: Sun, 24 Mar 2019 01:10:25 -0400 Subject: [PATCH 22/37] fUCKING CULTCODE --- code/modules/antagonists/cult/runes.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/antagonists/cult/runes.dm b/code/modules/antagonists/cult/runes.dm index f3975851ca..8a3f81fc01 100644 --- a/code/modules/antagonists/cult/runes.dm +++ b/code/modules/antagonists/cult/runes.dm @@ -112,7 +112,7 @@ structure_check() searches for nearby cultist structures required for the invoca var/list/invokers = list() //people eligible to invoke the rune if(user) invokers += user - if(req_cultists > 1 || istype(src, /obj/effect/rune/convert)) + if(req_cultists > 1 || istype(src, /obj/effect/rune/narsie) || istype(src, /obj/effect/rune/convert)) var/list/things_in_range = range(1, src) var/obj/item/toy/plush/narplush/plushsie = locate() in things_in_range if(istype(plushsie) && plushsie.is_invoker) From 583bfdc66ae51dd26adeb08833c8fdeb1ab71a48 Mon Sep 17 00:00:00 2001 From: BlackMajor Date: Sun, 24 Mar 2019 23:34:49 +1300 Subject: [PATCH 23/37] Ling HUD icons Adds a shit load of HUD icons for changeling actions. --- code/datums/mind.dm | 5 +++++ .../changeling/cellular_emporium.dm | 2 +- .../changeling/changeling_power.dm | 2 ++ .../antagonists/changeling/powers/absorb.dm | 3 +++ .../changeling/powers/adrenaline.dm | 3 +++ .../changeling/powers/augmented_eyesight.dm | 5 +++++ .../changeling/powers/biodegrade.dm | 3 +++ .../changeling/powers/chameleon_skin.dm | 4 ++++ .../changeling/powers/digitalcamo.dm | 4 ++++ .../changeling/powers/fakedeath.dm | 7 +++++- .../changeling/powers/fleshmend.dm | 3 +++ .../antagonists/changeling/powers/headcrab.dm | 3 +++ .../antagonists/changeling/powers/hivemind.dm | 19 ++++++++++++++++ .../changeling/powers/humanform.dm | 3 +++ .../changeling/powers/lesserform.dm | 3 +++ .../antagonists/changeling/powers/linglink.dm | 3 +++ .../changeling/powers/mimic_voice.dm | 3 +++ .../changeling/powers/mutations.dm | 17 ++++++++++++++ .../antagonists/changeling/powers/panacea.dm | 3 +++ .../changeling/powers/pheromone_receptors.dm | 3 +++ .../changeling/powers/regenerate.dm | 3 +++ .../antagonists/changeling/powers/revive.dm | 4 ++++ .../antagonists/changeling/powers/shriek.dm | 6 +++++ .../antagonists/changeling/powers/spiders.dm | 3 +++ .../changeling/powers/strained_muscles.dm | 3 +++ .../changeling/powers/tiny_prick.dm | 21 ++++++++++++++++++ .../changeling/powers/transform.dm | 3 +++ code/modules/mob/transform_procs.dm | 9 +++++--- icons/mob/actions/actions_changeling.dmi | Bin 0 -> 22156 bytes icons/mob/actions/backgrounds.dmi | Bin 5866 -> 6011 bytes 30 files changed, 145 insertions(+), 5 deletions(-) create mode 100644 icons/mob/actions/actions_changeling.dmi diff --git a/code/datums/mind.dm b/code/datums/mind.dm index d467d8fd9d..741822d546 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -752,6 +752,11 @@ for(var/X in spell_list) var/obj/effect/proc_holder/spell/S = X S.action.Grant(new_character) + var/datum/antagonist/changeling/changeling = new_character.mind.has_antag_datum(/datum/antagonist/changeling) + if(changeling) + for(var/P in changeling.purchasedpowers) + var/obj/effect/proc_holder/changeling/I = P + I.action.Grant(new_character) /datum/mind/proc/disrupt_spells(delay, list/exceptions = New()) for(var/X in spell_list) diff --git a/code/modules/antagonists/changeling/cellular_emporium.dm b/code/modules/antagonists/changeling/cellular_emporium.dm index 2a37a3885d..3cf0a3ee25 100644 --- a/code/modules/antagonists/changeling/cellular_emporium.dm +++ b/code/modules/antagonists/changeling/cellular_emporium.dm @@ -72,7 +72,7 @@ name = "Cellular Emporium" icon_icon = 'icons/obj/drinks.dmi' button_icon_state = "changelingsting" - background_icon_state = "bg_alien" + background_icon_state = "bg_ling" var/datum/cellular_emporium/cellular_emporium /datum/action/innate/cellular_emporium/New(our_target) diff --git a/code/modules/antagonists/changeling/changeling_power.dm b/code/modules/antagonists/changeling/changeling_power.dm index c89dc50cec..1d4f15ec9d 100644 --- a/code/modules/antagonists/changeling/changeling_power.dm +++ b/code/modules/antagonists/changeling/changeling_power.dm @@ -20,10 +20,12 @@ /obj/effect/proc_holder/changeling/proc/on_purchase(mob/user, is_respec) + action.Grant(user) if(!is_respec) SSblackbox.record_feedback("tally", "changeling_power_purchase", 1, name) /obj/effect/proc_holder/changeling/proc/on_refund(mob/user) + action.Remove(user) return /obj/effect/proc_holder/changeling/Click() diff --git a/code/modules/antagonists/changeling/powers/absorb.dm b/code/modules/antagonists/changeling/powers/absorb.dm index 2f8fc6943f..34a8231960 100644 --- a/code/modules/antagonists/changeling/powers/absorb.dm +++ b/code/modules/antagonists/changeling/powers/absorb.dm @@ -4,6 +4,9 @@ chemical_cost = 0 dna_cost = 0 req_human = 1 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_absorb_dna" + action_background_icon_state = "bg_ling" /obj/effect/proc_holder/changeling/absorbDNA/can_sting(mob/living/carbon/user) if(!..()) diff --git a/code/modules/antagonists/changeling/powers/adrenaline.dm b/code/modules/antagonists/changeling/powers/adrenaline.dm index 34d6e3605b..ede14a23c9 100644 --- a/code/modules/antagonists/changeling/powers/adrenaline.dm +++ b/code/modules/antagonists/changeling/powers/adrenaline.dm @@ -6,6 +6,9 @@ dna_cost = 2 req_human = 1 req_stat = UNCONSCIOUS + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_adrenals" + action_background_icon_state = "bg_ling" //Recover from stuns. /obj/effect/proc_holder/changeling/adrenaline/sting_action(mob/living/user) diff --git a/code/modules/antagonists/changeling/powers/augmented_eyesight.dm b/code/modules/antagonists/changeling/powers/augmented_eyesight.dm index 5ec5440a2b..6eafeda63f 100644 --- a/code/modules/antagonists/changeling/powers/augmented_eyesight.dm +++ b/code/modules/antagonists/changeling/powers/augmented_eyesight.dm @@ -8,12 +8,16 @@ chemical_cost = 0 dna_cost = 2 //Would be 1 without thermal vision active = FALSE + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_augmented_eyesight" + action_background_icon_state = "bg_ling" /obj/effect/proc_holder/changeling/augmented_eyesight/on_purchase(mob/user) //The ability starts inactive, so we should be protected from flashes. var/obj/item/organ/eyes/E = user.getorganslot(ORGAN_SLOT_EYES) if (E) E.flash_protect = 2 //Adjust the user's eyes' flash protection to_chat(user, "We adjust our eyes to protect them from bright lights.") + action.Grant(user) else to_chat(user, "We can't adjust our eyes if we don't have any!") @@ -42,6 +46,7 @@ /obj/effect/proc_holder/changeling/augmented_eyesight/on_refund(mob/user) //Get rid of X-ray vision and flash protection when the user refunds this ability + action.Remove(user) var/obj/item/organ/eyes/E = user.getorganslot(ORGAN_SLOT_EYES) if(E) if (active) diff --git a/code/modules/antagonists/changeling/powers/biodegrade.dm b/code/modules/antagonists/changeling/powers/biodegrade.dm index d1a2cc3891..f58b90d8e6 100644 --- a/code/modules/antagonists/changeling/powers/biodegrade.dm +++ b/code/modules/antagonists/changeling/powers/biodegrade.dm @@ -6,6 +6,9 @@ loudness = 1 dna_cost = 2 req_human = 1 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_freedom" + action_background_icon_state = "bg_ling" /obj/effect/proc_holder/changeling/biodegrade/sting_action(mob/living/carbon/human/user) var/used = FALSE // only one form of shackles removed per use diff --git a/code/modules/antagonists/changeling/powers/chameleon_skin.dm b/code/modules/antagonists/changeling/powers/chameleon_skin.dm index 3be5103105..b7545353b2 100644 --- a/code/modules/antagonists/changeling/powers/chameleon_skin.dm +++ b/code/modules/antagonists/changeling/powers/chameleon_skin.dm @@ -5,6 +5,9 @@ dna_cost = 2 chemical_cost = 25 req_human = 1 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_camouflage" + action_background_icon_state = "bg_ling" /obj/effect/proc_holder/changeling/chameleon_skin/sting_action(mob/user) var/mob/living/carbon/human/H = user //SHOULD always be human, because req_human = 1 @@ -18,6 +21,7 @@ return TRUE /obj/effect/proc_holder/changeling/chameleon_skin/on_refund(mob/user) + action.Remove(user) if(user.has_dna()) var/mob/living/carbon/C = user var/datum/mutation/human/HM = GLOB.mutations_list[CHAMELEON] diff --git a/code/modules/antagonists/changeling/powers/digitalcamo.dm b/code/modules/antagonists/changeling/powers/digitalcamo.dm index e8bad0e215..6a0f78b532 100644 --- a/code/modules/antagonists/changeling/powers/digitalcamo.dm +++ b/code/modules/antagonists/changeling/powers/digitalcamo.dm @@ -4,6 +4,9 @@ helptext = "We cannot be tracked by camera or seen by AI units while using this skill. However, humans looking at us will find us... uncanny. This ability is somewhat loud, and carries a small risk of our blood gaining violent sensitivity to heat." dna_cost = 1 loudness = 1 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_digital_camo" + action_background_icon_state = "bg_ling" //Prevents AIs tracking you but makes you easily detectable to the human-eye. /obj/effect/proc_holder/changeling/digitalcamo/sting_action(mob/user) @@ -19,5 +22,6 @@ return TRUE /obj/effect/proc_holder/changeling/digitalcamo/on_refund(mob/user) + action.Remove(user) user.digitalcamo = 0 user.digitalinvis = 0 \ No newline at end of file diff --git a/code/modules/antagonists/changeling/powers/fakedeath.dm b/code/modules/antagonists/changeling/powers/fakedeath.dm index 753d858cef..41438bcebd 100644 --- a/code/modules/antagonists/changeling/powers/fakedeath.dm +++ b/code/modules/antagonists/changeling/powers/fakedeath.dm @@ -6,6 +6,9 @@ req_dna = 1 req_stat = DEAD ignores_fakedeath = TRUE + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_regenerative_stasis" + action_background_icon_state = "bg_ling" //Fake our own death and fully heal. You will appear to be dead but regenerate fully after a short delay. /obj/effect/proc_holder/changeling/fakedeath/sting_action(mob/living/user) @@ -25,7 +28,9 @@ var/datum/antagonist/changeling/C = user.mind.has_antag_datum(/datum/antagonist/changeling) if(C && C.purchasedpowers) to_chat(user, "We are ready to revive.") - C.purchasedpowers += new /obj/effect/proc_holder/changeling/revive(null) + var/obj/effect/proc_holder/changeling/revive/RV = new /obj/effect/proc_holder/changeling/revive(null) + C.purchasedpowers += RV + RV.action.Grant(user) /obj/effect/proc_holder/changeling/fakedeath/can_sting(mob/living/user) if(user.has_trait(TRAIT_DEATHCOMA, "changeling")) diff --git a/code/modules/antagonists/changeling/powers/fleshmend.dm b/code/modules/antagonists/changeling/powers/fleshmend.dm index 930b756b65..9672d79ee4 100644 --- a/code/modules/antagonists/changeling/powers/fleshmend.dm +++ b/code/modules/antagonists/changeling/powers/fleshmend.dm @@ -5,6 +5,9 @@ chemical_cost = 20 dna_cost = 2 req_stat = UNCONSCIOUS + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_fleshmend" + action_background_icon_state = "bg_ling" //Starts healing you every second for 10 seconds. //Can be used whilst unconscious. diff --git a/code/modules/antagonists/changeling/powers/headcrab.dm b/code/modules/antagonists/changeling/powers/headcrab.dm index 8a932dbd62..72d8a127ab 100644 --- a/code/modules/antagonists/changeling/powers/headcrab.dm +++ b/code/modules/antagonists/changeling/powers/headcrab.dm @@ -6,6 +6,9 @@ dna_cost = 1 loudness = 2 req_human = 1 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_explode" + action_background_icon_state = "bg_ling" /obj/effect/proc_holder/changeling/headcrab/sting_action(mob/user) set waitfor = FALSE diff --git a/code/modules/antagonists/changeling/powers/hivemind.dm b/code/modules/antagonists/changeling/powers/hivemind.dm index 86926f51a9..b72123da6f 100644 --- a/code/modules/antagonists/changeling/powers/hivemind.dm +++ b/code/modules/antagonists/changeling/powers/hivemind.dm @@ -5,6 +5,16 @@ helptext = "We will be able to talk with other changelings with :g. Exchanged DNA do not count towards absorb objectives." dna_cost = 1 chemical_cost = -1 + action_icon = 'icons/mob/actions/actions_xeno.dmi' + action_icon_state = "alien_whisper" + action_background_icon_state = "bg_ling" + +/obj/effect/proc_holder/changeling/hivemind_comms/sting_action(var/mob/living/user) + if (user.has_trait(CHANGELING_HIVEMIND_MUTE)) + to_chat(user, "The poison in the air hinders our ability to interact with the hivemind.") + return + var/input = stripped_input(usr, "Please choose a message to transmit.", "Changeling Hivemind", "") + user.say(".g[input]") /obj/effect/proc_holder/changeling/hivemind_comms/on_purchase(mob/user, is_respec) ..() @@ -14,12 +24,15 @@ var/obj/effect/proc_holder/changeling/hivemind_upload/S1 = new if(!changeling.has_sting(S1)) changeling.purchasedpowers+=S1 + S1.action.Grant(user) var/obj/effect/proc_holder/changeling/hivemind_download/S2 = new if(!changeling.has_sting(S2)) changeling.purchasedpowers+=S2 + S2.action.Grant(user) var/obj/effect/proc_holder/changeling/linglink/S3 = new if(!changeling.has_sting(S3)) changeling.purchasedpowers+=S3 + S3.action.Grant(user) // HIVE MIND UPLOAD/DOWNLOAD DNA GLOBAL_LIST_EMPTY(hivemind_bank) @@ -29,6 +42,9 @@ GLOBAL_LIST_EMPTY(hivemind_bank) desc = "Allows us to channel DNA in the airwaves to allow other changelings to absorb it." chemical_cost = 10 dna_cost = -1 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_upload" + action_background_icon_state = "bg_ling" /obj/effect/proc_holder/changeling/hivemind_upload/sting_action(var/mob/living/user) if (user.has_trait(CHANGELING_HIVEMIND_MUTE)) @@ -63,6 +79,9 @@ GLOBAL_LIST_EMPTY(hivemind_bank) desc = "Allows us to absorb DNA that has been channeled to the airwaves. Does not count towards absorb objectives." chemical_cost = 10 dna_cost = -1 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_download" + action_background_icon_state = "bg_ling" /obj/effect/proc_holder/changeling/hivemind_download/can_sting(mob/living/carbon/user) if(!..()) diff --git a/code/modules/antagonists/changeling/powers/humanform.dm b/code/modules/antagonists/changeling/powers/humanform.dm index e04f00308f..a6f7b0b6e9 100644 --- a/code/modules/antagonists/changeling/powers/humanform.dm +++ b/code/modules/antagonists/changeling/powers/humanform.dm @@ -3,6 +3,9 @@ desc = "We change into a human." chemical_cost = 5 req_dna = 1 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_human" + action_background_icon_state = "bg_ling" //Transform into a human. /obj/effect/proc_holder/changeling/humanform/sting_action(mob/living/carbon/user) diff --git a/code/modules/antagonists/changeling/powers/lesserform.dm b/code/modules/antagonists/changeling/powers/lesserform.dm index 24403b406c..1f9ca0b3ff 100644 --- a/code/modules/antagonists/changeling/powers/lesserform.dm +++ b/code/modules/antagonists/changeling/powers/lesserform.dm @@ -5,6 +5,9 @@ dna_cost = 1 loudness = 2 req_human = 1 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_lesser" + action_background_icon_state = "bg_ling" //Transform into a monkey. /obj/effect/proc_holder/changeling/lesserform/sting_action(mob/living/carbon/human/user) diff --git a/code/modules/antagonists/changeling/powers/linglink.dm b/code/modules/antagonists/changeling/powers/linglink.dm index baa02ea7c8..70df78e3b4 100644 --- a/code/modules/antagonists/changeling/powers/linglink.dm +++ b/code/modules/antagonists/changeling/powers/linglink.dm @@ -4,6 +4,9 @@ chemical_cost = 0 dna_cost = -1 req_human = 1 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_link" + action_background_icon_state = "bg_ling" /obj/effect/proc_holder/changeling/linglink/can_sting(mob/living/carbon/user) if(!..()) diff --git a/code/modules/antagonists/changeling/powers/mimic_voice.dm b/code/modules/antagonists/changeling/powers/mimic_voice.dm index 6808ecd61a..170aea1e9c 100644 --- a/code/modules/antagonists/changeling/powers/mimic_voice.dm +++ b/code/modules/antagonists/changeling/powers/mimic_voice.dm @@ -5,6 +5,9 @@ chemical_cost = 0 //constant chemical drain hardcoded dna_cost = 1 req_human = 1 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_mimic_voice" + action_background_icon_state = "bg_ling" // Fake Voice diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm index 9e353a1855..3d6c766307 100644 --- a/code/modules/antagonists/changeling/powers/mutations.dm +++ b/code/modules/antagonists/changeling/powers/mutations.dm @@ -56,6 +56,7 @@ return W /obj/effect/proc_holder/changeling/weapon/on_refund(mob/user) + action.Remove(user) for(var/obj/item/I in user.held_items) check_weapon(user, I) @@ -105,6 +106,7 @@ /obj/effect/proc_holder/changeling/suit/on_refund(mob/user) if(!ishuman(user)) return + action.Remove(user) var/mob/living/carbon/human/H = user check_suit(H) @@ -141,6 +143,9 @@ req_human = 1 weapon_type = /obj/item/melee/arm_blade weapon_name_simple = "blade" + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_armblade" + action_background_icon_state = "bg_ling" /obj/item/melee/arm_blade name = "arm blade" @@ -225,6 +230,9 @@ weapon_type = /obj/item/gun/magic/tentacle weapon_name_simple = "tentacle" silent = TRUE + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_tentacle" + action_background_icon_state = "bg_ling" /obj/item/gun/magic/tentacle name = "tentacle" @@ -401,6 +409,9 @@ dna_cost = 1 loudness = 1 req_human = 1 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_shield" + action_background_icon_state = "bg_ling" weapon_type = /obj/item/shield/changeling weapon_name_simple = "shield" @@ -454,6 +465,9 @@ dna_cost = 2 loudness = 1 req_human = 1 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_space_suit" + action_background_icon_state = "bg_ling" suit_type = /obj/item/clothing/suit/space/changeling helmet_type = /obj/item/clothing/head/helmet/space/changeling @@ -503,6 +517,9 @@ loudness = 2 req_human = 1 recharge_slowdown = 0.25 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_armor" + action_background_icon_state = "bg_ling" suit_type = /obj/item/clothing/suit/armor/changeling helmet_type = /obj/item/clothing/head/helmet/changeling diff --git a/code/modules/antagonists/changeling/powers/panacea.dm b/code/modules/antagonists/changeling/powers/panacea.dm index cb5aba6c99..9f7a36f214 100644 --- a/code/modules/antagonists/changeling/powers/panacea.dm +++ b/code/modules/antagonists/changeling/powers/panacea.dm @@ -5,6 +5,9 @@ chemical_cost = 20 dna_cost = 1 req_stat = UNCONSCIOUS + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_anatomic_panacea" + action_background_icon_state = "bg_ling" //Heals the things that the other regenerative abilities don't. /obj/effect/proc_holder/changeling/panacea/sting_action(mob/user) diff --git a/code/modules/antagonists/changeling/powers/pheromone_receptors.dm b/code/modules/antagonists/changeling/powers/pheromone_receptors.dm index c3fe3c9bc0..4995b27807 100644 --- a/code/modules/antagonists/changeling/powers/pheromone_receptors.dm +++ b/code/modules/antagonists/changeling/powers/pheromone_receptors.dm @@ -10,6 +10,9 @@ chemical_cost = 0 //Reduces regain rate while active. dna_cost = 2 var/receptors_active = FALSE + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_pheromone" + action_background_icon_state = "bg_ling" /obj/effect/proc_holder/changeling/pheromone_receptors/sting_action(mob/living/carbon/user) var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling) diff --git a/code/modules/antagonists/changeling/powers/regenerate.dm b/code/modules/antagonists/changeling/powers/regenerate.dm index c86bf271d4..a1f8e1ef9b 100644 --- a/code/modules/antagonists/changeling/powers/regenerate.dm +++ b/code/modules/antagonists/changeling/powers/regenerate.dm @@ -8,6 +8,9 @@ chemical_cost = 10 dna_cost = 0 req_stat = UNCONSCIOUS + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_regenerate" + action_background_icon_state = "bg_ling" /obj/effect/proc_holder/changeling/regenerate/sting_action(mob/living/user) to_chat(user, "You feel an itching, both inside and \ diff --git a/code/modules/antagonists/changeling/powers/revive.dm b/code/modules/antagonists/changeling/powers/revive.dm index 937748a7ef..514b7603fd 100644 --- a/code/modules/antagonists/changeling/powers/revive.dm +++ b/code/modules/antagonists/changeling/powers/revive.dm @@ -5,6 +5,9 @@ req_stat = DEAD always_keep = TRUE ignores_fakedeath = TRUE + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_revive" + action_background_icon_state = "bg_ling" //Revive from revival stasis /obj/effect/proc_holder/changeling/revive/sting_action(mob/living/carbon/user) @@ -26,6 +29,7 @@ to_chat(user, "We have revived ourselves.") var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling) changeling.purchasedpowers -= src + src.action.Remove(user) return TRUE /obj/effect/proc_holder/changeling/revive/can_be_used_by(mob/living/user) diff --git a/code/modules/antagonists/changeling/powers/shriek.dm b/code/modules/antagonists/changeling/powers/shriek.dm index f77624d072..65e58ae65b 100644 --- a/code/modules/antagonists/changeling/powers/shriek.dm +++ b/code/modules/antagonists/changeling/powers/shriek.dm @@ -6,6 +6,9 @@ dna_cost = 1 loudness = 1 req_human = 1 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_resonant" + action_background_icon_state = "bg_ling" //A flashy ability, good for crowd control and sewing chaos. /obj/effect/proc_holder/changeling/resonant_shriek/sting_action(mob/user) @@ -36,6 +39,9 @@ chemical_cost = 20 dna_cost = 1 loudness = 1 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_dissonant" + action_background_icon_state = "bg_ling" //A flashy ability, good for crowd control and sewing chaos. /obj/effect/proc_holder/changeling/dissonant_shriek/sting_action(mob/user) diff --git a/code/modules/antagonists/changeling/powers/spiders.dm b/code/modules/antagonists/changeling/powers/spiders.dm index 2bd1bc8a35..489f646b39 100644 --- a/code/modules/antagonists/changeling/powers/spiders.dm +++ b/code/modules/antagonists/changeling/powers/spiders.dm @@ -6,6 +6,9 @@ dna_cost = 1 loudness = 4 req_absorbs = 3 + action_icon = 'icons/effects/effects.dmi' + action_icon_state = "spiderling" + action_background_icon_state = "bg_ling" //Makes some spiderlings. Good for setting traps and causing general trouble. /obj/effect/proc_holder/changeling/spiders/sting_action(mob/user) diff --git a/code/modules/antagonists/changeling/powers/strained_muscles.dm b/code/modules/antagonists/changeling/powers/strained_muscles.dm index 832f6073b6..4e8b8adbd1 100644 --- a/code/modules/antagonists/changeling/powers/strained_muscles.dm +++ b/code/modules/antagonists/changeling/powers/strained_muscles.dm @@ -10,6 +10,9 @@ req_human = 1 var/stacks = 0 //Increments every 5 seconds; damage increases over time active = 0 //Whether or not you are a hedgehog + action_icon = 'icons/obj/implants.dmi' + action_icon_state = "adrenal" + action_background_icon_state = "bg_ling" /obj/effect/proc_holder/changeling/strained_muscles/sting_action(mob/living/carbon/user) active = !active diff --git a/code/modules/antagonists/changeling/powers/tiny_prick.dm b/code/modules/antagonists/changeling/powers/tiny_prick.dm index 6c9e0c6599..b9abf76fd1 100644 --- a/code/modules/antagonists/changeling/powers/tiny_prick.dm +++ b/code/modules/antagonists/changeling/powers/tiny_prick.dm @@ -70,6 +70,9 @@ dna_cost = 3 loudness = 1 var/datum/changelingprofile/selected_dna = null + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_sting_transform" + action_background_icon_state = "bg_ling" /obj/effect/proc_holder/changeling/sting/transformation/Click() var/mob/user = usr @@ -117,6 +120,9 @@ chemical_cost = 20 dna_cost = 1 loudness = 1 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_sting_fake" + action_background_icon_state = "bg_ling" /obj/item/melee/arm_blade/false desc = "A grotesque mass of flesh that used to be your arm. Although it looks dangerous at first, you can tell it's actually quite dull and useless." @@ -169,6 +175,9 @@ sting_icon = "sting_extract" chemical_cost = 25 dna_cost = 0 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_sting_extract" + action_background_icon_state = "bg_ling" /obj/effect/proc_holder/changeling/sting/extract_dna/can_sting(mob/user, mob/target) if(..()) @@ -190,6 +199,9 @@ chemical_cost = 20 dna_cost = 2 loudness = 2 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_sting_mute" + action_background_icon_state = "bg_ling" /obj/effect/proc_holder/changeling/sting/mute/sting_action(mob/user, mob/living/carbon/target) log_combat(user, target, "stung", "mute sting") @@ -204,6 +216,9 @@ chemical_cost = 25 dna_cost = 1 loudness = 1 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_sting_blind" + action_background_icon_state = "bg_ling" /obj/effect/proc_holder/changeling/sting/blind/sting_action(mob/user, mob/living/carbon/target) log_combat(user, target, "stung", "blind sting") @@ -220,6 +235,9 @@ sting_icon = "sting_lsd" chemical_cost = 10 dna_cost = 1 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_sting_lsd" + action_background_icon_state = "bg_ling" /obj/effect/proc_holder/changeling/sting/LSD/sting_action(mob/user, mob/living/carbon/target) log_combat(user, target, "stung", "LSD sting") @@ -238,6 +256,9 @@ chemical_cost = 15 dna_cost = 2 loudness = 1 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_sting_cryo" + action_background_icon_state = "bg_ling" /obj/effect/proc_holder/changeling/sting/cryo/sting_action(mob/user, mob/target) log_combat(user, target, "stung", "cryo sting") diff --git a/code/modules/antagonists/changeling/powers/transform.dm b/code/modules/antagonists/changeling/powers/transform.dm index 1e2b22cdae..767c7d2621 100644 --- a/code/modules/antagonists/changeling/powers/transform.dm +++ b/code/modules/antagonists/changeling/powers/transform.dm @@ -5,6 +5,9 @@ dna_cost = 0 req_dna = 1 req_human = 1 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_transform" + action_background_icon_state = "bg_ling" /obj/item/clothing/glasses/changeling name = "flesh" diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index 342ee386b6..5703e2190b 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -96,7 +96,9 @@ mind.transfer_to(O) var/datum/antagonist/changeling/changeling = O.mind.has_antag_datum(/datum/antagonist/changeling) if(changeling) - changeling.purchasedpowers += new /obj/effect/proc_holder/changeling/humanform(null) + var/obj/effect/proc_holder/changeling/humanform/HF = new /obj/effect/proc_holder/changeling/humanform(null) + changeling.purchasedpowers += HF + HF.action.Grant(O) for(var/X in internal_organs) var/obj/item/organ/I = X @@ -129,8 +131,9 @@ mind.transfer_to(O) var/datum/antagonist/changeling/changeling = O.mind.has_antag_datum(/datum/antagonist/changeling) if(changeling) - changeling.purchasedpowers += new /obj/effect/proc_holder/changeling/humanform(null) - + var/obj/effect/proc_holder/changeling/humanform/HF = new /obj/effect/proc_holder/changeling/humanform(null) + changeling.purchasedpowers += HF + HF.action.Grant(O) if (tr_flags & TR_DEFAULTMSG) to_chat(O, "You are now a monkey.") diff --git a/icons/mob/actions/actions_changeling.dmi b/icons/mob/actions/actions_changeling.dmi new file mode 100644 index 0000000000000000000000000000000000000000..ce6b81e13ba6eaafe99eb8923dd8c1694bb08394 GIT binary patch literal 22156 zcmaHTWmFtNw`~vZu7Tk0K>~qbgS)#!Ah-l~f+RQu*Wm8K32q_5-JReN+~qajeRr+< z#2Tk85?@Aht=jeXWc%&vT6n$d8MM$||EYUn48-Ko9wcDRK z<@#dn#@rPeW@0rRLIF32s3nXpdaqjD-m{YPnB%?64bbfCym4e(lVckP!2m!3$cT%o zdt@ADdg|jztvm}4qkkIA2@OCjK5ggNmVxG#{l<*pu^+P)*P8944iCeWjNd_qK)?4= z(=aiG(To?*D{x!SFxa#b&Dcg>!=H*^V~s;dn;i=M{4dleC($^#E;w=@{o2yLR~}dH zlihKxmO5z6CaW;u#eVzt29sdB9Ux9EBGw7u%@ZcGSlvH#pCcb&5mPXj^%20!X#v@g2s#DT z!^1;mH8og(4mT&UhMw*CtrHJW%-nRu&J^8BJxp6a^iwVw2USlGkAUFJN~=%q(VS#pu=cz^PwW%HedpgyDS?Vwz{y zRV3kv(kmv@U)I69++|6%9EB)+~+=;1^R2OnPo2&iOK_vn5k_q)lFSq$;MI;8CG zOE6c7i;Ej5*Qv$A#{L`{ie$Uen##^g6a0uc;@+zPfOfuJE2rqNoLErs^nCa1xjmFR zFgQ5*BhbywO%<;vuMs|fL(b1JSnCP;D+~_chQTYWcvC>T#N$jCcJt)Do$0hMR9Rm?QqcR#cpVD=y>axJt*!fFhMku7ucXaAH8u5pJ-xp*q^-3T0NT8-`yDzS z5v-9>QBhBi8dsq?%F<_o2h#{sv_e3&<5X!N%vx{Lm=l%GF5mcv>G9Bi9UtG0d{<&ivC)B^>*L5)A0mL((>Xbbo8{+4K5+bX{$PHViJ7PtD9E5t7q#ocMCM6D_e@RC}D7vKY0K>NVKDk#W^FyS;<#7GY}(uT#m} z49YfqiI2wx6g@^j_d}PGl;i|`EHYsO_5#aTZl;RIGJP!JNHko@;B}~O6pEf+aYeMhW}Q{N9X5FMi1wK0MLZSOHEGFX}p-}bc(&HTps~P!|{_$fz#7b z;q#TcSwgSL$jAo%+y$)8N?Z!PU*7+0D55y> z>t?p2y)PIUx7v1|vs|w+x?H;kT6#~QSD#d#F+MY@4L5U)#<%WU`L7wF9@5zS+B_Il zVU_2Gh*}@*cWs;P{Ev_l5M1&KXk|%B0RWRnv#c#4DQROoPil_K`)zAmYqj^ay~UI8 za~OzV9`{=^8A8qozJLBW-VG7A`kv7Mo%8d=Ki&UXbh{t-exI*B-5sZ134bN);lW4k z)&K-d!)CX`4V3VOW=aPkvaFSEHgXFI8FGFcT55Jq1ra0=>sW`Gl~sap`u^k;t~{u` z#$uS`z0VC+t;I0Z+Paix+5x)*_C}DF*1X}-wIv=I9zaAFBvG#jX*De_Y7k+1W!3(cyE+EA z2GwcQycTfdxCPv78o<3*ro5uUiJcRt)c*;$>iQq%G&n0&Pd8FSE47HsT9q_5vz6v< z|5k?cVdp5jcr3*S+{Jo9uO6H+gsCJ${agifV;_aD1}UFDvOw9C@%->%%QT8&bXN_1dJ)FnS>SG@RSH+6 zEO&7!nv*{m(WUx^fd@Fu%;50p1U%%H&_#0;Q!g%D6m2odC@3fZOtSZ#L5P?DU?#uj zf(?b2WXcbh= zP%aZ8Xo!{|K~A7}9-^~=h*X4B83CK0WFF@Gc+uKtnAlO(PAK!I5 zqsicLklfnZS~L7WGvR(LE-f7@BZ1_SvF6gnvHE6we4FXD$oX5tuXVRBq7_*dCs$Tt zt4SP9=*3Qd0#Lr0Vw52QGBPqlr5a^Oz?6=5XJZb;*J7CSch4>8fIw&DiK9L6pXYARwqIV3 z#oA@LY8I@xtQp z-MLQjypICU6^HCnYcu$yZKo&(b*ZU>NFeAel$)DtTNJgYvUzY69W**axnRX8e8pMggBw4kB^UnpFfR;j?QgJdu~D1Fu3MAovs|^vEi{+6Fg^gD3zQO42tcITn@>7)u zFg5Rb6&|(Dla)aGEo(Bo#_2>3X_q*-2T{rG`tnjEnoO`|61kdI?y`^2i0HyVE-@wr z9+dz~SXemo{_O0m+Vwy)UJ$o+y4DHCb{V2an0*EwIc>x z1u#G_R9;Sw`di@acrZA5+_;qW9w5;azdl}e+8!dVc#mEgSSrGy=@g8u+Z7#J(B}W_ zXVC-i|I$;RHvQ8MvRM;sOO@AGi$(*Zdm%SX*AYl3=;HQ%1Z*?D{$PhXCfic09oL~7 zhlgke5tJIzC1+M)t*!4fBN$Dz^07V8AQ?>_qzt3*;mw3u&LjZ>^#L9D977n=>3y$! zV^UL7cURg30)v9aYdcO<~W|#AV2S(~WPqQg9L-o>i^3>H?6!{Wfe&S6Nf3`Gb|zu;DF9p)pqsjp~~o2DK0$#*z`w<**`z=xgDm=I8E)3KY*kpU1!S8 zQ&gavn9Hmmt$)}q$ZJLJiUQFBQYk8}-2VBY8|TLLTHLMz^*!t7!$qxAvtu^^&9CLb zy|bBc&V53`%Qu=uj#OvU-%fzJ4!!Aa?oGLnTciVQS}se?4PI6-=fcJ&(xYZquwR+6 zEb>S6MKfeX3{oU_clQq#7SIA!t0QJMwlB|@2Mq97czD6t*%S#dCmnvT!3b6NSE)J^ zcvkoFawcIdQ4pLod~#eIl+z-F+H8uWqVw{F(jtq`(;nXxop{fncy{mr?@Fp24??oL zf>dVP2=8u4dxCy^YMPqP{^Q3&_Lmo?U_L<3p_T8w&W7B0e_xm6+55pie_YtM|40o5 z!lQ5Td*ic<BCYi8l7A#%XofF5L}<}TFfQ81vPRLUHlCXE-x1iF z9+fnaLDDBTM6^CO{uA*JQr&gG+94^Fa%)gj9IlFp{F5S>p`noX-quoxl0|NU=kzc* zYcZm!?PKXxR?;OdHX)%D3=GW8sFRbE?)A*~Qie_)QKxiPZtesb(AkcUkC9MNy34BC zQGlEEujDVm9k}_i(nrb`Y=p2}`Kex91+EwyQ4!~T5uL88nn_qX=Cv0sz+TICxHc}| zKynVxlvdCCVm3i!&|Rm)a@x2-%H5Boyo(Lrg_X^Q`@Z$Fw|I>w4Q>-&nq zH+LmuBX+GV!lZ2S0OeIfWzu#?mKIBnCKpApsFgY9QWG~CAcEvB*X+rQwYEy$e5-SE zjc!}U(6)^st( zy1QyqUP*SH7F;)2C?Ujb}A zA;xi9QeAX(G&FHdO@d$>BO{~2dS}-zRAusrDIC!KhF0*)_J2DfW0|Z;(~Cguu}1gp&O3+a4G~(_+*45qwKN z-2CVrmAFN|#o`q($c@>g-f`1Xp5>7xbi4b*Z^O4=Kda>5s`3yI>^r-i+q*kx(^~|Y zJBULyJ2pAiLrJEckbzH~mtfY;<-zP53waK_J$jSpuhdBG2ccXan;FkGB^CQxlMic- zcC7U~{FYydRGjED?qa|FMp{|gGl=oFDY^79$TiVCOgI3-f3+9Ec0j*`2zXx~)BgSY zmw!}?DN(!L8b5FFPGvz4p6Bo5LB3`mroiO%V|E0%;)pGNxk|l1uG0%B_4Cc)cds!Z zP&aB?V?e=UjNmX|RbT4(j=m7j`H$9n-H8r4#)bV7i7UzccYP^8U&NKnHQhiX2L_E zOE&*)Y}x4l3Bo6LJGcttyfeac0BfFf@6d&^Z+$Og^@xLmg9KEiq@?5$T=7uT(S4DT zmL@`2GnJ7+);BP~#>Jg%z%69$RU{M@C+bfy6JeAsz@aTQbveJ1+>humo%p@e*~?M= zcux!GvAix=u(Tli*oR+`SyE}v5&)A#TX&?^|KkHo0E!y^P0IMU>ruU~9|F2nlwoCg zE>o!ZS-~?^9F&wfI;L_aO(ESbuC8`m&Ot2Mluo1h7NDQVtE=Os3VIVLB4qSjCLA~_ z{*dY*GqCn;)3;0S)e1bt{>QONE$_~Xj{?8h^CMqma^!40Kee)#?!pQ-?d}!--BZ2z z?iS`;3%57ERmy9vqXccAVM`g0{@g}jm{ExG-VPW3CEJ725cghF7$fthJ>yU}C zs`}DAb!i+D=p3D`yM-MGxXZ!-5C~-8_wO#y<5P*bEcgyr+J4H`X3e*GyMINCeS0Y# z`|Gvya>t3?&D{NID^k?!OH)ODJI5sOTr88J_GrBCSW-!}N@c+3Uz<-Qn}1cKUI=Wh zNG8V%Z~br~`910Xq_QszH`CNmnV6Uoj3fCG^=W8nWo8g}kCxLJ66fQ#W_1lSRRbu= z^owkwwktaH(qx*+THGoXwTXMOyHPPP`YZGrZx~@UnDFnejt2knYKB5{Zf-7uRa2K) z4E9_34WxW#agxyXQ8Oo1j|9G4RQ7zp777ywGm#)6@+%cKaCV&d3u2RGnB&a}ma4KN zp^%W^Eq9CWX|Bon*>3u**+3-IH*v?_nBj3sAfY=L7LnKRPhtyxV zOzmKhc-oDN$^yns#p+B=KYvp5@e#cQ##q=GduYq>wjL^2Axg+K|E;7G$2y0spHxNbXI~)UUhGaX2-9 zC$;2XIY7Jecn#!`n)xhnQXnaV>_++g@JW(1#5`0+>@KZ@G9f`E9{A@@03X_jErG98meNJ z1%G4;AGXQq33NYUW6j5e!FLu-Zt4!orF>N(aC~~W?VXt+xVpNk204vtN$>fnaE#~q zcKtz@a@lk~n2YnFA$H0ZH}QF^yNcN9e|2)Q7DN*cOAVuc$ZJ5Et1D)E$-jW|V?G%v z@a}LO*M0><>w@g67gbs7r&46~LWxbs8_ig%3r$rU_cIk_Awex1Ou*$Ho>wb>`!CgB zg!RcjO_d4z(A)DJTyT_N4l}o+)~=7p{mO0t1NETFqi>owfNxk z*7r?1{?G_);2ps0@ReHNUrkLQm`ES@+U@D-q3s~cxy%#x+0jmlRAoqE>1r(+tTdF! zHYOLGA!3%sM%jKbYa!|1-o!UUJXZq+88=&0#x+IEaS;L3ywVT7CXkv4!O!tAvJ?#o z6|N>kG$J`SyIb7ciXJK|-)N}d_|}&@{Ea?}k8f<4`uKvm9+)OVJUCz%vUWhQQLAzw z9rS@HaBg9I^tCzs{Gl8i``1r1O4LF?=Q{Tqrka95t77qqshL^*#OCHEvhgcQ7=_hG zhGG6#+&N@G8s~^>`kAg7iRgnyU>`1wX?z4<4Wx2Tn3Ccx4?E#+i6_2KB{V`8I*;d5 zI27q`6Q4@4Bz7ScCf4dcw6wHflD1FF$hVKCwv{XR;pzUL{A{JcA}jP2UXZ2)7_h~F z2^zl+*#fAtpU{N;O7KrfM_#225oKj8`<2#`L_&N+3k!>MQBGYk20nug+^@d&4y0}` z=G>U{A570}e(rvAfVOhqN;)|tX<+UGTO8Xf09l57q}oaiIsL5$x@CmJ$-i|XR{@yc zwrO59R0%reNahKYd-B7)kf!SrT)!t940foKN!t6%w8oJBkGPtYP%*KW)C(RVAvFU7 zQUn2OcdkSP7#&QR`ZNp;4H4wUzY5n5?eDiI-Krtniy0YSyNLpTw2^u@vu7i?>@sKv+oBD zBcqkRs_H}&%ec_`bN?JuaV%rU?XO$9on9qU0;~h0OjO; z7Uu9N`sTVs!Udz>qVr|4B(c3Z1H-F#s&F}WueEYMO#U{NV95J08A2aR_vVR2_?d^0 zXZ6PB@9#nd4Q41NhwWWx1G_A4L4qX1(R^)@CV37RObn;_o|NDwi%W9Ataq+-x9Fzg*pTVX9WssrYzlRs@ZA3dJ_8PB+x z^-3_Sp~n&!AusW49+=kdj6|rE<^Rk3%;$UNP>WuSBxu|fSJHbwr^1jZdm&D8?1SL3 zXXBq=RHVji)%86^cFsSB0%`i-JH$obr{PK@p)e_hV$onwiJdG(b$mS4v7$oavoWR)$jftV}SC{HDK(6q7<9d|0^J*c4@(aH) zU<`Iwdja9$*btfX6`vf@_OGzm@Qcvx_r7PdR*=n&4VI0KjVT~@sIcVT=OE1JIX357 zf)L+HZI4|uSeK^O%DS%!Ru^vx+YYap3eftczU9~qu9|TiGf+)hokQI=9ij8HE9Pd*WPEbH#Kh@)GYBgBMsDF zfAx1|J0nEw-DeicuD^yL6Ipiw##=ceOVJF0R9i5B-8Yoe>uag~4%JhIPCw8^rX%ok z2=wM~;~HeZRZk2OY{}N7A82irVw-0(^;M;%C>k0XN6w*jG<<1KpLWTXT9=3JWHkK1 zyg4rUYU?{QhycYrHCoq~u==pc`AXkuOI7i~ zRB7b&Y;PWi#)g!$&g*VZr>C%Tma+50+bEBsuUJe%KyhVd|3J{^-P*x;eoG{L>JWu= z*>>c)m_@TP;NpnrrA1s+K6CJar36u`w<}Od$s1M%NIZ( z@Ryd6d{~0PrRgRc0gcV-odv@YKDh(~l)qgq8Oy3gXj3xEyoO#2-S;oU&Iiw~DAe|| zKjWnBxpf$TESTHJND?0N!(yoF0!4mdN`S@Qw#RI2lbcBn zyb4-=Q`zta%L6+k-#1<~vt57TMyUPL(ZQsjg zDlLsPF*%tfeX26_#IJfqOGSigt$9F?F}#HR=HmO-+2WmH_=>ra_BoF30Y}rieEA0g!J*zI9>7Dem{5MkAOj~l-O92UOABcyRg18 zF@(E_7`H>(_8}n~L#heV0aN)9-KQ?tfa?|S(GSAiN?x~d@_(kjO)Hg{xeV4t|NJSC z#BQX>X4pDsyE^cVT18bA1``wW;j+q~_Vee@t!5ZNYisKm$bP{}SpV+MrVRUYO*+1U zwAAcB^RztGl9Tz5S#PFbLd%RRD=Ul3%X?>y{O#hNr{fL%iqZ+y`+derJFplR=9HXo zK?01nA#)B*`|0yva*OC_8fr7i50F0tDcJu*fbk7}E^NNq1Qu*TAM!-#YGvEbs3vuw zgktBjjgdtmzgnoDoM<0*ZD9a!y2B4HcJ4Ih=H_vKUC$a*J=W*{Ap@l99yZGn%C5dtp+Z(Jhx$K1#vIAf8**p4C$MG`w zT}y|@Z2C!=x3jy`-`y_C8*)!gG#7q?!HtklsT^cdv`F0Aa^OlwZsCfrb>yruc#@KN zn*9Nw2ZXb4)k1c~U~UjgF_Dd-LL|nYu*1Ji+=aa>KCuAD0qxV!?a>iDb?SCul4R=s zT^{#d2F#x@wUTH=RfD(TbazOZamOJbknHa6zVJifH^-k!xd~9M_A-S5@0ML#+WfIw zkq-Qk4`6>)fYK|c{izcFnAZYV5(bMKDnu2pZ5TfA%V99#MZTfRrFviN=^Y$iS6Ar# z6?0UFFZFr!%DGzHllt>7J`yDO&fwtSQBzaXB$BwA5)N*m?1aeIH%yK+ zg~MhjTqCLbICa?=DZHybY7^dU$TrraDso5wz5nJ_BVA$P6&ZbZ(n3gPq8~;Qz=w(i zxMF_(*k0fDuXew#mk=Dt1$LexOk`M?&iB~Z6XHkPp%6Jyy;BG%Lr`FYTCdx4z0-B8 z1dSDZ1T7&Fa660`A0MZA^G0PyaIf@BgR7!kLNEl7+xS|Yz5%y41@j5x6)mLwm#D<# z6XEwqGKD>b8CC7q5~Y+{XCCK=gybfheYYMX4k&EiqjvgJ6B8fmRZkaes@9`;SJsNMy*HzHPr#3?}7gPo~PS4GXLf0E+r9tLYByzmdvvT(WLReZ$DR?X8DRqfFy@U#oj?<;`s=)XAA} zmeF*(oW83=*TL!6uzB~5M9PM}PgVZ*LFGWpuY3i$ELNIh zr`rj}^ly-nk&DbsP5YJQh;VUh^=I`Hv~-g2U>(OAU8u480knx;#Ho5EYtU}JsCj@R zl|1tS*VA|k|8^?v=rG~oqPx)NZc?ITt(ghB&nrZBg?o`CGiA4GpK{eK;b70hwB zLNK0^nrgDi01sw{F!=lqKK0;@$L?6|?sRgq?h+DpCVa3c`-N4nA-k!G2)x$r66}^x>TjXEmdoR99@}+`Coyddw*gmzM91K5@Dt!*Eh|iu_zV zhdN{F&n-s6k>ianu*m4><`WYWp&-Tu1_qw&m+2?|`%3ONMog}ZQhY;KzC%Z4h#tj- zFf6d4Wd0Q39^DH_nL1unpk+M!c8n**>Xz4j9L0GRl2T|lSN%C5F;VnJnO{KQe1yng zCj}*kW6?QMsP2NrZR&jI!|%?b2-b2~qc6|(5l!QWj>OjRasmkFS6{GUjPJA1&I22M zk}G?hucDJ3zvc!w{`#Z5Jn}j`d~}@9L1IAFH+r%cUZ>QdT0@pIUGjoe z%!q&gmc;4NZey~K!2V$6Yo;3S7D6)wustN2b1_*H96>PLw52#Ew2g2>R(=?qQ~~+n zfqs6!>zX69kA8*z&~bM9R#9S?-_heI`Inhqsc~AU*r3XfJ=XAGlxUE5SY~Uy(CL&F z)%KO}*aB|4P)*}mw+WTe)zAY6+#+n}^@ig|i~GZ$9K{th)dD zJZM3&L@qEDFR!n!U;8O!Pd!pSSXHV!R|whpz5idrhP=WD$l-C;w5GQZ3pv&ljnCaBnG0agBnjZEtuGz1Ztj3$?o67-+C(^&54F4A~+`|`U! zN>1zJ>WOe{21M$D>Up~^f=B@^U#&fMt>70A5%I#=DJj=$cgDB&c@i7YSssgI-St`1D;@a*Gbe>8^K0yC#|xNO&VVDqSTkzSSz4h#;^(K$ z)62A^6Q@^^c5J=h6>C1$RXnOvHw3Ec2>W7dDqLFaAZK!^>h#e=JYSM%T&5@Y0ZI!) zy`OGB-EOn2Qb2^lPUpAI{+yJiERpN2Z6? zmfY2lNe?&UH8o1805kJeV)EudI6h5PE2+WJVdNhvf^7M8&7m|G=0E^tozcEv4{bFwb)ihn0M#$Z$B}Tl71WlTgqJ;K5{TaS_ll9qP+lV`1uPE4=jYS>*uu5pbFB%CNp6!FynhJN_;C1l z66u*1mJ;)y87SL((0yDJn!>D`gp#dD-LMlAdEeG;X;#m+!@>d35d+Qx%&N>pd^Sr{ zhX?s4xn|3chyu(#u!`<2Skr|_xaFA8Z@2gNd8MV{t2`XR0yZY6xN%%yXG7k(aB8IpOEFqg+wFT>kYU9<;&#*N`DrrCZG#%$o zU0?_agEM}LPe`Gg?dqmYT;zeK%WrvgT~V>FtP{3)d@N${+K81WSkVe{|4utMD~Q%! zohLV2GYa(E_vfs{z}_10jP?qSP>xOcZ>_&K>gdxED-aM-K>NgHiRA`r z)4Z-uU#t|DC|sUSl9NnWkW*GcFekIgHmcPR*CE;(3oa^u)Z)u0)h(O@0u>0N5-CGdN)Q7KOlVyVM- ziZL@sVA81M9p#YvK3Z9YEiCA2>*_W%jXi=ohdzCg|Q+?}lDcmXtze6wsM?jyjoaY!cqv87i~MpO_3imE!&F z;LWayvkXDDcesoXkI{T%wUr5$C)OA0ZK|uQ*9g-jV<1gTr6r|#0LOqII@^Y*%VYu#U+DzV15)Opr^<%Eld< z_&9884NnA9P15oi><~pppgtgAB4pdmvqfQ=$jZs3vrzJtX*2!!Qb>_(V!X2fvs!6j zl9~vApG&2#rPWiTM9$sRyq*J5z|Y1-QD&Au8I}T?IJ%C_%HKFRXxFkKGZq&Yce3uZ zM}qa>yUPPaa0az?bY660nwpwmYFwhj@6p)AED(S$iAsbF7f-TxV4L1R_gP*%tqiaXBP_W!j;tdBNPS$G3v zLO!87wHA~-Joun0Ixewo=T_9?CpRXjJ1LF`1v;ZbWfT=9KYij{YPNW{Pem1*ni|$9 zcU}#iCYdb7N(zV=&sz#pbZSV+$;mlg?oVUX`Xzh;pRJXY=5+No6*cf% zh%6ri6lp}%z97#?SY_47+uO6Tu(GZnA4i+)Bj)Gk1`-+=7`%3|!&DQd0Am6W48-m2 zEAxE=U0q!tcJP0%5IsdQe-YjckKETF;&M%Y6`IR6scc39tRyNTvV)kdTlV+5#Tf3v-T-vF^u9 zT~Q>wb)^xi<8yOJP$VSE6wun7rCO9PhJEkRDU6kvm{?p|+TFP77lF^LDNXkz@vq9n zZ|RQM5R)tzebBA@OrI}7d%vIaIeff&K(Qn57U(sCZ#>URCdc?;EtWU={ zRv!Lrdz{8Z)*3s;f0sM;I?J@GHfHmlp}LA%oF4uC1kcw|=iA@+sh!vxrEqozy(Ql>m?SWMIXDH;dXF_WQr<7=RvsSL}kcwN~!i;81M@}PRxEuu^ z5jN!5%uXVshJ!65PkQGT56GUR%Cf)I!IIxc-z0Uz=~;Hets-4*_P}Wgsf)Qb=jf!Y z9r<&PQ0p#yWC>a)lq9#rl6K>!zG zj!43s*mgB~z%^iTh8(-Y_*EhKZRtFZj{V|H<$=#ZMWf62=UF9TbDZr_e@?0H6i#_Z zJrK6EwY7nOAH~H3BmlT`9ze8br>3TMwztnRg$W1ZLdQLAQ(A{gydMULh_C_30K5}mI%5#Aej($@B6c}vUcbF;%`U0wS`Ic(qf`9 zppq~TKuEC`ag)luHS+H3?ZvCFt|Cs;KJEeZ!TR7E4^YF7fBH~)R87o}6U5{D8Hjbh zGh$$vw6zSLbKi$s;&;RYvPanZuI2p2pJSu68#oC7M-Hm*H@Z6~o^?{einO%a9e#r2 z=J1Wb`mh5IO2-I;%)~;2)FR1+S6HYHE%oiQey|;JH5evXXe@lR4PqFssTq;DRa+XlT3 zH(`a?Li>tjY_6Vu$5XW@F)%WIYfaDN*=Nf_1RlIDjDP?YL&JwOzpI+_i3JRS7Gl70 z>rF#9n7(mH#ZLi+a?MQgE**WkazCm=u31m|paE#o)MGqu%wWF1Z5P~h5 zDoj=y?9tvxC^i1mqs{5}Z;{VTxI}HmU2jbE6mZOWZlOOTL+=YQ-(-g&!Vqaf;J^XA znDOHKc3eVn3v0tMfs{|Qr5f+5-7!0}Y?Mq*=9Gd_DhES5j63J?rZC7P!xi(bmNyAy zDpL;00#pb!b&*i3s^ysuw@Kb0d{pAhr0NLJ7mBl z-&zNACJdTMUKn0(&P)}Tvwf#7UDF*_iRNEp6Ln;SjJC*!T&dycyrh_LXN3=p7z?aj zH*F4behT9(i-+C{>U9n%NWRz+m_UZ)kgv6bbOjl{p-nkC=Z84mf=A9;MfPI6>Hg?q zugbL3zezklpRc|oct*F(e5ffd4!$4kY5Ka#sL>TX_c3lUdUSJPH^+xZy=m21pW$}{ zHP(&^3uUxFeV(LUUqHGc9fHE1qkaI*c$0K80TvwR$K0IBa+s_Ds z9T!pKx)D2j-(G<=q^2&(c+25hnMuigq2c@sO$O7x4S}=$p&RO|k;tNZZ*T?h*mcMN zYg=2v)ek;THw23Td*R~!+K{x|{dt1>==^pt0p4cA8}T%6pVPNS1boD=j%IW z-qwGpi_#+NkAr+UXi&zcP@MD5 z=kpy}b|~RPB;03qF#{E(C1KS1cwuW`>f`ITsh7BVE$3@2ua^tQ>M8&n1t&_FFF`h& z$T{8VH$B(GEF1Uj?E`K8M{0-Q;KFQ>7Yr%9& z2mvaEEl3cywEd!3CWSP%Qwec#?%{pA9M)#dw(KdCFV*94;o@{uRDpy!mG5NamyeyL zSrO>C?X*HXDc&d62ChrN68=k#P4p>#Qa?*h-W>nlkTbUMu7D{e7uO1{TN~Oq`Wg2X zaKT>(13O|UdAw$F0#~1q`ameOzaaZbaZD&7SGMKy{Ui09&7gK_$Yfn|RboS|?s0OUXTH&Ao z6aExrliQT-Fr%fbdpyDjJbngscbKwW=%UWs85TK>9m=&p1`iyclaQji)f4@*m2IyH zDk|vv;x_*2j{zX-k{^x0-m-7!rHA&hy;vEIT!{3i+mR^_E-rHY7qPEXJ;HCkZGkjl z$6={SMOAdd&FE&lvrof>tQAQGvmGTorzmdEsZ%g$5KEWIU|LG|FKNfM-HWy1{gzyg z7`%GP{p~K4*I0P*yX$vp9j%R;;KXZLQqMW7FF81N%sUl16jY<=tHt8UhJT3fmx6U$ zM1dlE{+PrTx!f$OZ#h)&W9Yhkb95}zstp);h~w$W;R4b%GwGj=C7sYCEZ*L!dRb`_Yxm2_v2%WKSFKASN=je{^9viKx-!)jRRK*B#7ZEowM5lR z+~$43pAy&LjWS06vD}m3`vQV>7)w0?OCi*Xb;7`lUbm_4LWT6g%bx1|L-h4hfigfB#s6a5(eaIo-wNwL7H_Gjtf_q1v>N$WSL13CC<0H6ScRYXTPj%Z4HN!%!>{k;|NTyf}^3Xi% zzb907eMYf`F`D2Xp*x{fU+xI(zt^W2F1^>HvBOklb~j9LBU>;WJ?Cgg=d)Yj<}4~l zYr{vexC_IL%nX4qB*g0+A6FSH zWq@x3js&rWC7)Zmk=FIq7cpxmwaZB)rQ$Yk0E!z_Kfxr?akF6;5rCy$_K5=o#uq9i zX`m+){L3R6l~yAsV>ZD}fhgPnd*?`Aoq^~lm3=zONF~x-dVEmDP5~k17&r4ff7V>< zV#j;vvnv{Yt~%19I}{O3p@=F!nn()vKBwdcT+dyrn-{qBDSPya9MRFytw=mjpDe$^ zJY8`7YaK)gJBiIN3;1_D{i&AYv|3i0EZ&@JSB&t}fF;W+rO7=1V!+g$ip^W!I~NOZ zUbj}-yphn*rhfSN@P_m^n}Op81&Y{S(QR#l$IDzx*wCDr7%zT$^GJh3WJMpRui@Cd zzk`gtp`RyiAT$veg>+IK5Te=7!L-NSl+e|*`k8%B6GdB?=!1AuIecqwfPaNoXtgs!Q;h7Qr5 zBsyJ@$WS3tfzl98Sy@^7-nUNpA!iy6)t^dMFFK2&j4EDqo`W1vlu-rsqO&+ue=1p5 zzo5RH8?ctSHhL(|EN>djBXFsZpyjy`TVB)oL7k<{5-*qBVWm zrw=A*;y}KYn+uhT3$_)N!_mAP;BAPJN<4FZa zg(Kdk2)&`S-;b_onv{KjBd)(qtOH+$ol`g7yJ^{d1RS~#X?Cp831h8!fmwSH zZe%uW{11R8%cqa1q#Dde6CUvz^UoP}t$LJCgwTQa<{aQMw zJ$!*Cr;D&Za3q>W#n1uT#xQN#H1hWr`cESwBFNWDB{uf$i@$n%<5X!WDk>^aQBi?6 ztZWZa52w)6`FEB*NYAGOwH(wR!Ly6YqebBV&ZHTc^O@J)qeu zPP!QS4rkGXLKCK4Ud@toUyQ`ES4Lva%i7j)&db2ES4QI87b78VKbisyM=n+a6(8L; z6=I7N&de;*YU6%dIHM_!$I zP?+EA3dQ6hj*iHfJUPBK@d2$2MU!H1b$i|^q|i3pf3SmV%h6{!48Th5V{g)Q0D)nK zcYTD|XOe@OH`r?j4+@LmjGxI0Trth?*&pXr&y!_ zu(1P#Cq@{t*whF++0TP}EB^0nG@;c_y8XJ5&+Csr{>V(5HjQlX?2b2!?&IuB;|Tz4 z@b1o4Gd0ymahJu!AHJU~79hY4U298xKr3^?0MfkK(3vJ=s>nKw(8OT=HJ8c@-{9PU zwT$PuQ1amFCHUm+;$OVQ383;qQ?;_dFMyARiueE>0_^P52(|~IP>N2Z zF?3K#wjIF$9mk&=u$G~1yKAF|A~Z3WLx8{R2Z!GtCTWBlH?dBIY_ zDHi<1Tgdhdz?ONkk%P0y=mmAQIE|Q#n(_yHKcBA7`loSzP-Bt9lgYG+t~cU!L63P_ zC+Rf?S%5Nn(b|i)^;w6}_82J{UC32XnJ0#UE9*$+S{s8buhcU(7>XR8Oy-FpbFB?C zaAjSma(KyAP?=6iOG2X}G}IEB3t502fc2kWCje0YkH2?{hoYkh3JM}OZ{F1VI}wXc zEV6+s>j*ujvxxAqY6G%qQwf{i{KZdiMF^B^`X*so>=ngQR~>V0zVPh#IH>S8>WiPu zD#^*;W;RPN2?OGXuv+DND?*kk+4N?|Dnc$m5qf|xpNfwni;yEID2M=nz5=Ae(pOaa z9&he8;A1C1;lm36Ti6ri4aK--Um}^#5@w(FD3!_V19DK&t=X}Ewq8I0;2-r{+x+M0 z%0pLKEnS=N9>n6KJnbS33JM}!diF%+-Me}T(3IB9+yZ>8s-TL{0}PusRV}oF-UvZl zT-?TH2M-R}6g!<&Yg@tZCAbO(E_N(GaZ5=U5I;C%6LegI=GypUh1Rbn@zH(l72)X= zJ2ED+=CKztwRA$d^z3O+9-W~oX)KSG1*EVirV_=t158WSPYAV6Em=RnFbfDYS;3Yp zpAdSD^qK)}@zww1?~JewDBh>f^@us0()0$fP=p~YOVT?iQm#HwOLy`3afW`T=wtm7 z5)%0P{H}Zz0K>#6JU=ETM(26vwt$aiH-uu`0VbJEQ@15P0N})@RJSBPV>qbj#!P0F z>bArO0B_fK$GxEhe+dHuGfDrm7b! zLM@WnG&Rs9u-2@bKF74hn8+ID_-B9QA4F>T-v6VEu~|w+TjHbXZCOB9S68iVq4lFe z6EDK!TwPt!FKcj_RQF{H9;-GW&?G+1W~=`oDn5OVH4p{>s0amRw0JBP;bKLog+9WP z!Vxom`9GQCpZ$^0H53YFJOG;3-u#WBE%DJ~^z?oXhh{eT=ou*mnzZ|e1OC$e1FMYF zx=#4@)_Fh7Kmh;@3wrJ96b#%=nWh712s`TMtF;&f`kKnri;^N|# z={nZs5KuaaRWth(?Xv1*I;(a$1eDb_FGEv4?~GA|Tv!^CJ{$55kY?6^))=_5j>N2uVeTzBwestp$JRdAcVr&j_W?5Ube;2l!=N!A^aU@> zUvHlGa~=G^*~r`I5Da$0P~nNcLHZwWj}VjDG_^7$odLsT9~T#AA?})>0yw8wy!79v zW-^TC*wPw>MN3W-L!2-)59$de1k8(LzbB*EmdEs9TL{aUkv16S6Omvg?k?>hKFciN77&UV&mKqImi zte=?Q?GKG9DJj92q8G|e*A!JI?vC^kA7gGOjNTSdC_G)EpuPY%T^yr1&PX9Laq-P3 zG!;SxFqu_GmDQT=;VP{WT2dtuSzhrq@y8~!X_7lZLPA)Qp3dE?SbTBseb{szAHD~A zOvnw5Q^rUUiiM(U4H({~&=!23-wYJI^zfy;?=8Rgo7p%s?=G5)@9?k3#=QL8A6gXV z|8MVlLZi6i@b}hM>_4-(YBUFL=~}9XnAUAW?Yv+QrIAoPM0@EWpe1Qi41u1iZn}Y@ z5R{rG5W#Dk96X3A^^opt6^qswXtc1@Lve9y1j7oh)Yi`Qu=|_+&Ft*#?7!?J%?Hcw z&b&A8h0M3VZ+?H?qyE=6U0#pG_H^DD9)K$XN-6c;-dNYUYnpS$5>6W95)rd=s`)=rQL;qJl90$3 z{$dzDF%MwgXiH?goCab+)s+RbBT_n%Fr6#(?uLAHEdU_tS;+bkF<$@tZ+&FykcdPg zIeK;I7rPT;`919$&eO!~W~K5QyAn`S9cRDwz= z^^T4X+@GE{mW69YMsgCtq?EdjoK^e;z?O~|tp7PFzm!ENPr_tXWILznFWp#<2}2ABPk9`1gaaoG`2yNl?PE zXFEbf!nW(D0RUHb9{~W6CH(D$=@9k*Va->jPzHTo783N%ojZ6L=Jogsfk?m4X z@>51TEfP=|?aWdU;A?W0gZ%56$7B|;pG!}UYRgb7`8c#+&Hy?Pzi|fqmq-pOx;heb zMMNURtBHgy5s7U4y%;$8+;}{#s{oCGD1HGIGAJ+xgtZOBmm8OTXc zx;|akOBS%GR8v(|#N%;14hD_YhiQ>iDWxu@)cJP76966ugNVoD6?;a*;jkv7othGB z8MRGEV`x|>H9HAe3P{3Qt*XtuzE)x_qcYm5@l>>0Ln`?{F1|PVjF-`FP|^9jTM$vK zmWz{*z869|ktmsbR@^?hRt$EXO~#w&*8>2Nh`^uqIN|v7AOKtnTr&C%cAZUnv0l)% z7nGbZv<5$44xDzYnMH1cjB>~~E~6T+FtB<-iG;ciF&pdolvgg)$_ol)DlA%+@oz-V zJ4;s3>;*-pa-$YrP)s3NNz?>>}8 znoSfijx{2GGnZ;Xb$Ax61vr_Cda>s{r#9wz zqVp7ZoKh5NyNc?-Nlp%SolPz$5_*n+J!-ot@a}|*YGYpDog6Ms1as3yoL7CBs)*v2 zUTweNlhIC1RcjxZ=QVCX;X1dKFn%Nw*;Hzuk*PyXL_+bL=E-Uw4$n=H$VcTpP9XB} zvLQ|=A{qxj=42(a^?d9SL0o;{{b&7$r&BT0>fzkmfTkqy3aVN8u9%nHolJ z1uF@_FD@>^$pZQPex%cBoI7`}CO3J#$6x92j0Ck?l8|7Pc}|NZ*;TN+&4h8Pez%V4 zB#)i`mP!zbM0D#qCw{+w$s95D9={e?m7olT@+upl2p$MOj{GW!947N_2DhuB0T6|* zn}WF-K07D-In*c?fAr{4QBN;uy~kgP@Qejq#VYE7dRsuxg&|h4ivJV-1Jc^8jJ6|p QbN~PV07*qoM6N<$f{9aUAOHXW literal 0 HcmV?d00001 diff --git a/icons/mob/actions/backgrounds.dmi b/icons/mob/actions/backgrounds.dmi index 4303c6fff6ca1f7ecde5dc517ac13b450d5a65ca..82303c5862312d40f2be1fb426a503361e126a5a 100644 GIT binary patch literal 6011 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 DE;OS3 literal 5866 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 Lb=4|Wtit{S4!Ut# From b11e3bbc96acd0050f506fe547bfa3e5f310b7ce Mon Sep 17 00:00:00 2001 From: Poojawa Date: Mon, 25 Mar 2019 04:19:00 -0500 Subject: [PATCH 24/37] Vore mode button and feeding --- code/__DEFINES/citadel_defines.dm | 3 ++ code/_onclick/hud/_defines.dm | 1 + code/_onclick/hud/human.dm | 7 +++++ .../code/_onclick/hud/screen_objects.dm | 18 +++++++++++ .../code/modules/mob/living/carbon/carbon.dm | 17 ++++++++++ .../carbon/human/species_types/furrypeople.dm | 2 ++ .../code/modules/vore/eating/living_vr.dm | 26 ++++++++++------ .../code/modules/vore/eating/vore_vr.dm | 5 +++ .../code/modules/vore/eating/vorepanel_vr.dm | 29 +++++++++++++++--- modular_citadel/icons/ui/screen_clockwork.dmi | Bin 3074 -> 3641 bytes modular_citadel/icons/ui/screen_midnight.dmi | Bin 5406 -> 5740 bytes modular_citadel/icons/ui/screen_operative.dmi | Bin 5287 -> 5638 bytes .../icons/ui/screen_plasmafire.dmi | Bin 4769 -> 5141 bytes modular_citadel/icons/ui/screen_slimecore.dmi | Bin 4470 -> 4843 bytes 14 files changed, 94 insertions(+), 14 deletions(-) diff --git a/code/__DEFINES/citadel_defines.dm b/code/__DEFINES/citadel_defines.dm index c7daff49ed..82f38eb092 100644 --- a/code/__DEFINES/citadel_defines.dm +++ b/code/__DEFINES/citadel_defines.dm @@ -12,6 +12,7 @@ #define ui_boxcraft "EAST-4:22,SOUTH+1:6" #define ui_boxarea "EAST-4:6,SOUTH+1:6" #define ui_boxlang "EAST-5:22,SOUTH+1:6" +#define ui_boxvore "EAST-4:22,SOUTH+1:6" //Filters #define CIT_FILTER_STAMINACRIT filter(type="drop_shadow", x=0, y=0, size=-3, border=0, color="#04080F") @@ -130,5 +131,7 @@ //component stuff #define COMSIG_COMBAT_TOGGLED "combatmode_toggled" //called by combat mode toggle on all equipped items. args: (mob/user, combatmode) +#define COMSIG_VORE_TOGGLED "voremode_toggled" // totally not copypasta + //belly sound pref things #define NORMIE_HEARCHECK 4 diff --git a/code/_onclick/hud/_defines.dm b/code/_onclick/hud/_defines.dm index b558e7c87c..a987f70d7b 100644 --- a/code/_onclick/hud/_defines.dm +++ b/code/_onclick/hud/_defines.dm @@ -85,6 +85,7 @@ #define ui_crafting "EAST-5:20,SOUTH:5"//CIT CHANGE - moves this over one tile to accommodate for combat mode toggle #define ui_building "EAST-5:20,SOUTH:21"//CIT CHANGE - ditto #define ui_language_menu "EAST-5:4,SOUTH:21"//CIT CHANGE - ditto +#define ui_voremode "EAST-5:20,SOUTH:5" #define ui_borg_pull "EAST-2:26,SOUTH+1:7" #define ui_borg_radio "EAST-1:28,SOUTH+1:7" diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm index 1106bee711..01e118aaed 100644 --- a/code/_onclick/hud/human.dm +++ b/code/_onclick/hud/human.dm @@ -109,6 +109,13 @@ using.screen_loc = ui_boxarea // CIT CHANGE static_inventory += using + using = new /obj/screen/voretoggle() //We fancy Vore now + using.icon = tg_ui_icon_to_cit_ui(ui_style) + using.screen_loc = ui_voremode + if(!widescreenlayout) + using.screen_loc = ui_boxvore + static_inventory += using + action_intent = new /obj/screen/act_intent/segmented action_intent.icon_state = mymob.a_intent static_inventory += action_intent diff --git a/modular_citadel/code/_onclick/hud/screen_objects.dm b/modular_citadel/code/_onclick/hud/screen_objects.dm index 5a193335f3..668abcb3d1 100644 --- a/modular_citadel/code/_onclick/hud/screen_objects.dm +++ b/modular_citadel/code/_onclick/hud/screen_objects.dm @@ -47,3 +47,21 @@ icon_state = "combat" else icon_state = "combat_off" + +/obj/screen/voretoggle + name = "toggle vore mode" + icon = 'modular_citadel/icons/ui/screen_midnight.dmi' + icon_state = "nom_off" + +/obj/screen/voretoggle/Click() + if(iscarbon(usr)) + var/mob/living/carbon/C = usr + C.toggle_vore_mode() + +/obj/screen/voretoggle/proc/rebaseintomygut(mob/living/carbon/C) + if(!C) + return + if(C.voremode) + icon_state = "nom" + else + icon_state = "nom_off" diff --git a/modular_citadel/code/modules/mob/living/carbon/carbon.dm b/modular_citadel/code/modules/mob/living/carbon/carbon.dm index d52cc6eabb..95ebe54b29 100644 --- a/modular_citadel/code/modules/mob/living/carbon/carbon.dm +++ b/modular_citadel/code/modules/mob/living/carbon/carbon.dm @@ -5,6 +5,9 @@ var/lastdirchange var/combatmessagecooldown + //oh no vore time + var/voremode = FALSE + /mob/living/carbon/CanPass(atom/movable/mover, turf/target) . = ..() if(.) @@ -19,6 +22,8 @@ if(recoveringstam) return TRUE combatmode = !combatmode + if(voremode) + toggle_vore_mode() if(combatmode) playsound_local(src, 'modular_citadel/sound/misc/ui_toggle.ogg', 50, FALSE, pressure_affected = FALSE) //Sound from interbay! else @@ -34,6 +39,18 @@ SEND_SIGNAL(src, COMSIG_COMBAT_TOGGLED, src, combatmode) return TRUE +mob/living/carbon/proc/toggle_vore_mode() + if(combatmode) + return FALSE //let's not override the main draw of the game these days + voremode = !voremode + if(client) + client.show_popup_menus = !voremode // it's the RIGHT way to nom. gettit + if(hud_used && hud_used.static_inventory) + for(var/obj/screen/voretoggle/selector in hud_used.static_inventory) + selector.rebaseintomygut(src) + SEND_SIGNAL(src, COMSIG_VORE_TOGGLED, src, voremode) + return TRUE + /mob/living/carbon/Move(atom/newloc, direct = 0) var/currentdirection = dir . = ..() diff --git a/modular_citadel/code/modules/mob/living/carbon/human/species_types/furrypeople.dm b/modular_citadel/code/modules/mob/living/carbon/human/species_types/furrypeople.dm index edc36ae3af..c34146a90c 100644 --- a/modular_citadel/code/modules/mob/living/carbon/human/species_types/furrypeople.dm +++ b/modular_citadel/code/modules/mob/living/carbon/human/species_types/furrypeople.dm @@ -233,3 +233,5 @@ /mob/living/carbon/human/vore devourable = TRUE + digestable = TRUE + feeding = TRUE diff --git a/modular_citadel/code/modules/vore/eating/living_vr.dm b/modular_citadel/code/modules/vore/eating/living_vr.dm index 74ae0bfe35..45f5667bcb 100644 --- a/modular_citadel/code/modules/vore/eating/living_vr.dm +++ b/modular_citadel/code/modules/vore/eating/living_vr.dm @@ -5,7 +5,7 @@ var/obj/belly/vore_selected // Default to no vore capability. var/list/vore_organs = list() // List of vore containers inside a mob var/devourable = FALSE // Can the mob be vored at all? -// var/feeding = FALSE // Are we going to feed someone else? + var/feeding = FALSE // Are we going to feed someone else? var/vore_taste = null // What the character tastes like var/no_vore = FALSE // If the character/mob can vore. var/openpanel = 0 // Is the vore panel open? @@ -77,13 +77,15 @@ // Critical adjustments due to TG grab changes - Poojawa -/mob/living/proc/vore_attack(var/mob/living/user, var/mob/living/prey) - if(!user || !prey) +/mob/living/proc/vore_attack(var/mob/living/user, var/mob/living/prey, var/mob/living/pred) + if(!user || !prey || !pred) return - if(prey == src && user.zone_selected == "mouth") //you click your target -// if(!feeding(src)) -// return + if(prey == src) //you click your target + if(!src.feeding) + to_chat(user, "They aren't able to be fed.") + to_chat(src, "[user] tried to feed you themselves, but you aren't voracious enough to be fed.") + return if(!is_vore_predator(prey)) to_chat(user, "They aren't voracious enough.") return @@ -96,8 +98,14 @@ user.feed_grabbed_to_self(src, prey) else // click someone other than you/prey -// if(!feeding(src)) -// return + if(!src.feeding) + to_chat(user, "They aren't voracious enough to be fed.") + to_chat(src, "[user] tried to feed you [prey], but you aren't voracious enough to be fed.") + return + if(!prey.feeding) + to_chat(user, "They aren't able to be fed to someone.") + to_chat(prey, "[user] tried to feed you to [src], but you aren't able to be fed to them.") + return if(!is_vore_predator(src)) to_chat(user, "They aren't voracious enough.") return @@ -122,7 +130,7 @@ return perform_the_nom(user, user, pred, belly) /mob/living/proc/feed_grabbed_to_other(var/mob/living/user, var/mob/living/prey, var/mob/living/pred) - return//disabled until I can make that toggle work +// return//disabled until I can make that toggle work var/belly = input("Choose Belly") in pred.vore_organs return perform_the_nom(user, prey, pred, belly) diff --git a/modular_citadel/code/modules/vore/eating/vore_vr.dm b/modular_citadel/code/modules/vore/eating/vore_vr.dm index 32d19fc11b..4cf223c3c4 100644 --- a/modular_citadel/code/modules/vore/eating/vore_vr.dm +++ b/modular_citadel/code/modules/vore/eating/vore_vr.dm @@ -39,6 +39,7 @@ GLOBAL_LIST_EMPTY(vore_preferences_datums) //Actual preferences var/digestable = FALSE var/devourable = FALSE + var/feeding = FALSE // var/allowmobvore = TRUE var/list/belly_prefs = list() var/vore_taste = "nothing in particular" @@ -105,6 +106,7 @@ GLOBAL_LIST_EMPTY(vore_preferences_datums) digestable = json_from_file["digestable"] devourable = json_from_file["devourable"] + feeding = json_from_file["feeding"] vore_taste = json_from_file["vore_taste"] belly_prefs = json_from_file["belly_prefs"] @@ -113,6 +115,8 @@ GLOBAL_LIST_EMPTY(vore_preferences_datums) digestable = FALSE if(isnull(devourable)) devourable = FALSE + if(isnull(feeding)) + feeding = FALSE if(isnull(belly_prefs)) belly_prefs = list() @@ -127,6 +131,7 @@ GLOBAL_LIST_EMPTY(vore_preferences_datums) "version" = version, "digestable" = digestable, "devourable" = devourable, + "feeding" = feeding, "vore_taste" = vore_taste, "belly_prefs" = belly_prefs, ) diff --git a/modular_citadel/code/modules/vore/eating/vorepanel_vr.dm b/modular_citadel/code/modules/vore/eating/vorepanel_vr.dm index 3d20526a5c..2125e6f0cb 100644 --- a/modular_citadel/code/modules/vore/eating/vorepanel_vr.dm +++ b/modular_citadel/code/modules/vore/eating/vorepanel_vr.dm @@ -110,7 +110,7 @@ if(DM_DIGEST) spanstyle = "color:red;" if(DM_HEAL) - spanstyle = "color:green;" + spanstyle = "color:darkgreen;" if(DM_NOISY) spanstyle = "color:purple;" if(DM_ABSORB) @@ -238,15 +238,21 @@ dat += "
    " switch(user.digestable) if(TRUE) - dat += "Toggle Digestable (Currently: ON)" + dat += "Toggle Digestable (Currently: ON)" if(FALSE) - dat += "Toggle Digestable (Currently: OFF)" + dat += "Toggle Digestable (Currently: OFF)" switch(user.devourable) if(TRUE) - dat += "Toggle Devourable (Currently: ON)" + dat += "
    Toggle Devourable (Currently: ON)" if(FALSE) - dat += "Toggle Devourable (Currently: OFF)" + dat += "
    Toggle Devourable (Currently: OFF)" + + switch(user.feeding) + if(TRUE) + dat += "
    Toggle Feeding (Currently: ON)" + if(FALSE) + dat += "
    Toggle Feeding (Currently: OFF)" //Returns the dat html to the vore_look return dat @@ -708,5 +714,18 @@ if(user.client.prefs_vr) user.client.prefs_vr.devourable = user.devourable + if(href_list["toggledfeed"]) + var/choice = alert(user, "This button is to toggle your ability to be fed to others. Feeding predators is currently: [user.feeding ? "Allowed" : "Prevented"]", "", "Allow Feeding", "Cancel", "Prevent Feeding") + switch(choice) + if("Cancel") + return + if("Allow Feeding") + user.feeding = TRUE + if("Prevent Feeding") + user.feeding = FALSE + + if(user.client.prefs_vr) + user.client.prefs_vr.feeding = user.feeding + //Refresh when interacted with, returning 1 makes vore_look.Topic update return 1 \ No newline at end of file diff --git a/modular_citadel/icons/ui/screen_clockwork.dmi b/modular_citadel/icons/ui/screen_clockwork.dmi index 499d2663b6c60590f8baeba0c18835cf7459760d..2b70d37f1e812de2df0e59f96c509ca95e517299 100644 GIT binary patch literal 3641 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 GDdvCWQ!{P= literal 3074 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 CSpQ%E diff --git a/modular_citadel/icons/ui/screen_midnight.dmi b/modular_citadel/icons/ui/screen_midnight.dmi index 38d96b86d1564fffe07da6fb46ec6dbf3f9bddfb..396fd4a36ef241530322fb1660cdac416739c62d 100644 GIT binary patch literal 5740 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 ZPKrbH7g!<@Pyc)X4Ha$WdL>BM{{R^}^#%X{ literal 4769 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 RL%aY0002ovPDHLkV1hwYP4xf( literal 4470 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 Date: Tue, 26 Mar 2019 21:10:18 -0400 Subject: [PATCH 25/37] Delete drink.dmi --- modular_citadel/icons/obj/food/drink.dmi | Bin 423 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 modular_citadel/icons/obj/food/drink.dmi diff --git a/modular_citadel/icons/obj/food/drink.dmi b/modular_citadel/icons/obj/food/drink.dmi deleted file mode 100644 index 0972025b4f4272db44645bb3e7ff4881bc678164..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 423 zcmV;Y0a*TtP)V=-0C=2JR&a84_w-Y6@%7{?OD!tS%+FJ>RWQ*r;NmRLOex6#a*U0*I5Sc+ z(=$pSoZ^zil2jm5sUR~iJ2x{YTZxM^C9|j)C}haRnO2mTn+jp0C@e`$#HCJI!PU;eD Date: Tue, 26 Mar 2019 21:10:33 -0400 Subject: [PATCH 26/37] Delete drinks.dmi --- modular_citadel/icons/obj/drinks.dmi | Bin 347 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 modular_citadel/icons/obj/drinks.dmi diff --git a/modular_citadel/icons/obj/drinks.dmi b/modular_citadel/icons/obj/drinks.dmi deleted file mode 100644 index 0000af8b56ab2556a84c5eb1c2f942e9b28febf1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 347 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQv3lvA+84w9B620`2YVuPymRR zU3>lt$YLxB@(X5gcy=QV$SJJ~i70VNElw`VEGWs$&tqVym=hdUP*nQ;OK`!*uTQkR zb+yi&IUl?s)Zn7=gGV~&eKb!p6!rA(urLlXzHIEJFz3;vBa=cDf>&A?TAOO_U!tNO z+SzTax_O0!M#hPwGsC9Ln9Y^ASi@IO_rOxW$b(nUv%X Date: Tue, 26 Mar 2019 21:10:59 -0400 Subject: [PATCH 27/37] Add files via upload --- modular_citadel/icons/obj/drinks.dmi | Bin 0 -> 547 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 modular_citadel/icons/obj/drinks.dmi diff --git a/modular_citadel/icons/obj/drinks.dmi b/modular_citadel/icons/obj/drinks.dmi new file mode 100644 index 0000000000000000000000000000000000000000..a7af4f23bdc54b028200bd6914fa0017f7d2a371 GIT binary patch literal 547 zcmV+;0^I$HP)4DS$#Itc?{_A^nx2nJXsope&a5$LO3M?iV zqldpxm{_afhUncG$n&fkk;om7wHa-UKzEc{ZYy*rt~X6UhK?A>%TWW_0(7FhbP6bE z00@Bj`cea;DD)2a%D|Jz Date: Wed, 27 Mar 2019 03:18:41 -0500 Subject: [PATCH 28/37] Feeding works! aaaaayyy. Didn't have to martial art it either --- code/modules/mob/living/living_defense.dm | 14 ++++++++ .../code/modules/mob/living/carbon/carbon.dm | 2 -- .../mob/living/carbon/human/human_defense.dm | 2 +- .../code/modules/vore/eating/belly_obj_vr.dm | 15 +++++++++ .../code/modules/vore/eating/living_vr.dm | 33 +++++++++++-------- .../code/modules/vore/eating/vorepanel_vr.dm | 3 +- 6 files changed, 51 insertions(+), 18 deletions(-) diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index f5b44db70f..dddbe18666 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -129,6 +129,18 @@ /mob/living/proc/grabbedby(mob/living/carbon/user, supress_message = 0) if(user == src || anchored || !isturf(user.loc)) return FALSE + + if(user.pulling && user.grab_state == GRAB_AGGRESSIVE && user.voremode) + if(ismob(user.pulling)) + var/mob/P = user.pulling + if(P != src) + to_chat(world, "grabbedby check : [user], [P], [src] (target).") + user.vore_attack(user, P, src) //feed grabbed to other + else + to_chat(world, "grabbedby check : [user], [P], [src] (target).") + user.vore_attack(user, P, src) //feed self to grabbed + return + if(!user.pulling || user.pulling != src) user.start_pulling(src, supress_message) return @@ -163,6 +175,8 @@ return 0 if(!user.pulling || user.pulling != src || user.grab_state != old_grab_state || user.a_intent != INTENT_GRAB) return 0 + if(user.voremode && user.grab_state == GRAB_AGGRESSIVE) + return 0 user.grab_state++ switch(user.grab_state) if(GRAB_AGGRESSIVE) diff --git a/modular_citadel/code/modules/mob/living/carbon/carbon.dm b/modular_citadel/code/modules/mob/living/carbon/carbon.dm index 95ebe54b29..75a482745a 100644 --- a/modular_citadel/code/modules/mob/living/carbon/carbon.dm +++ b/modular_citadel/code/modules/mob/living/carbon/carbon.dm @@ -43,8 +43,6 @@ mob/living/carbon/proc/toggle_vore_mode() if(combatmode) return FALSE //let's not override the main draw of the game these days voremode = !voremode - if(client) - client.show_popup_menus = !voremode // it's the RIGHT way to nom. gettit if(hud_used && hud_used.static_inventory) for(var/obj/screen/voretoggle/selector in hud_used.static_inventory) selector.rebaseintomygut(src) diff --git a/modular_citadel/code/modules/mob/living/carbon/human/human_defense.dm b/modular_citadel/code/modules/mob/living/carbon/human/human_defense.dm index c1fc6623de..23add047ca 100644 --- a/modular_citadel/code/modules/mob/living/carbon/human/human_defense.dm +++ b/modular_citadel/code/modules/mob/living/carbon/human/human_defense.dm @@ -1,6 +1,6 @@ /mob/living/carbon/human/grabbedby(mob/living/carbon/user, supress_message = 0) if(user == src && pulling && !pulling.anchored && grab_state >= GRAB_AGGRESSIVE && isliving(pulling)) - vore_attack(user, pulling) + vore_attack(user, pulling, user) //feeding prey to self else ..() diff --git a/modular_citadel/code/modules/vore/eating/belly_obj_vr.dm b/modular_citadel/code/modules/vore/eating/belly_obj_vr.dm index 142e5880d5..87c4ba495c 100644 --- a/modular_citadel/code/modules/vore/eating/belly_obj_vr.dm +++ b/modular_citadel/code/modules/vore/eating/belly_obj_vr.dm @@ -184,6 +184,10 @@ // Returns the number of mobs so released. /obj/belly/proc/release_all_contents(var/include_absorbed = FALSE, var/silent = FALSE) var/atom/destination = drop_location() + //Don't bother if we don't have contents + if(!contents.len) + return 0 + var/count = 0 for(var/thing in contents) var/atom/movable/AM = thing @@ -204,6 +208,12 @@ for(var/mob/M in get_hearers_in_view(2, get_turf(owner))) if(M.client && (M.client.prefs.cit_toggles & EATING_NOISES)) playsound(get_turf(owner),"[src.release_sound]",50,0,-5,0,ignore_walls = FALSE,channel=CHANNEL_PRED) + + //Clean up our own business + items_preserved.Cut() + if(isanimal(owner)) + owner.update_icons() + if(!silent) owner.visible_message("[owner] expels everything from their [lowertext(name)]!") items_preserved.Cut() @@ -244,6 +254,11 @@ if(P.absorbed) absorbed_count++ Pred.reagents.trans_to(Prey, Pred.reagents.total_volume / absorbed_count) + + //Clean up our own business + if(isanimal(owner)) + owner.update_icons() + if(!silent) owner.visible_message("[owner] expels [M] from their [lowertext(name)]!") owner.update_icons() diff --git a/modular_citadel/code/modules/vore/eating/living_vr.dm b/modular_citadel/code/modules/vore/eating/living_vr.dm index 45f5667bcb..cfbdcd49fa 100644 --- a/modular_citadel/code/modules/vore/eating/living_vr.dm +++ b/modular_citadel/code/modules/vore/eating/living_vr.dm @@ -81,35 +81,38 @@ if(!user || !prey || !pred) return - if(prey == src) //you click your target - if(!src.feeding) + if(!isliving(pred)) //no badmin, you can't feed people to ghosts or objects. + return + + if(pred == prey) //you click your target + if(!pred.feeding) to_chat(user, "They aren't able to be fed.") - to_chat(src, "[user] tried to feed you themselves, but you aren't voracious enough to be fed.") + to_chat(pred, "[user] tried to feed you themselves, but you aren't voracious enough to be fed.") return - if(!is_vore_predator(prey)) + if(!is_vore_predator(pred)) to_chat(user, "They aren't voracious enough.") return - feed_self_to_grabbed(user, src) + feed_self_to_grabbed(user, pred) - if(user == src) //you click yourself + else if(pred == user) //you click yourself if(!is_vore_predator(src)) to_chat(user, "You aren't voracious enough.") return - user.feed_grabbed_to_self(src, prey) + feed_grabbed_to_self(user, prey) else // click someone other than you/prey - if(!src.feeding) + if(!pred.feeding) to_chat(user, "They aren't voracious enough to be fed.") - to_chat(src, "[user] tried to feed you [prey], but you aren't voracious enough to be fed.") + to_chat(pred, "[user] tried to feed you [prey], but you aren't voracious enough to be fed.") return if(!prey.feeding) to_chat(user, "They aren't able to be fed to someone.") - to_chat(prey, "[user] tried to feed you to [src], but you aren't able to be fed to them.") + to_chat(prey, "[user] tried to feed you to [pred], but you aren't able to be fed to them.") return - if(!is_vore_predator(src)) + if(!is_vore_predator(pred)) to_chat(user, "They aren't voracious enough.") return - feed_grabbed_to_other(user, prey, src) + feed_grabbed_to_other(user, prey, pred) // // Eating procs depending on who clicked what // @@ -330,9 +333,9 @@ return //Actual escaping forceMove(get_turf(src)) //Just move me up to the turf, let's not cascade through bellies, there's been a problem, let's just leave. - if(is_blind(src) && !has_trait(TRAIT_BLIND)) - src.adjust_blindness(-1) + src.cure_blind("belly_[REF(src)]") src.stop_sound_channel(CHANNEL_PREYLOOP) + SEND_SIGNAL(src, COMSIG_CLEAR_MOOD_EVENT, "fedprey", /datum/mood_event/fedprey) for(var/mob/living/simple_animal/SA in range(10)) SA.prey_excludes[src] = world.time @@ -384,6 +387,7 @@ P.digestable = src.digestable P.devourable = src.devourable + P.feeding = src.feeding P.vore_taste = src.vore_taste var/list/serialized = list() @@ -407,6 +411,7 @@ digestable = P.digestable devourable = P.devourable + feeding = P.feeding vore_taste = P.vore_taste release_vore_contents(silent = TRUE) diff --git a/modular_citadel/code/modules/vore/eating/vorepanel_vr.dm b/modular_citadel/code/modules/vore/eating/vorepanel_vr.dm index 2125e6f0cb..1a1ec27093 100644 --- a/modular_citadel/code/modules/vore/eating/vorepanel_vr.dm +++ b/modular_citadel/code/modules/vore/eating/vorepanel_vr.dm @@ -56,7 +56,8 @@ /datum/vore_look/proc/gen_vui(var/mob/living/user) var/dat - + dat += "Remember to toggle the vore mode, it's to the left of your combat toggle. Open mouth means you're voracious!
    " + dat += "
    " var/atom/userloc = user.loc if (isbelly(userloc)) var/obj/belly/inside_belly = userloc From 6fdb5e97f8caf07096eff6a2e96346d2528aa38d Mon Sep 17 00:00:00 2001 From: Poojawa Date: Wed, 27 Mar 2019 03:43:18 -0500 Subject: [PATCH 29/37] removes debug and override --- code/modules/mob/living/living_defense.dm | 12 +++++------- .../modules/mob/living/carbon/human/human_defense.dm | 6 ------ .../code/modules/vore/eating/living_vr.dm | 2 +- 3 files changed, 6 insertions(+), 14 deletions(-) diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index dddbe18666..d4e14dbd20 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -127,20 +127,18 @@ IgniteMob() /mob/living/proc/grabbedby(mob/living/carbon/user, supress_message = 0) - if(user == src || anchored || !isturf(user.loc)) + if(user == anchored || !isturf(user.loc)) return FALSE if(user.pulling && user.grab_state == GRAB_AGGRESSIVE && user.voremode) if(ismob(user.pulling)) var/mob/P = user.pulling - if(P != src) - to_chat(world, "grabbedby check : [user], [P], [src] (target).") - user.vore_attack(user, P, src) //feed grabbed to other - else - to_chat(world, "grabbedby check : [user], [P], [src] (target).") - user.vore_attack(user, P, src) //feed self to grabbed + user.vore_attack(user, P, src) // User, Prey, Predator return + if(user == src) //we want to be able to self click if we're voracious + return FALSE + if(!user.pulling || user.pulling != src) user.start_pulling(src, supress_message) return diff --git a/modular_citadel/code/modules/mob/living/carbon/human/human_defense.dm b/modular_citadel/code/modules/mob/living/carbon/human/human_defense.dm index 23add047ca..bbff8ee750 100644 --- a/modular_citadel/code/modules/mob/living/carbon/human/human_defense.dm +++ b/modular_citadel/code/modules/mob/living/carbon/human/human_defense.dm @@ -1,9 +1,3 @@ -/mob/living/carbon/human/grabbedby(mob/living/carbon/user, supress_message = 0) - if(user == src && pulling && !pulling.anchored && grab_state >= GRAB_AGGRESSIVE && isliving(pulling)) - vore_attack(user, pulling, user) //feeding prey to self - else - ..() - /mob/living/carbon/human/alt_attack_hand(mob/user) if(..()) return diff --git a/modular_citadel/code/modules/vore/eating/living_vr.dm b/modular_citadel/code/modules/vore/eating/living_vr.dm index cfbdcd49fa..fa711e911c 100644 --- a/modular_citadel/code/modules/vore/eating/living_vr.dm +++ b/modular_citadel/code/modules/vore/eating/living_vr.dm @@ -94,7 +94,7 @@ return feed_self_to_grabbed(user, pred) - else if(pred == user) //you click yourself + if(pred == user) //you click yourself if(!is_vore_predator(src)) to_chat(user, "You aren't voracious enough.") return From 181b29e08cdc408f80de001862d4c9150eddde41 Mon Sep 17 00:00:00 2001 From: Poojawa Date: Wed, 27 Mar 2019 03:46:30 -0500 Subject: [PATCH 30/37] slightly better commenting --- code/modules/mob/living/living_defense.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index d4e14dbd20..643c91b95a 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -133,7 +133,7 @@ if(user.pulling && user.grab_state == GRAB_AGGRESSIVE && user.voremode) if(ismob(user.pulling)) var/mob/P = user.pulling - user.vore_attack(user, P, src) // User, Prey, Predator + user.vore_attack(user, P, src) // User, Pulled, Predator target (which can be user, pulling, or src) return if(user == src) //we want to be able to self click if we're voracious From e6190fa141966345b707d26200a741affecadca8 Mon Sep 17 00:00:00 2001 From: Poojawa Date: Wed, 27 Mar 2019 04:23:37 -0500 Subject: [PATCH 31/37] Make combat mode actually override the VM icon --- modular_citadel/code/_onclick/hud/screen_objects.dm | 2 +- modular_citadel/code/modules/mob/living/carbon/carbon.dm | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modular_citadel/code/_onclick/hud/screen_objects.dm b/modular_citadel/code/_onclick/hud/screen_objects.dm index 668abcb3d1..511627b81f 100644 --- a/modular_citadel/code/_onclick/hud/screen_objects.dm +++ b/modular_citadel/code/_onclick/hud/screen_objects.dm @@ -61,7 +61,7 @@ /obj/screen/voretoggle/proc/rebaseintomygut(mob/living/carbon/C) if(!C) return - if(C.voremode) + if(C.voremode && !C.combatmode) icon_state = "nom" else icon_state = "nom_off" diff --git a/modular_citadel/code/modules/mob/living/carbon/carbon.dm b/modular_citadel/code/modules/mob/living/carbon/carbon.dm index 75a482745a..cd24bfc8a2 100644 --- a/modular_citadel/code/modules/mob/living/carbon/carbon.dm +++ b/modular_citadel/code/modules/mob/living/carbon/carbon.dm @@ -40,12 +40,12 @@ return TRUE mob/living/carbon/proc/toggle_vore_mode() - if(combatmode) - return FALSE //let's not override the main draw of the game these days voremode = !voremode if(hud_used && hud_used.static_inventory) for(var/obj/screen/voretoggle/selector in hud_used.static_inventory) selector.rebaseintomygut(src) + if(combatmode) + return FALSE //let's not override the main draw of the game these days SEND_SIGNAL(src, COMSIG_VORE_TOGGLED, src, voremode) return TRUE From 88d6cf7da8749f66f7a01087a8d449746cd689d4 Mon Sep 17 00:00:00 2001 From: Poojawa Date: Wed, 27 Mar 2019 10:33:06 -0500 Subject: [PATCH 32/37] actually fix the god-damned sound issues. fuck --- code/modules/mob/living/death.dm | 3 +++ .../code/modules/vore/eating/belly_obj_vr.dm | 12 ++++++++---- .../code/modules/vore/eating/vorepanel_vr.dm | 14 ++++++++------ 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/code/modules/mob/living/death.dm b/code/modules/mob/living/death.dm index f6888a21ec..11e0c56d9e 100644 --- a/code/modules/mob/living/death.dm +++ b/code/modules/mob/living/death.dm @@ -8,6 +8,8 @@ spill_organs(no_brain, no_organs, no_bodyparts) + release_vore_contents(silent = TRUE) // return of the bomb safe internals. + if(!no_bodyparts) spread_bodyparts(no_brain, no_organs) @@ -36,6 +38,7 @@ buckled.unbuckle_mob(src, force = TRUE) dust_animation() + release_vore_contents(silent = TRUE) //technically grief protection, I guess? if they're SM'd it doesn't matter seconds after anyway. spawn_dust(just_ash) QDEL_IN(src,5) // since this is sometimes called in the middle of movement, allow half a second for movement to finish, ghosting to happen and animation to play. Looks much nicer and doesn't cause multiple runtimes. diff --git a/modular_citadel/code/modules/vore/eating/belly_obj_vr.dm b/modular_citadel/code/modules/vore/eating/belly_obj_vr.dm index 87c4ba495c..e931f37520 100644 --- a/modular_citadel/code/modules/vore/eating/belly_obj_vr.dm +++ b/modular_citadel/code/modules/vore/eating/belly_obj_vr.dm @@ -170,7 +170,8 @@ if(is_wet && !recent_sound) for(var/mob/M in get_hearers_in_view(2, get_turf(owner))) if(M.client && (M.client.prefs.cit_toggles & EATING_NOISES)) - playsound(get_turf(owner),"[src.vore_sound]",50,0,-5,0,ignore_walls = FALSE,channel=CHANNEL_PRED) + var/sound/devourments = GLOB.vore_sounds[vore_sound] + playsound(get_turf(owner),devourments,50,0,-5,0,ignore_walls = FALSE,channel=CHANNEL_PRED) recent_sound = TRUE //Messages if it's a mob @@ -207,7 +208,8 @@ count++ for(var/mob/M in get_hearers_in_view(2, get_turf(owner))) if(M.client && (M.client.prefs.cit_toggles & EATING_NOISES)) - playsound(get_turf(owner),"[src.release_sound]",50,0,-5,0,ignore_walls = FALSE,channel=CHANNEL_PRED) + var/sound/releasement = GLOB.release_sounds[release_sound] + playsound(get_turf(owner),releasement,50,0,-5,0,ignore_walls = FALSE,channel=CHANNEL_PRED) //Clean up our own business items_preserved.Cut() @@ -232,7 +234,8 @@ items_preserved -= M for(var/mob/H in get_hearers_in_view(2, get_turf(owner))) if(H.client && (H.client.prefs.cit_toggles & EATING_NOISES)) - playsound(get_turf(owner),"[src.release_sound]",50,0,-5,0,ignore_walls = FALSE,channel=CHANNEL_PRED) + var/sound/releasement = GLOB.release_sounds[release_sound] + playsound(get_turf(owner),releasement,50,0,-5,0,ignore_walls = FALSE,channel=CHANNEL_PRED) if(istype(M,/mob/living)) var/mob/living/ML = M @@ -315,7 +318,8 @@ if(!silent) for(var/mob/M in get_hearers_in_view(5, get_turf(owner))) if(M.client && (M.client.prefs.cit_toggles & EATING_NOISES)) - playsound(get_turf(owner),"[src.vore_sound]",50,0,-5,0,ignore_walls = FALSE,channel=CHANNEL_PRED) + var/sound/devourments = GLOB.vore_sounds[vore_sound] + playsound(get_turf(owner),devourments,50,0,-5,0,ignore_walls = FALSE,channel=CHANNEL_PRED) owner.updateVRPanel() for(var/mob/living/M in contents) M.updateVRPanel() diff --git a/modular_citadel/code/modules/vore/eating/vorepanel_vr.dm b/modular_citadel/code/modules/vore/eating/vorepanel_vr.dm index 1a1ec27093..c83ee788cb 100644 --- a/modular_citadel/code/modules/vore/eating/vorepanel_vr.dm +++ b/modular_citadel/code/modules/vore/eating/vorepanel_vr.dm @@ -116,6 +116,8 @@ spanstyle = "color:purple;" if(DM_ABSORB) spanstyle = "color:purple;" + if(DM_DRAGON) + spanstyle = "color:blue;" dat += " ([B.contents.len])

  • " @@ -550,9 +552,9 @@ selected.release_sound = choice if(href_list["b_releasesoundtest"]) - var/soundfile = selected.release_sound - if(soundfile) - user << soundfile + var/sound/releasetest = GLOB.release_sounds[selected.release_sound] + if(releasetest) + user << releasetest if(href_list["b_sound"]) var/choice = input(user,"Currently set to [selected.vore_sound]","Select Sound") as null|anything in GLOB.vore_sounds @@ -563,9 +565,9 @@ selected.vore_sound = choice if(href_list["b_soundtest"]) - var/soundfile = selected.vore_sound - if(soundfile) - user << soundfile + var/sound/voretest = GLOB.vore_sounds[selected.vore_sound] + if(voretest) + user << voretest if(href_list["b_tastes"]) selected.can_taste = !selected.can_taste From d4503e77de2095b928a5b737c86d501beb7797a3 Mon Sep 17 00:00:00 2001 From: Poojawa Date: Wed, 27 Mar 2019 10:58:38 -0500 Subject: [PATCH 33/37] Chance for quiet belly growls if HONGRY --- code/game/sound.dm | 3 +++ code/modules/mob/living/carbon/human/species.dm | 7 +++++++ .../code/modules/vore/eating/living_vr.dm | 2 +- sound/vore/growl1.ogg | Bin 0 -> 18952 bytes sound/vore/growl2.ogg | Bin 0 -> 16247 bytes sound/vore/growl3.ogg | Bin 0 -> 14842 bytes sound/vore/growl4.ogg | Bin 0 -> 27683 bytes sound/vore/growl5.ogg | Bin 0 -> 21808 bytes 8 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 sound/vore/growl1.ogg create mode 100644 sound/vore/growl2.ogg create mode 100644 sound/vore/growl3.ogg create mode 100644 sound/vore/growl4.ogg create mode 100644 sound/vore/growl5.ogg diff --git a/code/game/sound.dm b/code/game/sound.dm index cceed31cfb..5503c6103d 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -213,6 +213,9 @@ 'sound/vore/prey/death_04.ogg','sound/vore/prey/death_05.ogg','sound/vore/prey/death_06.ogg', 'sound/vore/prey/death_07.ogg','sound/vore/prey/death_08.ogg','sound/vore/prey/death_09.ogg', 'sound/vore/prey/death_10.ogg') + if("hunger_sounds") + soundin = pick( 'sound/vore/growl1.ogg','sound/vore/growl2.ogg','sound/vore/growl3.ogg','sound/vore/growl4.ogg', + 'sound/vore/growl5.ogg') if("clang") soundin = pick('sound/effects/clang1.ogg', 'sound/effects/clang2.ogg') if("clangsmall") diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 0e5eef2ffb..61b6ac0bec 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1144,6 +1144,13 @@ GLOBAL_LIST_EMPTY(roundstart_races) H.update_inv_w_uniform() H.update_inv_wear_suit() + if(H.noisy && H.nutrition <= NUTRITION_LEVEL_HUNGRY) + if(prob(10)) + playsound(get_turf(H),"hunger_sounds",15,0,-5,1,ignore_walls = FALSE,channel=CHANNEL_PRED) + else if(H.noisy && H.nutrition <= NUTRITION_LEVEL_STARVING) + if(prob(10)) + playsound(get_turf(H),"hunger_sounds",35,0,-5,1,ignore_walls = FALSE,channel=CHANNEL_PRED) + // nutrition decrease and satiety if (H.nutrition > 0 && H.stat != DEAD && !H.has_trait(TRAIT_NOHUNGER)) // THEY HUNGER diff --git a/modular_citadel/code/modules/vore/eating/living_vr.dm b/modular_citadel/code/modules/vore/eating/living_vr.dm index fa711e911c..469dcee276 100644 --- a/modular_citadel/code/modules/vore/eating/living_vr.dm +++ b/modular_citadel/code/modules/vore/eating/living_vr.dm @@ -9,7 +9,7 @@ var/vore_taste = null // What the character tastes like var/no_vore = FALSE // If the character/mob can vore. var/openpanel = 0 // Is the vore panel open? - var/noisy = FALSE // tummies are rumbly? + var/noisy = TRUE // tummies are rumbly? var/absorbed = FALSE //are we absorbed? var/next_preyloop diff --git a/sound/vore/growl1.ogg b/sound/vore/growl1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..6a9cef898849fa6e7c48b0e23ed78398328110db GIT binary patch literal 18952 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

    Rz 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 XgIWP_KR*{gp50i_ZY=j8Khp#Nq{LoI literal 0 HcmV?d00001 diff --git a/sound/vore/growl2.ogg b/sound/vore/growl2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..17a9a945599900f45f6899f33c64bfa7aba32938 GIT binary patch literal 16247 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 F|34+iz>)v} literal 0 HcmV?d00001 diff --git a/sound/vore/growl4.ogg b/sound/vore/growl4.ogg new file mode 100644 index 0000000000000000000000000000000000000000..5fb3c2db79a63d76e5664f95abf185c9ca17b01f GIT binary patch literal 27683 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%0DX{17;7vrq!9?ysf5WT zlLTvi?;~vkAZhw`wwF2@>l|Luxwk?Xs;trNe|CIRF!`u4kU5D)VFFa*VxNtj~PkZ zba`fkZo^#XCGda8^V^EA%7>xkV5{orUmuQ6D{^Haz6?1!xN`TIPP%rf=)h`FII?}} zAna`w9HYp;dIhc7Spz?S=dRw2+$ya`$|&>EC)6I*u_e6?8P6xXC&?IZ2#ZAk91gjJ zB%E><)y~AG3-PD2nj{zbv`m9FfBt+pzgXjYt#h<|HHGAzRwWWx3x!!^cKJtsXEG#I)94j7M{pJ&Pb^V1`KiJ`cQ z(@pYisnFHmTItQNgWul!iWzv(h=WrV=~AJm%{oCC?H@Eh6JyBH|Gs8PNn2D(N-9MN zO~kR6utO>OknT>HlHI57#^d*&rg*XGhA-ayzC!Qk{h@5=?lA@VBVTPgOlshdhaGwz z>}TP3A*09`CO1R$%M$!4f8$*6Qd&Q#S<409=|g4+q1oi131)A~foIY1N1cg=mxQqI z_sk;zt`_z;3nOA)Z#R%HEBVfo8U+_94$p_E`#g@M$p;j7jR#Ot2)WcN6u2ZfCOh@d zMNN+ib=Do8GCfZH^D(_fU^cvLSQ)4(H2fshZR0GcpZh46JX58oy9r&oG zU&8u0URG~0_b@NwJK2zIznjwchlXRe_@`Zxm7@5$CzbQw;O$^7yIrF?qG9k^<~c67 z8P*G|3EN@K^3okCxFF`q>UpBB;`nkmwH_mesPiKdV~O>Gj(LQcubU5C6VjP3TJlI4 z?`KxYrt8FP8UFbMH;4WEGs8M$bkKEqP~q|b!-(tc>lA}4|TC17Mu&^v@no%w3!8^sQ&#L@X zw~vl74dpXO_CiRty0gNwnnu`w_WDx~eNgmI3jz5B}&OUL1 zuinQ>1vOX|?R$*iHr8`YIgW@6E!wAwD*od{@Zc+P-rBcSbFlyniWp%7$52INi>l6= z)EPSs%-iI9NM}x>{ZkA-8L)hh6+tSPc`ah1;3*M~5~eRafhE0NP`O_Ju}37nkTU+e znuY_(gb2Ya^Eo+K*24mzfa=C|PkwmqH6XV;A_1(=>_QL*2+&q#_62}zOgM@o&h5mZ zXq16S=#rn&m(0f7+%hKJe!eGbM*;TkpQi+@kU$3nF5awt>dZ1fymKzl48gJUi7wCt zVTev5LeOltI>ZH37(jtDDnx*JFY;@hqR*r?q88o6kL!IbsWaH{$}2;+K>1lMHe&6%|C{Em@d2CU@3^C)_FY%{jUA zJ%YX#c*%gJ?Awlq2Mf?ek5$&wwd5va?Xs_5YIu~_=v)tH zH!#Bj7w!J7oF;x-?x?^X%mIb@wLurP`YDRLz7xp6nnjGP?pRQ#Ejw-E;k@3jrHgMT7Dqd^-nFhP2_$@o0ps{#i^7|)5fbP%vCVV!hm64 zU8L?1%dXL9W{k}#imgs(@05Lnmt=BQj0?F4Td{+7m3+MM^#WY$0LDYIbm#|6qQDVu zfldAt3Ful2xUa)HI~Rc`MLS+T`xI-9YjVl0q84Xxi2k##-<=ng&!|p_LjcIgmKZuM zl$CEjWNZW^n=AgxQl!bRYaWVdE$7*>^|gGmgC%-o4ESPdp5s%j)=%EX%WZ;JCcd?| zPQl^{Q{fu_3=hsRURX}DcE#6@m)Pujk9D0G0^r#%?IL1b@1N8_?)YF17nH%zQ(&IV zQ(b><*kW^W>PM(CKqo^1-YEk7NYr8Kv_f?*hyNl3ub?A#Sbts+wIP2bGRA^vyB9aBEB_DIol8oronj>cUr@ z5SoAQR8o_XPKG&`B;wDFKegpvZaMdAI)fOJ3c#~+uE1sj$2Cc?`r{8LIT}pY!ndg5 zH?qMTjKLQy-+cbDJo8FjI6NLXlkDdh$_<;oJ*AX@JFfm>|Hg5|YkitCx*G62m>QT} zki@ybK?eqc+r1gE-;fcYaQ8Y!E+`+0C%%6F(Pz*#1D*MsgnWVB8t-FMKqm;{>jn$R z6|fQnjl_Y)W~^3XS%PdIAkc}L1;1i<93*i*+~2#3XC8w!iZHr_v8hl9FN~x$b=>FiNYktCGili!rDA_Z37bF?BZMVfj+1gQKM)~j!+s-HlCXd#t};fta8jm!eoYB5 z`@CtG^3DA4VfU({TZS;Q?4wmbSG07bG>o+wa9l~;3)gEW*znY=3rmCW4@>6x(}mhypm4TPTJ&+ zC+;-54&=?vMs@5j=8C^uSRp#gmb$BK$MqLzV8DZ&(FNZ~w`Bz50^vGXFCP9WQm0(Kl5$tYuRb^@#2{sD@V=Sk#6+cx&&H-C zHUjXQd8J=dgmWPW>F)wes1%PJ_VWM?ay7aG4!GK&9k9+PaqyGcq;cf0mx$U5X{>{_ zA4v64jG`{8Y8>Pn@#S`I{*EM=-0ym_9f(k%N4C~DWn=pC>+?&J9`ZXx+ zxpLkx5JZz@qK%{#(5y`9jlXG3{a>{d4?@eN62=b?^@RYo@VgkZWgu!Tquz1ke$Dgdt{d9*@N3 z+ZC$7gFzln4(@|}hwq_F(StmhP9bYQ+(8%khU)xGN^!}7m3ja9=-rYsR$>4+V8F#t4PrBS>NpPZRA5wL zGD=h9UVWxDOX^Id8OU7(;>G+|OgqlBm?ml~`|8xo9n+@0Yx%E}uG4#R-kyi>mnrU=YWDhJA}!Zae87SdLV2W`=&7CdbC`$LJ@L=!frZ zfSS4iw1h_Qoh)Fj;xGh$@E0tJRUbr0%!k!s82oG)mNm>$oim%!Sc3AsvlM(a_%K^6 z9=IU3D@)#IDgbKIeNy9ff7Df@3gX$?`uT>NS2r4L3MyVpPI5UM;wE&c1D!xhL>uTV zjJAWe8Q{>o`X_#e1fohhSlQP?A5^Q)*WRKiUWWUkKx~u1Cv2(2F9*uE4QBjb$OH@7 zFJfve%12(MYVW7eM?Xv}Ttb`5qF@t;(_Em&ow!R>^Kl$u7ddQ;Vezy`}ob0 zRFnnoC_Uw&d7+&O{O}Cto8J`IO@0KZp=~dA@F_ zx6zyOc%{_ZKb4FG+kC`?`F%ULA6Z_@g!9s(U2J(*1-V89Ul%aHz^y9PbE5WQ>p~QlCZ4t6 zc3SS~vptNmdansNM0LF}A^jHClpIrUXQs*am3QlU7AfT`FXlen<&mfcSuCFS8Z5u% zFf#GC~T3K7E0P_I+3;?w!651Yd)Yhx{x(fGo z@AVgcBG$RG!$#1C1M1p!Ug3NP7Mn0ko)(4XR%dQDwfMfit0s8A)!~nRPHQ7TwDug! zKDs`&uA+!jAO1%%sz6tS%1zgol%u$b_?%;$bSV9C^-$2*pR}5$c1|*d46H^S&%nz*$^?eu} z92$7{aeirWWp$}t@f}*;Lt?2L^@s5lW-%y-3OU~N*w}KEBf%}KT3sO@imn1OBC9qcS&y=kIo%WW7qe-;Z2XWgd$N(ZNItF&&uG~eAmADWdTSd9b zn>vd+7~i*fpsx>X z>0eu9;E!S&pHM7zaVFszQ~Mav=&qg1uzOGOkxvS^M~~r@Hycx+Qne5_f4Ba)!i z*B2W!qA)?!AZ*Y9E0h0?vk5FN{-B3_g$#f;l=WHcF0LlrbNUUSs|NXQaTE4FUj249 zlx`GS9+)fv*s`Ik31%w5!WaFADU{%VhvnMV#{1swMIiOUDK|R)JU5EI$b3}$XW5AF zUMA1kQrOA{BFqr8ubSG0_fBKeU66!8PcA zLev(=ni$lxDmtP7Dn1NmJpwwp=Oy}#p5S0ycys?=GD!4iv(`L zP+KeHwWp6|?v?ENhWKwM$+K&JzK%24S1_Yu1-`lWpKIQMjhh;%(XNKgR;>9dxQpETWmCD42Se@~eyYs6K2Fli~>E>uR3j@G7 zcau4d2A7whXr_!&Zef9GnB{BJ`IB$?XBVD^L^tH&vYf7%8hRj(fsq%}eMxohFDiSfXV5`KcT*M2bM|wLnypdhT{($T=Ovk?MPtzSyR0EE+_OU z7KV|)<^Y%q802@+jKpaO4GJ#k6?lU^g7-+M%-DTf)=B-=O1A*<7I&xK_=W^Vi?wr- zbP^>hnez;N=nR@{pT1W3|BCqPsH(az+I@p=kPuM1K|s2Z?rxBf?v#!TA}u0F3et^$ zl9HEDLAtvnloF8ccfa?0W4u4_8RMRD);W8vz4n}IPRfyI>~FpQQf3ZXG$*5h&{O7S z12@e<%w9|oY8akzAzp)p=AsDxco^ZV#Fu@dKwMu!EwSZcz1M5kK$;NS00ui$2C5VT zg=J8+VrYjQ3{h%eBo<8y*kA2}Z$jH|F4>V5=3>RxKbA1mwDOrBH5X)CeL|JIN$f-? zMlGH^B^4O599vM0auq%2eAtYxjJu>rXUAL(+!bvgc0rcWBGZ9s0gKMO+k7g$nL_-%6rWk;tW*lh=4LY%tqZ{N9a&_b?%vOLT zZvZufc*yt_DtMI8qeF)xTiP|{P1H+w?`#}6wnYV@j5=cg`hxJisH)#~XowKCRc$oH z>QZK5K2&-_QduAOKd5Q4MWLmcvN%b;za{jdo+{@NmYFREr-N9{!hZ`+Gz-uvL*Iyq z8)3Imon!vRH?6>hY1gYX1~XQ@;$HS-qb1GjU7;c*6=#%s(gZRw4G*)_X~7&mr%dD8O%!qNw>Lz?KhPY34c^|^xE^5V(s#< z%1(2EbVn%Op(g5tq=LBmh62*(R{(glI#XVA|9}v>5dbK_6R7k)3|y$*1)m%KZ;QGi zTD_9SsYtwag^m80Va0=>pc)

    LN82UIV!ezfkLq=I%X>&(QiV4`D5YEO`bj1C~VF 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 literal 0 HcmV?d00001 From 34ce97ef3354bec3a8dcfb2691cb871fe5f91513 Mon Sep 17 00:00:00 2001 From: Poojawa Date: Wed, 27 Mar 2019 23:26:33 -0500 Subject: [PATCH 34/37] flip it turnways --- code/modules/mob/living/carbon/human/species.dm | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 61b6ac0bec..3f3c2cd548 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1143,14 +1143,15 @@ GLOBAL_LIST_EMPTY(roundstart_races) H.add_trait(TRAIT_FAT, OBESITY) H.update_inv_w_uniform() H.update_inv_wear_suit() - - if(H.noisy && H.nutrition <= NUTRITION_LEVEL_HUNGRY) - if(prob(10)) - playsound(get_turf(H),"hunger_sounds",15,0,-5,1,ignore_walls = FALSE,channel=CHANNEL_PRED) - else if(H.noisy && H.nutrition <= NUTRITION_LEVEL_STARVING) + + if(H.noisy && H.nutrition <= NUTRITION_LEVEL_STARVING) if(prob(10)) playsound(get_turf(H),"hunger_sounds",35,0,-5,1,ignore_walls = FALSE,channel=CHANNEL_PRED) - + + else if(H.noisy && H.nutrition <= NUTRITION_LEVEL_HUNGRY) + if(prob(10)) + playsound(get_turf(H),"hunger_sounds",15,0,-5,1,ignore_walls = FALSE,channel=CHANNEL_PRED) + // nutrition decrease and satiety if (H.nutrition > 0 && H.stat != DEAD && !H.has_trait(TRAIT_NOHUNGER)) // THEY HUNGER From d763eec341e188eaaf44cbe3b46e79818ef86d34 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 30 Mar 2019 16:26:56 -0500 Subject: [PATCH 35/37] Automatic changelog generation for PR #8167 [ci skip] --- html/changelogs/AutoChangeLog-pr-8167.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8167.yml diff --git a/html/changelogs/AutoChangeLog-pr-8167.yml b/html/changelogs/AutoChangeLog-pr-8167.yml new file mode 100644 index 0000000000..105e5c34b8 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8167.yml @@ -0,0 +1,4 @@ +author: "deathride58" +delete-after: True +changes: + - bugfix: "The endgame narsie summon rune no longer requires 24 total sacrifices, and will now properly account for cultists that surround it" From f45ebe29d787e84d69f3b5127a28ff5a53b16ceb Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 31 Mar 2019 20:19:24 -0500 Subject: [PATCH 36/37] Automatic changelog generation for PR #8164 [ci skip] --- html/changelogs/AutoChangeLog-pr-8164.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8164.yml diff --git a/html/changelogs/AutoChangeLog-pr-8164.yml b/html/changelogs/AutoChangeLog-pr-8164.yml new file mode 100644 index 0000000000..5d00b5b9ba --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8164.yml @@ -0,0 +1,12 @@ +author: "Poojawa" +delete-after: True +changes: + - bugfix: "Vore Panel restored to have various interactions available again. Semi-untested but should work as advertised." + - tweak: "Vore Panel has more feedback." + - rscadd: "is_wet var to bellies, toggled in the panel, will remove flesh sounding struggles and the internal loop. JSON version updated." + - rscadd: "Feeding var. You will need to enable feeding to recieve any feed vore actions, but you can now feed yourself to mobs that have this set. TODO, Dogborg sleeper feeding." + - rscadd: "vore mode button now required to be enabled to perform vore actions. It's the mouth icon!" + - bugfix: "Ash Drake vore fixed for actual reals this time" + - bugfix: "Mobs shouldn't spam the released contents announcement anymore on qdel or death. Only if triggered" + - tweak: "Hostile mob code now properly ignores targets in bellies" + - rscadd: "Your belly can quietly growl if you're starving now." From aadcf594ffd498f6459e14797d7d4a364c8f7785 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 31 Mar 2019 20:21:00 -0500 Subject: [PATCH 37/37] Automatic changelog generation for PR #8159 [ci skip] --- html/changelogs/AutoChangeLog-pr-8159.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8159.yml diff --git a/html/changelogs/AutoChangeLog-pr-8159.yml b/html/changelogs/AutoChangeLog-pr-8159.yml new file mode 100644 index 0000000000..da0f13e28a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8159.yml @@ -0,0 +1,6 @@ +author: "Poojawa" +delete-after: True +changes: + - balance: "Ashwalkers now have lungs. They cannot breath station air without suffocation effects, but are completely fine on their homeworld." + - balance: "Carbon mobs now have a maximum tolerance to oxygen of 50kPa." + - balance: "Deluxe synthetic lungs have a very high bonus to O2 tolerance."