Prep stuff for Erro's big medic update

•Sleepers are now OP and heal every kind of damage by the press of a simple button
•Cloning through the cloner 25-30% faster. Or so I think, I can't test out cloning by myself, but my change is safe enough. Message me directly if any bugs occur.
•Dermaline: New healing drug that's gonna be better than kelotane once Erro nerfs it. Right now it's just a bit more powerful.
•No more reagent metabolising or having healing/damaging affects on corpses. Again, this is a kind of a radical change. PM me if any serious bugs occur.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1763 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
polyxenitopalidou@gmail.com
2011-07-04 18:31:31 +00:00
parent 6a0f796428
commit b06d2c2c52
7 changed files with 5680 additions and 5592 deletions
+28 -1
View File
@@ -911,6 +911,8 @@ datum
description = "Lexorin temporarily stops respiration. Causes tissue damage."
reagent_state = LIQUID
on_mob_life(var/mob/living/M as mob)
if(M.stat == 2.0)
return
if(!M) M = holder.my_atom
if(prob(33))
M.take_organ_damage(1, 0)
@@ -925,17 +927,34 @@ datum
description = "Kelotane is a drug used to treat burns."
reagent_state = LIQUID
on_mob_life(var/mob/living/M as mob)
if(M.stat == 2.0)
return
if(!M) M = holder.my_atom
M:heal_organ_damage(0,2)
..()
return
dermaline
name = "Dermaline"
id = "dermaline"
description = "Dermaline is the next step in burn medication. Works twice as good as kelotane and enables the body to restore even the direst heat-damaged tissue."
reagent_state = LIQUID
on_mob_life(var/mob/living/M as mob)
if(M.stat == 2.0) //THE GUY IS **DEAD**! BEREFT OF ALL LIFE HE RESTS IN PEACE etc etc. He does NOT metabolise shit anymore, god DAMN
return
if(!M) M = holder.my_atom
M:heal_organ_damage(0,3)
..()
return
dexalin
name = "Dexalin"
id = "dexalin"
description = "Dexalin is used in the treatment of oxygen deprivation."
reagent_state = LIQUID
on_mob_life(var/mob/living/M as mob)
if(M.stat == 2.0)
return //See above, down and around. --Agouri
if(!M) M = holder.my_atom
M:oxyloss = max(M:oxyloss-2, 0)
if(holder.has_reagent("lexorin"))
@@ -949,6 +968,8 @@ datum
description = "Dexalin Plus is used in the treatment of oxygen deprivation. Its highly effective."
reagent_state = LIQUID
on_mob_life(var/mob/living/M as mob)
if(M.stat == 2.0)
return
if(!M) M = holder.my_atom
M:oxyloss = 0
if(holder.has_reagent("lexorin"))
@@ -962,6 +983,8 @@ datum
description = "Tricordrazine is a highly potent stimulant, originally derived from cordrazine. Can be used to treat a wide range of injuries."
reagent_state = LIQUID
on_mob_life(var/mob/living/M as mob)
if(M.stat == 2.0)
return
if(!M) M = holder.my_atom
if(M:oxyloss && prob(40)) M:oxyloss--
if(M:bruteloss && prob(40)) M:heal_organ_damage(1,0)
@@ -976,7 +999,7 @@ datum
description = "It's magic. We don't have to explain it."
reagent_state = LIQUID
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
if(!M) M = holder.my_atom ///This can even heal dead people.
M:cloneloss = 0
M:oxyloss = 0
M:radiation = 0
@@ -1074,6 +1097,8 @@ datum
description = "Arithrazine is an unstable medication used for the most extreme cases of radiation poisoning."
reagent_state = LIQUID
on_mob_life(var/mob/living/M as mob)
if(M.stat == 2.0)
return //See above, down and around. --Agouri
if(!M) M = holder.my_atom
M:radiation = max(M:radiation-7,0)
if(M:toxloss) M:toxloss--
@@ -1113,6 +1138,8 @@ datum
description = "Bicaridine is an analgesic medication and can be used to treat blunt trauma."
reagent_state = LIQUID
on_mob_life(var/mob/living/M as mob)
if(M.stat == 2.0)
return
if(!M) M = holder.my_atom
M:heal_organ_damage(2,0)
..()
+7
View File
@@ -178,6 +178,13 @@ datum
required_catalysts = list("plasma" = 5)
result_amount = 1
dermaline
name = "Dermaline"
id = "dermaline"
result = "dermaline"
required_reagents = list("oxygen" = 1, "phosphorus" = 1, "kelotane" = 1)
result_amount = 3
dexalinp
name = "Dexalin Plus"
id = "dexalinp"
+2 -2
View File
@@ -543,7 +543,7 @@
src.occupant.paralysis = 4
//Slowly get that clone healed and finished.
src.occupant.cloneloss = max(src.occupant.cloneloss-1, 0)
src.occupant.cloneloss = max(src.occupant.cloneloss-2, 0)
//Premature clones may have brain damage.
src.occupant.brainloss = max(src.occupant.brainloss-1, 0)
@@ -553,7 +553,7 @@
src.occupant.reagents.add_reagent("inaprovaline", 60)
//Also heal some oxyloss ourselves because inaprovaline is so bad at preventing it!!
src.occupant.oxyloss = max(src.occupant.oxyloss-2, 0)
src.occupant.oxyloss = max(src.occupant.oxyloss-4, 0)
use_power(7500) //This might need tweaking.
return
+44 -9
View File
@@ -59,9 +59,12 @@
dat += text("[]\t-Toxin Content %: []</FONT><BR>", (occupant.toxloss < 60 ? "<font color='blue'>" : "<font color='red'>"), occupant.toxloss)
dat += text("[]\t-Burn Severity %: []</FONT><BR>", (occupant.fireloss < 60 ? "<font color='blue'>" : "<font color='red'>"), occupant.fireloss)
dat += text("<HR>Paralysis Summary %: [] ([] seconds left!)<BR>", occupant.paralysis, round(occupant.paralysis / 4))
dat += text("Rejuvenation chemicals: [] units<BR>", occupant.reagents.get_reagent_amount("inaprovaline"))
dat += text("Inaprovaline units: [] units<BR>", occupant.reagents.get_reagent_amount("inaprovaline"))
dat += text("Soporific: [] units<BR>", occupant.reagents.get_reagent_amount("stoxin"))
dat += text("<HR><A href='?src=\ref[];refresh=1'>Refresh meter readings each second</A><BR><A href='?src=\ref[];rejuv=1'>Inject Rejuvenators</A><BR><A href='?src=\ref[];stox=1'>Inject Soporific</A>", src, src, src)
dat += text("Dermaline: [] units<BR>", occupant.reagents.get_reagent_amount("dermaline"))
dat += text("Bicaridine: [] units<BR>", occupant.reagents.get_reagent_amount("bicaridine"))
dat += text("Dexalin: [] units<BR>", occupant.reagents.get_reagent_amount("dexalin"))
dat += text("<HR><A href='?src=\ref[];refresh=1'>Refresh meter readings each second</A><BR><A href='?src=\ref[];inap=1'>Inject Inaprovaline</A><BR><A href='?src=\ref[];stox=1'>Inject Soporific</A><BR><A href='?src=\ref[];derm=1'>Inject Dermaline</A><BR><A href='?src=\ref[];bic=1'>Inject Bicaridine</A><BR><A href='?src=\ref[];dex=1'>Inject Dexalin</A>", src, src, src, src, src, src)
else
dat += "The sleeper is empty."
dat += text("<BR><BR><A href='?src=\ref[];mach_close=sleeper'>Close</A>", user)
@@ -75,10 +78,16 @@
if ((usr.contents.Find(src) || ((get_dist(src, usr) <= 1) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon/ai)))
usr.machine = src
if (src.connected)
if (href_list["rejuv"])
src.connected.inject(usr)
if (href_list["inap"])
src.connected.inject_inap(usr)
if (href_list["stox"])
src.connected.inject_stox(usr)
if (href_list["derm"])
src.connected.inject_dermaline(usr)
if (href_list["bic"])
src.connected.inject_bicaridine(usr)
if (href_list["dex"])
src.connected.inject_dexalin(usr)
if (href_list["refresh"])
src.updateUsrDialog()
src.add_fingerprint(usr)
@@ -239,24 +248,50 @@
src.icon_state = "sleeper_0"
return
/obj/machinery/sleeper/proc/inject(mob/user as mob)
/obj/machinery/sleeper/proc/inject_inap(mob/user as mob)
if (src.occupant)
if (src.occupant.reagents.get_reagent_amount("inaprovaline") + 30 < 60)
if (src.occupant.reagents.get_reagent_amount("inaprovaline") + 30 <= 60)
src.occupant.reagents.add_reagent("inaprovaline", 30)
user << text("Occupant now has [] units of rejuvenation in his/her bloodstream.", src.occupant.reagents.get_reagent_amount("inaprovaline"))
user << text("Occupant now has [] units of Inaprovaline in his/her bloodstream.", src.occupant.reagents.get_reagent_amount("inaprovaline"))
else
user << "No occupant!"
return
/obj/machinery/sleeper/proc/inject_stox(mob/user as mob)
if (src.occupant)
if (src.occupant.reagents.get_reagent_amount("stoxin") + 20 < 40)
if (src.occupant.reagents.get_reagent_amount("stoxin") + 20 <= 40)
src.occupant.reagents.add_reagent("stoxin", 20)
user << text("Occupant now has [] units of soporific in his/her bloodstream.", src.occupant.reagents.get_reagent_amount("stoxin"))
user << text("Occupant now has [] units of soporifics in his/her bloodstream.", src.occupant.reagents.get_reagent_amount("stoxin"))
else
user << "No occupant!"
return
/obj/machinery/sleeper/proc/inject_dermaline(mob/user as mob)
if (src.occupant)
if (src.occupant.reagents.get_reagent_amount("dermaline") + 20 <= 40)
src.occupant.reagents.add_reagent("dermaline", 20)
user << text("Occupant now has [] units of Dermaline in his/her bloodstream.", src.occupant.reagents.get_reagent_amount("dermaline"))
else
user << "No occupant!"
return
/obj/machinery/sleeper/proc/inject_bicaridine(mob/user as mob) //GRAND AGOURI MARKER
if (src.occupant)
if (src.occupant.reagents.get_reagent_amount("bicaridine") + 10 <= 20)
src.occupant.reagents.add_reagent("bicaridine", 10)
user << text("Occupant now has [] units of Bicaridine in his/her bloodstream.", src.occupant.reagents.get_reagent_amount("bicaridine"))
else
user << "No occupant!"
return
/obj/machinery/sleeper/proc/inject_dexalin(mob/user as mob) //GRAND AGOURI MARKER
if (src.occupant)
if (src.occupant.reagents.get_reagent_amount("dexalin") + 20 <= 40)
src.occupant.reagents.add_reagent("dexalin", 20)
user << text("Occupant now has [] units of Dexalin in his/her bloodstream.", src.occupant.reagents.get_reagent_amount("dexalin"))
else
user << "No occupant!"
return
/obj/machinery/sleeper/proc/check(mob/user as mob)
if (src.occupant)