From e4d8f96a45e5338592bfd5336ae0b9ef72d36528 Mon Sep 17 00:00:00 2001 From: Kurgis <35203040+Kurgis@users.noreply.github.com> Date: Mon, 27 Jan 2020 12:42:42 -0500 Subject: [PATCH] Armor changes and additions (#4509) * Armor changes and additions Added: Clothing now has a accessible UI as with tools, you can currently only check the armor stats. Added generic helmets to go along with their suit counterparts. Added generic reinforced shoes and jackboots for the general crew, which helps highlight Ironhammer's palette in-game. Refactor: Moved some suits and headwear out of the Security uniform file. Space suit helmets no longer an unnecessary subtype of helmet. An armor type has been created for head items, and it follows close to the layout of suits. Moved head/helmet.dm into head/armor.dm. Mapchanges: Replaces the paths of the aforementioned items. Balance: Preacher's coat and jacket follow after the stats of the Guild jackets. The SCAF suits have been unashamedly buffed so that they outperform all equipment onboard the ship. Helmets perform better against melee, while relatively keeping the general stats of their suit counterparts. Combat RIGs have been adjusted as they already still out-perform nearly everything in the repo. Acolyte armor has been beefed up, while taking on an additional slowdown malus. The light RIG has been adjusted, and no longer gives full bio protection since it's not airtight. Hazard RIG, generic voidsuit, and gem-encrusted voidsuit have been given slight adjustements regarding their energy armor. The Syndicate space suit now actually is capable of performing some kind of role. Excelsior armor has been given straight buffs, suffers from the same problem of players avoiding it due to not being able to compete with other onboard suits, while being a clear declaration. Fixes: The Agrolyte skaf is no longer offset of the mob sprite by one pixel. Tweaks: Adjusted the cloth spawners for the new items with stats in mind. Acolytes can find jackets in their lockers as an alternative to their heavier skafs. * Re-adjusts some values Re-adjusts some values with feedback from Coureere. * Small oversight. Only melee was meant to have a higher stat. * ironhammer bulletproof helmet Removes armor values from combat gloves, and changes their object path. * Removes the armor UI * Removes unused tmpl file. --- cev_eris.dme | 2 +- code/__DEFINES/items_clothing.dm | 2 +- code/datums/craft/recipes/clothing.dm | 2 +- code/datums/outfits/antagonist/mercenary.dm | 1 + code/datums/outfits/jobs/church.dm | 2 +- code/datums/outfits/jobs/security.dm | 12 +- code/datums/uplink/neotheology.dm | 2 +- .../gamemodes/events/holidays/Christmas.dm | 2 +- code/game/machinery/camera/tracking.dm | 4 +- code/game/machinery/cryopod.dm | 2 +- code/game/machinery/doors/airlock.dm | 2 +- code/game/machinery/suit_storage_unit.dm | 6 +- .../objects/effects/spawners/corpsespawner.dm | 8 +- .../items/devices/radio/electropack.dm | 2 +- code/game/objects/items/paintkit.dm | 2 +- code/game/objects/items/stacks/medical.dm | 2 +- .../items/weapons/grenades/flashbang.dm | 2 +- .../objects/items/weapons/storage/deferred.dm | 10 +- .../items/weapons/storage/uplink_kits.dm | 4 +- code/game/objects/landmarks/costume.dm | 2 +- code/game/objects/random/cloth.dm | 45 ++- .../crates_lockers/closets/gimmick.dm | 12 +- .../crates_lockers/closets/job_closets.dm | 1 + .../crates_lockers/closets/secure/chaplain.dm | 4 +- .../crates_lockers/closets/secure/security.dm | 10 +- .../crates_lockers/closets/utility_closets.dm | 12 +- .../crates_lockers/closets/wardrobe.dm | 4 +- code/modules/admin/verbs/debug.dm | 10 +- code/modules/assembly/shock_kit.dm | 2 +- code/modules/cargo/exports/gear.dm | 12 +- code/modules/cargo/packs.dm | 18 +- code/modules/clothing/clothing.dm | 1 - code/modules/clothing/glasses/night.dm | 12 + code/modules/clothing/gloves/miscellaneous.dm | 51 ++- code/modules/clothing/head/armor.dm | 359 ++++++++++++++++++ code/modules/clothing/head/helmet.dm | 207 ---------- code/modules/clothing/head/misc.dm | 9 + code/modules/clothing/shoes/colour.dm | 4 + code/modules/clothing/shoes/jobs.dm | 40 +- code/modules/clothing/shoes/magboots.dm | 23 +- code/modules/clothing/spacesuits/bomb.dm | 4 +- code/modules/clothing/spacesuits/captain.dm | 2 +- .../clothing/spacesuits/miscellaneous.dm | 4 +- code/modules/clothing/spacesuits/rig/rig.dm | 4 +- .../clothing/spacesuits/rig/rig_pieces.dm | 4 +- .../clothing/spacesuits/rig/suits/combat.dm | 51 ++- .../clothing/spacesuits/rig/suits/light.dm | 14 +- .../clothing/spacesuits/rig/suits/merc.dm | 4 +- .../clothing/spacesuits/rig/suits/station.dm | 60 +-- .../modules/clothing/spacesuits/spacesuits.dm | 14 +- code/modules/clothing/spacesuits/syndi.dm | 30 +- .../clothing/spacesuits/void/excelsior.dm | 27 +- code/modules/clothing/spacesuits/void/merc.dm | 37 +- .../clothing/spacesuits/void/neotheology.dm | 30 +- .../clothing/spacesuits/void/station.dm | 22 +- code/modules/clothing/spacesuits/void/void.dm | 8 +- .../clothing/spacesuits/void/wizard.dm | 8 +- code/modules/clothing/suits/armor.dm | 43 ++- code/modules/clothing/suits/jobs.dm | 24 +- code/modules/clothing/under/jobs/security.dm | 54 +-- code/modules/mining/abandonedcrates.dm | 2 +- code/modules/mob/living/bot/ed209bot.dm | 4 +- code/modules/mob/living/bot/secbot.dm | 4 +- code/modules/mob/living/carbon/human/human.dm | 2 +- .../mob/living/carbon/human/stripping.dm | 2 +- code/modules/random_map/drop/drop_types.dm | 6 +- .../xenoarchaeology/artifact/effect.dm | 2 +- .../xenoarchaeology/tools/anomaly_suit.dm | 2 +- code/modules/stashes/stash_types/captain.dm | 4 +- .../modules/stashes/stash_types/valueables.dm | 2 +- icons/inventory/eyes/icon.dmi | Bin 8148 -> 8318 bytes icons/inventory/eyes/mob.dmi | Bin 7643 -> 7818 bytes icons/inventory/feet/icon.dmi | Bin 17916 -> 18083 bytes icons/inventory/feet/mob.dmi | Bin 24346 -> 24682 bytes icons/inventory/hands/icon.dmi | Bin 23013 -> 22759 bytes icons/inventory/hands/mob.dmi | Bin 18598 -> 18367 bytes icons/inventory/head/icon.dmi | Bin 57252 -> 58742 bytes icons/inventory/head/mob.dmi | Bin 131410 -> 134058 bytes icons/inventory/suit/icon.dmi | Bin 68587 -> 68934 bytes icons/inventory/suit/mob.dmi | Bin 184894 -> 183624 bytes icons/inventory/suit/mob_fem.dmi | Bin 186645 -> 184940 bytes maps/CEVEris/_CEV_Eris.dmm | 44 +-- maps/CEVEris/centcomm.dmm | 4 +- 83 files changed, 794 insertions(+), 635 deletions(-) create mode 100644 code/modules/clothing/head/armor.dm delete mode 100644 code/modules/clothing/head/helmet.dm diff --git a/cev_eris.dme b/cev_eris.dme index 75307edece..d531c57519 100644 --- a/cev_eris.dme +++ b/cev_eris.dme @@ -1408,9 +1408,9 @@ #include "code\modules\clothing\gloves\color.dm" #include "code\modules\clothing\gloves\miscellaneous.dm" #include "code\modules\clothing\gloves\stungloves.dm" +#include "code\modules\clothing\head\armor.dm" #include "code\modules\clothing\head\collectable.dm" #include "code\modules\clothing\head\hardhat.dm" -#include "code\modules\clothing\head\helmet.dm" #include "code\modules\clothing\head\jobs.dm" #include "code\modules\clothing\head\misc.dm" #include "code\modules\clothing\head\misc_special.dm" diff --git a/code/__DEFINES/items_clothing.dm b/code/__DEFINES/items_clothing.dm index 5e9101c6d8..c16ba7b723 100644 --- a/code/__DEFINES/items_clothing.dm +++ b/code/__DEFINES/items_clothing.dm @@ -1,6 +1,6 @@ #define HUMAN_STRIP_DELAY 40 // Takes 40ds = 4s to strip someone. -#define SHOES_SLOWDOWN -1.0 // How much shoes slow you down by default. Negative values speed you up. +#define SHOES_SLOWDOWN -1 // How much shoes slow you down by default. Negative values speed you up. #define CANDLE_LUM 3 // For how bright candles are. diff --git a/code/datums/craft/recipes/clothing.dm b/code/datums/craft/recipes/clothing.dm index 9aefe8d176..0fd984a6cb 100644 --- a/code/datums/craft/recipes/clothing.dm +++ b/code/datums/craft/recipes/clothing.dm @@ -35,7 +35,7 @@ /datum/craft_recipe/clothing/combat_helmet name = "combat helmet" - result = /obj/item/clothing/head/helmet/handmade + result = /obj/item/clothing/head/armor/helmet/handmade steps = list( list(/obj/item/weapon/reagent_containers/glass/bucket, 1, "time" = 30), list(CRAFT_MATERIAL, 4, MATERIAL_STEEL), diff --git a/code/datums/outfits/antagonist/mercenary.dm b/code/datums/outfits/antagonist/mercenary.dm index fbabc86344..fa04003a62 100644 --- a/code/datums/outfits/antagonist/mercenary.dm +++ b/code/datums/outfits/antagonist/mercenary.dm @@ -3,6 +3,7 @@ hierarchy_type = /decl/hierarchy/outfit/antagonist/mercenary uniform = /obj/item/clothing/under/turtleneck + gloves = /obj/item/clothing/gloves/security/tactical l_ear = /obj/item/device/radio/headset shoes = /obj/item/clothing/shoes/magboots/merc pda_slot = slot_belt diff --git a/code/datums/outfits/jobs/church.dm b/code/datums/outfits/jobs/church.dm index 338aab41c5..82a1079d24 100644 --- a/code/datums/outfits/jobs/church.dm +++ b/code/datums/outfits/jobs/church.dm @@ -14,7 +14,7 @@ l_ear = /obj/item/device/radio/headset/heads/preacher id_type = /obj/item/weapon/card/id/chaplain uniform = /obj/item/clothing/under/rank/preacher - suit = /obj/item/clothing/suit/chaplain_hoodie/coat + suit = /obj/item/clothing/suit/neotheology_coat shoes = /obj/item/clothing/shoes/reinforced gloves = /obj/item/clothing/gloves/thick backpack_contents = list(/obj/item/weapon/book/ritual/cruciform/priest = 1) diff --git a/code/datums/outfits/jobs/security.dm b/code/datums/outfits/jobs/security.dm index 430c2d7674..0b834ae1e0 100644 --- a/code/datums/outfits/jobs/security.dm +++ b/code/datums/outfits/jobs/security.dm @@ -1,8 +1,8 @@ /decl/hierarchy/outfit/job/security hierarchy_type = /decl/hierarchy/outfit/job/security l_ear = /obj/item/device/radio/headset/headset_sec - gloves = /obj/item/clothing/gloves/thick - shoes = /obj/item/clothing/shoes/jackboots + gloves = /obj/item/clothing/gloves/security/ironhammer + shoes = /obj/item/clothing/shoes/jackboots/ironhammer id_type = /obj/item/weapon/card/id/sec pda_type = /obj/item/modular_computer/pda/security backpack_contents = list(/obj/item/weapon/handcuffs = 1) @@ -15,7 +15,7 @@ name = OUTFIT_JOB_NAME("Ironhammer Commander") l_ear = /obj/item/device/radio/headset/heads/hos uniform = /obj/item/clothing/under/rank/ih_commander - suit = /obj/item/clothing/suit/armor/hos + suit = /obj/item/clothing/suit/armor/greatcoat/ironhammer l_pocket = /obj/item/device/flash gloves = /obj/item/clothing/gloves/stungloves glasses = /obj/item/clothing/glasses/sunglasses/sechud/tactical @@ -37,13 +37,11 @@ /decl/hierarchy/outfit/job/security/inspector name = OUTFIT_JOB_NAME("Ironhammer Inspector") - head = /obj/item/clothing/head/det uniform = /obj/item/clothing/under/rank/inspector suit = /obj/item/clothing/suit/storage/detective/ironhammer head = /obj/item/clothing/head/det - gloves = /obj/item/clothing/gloves/thick/swat l_pocket = /obj/item/device/flash - shoes = /obj/item/clothing/shoes/reinforced + shoes = /obj/item/clothing/shoes/reinforced/ironhammer belt = /obj/item/weapon/gun/energy/gun/martin r_hand = /obj/item/weapon/storage/briefcase/crimekit id_type = /obj/item/weapon/card/id/det @@ -72,6 +70,6 @@ suit = /obj/item/clothing/suit/armor/vest/ironhammer mask = /obj/item/clothing/mask/balaclava/tactical glasses = /obj/item/clothing/glasses/sunglasses/sechud/tactical - head = /obj/item/clothing/head/helmet + head = /obj/item/clothing/head/armor/helmet/ironhammer gloves = /obj/item/clothing/gloves/stungloves backpack_contents = list(/obj/item/weapon/handcuffs = 1, /obj/item/device/lighting/toggleable/flashlight/seclite = 1, /obj/item/weapon/cell/small/high = 2, /obj/item/weapon/gun/energy/gun/martin = 1) diff --git a/code/datums/uplink/neotheology.dm b/code/datums/uplink/neotheology.dm index 210b7f975e..c927b4a134 100644 --- a/code/datums/uplink/neotheology.dm +++ b/code/datums/uplink/neotheology.dm @@ -72,7 +72,7 @@ A small pool of thematically appropriate religious items that are generally chea /datum/uplink_item/item/neotheology/coat name = "Preacher Coat" item_cost = 3 - path = /obj/item/clothing/suit/chaplain_hoodie + path = /obj/item/clothing/suit/neotheology_coat /* Guns: All taken from the NeoTheology Armory of the New Testament diff --git a/code/game/gamemodes/events/holidays/Christmas.dm b/code/game/gamemodes/events/holidays/Christmas.dm index 7c221cd703..dd95d90979 100644 --- a/code/game/gamemodes/events/holidays/Christmas.dm +++ b/code/game/gamemodes/events/holidays/Christmas.dm @@ -5,7 +5,7 @@ for(var/i=1,i<=rand(1,5),i++) new /obj/item/weapon/a_gift(T) //for(var/mob/living/simple_animal/corgi/Ian/Ian in SSmobs.mob_list) - // Ian.place_on_head(new /obj/item/clothing/head/helmet/space/santahat(Ian)) + // Ian.place_on_head(new /obj/item/clothing/head/space/santahat(Ian)) /proc/ChristmasEvent() for(var/obj/structure/flora/tree/pine/xmas in world) diff --git a/code/game/machinery/camera/tracking.dm b/code/game/machinery/camera/tracking.dm index 54a6ab2ab1..8bea1880b4 100644 --- a/code/game/machinery/camera/tracking.dm +++ b/code/game/machinery/camera/tracking.dm @@ -243,8 +243,8 @@ /mob/living/carbon/human/tracking_status() //Cameras can't track people wearing an agent card or a ninja hood. - if(istype(head, /obj/item/clothing/head/helmet/space/rig)) - var/obj/item/clothing/head/helmet/space/rig/helmet = head + if(istype(head, /obj/item/clothing/head/space/rig)) + var/obj/item/clothing/head/space/rig/helmet = head if(helmet.prevent_track()) return TRACKING_TERMINATE diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index 2b58f90f9e..2b0e1b9d85 100755 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -184,7 +184,7 @@ /obj/item/clothing/suit, /obj/item/clothing/shoes/magboots, /obj/item/blueprints, - /obj/item/clothing/head/helmet/space, + /obj/item/clothing/head/space, /obj/item/weapon/storage/internal ) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 48045b502d..4bd66ccd68 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -864,7 +864,7 @@ There are 9 wires. var/mob/living/carbon/human/H = user if(H.getBrainLoss() >= 60) playsound(src.loc, 'sound/effects/bang.ogg', 25, 1) - if(!istype(H.head, /obj/item/clothing/head/helmet)) + if(!istype(H.head, /obj/item/clothing/head/armor/helmet)) visible_message(SPAN_WARNING("[user] headbutts the airlock.")) var/obj/item/organ/external/affecting = H.get_organ(BP_HEAD) H.Stun(8) diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm index c9bcd6de11..7c1fa61518 100644 --- a/code/game/machinery/suit_storage_unit.dm +++ b/code/game/machinery/suit_storage_unit.dm @@ -23,7 +23,7 @@ var/mob/living/carbon/OCCUPANT = null var/obj/item/clothing/suit/space/SUIT = null var/SUIT_TYPE = null - var/obj/item/clothing/head/helmet/space/HELMET = null + var/obj/item/clothing/head/space/HELMET = null var/HELMET_TYPE = null var/obj/item/clothing/mask/MASK = null //All the stuff that's gonna be stored insiiiiiiiiiiiiiiiiiiide, nyoro~n var/MASK_TYPE = null //Erro's idea on standarising SSUs whle keeping creation of other SSU types easy: Make a child SSU, name it something then set the TYPE vars to your desired suit output. New() should take it from there by itself. @@ -449,7 +449,7 @@ return else if(istype(I, /obj/item/clothing/suit/space)) load(I, user, SLOT_SUIT) - else if(istype(I, /obj/item/clothing/head/helmet)) + else if(istype(I, /obj/item/clothing/head/space)) load(I, user, SLOT_HELMET) else if(istype(I, /obj/item/clothing/mask)) load(I, user, SLOT_MASK) @@ -464,7 +464,7 @@ /obj/machinery/suit_storage_unit/standard_unit overlay_color = "#B0B0B0" SUIT_TYPE = /obj/item/clothing/suit/space - HELMET_TYPE = /obj/item/clothing/head/helmet/space + HELMET_TYPE = /obj/item/clothing/head/space MASK_TYPE = /obj/item/clothing/mask/breath /obj/machinery/suit_storage_unit/medical diff --git a/code/game/objects/effects/spawners/corpsespawner.dm b/code/game/objects/effects/spawners/corpsespawner.dm index 14adc25a88..bca54f9fc9 100644 --- a/code/game/objects/effects/spawners/corpsespawner.dm +++ b/code/game/objects/effects/spawners/corpsespawner.dm @@ -90,10 +90,10 @@ corpseuniform = /obj/item/clothing/under/syndicate corpsesuit = /obj/item/clothing/suit/armor/vest corpseshoes = /obj/item/clothing/shoes/jackboots - corpsegloves = /obj/item/clothing/gloves/thick/swat + corpsegloves = /obj/item/clothing/gloves/security corpseradio = /obj/item/device/radio/headset corpsemask = /obj/item/clothing/mask/gas - corpsehelmet = /obj/item/clothing/head/helmet + corpsehelmet = /obj/item/clothing/head/armor/helmet corpseback = /obj/item/weapon/storage/backpack corpseid = 1 corpseidjob = "Operative" @@ -106,7 +106,7 @@ corpseuniform = /obj/item/clothing/under/syndicate corpsesuit = /obj/item/clothing/suit/space/void/merc corpseshoes = /obj/item/clothing/shoes/jackboots - corpsegloves = /obj/item/clothing/gloves/thick/swat + corpsegloves = /obj/item/clothing/gloves/security corpseradio = /obj/item/device/radio/headset corpsemask = /obj/item/clothing/mask/gas/syndicate corpseback = /obj/item/weapon/tank/jetpack/oxygen @@ -187,7 +187,7 @@ corpseglasses = /obj/item/clothing/glasses/eyepatch corpsemask = /obj/item/clothing/mask/smokable/cigarette/cigar/cohiba corpsehelmet = /obj/item/clothing/head/centhat - corpsegloves = /obj/item/clothing/gloves/thick/swat + corpsegloves = /obj/item/clothing/gloves/security corpseshoes = /obj/item/clothing/shoes/jackboots corpsepocket1 = /obj/item/weapon/flame/lighter/zippo corpseid = 1 diff --git a/code/game/objects/items/devices/radio/electropack.dm b/code/game/objects/items/devices/radio/electropack.dm index e0acd12016..6356f73d80 100644 --- a/code/game/objects/items/devices/radio/electropack.dm +++ b/code/game/objects/items/devices/radio/electropack.dm @@ -20,7 +20,7 @@ /obj/item/device/radio/electropack/attackby(obj/item/weapon/W as obj, mob/user as mob) ..() - if(istype(W, /obj/item/clothing/head/helmet)) + if(istype(W, /obj/item/clothing/head/armor/helmet)) if(!b_stat) to_chat(user, SPAN_NOTICE("[src] is not ready to be attached!")) return diff --git a/code/game/objects/items/paintkit.dm b/code/game/objects/items/paintkit.dm index 8b78f9072a..9bba7bd667 100644 --- a/code/game/objects/items/paintkit.dm +++ b/code/game/objects/items/paintkit.dm @@ -27,7 +27,7 @@ var/new_light_overlay var/new_mob_icon_file -/obj/item/clothing/head/helmet/space/void/attackby(var/obj/item/O, var/mob/user) +/obj/item/clothing/head/space/void/attackby(var/obj/item/O, var/mob/user) if(istype(O,/obj/item/device/kit/suit)) var/obj/item/device/kit/suit/kit = O name = "[kit.new_name] suit helmet" diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index ab29583b52..36003fc6c7 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -34,7 +34,7 @@ return TRUE if(affecting.organ_tag == BP_HEAD) - if(H.head && istype(H.head,/obj/item/clothing/head/helmet/space)) + if(H.head && istype(H.head,/obj/item/clothing/head/space)) to_chat(user, SPAN_WARNING("You can't apply [src] through [H.head]!")) return 1 else diff --git a/code/game/objects/items/weapons/grenades/flashbang.dm b/code/game/objects/items/weapons/grenades/flashbang.dm index 9257c3107b..ba31ecbfbb 100644 --- a/code/game/objects/items/weapons/grenades/flashbang.dm +++ b/code/game/objects/items/weapons/grenades/flashbang.dm @@ -42,7 +42,7 @@ ear_safety += 2 if(HULK in M.mutations) ear_safety += 1 - if(istype(M:head, /obj/item/clothing/head/helmet)) + if(istype(M:head, /obj/item/clothing/head/armor/helmet)) ear_safety += 1 //Flashing everyone diff --git a/code/game/objects/items/weapons/storage/deferred.dm b/code/game/objects/items/weapons/storage/deferred.dm index cac620e1bb..e949035614 100644 --- a/code/game/objects/items/weapons/storage/deferred.dm +++ b/code/game/objects/items/weapons/storage/deferred.dm @@ -224,7 +224,7 @@ /obj/item/clothing/under/serbiansuit = 1, /obj/item/clothing/head/soft/green2soft = 1, /obj/item/clothing/suit/armor/bulletproof/serbian/green = 1, - /obj/item/clothing/head/helmet/altyn = 1, + /obj/item/clothing/head/armor/altyn = 1, /obj/item/clothing/mask/balaclava/tactical = 1, /obj/item/clothing/shoes/jackboots = 1, /obj/item/clothing/gloves/fingerless = 1) @@ -237,7 +237,7 @@ /obj/item/clothing/under/serbiansuit/brown = 1, /obj/item/clothing/head/soft/tan2soft = 1, /obj/item/clothing/suit/armor/bulletproof/serbian/tan = 1, - /obj/item/clothing/head/helmet/altyn/brown = 1, + /obj/item/clothing/head/armor/altyn/brown = 1, /obj/item/clothing/mask/balaclava/tactical = 1, /obj/item/clothing/shoes/jackboots = 1, /obj/item/clothing/gloves/fingerless = 1) @@ -249,7 +249,7 @@ initial_contents = list( /obj/item/clothing/under/serbiansuit/black = 1, /obj/item/clothing/suit/armor/bulletproof/serbian = 1, - /obj/item/clothing/head/helmet/altyn/black = 1, + /obj/item/clothing/head/armor/altyn/black = 1, /obj/item/clothing/mask/balaclava/tactical = 1, /obj/item/clothing/shoes/jackboots = 1, /obj/item/clothing/gloves/fingerless = 1, @@ -262,7 +262,7 @@ initial_contents = list( /obj/item/clothing/under/serbiansuit = 1, /obj/item/clothing/suit/armor/flak/green = 1, - /obj/item/clothing/head/helmet/altyn/maska = 1, + /obj/item/clothing/head/armor/altyn/maska = 1, /obj/item/clothing/mask/balaclava/tactical = 1, /obj/item/clothing/shoes/jackboots = 1, /obj/item/clothing/gloves/fingerless = 1, @@ -276,7 +276,7 @@ /obj/item/clothing/under/serbiansuit = 1, /obj/item/clothing/head/soft/green2soft = 1, /obj/item/clothing/suit/armor/flak = 1, - /obj/item/clothing/head/helmet/steelpot = 1, + /obj/item/clothing/head/armor/steelpot = 1, /obj/item/clothing/shoes/jackboots = 1, /obj/item/clothing/gloves/fingerless = 1, /obj/item/weapon/storage/fancy/cigarettes = 1) \ No newline at end of file diff --git a/code/game/objects/items/weapons/storage/uplink_kits.dm b/code/game/objects/items/weapons/storage/uplink_kits.dm index a0283bf1d6..0d2146c00a 100644 --- a/code/game/objects/items/weapons/storage/uplink_kits.dm +++ b/code/game/objects/items/weapons/storage/uplink_kits.dm @@ -18,7 +18,7 @@ new /obj/effect/spawner/newbomb/timer/syndicate(src) new /obj/item/device/powersink(src) new /obj/item/clothing/suit/space/syndicate(src) - new /obj/item/clothing/head/helmet/space/syndicate(src) + new /obj/item/clothing/head/space/syndicate(src) new /obj/item/clothing/mask/gas/syndicate(src) new /obj/item/weapon/tank/emergency_oxygen/double(src) return @@ -55,7 +55,7 @@ /* if("lordsingulo") new /obj/item/device/radio/beacon/syndicate(src) new /obj/item/clothing/suit/space/syndicate(src) - new /obj/item/clothing/head/helmet/space/syndicate(src) + new /obj/item/clothing/head/space/syndicate(src) new /obj/item/clothing/mask/gas/syndicate(src) new /obj/item/weapon/tank/emergency_oxygen/double(src) new /obj/item/weapon/card/emag(src) diff --git a/code/game/objects/landmarks/costume.dm b/code/game/objects/landmarks/costume.dm index 1c9e5c895f..7b5178874d 100644 --- a/code/game/objects/landmarks/costume.dm +++ b/code/game/objects/landmarks/costume.dm @@ -10,7 +10,7 @@ /obj/landmark/costume/gladiator/New() new /obj/item/clothing/under/gladiator(src.loc) - new /obj/item/clothing/head/helmet/gladiator(src.loc) + new /obj/item/clothing/head/gladiator(src.loc) /obj/landmark/costume/madscientist/New() //new /obj/item/clothing/under/gimmick/rank/captain/suit(src.loc) diff --git a/code/game/objects/random/cloth.dm b/code/game/objects/random/cloth.dm index 56e8ae4ed4..d658085609 100644 --- a/code/game/objects/random/cloth.dm +++ b/code/game/objects/random/cloth.dm @@ -53,15 +53,22 @@ icon_state = "armor-grey" /obj/random/cloth/armor/item_to_spawn() - return pickweight(list(/obj/item/clothing/suit/armor/bulletproof = 10, - /obj/item/clothing/suit/space/captain = 1, + return pickweight(list(/obj/item/clothing/suit/armor/vest = 20, + /obj/item/clothing/suit/armor/vest/security = 15, + /obj/item/clothing/suit/armor/vest/detective = 10, + /obj/item/clothing/suit/armor/vest/ironhammer = 2, + /obj/item/clothing/suit/armor/vest/handmade = 5, + /obj/item/clothing/suit/armor/flak = 5, + /obj/item/clothing/suit/armor/flak/green = 5, + /obj/item/clothing/suit/armor/bulletproof = 10, + /obj/item/clothing/suit/armor/bulletproof/ironhammer = 2, + /obj/item/clothing/suit/armor/bulletproof/serbian = 2, + /obj/item/clothing/suit/armor/bulletproof/serbian/green = 2, + /obj/item/clothing/suit/armor/bulletproof/serbian/tan = 2, + /obj/item/clothing/suit/armor/laserproof = 4, /obj/item/clothing/suit/armor/heavy = 2, /obj/item/clothing/suit/armor/heavy/riot = 4, - /obj/item/clothing/suit/armor/laserproof = 2, - /obj/item/clothing/suit/armor/vest/detective = 10, - /obj/item/clothing/suit/armor/vest/handmade = 20, - /obj/item/clothing/suit/space/void/SCAF = 1, - /obj/item/clothing/suit/armor/vest/security = 20)) + /obj/item/clothing/suit/storage/vest/merc = 2)) /obj/random/cloth/armor/low_chance name = "low chance random armor" @@ -118,8 +125,8 @@ /obj/item/clothing/suit/bio_suit/scientist = 5, /obj/item/clothing/suit/bio_suit/security = 5, /obj/item/clothing/suit/bio_suit/virology = 5, - /obj/item/clothing/suit/radiation = 30, - /obj/item/clothing/suit/space/bomb = 20)) + /obj/item/clothing/suit/radiation = 15, + /obj/item/clothing/suit/space/bomb = 10)) /obj/random/cloth/hazmatsuit/low_chance name = "low chance random hazmat suit" @@ -168,7 +175,6 @@ /obj/item/clothing/under/suit_jacket/red = 5, /obj/item/clothing/under/suit_jacket = 5, /obj/item/clothing/under/turtleneck = 5, - /obj/item/clothing/under/tactical = 5, /obj/item/clothing/under/syndicate = 5)) /obj/random/cloth/under/low_chance @@ -186,9 +192,18 @@ icon_state = "armor-grey" /obj/random/cloth/helmet/item_to_spawn() - return pickweight(list(/obj/item/clothing/head/helmet = 5, - /obj/item/clothing/head/helmet/riot = 5, - /obj/item/clothing/head/helmet/space/void/SCAF = 1)) + return pickweight(list(/obj/item/clothing/head/armor/helmet = 20, + /obj/item/clothing/head/armor/helmet/visor = 15, + /obj/item/clothing/head/armor/helmet/dermal = 2, + /obj/item/clothing/head/armor/helmet/ironhammer = 2, + /obj/item/clothing/head/armor/bulletproof = 10, + /obj/item/clothing/head/armor/laserproof = 4, + /obj/item/clothing/head/armor/riot = 4, + /obj/item/clothing/head/armor/steelpot = 10, + /obj/item/clothing/head/armor/altyn = 2, + /obj/item/clothing/head/armor/altyn/brown = 2, + /obj/item/clothing/head/armor/altyn/black = 2, + /obj/item/clothing/head/armor/altyn/maska = 1)) /obj/random/cloth/helmet/low_chance name = "low chance random helmet" @@ -276,8 +291,8 @@ /obj/item/clothing/gloves/insulated/cheap = 7, /obj/item/clothing/gloves/latex = 9, /obj/item/clothing/gloves/thick = 5, - /obj/item/clothing/gloves/thick/combat = 1, - /obj/item/clothing/gloves/thick/swat = 2, + /obj/item/clothing/gloves/security/tactical = 1, + /obj/item/clothing/gloves/security = 2, /obj/item/clothing/gloves/stungloves = 1)) /obj/random/cloth/gloves/low_chance diff --git a/code/game/objects/structures/crates_lockers/closets/gimmick.dm b/code/game/objects/structures/crates_lockers/closets/gimmick.dm index c323877684..4883526f98 100644 --- a/code/game/objects/structures/crates_lockers/closets/gimmick.dm +++ b/code/game/objects/structures/crates_lockers/closets/gimmick.dm @@ -55,9 +55,9 @@ new /obj/item/weapon/storage/box/flashbangs(src) new /obj/item/weapon/storage/box/flashbangs(src) new /obj/item/weapon/storage/box/flashbangs(src) - new /obj/item/clothing/head/helmet/thunderdome(src) - new /obj/item/clothing/head/helmet/thunderdome(src) - new /obj/item/clothing/head/helmet/thunderdome(src) + new /obj/item/clothing/head/armor/helmet/thunderdome(src) + new /obj/item/clothing/head/armor/helmet/thunderdome(src) + new /obj/item/clothing/head/armor/helmet/thunderdome(src) /obj/structure/closet/thunderdome/tdgreen name = "green-team Thunderdome closet" @@ -79,9 +79,9 @@ new /obj/item/weapon/storage/box/flashbangs(src) new /obj/item/weapon/storage/box/flashbangs(src) new /obj/item/weapon/storage/box/flashbangs(src) - new /obj/item/clothing/head/helmet/thunderdome(src) - new /obj/item/clothing/head/helmet/thunderdome(src) - new /obj/item/clothing/head/helmet/thunderdome(src) + new /obj/item/clothing/head/armor/helmet/thunderdome(src) + new /obj/item/clothing/head/armor/helmet/thunderdome(src) + new /obj/item/clothing/head/armor/helmet/thunderdome(src) /obj/structure/closet/oldstyle name = "old closet" diff --git a/code/game/objects/structures/crates_lockers/closets/job_closets.dm b/code/game/objects/structures/crates_lockers/closets/job_closets.dm index e9e700aaf4..95d21134d3 100644 --- a/code/game/objects/structures/crates_lockers/closets/job_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm @@ -120,6 +120,7 @@ else new /obj/item/weapon/storage/backpack/satchel/neotheology(src) new /obj/item/clothing/under/rank/acolyte(src) + new /obj/item/clothing/suit/neotheology_jacket(src) new /obj/item/weapon/storage/belt/security/neotheology(src) new /obj/item/clothing/mask/gas(src) new /obj/item/device/radio/headset/church(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/chaplain.dm b/code/game/objects/structures/crates_lockers/closets/secure/chaplain.dm index a5e9857181..ad36e280c8 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/chaplain.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/chaplain.dm @@ -16,8 +16,8 @@ new /obj/item/weapon/storage/belt/security/neotheology(src) new /obj/item/clothing/shoes/reinforced(src) new /obj/item/clothing/shoes/reinforced(src) - new /obj/item/clothing/suit/chaplain_hoodie(src) - new /obj/item/clothing/suit/chaplain_hoodie(src) + new /obj/item/clothing/suit/neotheology_jacket(src) + new /obj/item/clothing/suit/neotheology_jacket(src) new /obj/item/clothing/gloves/thick(src) new /obj/item/clothing/gloves/thick(src) new /obj/item/weapon/storage/fancy/candle_box(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index fadd1ad112..250d7c7ed1 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -9,7 +9,7 @@ new /obj/item/clothing/head/caphat/cap(src) new /obj/item/clothing/under/rank/captain(src) new /obj/item/clothing/suit/armor/vest(src) - new /obj/item/clothing/head/helmet(src) + new /obj/item/clothing/head/armor/helmet(src) new /obj/item/clothing/shoes/color/brown(src) new /obj/item/device/radio/headset/heads/captain(src) new /obj/item/clothing/gloves/captain(src) @@ -33,7 +33,7 @@ new /obj/item/clothing/under/rank/first_officer(src) new /obj/item/clothing/head/caphat/hop(src) new /obj/item/clothing/suit/armor/vest(src) - new /obj/item/clothing/head/helmet(src) + new /obj/item/clothing/head/armor/helmet(src) new /obj/item/device/radio/headset/heads/hop(src) new /obj/item/weapon/storage/box/ids(src) new /obj/item/weapon/storage/box/ids( src ) @@ -62,7 +62,7 @@ new /obj/item/clothing/head/beret/sec/navy/hos(src) new /obj/item/clothing/head/HoS(src) new /obj/item/clothing/mask/gas/ihs(src) - new /obj/item/clothing/suit/armor/hos(src) + new /obj/item/clothing/suit/armor/greatcoat/ironhammer(src) new /obj/item/clothing/under/rank/ih_commander(src) new /obj/item/device/radio/headset/heads/hos(src) new /obj/item/clothing/glasses/sunglasses/sechud/tactical(src) @@ -148,7 +148,7 @@ new /obj/item/clothing/under/rank/medspec(src) new /obj/item/device/radio/headset/headset_sec(src) new /obj/item/weapon/storage/belt/security(src) - new /obj/item/clothing/shoes/reinforced(src) + new /obj/item/clothing/shoes/reinforced/ironhammer(src) new /obj/item/clothing/gloves/stungloves(src) new /obj/item/weapon/cell/medium/high(src) new /obj/item/clothing/suit/storage/toggle/labcoat/medspec(src) @@ -172,7 +172,7 @@ new /obj/item/clothing/gloves/thick(src) new /obj/item/clothing/head/det(src) new /obj/item/clothing/head/det/grey(src) - new /obj/item/clothing/shoes/reinforced(src) + new /obj/item/clothing/shoes/reinforced/ironhammer(src) new /obj/item/weapon/storage/box/evidence(src) new /obj/item/device/radio/headset/headset_sec(src) new /obj/item/weapon/storage/belt/security(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 32b1b567e7..7e268779a4 100644 --- a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm @@ -25,14 +25,14 @@ new /obj/item/clothing/mask/breath(src) new /obj/item/clothing/mask/breath(src) new /obj/item/clothing/suit/space/emergency(src) - new /obj/item/clothing/head/helmet/space/emergency(src) + new /obj/item/clothing/head/space/emergency(src) if ("aid") new /obj/item/weapon/tank/emergency_oxygen(src) new /obj/item/weapon/storage/toolbox/emergency(src) new /obj/item/clothing/mask/breath(src) new /obj/item/weapon/storage/firstaid/o2(src) new /obj/item/clothing/suit/space/emergency(src) - new /obj/item/clothing/head/helmet/space/emergency(src) + new /obj/item/clothing/head/space/emergency(src) if ("tank") new /obj/item/weapon/tank/emergency_oxygen/engi(src) new /obj/item/clothing/mask/breath(src) @@ -45,8 +45,8 @@ new /obj/item/weapon/storage/firstaid/o2(src) new /obj/item/clothing/suit/space/emergency(src) new /obj/item/clothing/suit/space/emergency(src) - new /obj/item/clothing/head/helmet/space/emergency(src) - new /obj/item/clothing/head/helmet/space/emergency(src) + new /obj/item/clothing/head/space/emergency(src) + new /obj/item/clothing/head/space/emergency(src) /obj/structure/closet/emcloset/legacy/populate_contents() new /obj/item/weapon/tank/oxygen(src) @@ -144,10 +144,10 @@ new /obj/item/clothing/suit/space/bomb(src) new /obj/item/clothing/under/color/black(src) new /obj/item/clothing/shoes/black(src) - new /obj/item/clothing/head/helmet/space/bomb(src) + new /obj/item/clothing/head/space/bomb(src) /obj/structure/closet/bombcloset/security/populate_contents() new /obj/item/clothing/suit/space/bomb/security(src) new /obj/item/clothing/under/rank/security(src) new /obj/item/clothing/shoes/color/brown(src) - new /obj/item/clothing/head/helmet/space/bomb/security(src) + new /obj/item/clothing/head/space/bomb/security(src) diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm index eb9f967932..d6d1136b28 100644 --- a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm +++ b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm @@ -59,7 +59,7 @@ new /obj/item/clothing/shoes/black(src) new /obj/item/clothing/suit/nun(src) new /obj/item/clothing/head/nun_hood(src) - new /obj/item/clothing/suit/chaplain_hoodie(src) + new /obj/item/clothing/suit/neotheology_jacket(src) new /obj/item/clothing/head/chaplain_hood(src) new /obj/item/clothing/under/bride_white(src) new /obj/item/weapon/storage/fancy/candle_box(src) @@ -282,7 +282,7 @@ icon_door = "black" /obj/structure/closet/wardrobe/tactical/populate_contents() - new /obj/item/clothing/under/tactical(src) + new /obj/item/clothing/under/syndicate(src) new /obj/item/clothing/suit/armor/heavy(src) new /obj/item/clothing/mask/balaclava/tactical(src) new /obj/item/clothing/glasses/sunglasses/sechud/tactical(src) diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index c0fe0c3304..6063d3b576 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -445,7 +445,7 @@ ADMIN_VERB_ADD(/client/proc/cmd_admin_dress_old, R_FUN, FALSE) M.equip_to_slot_or_del(new /obj/item/clothing/under/color/grey(M), slot_w_uniform) M.equip_to_slot_or_del(new /obj/item/clothing/suit/space(M), slot_wear_suit) - M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space(M), slot_head) + M.equip_to_slot_or_del(new /obj/item/clothing/head/space(M), slot_head) var /obj/item/weapon/tank/jetpack/J = new /obj/item/weapon/tank/jetpack/oxygen(M) M.equip_to_slot_or_del(J, slot_back) J.toggle() @@ -459,7 +459,7 @@ ADMIN_VERB_ADD(/client/proc/cmd_admin_dress_old, R_FUN, FALSE) M.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(M), slot_shoes) M.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(M), slot_wear_suit) - M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/thunderdome(M), slot_head) + M.equip_to_slot_or_del(new /obj/item/clothing/head/armor/helmet/thunderdome(M), slot_head) M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/plasma/destroyer(M), slot_r_hand) M.equip_to_slot_or_del(new /obj/item/weapon/tool/knife(M), slot_l_hand) @@ -537,7 +537,7 @@ ADMIN_VERB_ADD(/client/proc/cmd_admin_dress_old, R_FUN, FALSE) M.equip_to_slot_or_del(new /obj/item/clothing/head/chaplain_hood(M), slot_head) M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_l_ear) M.equip_to_slot_or_del(new /obj/item/clothing/glasses/powered/thermal/plain/monocle(M), slot_glasses) - M.equip_to_slot_or_del(new /obj/item/clothing/suit/chaplain_hoodie(M), slot_wear_suit) + M.equip_to_slot_or_del(new /obj/item/clothing/suit/neotheology_jacket(M), slot_wear_suit) M.equip_to_slot_or_del(new /obj/item/weapon/bikehorn(M), slot_r_store) var/obj/item/weapon/card/id/W = new(M) @@ -672,7 +672,7 @@ ADMIN_VERB_ADD(/client/proc/cmd_admin_dress_old, R_FUN, FALSE) M.equip_to_slot_or_del(new /obj/item/clothing/under/syndicate(M), slot_w_uniform) M.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/detective(M), slot_wear_suit) M.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(M), slot_shoes) - M.equip_to_slot_or_del(new /obj/item/clothing/gloves/thick/combat(M), slot_gloves) + M.equip_to_slot_or_del(new /obj/item/clothing/gloves/security/tactical(M), slot_gloves) M.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(M), slot_l_ear) M.equip_to_slot_or_del(new /obj/item/clothing/glasses/powered/thermal/plain/eyepatch(M), slot_glasses) M.equip_to_slot_or_del(new /obj/item/clothing/mask/smokable/cigarette/cigar/havana(M), slot_wear_mask) @@ -691,7 +691,7 @@ ADMIN_VERB_ADD(/client/proc/cmd_admin_dress_old, R_FUN, FALSE) if("soviet admiral") M.equip_to_slot_or_del(new /obj/item/clothing/head/hgpiratecap(M), slot_head) M.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(M), slot_shoes) - M.equip_to_slot_or_del(new /obj/item/clothing/gloves/thick/combat(M), slot_gloves) + M.equip_to_slot_or_del(new /obj/item/clothing/gloves/security/tactical(M), slot_gloves) M.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(M), slot_l_ear) M.equip_to_slot_or_del(new /obj/item/clothing/glasses/powered/thermal/plain/eyepatch(M), slot_glasses) M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(M), slot_back) diff --git a/code/modules/assembly/shock_kit.dm b/code/modules/assembly/shock_kit.dm index 3e5b7f39f3..5e39592275 100644 --- a/code/modules/assembly/shock_kit.dm +++ b/code/modules/assembly/shock_kit.dm @@ -2,7 +2,7 @@ name = "electrohelmet assembly" desc = "This appears to be made from both an electropack and a helmet." icon_state = "shock_kit" - var/obj/item/clothing/head/helmet/part1 = null + var/obj/item/clothing/head/armor/helmet/part1 = null var/obj/item/device/radio/electropack/part2 = null var/status = 0 w_class = ITEM_SIZE_HUGE diff --git a/code/modules/cargo/exports/gear.dm b/code/modules/cargo/exports/gear.dm index 4e1a44b2f3..e2dfa8164e 100644 --- a/code/modules/cargo/exports/gear.dm +++ b/code/modules/cargo/exports/gear.dm @@ -7,7 +7,7 @@ cost = 100 include_subtypes = FALSE unit_name = "helmet" - export_types = list(/obj/item/clothing/head/helmet) + export_types = list(/obj/item/clothing/head/armor/helmet) /datum/export/gear/sec_armor cost = 200 @@ -20,7 +20,7 @@ /datum/export/gear/riot_helmet cost = 250 unit_name = "riot helmet" - export_types = list(/obj/item/clothing/head/helmet/riot) + export_types = list(/obj/item/clothing/head/armor/riot) /datum/export/gear/riot_armor cost = 500 @@ -65,7 +65,7 @@ /datum/export/gear/space/helmet cost = 400 unit_name = "space helmet" - export_types = list(/obj/item/clothing/head/helmet/space) + export_types = list(/obj/item/clothing/head/space) include_subtypes = FALSE /datum/export/gear/space/suit @@ -77,7 +77,7 @@ /datum/export/gear/space/helmet/emergency cost = 200 unit_name = "emergency space helmet" - export_types = list(/obj/item/clothing/head/helmet/space/emergency) + export_types = list(/obj/item/clothing/head/space/emergency) include_subtypes = TRUE /datum/export/gear/space/suit/emergency @@ -96,7 +96,7 @@ /datum/export/gear/space/syndiehelmet cost = 1000 unit_name = "Syndicate space helmet" - export_types = list(/obj/item/clothing/head/helmet/space/syndicate) + export_types = list(/obj/item/clothing/head/space/syndicate) include_subtypes = TRUE /datum/export/gear/space/syndiesuit @@ -114,7 +114,7 @@ /datum/export/gear/space/helmet/captain cost = 1000 unit_name = "Captain's space helmet" - export_types = list(/obj/item/clothing/head/helmet/space/capspace) + export_types = list(/obj/item/clothing/head/space/capspace) /datum/export/gear/space/suit/captain cost = 1500 diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index a17fd0f3b7..84c9021a5e 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -202,8 +202,8 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /obj/item/clothing/suit/armor/vest/security, /obj/item/clothing/suit/armor/vest/detective, /obj/item/clothing/suit/storage/vest, - /obj/item/clothing/head/helmet, - /obj/item/clothing/head/helmet) + /obj/item/clothing/head/armor/helmet, + /obj/item/clothing/head/armor/helmet) cost = 1500 containertype = /obj/structure/closet/crate/secure crate_name = "IH Surplus Amor" @@ -223,11 +223,11 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /obj/item/weapon/handcuffs, /obj/item/weapon/handcuffs, /obj/item/weapon/handcuffs, - /obj/item/clothing/head/helmet/riot, + /obj/item/clothing/head/armor/riot_hud, /obj/item/clothing/suit/armor/heavy/riot, - /obj/item/clothing/head/helmet/riot, + /obj/item/clothing/head/armor/riot_hud, /obj/item/clothing/suit/armor/heavy/riot, - /obj/item/clothing/head/helmet/riot, + /obj/item/clothing/head/armor/riot_hud, /obj/item/clothing/suit/armor/heavy/riot) cost = 6100 containertype = /obj/structure/closet/crate/secure @@ -246,8 +246,8 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee name = "IH Ballistic Armor" contains = list(/obj/item/clothing/suit/armor/bulletproof, /obj/item/clothing/suit/armor/bulletproof, - /obj/item/clothing/head/helmet, - /obj/item/clothing/head/helmet) + /obj/item/clothing/head/armor/helmet, + /obj/item/clothing/head/armor/helmet) cost = 3000 containertype = /obj/structure/closet/crate/secure crate_name = "FS Close Quarters Pack" @@ -293,8 +293,8 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee name = "IH Ablative Armor" contains = list(/obj/item/clothing/suit/armor/laserproof, /obj/item/clothing/suit/armor/laserproof, - /obj/item/clothing/head/helmet, - /obj/item/clothing/head/helmet) + /obj/item/clothing/head/armor/helmet, + /obj/item/clothing/head/armor/helmet) cost = 3500 containertype = /obj/structure/closet/crate/secure crate_name = "IH Ablative Armor crate" diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 0345a89d73..3e5f5bb5ba 100755 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -320,7 +320,6 @@ BLIND // can't see anything permeability_coefficient = 0.50 slowdown = SHOES_SLOWDOWN force = 2 - var/overshoes = 0 /obj/item/clothing/shoes/proc/draw_knife() set name = "Draw Boot Knife" diff --git a/code/modules/clothing/glasses/night.dm b/code/modules/clothing/glasses/night.dm index 8b02da9798..0692767e93 100644 --- a/code/modules/clothing/glasses/night.dm +++ b/code/modules/clothing/glasses/night.dm @@ -14,3 +14,15 @@ /obj/item/clothing/glasses/powered/night/Initialize() . = ..() overlay = global_hud.nvg + +/obj/item/clothing/glasses/bullet_proof_ironhammer + name = "Night Vision Goggles" + desc = "You can totally see in the dark now!" + icon_state = "bulletproof_ironhammer_goggles" + darkness_view = 7 + see_invisible = SEE_INVISIBLE_NOLIGHTING + flags = ABSTRACT + +/obj/item/clothing/glasses/bullet_proof_ironhammer/Initialize() + . = ..() + overlay = global_hud.nvg diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index 6b960b1dfa..f154cab7b5 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -28,9 +28,9 @@ permeability_coefficient = 0.05 price_tag = 50 - New() - //average of 0.5, somewhat better than regular gloves' 0.75 - siemens_coefficient = pick(0,0.1,0.3,0.5,0.5,0.75,1.35) +/obj/item/clothing/gloves/insulated/cheap/New() + //average of 0.5, somewhat better than regular gloves' 0.75 + siemens_coefficient = pick(0,0.1,0.3,0.5,0.5,0.75,1.35) /obj/item/clothing/gloves/thick desc = "These work gloves are thick and fire-resistant." @@ -46,34 +46,29 @@ heat_protection = ARMS max_heat_protection_temperature = GLOVES_MAX_HEAT_PROTECTION_TEMPERATURE -/obj/item/clothing/gloves/thick/swat - desc = "These tactical gloves are somewhat fire and impact-resistant." - name = "IHS combat gloves" - icon_state = "ihscombat" - item_state = "ihscombat" - armor = list( - melee = 30, - bullet = 20, - energy = 20, - bomb = 25, - bio = 0, - rad = 0 - ) - price_tag = 300 +/obj/item/clothing/gloves/security + desc = "Padded security gloves." + name = "security gloves" + icon_state = "security" + item_state = "combat" + siemens_coefficient = 0.5 + permeability_coefficient = 0.05 + cold_protection = ARMS + min_cold_protection_temperature = GLOVES_MIN_COLD_PROTECTION_TEMPERATURE + heat_protection = ARMS + max_heat_protection_temperature = GLOVES_MAX_HEAT_PROTECTION_TEMPERATURE + price_tag = 100 -/obj/item/clothing/gloves/thick/combat //Combined effect of SWAT gloves and insulated gloves +/obj/item/clothing/gloves/security/ironhammer + name = "operator's gloves" + icon_state = "security_ironhammer" + item_state = "combat" + +/obj/item/clothing/gloves/security/tactical desc = "These tactical gloves are somewhat fire and impact resistant." - name = "combat gloves" - icon_state = "black" + name = "tactical gloves" + icon_state = "security" item_state = "swat_gl" - armor = list( - melee = 30, - bullet = 20, - energy = 20, - bomb = 25, - bio = 0, - rad = 0 - ) siemens_coefficient = 0 price_tag = 500 diff --git a/code/modules/clothing/head/armor.dm b/code/modules/clothing/head/armor.dm new file mode 100644 index 0000000000..d095c5db0b --- /dev/null +++ b/code/modules/clothing/head/armor.dm @@ -0,0 +1,359 @@ +/obj/item/clothing/head/armor + item_state_slots = list( + slot_l_hand_str = "helmet", + slot_r_hand_str = "helmet", + ) + body_parts_covered = HEAD | EARS + item_flags = THICKMATERIAL + flags_inv = HIDEEARS + cold_protection = HEAD + min_cold_protection_temperature = HELMET_MIN_COLD_PROTECTION_TEMPERATURE + heat_protection = HEAD + max_heat_protection_temperature = HELMET_MAX_HEAT_PROTECTION_TEMPERATURE + siemens_coefficient = 0.6 + w_class = ITEM_SIZE_NORMAL + price_tag = 100 + +/* + * Helmets + */ +/obj/item/clothing/head/armor/helmet + name = "helmet" + desc = "Standard Security gear. Protects the head from impacts." + icon_state = "helmet" + armor = list( + melee = 35, + bullet = 30, + energy = 30, + bomb = 20, + bio = 0, + rad = 0 + ) + +/obj/item/clothing/head/armor/helmet/visor + desc = "Standard Security gear. Protects the head from impacts. Has a permanently affixed visor to protect the eyes." + icon_state = "helmet_visor" + body_parts_covered = HEAD | EARS | EYES + +/obj/item/clothing/head/armor/helmet/dermal + name = "Dermal Armour Patch" + desc = "You're not quite sure how you manage to take it on and off, but it implants nicely in your head." + icon_state = "dermal" + body_parts_covered = HEAD + flags_inv = NONE + +/obj/item/clothing/head/armor/helmet/ironhammer + name = "operator helmet" + desc = "Ironhammer Security gear. Protects the head from impacts." + icon_state = "helmet_ironhammer" + +/obj/item/clothing/head/armor/helmet/handmade + name = "handmade combat helmet" + desc = "It looks like it was made from a bucket and some steel. Uncomfortable and heavy but better than nothing." + icon_state = "helmet_handmade" + armor = list( + melee = 35, + bullet = 25, + energy = 20, + bomb = 10, + bio = 0, + rad = 0 + ) + price_tag = 75 + +/obj/item/clothing/head/armor/helmet/thunderdome + name = "\improper Thunderdome helmet" + desc = "'Let the battle commence!'" + icon_state = "thunderdome" + min_cold_protection_temperature = SPACE_HELMET_MIN_COLD_PROTECTION_TEMPERATURE + siemens_coefficient = 1 + +/obj/item/clothing/head/armor/bulletproof + name = "bulletproof helmet" + desc = "A bulletproof security helmet that excels in protecting the wearer against traditional projectile weaponry and explosives to a minor extent." + icon_state = "bulletproof" + body_parts_covered = HEAD | EARS | EYES | FACE + armor = list( + melee = 30, + bullet = 75, + energy = 25, + bomb = 25, + bio = 0, + rad = 0 + ) + price_tag = 250 + +/obj/item/clothing/head/armor/bulletproof/ironhammer + name = "bulletproof helmet" + desc = "A bulletproof security helmet that excels in protecting the wearer against traditional projectile weaponry and explosives to a minor extent." + icon_state = "bulletproof_ironhammer" + action_button_name = "Toggle Night Vision" + var/obj/item/clothing/glasses/bullet_proof_ironhammer/hud + price_tag = 150 + +/obj/item/clothing/head/armor/bulletproof/ironhammer/New() + ..() + hud = new(src) + hud.canremove = FALSE + +/obj/item/clothing/head/armor/bulletproof/ironhammer/ui_action_click() + toggle() + +/obj/item/clothing/head/armor/bulletproof/ironhammer/verb/toggle() + set name = "Toggle Night Vision" + set desc = "Allows you to see in the dark" + set category = "Object" + var/mob/user = loc + if(usr.stat || user.restrained()) + return + if(user.get_equipped_item(slot_head) != src) + return + if(hud in src) + if(user.equip_to_slot_if_possible(hud, slot_glasses)) + to_chat(user, "You enable security hud on [src].") + update_icon() + else + to_chat(user, "You are wearing something which is in the way.") + else + if(ismob(hud.loc)) + var/mob/hud_loc = hud.loc + hud_loc.drop_from_inventory(hud, src) + to_chat(user, "You disable security hud on [src].") + hud.forceMove(src) + update_icon() + usr.update_action_buttons() + +/obj/item/clothing/head/armor/bulletproof/ironhammer/dropped(usr) + ..() + if(hud.loc != src) + if(ismob(hud.loc)) + var/mob/hud_loc = hud.loc + hud_loc.drop_from_inventory(hud, src) + to_chat(hud_loc, "[hud] automaticly retract in [src].") + hud.forceMove(src) + update_icon() + +/obj/item/clothing/head/armor/bulletproof/ironhammer/update_icon() + if(hud in src) + icon_state = "bulletproof_ironhammer" + set_light(0, 0) + else + icon_state = "bulletproof_ironhammer_on" + set_light(1, 1, COLOR_LIGHTING_GREEN_MACHINERY) + update_wear_icon() + ..() + +/obj/item/clothing/head/armor/laserproof //TODO: Give it reflection capabilities after refactor + name = "ablative helmet" + desc = "A ablative security helmet that excels in protecting the wearer against energy and laser projectiles." + icon_state = "ablative" + body_parts_covered = HEAD | EARS | EYES + flags_inv = HIDEEARS | HIDEEYES + armor = list( + melee = 30, + bullet = 25, + energy = 75, + bomb = 0, + bio = 0, + rad = 0 + ) + siemens_coefficient = 0 + price_tag = 325 + +// Riot helmet +/obj/item/clothing/head/armor/riot + name = "riot helmet" + desc = "It's a helmet specifically designed to protect against close range attacks." + icon_state = "riot" + body_parts_covered = HEAD|FACE|EARS + armor = list( + melee = 75, + bullet = 30, + energy = 30, + bomb = 25, + bio = 0, + rad = 0 + ) + item_flags = THICKMATERIAL | COVER_PREVENT_MANIPULATION + tint = TINT_MODERATE + flash_protection = FLASH_PROTECTION_MAJOR + action_button_name = "Flip Face Shield" + var/up = FALSE + var/base_state + price_tag = 150 + +/obj/item/clothing/head/armor/riot/attack_self() + if(!base_state) + base_state = icon_state + toggle() + +/obj/item/clothing/head/armor/riot/verb/toggle() + set category = "Object" + set name = "Adjust riot helmet" + set src in usr + + if(!usr.incapacitated()) + if(src.up) + src.up = !src.up + body_parts_covered |= (EYES|FACE) + tint = initial(tint) + flash_protection = initial(flash_protection) + icon_state = base_state + armor = initial(armor) + to_chat(usr, "You flip the [src] down to protect your face.") + else + src.up = !src.up + body_parts_covered &= ~(EYES|FACE) + tint = TINT_NONE + flash_protection = FLASH_PROTECTION_NONE + icon_state = "[base_state]_up" + armor = list(melee = 35, bullet = 25, energy = 25, bomb = 20, bio = 0, rad = 0) + to_chat(usr, "You push the [src] up out of your face.") + update_wear_icon() //so our mob-overlays + usr.update_action_buttons() + +/* + * Ironhammer HUD helmet + */ +/obj/item/clothing/head/armor/riot_hud + name = "riot helmet" + desc = "Standard-issue Ironhammer helmet with a basic HUD and targeting system included." + icon_state = "light_riot" + body_parts_covered = HEAD|FACE|EARS + armor = list( + melee = 75, + bullet = 30, + energy = 30, + bomb = 25, + bio = 0, + rad = 0 + ) + item_flags = THICKMATERIAL | COVER_PREVENT_MANIPULATION + flash_protection = FLASH_PROTECTION_MAJOR + action_button_name = "Toggle Security Hud" + var/obj/item/clothing/glasses/hud/security/hud + price_tag = 150 + +/obj/item/clothing/head/armor/riot_hud/New() + ..() + hud = new(src) + hud.canremove = FALSE + +/obj/item/clothing/head/armor/riot_hud/ui_action_click() + toggle() + +/obj/item/clothing/head/armor/riot_hud/verb/toggle() + set name = "Toggle Security Hud" + set desc = "Shows you jobs and criminal statuses" + set category = "Object" + var/mob/user = loc + if(usr.stat || user.restrained()) + return + if(user.get_equipped_item(slot_head) != src) + return + if(hud in src) + if(user.equip_to_slot_if_possible(hud, slot_glasses)) + to_chat(user, "You enable security hud on [src].") + update_icon() + else + if(ismob(hud.loc)) + var/mob/hud_loc = hud.loc + hud_loc.drop_from_inventory(hud, src) + to_chat(user, "You disable security hud on [src].") + hud.forceMove(src) + update_icon() + usr.update_action_buttons() + +/obj/item/clothing/head/armor/riot_hud/dropped(usr) + ..() + if(hud.loc != src) + if(ismob(hud.loc)) + var/mob/hud_loc = hud.loc + hud_loc.drop_from_inventory(hud, src) + to_chat(hud_loc, "[hud] automaticly retract in [src].") + hud.forceMove(src) + update_icon() + +/obj/item/clothing/head/armor/riot_hud/update_icon() + if(hud in src) + icon_state = "light_riot" + set_light(0, 0) + else + icon_state = "light_riot_on" + set_light(2, 2, COLOR_LIGHTING_ORANGE_MACHINERY) + update_wear_icon() + ..() + +// S E R B I A // + +/obj/item/clothing/head/armor/steelpot + name = "steelpot helmet" + desc = " Titanium helmet of serbian origin. Still widely used despite of its discontinued production." + icon_state = "steelpot" + armor = list(melee = 40, bullet = 35, energy = 0, bomb = 30, bio = 0, rad = 0) // slightly buffed IHS helmet minus energy resistance + flags_inv = BLOCKHAIR + body_parts_covered = HEAD|EARS + siemens_coefficient = 1 + +/obj/item/clothing/head/armor/altyn + name = "green altyn helmet" + desc = "Green titanium helmet of serbian origin. Still widely used despite of its discontinued production." + icon_state = "altyn" + armor = list(melee = 50, bullet = 50, energy = 0, bomb = 35, bio = 0, rad = 0) // slightly better than usual due to mask + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|BLOCKHAIR + body_parts_covered = HEAD|FACE|EARS + siemens_coefficient = 1 + + tint = TINT_MODERATE + action_button_name = "Flip Face Shield" + var/up = 0 + var/base_state + +/obj/item/clothing/head/armor/altyn/attack_self() + if(!base_state) + base_state = icon_state + toggle() + + +/obj/item/clothing/head/armor/altyn/verb/toggle() + set category = "Object" + set name = "Adjust face shield" + set src in usr + + if(!usr.incapacitated()) + if(src.up) + src.up = !src.up + body_parts_covered |= (EYES|FACE) + flags_inv |= (HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE) + tint = initial(tint) + icon_state = base_state + armor = initial(armor) + to_chat(usr, "You flip the [src] down to protect your face.") + else + src.up = !src.up + body_parts_covered &= ~(EYES|FACE) + tint = TINT_NONE + flags_inv &= ~(HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE) + icon_state = "[base_state]_up" + armor = list(melee = 20, bullet = 15, energy = 0, bomb = 15, bio = 0, rad = 0) + to_chat(usr, "You push the [src] up out of your face.") + update_wear_icon() //so our mob-overlays + usr.update_action_buttons() + + +/obj/item/clothing/head/armor/altyn/brown + name = "brown altyn helmet" + desc = "Brown titanium helmet of serbian origin. Still widely used despite of its discontinued production." + icon_state = "altyn_brown" + +/obj/item/clothing/head/armor/altyn/black + name = "black altyn helmet" + desc = "Black titanium helmet of serbian origin. Still widely used despite of its discontinued production." + icon_state = "altyn_black" + +/obj/item/clothing/head/armor/altyn/maska + name = "maska helmet" + desc = "I do not know who I am I, don\'t know why I\'m here. All I know is that I must kill." + icon_state = "maska" + armor = list(melee = 65, bullet = 65, energy = 0, bomb = 45, bio = 0, rad = 0) // best what you can get, unless you face lasers + tint = TINT_HEAVY diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm deleted file mode 100644 index bb30593709..0000000000 --- a/code/modules/clothing/head/helmet.dm +++ /dev/null @@ -1,207 +0,0 @@ -/obj/item/clothing/head/helmet - name = "helmet" - desc = "Standard Security gear. Protects the head from impacts." - icon_state = "helmet" - item_state_slots = list( - slot_l_hand_str = "helmet", - slot_r_hand_str = "helmet", - ) - item_flags = THICKMATERIAL - body_parts_covered = HEAD | EARS - armor = list( - melee = 30, - bullet = 30, - energy = 20, - bomb = 25, - bio = 0, - rad = 0 - ) - flags_inv = HIDEEARS - cold_protection = HEAD - min_cold_protection_temperature = HELMET_MIN_COLD_PROTECTION_TEMPERATURE - heat_protection = HEAD - max_heat_protection_temperature = HELMET_MAX_HEAT_PROTECTION_TEMPERATURE - siemens_coefficient = 0.7 - w_class = ITEM_SIZE_NORMAL - price_tag = 100 - -/obj/item/clothing/head/helmet/handmade - name = "handmade combat helmet" - desc = "It looks like it was made from a bucket and some steel. Uncomfortable and heavy but better than nothing." - icon_state = "hm_helmet" - armor = list( - melee = 30, - bullet = 10, - energy = 20, - bomb = 10, - bio = 0, - rad = 0 - ) - price_tag = 75 - -/obj/item/clothing/head/helmet/thunderdome - name = "\improper Thunderdome helmet" - desc = "'Let the battle commence!'" - icon_state = "thunderdome" - cold_protection = HEAD - min_cold_protection_temperature = SPACE_HELMET_MIN_COLD_PROTECTION_TEMPERATURE - siemens_coefficient = 1 - -/obj/item/clothing/head/helmet/gladiator - name = "gladiator helmet" - desc = "Ave, Imperator, morituri te salutant." - icon_state = "gladiator" - armor = list( - melee = 20, - bullet = 10, - energy = 10, - bomb = 10, - bio = 0, - rad = 0 - ) - flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|BLOCKHAIR - body_parts_covered = HEAD|FACE|EARS - siemens_coefficient = 1 - -/obj/item/clothing/head/helmet/riot - name = "riot helmet" - desc = "Standard-issue Ironhammer helmet with a basic HUD and targeting system included." - icon_state = "light_riot" - body_parts_covered = HEAD|FACE|EARS - armor = list( - melee = 75, - bullet = 30, - energy = 30, - bomb = 25, - bio = 0, - rad = 0 - ) - item_flags = THICKMATERIAL | COVER_PREVENT_MANIPULATION - flash_protection = FLASH_PROTECTION_MAJOR - action_button_name = "Toggle Security Hud" - var/obj/item/clothing/glasses/hud/security/hud - price_tag = 150 - -/obj/item/clothing/head/helmet/riot/New() - ..() - hud = new(src) - hud.canremove = FALSE - -/obj/item/clothing/head/helmet/riot/ui_action_click() - toggle() - -/obj/item/clothing/head/helmet/riot/verb/toggle() - set name = "Toggle Security Hud" - set desc = "Shows you jobs and criminal statuses" - set category = "Object" - var/mob/user = loc - if(usr.stat || user.restrained()) - return - if(user.get_equipped_item(slot_head) != src) - return - if(hud in src) - if(user.equip_to_slot_if_possible(hud, slot_glasses)) - to_chat(user, "You enable security hud on [src].") - update_icon() - else - if(ismob(hud.loc)) - var/mob/hud_loc = hud.loc - hud_loc.drop_from_inventory(hud, src) - to_chat(user, "You disable security hud on [src].") - hud.forceMove(src) - update_icon() - usr.update_action_buttons() - -/obj/item/clothing/head/helmet/riot/dropped(usr) - ..() - if(hud.loc != src) - if(ismob(hud.loc)) - var/mob/hud_loc = hud.loc - hud_loc.drop_from_inventory(hud, src) - to_chat(hud_loc, "[hud] automaticly retract in [src].") - hud.forceMove(src) - update_icon() - -/obj/item/clothing/head/helmet/riot/update_icon() - if(hud in src) - icon_state = "light_riot" - set_light(0, 0) - else - icon_state = "light_riot_on" - set_light(2, 2, COLOR_LIGHTING_ORANGE_MACHINERY) - update_wear_icon() - ..() - -// S E R B I A // - -/obj/item/clothing/head/helmet/steelpot - name = "steelpot helmet" - desc = " Titanium helmet of serbian origin. Still widely used despite of its discontinued production." - icon_state = "steelpot" - armor = list(melee = 40, bullet = 40, energy = 0, bomb = 40, bio = 0, rad = 0) // slightly buffed IHS helmet minus energy resistance - flags_inv = BLOCKHAIR - body_parts_covered = HEAD|EARS - siemens_coefficient = 1 - -/obj/item/clothing/head/helmet/altyn - name = "green altyn helmet" - desc = "Green titanium helmet of serbian origin. Still widely used despite of its discontinued production." - icon_state = "altyn" - armor = list(melee = 45, bullet = 55, energy = 0, bomb = 35, bio = 0, rad = 0) // slightly better than usual due to mask - flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|BLOCKHAIR - body_parts_covered = HEAD|FACE|EARS - siemens_coefficient = 1 - - tint = TINT_MODERATE - action_button_name = "Flip Face Shield" - var/up = 0 - var/base_state - -/obj/item/clothing/head/helmet/altyn/attack_self() - if(!base_state) - base_state = icon_state - toggle() - - -/obj/item/clothing/head/helmet/altyn/verb/toggle() - set category = "Object" - set name = "Adjust face shield" - set src in usr - - if(!usr.incapacitated()) - if(src.up) - src.up = !src.up - body_parts_covered |= (EYES|FACE) - flags_inv |= (HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE) - tint = initial(tint) - icon_state = base_state - armor = initial(armor) - to_chat(usr, "You flip the [src] down to protect your face.") - else - src.up = !src.up - body_parts_covered &= ~(EYES|FACE) - tint = TINT_NONE - flags_inv &= ~(HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE) - icon_state = "[base_state]_up" - armor = list(melee = 15, bullet = 15, energy = 0, bomb = 15, bio = 0, rad = 0) - to_chat(usr, "You push the [src] up out of your face.") - update_wear_icon() //so our mob-overlays - usr.update_action_buttons() - - -/obj/item/clothing/head/helmet/altyn/brown - name = "brown altyn helmet" - desc = "Brown titanium helmet of serbian origin. Still widely used despite of its discontinued production." - icon_state = "altyn_brown" - -/obj/item/clothing/head/helmet/altyn/black - name = "black altyn helmet" - desc = "Black titanium helmet of serbian origin. Still widely used despite of its discontinued production." - icon_state = "altyn_black" - -/obj/item/clothing/head/helmet/altyn/maska - name = "maska helmet" - desc = "I do not know who I am I, don\'t know why I\'m here. All I know is that I must kill." - icon_state = "maska" - armor = list(melee = 65, bullet = 65, energy = 0, bomb = 45, bio = 0, rad = 0) // best what you can get, unless you face lasers - tint = TINT_HEAVY diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm index 6b53f99577..07c230622c 100644 --- a/code/modules/clothing/head/misc.dm +++ b/code/modules/clothing/head/misc.dm @@ -238,3 +238,12 @@ desc = "An orange piece of cloth, worn on the head." icon_state = "orange_bandana" body_parts_covered = 0 + +/obj/item/clothing/head/gladiator + name = "gladiator helmet" + desc = "Ave, Imperator, morituri te salutant." + icon_state = "gladiator" + item_flags = THICKMATERIAL + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|BLOCKHAIR + body_parts_covered = HEAD|FACE|EARS + siemens_coefficient = 1 diff --git a/code/modules/clothing/shoes/colour.dm b/code/modules/clothing/shoes/colour.dm index 4247f525f2..7a3236152f 100644 --- a/code/modules/clothing/shoes/colour.dm +++ b/code/modules/clothing/shoes/colour.dm @@ -4,6 +4,10 @@ initial_name = "shoes" desc = "A pair of shoes." icon_state = "white" + cold_protection = LEGS + min_cold_protection_temperature = SHOE_MIN_COLD_PROTECTION_TEMPERATURE + heat_protection = LEGS + max_heat_protection_temperature = SHOE_MAX_HEAT_PROTECTION_TEMPERATURE /obj/item/clothing/shoes/color/white name = "white shoes" diff --git a/code/modules/clothing/shoes/jobs.dm b/code/modules/clothing/shoes/jobs.dm index 7d8887c579..1bd19a767d 100644 --- a/code/modules/clothing/shoes/jobs.dm +++ b/code/modules/clothing/shoes/jobs.dm @@ -14,44 +14,26 @@ icon_state = "jackboots" item_state = "jackboots" force = WEAPON_FORCE_HARMLESS - armor = list( - melee = 20, - bullet = 10, - energy = 10, - bomb = 10, - bio = 0, - rad = 0 - ) siemens_coefficient = 0.6 - can_hold_knife = 1 + can_hold_knife = TRUE + +/obj/item/clothing/shoes/jackboots/ironhammer + icon_state = "jackboots_ironhammer" /obj/item/clothing/shoes/reinforced - name = "reinforced boots" - desc = "Slightly reinforced boots. Optimal for your journey into a wonderful world of maintenance." + name = "reinforced shoes" + desc = "Slightly reinforced shoes. Optimal for your journey into a wonderful world of maintenance." icon_state = "reinforced" item_state = "reinforced" - armor = list( - melee = 20, - bullet = 10, - energy = 10, - bomb = 0, - bio = 0, - rad = 0 - ) siemens_coefficient = 0.5 +/obj/item/clothing/shoes/reinforced/ironhammer + icon_state = "reinforced_ironhammer" + /obj/item/clothing/shoes/workboots - name = "workboots" + name = "work boots" desc = "A pair of steel-toed work boots designed for use in industrial settings. Safety first." icon_state = "workboots" item_state = "workboots" - armor = list( - melee = 20, - bullet = 10, - energy = 10, - bomb = 10, - bio = 0, - rad = 25 - ) siemens_coefficient = 0 - can_hold_knife = 1 + can_hold_knife = TRUE diff --git a/code/modules/clothing/shoes/magboots.dm b/code/modules/clothing/shoes/magboots.dm index 5b2325f9d0..56aa177052 100644 --- a/code/modules/clothing/shoes/magboots.dm +++ b/code/modules/clothing/shoes/magboots.dm @@ -9,14 +9,6 @@ var/mag_slow = 3 var/icon_base = "magboots" action_button_name = "Toggle Magboots" - armor = list( - melee = 30, - bullet = 10, - energy = 20, - bomb = 25, - bio = 100, - rad = 90 - ) siemens_coefficient = 0 // DAMN BOI //This armor only applies to legs @@ -57,12 +49,15 @@ Used by mercenaries */ /obj/item/clothing/shoes/magboots/merc - desc = "Sturdy hiking boots with powerful magnetic soles. Useful in or out of a vessel." name = "military magboots" - icon_state = "mercboots0" + desc = "Sturdy hiking boots with powerful magnetic soles. Useful in or out of a vessel." + icon_state = "mercboots" + item_flags = NOSLIP|DRAG_AND_DROP_UNEQUIP species_restricted = null + force = WEAPON_FORCE_PAINFUL + overslot = FALSE + magpulse = TRUE + mag_slow = 0 + icon_base = null can_hold_knife = TRUE - overshoes = 0 - mag_slow = 2 - icon_base = "mercboots" - action_button_name = "Toggle Magboots" + action_button_name = null diff --git a/code/modules/clothing/spacesuits/bomb.dm b/code/modules/clothing/spacesuits/bomb.dm index fcea9bc898..a789cd085e 100644 --- a/code/modules/clothing/spacesuits/bomb.dm +++ b/code/modules/clothing/spacesuits/bomb.dm @@ -1,7 +1,7 @@ /* * Bomb protection */ -/obj/item/clothing/head/helmet/space/bomb +/obj/item/clothing/head/space/bomb name = "bomb helmet" desc = "Use in case of bomb." icon_state = "bombsuit" @@ -39,7 +39,7 @@ equip_delay = 10 SECONDS price_tag = 300 -/obj/item/clothing/head/helmet/space/bomb/security +/obj/item/clothing/head/space/bomb/security icon_state = "bombsuitsec" /obj/item/clothing/suit/space/bomb/security diff --git a/code/modules/clothing/spacesuits/captain.dm b/code/modules/clothing/spacesuits/captain.dm index f4e3a61100..468bab4343 100644 --- a/code/modules/clothing/spacesuits/captain.dm +++ b/code/modules/clothing/spacesuits/captain.dm @@ -1,5 +1,5 @@ //Captain's Spacesuit -/obj/item/clothing/head/helmet/space/capspace +/obj/item/clothing/head/space/capspace name = "space helmet" icon_state = "capspace" item_state = "capspace" diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index 8f2f45307b..1d0fe5b9c8 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -1,5 +1,5 @@ //Space santa outfit suit -/obj/item/clothing/head/helmet/space/santahat +/obj/item/clothing/head/space/santahat name = "Santa's hat" desc = "Ho ho ho. Merrry X-mas!" icon_state = "santahat" @@ -18,7 +18,7 @@ allowed = list(/obj/item) //for stuffing exta special presents //Orange emergency space suit -/obj/item/clothing/head/helmet/space/emergency +/obj/item/clothing/head/space/emergency name = "Emergency Space Helmet" icon_state = "emergencyhelm" item_state = "emergencyhelm" diff --git a/code/modules/clothing/spacesuits/rig/rig.dm b/code/modules/clothing/spacesuits/rig/rig.dm index f8cae18665..fa2407395f 100644 --- a/code/modules/clothing/spacesuits/rig/rig.dm +++ b/code/modules/clothing/spacesuits/rig/rig.dm @@ -51,7 +51,7 @@ var/suit_type = "hardsuit" var/list/initial_modules = list() var/chest_type = /obj/item/clothing/suit/space/rig - var/helm_type = /obj/item/clothing/head/helmet/space/rig + var/helm_type = /obj/item/clothing/head/space/rig var/boot_type = /obj/item/clothing/shoes/magboots/rig var/glove_type = /obj/item/clothing/gloves/rig var/cell_type = /obj/item/weapon/cell/large/high @@ -61,7 +61,7 @@ var/obj/item/weapon/tank/air_supply // Air tank, if any. var/obj/item/clothing/shoes/boots = null // Deployable boots, if any. var/obj/item/clothing/suit/space/rig/chest // Deployable chestpiece, if any. - var/obj/item/clothing/head/helmet/space/rig/helmet = null // Deployable helmet, if any. + var/obj/item/clothing/head/space/rig/helmet = null // Deployable helmet, if any. var/obj/item/clothing/gloves/rig/gloves = null // Deployable gauntlets, if any. var/obj/item/weapon/cell/large/cell // Power supply, if any. var/obj/item/rig_module/selected_module = null // Primary system (used with middle-click) diff --git a/code/modules/clothing/spacesuits/rig/rig_pieces.dm b/code/modules/clothing/spacesuits/rig/rig_pieces.dm index 4a3ded37bf..61acc2b28d 100644 --- a/code/modules/clothing/spacesuits/rig/rig_pieces.dm +++ b/code/modules/clothing/spacesuits/rig/rig_pieces.dm @@ -2,7 +2,7 @@ * Defines the helmets, gloves and shoes for rigs. */ -/obj/item/clothing/head/helmet/space/rig +/obj/item/clothing/head/space/rig name = "helmet" item_flags = THICKMATERIAL|COVER_PREVENT_MANIPULATION flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|BLOCKHAIR @@ -47,7 +47,7 @@ retract_while_active = FALSE //TODO: move this to modules -/obj/item/clothing/head/helmet/space/rig/proc/prevent_track() +/obj/item/clothing/head/space/rig/proc/prevent_track() return 0 /obj/item/clothing/gloves/rig/Touch(var/atom/A, var/proximity) diff --git a/code/modules/clothing/spacesuits/rig/suits/combat.dm b/code/modules/clothing/spacesuits/rig/suits/combat.dm index 37707c7686..d4a25e7179 100644 --- a/code/modules/clothing/spacesuits/rig/suits/combat.dm +++ b/code/modules/clothing/spacesuits/rig/suits/combat.dm @@ -1,4 +1,4 @@ -/obj/item/clothing/head/helmet/space/rig/combat +/obj/item/clothing/head/space/rig/combat light_overlay = "helmet_light_dual_green" /obj/item/weapon/rig/combat @@ -7,9 +7,9 @@ icon_state = "security_rig" suit_type = "combat hardsuit" armor = list( - melee = 60, - bullet = 55, - energy = 50, + melee = 45, + bullet = 50, + energy = 45, bomb = 50, bio = 100, rad = 50 @@ -19,8 +19,7 @@ offline_slowdown = 3 offline_vision_restriction = 1 - helm_type = /obj/item/clothing/head/helmet/space/rig/combat - + helm_type = /obj/item/clothing/head/space/rig/combat /obj/item/weapon/rig/combat/equipped initial_modules = list( @@ -34,14 +33,14 @@ ) //Ironhammer rig suit -/obj/item/clothing/head/helmet/space/rig/combat/ironhammer +/obj/item/clothing/head/space/rig/combat/ironhammer light_overlay = "sec_light" /obj/item/weapon/rig/combat/ironhammer name = "ironhammer hardsuit control module" desc = "Standard operative suit issued to Ironhammer mercenaries. Provides balanced overall protection against various threats and widely used on planets surface, space stations or in open space." icon_state = "ihs_rig" - helm_type = /obj/item/clothing/head/helmet/space/rig/combat/ironhammer + helm_type = /obj/item/clothing/head/space/rig/combat/ironhammer suit_type = "ironhammer hardsuit" /obj/item/weapon/rig/combat/ironhammer/equipped @@ -50,3 +49,39 @@ /obj/item/rig_module/maneuvering_jets, /obj/item/rig_module/storage ) + +//Hazard Suit +/obj/item/clothing/head/space/rig/hazard + light_overlay = "helmet_light_dual" + camera_networks = list(NETWORK_SECURITY) + +/obj/item/weapon/rig/hazard + name = "hazard hardsuit control module" + suit_type = "hazard hardsuit" + desc = "A Security hardsuit designed for prolonged EVA in dangerous environments." + icon_state = "hazard_rig" + armor = list( + melee = 35, + bullet = 40, + energy = 35, + bomb = 90, + bio = 100, + rad = 100 + ) + slowdown = 1.5 + drain = 4 + offline_slowdown = 3 + offline_vision_restriction = 1 + + helm_type = /obj/item/clothing/head/space/rig/hazard + + req_access = list() + req_one_access = list() + +/obj/item/weapon/rig/hazard/equipped + initial_modules = list( + /obj/item/rig_module/vision/sechud, + /obj/item/rig_module/maneuvering_jets, + /obj/item/rig_module/grenade_launcher, + /obj/item/rig_module/mounted/taser + ) diff --git a/code/modules/clothing/spacesuits/rig/suits/light.dm b/code/modules/clothing/spacesuits/rig/suits/light.dm index 3df03cb56b..7381700856 100644 --- a/code/modules/clothing/spacesuits/rig/suits/light.dm +++ b/code/modules/clothing/spacesuits/rig/suits/light.dm @@ -5,11 +5,11 @@ icon_state = "ninja_rig" suit_type = "light suit" armor = list( - melee = 30, - bullet = 20, - energy = 20, - bomb = 25, - bio = 100, + melee = 25, + bullet = 15, + energy = 15, + bomb = 20, + bio = 75, rad = 25 ) emp_protection = 10 @@ -20,7 +20,7 @@ drain = 2 chest_type = /obj/item/clothing/suit/space/rig/light - helm_type = /obj/item/clothing/head/helmet/space/rig/light + helm_type = /obj/item/clothing/head/space/rig/light boot_type = /obj/item/clothing/shoes/magboots/rig/light glove_type = /obj/item/clothing/gloves/rig/light @@ -33,7 +33,7 @@ /obj/item/clothing/shoes/magboots/rig/light name = "shoes" -/obj/item/clothing/head/helmet/space/rig/light +/obj/item/clothing/head/space/rig/light name = "hood" /obj/item/weapon/rig/light/hacker diff --git a/code/modules/clothing/spacesuits/rig/suits/merc.dm b/code/modules/clothing/spacesuits/rig/suits/merc.dm index 1342d3a2d1..804ef9dbe9 100644 --- a/code/modules/clothing/spacesuits/rig/suits/merc.dm +++ b/code/modules/clothing/spacesuits/rig/suits/merc.dm @@ -1,4 +1,4 @@ -/obj/item/clothing/head/helmet/space/rig/merc +/obj/item/clothing/head/space/rig/merc light_overlay = "helmet_light_dual_green" camera_networks = list(NETWORK_MERCENARY) light_color = COLOR_LIGHTING_GREEN_BRIGHT @@ -21,7 +21,7 @@ offline_slowdown = 3 offline_vision_restriction = 1 - helm_type = /obj/item/clothing/head/helmet/space/rig/merc + helm_type = /obj/item/clothing/head/space/rig/merc initial_modules = list( diff --git a/code/modules/clothing/spacesuits/rig/suits/station.dm b/code/modules/clothing/spacesuits/rig/suits/station.dm index d5788646b4..37589eeda6 100644 --- a/code/modules/clothing/spacesuits/rig/suits/station.dm +++ b/code/modules/clothing/spacesuits/rig/suits/station.dm @@ -1,24 +1,20 @@ -/obj/item/clothing/head/helmet/space/rig/industrial +/obj/item/clothing/head/space/rig/industrial camera_networks = list(NETWORK_MINE) -/obj/item/clothing/head/helmet/space/rig/ce +/obj/item/clothing/head/space/rig/ce camera_networks = list(NETWORK_ENGINEERING) -/obj/item/clothing/head/helmet/space/rig/eva +/obj/item/clothing/head/space/rig/eva light_overlay = "helmet_light_dual" camera_networks = list(NETWORK_ENGINEERING) -/obj/item/clothing/head/helmet/space/rig/hazmat +/obj/item/clothing/head/space/rig/hazmat light_overlay = "hardhat_light" camera_networks = list(NETWORK_RESEARCH) -/obj/item/clothing/head/helmet/space/rig/medical +/obj/item/clothing/head/space/rig/medical camera_networks = list(NETWORK_MEDICAL) -/obj/item/clothing/head/helmet/space/rig/hazard - light_overlay = "helmet_light_dual" - camera_networks = list(NETWORK_SECURITY) - /*************************************** @@ -43,7 +39,7 @@ offline_vision_restriction = 2 emp_protection = -20 - helm_type = /obj/item/clothing/head/helmet/space/rig/industrial + helm_type = /obj/item/clothing/head/space/rig/industrial extra_allowed = list( /obj/item/device/t_scanner, @@ -85,7 +81,7 @@ offline_slowdown = 1 offline_vision_restriction = 1 - helm_type = /obj/item/clothing/head/helmet/space/rig/eva + helm_type = /obj/item/clothing/head/space/rig/eva extra_allowed = list( /obj/item/weapon/storage/toolbox, @@ -128,7 +124,7 @@ Advanced Voidsuit: Technomancer Exultant max_heat_protection_temperature = FIRESUIT_MAX_HEAT_PROTECTION_TEMPERATURE - helm_type = /obj/item/clothing/head/helmet/space/rig/ce + helm_type = /obj/item/clothing/head/space/rig/ce glove_type = /obj/item/clothing/gloves/rig/ce boot_type = /obj/item/clothing/shoes/magboots/rig/ce @@ -180,7 +176,7 @@ Advanced Voidsuit: Technomancer Exultant drain = 3 offline_vision_restriction = 1 - helm_type = /obj/item/clothing/head/helmet/space/rig/hazmat + helm_type = /obj/item/clothing/head/space/rig/hazmat extra_allowed = list( /obj/item/stack/flag, @@ -230,7 +226,7 @@ Advanced Voidsuit: Technomancer Exultant slowdown = 0.75 offline_vision_restriction = 1 - helm_type = /obj/item/clothing/head/helmet/space/rig/medical + helm_type = /obj/item/clothing/head/space/rig/medical extra_allowed = list( /obj/item/weapon/storage/firstaid, @@ -249,39 +245,3 @@ Advanced Voidsuit: Technomancer Exultant /obj/item/rig_module/device/healthscanner, /obj/item/rig_module/vision/medhud ) - - -/*************************************** - Hazard Suit -****************************************/ -/obj/item/weapon/rig/hazard - name = "hazard hardsuit control module" - suit_type = "hazard hardsuit" - desc = "A Security hardsuit designed for prolonged EVA in dangerous environments." - icon_state = "hazard_rig" - armor = list( - melee = 40, - bullet = 40, - energy = 40, - bomb = 90, - bio = 100, - rad = 100 - ) - slowdown = 1.35 - drain = 3.5 - offline_slowdown = 3 - offline_vision_restriction = 1 - - helm_type = /obj/item/clothing/head/helmet/space/rig/hazard - - req_access = list() - req_one_access = list() - - -/obj/item/weapon/rig/hazard/equipped - initial_modules = list( - /obj/item/rig_module/vision/sechud, - /obj/item/rig_module/maneuvering_jets, - /obj/item/rig_module/grenade_launcher, - /obj/item/rig_module/mounted/taser - ) diff --git a/code/modules/clothing/spacesuits/spacesuits.dm b/code/modules/clothing/spacesuits/spacesuits.dm index 6c492b08f5..02b043f4a7 100644 --- a/code/modules/clothing/spacesuits/spacesuits.dm +++ b/code/modules/clothing/spacesuits/spacesuits.dm @@ -2,7 +2,7 @@ //Note: Everything in modules/clothing/spacesuits should have the entire suit grouped together. // Meaning the the suit is defined directly after the corrisponding helmet. Just like below! -/obj/item/clothing/head/helmet/space +/obj/item/clothing/head/space name = "space helmet" icon_state = "space" desc = "A special helmet designed for work in a hazardous, low-pressure environment." @@ -24,9 +24,13 @@ body_parts_covered = HEAD|FACE|EYES|EARS cold_protection = HEAD min_cold_protection_temperature = SPACE_HELMET_MIN_COLD_PROTECTION_TEMPERATURE + heat_protection = HEAD + max_heat_protection_temperature = HELMET_MAX_HEAT_PROTECTION_TEMPERATURE siemens_coefficient = 0.9 + w_class = ITEM_SIZE_NORMAL species_restricted = list("exclude") flash_protection = FLASH_PROTECTION_MAJOR + price_tag = 100 var/obj/machinery/camera/camera var/list/camera_networks @@ -36,12 +40,12 @@ brightness_on = 4 on = 0 -/obj/item/clothing/head/helmet/space/Initialize() +/obj/item/clothing/head/space/Initialize() . = ..() if(camera_networks && camera_networks.len) - verbs += /obj/item/clothing/head/helmet/space/proc/toggle_camera + verbs += /obj/item/clothing/head/space/proc/toggle_camera -/obj/item/clothing/head/helmet/space/proc/toggle_camera() +/obj/item/clothing/head/space/proc/toggle_camera() set name = "Toggle Helmet Camera" set category = "Object" set src in usr @@ -59,7 +63,7 @@ else to_chat(usr, SPAN_NOTICE("Camera deactivated.")) -/obj/item/clothing/head/helmet/space/examine(var/mob/user) +/obj/item/clothing/head/space/examine(var/mob/user) if(..(user, 1) && camera_networks && camera_networks.len) to_chat(user, "This helmet has a built-in camera. It's [camera && camera.status ? "" : "in"]active.") diff --git a/code/modules/clothing/spacesuits/syndi.dm b/code/modules/clothing/spacesuits/syndi.dm index 95e61064fe..47c52715a6 100644 --- a/code/modules/clothing/spacesuits/syndi.dm +++ b/code/modules/clothing/spacesuits/syndi.dm @@ -1,18 +1,18 @@ //Regular syndicate space suit -/obj/item/clothing/head/helmet/space/syndicate +/obj/item/clothing/head/space/syndicate name = "red space helmet" icon_state = "syndicate" item_state = "syndicate" desc = "A crimson helmet sporting clean lines and durable plating. Engineered to look menacing." armor = list( - melee = 30, - bullet = 30, - energy = 30, - bomb = 25, + melee = 35, + bullet = 35, + energy = 35, + bomb = 30, bio = 100, - rad = 25 + rad = 50 ) - siemens_coefficient = 0.6 + siemens_coefficient = 0.4 /obj/item/clothing/suit/space/syndicate name = "red space suit" @@ -20,13 +20,15 @@ item_state = "space_suit_syndicate" desc = "A crimson spacesuit sporting clean lines and durable plating. Robust, reliable, and slightly suspicious." w_class = ITEM_SIZE_NORMAL - slowdown = 1 + slowdown = 0.5 armor = list( - melee = 30, - bullet = 30, - energy = 30, - bomb = 25, + melee = 35, + bullet = 35, + energy = 35, + bomb = 30, bio = 100, - rad = 25 + rad = 50 ) - siemens_coefficient = 0.6 + siemens_coefficient = 0.4 + can_breach = FALSE + supporting_limbs = list() diff --git a/code/modules/clothing/spacesuits/void/excelsior.dm b/code/modules/clothing/spacesuits/void/excelsior.dm index 600cfc468c..a0e3d5e255 100644 --- a/code/modules/clothing/spacesuits/void/excelsior.dm +++ b/code/modules/clothing/spacesuits/void/excelsior.dm @@ -1,4 +1,4 @@ -/obj/item/clothing/head/helmet/space/void/excelsior +/obj/item/clothing/head/space/void/excelsior name = "Excelsior helmet" desc = "A deceptively well armored space helmet. Ancient design, but advanced manufacturing." icon_state = "cosmo" @@ -13,10 +13,10 @@ ) armor = list( - melee = 30, - bullet = 30, - energy = 30, - bomb = 25, + melee = 40, + bullet = 40, + energy = 50, + bomb = 30, bio = 100, rad = 90 ) @@ -30,23 +30,22 @@ desc = "An ancient space suit design, remade with advanced materials. Provides good protection, especially against energy discharges." icon_state = "soviet_skaf" item_state = "soviet_skaf" - slowdown = 0.8 - body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS - flags_inv = HIDEGLOVES|HIDEJUMPSUIT|HIDETAIL + slowdown = 0.7 w_class = ITEM_SIZE_NORMAL - //Decent all around, but less ballistic resistance armor = list( - melee = 30, - bullet = 30, - energy = 30, - bomb = 25, + melee = 40, + bullet = 40, + energy = 50, + bomb = 30, bio = 100, rad = 90 ) siemens_coefficient = 0 //Shockproof! + breach_threshold = 6 + resilience = 0.08 matter = list( MATERIAL_PLASTIC = 30, MATERIAL_STEEL = 10, MATERIAL_PLASTEEL = 5 ) - helmet = /obj/item/clothing/head/helmet/space/void/excelsior \ No newline at end of file + helmet = /obj/item/clothing/head/space/void/excelsior \ No newline at end of file diff --git a/code/modules/clothing/spacesuits/void/merc.dm b/code/modules/clothing/spacesuits/void/merc.dm index c4d06e3f38..cff298a5ae 100644 --- a/code/modules/clothing/spacesuits/void/merc.dm +++ b/code/modules/clothing/spacesuits/void/merc.dm @@ -1,15 +1,15 @@ -/obj/item/clothing/head/helmet/space/void/SCAF +/obj/item/clothing/head/space/void/SCAF name = "SCAF helmet" desc = "A thick airtight helmet designed for planetside warfare retrofitted with seals to act like normal space suit helmet." icon_state = "scaf" item_state = "scaf" armor = list( - melee = 60, - bullet = 55, - energy = 50, + melee = 70, + bullet = 75, + energy = 70, bomb = 75, bio = 100, - rad = 25 + rad = 30 ) siemens_coefficient = 0.35 species_restricted = list("Human") @@ -21,23 +21,26 @@ desc = "A bulky antique suit of refurbished infantry armour, retrofitted with seals and coatings to make it EVA capable but also reducing mobility." icon_state = "scaf" item_state = "scaf" - slowdown = 1.3 + slowdown = 1.2 flags_inv = HIDEGLOVES|HIDEJUMPSUIT|HIDETAIL armor = list( - melee = 60, - bullet = 55, - energy = 50, + melee = 70, + bullet = 75, + energy = 70, bomb = 75, bio = 100, - rad = 25 + rad = 30 ) siemens_coefficient = 0.35 + breach_threshold = 10 + resilience = 0.07 species_restricted = list("Human") - helmet = /obj/item/clothing/head/helmet/space/void/SCAF + supporting_limbs = list() + helmet = /obj/item/clothing/head/space/void/SCAF //Voidsuit for traitors -/obj/item/clothing/head/helmet/space/void/merc +/obj/item/clothing/head/space/void/merc name = "blood-red voidsuit helmet" desc = "An advanced helmet designed for work in special operations. This version is additionally reinforced against melee attacks." icon_state = "syndiehelm" @@ -45,7 +48,7 @@ armor = list( melee = 50, bullet = 40, - energy = 30, + energy = 40, bomb = 50, bio = 100, rad = 75 @@ -55,7 +58,7 @@ camera_networks = list(NETWORK_MERCENARY) light_overlay = "helmet_light_ihs" -/obj/item/clothing/head/helmet/space/void/merc/update_icon() +/obj/item/clothing/head/space/void/merc/update_icon() ..() if(on) icon_state = "syndiehelm_on" @@ -71,14 +74,16 @@ armor = list( melee = 50, bullet = 40, - energy = 30, + energy = 40, bomb = 50, bio = 100, rad = 75 ) siemens_coefficient = 0.35 + breach_threshold = 8 + resilience = 0.08 species_restricted = list("Human") - helmet = /obj/item/clothing/head/helmet/space/void/merc + helmet = /obj/item/clothing/head/space/void/merc /obj/item/clothing/suit/space/void/merc/equipped boots = /obj/item/clothing/shoes/magboots diff --git a/code/modules/clothing/spacesuits/void/neotheology.dm b/code/modules/clothing/spacesuits/void/neotheology.dm index dfaf99b288..c77d4e95a5 100644 --- a/code/modules/clothing/spacesuits/void/neotheology.dm +++ b/code/modules/clothing/spacesuits/void/neotheology.dm @@ -1,11 +1,11 @@ -/obj/item/clothing/head/helmet/space/void/acolyte +/obj/item/clothing/head/space/void/acolyte name = "Acolyte hood" desc = "Even the most devout deserve head protection." icon_state = "acolyte" armor = list( - melee = 20, - bullet = 20, - energy = 10, + melee = 25, + bullet = 25, + energy = 25, bomb = 25, bio = 100, rad = 75 @@ -15,18 +15,18 @@ name = "Acolyte armor" desc = "Worn heavy, steadfast in the name of God." icon_state = "acolyte" - slowdown = 0.15 + slowdown = 0.3 armor = list( - melee = 20, - bullet = 20, - energy = 10, + melee = 25, + bullet = 25, + energy = 25, bomb = 25, bio = 100, rad = 75 ) - helmet = /obj/item/clothing/head/helmet/space/void/acolyte + helmet = /obj/item/clothing/head/space/void/acolyte -/obj/item/clothing/head/helmet/space/void/agrolyte +/obj/item/clothing/head/space/void/agrolyte name = "Agrolyte hood" desc = "Don't want anything getting in your eyes." icon_state = "botanist" @@ -52,9 +52,9 @@ bio = 100, rad = 75 ) - helmet = /obj/item/clothing/head/helmet/space/void/agrolyte + helmet = /obj/item/clothing/head/space/void/agrolyte -/obj/item/clothing/head/helmet/space/void/custodian +/obj/item/clothing/head/space/void/custodian name = "Custodian helmet" desc = "Cleaning floors is more dangerous than it looks." icon_state = "custodian" @@ -63,7 +63,7 @@ bullet = 10, energy = 10, bomb = 25, - bio = 100, + bio = 200, rad = 90 ) unacidable = TRUE @@ -78,8 +78,8 @@ bullet = 10, energy = 10, bomb = 25, - bio = 100, + bio = 200, rad = 90 ) unacidable = TRUE - helmet = /obj/item/clothing/head/helmet/space/void/custodian \ No newline at end of file + helmet = /obj/item/clothing/head/space/void/custodian \ No newline at end of file diff --git a/code/modules/clothing/spacesuits/void/station.dm b/code/modules/clothing/spacesuits/void/station.dm index c888852400..afc5af31f8 100644 --- a/code/modules/clothing/spacesuits/void/station.dm +++ b/code/modules/clothing/spacesuits/void/station.dm @@ -1,6 +1,6 @@ // Station voidsuits //Engineering rig -/obj/item/clothing/head/helmet/space/void/engineering +/obj/item/clothing/head/space/void/engineering name = "engineering voidsuit helmet" desc = "A special helmet designed for work in a hazardous, low-pressure environment. Has radiation shielding." icon_state = "rig0-engineering" @@ -37,14 +37,14 @@ /obj/item/device/t_scanner, /obj/item/weapon/rcd ) - helmet = /obj/item/clothing/head/helmet/space/void/engineering + helmet = /obj/item/clothing/head/space/void/engineering /obj/item/clothing/suit/space/void/engineering/equipped boots = /obj/item/clothing/shoes/magboots tank = /obj/item/weapon/tank/jetpack/oxygen //Mining rig -/obj/item/clothing/head/helmet/space/void/mining +/obj/item/clothing/head/space/void/mining name = "mining voidsuit helmet" desc = "A special helmet designed for work in a hazardous, low pressure environment. Has reinforced plating." icon_state = "rig0-mining" @@ -76,10 +76,10 @@ bio = 100, rad = 75 ) - helmet = /obj/item/clothing/head/helmet/space/void/mining + helmet = /obj/item/clothing/head/space/void/mining //Medical Rig -/obj/item/clothing/head/helmet/space/void/medical +/obj/item/clothing/head/space/void/medical name = "medical voidsuit helmet" desc = "A special helmet designed for work in a hazardous, low pressure environment. Has minor radiation shielding." icon_state = "rig0-medical" @@ -117,13 +117,13 @@ bio = 100, rad = 75 ) - helmet = /obj/item/clothing/head/helmet/space/void/medical + helmet = /obj/item/clothing/head/space/void/medical /obj/item/clothing/suit/space/void/medical/equipped boots = /obj/item/clothing/shoes/magboots //Security -/obj/item/clothing/head/helmet/space/void/security +/obj/item/clothing/head/space/void/security name = "ironhammer voidsuit helmet" desc = "A special helmet designed for work in a hazardous, low pressure environment. Has an additional layer of armor." icon_state = "ihsvoidhelm" @@ -147,7 +147,7 @@ /obj/item/clothing/suit/space/void/security name = "ironhammer voidsuit" icon_state = "ihvoidsuit" - desc = "A bulky suit that protects against hazardous, low pressure environments. Sacrifices mobility for protection" + desc = "A bulky suit that protects against hazardous, low pressure environments. Sacrifices mobility for protection." item_state = "ihvoidsuit" armor = list( melee = 30, @@ -158,14 +158,14 @@ rad = 75 ) siemens_coefficient = 0.7 - helmet = /obj/item/clothing/head/helmet/space/void/security + helmet = /obj/item/clothing/head/space/void/security /obj/item/clothing/suit/space/void/security/equipped boots = /obj/item/clothing/shoes/magboots tank = /obj/item/weapon/tank/jetpack/oxygen //Atmospherics Rig (BS12) -/obj/item/clothing/head/helmet/space/void/atmos +/obj/item/clothing/head/space/void/atmos desc = "A special helmet designed for work in a hazardous, low pressure environments. Has improved thermal protection and minor radiation shielding." name = "atmospherics voidsuit helmet" icon_state = "rig0-atmos" @@ -199,4 +199,4 @@ rad = 75 ) max_heat_protection_temperature = FIRESUIT_MAX_HEAT_PROTECTION_TEMPERATURE - helmet = /obj/item/clothing/head/helmet/space/void/atmos \ No newline at end of file + helmet = /obj/item/clothing/head/space/void/atmos \ No newline at end of file diff --git a/code/modules/clothing/spacesuits/void/void.dm b/code/modules/clothing/spacesuits/void/void.dm index 49e64b972e..0332c48eeb 100644 --- a/code/modules/clothing/spacesuits/void/void.dm +++ b/code/modules/clothing/spacesuits/void/void.dm @@ -1,5 +1,5 @@ //NASA Voidsuit -/obj/item/clothing/head/helmet/space/void +/obj/item/clothing/head/space/void name = "void helmet" desc = "A high-tech dark red space suit helmet. Used for AI satellite maintenance." icon_state = "void" @@ -8,7 +8,7 @@ armor = list( melee = 30, bullet = 20, - energy = 10, + energy = 15, bomb = 25, bio = 100, rad = 75 @@ -26,7 +26,7 @@ armor = list( melee = 30, bullet = 20, - energy = 10, + energy = 15, bomb = 25, bio = 100, rad = 75 @@ -40,7 +40,7 @@ //Inbuilt devices. var/obj/item/clothing/shoes/magboots/boots = null // Deployable boots, if any. - var/obj/item/clothing/head/helmet/helmet = /obj/item/clothing/head/helmet/space/void // Deployable helmet, if any. + var/obj/item/clothing/head/armor/helmet/helmet = /obj/item/clothing/head/space/void // Deployable helmet, if any. var/obj/item/weapon/tank/tank = null // Deployable tank, if any. /obj/item/clothing/suit/space/void/Initialize() diff --git a/code/modules/clothing/spacesuits/void/wizard.dm b/code/modules/clothing/spacesuits/void/wizard.dm index 6d1564260e..fda3437561 100644 --- a/code/modules/clothing/spacesuits/void/wizard.dm +++ b/code/modules/clothing/spacesuits/void/wizard.dm @@ -1,5 +1,5 @@ //Wizard Rig -/obj/item/clothing/head/helmet/space/void/wizard +/obj/item/clothing/head/space/void/wizard name = "gem-encrusted voidsuit helmet" desc = "A bizarre gem-encrusted helmet that radiates magical energies." icon_state = "rig0-wiz" @@ -11,7 +11,7 @@ armor = list( melee = 40, bullet = 40, - energy = 20, + energy = 40, bomb = 25, bio = 100, rad = 90 @@ -28,10 +28,10 @@ armor = list( melee = 40, bullet = 40, - energy = 20, + energy = 40, bomb = 25, bio = 100, rad = 90 ) siemens_coefficient = 0.7 - helmet = /obj/item/clothing/head/helmet/space/void/wizard \ No newline at end of file + helmet = /obj/item/clothing/head/space/void/wizard \ No newline at end of file diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 5db3173186..9036d2b4aa 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -36,8 +36,15 @@ desc = "An armored vest with a detective's badge on it." icon_state = "armor_detective" +/obj/item/clothing/suit/armor/vest/warden + name = "Warden's jacket" + desc = "An armoured jacket with an attached vest holding a badge and livery." + icon_state = "warden_jacket" + body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS + price_tag = 350 + /obj/item/clothing/suit/armor/vest/ironhammer - name = "security armor" + name = "operator armor" desc = "An armored vest that protects against some damage. This one has been done in Ironhammer Security colors. Not designed for serious operations." icon_state = "armor_ironhammer" @@ -55,6 +62,25 @@ ) price_tag = 150 +/obj/item/clothing/suit/armor/greatcoat + name = "armored coat" + desc = "A greatcoat enhanced with a special alloy for some protection and style." + icon_state = "greatcoat" + item_state = "hos" + body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS + armor = list( + melee = 30, + bullet = 35, + energy = 30, + bomb = 15, + bio = 0, + rad = 0 + ) + price_tag = 600 + +/obj/item/clothing/suit/armor/greatcoat/ironhammer + icon_state = "greatcoat_ironhammer" + // Serbian flak vests /obj/item/clothing/suit/armor/flak name = "black flakvest vest" @@ -82,7 +108,7 @@ icon_state = "bulletproof" item_state = "armor" blood_overlay_type = "armor" - slowdown = 0.5 + slowdown = 0.15 armor = list( melee = 25, bullet = 75, @@ -123,7 +149,7 @@ icon_state = "ablative" item_state = "ablative" blood_overlay_type = "armor" - slowdown = 0.5 + slowdown = 0.15 armor = list( melee = 25, bullet = 25, @@ -135,7 +161,7 @@ siemens_coefficient = 0 price_tag = 650 -/obj/item/clothing/suit/armor/laserproof/handle_shield(mob/user, var/damage, atom/damage_source = null, mob/attacker = null, var/def_zone = null, var/attack_text = "the attack") +/obj/item/clothing/suit/armor/laserproof/handle_shield(mob/user, var/damage, atom/damage_source = null, mob/attacker = null, var/def_zone = null, var/attack_text = "the attack") //TODO: Refactor this all into humandefense if(istype(damage_source, /obj/item/projectile/energy) || istype(damage_source, /obj/item/projectile/beam)) var/obj/item/projectile/P = damage_source @@ -155,8 +181,6 @@ return PROJECTILE_CONTINUE // complete projectile permutation -/obj/item/clothing/suit/armor/laserproof/ironhammer - icon_state = "ablative_ironhammer" /* * Heavy Armor Types @@ -174,7 +198,7 @@ body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS cold_protection = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS - slowdown = 1 + slowdown = 0.6 flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT armor = list( melee = 35, @@ -207,7 +231,7 @@ desc = "A suit of armor with heavy padding to protect against melee attacks. Looks like it might impair movement." icon_state = "riot" item_state = "swat_suit" - flags_inv = HIDEJUMPSUIT + flags_inv = NONE armor = list( melee = 75, bullet = 25, @@ -221,6 +245,7 @@ /obj/item/clothing/suit/armor/heavy/riot/ironhammer icon_state = "riot_ironhammer" item_state = "swat_suit" + flags_inv = HIDEJUMPSUIT /* * Storage Types @@ -280,7 +305,7 @@ bomb = 0, bio = 0, rad = 0 - ) + ) /obj/item/clothing/suit/armor/reactive/handle_shield(mob/user, var/damage, atom/damage_source = null, mob/attacker = null, var/def_zone = null, var/attack_text = "the attack") if(prob(50)) diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index 9039c85f9d..96ca854e4c 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -9,7 +9,7 @@ icon_state = "ass_jacket" item_state = "ass_jacket" blood_overlay_type = "coat" - body_parts_covered = UPPER_TORSO|ARMS + body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS armor = list( melee = 10, bullet = 10, @@ -47,7 +47,7 @@ armor = list( melee = 30, bullet = 20, - energy = 10, + energy = 20, bomb = 0, bio = 0, rad = 0 @@ -69,8 +69,8 @@ ) //Chaplain -/obj/item/clothing/suit/chaplain_hoodie - name = "preacher jacket" +/obj/item/clothing/suit/neotheology_jacket + name = "acolyte jacket" desc = "A long, lightly armoured jacket. Dark, stylish, and authoritarian." icon_state = "chaplain_hoodie" item_state = "chaplain_hoodie" @@ -85,11 +85,20 @@ rad = 0 ) -/obj/item/clothing/suit/chaplain_hoodie/coat +/obj/item/clothing/suit/neotheology_coat name = "preacher coat" desc = "A snugly fitting, lightly armoured brown coat." icon_state = "church_coat" item_state = "church_coat" + body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS + armor = list( + melee = 30, + bullet = 20, + energy = 20, + bomb = 0, + bio = 0, + rad = 0 + ) //Chaplain /obj/item/clothing/suit/nun @@ -126,7 +135,7 @@ icon_state = "detective" item_state = "det_suit" blood_overlay_type = "coat" - body_parts_covered = UPPER_TORSO|ARMS + body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS armor = list( melee = 30, bullet = 20, @@ -135,6 +144,7 @@ bio = 0, rad = 0 ) + siemens_coefficient = 0.8 price_tag = 250 /obj/item/clothing/suit/storage/detective/ironhammer @@ -152,7 +162,7 @@ item_state = "hazard" blood_overlay_type = "armor" extra_allowed = list(/obj/item/weapon/tool) - body_parts_covered = UPPER_TORSO + body_parts_covered = UPPER_TORSO|LOWER_TORSO price_tag = 50 //Roboticist diff --git a/code/modules/clothing/under/jobs/security.dm b/code/modules/clothing/under/jobs/security.dm index 92a1d42f24..f95539c7c4 100644 --- a/code/modules/clothing/under/jobs/security.dm +++ b/code/modules/clothing/under/jobs/security.dm @@ -25,7 +25,7 @@ name = "Gunnery Sergeant hat" desc = "It's a special helmet issued to the Warden of a securiy force." icon_state = "policehelm" - body_parts_covered = 0 + body_parts_covered = NONE /obj/item/clothing/under/rank/security name = "Ironhammer Operative's jumpsuit" @@ -53,12 +53,6 @@ icon_state = "medspec_skirt" body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS -/obj/item/clothing/under/tactical - name = "tactical jumpsuit" - desc = "It's made of a slightly sturdier material than standard jumpsuits, to allow for robust protection." - icon_state = "syndicate" - siemens_coefficient = 0.8 - /* * Detective */ @@ -99,7 +93,7 @@ rad = 0 ) siemens_coefficient = 0.8 - body_parts_covered = 0 + body_parts_covered = NONE /obj/item/clothing/head/det/grey icon_state = "detective2" @@ -110,7 +104,7 @@ * Ironhammer Commander */ /obj/item/clothing/under/rank/ih_commander - desc = "It's a jumpsuit worn by those few with the dedication to achieve the position of \"Ironhammer Commander\". It has additional armor to protect the wearer." + desc = "It's a jumpsuit worn by those few with the dedication to achieve the position of \"Ironhammer Commander\"." name = "Ironhammer Commander's jumpsuit" icon_state = "hos" item_state = "r_suit" @@ -118,7 +112,7 @@ /obj/item/clothing/under/rank/ih_commander/skirt name = "Ironhammer Commander's jumpskirt" - desc = "It's a jumpskirt worn by those few with the dedication to achieve the position of \"Ironhammer Commander\". It has additional armor to protect the wearer." + desc = "It's a jumpskirt worn by those few with the dedication to achieve the position of \"Ironhammer Commander\"." icon_state = "hos_skirt" body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS @@ -126,50 +120,12 @@ name = "Ironhammer Commander Hat" desc = "The hat of the Ironhammer Commander. For showing the officers who's in charge." icon_state = "hoshat" - body_parts_covered = 0 + body_parts_covered = NONE siemens_coefficient = 0.8 -/obj/item/clothing/head/HoS/dermal - name = "Dermal Armour Patch" - desc = "You're not quite sure how you manage to take it on and off, but it implants nicely in your head." - icon_state = "dermal" - siemens_coefficient = 0.6 - -/obj/item/clothing/suit/armor/hos - name = "armored coat" - desc = "A greatcoat enhanced with a special alloy for some protection and style." - icon_state = "hos" - item_state = "hos" - body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS - armor = list( - melee = 40, - bullet = 40, - energy = 30, - bomb = 25, - bio = 0, - rad = 0 - ) - siemens_coefficient = 0.6 - -//Jensen cosplay gear -/obj/item/clothing/under/rank/ih_commander/jensen - desc = "You never asked for anything that stylish." - name = "Ironhammer Commander's jumpsuit" - icon_state = "jensen" - item_state = "jensen" - -/obj/item/clothing/suit/armor/hos/jensen - name = "armored trenchcoat" - desc = "A trenchcoat augmented with a special alloy for some protection and style." - icon_state = "jensencoat" - item_state = "jensencoat" - flags_inv = 0 - body_parts_covered = UPPER_TORSO|ARMS - /* * Navy uniforms */ - /obj/item/clothing/under/rank/cadet name = "Ironhammer Cadet's jumpskirt" desc = "It's a sailor's uniform used for cadets in training, though more frequently in acts of hazing." diff --git a/code/modules/mining/abandonedcrates.dm b/code/modules/mining/abandonedcrates.dm index 6adb732461..dbba76a2ba 100644 --- a/code/modules/mining/abandonedcrates.dm +++ b/code/modules/mining/abandonedcrates.dm @@ -30,7 +30,7 @@ new/obj/item/weapon/tool/pickaxe/drill(src) new/obj/item/device/taperecorder(src) new/obj/item/clothing/suit/space(src) - new/obj/item/clothing/head/helmet/space(src) + new/obj/item/clothing/head/space(src) if(11 to 15) new/obj/item/weapon/reagent_containers/glass/beaker/bluespace(src) if(16 to 20) diff --git a/code/modules/mob/living/bot/ed209bot.dm b/code/modules/mob/living/bot/ed209bot.dm index d1adf08f65..6b873525ce 100644 --- a/code/modules/mob/living/bot/ed209bot.dm +++ b/code/modules/mob/living/bot/ed209bot.dm @@ -41,7 +41,7 @@ new /obj/item/robot_parts/r_leg(Tsec) if(prob(50)) if(prob(50)) - new /obj/item/clothing/head/helmet(Tsec) + new /obj/item/clothing/head/armor/helmet(Tsec) else new /obj/item/clothing/suit/armor/vest(Tsec) @@ -147,7 +147,7 @@ icon_state = "ed209_shell" if(4) - if(istype(I, /obj/item/clothing/head/helmet)) + if(istype(I, /obj/item/clothing/head/armor/helmet)) user.drop_item() qdel(I) build_step++ diff --git a/code/modules/mob/living/bot/secbot.dm b/code/modules/mob/living/bot/secbot.dm index c2bf4c0a3e..50c360459d 100644 --- a/code/modules/mob/living/bot/secbot.dm +++ b/code/modules/mob/living/bot/secbot.dm @@ -477,13 +477,13 @@ //Secbot Construction -/obj/item/clothing/head/helmet/attackby(var/obj/item/device/assembly/signaler/S, mob/user as mob) +/obj/item/clothing/head/armor/helmet/attackby(var/obj/item/device/assembly/signaler/S, mob/user as mob) ..() if(!is_signaler(S)) ..() return - if(type != /obj/item/clothing/head/helmet) //Eh, but we don't want people making secbots out of space helmets. + if(type != /obj/item/clothing/head/armor/helmet) //Eh, but we don't want people making secbots out of space helmets. return if(S.secured) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 9fa4b615c9..a775f049a0 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -199,7 +199,7 @@ dat += "
Right hand: [istype(r_hand) ? r_hand : "nothing"]"*/ // Do they get an option to set internals? - if(istype(wear_mask, /obj/item/clothing/mask) || istype(head, /obj/item/clothing/head/helmet/space)) + if(istype(wear_mask, /obj/item/clothing/mask) || istype(head, /obj/item/clothing/head/space)) if(istype(back, /obj/item/weapon/tank) || istype(belt, /obj/item/weapon/tank) || istype(s_store, /obj/item/weapon/tank)) dat += "
Toggle internals." diff --git a/code/modules/mob/living/carbon/human/stripping.dm b/code/modules/mob/living/carbon/human/stripping.dm index 338df0a18c..da83344ac7 100644 --- a/code/modules/mob/living/carbon/human/stripping.dm +++ b/code/modules/mob/living/carbon/human/stripping.dm @@ -123,7 +123,7 @@ internal = null else // Check for airtight mask/helmet. - if(!(istype(wear_mask, /obj/item/clothing/mask) || istype(head, /obj/item/clothing/head/helmet/space))) + if(!(istype(wear_mask, /obj/item/clothing/mask) || istype(head, /obj/item/clothing/head/space))) return // Find an internal source. if(istype(back, /obj/item/weapon/tank)) diff --git a/code/modules/random_map/drop/drop_types.dm b/code/modules/random_map/drop/drop_types.dm index 2713a67896..c51fa1e7b5 100644 --- a/code/modules/random_map/drop/drop_types.dm +++ b/code/modules/random_map/drop/drop_types.dm @@ -91,11 +91,11 @@ var/global/list/datum/supply_drop_loot/supply_drop /datum/supply_drop_loot/armour/New() ..() contents = list( - /obj/item/clothing/head/helmet/riot, + /obj/item/clothing/head/armor/riot, /obj/item/clothing/suit/armor/heavy/riot, - /obj/item/clothing/head/helmet/riot, + /obj/item/clothing/head/armor/riot, /obj/item/clothing/suit/armor/heavy/riot, - /obj/item/clothing/head/helmet/riot, + /obj/item/clothing/head/armor/riot, /obj/item/clothing/suit/armor/heavy/riot, /obj/item/clothing/suit/armor/vest, /obj/item/clothing/suit/armor/vest, diff --git a/code/modules/research/xenoarchaeology/artifact/effect.dm b/code/modules/research/xenoarchaeology/artifact/effect.dm index 6b6ca55171..371387b66b 100644 --- a/code/modules/research/xenoarchaeology/artifact/effect.dm +++ b/code/modules/research/xenoarchaeology/artifact/effect.dm @@ -97,7 +97,7 @@ proc/GetAnomalySusceptibility(var/mob/living/carbon/human/H) if(istype(H.wear_suit,/obj/item/clothing/suit/space/anomaly)) protected += 0.6 - if(istype(H.head,/obj/item/clothing/head/helmet/space/anomaly)) + if(istype(H.head,/obj/item/clothing/head/space/anomaly)) protected += 0.3 //latex gloves and science goggles also give a bit of bonus protection diff --git a/code/modules/research/xenoarchaeology/tools/anomaly_suit.dm b/code/modules/research/xenoarchaeology/tools/anomaly_suit.dm index 2d1b0fc566..2c0290d969 100644 --- a/code/modules/research/xenoarchaeology/tools/anomaly_suit.dm +++ b/code/modules/research/xenoarchaeology/tools/anomaly_suit.dm @@ -6,7 +6,7 @@ armor = list(melee = 25, bullet = 10, energy = 50, bomb = 0, bio = 100, rad = 100) allowed = list(/obj/item/device/lighting/toggleable/flashlight,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit) -/obj/item/clothing/head/helmet/space/anomaly +/obj/item/clothing/head/space/anomaly name = "Expedition hood" desc = "A pressure resistant expedition hood partially capable of insulating against exotic alien energies." icon_state = "cespace_helmet" diff --git a/code/modules/stashes/stash_types/captain.dm b/code/modules/stashes/stash_types/captain.dm index 21bded2949..49d4fea403 100644 --- a/code/modules/stashes/stash_types/captain.dm +++ b/code/modules/stashes/stash_types/captain.dm @@ -8,7 +8,7 @@ contents_list_base = list(/obj/item/clothing/under/rank/captain = 1, /obj/item/clothing/gloves/captain = 1) contents_list_extra = list() - contents_list_random = list(/obj/item/clothing/head/helmet/space/capspace = 70, + contents_list_random = list(/obj/item/clothing/head/space/capspace = 70, /obj/item/clothing/suit/space/captain = 70, /obj/item/weapon/tank/jetpack/oxygen = 55, /obj/item/weapon/melee/chainofcommand = 65, @@ -30,7 +30,7 @@ /obj/item/weapon/hatton = 15, /obj/item/weapon/rcd = 15, /obj/item/weapon/melee/telebaton = 15, - /obj/item/clothing/suit/armor/hos = 15) + /obj/item/clothing/suit/armor/greatcoat = 15) weight = 0.2 diff --git a/code/modules/stashes/stash_types/valueables.dm b/code/modules/stashes/stash_types/valueables.dm index 4249959c44..418aecf177 100644 --- a/code/modules/stashes/stash_types/valueables.dm +++ b/code/modules/stashes/stash_types/valueables.dm @@ -38,7 +38,7 @@ contents_list_extra = list(/obj/item/weapon/tool/knife/neotritual = 2, /obj/item/weapon/implant/core_implant/cruciform = 4, /obj/item/weapon/book/ritual/cruciform = 4, - /obj/item/clothing/suit/chaplain_hoodie = 2) + /obj/item/clothing/suit/neotheology_jacket = 2) lore = "Acolyte, pirates have taken the ship.
\ When you awaken, avoid arousing any suspicion.
\ Focus on recovering crosses from the faithful.
\ diff --git a/icons/inventory/eyes/icon.dmi b/icons/inventory/eyes/icon.dmi index e0aeebe2ef66b7686bce5936bd957f30f77d0d29..1ed89e6d31a413a3533e73d8c114f0eccc2f966a 100644 GIT binary patch literal 8318 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 diff --git a/icons/inventory/feet/icon.dmi b/icons/inventory/feet/icon.dmi index efb3afff16d424d89e2d03f85ea9653a5ed1cc20..6442edce760c2e1514083d6aca0177c44f329d26 100644 GIT binary patch literal 18083 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 literal 17916 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