Merge pull request #9820 from Heroman3003/choke-gut

Adds Suffocation Damage option to vore panel/bellies
This commit is contained in:
Novacat
2021-05-08 20:59:35 -04:00
committed by GitHub
8 changed files with 30 additions and 9 deletions
+3
View File
@@ -21,6 +21,7 @@
var/nutrition_percent = 100 // Nutritional percentage per tick in digestion mode
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/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
@@ -132,6 +133,7 @@
"nutrition_percent",
"digest_brute",
"digest_burn",
"digest_oxy",
"immutable",
"can_taste",
"escapable",
@@ -760,6 +762,7 @@
dupe.nutrition_percent = nutrition_percent
dupe.digest_brute = digest_brute
dupe.digest_burn = digest_burn
dupe.digest_oxy = digest_oxy
dupe.immutable = immutable
dupe.can_taste = can_taste
dupe.escapable = escapable
@@ -41,11 +41,14 @@ GLOBAL_LIST_INIT(digest_modes, list())
// Deal digestion damage (and feed the pred)
var/old_brute = L.getBruteLoss()
var/old_burn = L.getFireLoss()
var/old_oxy = L.getOxyLoss()
L.adjustBruteLoss(B.digest_brute)
L.adjustFireLoss(B.digest_burn)
L.adjustOxyLoss(B.digest_oxy)
var/actual_brute = L.getBruteLoss() - old_brute
var/actual_burn = L.getFireLoss() - old_burn
var/damage_gain = (actual_brute + actual_burn)*(B.nutrition_percent / 100)
var/actual_oxy = L.getOxyLoss() - old_oxy
var/damage_gain = (actual_brute + actual_burn + actual_oxy/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
@@ -76,6 +76,8 @@
if(!digestion_noise_chance)
digestion_noise_chance = DM.noise_chance
///////////////////// Time to actually process mobs /////////////////////
for(var/target in touchable_mobs)
var/mob/living/L = target
if(!istype(L))
+2 -2
View File
@@ -26,7 +26,7 @@
if(isbelly(item_storage))
var/obj/belly/B = item_storage
g_damage = 0.25 * (B.digest_brute + B.digest_burn)
g_damage = 0.25 * (B.digest_brute + B.digest_burn + (B.digest_oxy)/2)
if(digest_stage > 0)
if(g_damage > digest_stage)
@@ -111,7 +111,7 @@
if((. = ..()))
if(isbelly(item_storage))
var/obj/belly/B = item_storage
. += 2 * (B.digest_brute + B.digest_burn)
. += 2 * (B.digest_brute + B.digest_burn + (B.digest_oxy)/2)
else
. += 30 //Organs give a little more
+7
View File
@@ -154,6 +154,7 @@
"nutrition_percent" = selected.nutrition_percent,
"digest_brute" = selected.digest_brute,
"digest_burn" = selected.digest_burn,
"digest_oxy" = selected.digest_oxy,
"bulge_size" = selected.bulge_size,
"shrink_grow_size" = selected.shrink_grow_size,
"emote_time" = selected.emote_time,
@@ -843,6 +844,12 @@
var/new_new_damage = CLAMP(new_damage, 0, 6)
host.vore_selected.digest_brute = new_new_damage
. = TRUE
if("b_oxy_dmg")
var/new_damage = input(user, "Choose the amount of suffocation damage prey will take per tick. Ranges from 0 to 12.", "Set Belly Suffocation Damage.", host.vore_selected.digest_oxy) as num|null
if(new_damage == null)
return FALSE
var/new_new_damage = CLAMP(new_damage, 0, 12)
host.vore_selected.digest_oxy = new_new_damage
if("b_emoteactive")
host.vore_selected.emote_active = !host.vore_selected.emote_active
. = TRUE
@@ -165,6 +165,7 @@ const VoreSelectedBelly = (props, context) => {
nutrition_percent,
digest_brute,
digest_burn,
digest_oxy,
bulge_size,
shrink_grow_size,
emote_time,
@@ -304,6 +305,11 @@ const VoreSelectedBelly = (props, context) => {
onClick={() => act("set_attribute", { attribute: "b_burn_dmg" })}
content={digest_burn} />
</LabeledList.Item>
<LabeledList.Item label="Digest Suffocation Damage">
<Button
onClick={() => act("set_attribute", { attribute: "b_oxy_dmg" })}
content={digest_oxy} />
</LabeledList.Item>
<LabeledList.Item label="Nutritional Gain">
<Button
onClick={() => act("set_attribute", { attribute: "b_nutritionpercent" })}
File diff suppressed because one or more lines are too long
+5 -5
View File
@@ -2078,29 +2078,29 @@
#include "code\modules\economy\TradeDestinations.dm"
#include "code\modules\economy\vending.dm"
#include "code\modules\economy\vending_machines.dm"
#include "code\modules\emotes\definitions\audible_furry_vr.dm"
#include "code\modules\emotes\definitions\helpers_vr.dm"
#include "code\modules\emotes\definitions\visible_vr.dm"
#include "code\modules\entopics_vr\alternate_appearance.dm"
#include "code\modules\entopics_vr\entopics.dm"
#include "code\modules\emotes\emote_define.dm"
#include "code\modules\emotes\emote_mob.dm"
#include "code\modules\emotes\definitions\_mob.dm"
#include "code\modules\emotes\definitions\_species.dm"
#include "code\modules\emotes\definitions\audible.dm"
#include "code\modules\emotes\definitions\audible_cough.dm"
#include "code\modules\emotes\definitions\audible_furry_vr.dm"
#include "code\modules\emotes\definitions\audible_scream.dm"
#include "code\modules\emotes\definitions\audible_slap.dm"
#include "code\modules\emotes\definitions\audible_snap.dm"
#include "code\modules\emotes\definitions\audible_sneeze.dm"
#include "code\modules\emotes\definitions\audible_whistle.dm"
#include "code\modules\emotes\definitions\exertion.dm"
#include "code\modules\emotes\definitions\helpers_vr.dm"
#include "code\modules\emotes\definitions\human.dm"
#include "code\modules\emotes\definitions\slimes.dm"
#include "code\modules\emotes\definitions\synthetics.dm"
#include "code\modules\emotes\definitions\visible.dm"
#include "code\modules\emotes\definitions\visible_animated.dm"
#include "code\modules\emotes\definitions\visible_vomit.dm"
#include "code\modules\emotes\definitions\visible_vr.dm"
#include "code\modules\entopics_vr\alternate_appearance.dm"
#include "code\modules\entopics_vr\entopics.dm"
#include "code\modules\error_handler\_defines.dm"
#include "code\modules\error_handler\error_handler.dm"
#include "code\modules\error_handler\error_viewer.dm"