Moved a batch of unchecked and a few unused files into the unused folder.

Remember if your scrolling though the list and something is unchecked it should almost certainly be checked.
Simple animals moved over to the actual mob code area and out of the defines.


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2868 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
mport2004@gmail.com
2011-12-30 16:43:41 +00:00
parent 4ad793af53
commit ec0cd3b973
27 changed files with 16 additions and 19 deletions
@@ -1,75 +0,0 @@
/obj/machinery/disease2/diseaseanalyser
name = "Disease Analyser"
icon = 'virology.dmi'
icon_state = "analyser"
anchored = 1
density = 1
var/scanning = 0
var/pause = 0
var/obj/item/weapon/virusdish/dish = null
/obj/machinery/disease2/diseaseanalyser/attackby(var/obj/I as obj, var/mob/user as mob)
if(istype(I,/obj/item/weapon/virusdish))
var/mob/living/carbon/c = user
if(!dish)
dish = I
c.drop_item()
I.loc = src
for(var/mob/M in viewers(src))
if(M == user) continue
M.show_message("\blue [user.name] inserts the [dish.name] in the [src.name]", 3)
else
user << "There is already a dish inserted"
//else
return
/obj/machinery/disease2/diseaseanalyser/process()
if(stat & (NOPOWER|BROKEN))
return
use_power(500)
src.updateDialog()
if(scanning)
scanning -= 1
if(scanning == 0)
var/r = "GNAv2 based virus lifeform"
r += "<BR>Infection rate : [dish.virus2.infectionchance * 10]"
r += "<BR>Spread form : [dish.virus2.spreadtype]"
r += "<BR>Progress Speed : [dish.virus2.stageprob * 10]"
for(var/datum/disease2/effectholder/E in dish.virus2.effects)
r += "<BR>Effect:[E.effect.name]. Strength : [E.multiplier * 8]. Verosity : [E.chance * 15]. Type : [5-E.stage]."
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper(src.loc)
P.info = r
dish.info = r
dish.analysed = 1
dish.loc = src.loc
dish = null
icon_state = "analyser"
for(var/mob/O in hearers(src, null))
O.show_message("\icon[src] \blue The [src.name] prints a sheet of paper", 3)
else if(dish && !scanning && !pause)
if(dish.virus2 && dish.growth > 50)
dish.growth -= 10
scanning = 25
icon_state = "analyser_processing"
else
pause = 1
spawn(25)
dish.loc = src.loc
dish = null
for(var/mob/M in viewers(src))
M.show_message("\icon[src] \blue The [src.name] buzzes", 2)
pause = 0
return
-331
View File
@@ -1,331 +0,0 @@
//To simplify, all diseases have 4 stages, with effects starting at stage 2
//Stage 1 = Rest,Minor disease
//Stage 2 = Minimal effect
//Stage 3 = Medium effect
//Stage 4 = Death/Really Really really bad effect
/proc/infect_virus2(var/mob/living/carbon/M,var/datum/disease2/disease/disease,var/forced = 0)
if(prob(disease.infectionchance))
if(M.virus2)
return
else
var/score = 0
if(!forced)
if(istype(M, /mob/living/carbon/human))
if(M:gloves)
score += 5
if(istype(M:wear_suit, /obj/item/clothing/suit/space)) score += 10
if(istype(M:wear_suit, /obj/item/clothing/suit/bio_suit)) score += 10
if(istype(M:head, /obj/item/clothing/head/helmet/space)) score += 5
if(istype(M:head, /obj/item/clothing/head/bio_hood)) score += 5
if(M.wear_mask)
score += 5
if((istype(M:wear_mask, /obj/item/clothing/mask) || istype(M:wear_mask, /obj/item/clothing/mask/surgical)) && !M.internal)
score += 5
if(M.internal)
score += 5
if(score > 15)
return
// else if(score == 20 && prob(95))
// return
else if(score == 15 && prob(75))
return
else if(score == 10 && prob(55))
return
else if(score == 5 && prob(35))
return
M.virus2 = disease.getcopy()
M.virus2.minormutate()
for(var/datum/disease2/resistance/res in M.resistances)
if(res.resistsdisease(M.virus2))
M.virus2 = null
/datum/disease2/resistance
var/list/datum/disease2/effect/resistances = list()
proc/resistsdisease(var/datum/disease2/disease/virus2)
var/list/res2 = list()
for(var/datum/disease2/effect/e in resistances)
res2 += e.type
for(var/datum/disease2/effectholder/holder in virus2)
if(!(holder.effect.type in res2))
return 0
else
res2 -= holder.effect.type
if(res2.len > 0)
return 0
else
return 1
New(var/datum/disease2/disease/virus2)
for(var/datum/disease2/effectholder/h in virus2.effects)
resistances += h.effect.type
/proc/infect_mob_random(var/mob/living/carbon/M)
if(!M.virus2)
M.virus2 = new /datum/disease2/disease
M.virus2.makerandom()
/datum/disease2/disease
var/infectionchance = 10
var/spreadtype = "Blood" // Can also be "Airborne"
var/stage = 1
var/stageprob = 2
var/dead = 0
var/clicks = 0
var/uniqueID = 0
var/list/datum/disease2/effectholder/effects = list()
proc/makerandom()
var/datum/disease2/effectholder/holder = new /datum/disease2/effectholder
holder.stage = 1
holder.getrandomeffect()
effects += holder
holder = new /datum/disease2/effectholder
holder.stage = 2
holder.getrandomeffect()
effects += holder
holder = new /datum/disease2/effectholder
holder.stage = 3
holder.getrandomeffect()
effects += holder
holder = new /datum/disease2/effectholder
holder.stage = 4
holder.getrandomeffect()
effects += holder
uniqueID = rand(0,10000)
infectionchance = rand(1,10)
spreadtype = "Airborne"
proc/minormutate()
var/datum/disease2/effectholder/holder = pick(effects)
holder.minormutate()
infectionchance = min(10,infectionchance + rand(0,1))
proc/issame(var/datum/disease2/disease/disease)
var/list/types = list()
var/list/types2 = list()
for(var/datum/disease2/effectholder/d in effects)
types += d.effect.type
var/equal = 1
for(var/datum/disease2/effectholder/d in disease.effects)
types2 += d.effect.type
for(var/type in types)
if(!(type in types2))
equal = 0
return equal
proc/activate(var/mob/living/carbon/mob)
if(dead)
mob.virus2 = null
return
if(mob.stat == 2)
return
if(mob.radiation > 50)
if(prob(1))
majormutate()
if(mob.reagents.has_reagent("spaceacillin"))
return
if(prob(stageprob) && prob(25 + (clicks/100)) && stage != 4)
stage++
clicks = 0
for(var/datum/disease2/effectholder/e in effects)
e.runeffect(mob,stage)
proc/cure_added(var/datum/disease2/resistance/res)
if(res.resistsdisease(src))
dead = 1
proc/majormutate()
var/datum/disease2/effectholder/holder = pick(effects)
holder.majormutate()
proc/getcopy()
// world << "getting copy"
var/datum/disease2/disease/disease = new /datum/disease2/disease
disease.infectionchance = infectionchance
disease.spreadtype = spreadtype
disease.stageprob = stageprob
for(var/datum/disease2/effectholder/holder in effects)
// world << "adding effects"
var/datum/disease2/effectholder/newholder = new /datum/disease2/effectholder
newholder.effect = new holder.effect.type
newholder.chance = holder.chance
newholder.cure = holder.cure
newholder.multiplier = holder.multiplier
newholder.happensonce = holder.happensonce
newholder.stage = holder.stage
disease.effects += newholder
// world << "[newholder.effect.name]"
// world << "[disease]"
return disease
/datum/disease2/effect
var/name = "Blanking effect"
var/stage = 4
var/maxm = 1
proc/activate(var/mob/living/carbon/mob,var/multiplier)
/datum/disease2/effect/gibbingtons
name = "Gibbingtons Syndrome"
stage = 4
activate(var/mob/living/carbon/mob,var/multiplier)
mob.gib()
/datum/disease2/effect/radian
name = "Radian's syndrome"
stage = 4
maxm = 3
activate(var/mob/living/carbon/mob,var/multiplier)
mob.radiation += (2*multiplier)
/datum/disease2/effect/toxins
name = "Hyperacid Syndrome"
stage = 3
maxm = 3
activate(var/mob/living/carbon/mob,var/multiplier)
mob.adjustToxLoss(2*multiplier)
/datum/disease2/effect/scream
name = "Random screaming syndrome"
stage = 2
activate(var/mob/living/carbon/mob,var/multiplier)
mob.say("*scream")
/datum/disease2/effect/drowsness
name = "Automated sleeping syndrome"
stage = 2
activate(var/mob/living/carbon/mob,var/multiplier)
mob.drowsyness += 10
/datum/disease2/effect/shakey
name = "World Shaking syndrome"
stage = 3
maxm = 3
activate(var/mob/living/carbon/mob,var/multiplier)
shake_camera(mob,5*multiplier)
/datum/disease2/effect/deaf
name = "Hard of hearing syndrome"
stage = 4
activate(var/mob/living/carbon/mob,var/multiplier)
mob.ear_deaf += 20
/datum/disease2/effect/invisible
name = "Waiting Syndrome"
stage = 1
activate(var/mob/living/carbon/mob,var/multiplier)
return
/*
/datum/disease2/effect/telepathic
name = "Telepathy Syndrome"
stage = 3
activate(var/mob/living/carbon/mob,var/multiplier)
mob.mutations |= 512
*/
/datum/disease2/effect/noface
name = "Identity Loss syndrome"
stage = 4
activate(var/mob/living/carbon/mob,var/multiplier)
mob.real_name = "Unknown"
/datum/disease2/effect/monkey
name = "Monkism syndrome"
stage = 4
activate(var/mob/living/carbon/mob,var/multiplier)
if(istype(mob,/mob/living/carbon/human))
var/mob/living/carbon/human/h = mob
h.monkeyize()
/datum/disease2/effect/sneeze
name = "Coldingtons Effect"
stage = 1
activate(var/mob/living/carbon/mob,var/multiplier)
mob.say("*sneeze")
/datum/disease2/effect/gunck
name = "Flemmingtons"
stage = 1
activate(var/mob/living/carbon/mob,var/multiplier)
mob << "\red Mucous runs down the back of your throat."
/datum/disease2/effect/killertoxins
name = "Toxification syndrome"
stage = 4
activate(var/mob/living/carbon/mob,var/multiplier)
mob.adjustToxLoss(15)
/*
/datum/disease2/effect/hallucinations
name = "Hallucinational Syndrome"
stage = 3
activate(var/mob/living/carbon/mob,var/multiplier)
mob.hallucination += 25
*/
/datum/disease2/effect/sleepy
name = "Resting syndrome"
stage = 2
activate(var/mob/living/carbon/mob,var/multiplier)
mob.say("*collapse")
/datum/disease2/effect/mind
name = "Lazy mind syndrome"
stage = 3
activate(var/mob/living/carbon/mob,var/multiplier)
mob.brainloss = 50
/datum/disease2/effect/suicide
name = "Suicidal syndrome"
stage = 4
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 attempting to bite off \his tongue. It looks like \he's trying to commit suicide.</b>"
mob.oxyloss = max(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/effectholder
var/name = "Holder"
var/datum/disease2/effect/effect
var/chance = 0 //Chance in percentage each tick
var/cure = "" //Type of cure it requires
var/happensonce = 0
var/multiplier = 1 //The chance the effects are WORSE
var/stage = 0
proc/runeffect(var/mob/living/carbon/human/mob,var/stage)
if(happensonce > -1 && effect.stage <= stage && prob(chance))
effect.activate(mob)
if(happensonce == 1)
happensonce = -1
proc/getrandomeffect()
var/list/datum/disease2/effect/list = list()
for(var/e in (typesof(/datum/disease2/effect) - /datum/disease2/effect))
// world << "Making [e]"
var/datum/disease2/effect/f = new e
if(f.stage == src.stage)
list += f
effect = pick(list)
chance = rand(1,6)
proc/minormutate()
switch(pick(1,2,3,4,5))
if(1)
chance = rand(0,100)
if(2)
multiplier = rand(1,effect.maxm)
proc/majormutate()
getrandomeffect()
/proc/dprob(var/p)
return(prob(sqrt(p)) && prob(sqrt(p)))
@@ -1,20 +0,0 @@
/obj/machinery/disease2/biodestroyer
name = "Biohazard destroyer"
icon = 'disposal.dmi'
icon_state = "disposal"
var/list/accepts = list(/obj/item/clothing,/obj/item/weapon/virusdish/,/obj/item/weapon/cureimplanter,/obj/item/weapon/diseasedisk)
density = 1
anchored = 1
/obj/machinery/disease2/biodestroyer/attackby(var/obj/I as obj, var/mob/user as mob)
for(var/path in accepts)
if(I.type in typesof(path))
user.drop_item()
del(I)
overlays += image('disposal.dmi', "dispover-handle")
return
user.drop_item()
I.loc = src.loc
for(var/mob/O in hearers(src, null))
O.show_message("\icon[src] \blue The [src.name] beeps", 2)
@@ -1,42 +0,0 @@
/obj/item/weapon/cureimplanter
name = "Hypospray injector"
icon = 'items.dmi'
icon_state = "implanter1"
var/datum/disease2/resistance/resistance = null
var/works = 0
var/datum/disease2/disease/virus2 = null
item_state = "syringe_0"
throw_speed = 1
throw_range = 5
w_class = 2.0
/obj/item/weapon/cureimplanter/attack(mob/target as mob, mob/user as mob)
if(ismob(target))
for(var/mob/O in viewers(world.view, user))
if (target != user)
O.show_message(text("\red <B>[] is trying to inject [] with [src.name]!</B>", user, target), 1)
else
O.show_message("\red <B>[user] is trying to inject themselves with [src.name]!</B>", 1)
if(!do_mob(user, target,60)) return
for(var/mob/O in viewers(world.view, user))
if (target != user)
O.show_message(text("\red [] injects [] with [src.name]!", user, target), 1)
else
O.show_message("\red [user] injects themself with [src.name]!", 1)
var/mob/living/carbon/M = target
if(works == 0 && prob(25))
M.resistances2 += resistance
if(M.virus2)
M.virus2.cure_added(resistance)
else if(works == 1)
M.adjustToxLoss(rand(20,50))
else if(works == 2)
M.adjustToxLoss(rand(50,100))
else if(works == 3)
infect_virus2(M,virus2,1)
@@ -1,154 +0,0 @@
/obj/machinery/computer/curer
name = "Cure Research Machine"
icon = 'computer.dmi'
icon_state = "dna"
// brightnessred = 0
// brightnessgreen = 2 //Used for multicoloured lighting on BS12
// brightnessblue = 2
var/curing
var/virusing
circuit = "/obj/item/weapon/circuitboard/mining"
var/obj/item/weapon/virusdish/dish = null
/obj/machinery/computer/curer/attackby(var/obj/I as obj, var/mob/user as mob)
/*if(istype(I, /obj/item/weapon/screwdriver))
playsound(src.loc, 'Screwdriver.ogg', 50, 1)
if(do_after(user, 20))
if (src.stat & BROKEN)
user << "\blue The broken glass falls out."
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
new /obj/item/weapon/shard( src.loc )
var/obj/item/weapon/circuitboard/curer/M = new /obj/item/weapon/circuitboard/curer( A )
for (var/obj/C in src)
C.loc = src.loc
A.circuit = M
A.state = 3
A.icon_state = "3"
A.anchored = 1
del(src)
else
user << "\blue You disconnect the monitor."
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
var/obj/item/weapon/circuitboard/curer/M = new /obj/item/weapon/circuitboard/curer( A )
for (var/obj/C in src)
C.loc = src.loc
A.circuit = M
A.state = 4
A.icon_state = "4"
A.anchored = 1
del(src)*/
if(istype(I,/obj/item/weapon/virusdish))
var/mob/living/carbon/c = user
if(!dish)
dish = I
c.drop_item()
I.loc = src
//else
src.attack_hand(user)
return
/obj/machinery/computer/curer/attack_ai(var/mob/user as mob)
return src.attack_hand(user)
/obj/machinery/computer/curer/attack_paw(var/mob/user as mob)
return src.attack_hand(user)
return
/obj/machinery/computer/curer/attack_hand(var/mob/user as mob)
if(..())
return
user.machine = src
var/dat
if(curing)
dat = "Antibody production in progress"
else if(virusing)
dat = "Virus production in progress"
else if(dish)
dat = "Virus dish inserted"
if(dish.virus2)
if(dish.growth >= 100)
dat += "<BR><A href='?src=\ref[src];antibody=1'>Begin antibody production</a>"
dat += "<BR><A href='?src=\ref[src];virus=1'>Begin virus production</a>"
else
dat += "<BR>Insufficent cells to attempt to create cure"
else
dat += "<BR>Please check dish contents"
dat += "<BR><A href='?src=\ref[src];eject=1'>Eject disk</a>"
else
dat = "Please insert dish"
user << browse(dat, "window=computer;size=400x500")
onclose(user, "computer")
return
/obj/machinery/computer/curer/process()
..()
if(stat & (NOPOWER|BROKEN))
return
use_power(500)
src.updateDialog()
if(curing)
curing -= 1
if(curing == 0)
icon_state = "dna"
if(dish.virus2)
createcure(dish.virus2)
if(virusing)
virusing -= 1
if(virusing == 0)
icon_state = "dna"
if(dish.virus2)
createvirus(dish.virus2)
return
/obj/machinery/computer/curer/Topic(href, href_list)
if(..())
return
if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon)))
usr.machine = src
if (href_list["antibody"])
curing = 30
dish.growth -= 50
src.icon_state = "dna"
if (href_list["virus"])
virusing = 30
dish.growth -= 100
src.icon_state = "dna"
else if(href_list["eject"])
dish.loc = src.loc
dish = null
src.add_fingerprint(usr)
src.updateUsrDialog()
return
/obj/machinery/computer/curer/proc/createcure(var/datum/disease2/disease/virus2)
var/obj/item/weapon/cureimplanter/implanter = new /obj/item/weapon/cureimplanter(src.loc)
implanter.resistance = new /datum/disease2/resistance(dish.virus2)
if(probG("Virus curing",3))
implanter.works = 0
else
implanter.works = rand(1,2)
state("The [src.name] Buzzes")
/obj/machinery/computer/curer/proc/createvirus(var/datum/disease2/disease/virus2)
var/obj/item/weapon/cureimplanter/implanter = new /obj/item/weapon/cureimplanter(src.loc)
implanter.name = "Viral implanter (MAJOR BIOHAZARD)"
implanter.virus2 = dish.virus2.getcopy()
implanter.works = 3
state("The [src.name] Buzzes")
/obj/machinery/computer/curer/proc/state(var/msg)
for(var/mob/O in hearers(src, null))
O.show_message("\icon[src] \blue [msg]", 2)
@@ -1,202 +0,0 @@
/obj/machinery/computer/diseasesplicer
name = "Disease Splicer"
icon = 'computer.dmi'
icon_state = "crew"
//brightnessred = 0
// brightnessgreen = 2
// brightnessblue = 2
// broken_icon
var/datum/disease2/effectholder/memorybank = null
var/analysed = 0
var/obj/item/weapon/virusdish/dish = null
var/burning = 0
var/splicing = 0
var/scanning = 0
/obj/machinery/computer/diseasesplicer/attackby(var/obj/I as obj, var/mob/user as mob)
/*
if(istype(I, /obj/item/weapon/screwdriver))
playsound(src.loc, 'Screwdriver.ogg', 50, 1)
if(do_after(user, 20))
if (src.stat & BROKEN)
user << "\blue The broken glass falls out."
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
new /obj/item/weapon/shard( src.loc )
var/obj/item/weapon/circuitboard/diseasesplicer/M = new /obj/item/weapon/circuitboard/diseasesplicer( A )
for (var/obj/C in src)
C.loc = src.loc
A.circuit = M
A.state = 3
A.icon_state = "3"
A.anchored = 1
del(src)
else
user << "\blue You disconnect the monitor."
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
var/obj/item/weapon/circuitboard/diseasesplicer/M = new /obj/item/weapon/circuitboard/diseasesplicer( A )
for (var/obj/C in src)
C.loc = src.loc
A.circuit = M
A.state = 4
A.icon_state = "4"
A.anchored = 1
del(src)*/
if(istype(I,/obj/item/weapon/virusdish))
var/mob/living/carbon/c = user
if(!dish)
dish = I
c.drop_item()
I.loc = src
if(istype(I,/obj/item/weapon/diseasedisk))
user << "You upload the contents of the disk into the buffer"
memorybank = I:effect
//else
src.attack_hand(user)
return
/obj/machinery/computer/diseasesplicer/attack_ai(var/mob/user as mob)
return src.attack_hand(user)
/obj/machinery/computer/diseasesplicer/attack_paw(var/mob/user as mob)
return src.attack_hand(user)
return
/obj/machinery/computer/diseasesplicer/attack_hand(var/mob/user as mob)
if(..())
return
user.machine = src
var/dat
if(splicing)
dat = "Splicing in progress"
else if(scanning)
dat = "Splicing in progress"
else if(burning)
dat = "Data disk burning in progress"
else
if(dish)
dat = "Virus dish inserted"
dat += "<BR>Current DNA strand : "
if(memorybank)
dat += "<A href='?src=\ref[src];splice=1'>"
if(analysed)
dat += "[memorybank.effect.name] ([5-memorybank.effect.stage])"
else
dat += "Unknown DNA strand ([5-memorybank.effect.stage])"
dat += "</a>"
dat += "<BR><A href='?src=\ref[src];disk=1'>Burn DNA Sequence to data storage disk</a>"
else
dat += "Empty"
dat += "<BR><BR>"
if(dish)
if(dish.virus2)
if(dish.growth >= 50)
for(var/datum/disease2/effectholder/e in dish.virus2.effects)
dat += "<BR><A href='?src=\ref[src];grab=\ref[e]'> DNA strand"
if(dish.analysed)
dat += ": [e.effect.name]"
dat += " (5-[e.effect.stage])</a>"
else
dat += "<BR>Insufficent cells to attempt gene splicing"
else
dat += "<BR>No virus found in dish"
dat += "<BR><BR><A href='?src=\ref[src];eject=1'>Eject disk</a>"
else
dat += "<BR>Please insert dish"
user << browse(dat, "window=computer;size=400x500")
onclose(user, "computer")
return
/obj/machinery/computer/diseasesplicer/process()
if(stat & (NOPOWER|BROKEN))
return
use_power(500)
src.updateDialog()
if(scanning)
scanning -= 1
if(!scanning)
state("The [src.name] beeps")
icon_state = "crew"
if(splicing)
splicing -= 1
if(!splicing)
state("The [src.name] pings")
icon_state = "crew"
if(burning)
burning -= 1
if(!burning)
var/obj/item/weapon/diseasedisk/d = new /obj/item/weapon/diseasedisk(src.loc)
if(analysed)
d.name = "[memorybank.effect.name] GNA disk (Stage: [5-memorybank.effect.stage])"
else
d.name = "Unknown GNA disk (Stage: [5-memorybank.effect.stage])"
d.effect = memorybank
state("The [src.name] zings")
icon_state = "crew"
return
/obj/machinery/computer/diseasesplicer/Topic(href, href_list)
if(..())
return
if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon)))
usr.machine = src
if (href_list["grab"])
memorybank = locate(href_list["grab"])
analysed = dish.analysed
del(dish)
dish = null
scanning = 30
icon_state = "crew"
else if(href_list["eject"])
dish.loc = src.loc
dish = null
else if(href_list["splice"])
for(var/datum/disease2/effectholder/e in dish.virus2.effects)
if(e.stage == memorybank.stage)
e.effect = memorybank.effect
splicing = 50
dish.virus2.spreadtype = "Blood"
icon_state = "crew"
else if(href_list["disk"])
burning = 20
icon_state = "crew"
src.add_fingerprint(usr)
src.updateUsrDialog()
return
/obj/machinery/computer/diseasesplicer/proc/state(var/msg)
for(var/mob/O in hearers(src, null))
O.show_message("\icon[src] \blue [msg]", 2)
/obj/item/weapon/diseasedisk
name = "Blank GNA disk"
icon = 'cloning.dmi'
icon_state = "datadisk2"
var/datum/disease2/effectholder/effect = null
var/stage = 1
/obj/item/weapon/diseasedisk/premade/New()
name = "Blank GNA disk (stage: [5-stage])"
effect = new /datum/disease2/effectholder
effect.effect = new /datum/disease2/effect/invisible
effect.stage = stage
@@ -1,176 +0,0 @@
/obj/machinery/disease2/incubator/
name = "Pathogenic incubator"
density = 1
anchored = 1
icon = 'virology.dmi'
icon_state = "incubator"
var/obj/item/weapon/virusdish/dish
var/obj/item/weapon/reagent_containers/glass/beaker = null
var/radiation = 0
var/on = 0
var/power = 0
var/foodsupply = 0
var/toxins = 0
ex_act(severity)
switch(severity)
if(1.0)
del(src)
return
if(2.0)
if (prob(50))
del(src)
return
blob_act()
if (prob(25))
del(src)
meteorhit()
del(src)
return
attackby(var/obj/B as obj, var/mob/user as mob)
if(istype(B, /obj/item/weapon/reagent_containers/glass) || istype(B,/obj/item/weapon/reagent_containers/syringe))
if(src.beaker)
if(istype(beaker,/obj/item/weapon/reagent_containers/syringe))
user << "A syringe is already loaded into the machine."
else
user << "A beaker is already loaded into the machine."
return
src.beaker = B
user.drop_item()
B.loc = src
if(istype(B,/obj/item/weapon/reagent_containers/syringe))
user << "You add the syringe to the machine!"
src.updateUsrDialog()
else
user << "You add the beaker to the machine!"
src.updateUsrDialog()
else
if(istype(B,/obj/item/weapon/virusdish))
if(src.dish)
user << "A dish is already loaded into the machine."
return
src.dish = B
user.drop_item()
B.loc = src
if(istype(B,/obj/item/weapon/virusdish))
user << "You add the dish to the machine!"
src.updateUsrDialog()
Topic(href, href_list)
if(stat & BROKEN) return
if(usr.stat || usr.restrained()) return
if(!in_range(src, usr)) return
usr.machine = src
if(!dish) return
if (href_list["power"])
on = !on
if(on)
icon_state = "incubator_on"
else
icon_state = "incubator"
if (href_list["ejectchem"])
if(beaker)
beaker.loc = src.loc
beaker = null
if (href_list["ejectdish"])
if(dish)
dish.loc = src.loc
dish = null
if (href_list["rad"])
radiation += 10
if (href_list["flush"])
radiation = 0
toxins = 0
foodsupply = 0
src.add_fingerprint(usr)
src.updateUsrDialog()
attack_hand(mob/user as mob)
if(stat & BROKEN)
return
user.machine = src
var/dat = ""
if(!dish)
dat = "Please insert dish into the incubator.<BR>"
dat += "<A href='?src=\ref[src];close=1'>Close</A>"
var/string = "Off"
if(on)
string = "On"
dat += "Power status : <A href='?src=\ref[src];power=1'>[string]</a>"
dat += "<BR>"
dat += "Food supply : [foodsupply]"
dat += "<BR>"
dat += "Radiation Levels : [radiation] RADS : <A href='?src=\ref[src];rad=1'>Radiate</a>"
dat += "<BR>"
dat += "Toxins : [toxins]"
dat += "<BR><BR>"
if(beaker)
dat += "Eject chemicals : <A href='?src=\ref[src];ejectchem=1'> Eject</a>"
dat += "<BR>"
if(dish)
dat += "Eject Virus dish : <A href='?src=\ref[src];ejectdish=1'> Eject</a>"
dat += "<BR>"
dat += "<BR><BR>"
dat += "<A href='?src=\ref[src];flush=1'>Flush system</a>"
user << browse("<TITLE>Pathogenic incubator</TITLE>incubator menu:<BR><BR>[dat]", "window=incubator;size=575x400")
onclose(user, "incubator")
return
process()
if(dish && on && dish.virus2)
use_power(50,EQUIP)
if(!powered(EQUIP))
on = 0
icon_state = "incubator"
if(foodsupply)
foodsupply -= 1
dish.growth += 1
if(dish.growth == 100)
state("The [src.name] pings")
if(radiation)
if(radiation > 50 & prob(5))
dish.virus2.majormutate()
if(dish.info)
dish.info = "OUTDATED : [dish.info]"
dish.analysed = 0
state("The [src.name] beeps")
else if(prob(5))
dish.virus2.minormutate()
radiation -= 1
if(toxins && prob(5))
dish.virus2.infectionchance -= 1
if(toxins > 50)
dish.virus2 = null
else if(!dish)
on = 0
icon_state = "incubator"
if(beaker)
if(!beaker.reagents.remove_reagent("virusfood",5))
foodsupply += 20
if(!beaker.reagents.remove_reagent("toxins",1))
toxins += 1
proc/state(var/msg)
for(var/mob/O in hearers(src, null))
O.show_message("\icon[src] \blue [msg]", 2)
@@ -1,139 +0,0 @@
/obj/machinery/disease2/isolator/
name = "Pathogenic Isolator"
density = 1
anchored = 1
icon = 'virology.dmi'
icon_state = "isolator"
var/datum/disease2/disease/virus2 = null
var/isolating = 0
var/beaker = null
ex_act(severity)
switch(severity)
if(1.0)
del(src)
return
if(2.0)
if (prob(50))
del(src)
return
blob_act()
if (prob(25))
del(src)
meteorhit()
del(src)
return
attackby(var/obj/item/weapon/reagent_containers/glass/B as obj, var/mob/user as mob)
if(!istype(B,/obj/item/weapon/reagent_containers/syringe))
return
if(src.beaker)
user << "A syringe is already loaded into the machine."
return
src.beaker = B
user.drop_item()
B.loc = src
if(istype(B,/obj/item/weapon/reagent_containers/syringe))
user << "You add the syringe to the machine!"
src.updateUsrDialog()
icon_state = "isolator_in"
Topic(href, href_list)
if(stat & BROKEN) return
if(usr.stat || usr.restrained()) return
if(!in_range(src, usr)) return
usr.machine = src
if(!beaker) return
var/datum/reagents/R = beaker:reagents
if (href_list["isolate"])
var/datum/reagent/blood/Blood
for(var/datum/reagent/blood/B in R.reagent_list)
if(B)
Blood = B
break
if(Blood.data["virus2"])
virus2 = Blood.data["virus2"]
isolating = 40
icon_state = "isolator_processing"
src.updateUsrDialog()
return
else if (href_list["main"])
attack_hand(usr)
return
else if (href_list["eject"])
beaker:loc = src.loc
beaker = null
icon_state = "isolator"
src.updateUsrDialog()
return
attack_hand(mob/user as mob)
if(stat & BROKEN)
return
user.machine = src
var/dat = ""
if(!beaker)
dat = "Please insert sample into the isolator.<BR>"
dat += "<A href='?src=\ref[src];close=1'>Close</A>"
else if(isolating)
dat = "Isolating"
else
var/datum/reagents/R = beaker:reagents
dat += "<A href='?src=\ref[src];eject=1'>Eject</A><BR><BR>"
if(!R.total_volume)
dat += "[beaker] is empty."
else
dat += "Contained reagents:<BR>"
for(var/datum/reagent/blood/G in R.reagent_list)
dat += " [G.name]: <A href='?src=\ref[src];isolate=[G.id]'>Isolate</a>"
user << browse("<TITLE>Pathogenic Isolator</TITLE>Isolator menu:<BR><BR>[dat]", "window=isolator;size=575x400")
onclose(user, "isolator")
return
process()
if(isolating > 0)
isolating -= 1
if(isolating == 0)
var/obj/item/weapon/virusdish/d = new /obj/item/weapon/virusdish(src.loc)
d.virus2 = virus2.getcopy()
virus2 = null
icon_state = "isolator_in"
/obj/item/weapon/virusdish
name = "Virus containment/growth dish"
icon = 'items.dmi'
icon_state = "implantcase-b"
var/datum/disease2/disease/virus2 = null
var/growth = 0
var/info = 0
var/analysed = 0
/obj/item/weapon/virusdish/attackby(var/obj/item/weapon/W as obj,var/mob/living/carbon/user as mob)
if(istype(W,/obj/item/weapon/hand_labeler))
return
..()
if(prob(50))
user << "The dish shatters"
if(virus2.infectionchance > 0)
infect_virus2(user,virus2)
del src
/obj/item/weapon/virusdish/examine()
usr << "This is a virus containment dish"
if(src.info)
usr << "It has the following information about its contents"
usr << src.info
@@ -1,30 +0,0 @@
/obj/machinery/disease2/monkeycloner
name = "Monkey dispensor"
icon = 'cloning.dmi'
icon_state = "pod_0"
density = 1
anchored = 1
var/cloning = 0
/obj/machinery/disease2/monkeycloner/attack_hand()
if(!cloning)
cloning = 150
icon_state = "pod_g"
/obj/machinery/disease2/monkeycloner/process()
if(stat & (NOPOWER|BROKEN))
return
use_power(500)
src.updateDialog()
if(cloning)
cloning -= 1
if(!cloning)
new /mob/living/carbon/monkey(src.loc)
icon_state = "pod_0"
return
-12
View File
@@ -1,12 +0,0 @@
var/list/prob_G_list = list()
/proc/probG(var/define,var/everyother)
if(prob_G_list["[define]"])
prob_G_list["[define]"] += 1
if(prob_G_list["[define]"] == everyother)
prob_G_list["[define]"] = 0
return 1
else
(prob_G_list["[define]"]) = 0
(prob_G_list["[define]"]) = rand(1,everyother-1)
return 0