- 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

View File

@@ -7,7 +7,7 @@
level = 1
var/id_tag
var/id_tag = null
var/frequency = 1439
var/datum/radio_frequency/radio_connection
@@ -104,7 +104,10 @@
process()
..()
broadcast_status()
if(!(stat & (NOPOWER|BROKEN)))
broadcast_status()
else
return 0
if(!on)
return 0
@@ -184,7 +187,7 @@
if(panic)
on = 1
scrubbing = 0
volume_rate = 500
volume_rate = 2000
else
scrubbing = 1
volume_rate = 120

View File

@@ -638,6 +638,8 @@ datum
on_mob_life(var/mob/M)
M:drowsyness = max(0,M:drowsyness-5)
M.bodytemperature = max(310, M.bodytemperature-5) //310 is the normal bodytemp. 310.055
..()
return
plasma
name = "Plasma"
@@ -850,7 +852,7 @@ datum
if(M:bruteloss) M:bruteloss = max(0, M:bruteloss-3)
if(M:fireloss) M:fireloss = max(0, M:fireloss-3)
if(M:toxloss) M:toxloss = max(0, M:toxloss-3)
..()
return
spaceacillin
@@ -1168,6 +1170,8 @@ datum
M:sleeping = 0
M.bodytemperature = min(310, M.bodytemperature+5) //Copy-paste from Coffee, derp
M.make_jittery(5)
..()
return
cognac
@@ -1505,6 +1509,8 @@ datum
if(data >= 50 && prob(33))
if (!M.confused) M:confused = 1
M.confused += 2
..()
return
manly_dorf
name = "The Manly Dorf"
@@ -1521,4 +1527,6 @@ datum
M.stuttering += 4
if(data >= 50 && prob(33))
if (!M.confused) M:confused = 1
M.confused += 3
M.confused += 3
..()
return

View File

@@ -42,13 +42,13 @@ obj/machinery/air_sensor
if(output>4)
var/total_moles = air_sample.total_moles()
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)
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)
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)
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)

View File

@@ -73,9 +73,9 @@
if(src.occupant.health <= -100)
health_text = "<FONT color=red>Dead</FONT>"
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
health_text = "[src.occupant.health]"
health_text = "[round(src.occupant.health,0.1)]"
if(air_contents.temperature > T0C)
temp_text = "<FONT color=red>[air_contents.temperature]</FONT>"
else if(air_contents.temperature > 225)
@@ -90,7 +90,7 @@
<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>
[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)
else
occupant.oxyloss -= 1
//severe damage should heal waaay slower without proper chemicals
if(occupant.bodytemperature < 225)
if(occupant.bruteloss) occupant.bruteloss = max(0, occupant.bruteloss - 1)
if(occupant.fireloss) occupant.fireloss = max(0, occupant.fireloss - 1)
if(occupant.toxloss) occupant.toxloss = max(0, occupant.toxloss - 1)
if(occupant.bruteloss) occupant.bruteloss = max(0, occupant.bruteloss - min(1, 20/occupant.bruteloss))
if(occupant.fireloss) occupant.fireloss = max(0, occupant.fireloss - min(1, 20/occupant.fireloss))
if(occupant.toxloss) occupant.toxloss = max(0, occupant.toxloss - min(1, 20/occupant.toxloss))
if(beaker && (next_trans == 0))
beaker:reagents.trans_to(occupant, 1, 10)
beaker:reagents.reaction(occupant)
@@ -225,6 +226,7 @@
verb
move_eject()
set name = "Eject occupant"
set src in oview(1)
if (usr.stat != 0)
return
@@ -233,6 +235,7 @@
return
move_inside()
set name = "Move Inside"
set src in oview(1)
if (usr.stat != 0 || stat & (NOPOWER|BROKEN))
return
@@ -281,4 +284,4 @@
return
/datum/data/function/proc/display()
return
return

View File

@@ -31,7 +31,8 @@
return
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(M.stat > 1 || M.sdisabilities & 1)//mob is dead or fully blind

View File

@@ -65,17 +65,18 @@
return
/obj/item/weapon/storage/proc/orient2hud(mob/user as mob)
if (src == user.l_hand)
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
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
src.orient_objs(7, 8, 10, 7)
src.orient_objs(7, 8, 10, 7)
return
/obj/item/weapon/storage/attackby(obj/item/weapon/W as obj, mob/user as mob)
@@ -135,7 +136,7 @@
if (M.s_active == src)
src.close(M)
//Foreach goto(76)
src.orient2hud(user)
src.orient2hud(user)
src.add_fingerprint(user)
return

View File

@@ -235,7 +235,8 @@ Also perhaps only queens can do that?
var/vent_found = 0
for(var/obj/machinery/atmospherics/unary/vent_pump/v in range(1,src))
if(!v.welded)
vent_found = 1
vent_found = v
if(!vent_found)
src << "You must be standing on or beside an open air vent to enter it."
return
@@ -260,7 +261,7 @@ Also perhaps only queens can do that?
if(src.loc != startloc)
src << "You need to remain still while entering a vent."
return
var/obj/target_vent = vents[selection_position]
var/obj/machinery/atmospherics/unary/vent_pump/target_vent = vents[selection_position]
if(target_vent)
for(var/mob/O in viewers(src, null))
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))
if(istype(F, /obj/alien/facehugger))
huggers.Add(F)
src.loc = target_vent.loc
src.loc = vent_found
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
set name = "Spit Corrosive Acid (200)"