Merge remote-tracking branch 'bay12-upstream/master' into development

This commit is contained in:
skull132
2016-10-07 00:58:39 +03:00
1594 changed files with 53994 additions and 48590 deletions
+19 -4
View File
@@ -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 />
+3 -2
View File
@@ -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)
+8 -2
View File
@@ -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
+2 -1
View File
@@ -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
+1 -14
View File
@@ -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
+13 -12
View File
@@ -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
+1 -1
View File
@@ -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