From b149090ed10cb4d2819f475a8bcbd2676131ece3 Mon Sep 17 00:00:00 2001 From: Casey Date: Mon, 22 Aug 2022 16:28:04 -0400 Subject: [PATCH] Adds Toxins & Cloneloss digestion damage. --- code/modules/mob/living/carbon/human/life.dm | 2 +- code/modules/vore/eating/belly_obj_vr.dm | 6 ++++++ code/modules/vore/eating/bellymodes_datum_vr.dm | 8 +++++++- code/modules/vore/eating/vorepanel_vr.dm | 16 ++++++++++++++++ tgui/packages/tgui/interfaces/VorePanel.js | 8 ++++++++ 5 files changed, 38 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index d2d4821cd9..9857513e7e 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -1583,7 +1583,7 @@ return // Puke if toxloss is too high - if(!stat) + if(!stat && !isbelly(loc)) if (getToxLoss() >= 30 && isSynthetic()) if(!confused) if(prob(5)) diff --git a/code/modules/vore/eating/belly_obj_vr.dm b/code/modules/vore/eating/belly_obj_vr.dm index 6297d002f5..5242eb687b 100644 --- a/code/modules/vore/eating/belly_obj_vr.dm +++ b/code/modules/vore/eating/belly_obj_vr.dm @@ -23,6 +23,8 @@ var/digest_brute = 0.5 // Brute damage per tick in digestion mode var/digest_burn = 0.5 // Burn damage per tick in digestion mode var/digest_oxy = 0 // Oxy damage per tick in digestion mode + var/digest_tox = 0 // Toxins damage per tick in digestion mode + var/digest_clone = 0 // Clone damage per tick in digestion mode var/immutable = FALSE // Prevents this belly from being deleted var/escapable = FALSE // Belly can be resisted out of at any time var/escapetime = 20 SECONDS // Deciseconds, how long to escape this belly @@ -178,6 +180,8 @@ "digest_brute", "digest_burn", "digest_oxy", + "digest_tox", + "digest_clone", "immutable", "can_taste", "escapable", @@ -1187,6 +1191,8 @@ dupe.digest_brute = digest_brute dupe.digest_burn = digest_burn dupe.digest_oxy = digest_oxy + dupe.digest_tox = digest_tox + dupe.digest_clone = digest_clone dupe.immutable = immutable dupe.can_taste = can_taste dupe.escapable = escapable diff --git a/code/modules/vore/eating/bellymodes_datum_vr.dm b/code/modules/vore/eating/bellymodes_datum_vr.dm index f08da0fdca..67605bf14b 100644 --- a/code/modules/vore/eating/bellymodes_datum_vr.dm +++ b/code/modules/vore/eating/bellymodes_datum_vr.dm @@ -55,13 +55,19 @@ GLOBAL_LIST_INIT(digest_modes, list()) var/old_brute = L.getBruteLoss() var/old_burn = L.getFireLoss() var/old_oxy = L.getOxyLoss() + var/old_tox = L.getToxLoss() + var/old_clone = L.getCloneLoss() L.adjustBruteLoss(B.digest_brute) L.adjustFireLoss(B.digest_burn) L.adjustOxyLoss(B.digest_oxy) + L.adjustToxLoss(B.digest_tox) + L.adjustCloneLoss(B.digest_clone) var/actual_brute = L.getBruteLoss() - old_brute var/actual_burn = L.getFireLoss() - old_burn var/actual_oxy = L.getOxyLoss() - old_oxy - var/damage_gain = (actual_brute + actual_burn + actual_oxy/2)*(B.nutrition_percent / 100) + var/actual_tox = L.getToxLoss() - old_tox + var/actual_clone = L.getCloneLoss() - old_clone + var/damage_gain = (actual_brute + actual_burn + actual_oxy/2 + actual_tox + actual_clone*2)*(B.nutrition_percent / 100) var/offset = (1 + ((L.weight - 137) / 137)) // 130 pounds = .95 140 pounds = 1.02 var/difference = B.owner.size_multiplier / L.size_multiplier diff --git a/code/modules/vore/eating/vorepanel_vr.dm b/code/modules/vore/eating/vorepanel_vr.dm index 1477e61af3..80e9fb8058 100644 --- a/code/modules/vore/eating/vorepanel_vr.dm +++ b/code/modules/vore/eating/vorepanel_vr.dm @@ -186,6 +186,8 @@ "digest_brute" = selected.digest_brute, "digest_burn" = selected.digest_burn, "digest_oxy" = selected.digest_oxy, + "digest_tox" = selected.digest_tox, + "digest_clone" = selected.digest_clone, "bulge_size" = selected.bulge_size, "save_digest_mode" = selected.save_digest_mode, "display_absorbed_examine" = selected.display_absorbed_examine, @@ -1235,6 +1237,20 @@ var/new_new_damage = CLAMP(new_damage, 0, 12) host.vore_selected.digest_oxy = new_new_damage . = TRUE + if("b_tox_dmg") + var/new_damage = tgui_input_number(user, "Choose the amount of toxins damage prey will take per tick. Ranges from 0 to 6", "Set Belly Toxins Damage.", host.vore_selected.digest_tox, 6, 0) + if(new_damage == null) + return FALSE + var/new_new_damage = CLAMP(new_damage, 0, 6) + host.vore_selected.digest_tox = new_new_damage + . = TRUE + if("b_clone_dmg") + var/new_damage = tgui_input_number(user, "Choose the amount of brute DNA damage (clone) prey will take per tick. Ranges from 0 to 6", "Set Belly Clone Damage.", host.vore_selected.digest_clone, 6, 0) + if(new_damage == null) + return FALSE + var/new_new_damage = CLAMP(new_damage, 0, 6) + host.vore_selected.digest_clone = new_new_damage + . = TRUE if("b_emoteactive") host.vore_selected.emote_active = !host.vore_selected.emote_active . = TRUE diff --git a/tgui/packages/tgui/interfaces/VorePanel.js b/tgui/packages/tgui/interfaces/VorePanel.js index 9ec9eb7da0..9cf0f604f2 100644 --- a/tgui/packages/tgui/interfaces/VorePanel.js +++ b/tgui/packages/tgui/interfaces/VorePanel.js @@ -577,6 +577,8 @@ const VoreSelectedBellyOptions = (props, context) => { digest_brute, digest_burn, digest_oxy, + digest_tox, + digest_clone, bulge_size, display_absorbed_examine, shrink_grow_size, @@ -686,6 +688,12 @@ const VoreSelectedBellyOptions = (props, context) => {