mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2026-01-06 07:22:42 +00:00
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:
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user