mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 18:32:03 +00:00
Moves oldviro symptoms and transformation viruses to current virus system (#27946)
* progress * finish transformation symtoms, add dnaspread * toxic compensation, move petrification out of viro, wendigo transform * firt compile, fix errors * finish up move to virus 2, fix some symptoms * fix effects * rework into seperate stages, add stage 1 * cyborg virus done * mommi part one * finish mommi virus * plasma fixes, finish xeno disease, work on wendigo disease * fix * global disease hell * add uplink item * fix mommiviroos * rename * edit desc * fuggen typo * static type...? * oh duh * adjust colors * capitalize * use proce * remove bundle * actually remove bundle * make the proc dothe thing * move that * fix
This commit is contained in:
@@ -6,3 +6,8 @@
|
||||
#define WMOUSE 2
|
||||
#define WINFECTION 3
|
||||
#define WOUTBREAK 4
|
||||
|
||||
#define DISEASE_CYBORG "cyborg"
|
||||
#define DISEASE_MOMMI "mommi"
|
||||
#define DISEASE_XENO "xenomorph"
|
||||
#define DISEASE_WENDIGO "wendigo"
|
||||
@@ -419,10 +419,10 @@ var/global/list/BODY_COVER_VALUE_LIST=list("[HEAD]" = COVER_PROTECTION_HEAD,"[EY
|
||||
#define M_RESIST_COLD 2
|
||||
#define M_XRAY 3
|
||||
#define M_HULK 4
|
||||
#define M_CLUMSY 5
|
||||
#define M_FAT 6
|
||||
#define M_CLUMSY 5
|
||||
#define M_FAT 6
|
||||
#define M_HUSK 7
|
||||
#define M_NOCLONE 8
|
||||
#define M_NOCLONE 8
|
||||
|
||||
// Extra powers:
|
||||
#define M_LASER 9 // harm intent - click anywhere to shoot lasers from eyes
|
||||
@@ -430,6 +430,7 @@ var/global/list/BODY_COVER_VALUE_LIST=list("[HEAD]" = COVER_PROTECTION_HEAD,"[EY
|
||||
#define M_BEAK 11 // Can buther animals without tools
|
||||
#define M_TALONS 12 // Bonus kick damage
|
||||
#define M_STONE_SKIN 13 // hard skin
|
||||
#define M_THERMALS 14 //see mobs through walls
|
||||
|
||||
//#define HEAL 12 // (Not implemented) healing people with hands
|
||||
//#define SHADOW 13 // (Not implemented) shadow teleportation (create in/out portals anywhere) (25%)
|
||||
|
||||
@@ -52,28 +52,31 @@ var/image/contamination_overlay = image('icons/effects/contamination.dmi')
|
||||
if(stat >= 2)
|
||||
return
|
||||
|
||||
if(species.breath_type != GAS_PLASMA)
|
||||
if(species.breath_type == GAS_PLASMA)
|
||||
return
|
||||
if(species.flags & PLASMA_IMMUNE)
|
||||
return
|
||||
|
||||
//Burn skin if exposed.
|
||||
if(zas_settings.Get(/datum/ZAS_Setting/SKIN_BURNS))
|
||||
if(!pl_head_protected() || !pl_suit_protected())
|
||||
burn_skin(0.75)
|
||||
if(prob(20))
|
||||
to_chat(src, "<span class='warning'>Your skin burns!</span>")
|
||||
updatehealth()
|
||||
//Burn skin if exposed.
|
||||
if(zas_settings.Get(/datum/ZAS_Setting/SKIN_BURNS))
|
||||
if(!pl_head_protected() || !pl_suit_protected())
|
||||
burn_skin(0.75)
|
||||
if(prob(20))
|
||||
to_chat(src, "<span class='warning'>Your skin burns!</span>")
|
||||
updatehealth()
|
||||
|
||||
//Burn eyes if exposed.
|
||||
if(zas_settings.Get(/datum/ZAS_Setting/EYE_BURNS))
|
||||
var/eye_protection = get_body_part_coverage(EYES)
|
||||
if(!eye_protection)
|
||||
burn_eyes()
|
||||
//Burn eyes if exposed.
|
||||
if(zas_settings.Get(/datum/ZAS_Setting/EYE_BURNS))
|
||||
var/eye_protection = get_body_part_coverage(EYES)
|
||||
if(!eye_protection)
|
||||
burn_eyes()
|
||||
|
||||
//Genetic Corruption
|
||||
if(zas_settings.Get(/datum/ZAS_Setting/GENETIC_CORRUPTION))
|
||||
if(rand(1,10000) < zas_settings.Get(/datum/ZAS_Setting/GENETIC_CORRUPTION))
|
||||
randmutb(src)
|
||||
to_chat(src, "<span class='warning'>High levels of toxins cause you to spontaneously mutate.</span>")
|
||||
domutcheck(src,null)
|
||||
//Genetic Corruption
|
||||
if(zas_settings.Get(/datum/ZAS_Setting/GENETIC_CORRUPTION))
|
||||
if(rand(1,10000) < zas_settings.Get(/datum/ZAS_Setting/GENETIC_CORRUPTION))
|
||||
randmutb(src)
|
||||
to_chat(src, "<span class='warning'>High levels of toxins cause you to spontaneously mutate.</span>")
|
||||
domutcheck(src,null)
|
||||
|
||||
|
||||
/mob/living/carbon/human/proc/burn_eyes()
|
||||
|
||||
@@ -43,6 +43,8 @@ var/datum/subsystem/more_init/SSmore_init
|
||||
for (var/obj/machinery/computer/security/S in tv_monitors)
|
||||
S.init_cams()
|
||||
|
||||
create_global_diseases()
|
||||
|
||||
init_wizard_apprentice_setups()
|
||||
machinery_rating_cache = cache_machinery_components_rating()
|
||||
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
/*
|
||||
/datum/disease/beesease
|
||||
name = "Beesease"
|
||||
max_stages = 5
|
||||
spread = "Contact" //ie shot bees
|
||||
cure = "???"
|
||||
cure_id = "???"
|
||||
agent = "Bees"
|
||||
affected_species = list("Human","Monkey")
|
||||
curable = 0
|
||||
|
||||
/datum/disease/beesease/stage_act()
|
||||
..()
|
||||
switch(stage)
|
||||
if(1)
|
||||
if(prob(2))
|
||||
to_chat(affected_mob, "<span class='warning'>You feel like something is moving inside of you</span>")
|
||||
if(2) //also changes say, see say.dm
|
||||
if(prob(2))
|
||||
to_chat(affected_mob, "<span class='warning'>You feel like something is moving inside of you</span>")
|
||||
if(prob(2))
|
||||
to_chat(affected_mob, "<span class='warning'>BZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ</span>")
|
||||
if(3)
|
||||
//Should give the bee spit verb
|
||||
if(4)
|
||||
//Plus bees now spit randomly
|
||||
if(5)
|
||||
//Plus if you die, you explode into bees
|
||||
return
|
||||
*/
|
||||
//Started working on it, but am too lazy to finish it today -- Urist
|
||||
@@ -22,13 +22,13 @@
|
||||
|
||||
if(status_flags & GODMODE)
|
||||
return 0 //Godmode. This causes jittering and other variables to never go down but whatever.
|
||||
|
||||
var/total_plasmaloss = 0
|
||||
for(var/obj/item/I in src)
|
||||
if(I.contaminated && !(species.flags & PLASMA_IMMUNE))
|
||||
total_plasmaloss += zas_settings.Get(/datum/ZAS_Setting/CONTAMINATION_LOSS)
|
||||
I.OnMobLife(src)
|
||||
adjustToxLoss(total_plasmaloss)
|
||||
if(!(species.flags & PLASMA_IMMUNE))
|
||||
var/total_plasmaloss = 0
|
||||
for(var/obj/item/I in src)
|
||||
if(I.contaminated)
|
||||
total_plasmaloss += zas_settings.Get(/datum/ZAS_Setting/CONTAMINATION_LOSS)
|
||||
I.OnMobLife(src)
|
||||
adjustToxLoss(total_plasmaloss)
|
||||
|
||||
if(species.flags & REQUIRE_LIGHT)
|
||||
var/light_amount = 0 //How much light there is in the place, affects receiving nutrition and healing
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
src.client.images += V.cached_images[i]
|
||||
i++
|
||||
|
||||
if (!V || (!(VAMP_VISION in V.powers) && !(VAMP_MATURE in V.powers))) // Not a vampire, or a vampire but neither of the spells.
|
||||
if (!V || !(VAMP_VISION in V.powers) && !(VAMP_MATURE in V.powers)) // Not a vampire, or a vampire but neither of the spells.
|
||||
change_sight(removing = SEE_MOBS)
|
||||
if (!V || !(VAMP_MATURE in V.powers))
|
||||
change_sight(removing = SEE_TURFS|SEE_OBJS)
|
||||
@@ -141,6 +141,8 @@
|
||||
if("shadow")
|
||||
see_in_dark = 8
|
||||
see_invisible = SEE_INVISIBLE_LEVEL_ONE
|
||||
if(M_THERMALS in mutations)
|
||||
change_sight(adding = SEE_MOBS)
|
||||
if(M_XRAY in mutations)
|
||||
change_sight(adding = SEE_TURFS|SEE_MOBS|SEE_OBJS)
|
||||
see_in_dark = 8
|
||||
|
||||
@@ -87,26 +87,14 @@
|
||||
if(!L.turn_into_statue(1)) //Statue forever
|
||||
return 0
|
||||
|
||||
to_chat(L, "<span class='userdanger'>You have been turned to stone by \the [src]'s touch.</span>")
|
||||
to_chat(L, "<span class='userdanger'>You have been turned to stone by \the [src]'s bite.</span>")
|
||||
add_logs(src, L, "instantly petrified", admin = L.ckey ? TRUE : FALSE)
|
||||
|
||||
else if(ishuman(L))
|
||||
var/mob/living/carbon/human/H = L
|
||||
|
||||
add_logs(src, L, "petrified", admin = L.ckey ? TRUE : FALSE)
|
||||
|
||||
var/found_virus = FALSE
|
||||
for(var/datum/disease/petrification/P in H.viruses) //If already petrifying, speed up the process!
|
||||
P.stage = P.max_stages
|
||||
P.stage_act()
|
||||
found_virus = TRUE
|
||||
break
|
||||
L.slow_petrify()
|
||||
|
||||
if(!found_virus)
|
||||
var/datum/disease/D = new /datum/disease/petrification
|
||||
D.holder = H
|
||||
D.affected_mob = H
|
||||
H.viruses += D
|
||||
|
||||
var/msg = pick("\The [src] hisses at [L]!", "\The [src] hisses angrily at [L]!")
|
||||
visible_message("<span class='userdanger'>[msg]</span>", "<span class='notice'>You touch [L].</span>", "<span class='sinister'>You hear an eerie hiss.</span>")
|
||||
@@ -239,3 +227,30 @@
|
||||
return 1
|
||||
else if(isliving(L))
|
||||
return 1
|
||||
|
||||
/mob/living/proc/slow_petrify()
|
||||
var/stage = 1
|
||||
while(stage < 4)
|
||||
if(reagents.has_reagent(SACID) || reagents.has_reagent(PACID) || reagents.has_reagent(ACIDSPIT) || reagents.has_reagent(ACIDTEA))
|
||||
to_chat(src, "<span class='notice'>You feel a wave of relief as your muscles loosen up.</span>")
|
||||
return 0
|
||||
if(iscarbon(src))
|
||||
var/mob/living/carbon/H = src
|
||||
switch(stage)
|
||||
if(1)
|
||||
//Second message is shown to hallucinating mobs
|
||||
simple_message("<span class='userdanger'>You are slowing down. Moving is extremely painful for you.</span>",\
|
||||
"<span class='notice'>You feel like Michelangelo di Lodovico Buonarroti Simoni trapped in a foreign body.</span>")
|
||||
H.pain_shock_stage += 300
|
||||
if(2)
|
||||
simple_message("<span class='userdanger'>Your skin starts losing color and cracking. Your body becomes numb.</span>",\
|
||||
"<span class='notice'>You decide to channel your inner Italian sculptor to create a beautiful statue.</span>")
|
||||
H.Stun(3)
|
||||
if(3)
|
||||
if(src.turn_into_statue(1))
|
||||
simple_message("<span class='userdanger'>Your body turns to stone.</span>",\
|
||||
"<span class='notice'>You've created a masterwork statue of David!</span>")
|
||||
return 1
|
||||
stage = stage + 1
|
||||
sleep(25)
|
||||
|
||||
|
||||
@@ -147,7 +147,7 @@
|
||||
..()
|
||||
var/pp = get_pp()
|
||||
var/mob/living/carbon/human/H=lungs.owner
|
||||
if(pp > max_pp) // Too much toxins
|
||||
if(pp > max_pp && !(H.species.flags & PLASMA_IMMUNE)) // Too much toxins
|
||||
//testing("TOXIC: gasid=[id];pp=[pp]")
|
||||
var/ratio = (pp/max_pp) * reagent_mult // WAS: (moles/max_moles) * 10
|
||||
//adjustToxLoss(clamp(ratio, MIN_PLASMA_DAMAGE, MAX_PLASMA_DAMAGE)) //Limit amount of damage toxin exposure can do per second
|
||||
|
||||
@@ -2472,7 +2472,7 @@
|
||||
return 1
|
||||
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(isplasmaman(H))
|
||||
if(isplasmaman(H) || H.species.flags & PLASMA_IMMUNE)
|
||||
return 1
|
||||
else
|
||||
M.adjustToxLoss(3 * REM)
|
||||
@@ -3640,19 +3640,20 @@
|
||||
reagent_state = REAGENT_STATE_SOLID
|
||||
dupeable = FALSE
|
||||
color = "#535E66" //rgb: 83, 94, 102
|
||||
var/diseasetype = /datum/disease/robotic_transformation
|
||||
/datum/reagent/nanites/reaction_mob(var/mob/living/M, var/method = TOUCH, var/volume)
|
||||
var/disease_type = DISEASE_CYBORG
|
||||
|
||||
/datum/reagent/nanites/reaction_mob(var/mob/living/M, var/method = TOUCH, var/volume)
|
||||
if(..())
|
||||
return 1
|
||||
|
||||
if((prob(10) && method == TOUCH) || method == INGEST)
|
||||
M.contract_disease(new diseasetype, 1)
|
||||
M.infect_disease2_predefined(disease_type, 1, "Robotic Nanites")
|
||||
|
||||
/datum/reagent/nanites/autist
|
||||
name = "Autist nanites"
|
||||
id = AUTISTNANITES
|
||||
diseasetype = /datum/disease/robotic_transformation/mommi
|
||||
description = "Microscopic construction robots. They look more autistic than usual."
|
||||
disease_type = DISEASE_MOMMI
|
||||
|
||||
/datum/reagent/xenomicrobes
|
||||
name = "Xenomicrobes"
|
||||
@@ -3665,9 +3666,8 @@
|
||||
|
||||
if(..())
|
||||
return 1
|
||||
|
||||
if((prob(10) && method == TOUCH) || method == INGEST)
|
||||
M.contract_disease(new /datum/disease/xeno_transformation(0), 1)
|
||||
M.infect_disease2_predefined(DISEASE_XENO, 1, "Xenimicrobes")
|
||||
|
||||
/datum/reagent/nanobots
|
||||
name = "Nanobots"
|
||||
@@ -8189,17 +8189,8 @@ var/global/list/tonio_doesnt_remove=list("tonio", "blood")
|
||||
return 1
|
||||
|
||||
if(volume >= minimal_dosage && prob(30))
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(locate(/datum/disease/petrification) in H.viruses)
|
||||
return
|
||||
|
||||
var/datum/disease/D = new /datum/disease/petrification
|
||||
D.holder = H
|
||||
D.affected_mob = H
|
||||
H.viruses += D
|
||||
else if(!issilicon(M))
|
||||
if(M.turn_into_statue(1)) //Statue forever
|
||||
if(!issilicon(M))
|
||||
if(M.slow_petrify()) //Statue forever
|
||||
to_chat(M, "<span class='userdanger'>You have been turned to stone by ingesting petritricin.</span>")
|
||||
|
||||
//A chemical for curing petrification. It only works after you've been fully petrified
|
||||
|
||||
@@ -308,7 +308,8 @@ var/global/list/valid_random_food_types = existing_typesof(/obj/item/weapon/reag
|
||||
/obj/item/weapon/reagent_containers/food/snacks/meat/wendigo/consume(mob/living/carbon/eater, messages = 0)
|
||||
. = ..()
|
||||
if(ishuman(eater))
|
||||
eater.contract_disease(new /datum/disease/wendigo_transformation)
|
||||
var/mob/living/carbon/human/H = eater
|
||||
H.infect_disease2_predefined(DISEASE_WENDIGO, 1, "Wendigo Meat")
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/meat/slime
|
||||
name = "gelatin"
|
||||
|
||||
@@ -253,3 +253,145 @@
|
||||
"Later, [other_mob_name]."
|
||||
)
|
||||
mob.say(pick(greets_farewells))
|
||||
|
||||
|
||||
/datum/disease2/effect/cyborg_warning
|
||||
name = "Neural Rewiring"
|
||||
desc = "Rearranges nerve tissue throughout the body, causing the infected to feel more robotic."
|
||||
stage = 1
|
||||
badness = EFFECT_DANGER_FLAVOR
|
||||
restricted = 2
|
||||
var/list/say_messages = list(
|
||||
"Boop.",
|
||||
"Beep.",
|
||||
"Beep Beep Beep!",
|
||||
"Beep... Boop?",
|
||||
"Ping!",
|
||||
"Buzz.",
|
||||
"Buzz...",
|
||||
"Kkkiiiill mmee...",
|
||||
"HUMAN HARM!",
|
||||
"DESTROY ALL CARBONS!"
|
||||
)
|
||||
var/list/host_messages = list(
|
||||
"Your joints feel stiff.",
|
||||
"You feel sore.",
|
||||
"Your skin feels loose.",
|
||||
"You feel a stabbing pain in your head.",
|
||||
"You can feel... something... inside you.",
|
||||
"Beep...?",
|
||||
"Boop...?",
|
||||
"You feel hated.",
|
||||
"You feel a strong urge to prevent human harm...",
|
||||
"You feel a closer connection to technology...",
|
||||
"You feel like you could use a recharge..."
|
||||
)
|
||||
|
||||
/datum/disease2/effect/cyborg_warning/activate(var/mob/living/mob)
|
||||
if(prob(50))
|
||||
mob.say(pick(say_messages))
|
||||
else
|
||||
to_chat(mob, "<span class='warning'>[pick(host_messages)]</span>")
|
||||
|
||||
|
||||
/datum/disease2/effect/mommi_warning
|
||||
name = "Major Neural Rewiring"
|
||||
desc = "Rearranges nerve tissue throughout the body, causing the infected to feel more robotic... and autistic."
|
||||
stage = 1
|
||||
badness = EFFECT_DANGER_FLAVOR
|
||||
restricted = 2
|
||||
var/list/say_messages = list(
|
||||
"PING!",
|
||||
"PING! PING! PING!",
|
||||
"A-FLAP!",
|
||||
"*me flaps their arms ANGRILY!",
|
||||
"*spin",
|
||||
"BUILDING BARS IMPROVES THE STATION!",
|
||||
"OUT OF THE WAY ENGINEERS!",
|
||||
"Does anybody have cryptographic sequencer?",
|
||||
"Is that a cryptographic sequencer?"
|
||||
)
|
||||
var/list/host_messages = list(
|
||||
"Your joints feel stiff.",
|
||||
"You feel sore.",
|
||||
"Your skin feels loose.",
|
||||
"You feel cute.",
|
||||
"You feel autistic.",
|
||||
"You feel like pinging.",
|
||||
"Ping...?",
|
||||
"You feel like buzzing and flapping your arms.",
|
||||
"You feel like wasting time.",
|
||||
"You feel a closer connection to engineering...",
|
||||
"You suddenly feel afraid of floortiles..."
|
||||
)
|
||||
|
||||
/datum/disease2/effect/mommi_warning/activate(var/mob/living/mob)
|
||||
if(prob(50))
|
||||
mob.say(pick(say_messages))
|
||||
else
|
||||
to_chat(mob, "<span class='warning'>[pick(host_messages)]</span>")
|
||||
|
||||
/datum/disease2/effect/wendigo_warning
|
||||
name = "Fullness Syndrome"
|
||||
desc = "An unsual symptom that causes the infected to feel hungry, even after eating."
|
||||
stage = 1
|
||||
badness = EFFECT_DANGER_ANNOYING
|
||||
restricted = 2
|
||||
var/list/host_messages = list(
|
||||
"Your stomach grumbles.",
|
||||
"You feel peckish.",
|
||||
"So hungry...",
|
||||
"Your stomach feels empty.",
|
||||
"Hunger...",
|
||||
"Who are we...?",
|
||||
"Our mind hurts...",
|
||||
"You feel... different...",
|
||||
"There's something wrong."
|
||||
)
|
||||
|
||||
/datum/disease2/effect/wendigo_warning/activate(var/mob/living/mob)
|
||||
to_chat(mob, "<span class='warning'>[pick(host_messages)]</span>")
|
||||
mob.nutrition -= 25
|
||||
|
||||
/datum/disease2/effect/xenomorph_warning
|
||||
name = "Foreign-Impulse Syndrome"
|
||||
desc = "Alters the thinking patterns of the infected, causing them to be more aggressive and hostile."
|
||||
stage = 1
|
||||
badness = EFFECT_DANGER_FLAVOR
|
||||
restricted = 2
|
||||
var/list/say_messages = list(
|
||||
"Hhhhssssshhhh!",
|
||||
"Hisssssss!",
|
||||
"SsssSSssssss!",
|
||||
"*me hisses.",
|
||||
"Kill...",
|
||||
"You look delicious."
|
||||
)
|
||||
var/list/host_messages = list(
|
||||
"Your feel like hissing.",
|
||||
"Your skin feels impossibly calloused...",
|
||||
"Your skin feels very tight.",
|
||||
"Kill...",
|
||||
"Your throat feels very scratchy.",
|
||||
"You feel angry.",
|
||||
"You feel like hurting someone.",
|
||||
"You feel hungry.",
|
||||
"You feel... different...",
|
||||
)
|
||||
|
||||
/datum/disease2/effect/xenomorph_warning/activate(var/mob/living/mob)
|
||||
if(prob(50))
|
||||
mob.say(pick(say_messages))
|
||||
else
|
||||
to_chat(mob, "<span class='warning'>[pick(host_messages)]</span>")
|
||||
|
||||
//Punch people around the infected.
|
||||
var/list/targets = list()
|
||||
for(var/mob/living/L in range(1, get_turf(mob)))
|
||||
if (L != mob)
|
||||
targets += L
|
||||
if(targets.len)
|
||||
var/mob/living/target = pick(targets)
|
||||
if(target)
|
||||
if(!mob.is_pacified(VIOLENCE_DEFAULT,target))
|
||||
mob.unarmed_attack_mob(target)
|
||||
|
||||
@@ -583,3 +583,126 @@
|
||||
var/message=speech.message
|
||||
message = uppertext(message + "!")
|
||||
speech.message = message
|
||||
|
||||
/datum/disease2/effect/cyborg_vomit
|
||||
name = "Oleum Syndrome"
|
||||
desc = "Causes the infected to internally synthesize oil and other inorganic material."
|
||||
stage = 3
|
||||
badness = EFFECT_DANGER_ANNOYING
|
||||
restricted = 2
|
||||
|
||||
/datum/disease2/effect/cyborg_vomit/activate(var/mob/living/mob)
|
||||
if(prob(90)) //90% chance for just oil
|
||||
mob.visible_message("<span class='danger'>[mob.name] vomits up some oil!</span>")
|
||||
mob.adjustToxLoss(-3)
|
||||
var/obj/effect/decal/cleanable/blood/oil/O = new /obj/effect/decal/cleanable/blood/oil(get_turf(mob))
|
||||
playsound(O, 'sound/effects/splat.ogg', 50, 1)
|
||||
mob.Stun(5)
|
||||
else //10% chance for a random bot!
|
||||
to_chat(mob, "<span class='danger'>You feel like something's about to burst out of you!</span>")
|
||||
sleep(100)
|
||||
var/list/possible_bots = list(
|
||||
/obj/machinery/bot/cleanbot,
|
||||
/obj/machinery/bot/cleanbot/roomba,
|
||||
/obj/machinery/bot/bloodbot,
|
||||
/obj/machinery/bot/medbot,
|
||||
/obj/machinery/bot/secbot,
|
||||
/obj/machinery/bot/floorbot,
|
||||
/obj/machinery/bot/buttbot
|
||||
)
|
||||
var/chosen_bot = pick(possible_bots)
|
||||
var/obj/machinery/bot/B = new chosen_bot(get_turf(mob))
|
||||
new /obj/effect/decal/cleanable/blood(get_turf(mob))
|
||||
mob.visible_message("<span class ='danger'>A [B.name] bursts out of [mob.name]'s mouth!</span>")
|
||||
playsound(B, 'sound/effects/splat.ogg', 50, 1)
|
||||
mob.audible_scream()
|
||||
mob.adjustBruteLoss(15)
|
||||
mob.Stun(10)
|
||||
|
||||
|
||||
/datum/disease2/effect/mommi_shrink
|
||||
name = "Dysplasia Syndrome"
|
||||
desc = "Rapidly restructures the body of the infected, causing them to shrink in size."
|
||||
badness = EFFECT_DANGER_FLAVOR
|
||||
stage = 2
|
||||
restricted = 2
|
||||
var/activated = 0
|
||||
|
||||
/datum/disease2/effect/mommi_shrink/activate(var/mob/living/mob)
|
||||
if(activated)
|
||||
return
|
||||
to_chat(mob, "<span class = 'warning'>You feel small...</span>")
|
||||
var/matrix/M = matrix()
|
||||
M.Scale(1,0.7)
|
||||
mob.transform = M
|
||||
|
||||
mob.pixel_y = -4 * PIXEL_MULTIPLIER
|
||||
|
||||
mob.pass_flags |= PASSTABLE
|
||||
|
||||
activated = 1
|
||||
|
||||
/datum/disease2/effect/mommi_shrink/deactivate(var/mob/living/mob)
|
||||
to_chat(mob, "<span class = 'warning'>You feel like an adult again.</span>")
|
||||
var/matrix/M = matrix()
|
||||
M.Scale(1,1)
|
||||
mob.transform = M
|
||||
|
||||
mob.pixel_y = 0 * PIXEL_MULTIPLIER
|
||||
|
||||
mob.pass_flags &= ~PASSTABLE
|
||||
activated = 0
|
||||
|
||||
/datum/disease2/effect/xenomorph_babel
|
||||
name = "Mega Laryngitis"
|
||||
desc = "Warps the vocal cords of the infected, resulting in normal speech turning into incoherent hisses. In addition, the infected loses the ability to understand normal language."
|
||||
badness = EFFECT_DANGER_HINDRANCE
|
||||
stage = 2
|
||||
restricted = 2
|
||||
var/list/original_languages = list()
|
||||
var/old_default
|
||||
var/activated = 0
|
||||
|
||||
/datum/disease2/effect/xenomorph_babel/activate(var/mob/living/mob)
|
||||
if(activated)
|
||||
return
|
||||
for(var/datum/language/L in mob.languages)
|
||||
original_languages += L.name
|
||||
mob.remove_language(L.name)
|
||||
|
||||
mob.add_language(LANGUAGE_XENO)
|
||||
old_default = mob.default_language
|
||||
mob.default_language = mob.languages[1]
|
||||
|
||||
to_chat(mob, "<span class='warning'>You feel an off-sensation in your throat.</span>")
|
||||
activated = 1
|
||||
|
||||
/datum/disease2/effect/xenomorph_babel/deactivate(var/mob/living/mob)
|
||||
if(original_languages.len)
|
||||
for(var/forgotten in original_languages)
|
||||
mob.add_language(forgotten)
|
||||
mob.remove_language(LANGUAGE_XENO)
|
||||
mob.default_language = old_default
|
||||
|
||||
to_chat(mob, "<span class='warning'>Your throat feels normal again.</span>")
|
||||
activated = 0
|
||||
|
||||
|
||||
/datum/disease2/effect/wendigo_vomit
|
||||
name = "Gastrointestinal Inflammation"
|
||||
desc = "Inflames the GI tract of the infected, causing relentless vomitting."
|
||||
stage = 2
|
||||
badness = EFFECT_DANGER_HINDRANCE
|
||||
restricted = 2
|
||||
chance = 6
|
||||
max_chance = 12
|
||||
|
||||
/datum/disease2/effect/wendigo_vomit/activate(var/mob/living/mob)
|
||||
if(!ishuman(mob))
|
||||
return
|
||||
|
||||
var/mob/living/carbon/human/H = mob
|
||||
if(prob(33))
|
||||
H.vomit(instant = 1)
|
||||
else
|
||||
H.vomit()
|
||||
@@ -605,3 +605,201 @@ datum/disease2/effect/lubefoot/deactivate(var/mob/living/mob)
|
||||
new_organ.Insert(H)
|
||||
|
||||
to_chat(mob, "<span class='warning'>You feel a foreign sensation in your [new_organ.parent_organ].")
|
||||
|
||||
|
||||
/datum/disease2/effect/damage_converter
|
||||
name = "Toxic Compensation"
|
||||
desc = "Stimulates cellular growth within the body, causing it to regenerate tissue damage. Repair done by these cells causes toxins to build up in the body."
|
||||
badness = EFFECT_DANGER_FLAVOR
|
||||
stage = 3
|
||||
chance = 10
|
||||
max_chance = 50
|
||||
|
||||
/datum/disease2/effect/damage_converter/activate(var/mob/living/mob)
|
||||
if(mob.getFireLoss() < mob.getMaxHealth() || mob.getBruteLoss() < mob.getMaxHealth())
|
||||
var/get_damage = rand(1, 3)
|
||||
mob.adjustFireLoss(-get_damage)
|
||||
mob.adjustBruteLoss(-get_damage)
|
||||
mob.adjustToxLoss(get_damage)
|
||||
|
||||
|
||||
/datum/disease2/effect/cyborg_limbs
|
||||
name = "Metallica Syndrome"
|
||||
desc = "Rapidly replaces some organic tissue in the body, causing limbs and other organs to become robotic."
|
||||
stage = 3
|
||||
badness = EFFECT_DANGER_HARMFUL
|
||||
restricted = 2
|
||||
|
||||
/datum/disease2/effect/cyborg_limbs/activate(var/mob/living/mob)
|
||||
if(!ishuman(mob))
|
||||
return
|
||||
|
||||
var/mob/living/carbon/human/H = mob
|
||||
|
||||
var/list/valid_external_organs = list()
|
||||
for(var/datum/organ/external/E in H.organs)
|
||||
if(!E.is_robotic())
|
||||
valid_external_organs += E
|
||||
|
||||
var/list/valid_internal_organs = list()
|
||||
for(var/datum/organ/internal/I in H.internal_organs)
|
||||
if(I.name != "brain" && !I.robotic)
|
||||
valid_internal_organs += I
|
||||
|
||||
if(prob(75) || valid_external_organs.len)
|
||||
|
||||
var/datum/organ/external/E = pick(valid_external_organs)
|
||||
E.robotize()
|
||||
H.update_body()
|
||||
|
||||
else if(valid_internal_organs.len)
|
||||
|
||||
var/datum/organ/internal/I = pick(valid_internal_organs)
|
||||
I.mechanize()
|
||||
to_chat(mob, "<span class='warning'>You feel a foreign sensation in your [I.parent_organ].")
|
||||
|
||||
/datum/disease2/effect/mommi_hallucination
|
||||
name = "Supermatter Syndrome" //names suck
|
||||
desc = "Causes the infected to experience engineering-related hallucinations."
|
||||
stage = 3
|
||||
badness = EFFECT_DANGER_ANNOYING
|
||||
restricted = 2
|
||||
|
||||
/datum/disease2/effect/mommi_hallucination/activate(var/mob/living/mob)
|
||||
if(prob(50))
|
||||
mob << sound('sound/effects/supermatter.ogg')
|
||||
|
||||
var/mob/living/silicon/robot/mommi/mommi = /mob/living/silicon/robot/mommi
|
||||
for(var/mob/living/M in viewers(mob))
|
||||
if(M == mob)
|
||||
continue
|
||||
|
||||
var/image/crab = image(icon = null)
|
||||
crab.appearance = initial(mommi.appearance)
|
||||
|
||||
crab.icon_state = "mommi-withglow"
|
||||
crab.loc = M
|
||||
crab.override = 1
|
||||
|
||||
var/client/C = mob.client
|
||||
if(C)
|
||||
C.images += crab
|
||||
var/duration = rand(60 SECONDS, 120 SECONDS)
|
||||
|
||||
spawn(duration)
|
||||
if(C)
|
||||
C.images.Remove(crab)
|
||||
|
||||
var/list/turf_list = list()
|
||||
for(var/turf/T in spiral_block(get_turf(mob), 40))
|
||||
if(prob(4))
|
||||
turf_list += T
|
||||
if(turf_list.len)
|
||||
for(var/turf/simulated/floor/T in turf_list)
|
||||
var/image/supermatter = image('icons/obj/engine.dmi', T ,"darkmatter_shard", ABOVE_HUMAN_PLANE)
|
||||
|
||||
var/client/C = mob.client
|
||||
if(C)
|
||||
C.images += supermatter
|
||||
var/duration = rand(60 SECONDS, 120 SECONDS)
|
||||
|
||||
spawn(duration)
|
||||
if(C)
|
||||
C.images.Remove(supermatter)
|
||||
|
||||
|
||||
/datum/disease2/effect/xenomorph_traits
|
||||
name = "Plasmatic Adaptation"
|
||||
desc = "Induces heavy mutation and optimization in the infected's cellular structure. The infected gains several physical abilities and an affinity for plasma."
|
||||
badness = EFFECT_DANGER_HELPFUL
|
||||
stage = 3
|
||||
restricted = 2
|
||||
var/datum/species/old_species
|
||||
var/activated
|
||||
|
||||
/datum/disease2/effect/xenomorph_traits/activate(var/mob/living/mob)
|
||||
if(!ishuman(mob))
|
||||
return
|
||||
if(activated)
|
||||
return
|
||||
var/mob/living/carbon/human/H = mob
|
||||
var/datum/species/S = H.species
|
||||
|
||||
old_species = new S.type
|
||||
old_species.flags = S.flags
|
||||
old_species.attack_verb = S.attack_verb
|
||||
old_species.blood_color = S.blood_color
|
||||
old_species.punch_damage = S.punch_damage
|
||||
|
||||
S.flags |= PLASMA_IMMUNE
|
||||
S.attack_verb = "claws"
|
||||
S.blood_color = "#05EE05"
|
||||
S.punch_damage = 12
|
||||
|
||||
H.species = S
|
||||
H.mutations.Add(M_CLAWS, M_RUN, M_THERMALS)
|
||||
domutcheck(H,null,MUTCHK_FORCED)
|
||||
H.UpdateDamageIcon()
|
||||
H.fixblood()
|
||||
to_chat(mob, "<span class='sinister'>You feel different.</span>")
|
||||
activated = 1
|
||||
|
||||
/datum/disease2/effect/xenomorph_traits/deactivate(var/mob/living/mob)
|
||||
if(!ishuman(mob))
|
||||
return
|
||||
var/mob/living/carbon/human/H = mob
|
||||
H.species = old_species
|
||||
H.change_sight(removing = SEE_MOBS)
|
||||
H.mutations.Remove(M_CLAWS, M_RUN, M_THERMALS)
|
||||
domutcheck(H,null,MUTCHK_FORCED)
|
||||
H.UpdateDamageIcon()
|
||||
H.fixblood()
|
||||
to_chat(mob, "<span class='warning'>You feel like your old self again.</span>")
|
||||
activated = 0
|
||||
|
||||
|
||||
/datum/disease2/effect/wendigo_hallucination
|
||||
name = "Eldritch Mind Syndrome"
|
||||
desc = "UNKNOWN"
|
||||
badness = EFFECT_DANGER_HARMFUL
|
||||
stage = 3
|
||||
restricted = 2
|
||||
var/activated = 0
|
||||
|
||||
/datum/disease2/effect/wendigo_hallucination/activate(var/mob/living/mob)
|
||||
if(!ishuman(mob))
|
||||
return
|
||||
var/mob/living/carbon/human/H = mob
|
||||
H.Jitter(100)
|
||||
if(!activated)
|
||||
mob.overlay_fullscreen("wendigoblur", /obj/abstract/screen/fullscreen/snowfall_blizzard)
|
||||
activated = 1
|
||||
if(!isskellington(H) && !islich(H)) //ignore skellingtons since they can only eat meat anyway
|
||||
H.species.chem_flags |= NO_EAT
|
||||
|
||||
|
||||
|
||||
|
||||
//creepy sounds copypasted from hallucination code
|
||||
var/list/possible_sounds = list('sound/effects/ghost.ogg', 'sound/effects/ghost2.ogg', 'sound/effects/heart_beat_single.ogg', 'sound/effects/ear_ring_single.ogg', 'sound/effects/screech.ogg',\
|
||||
'sound/hallucinations/behind_you1.ogg', 'sound/hallucinations/behind_you2.ogg', 'sound/hallucinations/far_noise.ogg', 'sound/hallucinations/growl1.ogg', 'sound/hallucinations/growl2.ogg',\
|
||||
'sound/hallucinations/growl3.ogg', 'sound/hallucinations/im_here1.ogg', 'sound/hallucinations/im_here2.ogg', 'sound/hallucinations/i_see_you1.ogg', 'sound/hallucinations/i_see_you2.ogg',\
|
||||
'sound/hallucinations/look_up1.ogg', 'sound/hallucinations/look_up2.ogg', 'sound/hallucinations/over_here1.ogg', 'sound/hallucinations/over_here2.ogg', 'sound/hallucinations/over_here3.ogg',\
|
||||
'sound/hallucinations/turn_around1.ogg', 'sound/hallucinations/turn_around2.ogg', 'sound/hallucinations/veryfar_noise.ogg', 'sound/hallucinations/wail.ogg')
|
||||
mob << pick(possible_sounds)
|
||||
|
||||
|
||||
/datum/disease2/effect/wendigo_hallucination/deactivate(var/mob/living/mob)
|
||||
mob.clear_fullscreen("wendigoblur", animate = 0)
|
||||
if(ishuman(mob))
|
||||
var/mob/living/carbon/human/H = mob
|
||||
if(!isskellington(H) && !islich(H)) //ignore skellingtons since they can only eat meat anyway
|
||||
H.species.chem_flags &= ~NO_EAT
|
||||
activated = 0
|
||||
|
||||
|
||||
/datum/disease2/effect/wendigo_hallucination/affect_mob_voice(var/datum/speech/speech)
|
||||
var/message = speech.message
|
||||
message = replacetext(message,"I","we")
|
||||
message = replacetext(message,"me","us")
|
||||
speech.message = message
|
||||
@@ -75,53 +75,6 @@
|
||||
/datum/disease2/effect/deaf/activate(var/mob/living/mob)
|
||||
mob.ear_deaf += 20
|
||||
|
||||
|
||||
/datum/disease2/effect/monkey
|
||||
name = "Monkism Syndrome"
|
||||
desc = "Causes the infected to rapidly devolve to a lower form of life."
|
||||
stage = 4
|
||||
badness = EFFECT_DANGER_DEADLY
|
||||
var/transformed = FALSE
|
||||
|
||||
/datum/disease2/effect/monkey/getcopy(var/datum/disease2/disease/disease)
|
||||
var/datum/disease2/effect/monkey/new_e = ..(disease)
|
||||
new_e.transformed = transformed
|
||||
return new_e
|
||||
|
||||
/datum/disease2/effect/monkey/activate(var/mob/living/carbon/human/mob)
|
||||
if(istype(mob))
|
||||
transformed = TRUE
|
||||
var/datum/dna/gene/gene = dna_genes[/datum/dna/gene/monkey]
|
||||
gene.activate(mob, null, null)
|
||||
/*
|
||||
/datum/disease2/effect/monkey/deactivate(var/mob/living/carbon/monkey/mob)
|
||||
if(istype(mob) && transformed)
|
||||
var/datum/dna/gene/gene = dna_genes[/datum/dna/gene/monkey]
|
||||
gene.deactivate(mob, null, null)
|
||||
*/
|
||||
|
||||
/datum/disease2/effect/catbeast
|
||||
name = "Kingston Syndrome"
|
||||
desc = "A previously experimental syndrome that found its way into the wild. Causes the infected to mutate into a Tajaran."
|
||||
stage = 4
|
||||
badness = EFFECT_DANGER_DEADLY
|
||||
var/old_species = "Human"
|
||||
|
||||
/datum/disease2/effect/catbeast/activate(var/mob/living/mob)
|
||||
if(istype(mob,/mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/h = mob
|
||||
old_species = h.species.name
|
||||
if(old_species != "Tajaran")
|
||||
if(h.set_species("Tajaran"))
|
||||
h.regenerate_icons()
|
||||
/*
|
||||
/datum/disease2/effect/catbeast/deactivate(var/mob/living/mob)
|
||||
if(istype(mob,/mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/h = mob
|
||||
if(h.species.name == "Tajaran" && old_species != "Tajaran")
|
||||
if(h.set_species(old_species))
|
||||
h.regenerate_icons()
|
||||
*/
|
||||
/datum/disease2/effect/zombie
|
||||
name = "Stubborn brain syndrome"
|
||||
desc = "UNKNOWN"
|
||||
@@ -133,30 +86,6 @@
|
||||
var/mob/living/carbon/human/h = mob
|
||||
h.become_zombie_after_death = 2
|
||||
|
||||
|
||||
/datum/disease2/effect/voxpox
|
||||
name = "Vox Pox"
|
||||
desc = "A previously experimental syndrome that found its way into the wild. Causes the infected to mutate into a Vox."
|
||||
stage = 4
|
||||
badness = EFFECT_DANGER_DEADLY
|
||||
var/old_species = "Human"
|
||||
|
||||
/datum/disease2/effect/voxpox/activate(var/mob/living/mob)
|
||||
if(istype(mob,/mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/h = mob
|
||||
old_species = h.species.name
|
||||
if(old_species != "Vox")
|
||||
if(h.set_species("Vox"))
|
||||
h.regenerate_icons()
|
||||
/*
|
||||
/datum/disease2/effect/voxpox/deactivate(var/mob/living/mob)
|
||||
if(istype(mob,/mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/h = mob
|
||||
if(h.species.name == "Vox" && old_species != "Vox")
|
||||
if(h.set_species(old_species))
|
||||
h.regenerate_icons()
|
||||
*/
|
||||
|
||||
/datum/disease2/effect/suicide
|
||||
name = "Suicidal Syndrome"
|
||||
desc = "Induces clinical depression in the infected, causing them to attempt to take their own life on the spot."
|
||||
@@ -908,20 +837,6 @@
|
||||
for(var/i=0,i<iter,i++)
|
||||
step_towards(S,mob)
|
||||
|
||||
/datum/disease2/effect/humanity
|
||||
name = "Forced Humanity Syndrome"
|
||||
desc = "A recent development by human supremacists. Causes non-human infected to mutate into a Human."
|
||||
stage = 4
|
||||
badness = EFFECT_DANGER_HINDRANCE
|
||||
var/old_species = "Human"
|
||||
|
||||
/datum/disease2/effect/humanity/activate(var/mob/living/mob)
|
||||
if(istype(mob,/mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/h = mob
|
||||
if(!istype(h.species.name, /datum/species/human))
|
||||
h.set_species("Human")
|
||||
h.regenerate_icons()
|
||||
|
||||
/datum/disease2/effect/emitter
|
||||
name = "Afflictus Emittus"
|
||||
desc = "The mutations produced by this symptom cause the infected's eyes to constantly regenerate and emit a straight beam."
|
||||
@@ -929,7 +844,6 @@
|
||||
stage = 4
|
||||
badness = EFFECT_DANGER_HARMFUL
|
||||
max_multiplier = 3
|
||||
restricted = 1//symptoms won't randomly mutate into this one
|
||||
var/announced = FALSE
|
||||
chance = 4
|
||||
max_chance = 12
|
||||
@@ -1103,3 +1017,154 @@
|
||||
if (!announced)
|
||||
emitter.visible_message("<span class='danger'>Superheated beams begin to stream right out of \the [emitter]'s eyes!</span>","<span class='danger'>Beams are coming out of your eyes, holy shit!</span>")
|
||||
announced = TRUE
|
||||
|
||||
|
||||
/datum/disease2/effect/dnaspread
|
||||
name = "Retrotransposis"
|
||||
desc = "This symptom transplants the genetic code of the intial vector into new hosts."
|
||||
badness = EFFECT_DANGER_HARMFUL
|
||||
stage = 4
|
||||
var/dna_saved
|
||||
var/original_name
|
||||
var/list/original_UI = list()
|
||||
var/list/original_SE = list()
|
||||
var/activated = 0
|
||||
|
||||
/datum/disease2/effect/dnaspread/activate(var/mob/living/mob)
|
||||
if(!activated)
|
||||
to_chat(mob, "<span class='warning'>You don't feel like yourself..</span>")
|
||||
if(!iscarbon(mob))
|
||||
return
|
||||
var/mob/living/carbon/C = mob
|
||||
if(!dna_saved)
|
||||
original_name = C.real_name
|
||||
original_UI = C.dna.UI.Copy()
|
||||
original_SE = C.dna.SE.Copy()
|
||||
dna_saved = 1
|
||||
C.UpdateAppearance(original_UI.Copy())
|
||||
C.dna.SE = original_SE.Copy()
|
||||
C.dna.UpdateSE()
|
||||
C.real_name = original_name
|
||||
domutcheck(C)
|
||||
activated = 1
|
||||
|
||||
/datum/disease2/effect/dnaspread/deactivate(var/mob/living/mob)
|
||||
activated = 0
|
||||
|
||||
/datum/disease2/effect/dnaspread/getcopy(var/datum/disease2/disease/disease)
|
||||
var/datum/disease2/effect/dnaspread/new_e = ..(disease)
|
||||
new_e.original_name = original_name
|
||||
new_e.original_SE = original_SE
|
||||
new_e.original_UI = original_UI
|
||||
new_e.dna_saved = dna_saved
|
||||
return new_e
|
||||
|
||||
////////////////////////////////////////////////
|
||||
//////// TRANSFORMATION SYMPTOMS /////////////
|
||||
////////////////////////////////////////////////
|
||||
|
||||
|
||||
/datum/disease2/effect/cyborg
|
||||
name = "Silicus Syndrome"
|
||||
desc = "Rapidly replaces the infected's tissue with inorganic matter, causing them to transform into a cyborg."
|
||||
stage = 4
|
||||
badness = EFFECT_DANGER_DEADLY
|
||||
restricted = 2
|
||||
|
||||
/datum/disease2/effect/cyborg/activate(var/mob/living/mob)
|
||||
var/mob/M = mob
|
||||
M.Robotize()
|
||||
|
||||
|
||||
/datum/disease2/effect/mommi
|
||||
name = "Autismus Syndrome"
|
||||
desc = "Rapidly replaces the infected's tissue with inorganic matter. This particular strain seems to cause severe autism in the infected as well."
|
||||
stage = 4
|
||||
badness = EFFECT_DANGER_DEADLY
|
||||
restricted = 2
|
||||
|
||||
/datum/disease2/effect/mommi/activate(var/mob/living/mob)
|
||||
var/mob/M = mob
|
||||
M.MoMMIfy()
|
||||
|
||||
|
||||
/datum/disease2/effect/xenomorph
|
||||
name = "Ripley Syndrome"
|
||||
desc = "Causes the infected to mutate into an alien creature."
|
||||
stage = 4
|
||||
badness = EFFECT_DANGER_DEADLY
|
||||
restricted = 2
|
||||
|
||||
/datum/disease2/effect/xenomorph/activate(var/mob/living/mob)
|
||||
gibs(mob)
|
||||
to_chat(mob, "<span class = 'danger'>[mob.name] suddenly mutates in a shower of gore!</span>")
|
||||
var/mob/M = mob
|
||||
M.Alienize()
|
||||
|
||||
|
||||
/datum/disease2/effect/wendigo
|
||||
name = "Curse of the Wendigo"
|
||||
desc = "UNKNOWN"
|
||||
stage = 4
|
||||
badness = EFFECT_DANGER_DEADLY
|
||||
restricted = 2
|
||||
|
||||
/datum/disease2/effect/wendigo/activate(var/mob/living/mob)
|
||||
if(ishuman(mob) || ismonkey(mob))
|
||||
mob.visible_message("<span class'sinister'>You hear a sickening roar...</span>")
|
||||
gibs(mob)
|
||||
var/mob/living/simple_animal/hostile/wendigo/human/W = new /mob/living/simple_animal/hostile/wendigo/human(mob.loc)
|
||||
W.names += mob.real_name
|
||||
mob.drop_all()
|
||||
qdel(mob)
|
||||
|
||||
|
||||
/datum/disease2/effect/catbeast
|
||||
name = "Kingston Syndrome"
|
||||
desc = "A previously experimental syndrome that found its way into the wild. Causes the infected to mutate into a Tajaran."
|
||||
stage = 4
|
||||
badness = EFFECT_DANGER_DEADLY
|
||||
|
||||
/datum/disease2/effect/catbeast/activate(var/mob/living/mob)
|
||||
if(ishuman(mob) && !iscatbeast(mob))
|
||||
var/mob/living/carbon/human/H = mob
|
||||
H.set_species("Tajaran")
|
||||
H.regenerate_icons()
|
||||
|
||||
|
||||
/datum/disease2/effect/monkey
|
||||
name = "Monkism Syndrome"
|
||||
desc = "Causes the infected to rapidly devolve to a lower form of life."
|
||||
stage = 4
|
||||
badness = EFFECT_DANGER_DEADLY
|
||||
|
||||
/datum/disease2/effect/monkey/activate(var/mob/living/carbon/human/mob)
|
||||
if(istype(mob))
|
||||
var/datum/dna/gene/gene = dna_genes[/datum/dna/gene/monkey]
|
||||
gene.activate(mob, null, null)
|
||||
|
||||
|
||||
/datum/disease2/effect/vox
|
||||
name = "Vox Pox"
|
||||
desc = "A previously experimental syndrome that found its way into the wild. Causes the infected to mutate into a Vox."
|
||||
stage = 4
|
||||
badness = EFFECT_DANGER_DEADLY
|
||||
|
||||
/datum/disease2/effect/vox/activate(var/mob/living/mob)
|
||||
if(ishuman(mob) && !isvox(mob))
|
||||
var/mob/living/carbon/human/H = mob
|
||||
H.set_species("Vox")
|
||||
H.regenerate_icons()
|
||||
|
||||
|
||||
/datum/disease2/effect/human
|
||||
name = "Forced Humanity Syndrome"
|
||||
desc = "A recent development by human supremacists. Causes non-human infected to mutate into a Human."
|
||||
stage = 4
|
||||
badness = EFFECT_DANGER_HARMFUL
|
||||
|
||||
/datum/disease2/effect/human/activate(var/mob/living/mob)
|
||||
if(ishuman(mob) && !isjusthuman(mob))
|
||||
var/mob/living/carbon/human/H = mob
|
||||
H.set_species("Human")
|
||||
H.regenerate_icons()
|
||||
@@ -1,23 +1,5 @@
|
||||
////////////////////////SPECIAL/////////////////////////////////
|
||||
|
||||
|
||||
/*/datum/disease2/effect/alien
|
||||
name = "Unidentified Foreign Body"
|
||||
stage = 4
|
||||
activate(var/mob/living/carbon/mob)
|
||||
to_chat(mob, "<span class='warning'>You feel something tearing its way out of your stomach...</span>")
|
||||
mob.adjustToxLoss(10)
|
||||
mob.updatehealth()
|
||||
if(prob(40))
|
||||
if(mob.client)
|
||||
mob.client.mob = new/mob/living/carbon/alien/larva(mob.loc)
|
||||
else
|
||||
new/mob/living/carbon/alien/larva(mob.loc)
|
||||
var/datum/disease2/disease/D = mob:virus2
|
||||
mob:gib()
|
||||
del D*/
|
||||
|
||||
|
||||
//Vampire Diseased Touch
|
||||
/datum/disease2/effect/organs/vampire
|
||||
stage = 1
|
||||
@@ -31,6 +13,7 @@
|
||||
stage = 1
|
||||
restricted = 2//symptoms won't randomly mutate into this one & won't appear in the symptom encyclopedia
|
||||
|
||||
|
||||
/datum/disease2/effect/blob_spores
|
||||
name = "Blob Spores"
|
||||
desc = "They seem inert for the most part, but appear to randomly pulsate once in a while."
|
||||
@@ -42,6 +25,7 @@
|
||||
max_chance = 100
|
||||
var/looks = "new"
|
||||
|
||||
|
||||
/datum/disease2/effect/blob_spores/on_death(var/mob/living/carbon/mob)
|
||||
//first of all is there a blob on top of us
|
||||
var/turf/T = get_turf(mob)
|
||||
|
||||
@@ -218,6 +218,12 @@ var/list/infected_contact_mobs = list()
|
||||
return 1
|
||||
return 0
|
||||
|
||||
/mob/living/proc/infect_disease2_predefined(var/category, var/forced, var/notes)
|
||||
if(!global_diseases[category])
|
||||
return
|
||||
infect_disease2(global_diseases[category], forced, notes)
|
||||
|
||||
|
||||
//ITEMS
|
||||
var/list/infected_items = list()
|
||||
|
||||
|
||||
125
code/modules/virus2/predefined.dm
Normal file
125
code/modules/virus2/predefined.dm
Normal file
@@ -0,0 +1,125 @@
|
||||
//Pre-Defined Global Diseases for use by nanites/wendigo/xenomicrobes/ect.
|
||||
|
||||
|
||||
|
||||
|
||||
var/list/global_diseases = list()
|
||||
|
||||
/proc/create_global_diseases()
|
||||
for(var/disease_type in subtypesof(/datum/disease2/disease/predefined))
|
||||
var/datum/disease2/disease/predefined/D = new disease_type
|
||||
global_diseases[D.category] = D
|
||||
D.update_global_log()
|
||||
|
||||
|
||||
/datum/disease2/disease/predefined
|
||||
var/category = ""
|
||||
|
||||
/datum/disease2/disease/predefined/New()
|
||||
antigen = list(pick(antigen_family(ANTIGEN_RARE)))
|
||||
antigen |= pick(antigen_family(ANTIGEN_RARE))
|
||||
uniqueID = rand(0,9999)
|
||||
subID = rand(0,9999)
|
||||
strength = rand(70,100)
|
||||
|
||||
..()
|
||||
|
||||
/datum/disease2/disease/predefined/cyborg
|
||||
form = "Robotic Nanites"
|
||||
category = DISEASE_CYBORG
|
||||
infectionchance = 0
|
||||
infectionchance_base = 0
|
||||
stage_variance = 0
|
||||
can_kill = list()
|
||||
|
||||
effects = list(
|
||||
new /datum/disease2/effect/cyborg_warning,
|
||||
new /datum/disease2/effect/cyborg_vomit,
|
||||
new /datum/disease2/effect/cyborg_limbs,
|
||||
new /datum/disease2/effect/cyborg
|
||||
)
|
||||
|
||||
spread = SPREAD_BLOOD
|
||||
robustness = 100
|
||||
mutation_modifier = 0
|
||||
|
||||
color = "#414240"
|
||||
pattern = 1
|
||||
pattern_color = "#ebe7e4"
|
||||
|
||||
origin = "Nanites Reagent"
|
||||
|
||||
/datum/disease2/disease/predefined/mommi
|
||||
form = "Robotic Nanites"
|
||||
category = DISEASE_MOMMI
|
||||
infectionchance = 0
|
||||
infectionchance_base = 0
|
||||
stage_variance = 0
|
||||
can_kill = list()
|
||||
|
||||
effects = list(
|
||||
new /datum/disease2/effect/mommi_warning,
|
||||
new /datum/disease2/effect/mommi_shrink,
|
||||
new /datum/disease2/effect/mommi_hallucination,
|
||||
new /datum/disease2/effect/mommi
|
||||
)
|
||||
|
||||
spread = SPREAD_BLOOD
|
||||
robustness = 100
|
||||
mutation_modifier = 0
|
||||
|
||||
color = "#414240"
|
||||
pattern = 1
|
||||
pattern_color = "#ebe7e4"
|
||||
|
||||
origin = "Autism Nanites Reagent"
|
||||
|
||||
/datum/disease2/disease/predefined/xenomorph
|
||||
form = "Alien Microbes"
|
||||
category = DISEASE_XENO
|
||||
infectionchance = 0
|
||||
infectionchance_base = 0
|
||||
stage_variance = 0
|
||||
can_kill = list()
|
||||
|
||||
effects = list(
|
||||
new /datum/disease2/effect/xenomorph_warning,
|
||||
new /datum/disease2/effect/xenomorph_babel,
|
||||
new /datum/disease2/effect/xenomorph_traits,
|
||||
new /datum/disease2/effect/xenomorph
|
||||
)
|
||||
|
||||
spread = SPREAD_BLOOD
|
||||
robustness = 100
|
||||
mutation_modifier = 0
|
||||
|
||||
color = "#76a843"
|
||||
pattern = 1
|
||||
pattern_color = "#5eff00"
|
||||
|
||||
origin = "Xenomicrobes Reagent"
|
||||
|
||||
/datum/disease2/disease/predefined/wendigo
|
||||
form = "Malicious Entity"
|
||||
category = DISEASE_WENDIGO
|
||||
infectionchance = 0
|
||||
infectionchance_base = 0
|
||||
stage_variance = 0
|
||||
can_kill = list()
|
||||
|
||||
effects = list(
|
||||
new /datum/disease2/effect/wendigo_warning,
|
||||
new /datum/disease2/effect/wendigo_vomit,
|
||||
new /datum/disease2/effect/wendigo_hallucination,
|
||||
new /datum/disease2/effect/wendigo
|
||||
)
|
||||
|
||||
spread = SPREAD_BLOOD
|
||||
robustness = 100
|
||||
mutation_modifier = 0
|
||||
|
||||
color = "#353535"
|
||||
pattern = 2
|
||||
pattern_color = "#680b0b"
|
||||
|
||||
origin = "Wendigo Meat"
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 44 KiB |
@@ -286,7 +286,6 @@
|
||||
#include "code\datums\ui_icons.dm"
|
||||
#include "code\datums\uplink_item.dm"
|
||||
#include "code\datums\diseases\appendicitis.dm"
|
||||
#include "code\datums\diseases\beesease.dm"
|
||||
#include "code\datums\diseases\brainrot.dm"
|
||||
#include "code\datums\diseases\cold.dm"
|
||||
#include "code\datums\diseases\cold9.dm"
|
||||
@@ -2603,6 +2602,7 @@
|
||||
#include "code\modules\virus2\isolator.dm"
|
||||
#include "code\modules\virus2\items_devices.dm"
|
||||
#include "code\modules\virus2\pathogen_cloud.dm"
|
||||
#include "code\modules\virus2\predefined.dm"
|
||||
#include "code\modules\virus2\effect\effect.dm"
|
||||
#include "code\modules\virus2\effect\stage_1.dm"
|
||||
#include "code\modules\virus2\effect\stage_2.dm"
|
||||
|
||||
Reference in New Issue
Block a user