- Tweaked cryo healing speed

- Added crawl-trough-vent travel time
- Tweaked placement of utility belt contents window & fixed one related small bug
- Added metabolization for several reagents 
- Other small tweaks

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@273 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
panurgomatic
2010-10-13 13:12:25 +00:00
parent 7115768551
commit 1909ee2e91
9 changed files with 5861 additions and 5813 deletions
@@ -7,7 +7,7 @@
level = 1 level = 1
var/id_tag var/id_tag = null
var/frequency = 1439 var/frequency = 1439
var/datum/radio_frequency/radio_connection var/datum/radio_frequency/radio_connection
@@ -104,7 +104,10 @@
process() process()
..() ..()
broadcast_status() if(!(stat & (NOPOWER|BROKEN)))
broadcast_status()
else
return 0
if(!on) if(!on)
return 0 return 0
@@ -184,7 +187,7 @@
if(panic) if(panic)
on = 1 on = 1
scrubbing = 0 scrubbing = 0
volume_rate = 500 volume_rate = 2000
else else
scrubbing = 1 scrubbing = 1
volume_rate = 120 volume_rate = 120
+9 -1
View File
@@ -638,6 +638,8 @@ datum
on_mob_life(var/mob/M) on_mob_life(var/mob/M)
M:drowsyness = max(0,M:drowsyness-5) M:drowsyness = max(0,M:drowsyness-5)
M.bodytemperature = max(310, M.bodytemperature-5) //310 is the normal bodytemp. 310.055 M.bodytemperature = max(310, M.bodytemperature-5) //310 is the normal bodytemp. 310.055
..()
return
plasma plasma
name = "Plasma" name = "Plasma"
@@ -850,7 +852,7 @@ datum
if(M:bruteloss) M:bruteloss = max(0, M:bruteloss-3) if(M:bruteloss) M:bruteloss = max(0, M:bruteloss-3)
if(M:fireloss) M:fireloss = max(0, M:fireloss-3) if(M:fireloss) M:fireloss = max(0, M:fireloss-3)
if(M:toxloss) M:toxloss = max(0, M:toxloss-3) if(M:toxloss) M:toxloss = max(0, M:toxloss-3)
..()
return return
spaceacillin spaceacillin
@@ -1168,6 +1170,8 @@ datum
M:sleeping = 0 M:sleeping = 0
M.bodytemperature = min(310, M.bodytemperature+5) //Copy-paste from Coffee, derp M.bodytemperature = min(310, M.bodytemperature+5) //Copy-paste from Coffee, derp
M.make_jittery(5) M.make_jittery(5)
..()
return
cognac cognac
@@ -1505,6 +1509,8 @@ datum
if(data >= 50 && prob(33)) if(data >= 50 && prob(33))
if (!M.confused) M:confused = 1 if (!M.confused) M:confused = 1
M.confused += 2 M.confused += 2
..()
return
manly_dorf manly_dorf
name = "The Manly Dorf" name = "The Manly Dorf"
@@ -1522,3 +1528,5 @@ datum
if(data >= 50 && prob(33)) if(data >= 50 && prob(33))
if (!M.confused) M:confused = 1 if (!M.confused) M:confused = 1
M.confused += 3 M.confused += 3
..()
return
+4 -4
View File
@@ -42,13 +42,13 @@ obj/machinery/air_sensor
if(output>4) if(output>4)
var/total_moles = air_sample.total_moles() var/total_moles = air_sample.total_moles()
if(output&4) if(output&4)
signal.data["oxygen"] = round(100*air_sample.oxygen/total_moles) signal.data["oxygen"] = round(100*air_sample.oxygen/total_moles,0.1)
if(output&8) if(output&8)
signal.data["toxins"] = round(100*air_sample.toxins/total_moles) signal.data["toxins"] = round(100*air_sample.toxins/total_moles,0.1)
if(output&16) if(output&16)
signal.data["nitrogen"] = round(100*air_sample.nitrogen/total_moles) signal.data["nitrogen"] = round(100*air_sample.nitrogen/total_moles,0.1)
if(output&32) if(output&32)
signal.data["carbon_dioxide"] = round(100*air_sample.carbon_dioxide/total_moles) signal.data["carbon_dioxide"] = round(100*air_sample.carbon_dioxide/total_moles,0.1)
radio_connection.post_signal(src, signal) radio_connection.post_signal(src, signal)
+9 -6
View File
@@ -73,9 +73,9 @@
if(src.occupant.health <= -100) if(src.occupant.health <= -100)
health_text = "<FONT color=red>Dead</FONT>" health_text = "<FONT color=red>Dead</FONT>"
else if(src.occupant.health < 0) else if(src.occupant.health < 0)
health_text = "<FONT color=red>[src.occupant.health]</FONT>" health_text = "<FONT color=red>[round(src.occupant.health,0.1)]</FONT>"
else else
health_text = "[src.occupant.health]" health_text = "[round(src.occupant.health,0.1)]"
if(air_contents.temperature > T0C) if(air_contents.temperature > T0C)
temp_text = "<FONT color=red>[air_contents.temperature]</FONT>" temp_text = "<FONT color=red>[air_contents.temperature]</FONT>"
else if(air_contents.temperature > 225) else if(air_contents.temperature > 225)
@@ -90,7 +90,7 @@
<B>Current cell temperature:</B> [temp_text]K<BR> <B>Current cell temperature:</B> [temp_text]K<BR>
<B>Cryo status:</B> [ src.on ? "<A href='?src=\ref[src];start=1'>Off</A> <B>On</B>" : "<B>Off</B> <A href='?src=\ref[src];start=1'>On</A>"]<BR> <B>Cryo status:</B> [ src.on ? "<A href='?src=\ref[src];start=1'>Off</A> <B>On</B>" : "<B>Off</B> <A href='?src=\ref[src];start=1'>On</A>"]<BR>
[beaker_text]<BR><BR> [beaker_text]<BR><BR>
<B>Current occupant:</B> [src.occupant ? "<BR>Name: [src.occupant]<BR>Health: [health_text]<BR>Oxygen deprivation: [src.occupant.oxyloss]<BR>Brute damage: [src.occupant.bruteloss]<BR>Fire damage: [src.occupant.fireloss]<BR>Toxin damage: [src.occupant.toxloss]<BR>Body temperature: [src.occupant.bodytemperature]" : "<FONT color=red>None</FONT>"]<BR> <B>Current occupant:</B> [src.occupant ? "<BR>Name: [src.occupant]<BR>Health: [health_text]<BR>Oxygen deprivation: [round(src.occupant.oxyloss,0.1)]<BR>Brute damage: [round(src.occupant.bruteloss,0.1)]<BR>Fire damage: [round(src.occupant.fireloss,0.1)]<BR>Toxin damage: [round(src.occupant.toxloss,0.1)]<BR>Body temperature: [src.occupant.bodytemperature]" : "<FONT color=red>None</FONT>"]<BR>
"} "}
@@ -181,10 +181,11 @@
if(occupant.oxyloss) occupant.oxyloss = max(0, occupant.oxyloss - 1) if(occupant.oxyloss) occupant.oxyloss = max(0, occupant.oxyloss - 1)
else else
occupant.oxyloss -= 1 occupant.oxyloss -= 1
//severe damage should heal waaay slower without proper chemicals
if(occupant.bodytemperature < 225) if(occupant.bodytemperature < 225)
if(occupant.bruteloss) occupant.bruteloss = max(0, occupant.bruteloss - 1) if(occupant.bruteloss) occupant.bruteloss = max(0, occupant.bruteloss - min(1, 20/occupant.bruteloss))
if(occupant.fireloss) occupant.fireloss = max(0, occupant.fireloss - 1) if(occupant.fireloss) occupant.fireloss = max(0, occupant.fireloss - min(1, 20/occupant.fireloss))
if(occupant.toxloss) occupant.toxloss = max(0, occupant.toxloss - 1) if(occupant.toxloss) occupant.toxloss = max(0, occupant.toxloss - min(1, 20/occupant.toxloss))
if(beaker && (next_trans == 0)) if(beaker && (next_trans == 0))
beaker:reagents.trans_to(occupant, 1, 10) beaker:reagents.trans_to(occupant, 1, 10)
beaker:reagents.reaction(occupant) beaker:reagents.reaction(occupant)
@@ -225,6 +226,7 @@
verb verb
move_eject() move_eject()
set name = "Eject occupant"
set src in oview(1) set src in oview(1)
if (usr.stat != 0) if (usr.stat != 0)
return return
@@ -233,6 +235,7 @@
return return
move_inside() move_inside()
set name = "Move Inside"
set src in oview(1) set src in oview(1)
if (usr.stat != 0 || stat & (NOPOWER|BROKEN)) if (usr.stat != 0 || stat & (NOPOWER|BROKEN))
return return
+2 -1
View File
@@ -31,7 +31,8 @@
return return
for(var/mob/O in viewers(M, null))//echo message for(var/mob/O in viewers(M, null))//echo message
O.show_message(text("\blue [] [] to [] eyes", (O == user ? "You direct" : text("[] directs", user)), src, (M==user ? "your" : text("[]", M))),1) if ((O.client && !(O.blinded )))
O.show_message("\blue [(O==user?"You direct":"[user]")] [src] to [(M==user? "your":"[M]")] eyes", 1)
if(istype(M, /mob/living/carbon/human) || istype(M, /mob/living/carbon/monkey))//robots and aliens are unaffected if(istype(M, /mob/living/carbon/human) || istype(M, /mob/living/carbon/monkey))//robots and aliens are unaffected
if(M.stat > 1 || M.sdisabilities & 1)//mob is dead or fully blind if(M.stat > 1 || M.sdisabilities & 1)//mob is dead or fully blind
+10 -9
View File
@@ -65,17 +65,18 @@
return return
/obj/item/weapon/storage/proc/orient2hud(mob/user as mob) /obj/item/weapon/storage/proc/orient2hud(mob/user as mob)
if (src == user.l_hand) if (src == user.l_hand)
src.orient_objs(3, 11, 3, 4) src.orient_objs(3, 11, 3, 4)
else if(src == user.r_hand)
src.orient_objs(1, 11, 1, 4)
else if(src == user.back)
src.orient_objs(4, 10, 4, 3)
else if(istype(user, /mob/living/carbon/human))//only humans have belts
var/mob/living/carbon/human/H = user
if(src == H.belt)
src.orient_objs(1, 3, 8, 3)
else else
if (src == user.r_hand) src.orient_objs(7, 8, 10, 7)
src.orient_objs(1, 11, 1, 4)
else
if (src == user.back)
src.orient_objs(4, 10, 4, 3)
else
src.orient_objs(7, 8, 10, 7)
return return
/obj/item/weapon/storage/attackby(obj/item/weapon/W as obj, mob/user as mob) /obj/item/weapon/storage/attackby(obj/item/weapon/W as obj, mob/user as mob)
@@ -135,7 +136,7 @@
if (M.s_active == src) if (M.s_active == src)
src.close(M) src.close(M)
//Foreach goto(76) //Foreach goto(76)
src.orient2hud(user) src.orient2hud(user)
src.add_fingerprint(user) src.add_fingerprint(user)
return return
@@ -235,7 +235,8 @@ Also perhaps only queens can do that?
var/vent_found = 0 var/vent_found = 0
for(var/obj/machinery/atmospherics/unary/vent_pump/v in range(1,src)) for(var/obj/machinery/atmospherics/unary/vent_pump/v in range(1,src))
if(!v.welded) if(!v.welded)
vent_found = 1 vent_found = v
if(!vent_found) if(!vent_found)
src << "You must be standing on or beside an open air vent to enter it." src << "You must be standing on or beside an open air vent to enter it."
return return
@@ -260,7 +261,7 @@ Also perhaps only queens can do that?
if(src.loc != startloc) if(src.loc != startloc)
src << "You need to remain still while entering a vent." src << "You need to remain still while entering a vent."
return return
var/obj/target_vent = vents[selection_position] var/obj/machinery/atmospherics/unary/vent_pump/target_vent = vents[selection_position]
if(target_vent) if(target_vent)
for(var/mob/O in viewers(src, null)) for(var/mob/O in viewers(src, null))
O.show_message(text("\green <B>[src] scrambles into the ventillation ducts!</B>"), 1) O.show_message(text("\green <B>[src] scrambles into the ventillation ducts!</B>"), 1)
@@ -268,9 +269,24 @@ Also perhaps only queens can do that?
for(var/obj/alien/facehugger/F in view(3, src)) for(var/obj/alien/facehugger/F in view(3, src))
if(istype(F, /obj/alien/facehugger)) if(istype(F, /obj/alien/facehugger))
huggers.Add(F) huggers.Add(F)
src.loc = target_vent.loc
src.loc = vent_found
for(var/obj/alien/facehugger/F in huggers) for(var/obj/alien/facehugger/F in huggers)
F.loc = src.loc F.loc = vent_found
var/travel_time = get_dist(src.loc, target_vent.loc)
spawn(round(travel_time/2))//give sound warning to anyone near the target vent
if(!target_vent.welded)
for(var/mob/O in hearers(target_vent, null))
O.show_message("You hear something crawling trough the ventilation pipes.")
spawn(travel_time)
if(target_vent.welded)//the went can be welded while alien scrolled through the list or travelled.
target_vent = vent_found //travel back. No additional time required.
src << "\red The vent you were heading to appears to be welded."
src.loc = target_vent.loc
for(var/obj/alien/facehugger/F in huggers)
F.loc = src.loc
/mob/living/carbon/alien/humanoid/verb/corrode(obj/O as obj in view(1)) // -- TLE /mob/living/carbon/alien/humanoid/verb/corrode(obj/O as obj in view(1)) // -- TLE
set name = "Spit Corrosive Acid (200)" set name = "Spit Corrosive Acid (200)"
+17 -2
View File
@@ -20,6 +20,9 @@
p.lic { p.lic {
font-size: 6pt; font-size: 6pt;
} }
ul.sec {
list-style: none;
}
</style> </style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head>
@@ -41,6 +44,19 @@
<strong>Thanks to:</strong> CDK Station devs, GoonStation devs and original SpaceStation developers <strong>Thanks to:</strong> CDK Station devs, GoonStation devs and original SpaceStation developers
<h4>Changelog</h4> <h4>Changelog</h4>
<h5>Wednesday, October 13, 14:12(GMT)</h5>
<ul>
<li>Crawling through vents (alien) now takes time. The farther destination vent is, the more time it takes.</li>
<li>Cryo cell healing ability depends on wound severity. Grave wounds will heal slower. Use proper chemicals to speed up the process.</li>
<li>Added sink to the medbay. </li>
<li>Bugfixes:
<ul class="sec">
<li>- Some reagents were not metabolized, remaining in mob indefinitely (this includes Space Cola, Cryoxadone and cocktails Kahlua, Irish Cream and The Manly Dorf).</li>
<li>- Fixed placement bug with container contents window. Also, utility belt window now doesn't obscure view.</li>
</ul>
</li>
</ul>
<h5>Sunday, October 10, 14:25(GMT)</h5> <h5>Sunday, October 10, 14:25(GMT)</h5>
<ul> <ul>
<li>Scrubbers in the area can be controlled by air alarms. Air alarm interface must be unlocked with an ID card (minimum access level - atmospheric technician), usable only by humans and AI. Panic syphon drains the air from affected room (simple syphoning does too, but much slower).</li> <li>Scrubbers in the area can be controlled by air alarms. Air alarm interface must be unlocked with an ID card (minimum access level - atmospheric technician), usable only by humans and AI. Panic syphon drains the air from affected room (simple syphoning does too, but much slower).</li>
@@ -54,10 +70,9 @@
<li>Air scrubber, vent and air alarm added to library</li> <li>Air scrubber, vent and air alarm added to library</li>
<li>Air alarm added to brig</li> <li>Air alarm added to brig</li>
<li>Air scrubbers in Toxins turned on, set to filter toxins</li> <li>Air scrubbers in Toxins turned on, set to filter toxins</li>
<li>Empty tanks, portable air pumps and similar can be filled with air in Aft Primary Hallway, just connect them to the port. Target pressure is set by Mixed Air Supply console in Atmospherics (defaults to 4000kPa). <li>Empty tanks, portable air pumps and similar can be filled with air in Aft Primary Hallway, just connect them to the port. Target pressure is set by Mixed Air Supply console in Atmospherics (defaults to 4000kPa).</li>
</ul> </ul>
<h5>Wednesday, October 6, 18:36</h5> <h5>Wednesday, October 6, 18:36</h5>
<ul> <ul>
<li>Fixed the Librarian's suit - its worn iconstate wasn't set.</li> <li>Fixed the Librarian's suit - its worn iconstate wasn't set.</li>
+5782 -5781
View File
File diff suppressed because it is too large Load Diff