Damage system changes:

- Environmental heat damage increased by a factor of 1.5 (meaning space and fires cause 50% more damage)
- Being without oxygen causes from 0 to 12 damage instead of 0 to 7, depending on how much oxygen is in the atmosphere. Means that if the room's just began to leak there will be no change in the oxygen damage you take compared to the damage prior to this update, but space does 12 damage per tick instead of 7.
- Fire suit now protects up to a temperature of 10000 degrees, which is the temperature at which floors start to melt. A toxin + oxy fire usually generates temperatures around 8000-9000 degrees. It used to protect up to 4500 degrees.
- Added a standard spacesuit loadout to the admin select equipment menu (LJ's request)

I've tested all the changed numbers a lot and they seem to work well. Space and fires are a lot more deadly, while normal circumstances remain at the same level as they are now.

I've also researched the bug which allowed you to spend infinity on tiles in space. The problem is that turfs don't process temperature properly, but even after spending 4 hours looking into it (I wish I was joking), I wasn't able to determine where this gets updated on the lowest of levels.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1896 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
baloh.matevz
2011-07-20 21:37:05 +00:00
parent ce62286c70
commit 044ab25cf8
2 changed files with 12 additions and 6 deletions

View File

@@ -399,7 +399,7 @@
gas_transfer_coefficient = 0.90
permeability_coefficient = 0.50
heat_transfer_coefficient = 0.01
protective_temperature = 4500
protective_temperature = 10000
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/extinguisher)
slowdown = 1.3

View File

@@ -1,3 +1,5 @@
#define HUMAN_MAX_OXYLOSS 12 //Defines how much oxyloss humans can get per tick. No air applies this value.
/mob/living/carbon/human
var
oxygen_alert = 0
@@ -317,7 +319,7 @@
if(!breath || (breath.total_moles() == 0))
if(reagents.has_reagent("inaprovaline"))
return
oxyloss += 7
oxyloss += HUMAN_MAX_OXYLOSS
oxygen_alert = max(oxygen_alert, 1)
@@ -345,10 +347,10 @@
spawn(0) emote("gasp")
if(O2_pp > 0)
var/ratio = safe_oxygen_min/O2_pp
oxyloss += min(5*ratio, 7) // Don't fuck them up too fast (space only does 7 after all!)
oxyloss += min(5*ratio, HUMAN_MAX_OXYLOSS) // Don't fuck them up too fast (space only does HUMAN_MAX_OXYLOSS after all!)
oxygen_used = breath.oxygen*ratio/6
else
oxyloss += 7
oxyloss += HUMAN_MAX_OXYLOSS
oxygen_alert = max(oxygen_alert, 1)
/*else if (O2_pp > safe_oxygen_max) // Too much oxygen (commented this out for now, I'll deal with pressure damage elsewhere I suppose)
spawn(0) emote("cough")
@@ -356,7 +358,7 @@
oxyloss += 5*ratio
oxygen_used = breath.oxygen*ratio/6
oxygen_alert = max(oxygen_alert, 1)*/
else // We're in safe limits
else // We're in safe limits
oxyloss = max(oxyloss-5, 0)
oxygen_used = breath.oxygen/6
oxygen_alert = 0
@@ -423,6 +425,9 @@
loc_temp = environment.temperature
var/thermal_protection = get_thermal_protection()
//world << "Loc temp: [loc_temp] - Body temp: [bodytemperature] - Fireloss: [fireloss] - Thermal protection: [get_thermal_protection()] - Fire protection: [thermal_protection + add_fire_protection(loc_temp)]"
if(stat != 2 && abs(bodytemperature - 310.15) < 50)
bodytemperature += adjust_body_temperature(bodytemperature, 310.15, thermal_protection)
if(loc_temp < 310.15) // a cold place -> add in cold protection
@@ -431,7 +436,6 @@
thermal_protection += add_fire_protection(loc_temp)
bodytemperature += adjust_body_temperature(bodytemperature, loc_temp, 1/thermal_protection)
// lets give them a fair bit of leeway so they don't just start dying
//as that may be realistic but it's no fun
if((bodytemperature > (T0C + 50)) || (bodytemperature < (T0C + 10)) && (!istype(loc, /obj/machinery/atmospherics/unary/cryo_cell))) // Last bit is just disgusting, i know
@@ -584,6 +588,8 @@
if(mutantrace == "plant")
discomfort *= 3 //I don't like magic numbers. I'll make mutantraces a datum with vars sometime later. -- Urist
else
discomfort *= 1.5 //Dangercon 2011 - Upping damage by use of magic numbers - Errorage
switch(body_part)
if(HEAD)