-Advance diseases were given a good bug fixing based on reports and runtimes. Including the diseases spreading correctly.

=Proposals=

-Cyborgs can now beep and ping.
-Hulks will now talk in all upper-case and will spurt out random hulk phrases and flex.

=Sprites=

-Improved APC sprite by TankNut.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5031 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
giacomand@gmail.com
2012-11-09 21:12:59 +00:00
parent 4746f20f35
commit d71cc8f3d6
22 changed files with 166 additions and 41 deletions
@@ -208,6 +208,13 @@
Weaken(3)
emote("collapse")
if ((HULK in mutations) && health >= 25)
if (prob(7))
switch(pick(1,2))
if(1)
say(pick("HGH!", "PROTEIN!", "OH YEAH!", "HULK SMASH!", "HULK NOT LIKE BOOKS!", "HNNNNNNNNNGGGGGGH!", ))
if(2)
emote("flexes")
if (radiation)
if (radiation > 100)
radiation = 100
@@ -70,6 +70,10 @@
if(prob(25))
message += " OLE!"
if ((HULK in mutations) && health >= 25)
if(copytext(message, 1, 2) != "*")
message = uppertext(message) //because I don't know how to code properly in getting vars from other files -Bro
//Ninja mask obscures text and voice if set to do so.
//Would make it more global but it's sort of ninja specific.
if(istype(src.wear_mask, /obj/item/clothing/mask/gas/voice/space_ninja)&&src.wear_mask:voice=="Unknown")
@@ -143,6 +143,58 @@
else
message = "<B>[src]</B> looks."
m_type = 1
if("beep")
var/M = null
if(param)
for (var/mob/A in view(null, null))
if (param == A.name)
M = A
break
if(!M)
param = null
if (param)
message = "<B>[src]</B> beeps at [param]."
else
message = "<B>[src]</B> beeps."
playsound(src.loc, 'twobeep.ogg', 50, 0)
m_type = 1
if("ping")
var/M = null
if(param)
for (var/mob/A in view(null, null))
if (param == A.name)
M = A
break
if(!M)
param = null
if (param)
message = "<B>[src]</B> pings at [param]."
else
message = "<B>[src]</B> pings."
playsound(src.loc, 'ping.ogg', 50, 0)
m_type = 1
if("buzz")
var/M = null
if(param)
for (var/mob/A in view(null, null))
if (param == A.name)
M = A
break
if(!M)
param = null
if (param)
message = "<B>[src]</B> buzzes at [param]."
else
message = "<B>[src]</B> buzzes."
playsound(src.loc, 'buzz-sigh.ogg', 50, 0)
m_type = 1
else
src << text("Invalid Emote: []", act)
if ((message && src.stat == 0))
+18 -9
View File
@@ -6,20 +6,25 @@ Put (mob/proc)s here that are in dire need of a code cleanup.
/mob/proc/has_disease(var/datum/disease/virus)
for(var/datum/disease/D in viruses)
if(D.IsSame(virus))
//error("[D.name]/[D.type] is the same as [virus.name]/[virus.type]")
return 1
return 0
// This proc has some procs that should be extracted from it. I believe we can develop some helper procs from it - Rockdtben
/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]"
/mob/proc/contract_disease(var/datum/disease/virus, var/skip_this = 0, var/force_species_check=1, var/spread_type = -5)
//world << "Contract_disease called by [src] with virus [virus]"
if(stat >=2)
//world << "He's dead jim."
return
if(istype(virus, /datum/disease/advance))
//world << "It's an advance virus."
var/datum/disease/advance/A = virus
if(A.GetDiseaseID() in resistances)
//world << "It resisted us!"
return
else
if(src.resistances.Find(virus.type))
//world << "Normal virus and resisted"
return
@@ -37,10 +42,10 @@ Put (mob/proc)s here that are in dire need of a code cleanup.
if(fail) return
if(skip_this == 1)
//world << "infectin"
//if(src.virus) < -- this used to replace the current disease. Not anymore!
//src.virus.cure(0)
var/datum/disease/v = new virus.type(D = virus)
var/datum/disease/v = new virus.type(1, virus, 0)
src.viruses += v
v.affected_mob = src
v.strain_data = v.strain_data.Copy()
@@ -48,7 +53,7 @@ Put (mob/proc)s here that are in dire need of a code cleanup.
if(v.can_carry && prob(5))
v.carrier = 1
return
//world << "Not skipping."
//if(src.virus) //
//return //
@@ -67,7 +72,7 @@ Put (mob/proc)s here that are in dire need of a code cleanup.
*/
if(prob(15/virus.permeability_mod)) return //the power of immunity compels this disease! but then you forgot resistances
//world << "past prob()"
var/obj/item/clothing/Cl = null
var/passed = 1
@@ -77,7 +82,10 @@ Put (mob/proc)s here that are in dire need of a code cleanup.
var/hands_ch
var/feet_ch
switch(virus.spread_type)
if(spread_type == -5)
spread_type = virus.spread_type
switch(spread_type)
if(CONTACT_HANDS)
head_ch = 0
body_ch = 0
@@ -158,7 +166,7 @@ Put (mob/proc)s here that are in dire need of a code cleanup.
passed = prob(Cl.permeability_coefficient*100+virus.permeability_mod)
//world << "Mask pass [passed]"
if(passed && virus.spread_type == AIRBORNE && internals)
if(passed && spread_type == AIRBORNE && internals)
passed = (prob(50*virus.permeability_mod))
if(passed)
@@ -192,7 +200,8 @@ Put (mob/proc)s here that are in dire need of a code cleanup.
else if(prob(15))
return
else*/
var/datum/disease/v = new virus.type
var/datum/disease/v = new virus.type(1, virus, 0)
src.viruses += v
v.affected_mob = src
v.strain_data = v.strain_data.Copy()
+4 -4
View File
@@ -100,14 +100,14 @@ datum
var/datum/reagent/blood/self = src
src = null
for(var/datum/disease/D in self.data["viruses"])
var/datum/disease/virus = new D.type(D)
//var/datum/disease/virus = new D.type(0, D, 1)
// We don't spread.
if(virus.spread_type == SPECIAL || virus.spread_type == NON_CONTAGIOUS) continue
if(D.spread_type == SPECIAL || D.spread_type == NON_CONTAGIOUS) continue
if(method == TOUCH)
M.contract_disease(virus)
M.contract_disease(D)
else //injected
M.contract_disease(virus, 1, 0)
M.contract_disease(D, 1, 0)
/*