-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

View File

@@ -120,11 +120,11 @@ var/list/diseases = typesof(/datum/disease) - /datum/disease
if(how_spread != AIRBORNE && how_spread != SPECIAL) if(how_spread != AIRBORNE && how_spread != SPECIAL)
check_range = 1 // everything else, like infect-on-contact things, only infect things on top of it check_range = 1 // everything else, like infect-on-contact things, only infect things on top of it
if(isturf(affected_mob.loc)) if(isturf(source.loc))
for(var/mob/living/carbon/M in oview(check_range, source)) for(var/mob/living/carbon/M in oview(check_range, source))
if(isturf(M.loc)) if(isturf(M.loc))
if(AStar(affected_mob.loc, M.loc, /turf/proc/AdjacentTurfs, /turf/proc/Distance, check_range)) if(AStar(source.loc, M.loc, /turf/proc/AdjacentTurfs, /turf/proc/Distance, check_range))
M.contract_disease(src) M.contract_disease(src, 0, 1, force_spread)
return return
@@ -140,6 +140,7 @@ var/list/diseases = typesof(/datum/disease) - /datum/disease
for(var/datum/disease/D in affected_mob.viruses) for(var/datum/disease/D in affected_mob.viruses)
if(D != src) if(D != src)
if(IsSame(D)) if(IsSame(D))
//error("Deleting [D.name] because it's the same as [src.name].")
del(D) // if there are somehow two viruses of the same kind in the system, delete the other one del(D) // if there are somehow two viruses of the same kind in the system, delete the other one
if(holder == affected_mob) if(holder == affected_mob)

View File

@@ -25,6 +25,7 @@ var/list/archive_diseases = list()
agent = "advance microbes" agent = "advance microbes"
max_stages = 5 max_stages = 5
spread = "Unknown" spread = "Unknown"
affected_species = list("Human","Monkey")
// NEW VARS // NEW VARS
@@ -47,12 +48,15 @@ var/list/archive_diseases = list()
if(!istype(D)) if(!istype(D))
D = null D = null
// Generate symptoms if we weren't given any. // Generate symptoms if we weren't given any.
if(!symptoms || !symptoms.len) if(!symptoms || !symptoms.len)
if(!D || !D.symptoms || !D.symptoms.len) if(!D || !D.symptoms || !D.symptoms.len)
symptoms = GenerateSymptoms() symptoms = GenerateSymptoms()
else else
symptoms = D.symptoms symptoms = D.symptoms
name = D.name name = D.name
Refresh(!copy) Refresh(!copy)
..(process, D) ..(process, D)
return return
@@ -69,9 +73,14 @@ var/list/archive_diseases = list()
// Compares type then ID. // Compares type then ID.
/datum/disease/advance/IsSame(var/datum/disease/advance/D) /datum/disease/advance/IsSame(var/datum/disease/advance/D)
if(!(istype(D, /datum/disease/advance))) if(!(istype(D, /datum/disease/advance)))
//error("Returning 0 because not same type.")
return 0 return 0
//error("Comparing [src.GetDiseaseID()] [D.GetDiseaseID()]")
if(src.GetDiseaseID() != D.GetDiseaseID()) if(src.GetDiseaseID() != D.GetDiseaseID())
//error("Returing 0")
return 0 return 0
//error("Returning 1")
return 1 return 1
// To add special resistances. // To add special resistances.
@@ -149,14 +158,14 @@ var/list/archive_diseases = list()
CRASH("We did not have any symptoms before generating properties.") CRASH("We did not have any symptoms before generating properties.")
return return
var/list/properties = list("resistance" = 1, "stealth" = 1, "stage_rate" = 1, "tansmittable" = 1, "severity" = 1) var/list/properties = list("resistance" = 1, "stealth" = 1, "stage_rate" = 1, "transmittable" = 1, "severity" = 1)
for(var/datum/symptom/S in symptoms) for(var/datum/symptom/S in symptoms)
properties["resistance"] += S.resistance properties["resistance"] += S.resistance
properties["stealth"] += S.stealth properties["stealth"] += S.stealth
properties["stage_rate"] += S.stage_speed properties["stage_rate"] += S.stage_speed
properties["tansmittable"] += S.transmittable properties["transmittable"] += S.transmittable
properties["severity"] = max(properties["severity"], S.level) // severity is based on the highest level symptom properties["severity"] = max(properties["severity"], S.level) // severity is based on the highest level symptom
return properties return properties
@@ -168,8 +177,8 @@ var/list/archive_diseases = list()
hidden = list( (properties["stealth"] > 2), (properties["stealth"] > 3) ) hidden = list( (properties["stealth"] > 2), (properties["stealth"] > 3) )
// The more symptoms we have, the less transmittable it is but some symptoms can make up for it. // The more symptoms we have, the less transmittable it is but some symptoms can make up for it.
SetSpread(max(BLOOD, min(round(properties["tansmittable"] - (symptoms.len / 2)), AIRBORNE))) SetSpread(max(BLOOD, min(properties["transmittable"] - symptoms.len, AIRBORNE)))
permeability_mod = 0.5 * properties["transmittable"] permeability_mod = round(0.5 * properties["transmittable"])
stage_prob = max(properties["stage_rate"], 1) stage_prob = max(properties["stage_rate"], 1)
SetSeverity(properties["severity"]) SetSeverity(properties["severity"])
GenerateCure(properties) GenerateCure(properties)
@@ -182,15 +191,15 @@ var/list/archive_diseases = list()
switch(spread_id) switch(spread_id)
if(NON_CONTAGIOUS) if(NON_CONTAGIOUS)
src.spread = "None" spread = "None"
if(SPECIAL) if(SPECIAL)
src.spread = "None" spread = "None"
if(CONTACT_GENERAL, CONTACT_HANDS, CONTACT_FEET) if(CONTACT_GENERAL, CONTACT_HANDS, CONTACT_FEET)
src.spread = "On contact" spread = "On contact"
if(AIRBORNE) if(AIRBORNE)
src.spread = "Airborne" spread = "Airborne"
if(BLOOD) if(BLOOD)
src.spread = "Blood" spread = "Blood"
spread_type = spread_id spread_type = spread_id
//world << "Setting spread type to [spread_id]/[spread]" //world << "Setting spread type to [spread_id]/[spread]"

View File

@@ -1,4 +1,5 @@
/datum/disease/advance/cold/New(var/process = 1, var/datum/disease/advance/D) /datum/disease/advance/cold/New(var/process = 1, var/datum/disease/advance/D, var/copy = 0)
if(!D)
name = "Cold" name = "Cold"
symptoms = list(new/datum/symptom/sneeze) symptoms = list(new/datum/symptom/sneeze)
..(process, D) ..(process, D, copy)

View File

@@ -1,4 +1,5 @@
/datum/disease/advance/flu/New(var/process = 1, var/datum/disease/advance/D) /datum/disease/advance/flu/New(var/process = 1, var/datum/disease/advance/D, var/copy = 0)
if(!D)
name = "Flu" name = "Flu"
symptoms = list(new/datum/symptom/cough) symptoms = list(new/datum/symptom/cough)
..(process, D) ..(process, D, copy)

View File

@@ -6,6 +6,7 @@ Confusion
Little bit hidden. Little bit hidden.
Lowers resistance. Lowers resistance.
Decreases stage speed. Decreases stage speed.
Not very transmittable.
Intense Level. Intense Level.
Bonus Bonus
@@ -20,8 +21,10 @@ Bonus
stealth = 1 stealth = 1
resistance = -1 resistance = -1
stage_speed = -3 stage_speed = -3
transmittable = 0
level = 4 level = 4
/datum/symptom/confusion/Activate(var/datum/disease/advance/A) /datum/symptom/confusion/Activate(var/datum/disease/advance/A)
..() ..()
if(prob(SYMPTOM_ACTIVATION_PROB)) if(prob(SYMPTOM_ACTIVATION_PROB))

View File

@@ -5,7 +5,8 @@ Coughing
Noticable. Noticable.
No Resistance. No Resistance.
Doesn't increase stage speed.. Doesn't increase stage speed.
Transmittable.
Low Level. Low Level.
BONUS BONUS
@@ -20,6 +21,7 @@ BONUS
stealth = -1 stealth = -1
resistance = 0 resistance = 0
stage_speed = 0 stage_speed = 0
transmittable = 2
level = 1 level = 1
/datum/symptom/cough/Activate(var/datum/disease/advance/A) /datum/symptom/cough/Activate(var/datum/disease/advance/A)

View File

@@ -6,6 +6,7 @@ Damage Converter
Little bit hidden. Little bit hidden.
Lowers resistance tremendously. Lowers resistance tremendously.
Decreases stage speed tremendously. Decreases stage speed tremendously.
Reduced transmittablity
Intense Level. Intense Level.
Bonus Bonus
@@ -18,8 +19,9 @@ Bonus
name = "Toxic Compensation" name = "Toxic Compensation"
stealth = 1 stealth = 1
resistance = -5 resistance = -4
stage_speed = -5 stage_speed = -4
transmittable = -2
level = 4 level = 4
/datum/symptom/damage_converter/Activate(var/datum/disease/advance/A) /datum/symptom/damage_converter/Activate(var/datum/disease/advance/A)

View File

@@ -6,6 +6,7 @@ Dizziness
Little bit hidden. Little bit hidden.
Lowers resistance considerably. Lowers resistance considerably.
Decreases stage speed. Decreases stage speed.
Reduced transmittability
Intense Level. Intense Level.
Bonus Bonus
@@ -20,6 +21,7 @@ Bonus
stealth = 1 stealth = 1
resistance = -2 resistance = -2
stage_speed = -3 stage_speed = -3
transmittable = -1
level = 4 level = 4
/datum/symptom/dizzy/Activate(var/datum/disease/advance/A) /datum/symptom/dizzy/Activate(var/datum/disease/advance/A)

View File

@@ -6,6 +6,7 @@ Fever
No change to hidden. No change to hidden.
Increases resistance. Increases resistance.
Increases stage speed. Increases stage speed.
Little transmittable.
Low level. Low level.
Bonus Bonus
@@ -20,6 +21,7 @@ Bonus
stealth = 0 stealth = 0
resistance = 3 resistance = 3
stage_speed = 3 stage_speed = 3
transmittable = 1
level = 2 level = 2
/datum/symptom/fever/Activate(var/datum/disease/advance/A) /datum/symptom/fever/Activate(var/datum/disease/advance/A)

View File

@@ -6,6 +6,7 @@ Hallucigen
Very noticable. Very noticable.
Lowers resistance considerably. Lowers resistance considerably.
Decreases stage speed. Decreases stage speed.
Reduced transmittable.
Critical Level. Critical Level.
Bonus Bonus
@@ -20,6 +21,7 @@ Bonus
stealth = -2 stealth = -2
resistance = -3 resistance = -3
stage_speed = -3 stage_speed = -3
transmittable = -1
level = 5 level = 5
/datum/symptom/hallucigen/Activate(var/datum/disease/advance/A) /datum/symptom/hallucigen/Activate(var/datum/disease/advance/A)

View File

@@ -5,7 +5,8 @@ Headache
Noticable. Noticable.
Highly resistant. Highly resistant.
Increases stage speed.. Increases stage speed.
Not transmittable.
Low Level. Low Level.
BONUS BONUS
@@ -15,15 +16,16 @@ BONUS
////////////////////////////////////// //////////////////////////////////////
*/ */
/datum/symptom/cough /datum/symptom/headache
name = "Headache" name = "Headache"
stealth = -1 stealth = -1
resistance = 4 resistance = 4
stage_speed = 2 stage_speed = 2
transmittable = 0
level = 1 level = 1
/datum/symptom/cough/Activate(var/datum/disease/advance/A) /datum/symptom/headache/Activate(var/datum/disease/advance/A)
..() ..()
if(prob(SYMPTOM_ACTIVATION_PROB)) if(prob(SYMPTOM_ACTIVATION_PROB))
var/mob/living/M = A.affected_mob var/mob/living/M = A.affected_mob

View File

@@ -5,7 +5,8 @@ Itching
Not noticable or unnoticable. Not noticable or unnoticable.
Resistant. Resistant.
Increases stage speed.. Increases stage speed.
Little transmittable.
Low Level. Low Level.
BONUS BONUS
@@ -21,6 +22,7 @@ BONUS
stealth = 0 stealth = 0
resistance = 3 resistance = 3
stage_speed = 3 stage_speed = 3
transmittable = 1
level = 1 level = 1
/datum/symptom/itching/Activate(var/datum/disease/advance/A) /datum/symptom/itching/Activate(var/datum/disease/advance/A)

View File

@@ -6,6 +6,7 @@ Sneezing
Very Noticable. Very Noticable.
Increases resistance. Increases resistance.
Doesn't increase stage speed. Doesn't increase stage speed.
Very transmittable.
Low Level. Low Level.
Bonus Bonus
@@ -21,6 +22,7 @@ Bonus
stealth = -2 stealth = -2
resistance = 2 resistance = 2
stage_speed = 0 stage_speed = 0
transmittable = 3
level = 1 level = 1
/datum/symptom/sneeze/Activate(var/datum/disease/advance/A) /datum/symptom/sneeze/Activate(var/datum/disease/advance/A)

View File

@@ -6,6 +6,7 @@ Vomiting
Very Very Noticable. Very Very Noticable.
Decreases resistance. Decreases resistance.
Doesn't increase stage speed. Doesn't increase stage speed.
Little transmittable.
Medium Level. Medium Level.
Bonus Bonus
@@ -24,6 +25,7 @@ Bonus
stealth = -2 stealth = -2
resistance = -1 resistance = -1
stage_speed = 0 stage_speed = 0
transmittable = 1
level = 3 level = 3
/datum/symptom/vomit/Activate(var/datum/disease/advance/A) /datum/symptom/vomit/Activate(var/datum/disease/advance/A)
@@ -57,6 +59,7 @@ Vomiting Blood
Very Very Noticable. Very Very Noticable.
Decreases resistance. Decreases resistance.
Decreases stage speed. Decreases stage speed.
Little transmittable.
Intense level. Intense level.
Bonus Bonus
@@ -74,6 +77,7 @@ Bonus
stealth = -2 stealth = -2
resistance = -1 resistance = -1
stage_speed = -1 stage_speed = -1
transmittable = 1
level = 4 level = 4
/datum/symptom/vomit/blood/Vomit(var/mob/living/M) /datum/symptom/vomit/blood/Vomit(var/mob/living/M)

View File

@@ -5,7 +5,8 @@ Weight Gain
Very Very Noticable. Very Very Noticable.
Decreases resistance. Decreases resistance.
Decreases stage speed.. Decreases stage speed.
Reduced transmittable.
Intense Level. Intense Level.
Bonus Bonus
@@ -20,6 +21,7 @@ Bonus
stealth = -3 stealth = -3
resistance = -3 resistance = -3
stage_speed = -2 stage_speed = -2
transmittable = -2
level = 4 level = 4
/datum/symptom/weight_gain/Activate(var/datum/disease/advance/A) /datum/symptom/weight_gain/Activate(var/datum/disease/advance/A)
@@ -44,6 +46,7 @@ Weight Loss
Very Very Noticable. Very Very Noticable.
Decreases resistance. Decreases resistance.
Decreases stage speed. Decreases stage speed.
Reduced Transmittable.
High level. High level.
Bonus Bonus
@@ -59,6 +62,7 @@ Bonus
stealth = -3 stealth = -3
resistance = -2 resistance = -2
stage_speed = -2 stage_speed = -2
transmittable = -2
level = 3 level = 3
/datum/symptom/weight_loss/Activate(var/datum/disease/advance/A) /datum/symptom/weight_loss/Activate(var/datum/disease/advance/A)
@@ -82,6 +86,7 @@ Weight Even
Very Noticable. Very Noticable.
Decreases resistance. Decreases resistance.
Decreases stage speed. Decreases stage speed.
Reduced transmittable.
High level. High level.
Bonus Bonus
@@ -98,6 +103,7 @@ Bonus
stealth = -3 stealth = -3
resistance = -2 resistance = -2
stage_speed = -2 stage_speed = -2
transmittable = -2
level = 4 level = 4
/datum/symptom/weight_loss/Activate(var/datum/disease/advance/A) /datum/symptom/weight_loss/Activate(var/datum/disease/advance/A)

View File

@@ -208,6 +208,13 @@
Weaken(3) Weaken(3)
emote("collapse") 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)
if (radiation > 100) if (radiation > 100)
radiation = 100 radiation = 100

View File

@@ -70,6 +70,10 @@
if(prob(25)) if(prob(25))
message += " OLE!" 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. //Ninja mask obscures text and voice if set to do so.
//Would make it more global but it's sort of ninja specific. //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") if(istype(src.wear_mask, /obj/item/clothing/mask/gas/voice/space_ninja)&&src.wear_mask:voice=="Unknown")

View File

@@ -143,6 +143,58 @@
else else
message = "<B>[src]</B> looks." message = "<B>[src]</B> looks."
m_type = 1 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 else
src << text("Invalid Emote: []", act) src << text("Invalid Emote: []", act)
if ((message && src.stat == 0)) if ((message && src.stat == 0))

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) /mob/proc/has_disease(var/datum/disease/virus)
for(var/datum/disease/D in viruses) for(var/datum/disease/D in viruses)
if(D.IsSame(virus)) if(D.IsSame(virus))
//error("[D.name]/[D.type] is the same as [virus.name]/[virus.type]")
return 1 return 1
return 0 return 0
// This proc has some procs that should be extracted from it. I believe we can develop some helper procs from it - Rockdtben // 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) /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]" //world << "Contract_disease called by [src] with virus [virus]"
if(stat >=2) if(stat >=2)
//world << "He's dead jim."
return return
if(istype(virus, /datum/disease/advance)) if(istype(virus, /datum/disease/advance))
//world << "It's an advance virus."
var/datum/disease/advance/A = virus var/datum/disease/advance/A = virus
if(A.GetDiseaseID() in resistances) if(A.GetDiseaseID() in resistances)
//world << "It resisted us!"
return return
else else
if(src.resistances.Find(virus.type)) if(src.resistances.Find(virus.type))
//world << "Normal virus and resisted"
return return
@@ -37,10 +42,10 @@ Put (mob/proc)s here that are in dire need of a code cleanup.
if(fail) return if(fail) return
if(skip_this == 1) if(skip_this == 1)
//world << "infectin"
//if(src.virus) < -- this used to replace the current disease. Not anymore! //if(src.virus) < -- this used to replace the current disease. Not anymore!
//src.virus.cure(0) //src.virus.cure(0)
var/datum/disease/v = new virus.type(1, virus, 0)
var/datum/disease/v = new virus.type(D = virus)
src.viruses += v src.viruses += v
v.affected_mob = src v.affected_mob = src
v.strain_data = v.strain_data.Copy() 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)) if(v.can_carry && prob(5))
v.carrier = 1 v.carrier = 1
return return
//world << "Not skipping."
//if(src.virus) // //if(src.virus) //
//return // //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 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/obj/item/clothing/Cl = null
var/passed = 1 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/hands_ch
var/feet_ch var/feet_ch
switch(virus.spread_type) if(spread_type == -5)
spread_type = virus.spread_type
switch(spread_type)
if(CONTACT_HANDS) if(CONTACT_HANDS)
head_ch = 0 head_ch = 0
body_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) passed = prob(Cl.permeability_coefficient*100+virus.permeability_mod)
//world << "Mask pass [passed]" //world << "Mask pass [passed]"
if(passed && virus.spread_type == AIRBORNE && internals) if(passed && spread_type == AIRBORNE && internals)
passed = (prob(50*virus.permeability_mod)) passed = (prob(50*virus.permeability_mod))
if(passed) if(passed)
@@ -192,7 +200,8 @@ Put (mob/proc)s here that are in dire need of a code cleanup.
else if(prob(15)) else if(prob(15))
return return
else*/ else*/
var/datum/disease/v = new virus.type
var/datum/disease/v = new virus.type(1, virus, 0)
src.viruses += v src.viruses += v
v.affected_mob = src v.affected_mob = src
v.strain_data = v.strain_data.Copy() v.strain_data = v.strain_data.Copy()

View File

@@ -100,14 +100,14 @@ datum
var/datum/reagent/blood/self = src var/datum/reagent/blood/self = src
src = null src = null
for(var/datum/disease/D in self.data["viruses"]) 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. // 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) if(method == TOUCH)
M.contract_disease(virus) M.contract_disease(D)
else //injected else //injected
M.contract_disease(virus, 1, 0) M.contract_disease(D, 1, 0)
/* /*

View File

@@ -49,6 +49,18 @@ should be listed in the changelog upon commit tho. Thanks. -->
<!-- To take advantage of the pretty new format (well it was new when I wrote this anyway), open the "add-to-changelog.html" file in any browser and add the stuff and then generate the html code and paste it here --> <!-- To take advantage of the pretty new format (well it was new when I wrote this anyway), open the "add-to-changelog.html" file in any browser and add the stuff and then generate the html code and paste it here -->
<div class="commit sansserif">
<h2 class="date">09 November 2012</h2>
<h3 class="author">Giacom updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Cyborgs can now ping and beep! (Say "*beep" and "*ping") Thanks to Rahlzel for the proposal.</li>
<li class="tweak">HULKS WILL NOW TALK IN ALL CAPS AND WILL RANDOMLY SAY HULK THINGS. Thanks to Brotemis for the proposal.</li>
<li class="wip">Sorry for the inconveniences with advance diseases. They are working much better now!</li>
<li class="imageadd">An improved APC sprite by TankNut!</li>
</ul>
</div>
<div class="commit sansserif"> <div class="commit sansserif">
<h2 class="date">05 November 2012</h2> <h2 class="date">05 November 2012</h2>
<h3 class="author">Giacom updated:</h3> <h3 class="author">Giacom updated:</h3>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB