tweaks
Synthtissue borrowed health capped at 250, gradually flips from clonedamage towards toxdamage within 45 cycles. Restores organ healing for strange reagent, but only in a very weak fashion (5 heal for failing organs)
This commit is contained in:
@@ -63,6 +63,9 @@
|
|||||||
|
|
||||||
#define THRESHOLD_UNHUSK 50 // health threshold for synthflesh/rezadone to unhusk someone
|
#define THRESHOLD_UNHUSK 50 // health threshold for synthflesh/rezadone to unhusk someone
|
||||||
|
|
||||||
|
#define SYNTHTISSUE_BORROW_CAP 250 //The cap for synthtissue's borrowed health value when used on someone dead or already having borrowed health.
|
||||||
|
#define SYNTHTISSUE_DAMAGE_FLIP_CYCLES 45 //After how many cycles the damage will be pure toxdamage as opposed to clonedamage like initially. Gradually changes during its cycles.
|
||||||
|
|
||||||
//reagent bitflags, used for altering how they works
|
//reagent bitflags, used for altering how they works
|
||||||
#define REAGENT_DEAD_PROCESS (1<<0) //calls on_mob_dead() if present in a dead body
|
#define REAGENT_DEAD_PROCESS (1<<0) //calls on_mob_dead() if present in a dead body
|
||||||
#define REAGENT_DONOTSPLIT (1<<1) //Do not split the chem at all during processing
|
#define REAGENT_DONOTSPLIT (1<<1) //Do not split the chem at all during processing
|
||||||
|
|||||||
@@ -1000,6 +1000,10 @@
|
|||||||
var/obj/item/organ/heart/H = C.getorganslot(ORGAN_SLOT_HEART)
|
var/obj/item/organ/heart/H = C.getorganslot(ORGAN_SLOT_HEART)
|
||||||
if(H && H.organ_flags & ORGAN_FAILING)
|
if(H && H.organ_flags & ORGAN_FAILING)
|
||||||
H.applyOrganDamage(-15)
|
H.applyOrganDamage(-15)
|
||||||
|
for(var/obj/item/organ/O as anything in C.internal_organs)
|
||||||
|
if(O.organ_flags & ORGAN_FAILING)
|
||||||
|
O.applyOrganDamage(-5)
|
||||||
|
|
||||||
M.adjustOxyLoss(-20, 0)
|
M.adjustOxyLoss(-20, 0)
|
||||||
M.adjustToxLoss(-20, 0)
|
M.adjustToxLoss(-20, 0)
|
||||||
M.updatehealth()
|
M.updatehealth()
|
||||||
|
|||||||
@@ -167,9 +167,10 @@
|
|||||||
|
|
||||||
data["injected_vol"] = max(0, data["injected_vol"] - metabolization_rate * C.metabolism_efficiency) //No negatives.
|
data["injected_vol"] = max(0, data["injected_vol"] - metabolization_rate * C.metabolism_efficiency) //No negatives.
|
||||||
if(borrowed_health)
|
if(borrowed_health)
|
||||||
var/payback = 2 * C.metabolism_efficiency //How much borrowed health we are paying back. Half as clonedam, half as true omni toxdam
|
var/ratio = (current_cycle > SYNTHTISSUE_DAMAGE_FLIP_CYCLES) ? 0 : (1 - (current_cycle / SYNTHTISSUE_DAMAGE_FLIP_CYCLES))
|
||||||
C.adjustToxLoss(payback / 2, forced = TRUE, toxins_type = TOX_OMNI)
|
var/payback = 2 * C.metabolism_efficiency //How much borrowed health we are paying back. Starts as cloneloss, slowly flips over to toxloss.
|
||||||
C.adjustCloneLoss(payback / 2)
|
C.adjustToxLoss((1 - ratio) * payback * REAGENTS_EFFECT_MULTIPLIER, forced = TRUE, toxins_type = TOX_OMNI)
|
||||||
|
C.adjustCloneLoss(ratio * payback * REAGENTS_EFFECT_MULTIPLIER)
|
||||||
borrowed_health = max(borrowed_health - payback, 0)
|
borrowed_health = max(borrowed_health - payback, 0)
|
||||||
..()
|
..()
|
||||||
|
|
||||||
@@ -188,7 +189,7 @@
|
|||||||
/datum/reagent/synthtissue/on_new(passed_data)
|
/datum/reagent/synthtissue/on_new(passed_data)
|
||||||
if(!passed_data)
|
if(!passed_data)
|
||||||
return ..()
|
return ..()
|
||||||
borrowed_health += passed_data["borrowed_health"]
|
borrowed_health = min(passed_data["borrowed_health"] + borrowed_health, SYNTHTISSUE_BORROW_CAP)
|
||||||
if(passed_data["grown_volume"] > data["grown_volume"])
|
if(passed_data["grown_volume"] > data["grown_volume"])
|
||||||
data["grown_volume"] = passed_data["grown_volume"]
|
data["grown_volume"] = passed_data["grown_volume"]
|
||||||
update_name()
|
update_name()
|
||||||
@@ -220,9 +221,9 @@
|
|||||||
C.adjustCloneLoss(borrowed_health*1.25)
|
C.adjustCloneLoss(borrowed_health*1.25)
|
||||||
C.adjustAllOrganLoss(borrowed_health*0.25)
|
C.adjustAllOrganLoss(borrowed_health*0.25)
|
||||||
M.updatehealth()
|
M.updatehealth()
|
||||||
if(borrowed_health && C.health < -20)
|
if(C.stat != DEAD && borrowed_health && C.health < -20)
|
||||||
M.stat = DEAD
|
|
||||||
M.visible_message("The synthetic tissue degrades off [M]'s wounds as they collapse to the floor.")
|
M.visible_message("The synthetic tissue degrades off [M]'s wounds as they collapse to the floor.")
|
||||||
|
M.death()
|
||||||
//NEEDS ON_MOB_DEAD()
|
//NEEDS ON_MOB_DEAD()
|
||||||
|
|
||||||
/datum/reagent/fermi/zeolites
|
/datum/reagent/fermi/zeolites
|
||||||
|
|||||||
Reference in New Issue
Block a user