Tweaks values, reduces oxyloss while in soft vacuum or protection

This commit is contained in:
atermonera
2018-12-20 21:38:34 -08:00
parent aa411a4eb8
commit 8df0f8cc75
11 changed files with 46 additions and 22 deletions
+4 -4
View File
@@ -20,8 +20,8 @@
name = "firefighter helmet"
heat_protection = HEAD
max_heat_protection_temperature = FIRE_HELMET_MAX_HEAT_PROTECTION_TEMPERATURE
min_pressure_protection = 0.8* ONE_ATMOSPHERE
max_pressure_protection = 50 * ONE_ATMOSPHERE
min_pressure_protection = 0.2* ONE_ATMOSPHERE
max_pressure_protection = 20 * ONE_ATMOSPHERE
/obj/item/clothing/head/hardhat/white
@@ -29,8 +29,8 @@
name = "sleek hard hat"
heat_protection = HEAD
max_heat_protection_temperature = FIRE_HELMET_MAX_HEAT_PROTECTION_TEMPERATURE
min_pressure_protection = 0.8* ONE_ATMOSPHERE
max_pressure_protection = 50 * ONE_ATMOSPHERE
min_pressure_protection = 0.2* ONE_ATMOSPHERE
max_pressure_protection = 20 * ONE_ATMOSPHERE
/obj/item/clothing/head/hardhat/dblue
name = "blue hard hat"
+1 -1
View File
@@ -84,7 +84,7 @@
var/vision_restriction
var/offline_vision_restriction = 1 // 0 - none, 1 - welder vision, 2 - blind. Maybe move this to helmets.
var/airtight = 1 //If set, will adjust AIRTIGHT flag and pressure protections on components. Otherwise it should leave them untouched.
var/rigsuit_max_pressure = 20 * ONE_ATMOSPHERE // Max pressure the rig protects against when sealed
var/rigsuit_max_pressure = 10 * ONE_ATMOSPHERE // Max pressure the rig protects against when sealed
var/rigsuit_min_pressure = 0 // Min pressure the rig protects against when sealed
var/emp_protection = 0
@@ -16,6 +16,8 @@
helm_type = /obj/item/clothing/head/helmet/space/rig/light
boot_type = /obj/item/clothing/shoes/magboots/rig/light
glove_type = /obj/item/clothing/gloves/gauntlets/rig/light
rigsuit_max_pressure = 5 * ONE_ATMOSPHERE // Max pressure the rig protects against when sealed
rigsuit_min_pressure = 0 // Min pressure the rig protects against when sealed
/obj/item/clothing/suit/space/rig/light
name = "suit"
@@ -74,6 +74,8 @@
offline_vision_restriction = 2
emp_protection = -20
siemens_coefficient= 0.75
rigsuit_max_pressure = 15 * ONE_ATMOSPHERE // Max pressure the rig protects against when sealed
rigsuit_min_pressure = 0 // Min pressure the rig protects against when sealed
helm_type = /obj/item/clothing/head/helmet/space/rig/industrial
@@ -155,7 +157,8 @@
offline_slowdown = 0
offline_vision_restriction = 0
siemens_coefficient= 0.75
rigsuit_max_pressure = 100 * ONE_ATMOSPHERE // Comparable to atmos suit
rigsuit_max_pressure = 20 * ONE_ATMOSPHERE // Max pressure the rig protects against when sealed
rigsuit_min_pressure = 0 // Min pressure the rig protects against when sealed
helm_type = /obj/item/clothing/head/helmet/space/rig/ce
glove_type = /obj/item/clothing/gloves/gauntlets/rig/ce
@@ -15,7 +15,7 @@
cold_protection = HEAD
min_cold_protection_temperature = SPACE_HELMET_MIN_COLD_PROTECTION_TEMPERATURE
min_pressure_protection = 0 * ONE_ATMOSPHERE
max_pressure_protection = 20* ONE_ATMOSPHERE
max_pressure_protection = 2 * ONE_ATMOSPHERE
siemens_coefficient = 0.9
species_restricted = list("exclude",SPECIES_DIONA)
preserve_item = 1
@@ -67,7 +67,7 @@
cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS
min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE
min_pressure_protection = 0 * ONE_ATMOSPHERE
max_pressure_protection = 20* ONE_ATMOSPHERE
max_pressure_protection = 2 * ONE_ATMOSPHERE
siemens_coefficient = 0.9
species_restricted = list("exclude",SPECIES_DIONA)
preserve_item = 1
@@ -6,6 +6,8 @@
icon_state = "rig0-engineering"
item_state_slots = list(slot_r_hand_str = "eng_helm", slot_l_hand_str = "eng_helm")
armor = list(melee = 40, bullet = 5, laser = 20, energy = 5, bomb = 35, bio = 100, rad = 80)
min_pressure_protection = 0 * ONE_ATMOSPHERE
max_pressure_protection = 15 * ONE_ATMOSPHERE
/obj/item/clothing/suit/space/void/engineering
name = "engineering voidsuit"
@@ -15,6 +17,8 @@
slowdown = 1
armor = list(melee = 40, bullet = 5, laser = 20, energy = 5, bomb = 35, bio = 100, rad = 80)
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit,/obj/item/weapon/storage/bag/ore,/obj/item/device/t_scanner,/obj/item/weapon/pickaxe, /obj/item/weapon/rcd)
min_pressure_protection = 0 * ONE_ATMOSPHERE
max_pressure_protection = 15 * ONE_ATMOSPHERE
//Engineering HAZMAT Voidsuit
@@ -219,8 +223,8 @@
armor = list(melee = 40, bullet = 5, laser = 20, energy = 5, bomb = 35, bio = 100, rad = 50)
max_heat_protection_temperature = FIRE_HELMET_MAX_HEAT_PROTECTION_TEMPERATURE
light_overlay = "helmet_light_dual"
min_pressure_protection = 0 * ONE_ATMOSPHERE
max_pressure_protection = 100* ONE_ATMOSPHERE
min_pressure_protection = 0 * ONE_ATMOSPHERE
max_pressure_protection = 20* ONE_ATMOSPHERE
/obj/item/clothing/suit/space/void/atmos
name = "atmos voidsuit"
@@ -229,8 +233,8 @@
item_state_slots = list(slot_r_hand_str = "atmos_voidsuit", slot_l_hand_str = "atmos_voidsuit")
armor = list(melee = 40, bullet = 5, laser = 20, energy = 5, bomb = 35, bio = 100, rad = 50)
max_heat_protection_temperature = FIRESUIT_MAX_HEAT_PROTECTION_TEMPERATURE
min_pressure_protection = 0 * ONE_ATMOSPHERE
max_pressure_protection = 100* ONE_ATMOSPHERE
min_pressure_protection = 0 * ONE_ATMOSPHERE
max_pressure_protection = 20* ONE_ATMOSPHERE
//Atmospherics Surplus Voidsuit
@@ -7,6 +7,8 @@
heat_protection = HEAD
armor = list(melee = 40, bullet = 5, laser = 20,energy = 5, bomb = 35, bio = 100, rad = 20)
max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECTION_TEMPERATURE
min_pressure_protection = 0 * ONE_ATMOSPHERE
max_pressure_protection = 10 * ONE_ATMOSPHERE
// flags_inv = HIDEEARS|BLOCKHAIR
@@ -37,6 +39,8 @@
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit)
heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECTION_TEMPERATURE
min_pressure_protection = 0 * ONE_ATMOSPHERE
max_pressure_protection = 10 * ONE_ATMOSPHERE
species_restricted = list("Human", SPECIES_SKRELL, "Promethean")
sprite_sheets_refit = list(
+2 -2
View File
@@ -24,8 +24,8 @@
heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
max_heat_protection_temperature = FIRESUIT_MAX_HEAT_PROTECTION_TEMPERATURE
cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS
min_pressure_protection = 0.8 * ONE_ATMOSPHERE
max_pressure_protection = 50 * ONE_ATMOSPHERE
min_pressure_protection = 0.2 * ONE_ATMOSPHERE
max_pressure_protection = 20 * ONE_ATMOSPHERE
/obj/item/clothing/suit/fire/firefighter
+16 -5
View File
@@ -139,12 +139,12 @@
if(head && head.max_pressure_protection != null && head.min_pressure_protection != null)
// Pressure is too high
if(head.max_pressure_protection < pressure)
// Protection scales down from 100% at the boundary to 0% at 10% in excess of the boundary
pressure_adjustment_coefficient += round((pressure - head.max_pressure_protection) / (head.max_pressure_protection/10))
// Protection scales down from 100% at the boundary to 0% at 20% in excess of the boundary
pressure_adjustment_coefficient += round((pressure - head.max_pressure_protection) / (head.max_pressure_protection/20))
// Pressure is too low
if(head.min_pressure_protection > pressure)
pressure_adjustment_coefficient += round((head.min_pressure_protection - pressure) / (head.min_pressure_protection/10))
pressure_adjustment_coefficient += round((head.min_pressure_protection - pressure) / (head.min_pressure_protection/20))
else
// Missing key protection
@@ -720,8 +720,19 @@
else
if( !(COLD_RESISTANCE in mutations))
take_overall_damage(brute=LOW_PRESSURE_DAMAGE, used_weapon = "Low Pressure")
if(getOxyLoss() < 55) // 11 OxyLoss per 4 ticks when wearing internals; unconsciousness in 16 ticks, roughly half a minute
adjustOxyLoss(4) // 16 OxyLoss per 4 ticks when no internals present; unconsciousness in 13 ticks, roughly twenty seconds
if(getOxyLoss() < 55) // 12 OxyLoss per 4 ticks when wearing internals; unconsciousness in 16 ticks, roughly half a minute
var/pressure_dam = 3 // 16 OxyLoss per 4 ticks when no internals present; unconsciousness in 13 ticks, roughly twenty seconds
// (Extra 1 oxyloss from failed breath)
// Being in higher pressure decreases the damage taken, down to a minimum of (species.hazard_low_pressure / ONE_ATMOSPHERE) at species.hazard_low_pressure
pressure_dam *= (ONE_ATMOSPHERE - adjusted_pressure) / ONE_ATMOSPHERE
if(wear_suit && wear_suit.min_pressure_protection && head && head.min_pressure_protection)
var/protection = max(wear_suit.min_pressure_protection, head.min_pressure_protection) // Take the weakest protection
pressure_dam *= (protection) / (ONE_ATMOSPHERE) // Divide by ONE_ATMOSPHERE to get a fractional protection
// Stronger protection (Closer to 0) results in a smaller fraction
// Firesuits (Min protection = 0.2 atmospheres) decrease oxyloss to 1/5
adjustOxyLoss(pressure_dam)
pressure_alert = -2
else
pressure_alert = -1
@@ -7,7 +7,7 @@
update_icon_define = "icons/mob/spacesuit.dmi"
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 100)
max_pressure_protection = 5 * ONE_ATMOSPHERE // Not very good protection, but if an anomaly starts doing gas stuff you're not screwed
min_pressure_protection = 0.7 * ONE_ATMOSPHERE
min_pressure_protection = 0.4 * ONE_ATMOSPHERE
/obj/item/clothing/head/bio_hood/anomaly
name = "Anomaly hood"
@@ -16,7 +16,7 @@
item_state = "engspace_helmet"
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 100)
max_pressure_protection = 5 * ONE_ATMOSPHERE // Not very good protection, but if an anomaly starts doing gas stuff you're not screwed
min_pressure_protection = 0.7 * ONE_ATMOSPHERE
min_pressure_protection = 0.4 * ONE_ATMOSPHERE
/obj/item/clothing/suit/space/anomaly
name = "Excavation suit"
+1 -1
View File
@@ -2585,7 +2585,7 @@
#include "code\ZAS\Zone.dm"
#include "interface\interface.dm"
#include "interface\skin.dmf"
#include "maps\southern_cross\southern_cross.dm"
#include "maps\example\example.dm"
#include "maps\submaps\space_submaps\space.dm"
#include "maps\submaps\surface_submaps\mountains\mountains.dm"
#include "maps\submaps\surface_submaps\mountains\mountains_areas.dm"