diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm
index 4c6a16b4a53..4026649c70d 100644
--- a/code/modules/clothing/suits/armor.dm
+++ b/code/modules/clothing/suits/armor.dm
@@ -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
diff --git a/code/modules/clothing/suits/utility.dm b/code/modules/clothing/suits/utility.dm
index 13ec0e26355..4695a51224c 100644
--- a/code/modules/clothing/suits/utility.dm
+++ b/code/modules/clothing/suits/utility.dm
@@ -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("[H] starts putting on \the [src]...", "You start putting on \the [src]...")
+ 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 << "You struggle into the [src]. It feels hot, heavy and uncomfortable"
+ 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
\ No newline at end of file
diff --git a/html/changelogs/Nanako-SpecialisedArmour.yml b/html/changelogs/Nanako-SpecialisedArmour.yml
new file mode 100644
index 00000000000..08a9405aefc
--- /dev/null
+++ b/html/changelogs/Nanako-SpecialisedArmour.yml
@@ -0,0 +1,42 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# wip (For works in progress)
+# tweak
+# soundadd
+# sounddel
+# rscadd (general adding of nice things)
+# rscdel (general deleting of nice things)
+# imageadd
+# imagedel
+# maptweak
+# spellcheck (typo fixes)
+# experiment
+#################################
+
+# Your name.
+author: Nanako
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
+# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - 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"
\ No newline at end of file