mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-12 03:02:54 +00:00
Merge pull request #4707 from Cerebulon/virologyRetoothing
Gives Virology teeth again
This commit is contained in:
@@ -389,6 +389,7 @@
|
|||||||
/atom/proc/add_vomit_floor(mob/living/carbon/M as mob, var/toxvomit = 0)
|
/atom/proc/add_vomit_floor(mob/living/carbon/M as mob, var/toxvomit = 0)
|
||||||
if( istype(src, /turf/simulated) )
|
if( istype(src, /turf/simulated) )
|
||||||
var/obj/effect/decal/cleanable/vomit/this = new /obj/effect/decal/cleanable/vomit(src)
|
var/obj/effect/decal/cleanable/vomit/this = new /obj/effect/decal/cleanable/vomit(src)
|
||||||
|
this.virus2 = virus_copylist(M.virus2)
|
||||||
|
|
||||||
// Make toxins vomit look different
|
// Make toxins vomit look different
|
||||||
if(toxvomit)
|
if(toxvomit)
|
||||||
|
|||||||
@@ -247,3 +247,9 @@ var/global/list/image/splatter_cache=list()
|
|||||||
/obj/effect/decal/cleanable/mucus/New()
|
/obj/effect/decal/cleanable/mucus/New()
|
||||||
spawn(DRYING_TIME * 2)
|
spawn(DRYING_TIME * 2)
|
||||||
dry=1
|
dry=1
|
||||||
|
|
||||||
|
//This version should be used for admin spawns and pre-mapped virus vectors (e.g. in PoIs), this version does not dry
|
||||||
|
/obj/effect/decal/cleanable/mucus/mapped/New()
|
||||||
|
...()
|
||||||
|
virus2 = new /datum/disease2/disease
|
||||||
|
virus2.makerandom()
|
||||||
|
|||||||
@@ -100,6 +100,7 @@
|
|||||||
icon = 'icons/effects/blood.dmi'
|
icon = 'icons/effects/blood.dmi'
|
||||||
icon_state = "vomit_1"
|
icon_state = "vomit_1"
|
||||||
random_icon_states = list("vomit_1", "vomit_2", "vomit_3", "vomit_4")
|
random_icon_states = list("vomit_1", "vomit_2", "vomit_3", "vomit_4")
|
||||||
|
var/list/datum/disease2/disease/virus2 = list()
|
||||||
|
|
||||||
/obj/effect/decal/cleanable/tomato_smudge
|
/obj/effect/decal/cleanable/tomato_smudge
|
||||||
name = "tomato smudge"
|
name = "tomato smudge"
|
||||||
|
|||||||
@@ -15,6 +15,8 @@
|
|||||||
blood_color = "#CCCCCC"
|
blood_color = "#CCCCCC"
|
||||||
flesh_color = "#AAAAAA"
|
flesh_color = "#AAAAAA"
|
||||||
|
|
||||||
|
virus_immune = 1
|
||||||
|
|
||||||
remains_type = /obj/effect/decal/cleanable/ash
|
remains_type = /obj/effect/decal/cleanable/ash
|
||||||
death_message = "dissolves into ash..."
|
death_message = "dissolves into ash..."
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
hunger_factor = 0
|
hunger_factor = 0
|
||||||
metabolic_rate = 0
|
metabolic_rate = 0
|
||||||
|
|
||||||
virus_immune = 1
|
virus_immune = 1
|
||||||
|
|
||||||
brute_mod = 1
|
brute_mod = 1
|
||||||
burn_mod = 0
|
burn_mod = 0
|
||||||
|
|||||||
@@ -17,6 +17,8 @@
|
|||||||
blood_color = "#515573"
|
blood_color = "#515573"
|
||||||
flesh_color = "#137E8F"
|
flesh_color = "#137E8F"
|
||||||
|
|
||||||
|
virus_immune = 1
|
||||||
|
|
||||||
has_organ = list(
|
has_organ = list(
|
||||||
"brain" = /obj/item/organ/internal/brain/golem
|
"brain" = /obj/item/organ/internal/brain/golem
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -38,6 +38,8 @@
|
|||||||
speech_sounds = list('sound/voice/hiss1.ogg','sound/voice/hiss2.ogg','sound/voice/hiss3.ogg','sound/voice/hiss4.ogg')
|
speech_sounds = list('sound/voice/hiss1.ogg','sound/voice/hiss2.ogg','sound/voice/hiss3.ogg','sound/voice/hiss4.ogg')
|
||||||
speech_chance = 100
|
speech_chance = 100
|
||||||
|
|
||||||
|
virus_immune = 1
|
||||||
|
|
||||||
breath_type = null
|
breath_type = null
|
||||||
poison_type = null
|
poison_type = null
|
||||||
|
|
||||||
|
|||||||
@@ -23,6 +23,13 @@
|
|||||||
var/datum/disease2/disease/V = M.virus2[ID]
|
var/datum/disease2/disease/V = M.virus2[ID]
|
||||||
infect_virus2(src,V)
|
infect_virus2(src,V)
|
||||||
|
|
||||||
|
else if(istype(O,/obj/effect/decal/cleanable/vomit))
|
||||||
|
var/obj/effect/decal/cleanable/vomit/Vom = O
|
||||||
|
if(Vom.virus2.len)
|
||||||
|
for (var/ID in Vom.virus2)
|
||||||
|
var/datum/disease2/disease/V = Vom.virus2[ID]
|
||||||
|
infect_virus2(src,V)
|
||||||
|
|
||||||
if(virus2.len)
|
if(virus2.len)
|
||||||
for (var/ID in virus2)
|
for (var/ID in virus2)
|
||||||
var/datum/disease2/disease/V = virus2[ID]
|
var/datum/disease2/disease/V = virus2[ID]
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
usr << "Effects:"
|
usr << "Effects:"
|
||||||
for(var/datum/disease2/effectholder/E in effects)
|
for(var/datum/disease2/effectholder/E in effects)
|
||||||
usr << "[E.stage]: [E.effect.name]; chance=[E.chance]; multiplier=[E.multiplier]"
|
usr << "[E.stage]: [E.effect.name]; chance=[E.chance]; multiplier=[E.multiplier]"
|
||||||
usr << "Antigens: [antigens2string(antigen)]"
|
usr << "Antigens: [antigens2string(antigen)]; Resistance: [resistance]"
|
||||||
|
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
@@ -46,6 +46,7 @@
|
|||||||
var/spreadtype = "Contact"
|
var/spreadtype = "Contact"
|
||||||
var/list/antigens = list()
|
var/list/antigens = list()
|
||||||
var/speed = 1
|
var/speed = 1
|
||||||
|
var/resistance = 10
|
||||||
var/mob/living/carbon/infectee = null
|
var/mob/living/carbon/infectee = null
|
||||||
|
|
||||||
// this holds spawned viruses so that the "Info" links work after the proc exits
|
// this holds spawned viruses so that the "Info" links work after the proc exits
|
||||||
@@ -98,6 +99,7 @@
|
|||||||
<b>Infection Chance:</b> <a href="?src=\ref[src];what=ichance">[infectionchance]</a><br />
|
<b>Infection Chance:</b> <a href="?src=\ref[src];what=ichance">[infectionchance]</a><br />
|
||||||
<b>Spread Type:</b> <a href="?src=\ref[src];what=stype">[spreadtype]</a><br />
|
<b>Spread Type:</b> <a href="?src=\ref[src];what=stype">[spreadtype]</a><br />
|
||||||
<b>Speed:</b> <a href="?src=\ref[src];what=speed">[speed]</a><br />
|
<b>Speed:</b> <a href="?src=\ref[src];what=speed">[speed]</a><br />
|
||||||
|
<b>Resistance:</b> <a href="?src=\ref[src];what=resistance">[resistance]</a><br />
|
||||||
<br />
|
<br />
|
||||||
"}
|
"}
|
||||||
f = 1
|
f = 1
|
||||||
@@ -153,8 +155,8 @@
|
|||||||
if(!I) return
|
if(!I) return
|
||||||
infectionchance = I
|
infectionchance = I
|
||||||
if("stype")
|
if("stype")
|
||||||
var/S = alert("Which spread type?", "Spread Type", "Cancel", "Contact", "Airborne")
|
var/S = alert("Which spread type?", "Spread Type", "Contact", "Airborne", "Blood")
|
||||||
if(!S || S == "Cancel") return
|
if(!S) return
|
||||||
spreadtype = S
|
spreadtype = S
|
||||||
if("speed")
|
if("speed")
|
||||||
var/S = input("Input speed", "Speed", speed) as null|num
|
var/S = input("Input speed", "Speed", speed) as null|num
|
||||||
@@ -170,6 +172,10 @@
|
|||||||
antigens |= T
|
antigens |= T
|
||||||
else if(href_list["reset"])
|
else if(href_list["reset"])
|
||||||
antigens = list()
|
antigens = list()
|
||||||
|
if("resistance")
|
||||||
|
var/S = input("Input % resistance to antibiotics", "Resistance", resistance) as null|num
|
||||||
|
if(!S) return
|
||||||
|
resistance = S
|
||||||
if("infectee")
|
if("infectee")
|
||||||
var/list/candidates = list()
|
var/list/candidates = list()
|
||||||
for(var/mob/living/carbon/G in living_mob_list)
|
for(var/mob/living/carbon/G in living_mob_list)
|
||||||
@@ -195,6 +201,7 @@
|
|||||||
D.antigen = antigens
|
D.antigen = antigens
|
||||||
D.affected_species = species
|
D.affected_species = species
|
||||||
D.speed = speed
|
D.speed = speed
|
||||||
|
D.resistance = resistance
|
||||||
for(var/i in 1 to 4)
|
for(var/i in 1 to 4)
|
||||||
var/datum/disease2/effectholder/E = new
|
var/datum/disease2/effectholder/E = new
|
||||||
var/Etype = s[i]
|
var/Etype = s[i]
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/datum/disease2/disease
|
/datum/disease2/disease
|
||||||
var/infectionchance = 70
|
var/infectionchance = 70
|
||||||
var/speed = 1
|
var/speed = 1
|
||||||
var/spreadtype = "Contact" // Can also be "Airborne"
|
var/spreadtype = "Blood" // Can also be "Contact" or "Airborne"
|
||||||
var/stage = 1
|
var/stage = 1
|
||||||
var/stageprob = 10
|
var/stageprob = 10
|
||||||
var/dead = 0
|
var/dead = 0
|
||||||
@@ -11,6 +11,7 @@
|
|||||||
var/antigen = list() // 16 bits describing the antigens, when one bit is set, a cure with that bit can dock here
|
var/antigen = list() // 16 bits describing the antigens, when one bit is set, a cure with that bit can dock here
|
||||||
var/max_stage = 4
|
var/max_stage = 4
|
||||||
var/list/affected_species = list("Human","Unathi","Skrell","Tajara")
|
var/list/affected_species = list("Human","Unathi","Skrell","Tajara")
|
||||||
|
var/resistance = 10 // % chance a disease will resist cure, up to 100
|
||||||
|
|
||||||
/datum/disease2/disease/New()
|
/datum/disease2/disease/New()
|
||||||
uniqueID = rand(0,10000)
|
uniqueID = rand(0,10000)
|
||||||
@@ -36,6 +37,7 @@
|
|||||||
antigen = list(pick(ALL_ANTIGENS))
|
antigen = list(pick(ALL_ANTIGENS))
|
||||||
antigen |= pick(ALL_ANTIGENS)
|
antigen |= pick(ALL_ANTIGENS)
|
||||||
spreadtype = prob(70) ? "Airborne" : "Contact"
|
spreadtype = prob(70) ? "Airborne" : "Contact"
|
||||||
|
resistance = rand(15,70)
|
||||||
|
|
||||||
if(all_species.len)
|
if(all_species.len)
|
||||||
affected_species = get_infectable_species()
|
affected_species = get_infectable_species()
|
||||||
@@ -79,11 +81,17 @@
|
|||||||
if(prob(1))
|
if(prob(1))
|
||||||
majormutate()
|
majormutate()
|
||||||
|
|
||||||
//Space antibiotics stop disease completely
|
//Space antibiotics have a good chance to stop disease completely
|
||||||
if(mob.reagents.has_reagent("spaceacillin"))
|
if(mob.reagents.has_reagent("spaceacillin"))
|
||||||
if(stage == 1 && prob(20))
|
if(stage == 1 && prob(70-resistance))
|
||||||
src.cure(mob)
|
src.cure(mob)
|
||||||
return
|
else
|
||||||
|
resistance += rand(1,9)
|
||||||
|
|
||||||
|
//Resistance is capped at 90 without being manually set to 100
|
||||||
|
if(resistance > 90 && resistance < 100)
|
||||||
|
resistance = 90
|
||||||
|
|
||||||
|
|
||||||
//Virus food speeds up disease progress
|
//Virus food speeds up disease progress
|
||||||
if(mob.reagents.has_reagent("virusfood"))
|
if(mob.reagents.has_reagent("virusfood"))
|
||||||
@@ -96,7 +104,7 @@
|
|||||||
|
|
||||||
//Moving to the next stage
|
//Moving to the next stage
|
||||||
if(clicks > max(stage*100, 200) && prob(10))
|
if(clicks > max(stage*100, 200) && prob(10))
|
||||||
if((stage <= max_stage) && prob(20)) // ~60% of viruses will be cured by the end of S4 with this
|
if((stage <= max_stage) && prob(5)) // ~20% of viruses will be cured by the end of S4 with this
|
||||||
src.cure(mob)
|
src.cure(mob)
|
||||||
mob.antibodies |= src.antigen
|
mob.antibodies |= src.antigen
|
||||||
stage++
|
stage++
|
||||||
@@ -137,11 +145,15 @@
|
|||||||
if(D != holder)
|
if(D != holder)
|
||||||
exclude += D.effect.type
|
exclude += D.effect.type
|
||||||
holder.majormutate(exclude)
|
holder.majormutate(exclude)
|
||||||
if (prob(5))
|
if (prob(5) && prob(100-resistance)) // The more resistant the disease,the lower the chance of randomly developing the antibodies
|
||||||
antigen = list(pick(ALL_ANTIGENS))
|
antigen = list(pick(ALL_ANTIGENS))
|
||||||
antigen |= pick(ALL_ANTIGENS)
|
antigen |= pick(ALL_ANTIGENS)
|
||||||
if (prob(5) && all_species.len)
|
if (prob(5) && all_species.len)
|
||||||
affected_species = get_infectable_species()
|
affected_species = get_infectable_species()
|
||||||
|
if (prob(10))
|
||||||
|
resistance += rand(1,9)
|
||||||
|
if(resistance > 90 && resistance < 100)
|
||||||
|
resistance = 90
|
||||||
|
|
||||||
/datum/disease2/disease/proc/getcopy()
|
/datum/disease2/disease/proc/getcopy()
|
||||||
var/datum/disease2/disease/disease = new /datum/disease2/disease
|
var/datum/disease2/disease/disease = new /datum/disease2/disease
|
||||||
@@ -210,6 +222,7 @@ var/global/list/virusDB = list()
|
|||||||
<u>Antigen:</u> [antigens2string(antigen)]<br>
|
<u>Antigen:</u> [antigens2string(antigen)]<br>
|
||||||
<u>Transmitted By:</u> [spreadtype]<br>
|
<u>Transmitted By:</u> [spreadtype]<br>
|
||||||
<u>Rate of Progression:</u> [stageprob * 10]<br>
|
<u>Rate of Progression:</u> [stageprob * 10]<br>
|
||||||
|
<u>Antibiotic Resistance</u> [resistance]% <br>
|
||||||
<u>Species Affected:</u> [jointext(affected_species, ", ")]<br>
|
<u>Species Affected:</u> [jointext(affected_species, ", ")]<br>
|
||||||
"}
|
"}
|
||||||
|
|
||||||
@@ -217,7 +230,7 @@ var/global/list/virusDB = list()
|
|||||||
for(var/datum/disease2/effectholder/E in effects)
|
for(var/datum/disease2/effectholder/E in effects)
|
||||||
r += "([E.stage]) [E.effect.name] "
|
r += "([E.stage]) [E.effect.name] "
|
||||||
r += "<small><u>Strength:</u> [E.multiplier >= 3 ? "Severe" : E.multiplier > 1 ? "Above Average" : "Average"] "
|
r += "<small><u>Strength:</u> [E.multiplier >= 3 ? "Severe" : E.multiplier > 1 ? "Above Average" : "Average"] "
|
||||||
r += "<u>Verosity:</u> [E.chance * 15]</small><br>"
|
r += "<u>Aggressiveness:</u> [E.chance * 15]</small><br>"
|
||||||
|
|
||||||
return r
|
return r
|
||||||
|
|
||||||
|
|||||||
@@ -131,9 +131,6 @@
|
|||||||
if(foodsupply < 100 && beaker.reagents.remove_reagent("virusfood",5))
|
if(foodsupply < 100 && beaker.reagents.remove_reagent("virusfood",5))
|
||||||
if(foodsupply + 10 <= 100)
|
if(foodsupply + 10 <= 100)
|
||||||
foodsupply += 10
|
foodsupply += 10
|
||||||
else
|
|
||||||
beaker.reagents.add_reagent("virusfood",(100 - foodsupply)/2)
|
|
||||||
foodsupply = 100
|
|
||||||
nanomanager.update_uis(src)
|
nanomanager.update_uis(src)
|
||||||
|
|
||||||
if (locate(/datum/reagent/toxin) in beaker.reagents.reagent_list && toxins < 100)
|
if (locate(/datum/reagent/toxin) in beaker.reagents.reagent_list && toxins < 100)
|
||||||
|
|||||||
@@ -58,8 +58,10 @@
|
|||||||
/datum/disease2/effect/invisible
|
/datum/disease2/effect/invisible
|
||||||
name = "Waiting Syndrome"
|
name = "Waiting Syndrome"
|
||||||
stage = 1
|
stage = 1
|
||||||
activate(var/mob/living/carbon/mob,var/multiplier)
|
badness = 3
|
||||||
return
|
|
||||||
|
/datum/disease2/effect/invisible/activate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
|
return
|
||||||
|
|
||||||
////////////////////////STAGE 4/////////////////////////////////
|
////////////////////////STAGE 4/////////////////////////////////
|
||||||
|
|
||||||
@@ -70,142 +72,183 @@
|
|||||||
chance_maxm = 0
|
chance_maxm = 0
|
||||||
|
|
||||||
/datum/disease2/effect/gibbingtons
|
/datum/disease2/effect/gibbingtons
|
||||||
name = "Gibbingtons Syndrome"
|
name = "Gibbington's Syndrome"
|
||||||
stage = 4
|
stage = 4
|
||||||
badness = 3
|
badness = 3
|
||||||
activate(var/mob/living/carbon/mob,var/multiplier)
|
|
||||||
// Probabilities have been tweaked to kill in ~2-3 minutes, giving 5-10 messages.
|
/datum/disease2/effect/gibbingtons/activate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
// Probably needs more balancing, but it's better than LOL U GIBBED NOW, especially now that viruses can potentially have no signs up until Gibbingtons.
|
// Probabilities have been tweaked to kill in ~2-3 minutes, giving 5-10 messages.
|
||||||
mob.adjustBruteLoss(10*multiplier)
|
// Probably needs more balancing, but it's better than LOL U GIBBED NOW, especially now that viruses can potentially have no signs up until Gibbingtons.
|
||||||
if(istype(mob, /mob/living/carbon/human))
|
mob.adjustBruteLoss(10*multiplier)
|
||||||
var/mob/living/carbon/human/H = mob
|
if(istype(mob, /mob/living/carbon/human))
|
||||||
var/obj/item/organ/external/O = pick(H.organs)
|
var/mob/living/carbon/human/H = mob
|
||||||
if(prob(25))
|
var/obj/item/organ/external/O = pick(H.organs)
|
||||||
mob << "<span class='warning'>Your [O.name] feels as if it might burst!</span>"
|
if(prob(25))
|
||||||
if(prob(10))
|
mob << "<span class='warning'>Your [O.name] feels as if it might burst!</span>"
|
||||||
spawn(50)
|
if(prob(10))
|
||||||
if(O)
|
spawn(50)
|
||||||
O.droplimb(0,DROPLIMB_BLUNT)
|
if(O)
|
||||||
else
|
O.droplimb(0,DROPLIMB_BLUNT)
|
||||||
if(prob(75))
|
else
|
||||||
mob << "<span class='warning'>Your whole body feels like it might fall apart!</span>"
|
if(prob(75))
|
||||||
if(prob(10))
|
mob << "<span class='warning'>Your whole body feels like it might fall apart!</span>"
|
||||||
mob.adjustBruteLoss(25*multiplier)
|
if(prob(10))
|
||||||
|
mob.adjustBruteLoss(25*multiplier)
|
||||||
|
|
||||||
/datum/disease2/effect/radian
|
/datum/disease2/effect/radian
|
||||||
name = "Radian's Syndrome"
|
name = "Radian's Syndrome"
|
||||||
stage = 4
|
stage = 4
|
||||||
maxm = 3
|
maxm = 3
|
||||||
badness = 2
|
badness = 2
|
||||||
activate(var/mob/living/carbon/mob,var/multiplier)
|
|
||||||
mob.apply_effect(2*multiplier, IRRADIATE, check_protection = 0)
|
/datum/disease2/effect/radian/activate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
|
mob.apply_effect(2*multiplier, IRRADIATE, check_protection = 0)
|
||||||
|
|
||||||
/datum/disease2/effect/deaf
|
/datum/disease2/effect/deaf
|
||||||
name = "Dead Ear Syndrome"
|
name = "Deafness"
|
||||||
stage = 4
|
stage = 4
|
||||||
badness = 2
|
badness = 2
|
||||||
activate(var/mob/living/carbon/mob,var/multiplier)
|
|
||||||
mob.ear_deaf += 20
|
/datum/disease2/effect/deaf/activate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
|
mob.ear_deaf += 20
|
||||||
|
|
||||||
/datum/disease2/effect/monkey
|
/datum/disease2/effect/monkey
|
||||||
name = "Monkism Syndrome"
|
name = "Genome Regression"
|
||||||
stage = 4
|
stage = 4
|
||||||
badness = 3
|
badness = 3
|
||||||
activate(var/mob/living/carbon/mob,var/multiplier)
|
|
||||||
if(istype(mob,/mob/living/carbon/human))
|
/datum/disease2/effect/monkey/activate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
var/mob/living/carbon/human/h = mob
|
if(istype(mob,/mob/living/carbon/human))
|
||||||
h.monkeyize()
|
var/mob/living/carbon/human/h = mob
|
||||||
|
h.monkeyize()
|
||||||
|
|
||||||
/datum/disease2/effect/suicide
|
/datum/disease2/effect/suicide
|
||||||
name = "Suicidal Syndrome"
|
name = "Windpipe Contraction"
|
||||||
stage = 4
|
stage = 4
|
||||||
badness = 3
|
badness = 3
|
||||||
activate(var/mob/living/carbon/mob,var/multiplier)
|
|
||||||
var/datum/gender/TM = gender_datums[mob.get_visible_gender()]
|
/datum/disease2/effect/suicide/activate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
mob.suiciding = 30
|
var/datum/gender/TM = gender_datums[mob.get_visible_gender()]
|
||||||
//instead of killing them instantly, just put them at -175 health and let 'em gasp for a while
|
mob.suiciding = 30
|
||||||
viewers(mob) << "<font color='red'><b>[mob.name] is holding [TM.his] breath. It looks like [TM.he] [TM.is] trying to commit suicide.</b></font>"
|
//instead of killing them instantly, just put them at -175 health and let 'em gasp for a while
|
||||||
mob.adjustOxyLoss(175 - mob.getToxLoss() - mob.getFireLoss() - mob.getBruteLoss() - mob.getOxyLoss())
|
viewers(mob) << "<font color='red'><b>[mob.name] is holding [TM.his] breath. It looks like [TM.he] [TM.is] trying to commit suicide.</b></font>"
|
||||||
mob.updatehealth()
|
mob.adjustOxyLoss(175 - mob.getToxLoss() - mob.getFireLoss() - mob.getBruteLoss() - mob.getOxyLoss())
|
||||||
|
mob.updatehealth()
|
||||||
|
|
||||||
/datum/disease2/effect/killertoxins
|
/datum/disease2/effect/killertoxins
|
||||||
name = "Toxification Syndrome"
|
name = "Autoimmune Reponse"
|
||||||
stage = 4
|
stage = 4
|
||||||
badness = 2
|
badness = 2
|
||||||
activate(var/mob/living/carbon/mob,var/multiplier)
|
|
||||||
mob.adjustToxLoss(15*multiplier)
|
/datum/disease2/effect/killertoxins/activate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
|
mob.adjustToxLoss(15*multiplier)
|
||||||
|
|
||||||
/datum/disease2/effect/dna
|
/datum/disease2/effect/dna
|
||||||
name = "Reverse Pattern Syndrome"
|
name = "Catastrophic DNA Degeneration"
|
||||||
stage = 4
|
stage = 4
|
||||||
badness = 2
|
badness = 2
|
||||||
activate(var/mob/living/carbon/mob,var/multiplier)
|
|
||||||
mob.bodytemperature = max(mob.bodytemperature, 350)
|
/datum/disease2/effect/dna/activate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
scramble(0,mob,10)
|
mob.bodytemperature = max(mob.bodytemperature, 350)
|
||||||
mob.apply_damage(10, CLONE)
|
scramble(0,mob,10)
|
||||||
|
mob.apply_damage(10, CLONE)
|
||||||
|
|
||||||
/datum/disease2/effect/organs
|
/datum/disease2/effect/organs
|
||||||
name = "Shutdown Syndrome"
|
name = "Limb Paralysis"
|
||||||
stage = 4
|
stage = 4
|
||||||
badness = 2
|
badness = 2
|
||||||
activate(var/mob/living/carbon/mob,var/multiplier)
|
|
||||||
if(istype(mob, /mob/living/carbon/human))
|
|
||||||
var/mob/living/carbon/human/H = mob
|
|
||||||
var/organ = pick(list("r_arm","l_arm","r_leg","r_leg"))
|
|
||||||
var/obj/item/organ/external/E = H.organs_by_name[organ]
|
|
||||||
if (!(E.status & ORGAN_DEAD))
|
|
||||||
E.status |= ORGAN_DEAD
|
|
||||||
H << "<span class='notice'>You can't feel your [E.name] anymore...</span>"
|
|
||||||
for (var/obj/item/organ/external/C in E.children)
|
|
||||||
C.status |= ORGAN_DEAD
|
|
||||||
H.update_icons_body()
|
|
||||||
mob.adjustToxLoss(15*multiplier)
|
|
||||||
|
|
||||||
deactivate(var/mob/living/carbon/mob,var/multiplier)
|
/datum/disease2/effect/organs/activate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
if(istype(mob, /mob/living/carbon/human))
|
if(istype(mob, /mob/living/carbon/human))
|
||||||
var/mob/living/carbon/human/H = mob
|
var/mob/living/carbon/human/H = mob
|
||||||
for (var/obj/item/organ/external/E in H.organs)
|
var/organ = pick(list("r_arm","l_arm","r_leg","l_leg"))
|
||||||
E.status &= ~ORGAN_DEAD
|
var/obj/item/organ/external/E = H.organs_by_name[organ]
|
||||||
for (var/obj/item/organ/external/C in E.children)
|
if (!(E.status & ORGAN_DEAD))
|
||||||
C.status &= ~ORGAN_DEAD
|
E.status |= ORGAN_DEAD
|
||||||
H.update_icons_body()
|
H << "<span class='notice'>You can't feel your [E.name] anymore...</span>"
|
||||||
|
for (var/obj/item/organ/external/C in E.children)
|
||||||
|
C.status |= ORGAN_DEAD
|
||||||
|
H.update_icons_body()
|
||||||
|
mob.adjustToxLoss(15*multiplier)
|
||||||
|
|
||||||
|
/datum/disease2/effect/organs/deactivate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
|
if(istype(mob, /mob/living/carbon/human))
|
||||||
|
var/mob/living/carbon/human/H = mob
|
||||||
|
for (var/obj/item/organ/external/E in H.organs)
|
||||||
|
E.status &= ~ORGAN_DEAD
|
||||||
|
for (var/obj/item/organ/external/C in E.children)
|
||||||
|
C.status &= ~ORGAN_DEAD
|
||||||
|
H.update_icons_body()
|
||||||
|
|
||||||
|
/datum/disease2/effect/internalorgan
|
||||||
|
name = "Organ Shutdown"
|
||||||
|
stage = 4
|
||||||
|
badness = 2
|
||||||
|
|
||||||
|
/datum/disease2/effect/internalorgan/activate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
|
if(istype(mob, /mob/living/carbon/human))
|
||||||
|
var/mob/living/carbon/human/H = mob
|
||||||
|
var/organ = pick(list("heart","kidney","liver", "lungs"))
|
||||||
|
var/obj/item/organ/internal/O = H.organs_by_name[organ]
|
||||||
|
if (!(O.robotic = ORGAN_ROBOT))
|
||||||
|
O.damage += (5*multiplier)
|
||||||
|
H << "<span class='notice'>You feel a cramp in your guts.</span>"
|
||||||
|
|
||||||
/datum/disease2/effect/immortal
|
/datum/disease2/effect/immortal
|
||||||
name = "Longevity Syndrome"
|
name = "Hyperaccelerated Aging"
|
||||||
stage = 4
|
stage = 4
|
||||||
badness = 2
|
badness = 2
|
||||||
activate(var/mob/living/carbon/mob,var/multiplier)
|
|
||||||
if(istype(mob, /mob/living/carbon/human))
|
|
||||||
var/mob/living/carbon/human/H = mob
|
|
||||||
for (var/obj/item/organ/external/E in H.organs)
|
|
||||||
if (E.status & ORGAN_BROKEN && prob(30))
|
|
||||||
E.status ^= ORGAN_BROKEN
|
|
||||||
var/heal_amt = -5*multiplier
|
|
||||||
mob.apply_damages(heal_amt,heal_amt,heal_amt,heal_amt)
|
|
||||||
|
|
||||||
deactivate(var/mob/living/carbon/mob,var/multiplier)
|
/datum/disease2/effect/immortal/activate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
if(istype(mob, /mob/living/carbon/human))
|
if(istype(mob, /mob/living/carbon/human))
|
||||||
var/mob/living/carbon/human/H = mob
|
var/mob/living/carbon/human/H = mob
|
||||||
H << "<span class='notice'>You suddenly feel hurt and old...</span>"
|
for (var/obj/item/organ/external/E in H.organs)
|
||||||
H.age += 8
|
if (E.status & ORGAN_BROKEN && prob(30))
|
||||||
var/backlash_amt = 5*multiplier
|
E.status ^= ORGAN_BROKEN
|
||||||
mob.apply_damages(backlash_amt,backlash_amt,backlash_amt,backlash_amt)
|
var/heal_amt = -5*multiplier
|
||||||
|
mob.apply_damages(heal_amt,heal_amt,heal_amt,heal_amt)
|
||||||
|
|
||||||
|
/datum/disease2/effect/immortal/deactivate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
|
if(istype(mob, /mob/living/carbon/human))
|
||||||
|
var/mob/living/carbon/human/H = mob
|
||||||
|
H << "<span class='notice'>You suddenly feel hurt and old...</span>"
|
||||||
|
H.age += 8
|
||||||
|
var/backlash_amt = 5*multiplier
|
||||||
|
mob.apply_damages(backlash_amt,backlash_amt,backlash_amt,backlash_amt)
|
||||||
|
|
||||||
/datum/disease2/effect/bones
|
/datum/disease2/effect/bones
|
||||||
name = "Fragile Bones Syndrome"
|
name = "Brittle Bones"
|
||||||
stage = 4
|
stage = 4
|
||||||
badness = 2
|
badness = 2
|
||||||
activate(var/mob/living/carbon/mob,var/multiplier)
|
/datum/disease2/effect/bones/activate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
if(istype(mob, /mob/living/carbon/human))
|
if(istype(mob, /mob/living/carbon/human))
|
||||||
var/mob/living/carbon/human/H = mob
|
var/mob/living/carbon/human/H = mob
|
||||||
for (var/obj/item/organ/external/E in H.organs)
|
for (var/obj/item/organ/external/E in H.organs)
|
||||||
E.min_broken_damage = max(5, E.min_broken_damage - 30)
|
E.min_broken_damage = max(5, E.min_broken_damage - 30)
|
||||||
|
|
||||||
|
/datum/disease2/effect/bones/deactivate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
|
if(istype(mob, /mob/living/carbon/human))
|
||||||
|
var/mob/living/carbon/human/H = mob
|
||||||
|
for (var/obj/item/organ/external/E in H.organs)
|
||||||
|
E.min_broken_damage = initial(E.min_broken_damage)
|
||||||
|
|
||||||
|
/datum/disease2/effect/combustion
|
||||||
|
name = "Organic Ignition"
|
||||||
|
stage = 4
|
||||||
|
badness = 3
|
||||||
|
|
||||||
|
/datum/disease2/effect/combustion/activate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
|
if(istype(mob, /mob/living/carbon/human))
|
||||||
|
var/mob/living/carbon/human/H = mob
|
||||||
|
var/obj/item/organ/external/O = pick(H.organs)
|
||||||
|
if(prob(25))
|
||||||
|
mob << "<span class='warning'>It feels like your [O.name] is on fire and your blood is boiling!</span>"
|
||||||
|
H.adjust_fire_stacks(1)
|
||||||
|
if(prob(10))
|
||||||
|
mob << "<span class='warning'>Flames erupt from your skin, your entire body is burning!</span>"
|
||||||
|
H.adjust_fire_stacks(2)
|
||||||
|
H.IgniteMob()
|
||||||
|
|
||||||
deactivate(var/mob/living/carbon/mob,var/multiplier)
|
|
||||||
if(istype(mob, /mob/living/carbon/human))
|
|
||||||
var/mob/living/carbon/human/H = mob
|
|
||||||
for (var/obj/item/organ/external/E in H.organs)
|
|
||||||
E.min_broken_damage = initial(E.min_broken_damage)
|
|
||||||
|
|
||||||
////////////////////////STAGE 3/////////////////////////////////
|
////////////////////////STAGE 3/////////////////////////////////
|
||||||
|
|
||||||
@@ -213,201 +256,262 @@
|
|||||||
name = "Hyperacidity"
|
name = "Hyperacidity"
|
||||||
stage = 3
|
stage = 3
|
||||||
maxm = 3
|
maxm = 3
|
||||||
activate(var/mob/living/carbon/mob,var/multiplier)
|
|
||||||
mob.adjustToxLoss((2*multiplier))
|
/datum/disease2/effect/toxins/activate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
|
mob.adjustToxLoss((2*multiplier))
|
||||||
|
|
||||||
/datum/disease2/effect/shakey
|
/datum/disease2/effect/shakey
|
||||||
name = "World Shaking Syndrome"
|
name = "Nervous Motor Instability"
|
||||||
stage = 3
|
stage = 3
|
||||||
maxm = 3
|
maxm = 3
|
||||||
activate(var/mob/living/carbon/mob,var/multiplier)
|
|
||||||
shake_camera(mob,5*multiplier)
|
/datum/disease2/effect/shakey/activate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
|
shake_camera(mob,5*multiplier)
|
||||||
|
|
||||||
/datum/disease2/effect/telepathic
|
/datum/disease2/effect/telepathic
|
||||||
name = "Telepathy Syndrome"
|
name = "Pineal Gland Decalcification"
|
||||||
stage = 3
|
stage = 3
|
||||||
activate(var/mob/living/carbon/mob,var/multiplier)
|
|
||||||
|
/datum/disease2/effect/telepathic/activate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
mob.dna.SetSEState(REMOTETALKBLOCK,1)
|
mob.dna.SetSEState(REMOTETALKBLOCK,1)
|
||||||
domutcheck(mob, null, MUTCHK_FORCED)
|
domutcheck(mob, null, MUTCHK_FORCED)
|
||||||
|
|
||||||
/datum/disease2/effect/mind
|
/datum/disease2/effect/mind
|
||||||
name = "Lazy Mind Syndrome"
|
name = "Neurodegeneration"
|
||||||
stage = 3
|
stage = 3
|
||||||
activate(var/mob/living/carbon/mob,var/multiplier)
|
|
||||||
if(istype(mob, /mob/living/carbon/human))
|
/datum/disease2/effect/mind/activate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
var/mob/living/carbon/human/H = mob
|
if(istype(mob, /mob/living/carbon/human))
|
||||||
var/obj/item/organ/internal/brain/B = H.internal_organs_by_name["brain"]
|
var/mob/living/carbon/human/H = mob
|
||||||
if (B && B.damage < B.min_broken_damage)
|
var/obj/item/organ/internal/brain/B = H.internal_organs_by_name["brain"]
|
||||||
B.take_damage(5)
|
if (B && B.damage < B.min_broken_damage)
|
||||||
else
|
B.take_damage(5)
|
||||||
mob.setBrainLoss(10)
|
else
|
||||||
|
mob.setBrainLoss(10)
|
||||||
|
|
||||||
/datum/disease2/effect/hallucinations
|
/datum/disease2/effect/hallucinations
|
||||||
name = "Hallucinational Syndrome"
|
name = "Hallucination"
|
||||||
stage = 3
|
stage = 3
|
||||||
activate(var/mob/living/carbon/mob,var/multiplier)
|
|
||||||
mob.hallucination += 25
|
|
||||||
|
|
||||||
/datum/disease2/effect/deaf
|
/datum/disease2/effect/hallucinations/activate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
name = "Hard of Hearing Syndrome"
|
mob.hallucination += 25
|
||||||
|
|
||||||
|
/datum/disease2/effect/minordeaf
|
||||||
|
name = "Hearing Loss"
|
||||||
stage = 3
|
stage = 3
|
||||||
activate(var/mob/living/carbon/mob,var/multiplier)
|
|
||||||
mob.ear_deaf = 5
|
/datum/disease2/effect/minordeaf/activate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
|
mob.ear_deaf = 5
|
||||||
|
|
||||||
/datum/disease2/effect/giggle
|
/datum/disease2/effect/giggle
|
||||||
name = "Uncontrolled Laughter Effect"
|
name = "Uncontrolled Laughter"
|
||||||
stage = 3
|
stage = 3
|
||||||
activate(var/mob/living/carbon/mob,var/multiplier)
|
|
||||||
mob.say("*giggle")
|
/datum/disease2/effect/giggle/activate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
|
mob.say("*giggle")
|
||||||
|
|
||||||
/datum/disease2/effect/confusion
|
/datum/disease2/effect/confusion
|
||||||
name = "Topographical Cretinism"
|
name = "Topographical Cretinism"
|
||||||
stage = 3
|
stage = 3
|
||||||
activate(var/mob/living/carbon/mob,var/multiplier)
|
|
||||||
mob << "<span class='notice'>You have trouble telling right and left apart all of a sudden.</span>"
|
/datum/disease2/effect/confusion/activate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
mob.Confuse(10)
|
mob << "<span class='notice'>You have trouble telling right and left apart all of a sudden.</span>"
|
||||||
|
mob.Confuse(10)
|
||||||
|
|
||||||
/datum/disease2/effect/mutation
|
/datum/disease2/effect/mutation
|
||||||
name = "DNA Degradation"
|
name = "DNA Degradation"
|
||||||
stage = 3
|
stage = 3
|
||||||
activate(var/mob/living/carbon/mob,var/multiplier)
|
|
||||||
mob.apply_damage(2, CLONE)
|
/datum/disease2/effect/mutation/activate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
|
mob.apply_damage(2, CLONE)
|
||||||
|
|
||||||
/datum/disease2/effect/groan
|
/datum/disease2/effect/groan
|
||||||
name = "Groaning Syndrome"
|
name = "Phantom Aches"
|
||||||
stage = 3
|
stage = 3
|
||||||
chance_maxm = 25
|
chance_maxm = 25
|
||||||
activate(var/mob/living/carbon/mob,var/multiplier)
|
|
||||||
mob.say("*groan")
|
/datum/disease2/effect/groan/activate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
|
mob.say("*groan")
|
||||||
|
|
||||||
/datum/disease2/effect/chem_synthesis
|
/datum/disease2/effect/chem_synthesis
|
||||||
name = "Chemical Synthesis"
|
name = "Chemical Synthesis"
|
||||||
stage = 3
|
stage = 3
|
||||||
chance_maxm = 25
|
chance_maxm = 25
|
||||||
|
|
||||||
generate(c_data)
|
/datum/disease2/effect/chem_synthesis/generate(c_data)
|
||||||
if(c_data)
|
if(c_data)
|
||||||
data = c_data
|
data = c_data
|
||||||
else
|
else
|
||||||
data = pick("bicaridine", "kelotane", "anti_toxin", "inaprovaline", "space_drugs", "sugar",
|
data = pick("bicaridine", "kelotane", "anti_toxin", "inaprovaline", "space_drugs", "sugar",
|
||||||
"tramadol", "dexalin", "cryptobiolin", "impedrezene", "hyperzine", "ethylredoxrazine",
|
"tramadol", "dexalin", "cryptobiolin", "impedrezene", "hyperzine", "ethylredoxrazine",
|
||||||
"mindbreaker", "glucose")
|
"mindbreaker", "glucose")
|
||||||
var/datum/reagent/R = chemical_reagents_list[data]
|
var/datum/reagent/R = chemical_reagents_list[data]
|
||||||
name = "[initial(name)] ([initial(R.name)])"
|
name = "[initial(name)] ([initial(R.name)])"
|
||||||
|
|
||||||
|
/datum/disease2/effect/chem_synthesis/activate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
|
if (mob.reagents.get_reagent_amount(data) < 5)
|
||||||
|
mob.reagents.add_reagent(data, 2)
|
||||||
|
|
||||||
|
/datum/disease2/effect/nonrejection
|
||||||
|
name = "Genetic Chameleonism"
|
||||||
|
stage = 3
|
||||||
|
|
||||||
|
/datum/disease2/effect/nonrejection/activate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
|
if(istype(mob, /mob/living/carbon/human))
|
||||||
|
var/mob/living/carbon/human/H = mob
|
||||||
|
var/obj/item/organ/internal/O = H.organs_by_name
|
||||||
|
for (var/organ in H.organs_by_name)
|
||||||
|
if (!(O.robotic = ORGAN_ROBOT))
|
||||||
|
O.rejecting = 0
|
||||||
|
|
||||||
activate(var/mob/living/carbon/mob,var/multiplier)
|
|
||||||
if (mob.reagents.get_reagent_amount(data) < 5)
|
|
||||||
mob.reagents.add_reagent(data, 2)
|
|
||||||
|
|
||||||
////////////////////////STAGE 2/////////////////////////////////
|
////////////////////////STAGE 2/////////////////////////////////
|
||||||
|
|
||||||
/datum/disease2/effect/scream
|
/datum/disease2/effect/scream
|
||||||
name = "Loudness Syndrome"
|
name = "Involuntary Vocalization"
|
||||||
stage = 2
|
stage = 2
|
||||||
chance_maxm = 25
|
chance_maxm = 25
|
||||||
activate(var/mob/living/carbon/mob,var/multiplier)
|
|
||||||
|
/datum/disease2/effect/scream/activate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
mob.say("*scream")
|
mob.say("*scream")
|
||||||
|
|
||||||
/datum/disease2/effect/drowsness
|
/datum/disease2/effect/drowsness
|
||||||
name = "Automated Sleeping Syndrome"
|
name = "Excessive Sleepiness"
|
||||||
stage = 2
|
stage = 2
|
||||||
activate(var/mob/living/carbon/mob,var/multiplier)
|
|
||||||
mob.drowsyness += 10
|
/datum/disease2/effect/drowsness/activate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
|
mob.drowsyness += 10
|
||||||
|
|
||||||
/datum/disease2/effect/sleepy
|
/datum/disease2/effect/sleepy
|
||||||
name = "Resting Syndrome"
|
name = "Narcolepsy"
|
||||||
stage = 2
|
stage = 2
|
||||||
chance_maxm = 15
|
chance_maxm = 15
|
||||||
activate(var/mob/living/carbon/mob,var/multiplier)
|
|
||||||
mob.say("*collapse")
|
/datum/disease2/effect/sleepy/activate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
|
mob.say("*collapse")
|
||||||
|
|
||||||
/datum/disease2/effect/blind
|
/datum/disease2/effect/blind
|
||||||
name = "Blackout Syndrome"
|
name = "Vision Loss"
|
||||||
stage = 2
|
stage = 2
|
||||||
activate(var/mob/living/carbon/mob,var/multiplier)
|
|
||||||
mob.eye_blind = max(mob.eye_blind, 4)
|
/datum/disease2/effect/blind/activate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
|
mob.eye_blind = max(mob.eye_blind, 4)
|
||||||
|
|
||||||
/datum/disease2/effect/cough
|
/datum/disease2/effect/cough
|
||||||
name = "Anima Syndrome"
|
name = "Severe Cough"
|
||||||
stage = 2
|
stage = 2
|
||||||
activate(var/mob/living/carbon/mob,var/multiplier)
|
|
||||||
mob.say("*cough")
|
/datum/disease2/effect/cough/activate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
for(var/mob/living/carbon/M in oview(2,mob))
|
mob.say("*cough")
|
||||||
mob.spread_disease_to(M)
|
for(var/mob/living/carbon/M in oview(2,mob))
|
||||||
|
mob.spread_disease_to(M)
|
||||||
|
|
||||||
/datum/disease2/effect/hungry
|
/datum/disease2/effect/hungry
|
||||||
name = "Appetiser Effect"
|
name = "Digestive Inefficiency"
|
||||||
stage = 2
|
stage = 2
|
||||||
activate(var/mob/living/carbon/mob,var/multiplier)
|
|
||||||
mob.nutrition = max(0, mob.nutrition - 200)
|
/datum/disease2/effect/hungry/activate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
|
mob.nutrition = max(0, mob.nutrition - 200)
|
||||||
|
|
||||||
/datum/disease2/effect/fridge
|
/datum/disease2/effect/fridge
|
||||||
name = "Refridgerator Syndrome"
|
name = "Reduced Circulation"
|
||||||
stage = 2
|
stage = 2
|
||||||
chance_maxm = 25
|
chance_maxm = 25
|
||||||
activate(var/mob/living/carbon/mob,var/multiplier)
|
|
||||||
mob.say("*shiver")
|
/datum/disease2/effect/fridge/activate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
|
mob.say("*shiver")
|
||||||
|
|
||||||
/datum/disease2/effect/hair
|
/datum/disease2/effect/hair
|
||||||
name = "Hair Loss"
|
name = "Hair Loss"
|
||||||
stage = 2
|
stage = 2
|
||||||
activate(var/mob/living/carbon/mob,var/multiplier)
|
|
||||||
if(istype(mob, /mob/living/carbon/human))
|
/datum/disease2/effect/hair/activate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
var/mob/living/carbon/human/H = mob
|
if(istype(mob, /mob/living/carbon/human))
|
||||||
if(H.species.name == "Human" && !(H.h_style == "Bald") && !(H.h_style == "Balding Hair"))
|
var/mob/living/carbon/human/H = mob
|
||||||
H << "<span class='danger'>Your hair starts to fall out in clumps...</span>"
|
if(H.species.name == "Human" && !(H.h_style == "Bald") && !(H.h_style == "Balding Hair"))
|
||||||
spawn(50)
|
H << "<span class='danger'>Your hair starts to fall out in clumps...</span>"
|
||||||
H.h_style = "Balding Hair"
|
spawn(50)
|
||||||
H.update_hair()
|
H.h_style = "Balding Hair"
|
||||||
|
H.update_hair()
|
||||||
|
|
||||||
/datum/disease2/effect/stimulant
|
/datum/disease2/effect/stimulant
|
||||||
name = "Adrenaline Extra"
|
name = "Overactive Adrenal Gland"
|
||||||
stage = 2
|
stage = 2
|
||||||
activate(var/mob/living/carbon/mob,var/multiplier)
|
|
||||||
mob << "<span class='notice'>You feel a rush of energy inside you!</span>"
|
/datum/disease2/effect/stimulant/activate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
if (mob.reagents.get_reagent_amount("hyperzine") < 10)
|
mob << "<span class='notice'>You feel a rush of energy inside you!</span>"
|
||||||
mob.reagents.add_reagent("hyperzine", 4)
|
if (mob.reagents.get_reagent_amount("hyperzine") < 10)
|
||||||
if (prob(30))
|
mob.reagents.add_reagent("hyperzine", 4)
|
||||||
mob.jitteriness += 10
|
if (prob(30))
|
||||||
|
mob.jitteriness += 10
|
||||||
|
|
||||||
|
/datum/disease2/effect/ringing
|
||||||
|
name = "Tinnitus"
|
||||||
|
stage = 2
|
||||||
|
chance_maxm = 25
|
||||||
|
|
||||||
|
/datum/disease2/effect/ringing/activate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
|
if(istype(mob, /mob/living/carbon/human))
|
||||||
|
var/mob/living/carbon/human/H = mob
|
||||||
|
H << "<span class='notice'>You hear an awful ringing in your ears.</span>"
|
||||||
|
H << 'sound/weapons/flash.ogg'
|
||||||
|
|
||||||
|
/datum/disease2/effect/vomiting
|
||||||
|
name = "Vomiting"
|
||||||
|
stage = 2
|
||||||
|
chance_maxm = 20
|
||||||
|
|
||||||
|
/datum/disease2/effect/vomiting/activate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
|
mob << "<span class='notice'>Your stomach churns!</span>"
|
||||||
|
if (prob(50))
|
||||||
|
mob.say("*vomit")
|
||||||
|
|
||||||
////////////////////////STAGE 1/////////////////////////////////
|
////////////////////////STAGE 1/////////////////////////////////
|
||||||
|
|
||||||
/datum/disease2/effect/sneeze
|
/datum/disease2/effect/sneeze
|
||||||
name = "Coldingtons Effect"
|
name = "Sneezing"
|
||||||
stage = 1
|
stage = 1
|
||||||
activate(var/mob/living/carbon/mob,var/multiplier)
|
|
||||||
if (prob(30))
|
/datum/disease2/effect/sneeze/activate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
mob << "<span class='warning'>You feel like you are about to sneeze!</span>"
|
if (prob(30))
|
||||||
sleep(5)
|
mob << "<span class='warning'>You feel like you are about to sneeze!</span>"
|
||||||
mob.say("*sneeze")
|
sleep(5)
|
||||||
for(var/mob/living/carbon/M in get_step(mob,mob.dir))
|
mob.say("*sneeze")
|
||||||
mob.spread_disease_to(M)
|
for(var/mob/living/carbon/M in get_step(mob,mob.dir))
|
||||||
if (prob(50))
|
mob.spread_disease_to(M)
|
||||||
var/obj/effect/decal/cleanable/mucus/M = new(get_turf(mob))
|
if (prob(50))
|
||||||
M.virus2 = virus_copylist(mob.virus2)
|
var/obj/effect/decal/cleanable/mucus/M = new(get_turf(mob))
|
||||||
|
M.virus2 = virus_copylist(mob.virus2)
|
||||||
|
|
||||||
/datum/disease2/effect/gunck
|
/datum/disease2/effect/gunck
|
||||||
name = "Flemmingtons"
|
name = "Mucus Buildup"
|
||||||
stage = 1
|
stage = 1
|
||||||
activate(var/mob/living/carbon/mob,var/multiplier)
|
|
||||||
mob << "<span class='warning'>Mucous runs down the back of your throat.</span>"
|
/datum/disease2/effect/gunck/activate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
|
mob << "<span class='warning'>Mucous runs down the back of your throat.</span>"
|
||||||
|
|
||||||
/datum/disease2/effect/drool
|
/datum/disease2/effect/drool
|
||||||
name = "Saliva Effect"
|
name = "Salivary Gland Stimulation"
|
||||||
stage = 1
|
stage = 1
|
||||||
chance_maxm = 25
|
chance_maxm = 25
|
||||||
activate(var/mob/living/carbon/mob,var/multiplier)
|
|
||||||
mob.say("*drool")
|
/datum/disease2/effect/drool/activate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
|
mob.say("*drool")
|
||||||
|
if (prob(30))
|
||||||
|
var/obj/effect/decal/cleanable/mucus/M = new(get_turf(mob))
|
||||||
|
M.virus2 = virus_copylist(mob.virus2)
|
||||||
|
|
||||||
/datum/disease2/effect/twitch
|
/datum/disease2/effect/twitch
|
||||||
name = "Twitcher"
|
name = "Involuntary Twitching"
|
||||||
stage = 1
|
stage = 1
|
||||||
chance_maxm = 25
|
chance_maxm = 25
|
||||||
activate(var/mob/living/carbon/mob,var/multiplier)
|
|
||||||
|
/datum/disease2/effect/twitch/activate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
mob.say("*twitch")
|
mob.say("*twitch")
|
||||||
|
|
||||||
/datum/disease2/effect/headache
|
/datum/disease2/effect/headache
|
||||||
name = "Headache"
|
name = "Headache"
|
||||||
stage = 1
|
stage = 1
|
||||||
activate(var/mob/living/carbon/mob,var/multiplier)
|
|
||||||
|
/datum/disease2/effect/headache/activate(var/mob/living/carbon/mob,var/multiplier)
|
||||||
mob << "<span class='warning'>Your head hurts a bit.</span>"
|
mob << "<span class='warning'>Your head hurts a bit.</span>"
|
||||||
|
|||||||
@@ -82,7 +82,15 @@ proc/airborne_can_reach(turf/source, turf/target)
|
|||||||
if(antibodies_in_common.len)
|
if(antibodies_in_common.len)
|
||||||
return
|
return
|
||||||
if(M.reagents.has_reagent("spaceacillin"))
|
if(M.reagents.has_reagent("spaceacillin"))
|
||||||
return
|
if(prob(disease.resistance))
|
||||||
|
var/datum/disease2/disease/D = disease.getcopy()
|
||||||
|
D.minormutate()
|
||||||
|
D.resistance += rand(1,9)
|
||||||
|
// log_debug("Adding virus")
|
||||||
|
M.virus2["[D.uniqueID]"] = D
|
||||||
|
BITSET(M.hud_updateflag, STATUS_HUD)
|
||||||
|
else
|
||||||
|
return //Virus prevented by antibiotics
|
||||||
|
|
||||||
if(!disease.affected_species.len)
|
if(!disease.affected_species.len)
|
||||||
return
|
return
|
||||||
|
|||||||
14
html/changelogs/Cerebulon - VirologyTweaks.yml
Normal file
14
html/changelogs/Cerebulon - VirologyTweaks.yml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
|
||||||
|
author: Cerebulon
|
||||||
|
|
||||||
|
delete-after: True
|
||||||
|
|
||||||
|
changes:
|
||||||
|
- rscadd: "Adds antibiotic resistance chance to viruses, capped at 90% without admin edits."
|
||||||
|
- rscadd: "Adds adminspawned non-transmittable viruses"
|
||||||
|
- rscadd: "Adds several new disease symptoms"
|
||||||
|
- tweak: "Vomit is now a disease vector"
|
||||||
|
- tweak: "Viruses have a lower chance of curing themselves without medical intervention"
|
||||||
|
- bugfix: "Virus food no longer infinitely generates in incubator beakers"
|
||||||
|
- bugfix: "Xenomorphs and supernatural begins can no longer catch the flu"
|
||||||
|
|
||||||
@@ -86,35 +86,36 @@
|
|||||||
"bH" = (/obj/machinery/recharge_station,/turf/simulated/shuttle/floor,/area/submap/cave/qShuttle)
|
"bH" = (/obj/machinery/recharge_station,/turf/simulated/shuttle/floor,/area/submap/cave/qShuttle)
|
||||||
"bI" = (/obj/machinery/door/airlock{name = "Charge Station"},/turf/simulated/shuttle/wall,/area/submap/cave/qShuttle)
|
"bI" = (/obj/machinery/door/airlock{name = "Charge Station"},/turf/simulated/shuttle/wall,/area/submap/cave/qShuttle)
|
||||||
"bJ" = (/obj/item/trash/tastybread,/obj/item/weapon/material/butterfly/boxcutter,/obj/effect/decal/cleanable/dirt,/turf/simulated/shuttle/floor{tag = "icon-floor_white"; icon_state = "floor_white"},/area/submap/cave/qShuttle)
|
"bJ" = (/obj/item/trash/tastybread,/obj/item/weapon/material/butterfly/boxcutter,/obj/effect/decal/cleanable/dirt,/turf/simulated/shuttle/floor{tag = "icon-floor_white"; icon_state = "floor_white"},/area/submap/cave/qShuttle)
|
||||||
"bK" = (/obj/structure/bed/chair{dir = 1},/obj/effect/decal/remains/xeno,/turf/simulated/shuttle/floor{tag = "icon-floor_white"; icon_state = "floor_white"},/area/submap/cave/qShuttle)
|
"bK" = (/obj/effect/decal/cleanable/vomit,/obj/effect/decal/cleanable/mucus/mapped,/turf/simulated/shuttle/floor{tag = "icon-floor_white"; icon_state = "floor_white"},/area/submap/cave/qShuttle)
|
||||||
"bL" = (/obj/structure/bed/chair{dir = 1},/obj/item/weapon/card/id/external{desc = "An identification card of some sort. Looks like this one was issued by the Vir Independent Mining Corp."; name = "VIMC identification card"; rank = "Miner"; registered_name = "Nadia Chu"},/turf/simulated/shuttle/floor{tag = "icon-floor_white"; icon_state = "floor_white"},/area/submap/cave/qShuttle)
|
"bL" = (/obj/structure/bed/chair{dir = 1},/obj/effect/decal/remains/xeno,/turf/simulated/shuttle/floor{tag = "icon-floor_white"; icon_state = "floor_white"},/area/submap/cave/qShuttle)
|
||||||
"bM" = (/obj/structure/table/rack,/obj/item/weapon/storage/toolbox/emergency,/turf/simulated/shuttle/floor{tag = "icon-floor_white"; icon_state = "floor_white"},/area/submap/cave/qShuttle)
|
"bM" = (/obj/structure/bed/chair{dir = 1},/obj/item/weapon/card/id/external{desc = "An identification card of some sort. Looks like this one was issued by the Vir Independent Mining Corp."; name = "VIMC identification card"; rank = "Miner"; registered_name = "Nadia Chu"},/turf/simulated/shuttle/floor{tag = "icon-floor_white"; icon_state = "floor_white"},/area/submap/cave/qShuttle)
|
||||||
"bN" = (/obj/structure/table/rack,/obj/item/clothing/head/soft/mbill{desc = "It's a ballcap bearing the colors of Major Bill's Shipping. This one looks at least a few decades out of date."; name = "old shipping cap"},/turf/simulated/shuttle/floor{tag = "icon-floor_white"; icon_state = "floor_white"},/area/submap/cave/qShuttle)
|
"bN" = (/obj/structure/table/rack,/obj/item/weapon/storage/toolbox/emergency,/turf/simulated/shuttle/floor{tag = "icon-floor_white"; icon_state = "floor_white"},/area/submap/cave/qShuttle)
|
||||||
"bO" = (/obj/structure/ore_box,/turf/simulated/shuttle/floor{tag = "icon-floor_yellow"; icon_state = "floor_yellow"},/area/submap/cave/qShuttle)
|
"bO" = (/obj/structure/table/rack,/obj/item/clothing/head/soft/mbill{desc = "It's a ballcap bearing the colors of Major Bill's Shipping. This one looks at least a few decades out of date."; name = "old shipping cap"},/turf/simulated/shuttle/floor{tag = "icon-floor_white"; icon_state = "floor_white"},/area/submap/cave/qShuttle)
|
||||||
"bP" = (/obj/item/weapon/contraband/poster,/turf/simulated/shuttle/floor{tag = "icon-floor_yellow"; icon_state = "floor_yellow"},/area/submap/cave/qShuttle)
|
"bP" = (/obj/structure/ore_box,/turf/simulated/shuttle/floor{tag = "icon-floor_yellow"; icon_state = "floor_yellow"},/area/submap/cave/qShuttle)
|
||||||
"bQ" = (/obj/structure/loot_pile/maint/technical,/turf/simulated/shuttle/floor{tag = "icon-floor_yellow"; icon_state = "floor_yellow"},/area/submap/cave/qShuttle)
|
"bQ" = (/obj/item/weapon/contraband/poster,/turf/simulated/shuttle/floor{tag = "icon-floor_yellow"; icon_state = "floor_yellow"},/area/submap/cave/qShuttle)
|
||||||
"bR" = (/obj/structure/sign/biohazard,/turf/simulated/shuttle/wall/hard_corner,/area/submap/cave/qShuttle)
|
"bR" = (/obj/structure/loot_pile/maint/technical,/turf/simulated/shuttle/floor{tag = "icon-floor_yellow"; icon_state = "floor_yellow"},/area/submap/cave/qShuttle)
|
||||||
"bS" = (/obj/item/tape/medical{icon_state = "tape_v_0"},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
|
"bS" = (/obj/structure/sign/biohazard,/turf/simulated/shuttle/wall/hard_corner,/area/submap/cave/qShuttle)
|
||||||
"bT" = (/obj/item/taperoll/medical,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
|
"bT" = (/obj/item/tape/medical{icon_state = "tape_v_0"},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
|
||||||
"bU" = (/obj/item/tape/medical{dir = 1; icon_state = "tape_dir_0"},/obj/item/tape/medical{dir = 4; icon_state = "tape_dir_0"},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
|
"bU" = (/obj/item/taperoll/medical,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
|
||||||
"bV" = (/obj/item/tape/medical{icon_state = "tape_h_0"},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
|
"bV" = (/obj/item/tape/medical{dir = 1; icon_state = "tape_dir_0"},/obj/item/tape/medical{dir = 4; icon_state = "tape_dir_0"},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
|
||||||
"bW" = (/obj/structure/lattice,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
|
"bW" = (/obj/item/tape/medical{icon_state = "tape_h_0"},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
|
||||||
"bX" = (/obj/structure/sign/warning/secure_area,/turf/simulated/wall/iron,/area/submap/cave/qShuttle)
|
"bX" = (/obj/structure/lattice,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
|
||||||
"bY" = (/obj/structure/sign/kiddieplaque{desc = "By order of the S.D.D.C, this site or craft is to be buried and not disturbed until such time that sterility can be confirmed. Dated: 20/12/2491 "; name = "\improper Sif Department of Disease Control notice"},/turf/simulated/wall/iron,/area/submap/cave/qShuttle)
|
"bY" = (/obj/structure/sign/warning/secure_area,/turf/simulated/wall/iron,/area/submap/cave/qShuttle)
|
||||||
"bZ" = (/obj/structure/sign/warning,/turf/simulated/wall/iron,/area/submap/cave/qShuttle)
|
"bZ" = (/obj/structure/sign/kiddieplaque{desc = "By order of the S.D.D.C, this site or craft is to be buried and not disturbed until such time that sterility can be confirmed. Dated: 20/12/2491 "; name = "\improper Sif Department of Disease Control notice"},/turf/simulated/wall/iron,/area/submap/cave/qShuttle)
|
||||||
"ca" = (/obj/item/bodybag,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
|
"ca" = (/obj/structure/sign/warning,/turf/simulated/wall/iron,/area/submap/cave/qShuttle)
|
||||||
"cb" = (/obj/structure/table/steel,/obj/item/weapon/storage/box/bodybags,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
|
"cb" = (/obj/item/bodybag,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
|
||||||
"cc" = (/obj/structure/table/steel,/obj/item/clothing/suit/bio_suit,/obj/random/medical/lite,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
|
"cc" = (/obj/structure/table/steel,/obj/item/weapon/storage/box/bodybags,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
|
||||||
"cd" = (/obj/structure/closet/l3closet/virology,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
|
"cd" = (/obj/structure/table/steel,/obj/item/clothing/suit/bio_suit,/obj/random/medical/lite,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
|
||||||
"ce" = (/obj/item/weapon/reagent_containers/syringe/antiviral,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
|
"ce" = (/obj/structure/closet/l3closet/virology,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
|
||||||
"cf" = (/obj/structure/dispenser/oxygen,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
|
"cf" = (/obj/item/weapon/reagent_containers/syringe/antiviral,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
|
||||||
"cg" = (/obj/structure/table/steel,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
|
"cg" = (/obj/structure/dispenser/oxygen,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
|
||||||
"ch" = (/obj/structure/table/steel,/obj/item/weapon/reagent_containers/syringe/antiviral,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
|
"ch" = (/obj/structure/table/steel,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
|
||||||
"ci" = (/obj/structure/table/steel,/obj/item/weapon/reagent_containers/spray/cleaner{desc = "Someone has crossed out the 'Space' from Space Cleaner and written in Chemistry. Scrawled on the back is, 'Okay, whoever filled this with polytrinic acid, it was only funny the first time. It was hard enough replacing the CMO's first cat!'"; name = "Chemistry Cleaner"},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
|
"ci" = (/obj/structure/table/steel,/obj/item/weapon/reagent_containers/syringe/antiviral,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
|
||||||
"cj" = (/obj/structure/table/steel,/obj/item/weapon/crowbar/power,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
|
"cj" = (/obj/structure/table/steel,/obj/item/weapon/reagent_containers/spray/cleaner{desc = "Someone has crossed out the 'Space' from Space Cleaner and written in Chemistry. Scrawled on the back is, 'Okay, whoever filled this with polytrinic acid, it was only funny the first time. It was hard enough replacing the CMO's first cat!'"; name = "Chemistry Cleaner"},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
|
||||||
"ck" = (/obj/structure/table/rack,/obj/item/clothing/head/bio_hood,/obj/item/clothing/suit/bio_suit,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
|
"ck" = (/obj/structure/table/steel,/obj/item/weapon/crowbar/power,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
|
||||||
"cl" = (/obj/item/weapon/weldingtool/largetank,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
|
"cl" = (/obj/structure/table/rack,/obj/item/clothing/head/bio_hood,/obj/item/clothing/suit/bio_suit,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
|
||||||
"cm" = (/obj/structure/closet/crate/medical,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
|
"cm" = (/obj/item/weapon/weldingtool/largetank,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
|
||||||
|
"cn" = (/obj/structure/closet/crate/medical,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
|
||||||
|
|
||||||
(1,1,1) = {"
|
(1,1,1) = {"
|
||||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||||
@@ -131,13 +132,13 @@ aaaaaiaJaKaLadaMaNaOaPaQaQaRaSaTaUaVaAaWaXaAaYabaa
|
|||||||
aaabaiaZbababbbcbdadbebfbgadbhbiadbjaAbkaAblaYabaa
|
aaabaiaZbababbbcbdadbebfbgadbhbiadbjaAbkaAblaYabaa
|
||||||
aaabaiaJbmbnadbobpbqbrbsbtbqaNbuaUbvaAbwaVbxaYabaa
|
aaabaiaJbmbnadbobpbqbrbsbtbqaNbuaUbvaAbwaVbxaYabaa
|
||||||
aaabadadadadadaDbyaAbzaAbAbBbCbDadbEaGbFadadbGabaa
|
aaabadadadadadaDbyaAbzaAbAbBbCbDadbEaGbFadadbGabaa
|
||||||
aaababadadbHbIbJaoadbKaQbLadbMbNadbObPbQadagahabaa
|
aaababadadbHbIbJbKadbLaQbMadbNbOadbPbQbRadagahabaa
|
||||||
ababacabadaiajakakbRaiadaiadadadadadadadadadadaaaa
|
ababacabadaiajakakbSaiadaiadadadadadadadadadadaaaa
|
||||||
ababababbSabaeaeafaeababababbTabababababadagahaaaa
|
ababababbTabaeaeafaeababababbUabababababadagahaaaa
|
||||||
aaabababbUbVbVbVbVbVbVbVbVbVbVbVbVbVbVbVadadadaaaa
|
aaabababbVbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWadadadaaaa
|
||||||
aaaaababababababababbWbXbYbZcacacaabcbcccdabceaaaa
|
aaaaababababababababbXbYbZcacbcbcbabcccdceabcfaaaa
|
||||||
aaaaacababcfcgchcicjckababclabcacaababababababaaaa
|
aaaaacababcgchcicjckclababcmabcbcbababababababaaaa
|
||||||
aaaaaaababcmcgababababababababaaaaaaaaaaababacaaaa
|
aaaaaaababcnchababababababababaaaaaaaaaaababacaaaa
|
||||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||||
|
|||||||
Reference in New Issue
Block a user