mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-26 06:22:26 +01:00
Merge remote-tracking branch 'bay12-upstream/master' into development
This commit is contained in:
@@ -15,6 +15,20 @@
|
||||
|
||||
return 1
|
||||
|
||||
/datum/disease2/disease/get_view_variables_header()
|
||||
. = list()
|
||||
for(var/datum/disease2/effectholder/E in effects)
|
||||
. += "[E.stage]: [E.effect.name]"
|
||||
return {"
|
||||
<b>[name()]</b><br><font size=1>
|
||||
[list2text(., "<br>")]</font>
|
||||
"}
|
||||
|
||||
/datum/disease2/disease/get_view_variables_options()
|
||||
return ..() + {"
|
||||
<option value='?src=\ref[src];info=1'>Show info</option>
|
||||
"}
|
||||
|
||||
/datum/admins/var/datum/virus2_editor/virus2_editor_datum = new
|
||||
/client/proc/virus2_editor()
|
||||
set name = "Virus Editor"
|
||||
@@ -73,10 +87,11 @@
|
||||
var/f = 1
|
||||
for(var/k in all_species)
|
||||
var/datum/species/S = all_species[k]
|
||||
if(!(S.flags & IS_SYNTHETIC))
|
||||
if(!f) H += " | "
|
||||
else f = 0
|
||||
H += "<a href='?src=\ref[src];what=species;toggle=[k]' style='color:[(k in species) ? "#006600" : "#ff0000"]'>[k]</a>"
|
||||
if(S.virus_immune)
|
||||
continue
|
||||
if(!f) H += " | "
|
||||
else f = 0
|
||||
H += "<a href='?src=\ref[src];what=species;toggle=[k]' style='color:[(k in species) ? "#006600" : "#ff0000"]'>[k]</a>"
|
||||
H += {"
|
||||
<a href="?src=\ref[src];what=species;reset=1" style="color:#0000aa">Reset</a>
|
||||
<br />
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
/obj/machinery/computer/curer
|
||||
name = "cure research machine"
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "dna"
|
||||
icon_keyboard = "med_key"
|
||||
icon_screen = "dna"
|
||||
circuit = /obj/item/weapon/circuitboard/curefab
|
||||
var/curing
|
||||
var/virusing
|
||||
@@ -18,7 +19,7 @@
|
||||
return
|
||||
if(istype(I,/obj/item/weapon/virusdish))
|
||||
if(virusing)
|
||||
user << "<b>The pathogen materializer is still recharging.."
|
||||
user << "<b>The pathogen materializer is still recharging..</b>"
|
||||
return
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/product = new(src.loc)
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
var/list/res = list()
|
||||
for (var/specie in all_species)
|
||||
var/datum/species/S = all_species[specie]
|
||||
if(!(S.flags & IS_SYNTHETIC) && S.flags & CAN_JOIN)
|
||||
if(!S.virus_immune)
|
||||
meat += S
|
||||
if(meat.len)
|
||||
var/num = rand(1,meat.len)
|
||||
@@ -69,6 +69,12 @@
|
||||
if(prob(5))
|
||||
mob.antibodies |= antigen // 20% immunity is a good chance IMO, because it allows finding an immune person easily
|
||||
|
||||
// Some species are flat out immune to organic viruses.
|
||||
var/mob/living/carbon/human/H = mob
|
||||
if(istype(H) && H.species.virus_immune)
|
||||
cure(mob)
|
||||
return
|
||||
|
||||
if(mob.radiation > 50)
|
||||
if(prob(1))
|
||||
majormutate()
|
||||
@@ -264,4 +270,4 @@ proc/virology_letterhead(var/report_name)
|
||||
if(H.effect.type == type)
|
||||
return 0
|
||||
|
||||
return 1
|
||||
return 1
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
/obj/machinery/computer/diseasesplicer
|
||||
name = "disease splicer"
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "crew"
|
||||
icon_keyboard = "med_key"
|
||||
icon_screen = "crew"
|
||||
|
||||
var/datum/disease2/effectholder/memorybank = null
|
||||
var/list/species_buffer = null
|
||||
|
||||
@@ -98,7 +98,7 @@
|
||||
maxm = 3
|
||||
badness = 2
|
||||
activate(var/mob/living/carbon/mob,var/multiplier)
|
||||
mob.radiation += (2*multiplier)
|
||||
mob.apply_effect(2*multiplier, IRRADIATE, check_protection = 0)
|
||||
|
||||
/datum/disease2/effect/deaf
|
||||
name = "Dead Ear Syndrome"
|
||||
@@ -116,19 +116,6 @@
|
||||
var/mob/living/carbon/human/h = mob
|
||||
h.monkeyize()
|
||||
|
||||
/datum/disease2/effect/suicide
|
||||
name = "Suicidal Syndrome"
|
||||
stage = 4
|
||||
badness = 3
|
||||
activate(var/mob/living/carbon/mob,var/multiplier)
|
||||
mob.suiciding = 1
|
||||
//instead of killing them instantly, just put them at -175 health and let 'em gasp for a while
|
||||
viewers(mob) << "\red <b>[mob.name] is holding \his breath. It looks like \he's trying to commit suicide.</b>"
|
||||
mob.adjustOxyLoss(175 - mob.getToxLoss() - mob.getFireLoss() - mob.getBruteLoss() - mob.getOxyLoss())
|
||||
mob.updatehealth()
|
||||
spawn(200) //in case they get revived by cryo chamber or something stupid like that, let them suicide again in 20 seconds
|
||||
mob.suiciding = 0
|
||||
|
||||
/datum/disease2/effect/killertoxins
|
||||
name = "Toxification Syndrome"
|
||||
stage = 4
|
||||
|
||||
@@ -3,25 +3,26 @@ proc/infection_check(var/mob/living/carbon/M, var/vector = "Airborne")
|
||||
if (!istype(M))
|
||||
return 0
|
||||
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(istype(H) && H.species.virus_immune)
|
||||
return 0
|
||||
|
||||
var/protection = M.getarmor(null, "bio") //gets the full body bio armour value, weighted by body part coverage.
|
||||
var/score = round(0.06*protection) //scales 100% protection to 6.
|
||||
|
||||
switch(vector)
|
||||
if("Airborne")
|
||||
if(M.internal)
|
||||
score = 6 //not breathing infected air helps greatly
|
||||
var/obj/item/I = M.wear_mask
|
||||
|
||||
//masks provide a small bonus and can replace overall bio protection
|
||||
if(I)
|
||||
score = max(score, round(0.06*I.armor["bio"]))
|
||||
if (istype(I, /obj/item/clothing/mask))
|
||||
score += 1 //this should be added after
|
||||
if(M.internal) //not breathing infected air helps greatly
|
||||
return 0
|
||||
var/obj/item/I = M.wear_mask
|
||||
//masks provide a small bonus and can replace overall bio protection
|
||||
if(I)
|
||||
score = max(score, round(0.06*I.armor["bio"]))
|
||||
if (istype(I, /obj/item/clothing/mask))
|
||||
score += 1 //this should be added after
|
||||
|
||||
if("Contact")
|
||||
if(istype(M, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = M
|
||||
|
||||
if(istype(H))
|
||||
//gloves provide a larger bonus
|
||||
if (istype(H.gloves, /obj/item/clothing/gloves))
|
||||
score += 2
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
var/mob/living/carbon/C = M
|
||||
if (istype(C,/mob/living/carbon/human/))
|
||||
var/mob/living/carbon/human/H = C
|
||||
if(H.species && H.species.flags & NO_BLOOD)
|
||||
if(H.species.flags & NO_BLOOD)
|
||||
report("Scan aborted: The target does not have blood.", user)
|
||||
return
|
||||
|
||||
|
||||
Reference in New Issue
Block a user