- Removed the changes done to space suits in r4497. They were aimed at fixing Issue 827, which had the symptoms of randomly getting hurt in space while wearing a space suit. Sieve assumed it was due to not having high temperature protection, but it was the opposite.

- The problem was actually down to an ancient bug, which wrongly calculates the temperature of tiles with very little gas on them - tiles exposed to space. Space suits protect down to a temperature of 2.0K, space is 2.7K, which I assumed to be the lowest temperature anywhere. Unfortunately I forgot about this bug at the time, which can cause the gas temperature on tiles with little air to even hit negative kelvins (Nobel prize, plox). This happens relatively often, each floor tile that meets the criteria experiences this about once every 50 ticks and if you're standing on it when it happens, your cold protection will be 0%, because the temperature on the tile will be lower than 2.0K. Everything will be fine in the next tick cold-protection-wise, but your body temperature is already lowered to under the damage threshold by then.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4498 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
baloh.matevz
2012-08-19 22:58:17 +00:00
parent 307a951566
commit dd6288f26a
3 changed files with 1 additions and 6 deletions

View File

@@ -109,8 +109,6 @@ BLIND // can't see anything
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE
cold_protection = HEAD cold_protection = HEAD
min_cold_protection_temperature = SPACE_HELMET_MIN_COLD_PROTECITON_TEMPERATURE min_cold_protection_temperature = SPACE_HELMET_MIN_COLD_PROTECITON_TEMPERATURE
heat_protection = HEAD
max_heat_protection_temperature = SPACE_HELMET_MAX_HEAT_PROTECITON_TEMPERATURE
/obj/item/clothing/suit/space /obj/item/clothing/suit/space
name = "Space suit" name = "Space suit"
@@ -128,8 +126,6 @@ BLIND // can't see anything
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS
min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECITON_TEMPERATURE min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECITON_TEMPERATURE
heat_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS
max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECITON_TEMPERATURE
//Under clothing //Under clothing

View File

@@ -636,6 +636,7 @@
if(COLD_RESISTANCE in mutations) if(COLD_RESISTANCE in mutations)
return 1 //Fully protected from the cold. return 1 //Fully protected from the cold.
temperature = max(temperature, 2.7) //There is an occasional bug where the temperature is miscalculated in ares with a small amount of gas on them, so this is necessary to ensure that that bug does not affect this calculation. Space's temperature is 2.7K and most suits that are intended to protect against any cold, protect down to 2.0K.
var/thermal_protection_flags = get_cold_protection_flags(temperature) var/thermal_protection_flags = get_cold_protection_flags(temperature)
var/thermal_protection = 0.0 var/thermal_protection = 0.0

View File

@@ -35,9 +35,7 @@
#define BODYTEMP_HEAT_DIVISOR 6 //Similar to the BODYTEMP_AUTORECOVERY_DIVISOR, but this is the divisor which is applied at the stage that follows autorecovery. This is the divisor which comes into play when the human's loc temperature is higher than their body temperature. Make it lower to gain bodytemp faster. #define BODYTEMP_HEAT_DIVISOR 6 //Similar to the BODYTEMP_AUTORECOVERY_DIVISOR, but this is the divisor which is applied at the stage that follows autorecovery. This is the divisor which comes into play when the human's loc temperature is higher than their body temperature. Make it lower to gain bodytemp faster.
#define SPACE_HELMET_MIN_COLD_PROTECITON_TEMPERATURE 2.0 //what min_cold_protection_temperature is set to for space-helmet quality headwear. MUST NOT BE 0. #define SPACE_HELMET_MIN_COLD_PROTECITON_TEMPERATURE 2.0 //what min_cold_protection_temperature is set to for space-helmet quality headwear. MUST NOT BE 0.
#define SPACE_HELMET_MAX_HEAT_PROTECITON_TEMPERATURE 600 //same as a normal helmet
#define SPACE_SUIT_MIN_COLD_PROTECITON_TEMPERATURE 2.0 //what min_cold_protection_temperature is set to for space-suit quality jumpsuits or suits. MUST NOT BE 0. #define SPACE_SUIT_MIN_COLD_PROTECITON_TEMPERATURE 2.0 //what min_cold_protection_temperature is set to for space-suit quality jumpsuits or suits. MUST NOT BE 0.
#define SPACE_SUIT_MAX_HEAT_PROTECITON_TEMPERATURE 600 //same as armor
#define FIRESUIT_MAX_HEAT_PROTECITON_TEMPERATURE 15000 //what max_heat_protection_temperature is set to for firesuit quality headwear. MUST NOT BE 0. #define FIRESUIT_MAX_HEAT_PROTECITON_TEMPERATURE 15000 //what max_heat_protection_temperature is set to for firesuit quality headwear. MUST NOT BE 0.
#define FIRE_HELMET_MAX_HEAT_PROTECITON_TEMPERATURE 15000 //for fire helmet quality items (red and white hardhats) #define FIRE_HELMET_MAX_HEAT_PROTECITON_TEMPERATURE 15000 //for fire helmet quality items (red and white hardhats)
#define HELMET_MIN_COLD_PROTECITON_TEMPERATURE 160 //For normal helmets #define HELMET_MIN_COLD_PROTECITON_TEMPERATURE 160 //For normal helmets