diff --git a/code/__defines/items_clothing.dm b/code/__defines/items_clothing.dm index bf2cf7bcb08..0fa309d9412 100644 --- a/code/__defines/items_clothing.dm +++ b/code/__defines/items_clothing.dm @@ -178,6 +178,8 @@ #define VOIDSUIT_MAX_PRESSURE 5 * ONE_ATMOSPHERE #define SPACE_SUIT_MAX_PRESSURE 2 * ONE_ATMOSPHERE +#define FIRESUIT_MIN_PRESSURE 0.5 * ONE_ATMOSPHERE + #define TEMPERATURE_DAMAGE_COEFFICIENT 1.5 // This is used in handle_temperature_damage() for humans, and in reagents that affect body temperature. Temperature damage is multiplied by this amount. #define BODYTEMP_AUTORECOVERY_DIVISOR 12 // This is the divisor which handles how much of the temperature difference between the current body temperature and 310.15K (optimal temperature) humans auto-regenerate each tick. The higher the number, the slower the recovery. This is applied each tick, so long as the mob is alive. #define BODYTEMP_AUTORECOVERY_MINIMUM 1 // Minimum amount of kelvin moved toward 310.15K per tick. So long as abs(310.15 - bodytemp) is more than 50. diff --git a/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm index de2a9294cdd..3ce46ed37fd 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm @@ -38,7 +38,7 @@ new /obj/item/device/radio/headset/qm(src) new /obj/item/device/radio/headset/qm/alt(src) new /obj/item/clothing/gloves/black(src) - new /obj/item/clothing/suit/fire/firefighter(src) + new /obj/item/clothing/suit/fire(src) new /obj/item/tank/emergency_oxygen(src) new /obj/item/clothing/mask/gas(src) new /obj/item/clothing/head/softcap/cargo(src) diff --git a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm index a36a37bb7c8..bf125eb7ddc 100644 --- a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm @@ -90,19 +90,19 @@ icon_opened = "fireclosetopen" /obj/structure/closet/firecloset/fill() - new /obj/item/clothing/suit/fire/firefighter(src) + new /obj/item/clothing/head/hardhat/firefighter(src) + new /obj/item/clothing/suit/fire(src) new /obj/item/clothing/mask/gas(src) new /obj/item/tank/oxygen/red(src) new /obj/item/extinguisher(src) - new /obj/item/clothing/head/hardhat/red(src) /obj/structure/closet/firecloset/full/fill() - new /obj/item/clothing/suit/fire/firefighter(src) + new /obj/item/clothing/head/hardhat/firefighter(src) + new /obj/item/clothing/suit/fire(src) new /obj/item/clothing/mask/gas(src) new /obj/item/device/flashlight(src) new /obj/item/tank/oxygen/red(src) new /obj/item/extinguisher(src) - new /obj/item/clothing/head/hardhat/red(src) @@ -216,12 +216,12 @@ wall_mounted = 1 /obj/structure/closet/hydrant/fill() - new /obj/item/clothing/suit/fire/firefighter(src) + new /obj/item/clothing/head/hardhat/firefighter(src) + new /obj/item/clothing/suit/fire(src) new /obj/item/clothing/mask/gas(src) new /obj/item/device/flashlight(src) new /obj/item/tank/oxygen/red(src) new /obj/item/extinguisher(src) - new /obj/item/clothing/head/hardhat/red(src) if (prob(25)) new /obj/item/ladder_mobile(src) diff --git a/code/modules/clothing/head/hardhat.dm b/code/modules/clothing/head/hardhat.dm index 4a856b14528..cdf5bb96de2 100644 --- a/code/modules/clothing/head/hardhat.dm +++ b/code/modules/clothing/head/hardhat.dm @@ -45,8 +45,13 @@ name = "atmospheric firefighter helmet" desc = "An atmospheric firefighter's helmet, able to keep the user protected from heat and fire." max_heat_protection_temperature = FIRE_HELMET_MAX_HEAT_PROTECTION_TEMPERATURE + 15000 + icon = 'icons/clothing/kit/firefighter.dmi' icon_state = "atmos_fire" item_state = "atmos_fire" + icon_auto_adapt = TRUE + icon_supported_species_tags = list("una", "taj") + contained_sprite = TRUE + min_pressure_protection = FIRESUIT_MIN_PRESSURE /obj/item/clothing/head/hardhat/first_responder name = "medical helmet" @@ -54,3 +59,28 @@ icon_state = "helmet_paramed" item_state = "helmet_paramed" light_overlay = "EMS_light" + +/obj/item/clothing/head/hardhat/firefighter + name = "firefighter helmet" + desc = "A complete, face covering helmet specially designed for firefighting. It is airtight and has a port for internals." + icon = 'icons/clothing/kit/firefighter.dmi' + icon_state = "helmet_firefighter" + item_state = "helmet_firefighter" + icon_auto_adapt = TRUE + icon_supported_species_tags = list("una", "taj") + contained_sprite = TRUE + item_flags = THICKMATERIAL | AIRTIGHT + max_pressure_protection = FIRESUIT_MAX_PRESSURE + min_pressure_protection = FIRESUIT_MIN_PRESSURE + permeability_coefficient = 0 + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|BLOCKHAIR + body_parts_covered = HEAD|FACE|EYES + cold_protection = HEAD + min_cold_protection_temperature = SPACE_HELMET_MIN_COLD_PROTECTION_TEMPERATURE + flash_protection = FLASH_PROTECTION_MODERATE + +/obj/item/clothing/head/hardhat/firefighter/chief + name = "chief firefighter helmet" + desc = "A complete, face covering helmet specially designed for firefighting. This one is in the colors of the Chief Engineer. It is airtight and has a port for internals." + icon_state = "helmet_firefighter_ce" + item_state = "helmet_firefighter_ce" \ No newline at end of file diff --git a/code/modules/clothing/suits/utility.dm b/code/modules/clothing/suits/utility.dm index 7087ddc81f4..4babbc84df5 100644 --- a/code/modules/clothing/suits/utility.dm +++ b/code/modules/clothing/suits/utility.dm @@ -12,37 +12,26 @@ /obj/item/clothing/suit/fire name = "firesuit" desc = "A suit that protects against fire and heat." + icon = 'icons/clothing/kit/firefighter.dmi' icon_state = "firesuit" item_state = "firesuit" + icon_auto_adapt = TRUE + icon_supported_species_tags = list("ada", "gol") + contained_sprite = TRUE w_class = ITEMSIZE_LARGE//bulky item gas_transfer_coefficient = 0.90 permeability_coefficient = 0.50 body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS siemens_coefficient = 0.5 allowed = list(/obj/item/device/flashlight,/obj/item/tank/emergency_oxygen,/obj/item/extinguisher) - slowdown = 1.0 + slowdown = 0.8 // slightly better than voidsuits flags_inv = HIDEWRISTS|HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL max_pressure_protection = FIRESUIT_MAX_PRESSURE + min_pressure_protection = FIRESUIT_MIN_PRESSURE 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 - -/obj/item/clothing/suit/fire/firefighter - icon_state = "firesuit" - item_state = "firesuit" - - -/obj/item/clothing/suit/fire/heavy - name = "firesuit" - desc = "A suit that protects against extreme fire and heat." - //icon_state = "thermal" - siemens_coefficient = 0.35 - item_state = "ro_suit" - w_class = ITEMSIZE_LARGE//bulky item - max_heat_protection_temperature = FIRESUIT_MAX_HEAT_PROTECTION_TEMPERATURE + 25000 - slowdown = 1.5 - /obj/item/clothing/suit/fire/atmos name = "atmospheric technician firesuit" desc = "A suit that protects against fire and heat, this one is designed for atmospheric technicians." diff --git a/code/modules/item_worth/worths_list.dm b/code/modules/item_worth/worths_list.dm index 464a71f1308..3614df329e4 100644 --- a/code/modules/item_worth/worths_list.dm +++ b/code/modules/item_worth/worths_list.dm @@ -504,7 +504,6 @@ var/list/worths = list( /obj/item/clothing/suit/storage/hazardvest = 60, /obj/item/clothing/suit/storage/toggle/labcoat = 55, /obj/item/clothing/suit/armor/riot/laser_tag = 125, - /obj/item/clothing/suit/fire/heavy = 600, /obj/item/clothing/suit/fire = 500, /obj/item/clothing/suit/radiation = 450, /obj/item/clothing/suit/bomb_suit = 300, diff --git a/code/modules/mob/living/carbon/human/species/station/golem.dm b/code/modules/mob/living/carbon/human/species/station/golem.dm index fd9ad41a6d9..4c7637ef8f1 100644 --- a/code/modules/mob/living/carbon/human/species/station/golem.dm +++ b/code/modules/mob/living/carbon/human/species/station/golem.dm @@ -18,6 +18,7 @@ var/global/list/golem_types = list(SPECIES_GOLEM_COAL, /datum/species/golem name = SPECIES_GOLEM_COAL + short_name = "gol" name_plural = "coal golems" icobase = 'icons/mob/human_races/golem/r_coal.dmi' @@ -164,6 +165,7 @@ var/global/list/golem_types = list(SPECIES_GOLEM_COAL, /datum/species/golem/bronze name = SPECIES_GOLEM_BRONZE + short_name = null name_plural = "bronze golems" icobase = 'icons/mob/human_races/golem/r_bronze.dmi' @@ -311,6 +313,7 @@ var/global/list/golem_types = list(SPECIES_GOLEM_COAL, /datum/species/golem/cloth name = SPECIES_GOLEM_CLOTH + short_name = null name_plural = "cloth golems" icobase = 'icons/mob/human_races/golem/r_cloth.dmi' @@ -770,6 +773,7 @@ var/global/list/golem_types = list(SPECIES_GOLEM_COAL, /datum/species/golem/homunculus name = SPECIES_GOLEM_MEAT + short_name = null name_plural = "homunculus" flags = NO_PAIN | NO_SCAN @@ -836,6 +840,7 @@ var/global/list/golem_types = list(SPECIES_GOLEM_COAL, /datum/species/golem/adamantine name = SPECIES_GOLEM_ADAMANTINE + short_name = "ada" name_plural = "adamantine golems" icobase = 'icons/mob/human_races/r_golem.dmi' diff --git a/html/changelogs/geeves-firefighting_gear.yml b/html/changelogs/geeves-firefighting_gear.yml new file mode 100644 index 00000000000..c7f1019a961 --- /dev/null +++ b/html/changelogs/geeves-firefighting_gear.yml @@ -0,0 +1,10 @@ +author: Geeves + +delete-after: True + +changes: + - imageadd: "Added some species-specific sprites for firesuits and their helmets." + - rscadd: "Added a proper firefighter helmet to the fire-safety closets." + - tweak: "Firesuits now give a slight amount of protection against negative pressure, enough to buy a couple of seconds of spacewalking." + - tweak: "Very slightly reduced firesuit slowdown, from 1 to 0.8." + - rscadd: "Added a firesuit to the CE's office." \ No newline at end of file diff --git a/icons/clothing/kit/firefighter.dmi b/icons/clothing/kit/firefighter.dmi new file mode 100644 index 00000000000..a68d418e29b Binary files /dev/null and b/icons/clothing/kit/firefighter.dmi differ diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi index 86971263480..e313d8eaa8d 100644 Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi index 9198ff46087..66227edd6b8 100644 Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index 4a2e146565c..34ad9b67d3c 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index ba53526c043..411dd31491a 100644 Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ diff --git a/maps/aurora/aurora-3_sublevel.dmm b/maps/aurora/aurora-3_sublevel.dmm index 61e5a7ab33f..dbd9192dce6 100644 --- a/maps/aurora/aurora-3_sublevel.dmm +++ b/maps/aurora/aurora-3_sublevel.dmm @@ -10740,7 +10740,7 @@ /obj/structure/table/rack{ dir = 1 }, -/obj/item/clothing/suit/fire/firefighter, +/obj/item/clothing/suit/fire, /obj/item/tank/oxygen, /obj/item/clothing/mask/gas, /obj/item/extinguisher, diff --git a/maps/aurora/aurora-4_mainlevel.dmm b/maps/aurora/aurora-4_mainlevel.dmm index cb23915089f..9c879d036d9 100644 --- a/maps/aurora/aurora-4_mainlevel.dmm +++ b/maps/aurora/aurora-4_mainlevel.dmm @@ -2544,7 +2544,7 @@ /obj/structure/table/rack{ dir = 1 }, -/obj/item/clothing/suit/fire/firefighter, +/obj/item/clothing/suit/fire, /obj/item/tank/oxygen, /obj/item/clothing/mask/gas, /obj/item/extinguisher, @@ -8362,7 +8362,7 @@ /obj/structure/table/rack{ dir = 1 }, -/obj/item/clothing/suit/fire/firefighter, +/obj/item/clothing/suit/fire, /obj/item/tank/oxygen, /obj/item/clothing/mask/gas, /obj/item/extinguisher, @@ -22373,7 +22373,6 @@ /area/crew_quarters/heads/chief) "aMI" = ( /obj/structure/table/rack, -/obj/item/rig/ce/equipped, /obj/item/clothing/mask/breath, /obj/structure/window/reinforced{ dir = 4 @@ -22382,6 +22381,12 @@ /obj/machinery/light_switch{ pixel_y = 24 }, +/obj/item/clothing/suit/fire/atmos, +/obj/item/clothing/head/hardhat/firefighter/chief, +/obj/item/rig/ce/equipped{ + pixel_x = -6; + pixel_y = 4 + }, /turf/simulated/floor/tiled, /area/crew_quarters/heads/chief) "aMJ" = ( @@ -26917,7 +26922,7 @@ /obj/structure/table/rack{ dir = 1 }, -/obj/item/clothing/suit/fire/firefighter, +/obj/item/clothing/suit/fire, /obj/item/tank/oxygen, /obj/item/clothing/mask/gas, /obj/item/extinguisher, @@ -49050,7 +49055,7 @@ /obj/structure/table/rack{ dir = 1 }, -/obj/item/clothing/suit/fire/firefighter, +/obj/item/clothing/suit/fire, /obj/item/tank/oxygen, /obj/item/clothing/mask/gas, /obj/item/extinguisher, @@ -49682,7 +49687,7 @@ /obj/structure/table/rack{ dir = 1 }, -/obj/item/clothing/suit/fire/firefighter, +/obj/item/clothing/suit/fire, /obj/item/tank/oxygen, /obj/item/clothing/mask/gas, /obj/item/extinguisher, diff --git a/maps/aurora/aurora-5_interstitial.dmm b/maps/aurora/aurora-5_interstitial.dmm index fde7a6de7db..578445631b3 100644 --- a/maps/aurora/aurora-5_interstitial.dmm +++ b/maps/aurora/aurora-5_interstitial.dmm @@ -9175,7 +9175,7 @@ /obj/structure/table/rack{ dir = 1 }, -/obj/item/clothing/suit/fire/firefighter, +/obj/item/clothing/suit/fire, /obj/item/tank/oxygen, /obj/item/clothing/mask/gas, /obj/item/extinguisher, diff --git a/maps/aurora/aurora-6_surface.dmm b/maps/aurora/aurora-6_surface.dmm index fda0d6aae9f..0416f185c90 100644 --- a/maps/aurora/aurora-6_surface.dmm +++ b/maps/aurora/aurora-6_surface.dmm @@ -11797,7 +11797,7 @@ /turf/simulated/floor/plating, /area/maintenance/arrivals) "kEY" = ( -/obj/item/clothing/suit/fire/firefighter, +/obj/item/clothing/suit/fire, /obj/item/tank/oxygen, /obj/item/clothing/mask/gas, /obj/item/extinguisher, diff --git a/maps/exodus/exodus-1_station.dmm b/maps/exodus/exodus-1_station.dmm index bd00a80bdba..2528d394d55 100644 --- a/maps/exodus/exodus-1_station.dmm +++ b/maps/exodus/exodus-1_station.dmm @@ -4364,7 +4364,7 @@ /obj/structure/table/rack{ dir = 1 }, -/obj/item/clothing/suit/fire/firefighter, +/obj/item/clothing/suit/fire, /obj/item/tank/oxygen, /obj/item/clothing/mask/gas, /obj/item/extinguisher, @@ -49332,7 +49332,7 @@ /obj/structure/table/rack{ dir = 1 }, -/obj/item/clothing/suit/fire/firefighter, +/obj/item/clothing/suit/fire, /obj/item/tank/oxygen, /obj/item/clothing/mask/gas, /obj/item/extinguisher, @@ -69972,7 +69972,7 @@ /obj/structure/table/rack{ dir = 1 }, -/obj/item/clothing/suit/fire/firefighter, +/obj/item/clothing/suit/fire, /obj/item/tank/oxygen, /obj/item/clothing/mask/gas, /obj/item/extinguisher,