#Fixed Chaplain hoodie sprite.

#Respawn_character() now properly respawns aliens and monkeys if specified to do so.
#Added more options in admin quick panel (for players) to get, send, check if traitor, narrate, and subtle message mob.
#Admins can now click an X by admin name, in asay, to jump to that admin. Makes things easier.
#Moved admin transform verbs into fun tab.
#Removed boom boom shake the room since not even hosts are allowed to use it.
#Pierrot's throat now has a 35% chance of being cured by eating bananas. Up from 5.
#Fixed AI cards.
#ed209 and Beepsky now properly figure in deafness when speaking. Doesn't affect voice files.
#Fixed Syndicate PDA not triggering door.
#Aliens can no longer magically crawl to the prison station and back.
#Aliens can now quickly (5 seconds) break out of cuffs by resisting. No change to buckled.
#Facehuggers will now properly set the alien_egg_flag if the target was infected or not. Curing the alien egg should also reset the flag. I think it will be best to get rid of the flag entirely in the future.
#Added isalienadult(mob) proc to check for humanoid aliens.
#Probably fixed death squad spawning. They pick by key now, instead of mob name.
#Spawning xenos now uses the client match method so you can specify who you want to respawn if wanted.

#Ninjas now tell admins what their set mission is. If given objectives by admin, it should report them at round end for certain rounds.
#Spawning ninjas now uses the same method as respawn character (typing in key/ckey).
#Added a ninjify admnin verb. Possible to right click.
#Can now resize spiderOS window.
#Misc fixes and adjustments. Minor map change to CentCom holding facility.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1685 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
noisomehollow@lycos.com
2011-06-12 18:10:53 +00:00
parent 48ad28e20c
commit 1dfe1cda8e
36 changed files with 4303 additions and 4065 deletions

View File

@@ -7,7 +7,7 @@
/*
IMPORTANT NOTE: Please delete the diseases by using cure() proc or del() instruction.
Diseases are referenced in global list, so simply setting mob or obj vars
Diseases are referenced in a global list, so simply setting mob or obj vars
to null does not delete the object itself. Thank you.
*/
@@ -53,9 +53,9 @@ to null does not delete the object itself. Thank you.
stage++
if(stage != 1 && (prob(1) || (cure_present && prob(cure_chance))))
stage--
else if(stage <= 1 && ((prob(1) && src.curable) || (cure_present && prob(cure_chance))))
else if(stage <= 1 && ((prob(1) && curable) || (cure_present && prob(cure_chance))))
// world << "Cured as stage act"
src.cure()
cure()
return
return
@@ -83,7 +83,7 @@ to null does not delete the object itself. Thank you.
/mob/proc/contract_disease(var/datum/disease/virus, var/skip_this = 0, var/force_species_check=1)
// world << "Contract_disease called by [src] with virus [virus]"
if(src.stat >=2) return
if(stat >=2) return
if(force_species_check)
@@ -96,21 +96,21 @@ to null does not delete the object itself. Thank you.
if(fail) return
if(skip_this == 1)//be wary, it replaces the current disease...
if(src.virus)
src.virus.cure(0)
src.virus = new virus.type
src.virus.affected_mob = src
src.virus.strain_data = virus.strain_data.Copy()
src.virus.holder = src
if(virus)
virus.cure(0)
virus = new virus.type
virus.affected_mob = src
virus.strain_data = virus.strain_data.Copy()
virus.holder = src
if(prob(5))
src.virus.carrier = 1
virus.carrier = 1
return
if(src.virus) return
if(virus) return
if(virus.type in src.resistances)
if(virus.type in resistances)
if(prob(99.9)) return
src.resistances.Remove(virus.type)//the resistance is futile
resistances.Remove(virus.type)//the resistance is futile
/*
@@ -218,7 +218,7 @@ to null does not delete the object itself. Thank you.
passed = prob(Cl.permeability_coefficient*100+virus.permeability_mod)
//world << "Mask pass [passed]"
if(passed && virus.spread_type == AIRBORNE && src.internals)
if(passed && virus.spread_type == AIRBORNE && internals)
passed = (prob(50*virus.permeability_mod))
if(passed)
@@ -233,11 +233,11 @@ to null does not delete the object itself. Thank you.
if(istype(src:wear_suit, /obj/item/clothing/suit/bio_suit)) score += 10
if(istype(src:head, /obj/item/clothing/head/helmet/space)) score += 5
if(istype(src:head, /obj/item/clothing/head/bio_hood)) score += 5
if(src.wear_mask)
if(wear_mask)
score += 5
if((istype(src:wear_mask, /obj/item/clothing/mask) || istype(src:wear_mask, /obj/item/clothing/mask/surgical)) && !src.internal)
if((istype(src:wear_mask, /obj/item/clothing/mask) || istype(src:wear_mask, /obj/item/clothing/mask/surgical)) && !internal)
score += 5
if(src.internal)
if(internal)
score += 5
if(score > 20)
return
@@ -252,33 +252,33 @@ to null does not delete the object itself. Thank you.
else if(prob(15))
return
else*/
src.virus = new virus.type
src.virus.strain_data = virus.strain_data.Copy()
src.virus.affected_mob = src
src.virus.holder = src
virus = new virus.type
virus.strain_data = virus.strain_data.Copy()
virus.affected_mob = src
virus.holder = src
if(prob(5))
src.virus.carrier = 1
virus.carrier = 1
return
return
/datum/disease/proc/spread(var/source=null)
//world << "Disease [src] proc spread was called from holder [source]"
if(src.spread_type == SPECIAL)//does not spread
if(spread_type == SPECIAL)//does not spread
return
if(src.stage < src.contagious_period) //the disease is not contagious at this stage
if(stage < contagious_period) //the disease is not contagious at this stage
return
if(!source)//no holder specified
if(src.affected_mob)//no mob affected holder
source = src.affected_mob
if(affected_mob)//no mob affected holder
source = affected_mob
else //no source and no mob affected. Rogue disease. Break
return
var/check_range = AIRBORNE//defaults to airborne - range 4
if(src.spread_type != AIRBORNE)
if(spread_type != AIRBORNE)
check_range = 0
for(var/mob/living/carbon/M in oviewers(check_range, source))
@@ -288,27 +288,29 @@ to null does not delete the object itself. Thank you.
/datum/disease/proc/process()
if(!src.holder) return
if(!holder) return
if(prob(40))
src.spread(holder)
if(src.holder == src.affected_mob)
spread(holder)
if(holder == affected_mob)
if(affected_mob.stat < 2) //he's alive
src.stage_act()
stage_act()
else //he's dead.
if(src.spread_type!=SPECIAL)
src.spread_type = CONTACT_GENERAL
src.affected_mob = null
if(!src.affected_mob) //the virus is in inanimate obj
// world << "[src] longevity = [src.longevity]"
if(--src.longevity<=0)
src.cure(0)
if(spread_type!=SPECIAL)
spread_type = CONTACT_GENERAL
affected_mob = null
if(!affected_mob) //the virus is in inanimate obj
// world << "[src] longevity = [longevity]"
if(--longevity<=0)
cure(0)
return
/datum/disease/proc/cure(var/resistance=1)//if resistance = 0, the mob won't develop resistance to disease
if(resistance && src.affected_mob && !(src.type in affected_mob.resistances))
if(resistance && affected_mob && !(type in affected_mob.resistances))
// world << "Setting res to [src]"
var/type = "[src.type]"//copy the value, not create the reference to it, so when the object is deleted, the value remains.
affected_mob.resistances += text2path(type)
var/saved_type = "[type]"//copy the value, not create the reference to it, so when the object is deleted, the value remains.
affected_mob.resistances += text2path(saved_type)
if(istype(src, /datum/disease/alien_embryo))//Get rid of the flag.
affected_mob.alien_egg_flag = 0
// world << "Removing [src]"
spawn(0)
del(src)