Merge remote-tracking branch 'upstream/master' into cool-ipcs

This commit is contained in:
Timothy Teakettle
2020-09-16 05:12:20 +01:00
635 changed files with 23608 additions and 12861 deletions

View File

@@ -580,4 +580,63 @@
/datum/status_effect/regenerative_core/on_remove()
. = ..()
REMOVE_TRAIT(owner, TRAIT_IGNOREDAMAGESLOWDOWN, "regenerative_core")
owner.updatehealth()
owner.updatehealth()
/datum/status_effect/panacea
id = "Anatomic Panacea"
duration = 100
tick_interval = 10
alert_type = /obj/screen/alert/status_effect/panacea
/obj/screen/alert/status_effect/panacea
name = "Panacea"
desc = "We purge the impurities from our body."
icon_state = "panacea"
// Changeling's anatomic panacea now in buff form. Directly fixes issues instead of injecting chems
/datum/status_effect/panacea/tick()
var/mob/living/carbon/M = owner
//Heal brain damage and toxyloss, alongside trauma
owner.adjustOrganLoss(ORGAN_SLOT_BRAIN, -8)
owner.adjustToxLoss(-6, forced = TRUE)
M.cure_trauma_type(resilience = TRAUMA_RESILIENCE_BASIC)
//Purges 50 rads per tick
if(owner.radiation > 0)
owner.radiation -= min(owner.radiation, 50)
//Mutadone effects
owner.jitteriness = 0
if(owner.has_dna())
M.dna.remove_all_mutations(mutadone = TRUE)
if(!QDELETED(owner)) //We were a monkey, now a human
..()
// Purges toxins
for(var/datum/reagent/toxin/R in owner.reagents.reagent_list)
owner.reagents.remove_reagent(R.type, 5)
//Antihol effects
M.reagents.remove_all_type(/datum/reagent/consumable/ethanol, 10, 0, 1)
M.drunkenness = max(M.drunkenness - 10, 0)
owner.dizziness = 0
owner.drowsyness = 0
owner.slurring = 0
owner.confused = 0
//Organ and disease cure moved from panacea.dm to buff proc
var/list/bad_organs = list(
owner.getorgan(/obj/item/organ/body_egg),
owner.getorgan(/obj/item/organ/zombie_infection))
for(var/o in bad_organs)
var/obj/item/organ/O = o
if(!istype(O))
continue
O.Remove()
if(iscarbon(owner))
var/mob/living/carbon/C = owner
C.vomit(0, toxic = TRUE)
O.forceMove(get_turf(owner))
if(isliving(owner))
var/mob/living/L = owner
for(var/thing in L.diseases)
var/datum/disease/D = thing
if(D.severity == DISEASE_SEVERITY_POSITIVE)
continue
D.cure()

View File

@@ -536,6 +536,38 @@
if(100)
H.adjustOrganLoss(ORGAN_SLOT_BRAIN,20)
/datum/status_effect/corrosion_curse/lesser
id = "corrosion_curse_lesser"
duration = 20 SECONDS
/datum/status_effect/corrosion_curse/lesser/tick()
. = ..()
if(!ishuman(owner))
return
var/mob/living/carbon/human/H = owner
var/chance = rand(0,100)
switch(chance)
if(0 to 19)
H.adjustBruteLoss(6)
if(20 to 29)
H.Dizzy(10)
if(30 to 39)
H.adjustOrganLoss(ORGAN_SLOT_LIVER,2)
if(40 to 49)
H.adjustOrganLoss(ORGAN_SLOT_HEART,2)
if(50 to 59)
H.adjustOrganLoss(ORGAN_SLOT_STOMACH,2)
if(60 to 69)
H.adjustOrganLoss(ORGAN_SLOT_EYES,5)
if(70 to 79)
H.adjustOrganLoss(ORGAN_SLOT_EARS,5)
if(80 to 89)
H.adjustOrganLoss(ORGAN_SLOT_LUNGS,5)
if(90 to 99)
H.adjustOrganLoss(ORGAN_SLOT_TONGUE,5)
if(100)
H.adjustOrganLoss(ORGAN_SLOT_BRAIN,10)
/datum/status_effect/amok
id = "amok"
status_type = STATUS_EFFECT_REPLACE