mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-22 04:22:39 +01:00
Bombsuit and Specialised Armour Tweaks (#585)
An overhaul of the EOD suit to make it more believable and suitable for purpose, plus a little tweak to riot/bulletproof/ablative suits rscadd: "Bomb suit and hood are now far more robust, and resistant to all types of damage" rscadd: "Bomb suits now protect all bodyparts except the hands" tweak: "Bomb suit slowdown significantly increased" rscadd: "Bomb suits now cause the wearer to gradually overheat and will eventually cause heatstroke, their materials are very bad for dissipating bodyheat" rscadd: "Bomb hoods now restrict peripheral vision like welding goggles, but do not protect your eyes from light" tweak: "Bomb suits and bomb hoods are now too large to fit in a backpack" rscadd: "Bulletproof, ablative and riot suits are no longer cripplingly overspecialised, their resistance to the non-primary damage types has been increased"
This commit is contained in:
@@ -90,7 +90,7 @@
|
||||
item_state = "swat_suit"
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
|
||||
slowdown = 1
|
||||
armor = list(melee = 80, bullet = 10, laser = 10, energy = 10, bomb = 0, bio = 0, rad = 0)
|
||||
armor = list(melee = 80, bullet = 20, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0)
|
||||
flags_inv = HIDEJUMPSUIT
|
||||
siemens_coefficient = 0.5
|
||||
pocket_slots = 4//Fullbody suit, so more slots
|
||||
@@ -102,7 +102,7 @@
|
||||
icon_state = "bulletproof"
|
||||
item_state = "armor"
|
||||
blood_overlay_type = "armor"
|
||||
armor = list(melee = 10, bullet = 80, laser = 10, energy = 10, bomb = 0, bio = 0, rad = 0)
|
||||
armor = list(melee = 25, bullet = 80, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0)
|
||||
siemens_coefficient = 0.7
|
||||
|
||||
/obj/item/clothing/suit/armor/laserproof
|
||||
@@ -111,7 +111,7 @@
|
||||
icon_state = "armor_reflec"
|
||||
item_state = "armor_reflec"
|
||||
blood_overlay_type = "armor"
|
||||
armor = list(melee = 10, bullet = 10, laser = 80, energy = 50, bomb = 0, bio = 0, rad = 0)
|
||||
armor = list(melee = 25, bullet = 25, laser = 80, energy = 10, bomb = 0, bio = 0, rad = 0)
|
||||
siemens_coefficient = 0
|
||||
|
||||
/obj/item/clothing/suit/armor/swat
|
||||
|
||||
@@ -53,27 +53,105 @@
|
||||
name = "bomb hood"
|
||||
desc = "Use in case of bomb."
|
||||
icon_state = "bombsuit"
|
||||
flags = HEADCOVERSEYES|HEADCOVERSMOUTH|BLOCKHAIR
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 100, bio = 0, rad = 0)
|
||||
w_class = 5//Too large to fit in a backpack
|
||||
flags = HEADCOVERSEYES|HEADCOVERSMOUTH|BLOCKHAIR|STOPPRESSUREDAMAGE|THICKMATERIAL|BLOCK_GAS_SMOKE_EFFECT
|
||||
armor = list(melee = 30, bullet = 20, laser = 25,energy = 30, bomb = 100, bio = 60, rad = 60)
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES
|
||||
body_parts_covered = HEAD|FACE|EYES
|
||||
siemens_coefficient = 0
|
||||
|
||||
|
||||
|
||||
//Changes by Nanako
|
||||
//Bomb suits should huge and robust. They used to have 100 bomb protection and nothing in other categories
|
||||
//Bomb suits now have decent resistance in all categories, but with two major ergonomic drawbacks:
|
||||
//1. Heavy. really heavy, massive slowdown on movement
|
||||
//2. Bomb suit materials don't allow permeability of body heat, thus the wearer tends to overheat and can't wear them for long
|
||||
/obj/item/clothing/suit/bomb_suit
|
||||
name = "bomb suit"
|
||||
desc = "A suit designed for safety when handling explosives."
|
||||
desc = "A suit designed for safety when handling explosives. It looks heavy and uncomfortable to wear for even a short time."
|
||||
icon_state = "bombsuit"
|
||||
item_state = "bombsuit"
|
||||
w_class = 4//bulky item
|
||||
w_class = 7//bulky item
|
||||
gas_transfer_coefficient = 0.01
|
||||
permeability_coefficient = 0.01
|
||||
slowdown = 2
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 100, bio = 0, rad = 0)
|
||||
slowdown = 8
|
||||
armor = list(melee = 55, bullet = 55, laser = 55,energy = 60, bomb = 100, bio = 60, rad = 60)
|
||||
flags = STOPPRESSUREDAMAGE|THICKMATERIAL
|
||||
flags_inv = HIDEJUMPSUIT|HIDETAIL
|
||||
heat_protection = UPPER_TORSO|LOWER_TORSO
|
||||
max_heat_protection_temperature = ARMOR_MAX_HEAT_PROTECTION_TEMPERATURE
|
||||
heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS
|
||||
cold_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS
|
||||
max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECTION_TEMPERATURE
|
||||
siemens_coefficient = 0
|
||||
var/mob/living/carbon/human/wearer = null
|
||||
var/suit_temp = T20C
|
||||
|
||||
/obj/item/clothing/suit/bomb_suit/equipped(var/mob/user, var/slot)
|
||||
if (slot == slot_wear_suit)
|
||||
var/mob/living/carbon/human/H = user
|
||||
H.visible_message("<font color='blue'>[H] starts putting on \the [src]...</font>", "<font color='blue'>You start putting on \the [src]...</font>")
|
||||
if(!do_after(H,50))
|
||||
if(H && H.wear_suit == src)
|
||||
H.wear_suit = null
|
||||
H.drop_from_inventory(src)
|
||||
src.forceMove(get_turf(H))
|
||||
return
|
||||
|
||||
wearer = user
|
||||
wearer << "<span class='Notice'>You struggle into the [src]. It feels hot, heavy and uncomfortable</span>"
|
||||
if(!(src in processing_objects))
|
||||
processing_objects.Add(src)
|
||||
else
|
||||
wearer = null
|
||||
|
||||
|
||||
..(user, slot)
|
||||
|
||||
#define BOMBSUIT_THERMAL 0.27
|
||||
#define BOMBHOOD_THERMAL 0.12
|
||||
#define BOMBSUIT_MAX_TEMPERATURE 420 //heat 2 for humans, heat 1 for unathi
|
||||
/obj/item/clothing/suit/bomb_suit/process()
|
||||
if (!checkworn())//If nobody's wearing the suit, then it cools down
|
||||
suit_temp -= 0.5
|
||||
if (suit_temp < T20C)
|
||||
suit_temp = T20C
|
||||
processing_objects.Remove(src)
|
||||
return
|
||||
else
|
||||
var/amount = BOMBSUIT_THERMAL
|
||||
if (istype(wearer.head, /obj/item/clothing/head/bomb_hood))//wearing both parts heats up faster
|
||||
amount += BOMBHOOD_THERMAL
|
||||
|
||||
suit_temp = min(suit_temp+amount, BOMBSUIT_MAX_TEMPERATURE)
|
||||
|
||||
if (wearer.bodytemperature < suit_temp)
|
||||
wearer.bodytemperature += (suit_temp - wearer.bodytemperature)*0.5//Bodytemperature damps towards the suit temp
|
||||
if (wearer.bodytemperature >= wearer.species.heat_discomfort_level)
|
||||
wearer.species.get_environment_discomfort(wearer,"heat")
|
||||
//This is added here because normal discomfort messages proc off of breath rather than bodytemperature.
|
||||
//Since the surrounding environment isnt heated, they don't happen without it being specifically called here
|
||||
|
||||
/obj/item/clothing/suit/bomb_suit/proc/checkworn()
|
||||
if (wearer)
|
||||
if (wearer.wear_suit == src)
|
||||
return 1
|
||||
|
||||
if (istype(loc, /mob/living/carbon/human))
|
||||
wearer = loc
|
||||
if (wearer.wear_suit == src)
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
|
||||
else
|
||||
wearer = null
|
||||
return 0
|
||||
|
||||
|
||||
/obj/item/clothing/suit/bomb_suit/Destroy()
|
||||
processing_objects.Remove(src)
|
||||
..()
|
||||
|
||||
|
||||
/obj/item/clothing/head/bomb_hood/security
|
||||
@@ -112,3 +190,8 @@
|
||||
slowdown = 1.5
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 100)
|
||||
flags_inv = HIDEJUMPSUIT|HIDETAIL
|
||||
|
||||
|
||||
#undef BOMBSUIT_THERMAL
|
||||
#undef BOMBHOOD_THERMAL
|
||||
#undef BOMBSUIT_MAX_TEMPERATURE
|
||||
Reference in New Issue
Block a user