From 4c0245a1b03250deaf58072545aec079b0722e96 Mon Sep 17 00:00:00 2001 From: "C.L" Date: Sun, 21 Aug 2022 11:40:15 -0400 Subject: [PATCH 1/2] Adds Toxins & Cloneloss digestion damage. - Adds Toxins as a digestion damage type. - Adds Clone damage as a digestion damage type. - Cloneloss gives 2x nutrition than brute/burn since it is exceptionally harder to heal from. (not that it matters) So now slime characters can actually RP out sucking out your DNA and leaving you a DNAless husk while slamming you with toxins like xenobio slimes can. --- 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 ++++++++ tgui/public/tgui.bundle.js | 2 +- 5 files changed, 38 insertions(+), 2 deletions(-) diff --git a/code/modules/vore/eating/belly_obj_vr.dm b/code/modules/vore/eating/belly_obj_vr.dm index 4f494192cd9..ee11c505b57 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 @@ -174,6 +176,8 @@ "digest_brute", "digest_burn", "digest_oxy", + "digest_tox", + "digest_clone", "immutable", "can_taste", "escapable", @@ -1106,6 +1110,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 6eb115e0442..80b78305391 100644 --- a/code/modules/vore/eating/bellymodes_datum_vr.dm +++ b/code/modules/vore/eating/bellymodes_datum_vr.dm @@ -43,13 +43,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 1512552107b..ce078a7384a 100644 --- a/code/modules/vore/eating/vorepanel_vr.dm +++ b/code/modules/vore/eating/vorepanel_vr.dm @@ -176,6 +176,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, @@ -1095,6 +1097,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 3d347168006..4adc1850e08 100644 --- a/tgui/packages/tgui/interfaces/VorePanel.js +++ b/tgui/packages/tgui/interfaces/VorePanel.js @@ -495,6 +495,8 @@ const VoreSelectedBellyOptions = (props, context) => { digest_brute, digest_burn, digest_oxy, + digest_tox, + digest_clone, bulge_size, display_absorbed_examine, shrink_grow_size, @@ -603,6 +605,12 @@ const VoreSelectedBellyOptions = (props, context) => {