diff --git a/code/__defines/items_clothing.dm b/code/__defines/items_clothing.dm index f857a8f232..c33d92609c 100644 --- a/code/__defines/items_clothing.dm +++ b/code/__defines/items_clothing.dm @@ -34,6 +34,7 @@ #define ACCESSORY_SLOT_ARMOR_L "Leg armor" #define ACCESSORY_SLOT_ARMOR_S "Armor storage" #define ACCESSORY_SLOT_ARMOR_M "Misc armor" +#define ACCESSORY_SLOT_HELM_C "Helmet cover" // Flags bitmasks. #define NOBLUDGEON 0x1 // When an item has this it produces no "X has been hit by Y with Z" message with the default handler. @@ -111,6 +112,21 @@ #define slot_w_uniform_str "slot_w_uniform" #define slot_head_str "slot_head" #define slot_wear_suit_str "slot_suit" +#define slot_l_ear_str "slot_l_ear" +#define slot_r_ear_str "slot_r_ear" +#define slot_belt_str "slot_belt" +#define slot_shoes_str "slot_shoes" +#define slot_head_str "slot_head" +#define slot_wear_mask_str "slot_wear_mask" +#define slot_handcuffed_str "slot_handcuffed" +#define slot_legcuffed_str "slot_legcuffed" +#define slot_wear_mask_str "slot_wear_mask" +#define slot_wear_id_str "slot_wear_id" +#define slot_gloves_str "slot_gloves" +#define slot_glasses_str "slot_glasses" +#define slot_s_store_str "slot_s_store" +#define slot_tie_str "slot_tie" + // Bitflags for clothing parts. #define HEAD 0x1 diff --git a/code/datums/supplypacks/security.dm b/code/datums/supplypacks/security.dm index e248acc46c..94a941a9c6 100644 --- a/code/datums/supplypacks/security.dm +++ b/code/datums/supplypacks/security.dm @@ -281,7 +281,7 @@ /obj/item/clothing/suit/storage/vest/hos, /obj/item/clothing/under/rank/head_of_security/corp, /obj/item/clothing/suit/storage/vest/hoscoat, - /obj/item/clothing/head/helmet/HoS/dermal, + /obj/item/clothing/head/helmet/dermal, /obj/item/weapon/cartridge/hos, /obj/item/device/radio/headset/heads/hos, /obj/item/clothing/glasses/sunglasses/sechud, diff --git a/code/game/gamemodes/changeling/powers/bioelectrogenesis.dm b/code/game/gamemodes/changeling/powers/bioelectrogenesis.dm index c173ba55ac..1579252628 100644 --- a/code/game/gamemodes/changeling/powers/bioelectrogenesis.dm +++ b/code/game/gamemodes/changeling/powers/bioelectrogenesis.dm @@ -102,6 +102,8 @@ desc = "You could probably shock someone badly if you touched them, or recharge something." icon = 'icons/obj/weapons.dmi' icon_state = "electric_hand" + show_examine = FALSE + var/shock_cost = 10 var/agony_amount = 60 var/electrocute_amount = 10 diff --git a/code/game/gamemodes/changeling/powers/electric_lockpick.dm b/code/game/gamemodes/changeling/powers/electric_lockpick.dm index dd77debc97..29ad6573f6 100644 --- a/code/game/gamemodes/changeling/powers/electric_lockpick.dm +++ b/code/game/gamemodes/changeling/powers/electric_lockpick.dm @@ -30,6 +30,7 @@ desc = "This finger appears to be an organic datajack." icon = 'icons/obj/weapons.dmi' icon_state = "electric_hand" + show_examine = FALSE /obj/item/weapon/finger_lockpick/New() if(ismob(loc)) diff --git a/code/game/gamemodes/technomancer/spell_objs.dm b/code/game/gamemodes/technomancer/spell_objs.dm index fb28813102..2a917b4fd8 100644 --- a/code/game/gamemodes/technomancer/spell_objs.dm +++ b/code/game/gamemodes/technomancer/spell_objs.dm @@ -31,6 +31,7 @@ ) throwforce = 0 force = 0 + show_examine = FALSE // var/mob/living/carbon/human/owner = null var/mob/living/owner = null var/obj/item/weapon/technomancer_core/core = null diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index c5840eaed2..2e8429edd3 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -382,14 +382,14 @@ var/list/global/slot_flags_enumeration = list( if(!allow) return 0 if(slot_tie) - if(!H.w_uniform && (slot_w_uniform in mob_equip)) + var/allow = 0 + for(var/obj/item/clothing/C in H.worn_clothing) //Runs through everything you're wearing, returns if you can't attach the thing + if(C.can_attach_accessory(src)) + allow = 1 + break + if(!allow) if(!disable_warning) - H << "You need a jumpsuit before you can attach this [name]." - return 0 - var/obj/item/clothing/under/uniform = H.w_uniform - if(uniform.accessories.len && !uniform.can_attach_accessory(src)) - if (!disable_warning) - H << "You already have an accessory of this type attached to your [uniform]." + H << "You're not wearing anything you can attach this [name] to." return 0 return 1 diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 84f9f88602..3833133f4a 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -14,6 +14,8 @@ var/show_messages var/preserve_item = 0 //whether this object is preserved when its owner goes into cryo-storage, gateway, etc + var/show_examine = TRUE // Does this pop up on a mob when the mob is examined? + /obj/Destroy() processing_objects -= src return ..() 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 83aa687957..cf70a40920 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -103,12 +103,13 @@ if(prob(50)) new /obj/item/weapon/storage/backpack/dufflebag/sec(src) new /obj/item/clothing/head/helmet/HoS(src) + new /obj/item/clothing/head/helmet/HoS/hat(src) new /obj/item/clothing/suit/storage/vest/hos(src) new /obj/item/clothing/under/rank/head_of_security/jensen(src) new /obj/item/clothing/under/rank/head_of_security/corp(src) new /obj/item/clothing/suit/storage/vest/hoscoat/jensen(src) new /obj/item/clothing/suit/storage/vest/hoscoat(src) - new /obj/item/clothing/head/helmet/HoS/dermal(src) + new /obj/item/clothing/head/helmet/dermal(src) new /obj/item/weapon/cartridge/hos(src) new /obj/item/device/radio/headset/heads/hos(src) new /obj/item/device/radio/headset/heads/hos/alt(src) @@ -161,7 +162,9 @@ new /obj/item/clothing/under/rank/warden/corp(src) new /obj/item/clothing/suit/storage/vest/wardencoat(src) new /obj/item/clothing/suit/storage/vest/wardencoat/alt(src) + new /obj/item/clothing/head/helmet/dermal(src) new /obj/item/clothing/head/helmet/warden(src) + new /obj/item/clothing/head/helmet/warden/hat(src) new /obj/item/weapon/cartridge/security(src) new /obj/item/device/radio/headset/headset_sec(src) new /obj/item/device/radio/headset/headset_sec/alt(src) diff --git a/code/modules/clothing/clothing_accessories.dm b/code/modules/clothing/clothing_accessories.dm index 58de134f7f..b0068c6190 100644 --- a/code/modules/clothing/clothing_accessories.dm +++ b/code/modules/clothing/clothing_accessories.dm @@ -1,12 +1,17 @@ /obj/item/clothing/proc/can_attach_accessory(obj/item/clothing/accessory/A) if(valid_accessory_slots && istype(A) && (A.slot in valid_accessory_slots)) - .=1 - else - return 0 + if(accessories.len && restricted_accessory_slots && (A.slot in restricted_accessory_slots)) + for(var/obj/item/clothing/accessory/AC in accessories) + if (AC.slot == A.slot) + return 0 + return 1 + return 0 + if(accessories.len && restricted_accessory_slots && (A.slot in restricted_accessory_slots)) for(var/obj/item/clothing/accessory/AC in accessories) if (AC.slot == A.slot) return 0 + return 1 /obj/item/clothing/attackby(var/obj/item/I, var/mob/user) if(istype(I, /obj/item/clothing/accessory)) @@ -22,7 +27,7 @@ return else user << "You cannot attach more accessories of this type to [src]." - return + return if(accessories.len) for(var/obj/item/clothing/accessory/A in accessories) @@ -37,6 +42,10 @@ for(var/obj/item/clothing/accessory/A in accessories) A.attack_hand(user) return + if (ishuman(user) && src.loc == user) + var/mob/living/carbon/human/H = user + if(src != H.l_store && src != H.r_store && src != H.s_store) + return return ..() /obj/item/clothing/MouseDrop(var/obj/over_object) @@ -70,10 +79,16 @@ * user is the user doing the attaching. Can be null, such as when attaching * items on spawn */ +/obj/item/clothing/proc/update_accessory_slowdown() + slowdown = initial(slowdown) + for(var/obj/item/clothing/accessory/A in accessories) + slowdown += A.slowdown + /obj/item/clothing/proc/attach_accessory(mob/user, obj/item/clothing/accessory/A) accessories += A A.on_attached(src, user) src.verbs |= /obj/item/clothing/proc/removetie_verb + update_accessory_slowdown() update_clothing_icon() /obj/item/clothing/proc/remove_accessory(mob/user, obj/item/clothing/accessory/A) @@ -82,6 +97,7 @@ A.on_removed(user) accessories -= A + update_accessory_slowdown() update_clothing_icon() /obj/item/clothing/proc/removetie_verb() diff --git a/code/modules/clothing/gloves/arm_guards.dm b/code/modules/clothing/gloves/arm_guards.dm index 84f364e4d5..d258cb5b63 100644 --- a/code/modules/clothing/gloves/arm_guards.dm +++ b/code/modules/clothing/gloves/arm_guards.dm @@ -28,7 +28,7 @@ icon_state = "arm_guards_bullet" item_state_slots = list(slot_r_hand_str = "swat", slot_l_hand_str = "swat") siemens_coefficient = 0.7 - armor = list(melee = 10, bullet = 80, laser = 10, energy = 50, bomb = 0, bio = 0, rad = 0) + armor = list(melee = 10, bullet = 80, laser = 10, energy = 10, bomb = 0, bio = 0, rad = 0) /obj/item/clothing/gloves/arm_guard/riot name = "riot arm guards" @@ -36,7 +36,7 @@ icon_state = "arm_guards_riot" item_state_slots = list(slot_r_hand_str = "swat", slot_l_hand_str = "swat") siemens_coefficient = 0.5 - armor = list(melee = 80, bullet = 10, laser = 10, energy = 50, bomb = 0, bio = 0, rad = 0) + armor = list(melee = 80, bullet = 10, laser = 10, energy = 10, bomb = 0, bio = 0, rad = 0) /obj/item/clothing/gloves/arm_guard/combat name = "combat arm guards" diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index 8527e8b501..3a2a4f7328 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -2,6 +2,8 @@ name = "helmet" desc = "Standard Security gear. Protects the head from impacts." icon_state = "helmet" + valid_accessory_slots = list(ACCESSORY_SLOT_HELM_C) + restricted_accessory_slots = list(ACCESSORY_SLOT_HELM_C) flags = THICKMATERIAL armor = list(melee = 40, bullet = 30, laser = 30, energy = 10, bomb = 10, bio = 0, rad = 0) flags_inv = HIDEEARS|HIDEEYES @@ -18,6 +20,7 @@ desc = "A helmet painted in Peacekeeper blue. Stands out like a sore thumb." icon_state = "helmet_sol" armor = list(melee = 50, bullet = 50, laser = 50,energy = 25, bomb = 30, bio = 0, rad = 0) + valid_accessory_slots = null /obj/item/clothing/head/helmet/solgov/command name = "command helmet" @@ -61,6 +64,7 @@ armor = list(melee = 80, bullet = 10, laser = 10, energy = 10, bomb = 0, bio = 0, rad = 0) flags_inv = HIDEEARS siemens_coefficient = 0.7 + valid_accessory_slots = null action_button_name = "Toggle Visor" /obj/item/clothing/head/helmet/riot/attack_self(mob/user as mob) @@ -80,6 +84,7 @@ armor = list(melee = 10, bullet = 10, laser = 80 ,energy = 50, bomb = 0, bio = 0, rad = 0) flags_inv = HIDEEARS siemens_coefficient = 0.1 + valid_accessory_slots = null /obj/item/clothing/head/helmet/bulletproof name = "bullet-resistant helmet" @@ -89,6 +94,7 @@ armor = list(melee = 10, bullet = 80, laser = 10 ,energy = 10, bomb = 0, bio = 0, rad = 0) flags_inv = HIDEEARS siemens_coefficient = 0.7 + valid_accessory_slots = null /obj/item/clothing/head/helmet/combat name = "combat helmet" @@ -98,6 +104,7 @@ armor = list(melee = 50, bullet = 50, laser = 50 ,energy = 30, bomb = 30, bio = 0, rad = 0) flags_inv = HIDEEARS siemens_coefficient = 0.6 + valid_accessory_slots = null /obj/item/clothing/head/helmet/swat name = "\improper SWAT helmet" @@ -115,6 +122,7 @@ icon_state = "alienhelmet" siemens_coefficient = 0.4 armor = list(melee = 50, bullet = 50, laser = 50, energy = 50, bomb = 50, bio = 0, rad = 40) + valid_accessory_slots = null /obj/item/clothing/head/helmet/alien/tank name = "alien warhelm" @@ -137,6 +145,7 @@ flags = BLOCKHAIR flags_inv = HIDEMASK|HIDEEARS|HIDEEYES siemens_coefficient = 1 + valid_accessory_slots = null /obj/item/clothing/head/helmet/tactical name = "tactical helmet" @@ -151,6 +160,7 @@ armor = list(melee = 60, bullet = 60, laser = 60, energy = 40, bomb = 40, bio = 0, rad = 0) flags_inv = HIDEEARS siemens_coefficient = 0.7 + valid_accessory_slots = null /obj/item/clothing/head/helmet/augment name = "Augment Array" @@ -162,6 +172,7 @@ cold_protection = HEAD min_cold_protection_temperature = SPACE_HELMET_MIN_COLD_PROTECTION_TEMPERATURE siemens_coefficient = 0.5 + valid_accessory_slots = null //Non-hardsuit ERT helmets. /obj/item/clothing/head/helmet/ert @@ -170,6 +181,7 @@ icon_state = "erthelmet_cmd" item_state_slots = list(slot_r_hand_str = "syndicate-helm-green", slot_l_hand_str = "syndicate-helm-green") armor = list(melee = 62, bullet = 50, laser = 50,energy = 35, bomb = 10, bio = 2, rad = 0) + valid_accessory_slots = null //Commander /obj/item/clothing/head/helmet/ert/command diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index bb8f29e892..2396ccd432 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -103,23 +103,33 @@ icon_state = "beret_corporate_warden" item_state_slots = list(slot_r_hand_str = "beret_black", slot_l_hand_str = "beret_black") -/obj/item/clothing/head/helmet/warden //should these be helmets? +/obj/item/clothing/head/helmet/warden + name = "warden's helmet" + desc = "Standard Warden gear. Protects the head from impacts." + +/obj/item/clothing/head/helmet/warden/hat name = "warden's hat" - desc = "It's a special helmet issued to the Warden of a securiy force." + desc = "It's a special hat issued to the Warden of a securiy force." icon_state = "policehelm" - body_parts_covered = 0 + valid_accessory_slots = null /obj/item/clothing/head/helmet/HoS + name = "Head of Security helmet" + desc = "Standard Head of Security gear. Protects the head from impacts." + +/obj/item/clothing/head/helmet/HoS/hat name = "Head of Security Hat" desc = "The hat of the Head of Security. For showing the officers who's in charge." icon_state = "hoscap" - body_parts_covered = 0 + valid_accessory_slots = null -/obj/item/clothing/head/helmet/HoS/dermal +/obj/item/clothing/head/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" item_state_slots = list(slot_r_hand_str = "", slot_l_hand_str = "") + valid_accessory_slots = null + show_examine = FALSE /obj/item/clothing/head/det name = "fedora" @@ -128,14 +138,14 @@ allowed = list(/obj/item/weapon/reagent_containers/food/snacks/candy_corn, /obj/item/weapon/pen) armor = list(melee = 10, bullet = 10, laser = 15, energy = 10, bomb = 0, bio = 0, rad = 0) siemens_coefficient = 0.9 - body_parts_covered = 0 + valid_accessory_slots = null + show_examine = FALSE /obj/item/clothing/head/det/grey icon_state = "detective2" item_state_slots = list(slot_r_hand_str = "detective", slot_l_hand_str = "detective") desc = "A grey fedora - either the cornerstone of a detective's style or a poor attempt at looking cool, depending on the person wearing it." - /obj/item/clothing/head/beret/engineering name = "engineering beret" desc = "A beret with the engineering insignia emblazoned on it. For engineers that are more inclined towards style than safety." diff --git a/code/modules/clothing/spacesuits/spacesuits.dm b/code/modules/clothing/spacesuits/spacesuits.dm index 8eb3ad56c9..fdf5a92868 100644 --- a/code/modules/clothing/spacesuits/spacesuits.dm +++ b/code/modules/clothing/spacesuits/spacesuits.dm @@ -18,6 +18,7 @@ preserve_item = 1 phoronproof = 1 flash_protection = FLASH_PROTECTION_MAJOR + valid_accessory_slots = null var/obj/machinery/camera/camera var/list/camera_networks diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 94f49a2b1a..fcb3040f81 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -498,28 +498,28 @@ blood_overlay_type = "armor" /obj/item/clothing/suit/armor/pcarrier/light - starting_accessories = list(/obj/item/clothing/accessory/armorplate) + starting_accessories = list(/obj/item/clothing/accessory/armor/armorplate) /obj/item/clothing/suit/armor/pcarrier/light/sol - starting_accessories = list(/obj/item/clothing/accessory/armorplate, /obj/item/clothing/accessory/armor/tag) + starting_accessories = list(/obj/item/clothing/accessory/armor/armorplate, /obj/item/clothing/accessory/armor/tag) /obj/item/clothing/suit/armor/pcarrier/light/nt - starting_accessories = list(/obj/item/clothing/accessory/armorplate, /obj/item/clothing/accessory/armor/tag/nt) + starting_accessories = list(/obj/item/clothing/accessory/armor/armorplate, /obj/item/clothing/accessory/armor/tag/nt) /obj/item/clothing/suit/armor/pcarrier/medium - starting_accessories = list(/obj/item/clothing/accessory/armorplate/medium, /obj/item/clothing/accessory/storage/pouches) + starting_accessories = list(/obj/item/clothing/accessory/armor/armorplate/medium, /obj/item/clothing/accessory/storage/pouches) /obj/item/clothing/suit/armor/pcarrier/medium/sol - starting_accessories = list(/obj/item/clothing/accessory/armorplate/medium, /obj/item/clothing/accessory/storage/pouches, /obj/item/clothing/accessory/armor/tag) + starting_accessories = list(/obj/item/clothing/accessory/armor/armorplate/medium, /obj/item/clothing/accessory/storage/pouches, /obj/item/clothing/accessory/armor/tag) /obj/item/clothing/suit/armor/pcarrier/medium/security - starting_accessories = list(/obj/item/clothing/accessory/armorplate/medium, /obj/item/clothing/accessory/storage/pouches, /obj/item/clothing/accessory/armor/tag/sec) + starting_accessories = list(/obj/item/clothing/accessory/armor/armorplate/medium, /obj/item/clothing/accessory/storage/pouches, /obj/item/clothing/accessory/armor/tag/sec) /obj/item/clothing/suit/armor/pcarrier/medium/command - starting_accessories = list(/obj/item/clothing/accessory/armorplate/medium, /obj/item/clothing/accessory/storage/pouches, /obj/item/clothing/accessory/armor/tag/com) + starting_accessories = list(/obj/item/clothing/accessory/armor/armorplate/medium, /obj/item/clothing/accessory/storage/pouches, /obj/item/clothing/accessory/armor/tag/com) /obj/item/clothing/suit/armor/pcarrier/medium/nt - starting_accessories = list(/obj/item/clothing/accessory/armorplate/medium, /obj/item/clothing/accessory/storage/pouches, /obj/item/clothing/accessory/armor/tag/nt) + starting_accessories = list(/obj/item/clothing/accessory/armor/armorplate/medium, /obj/item/clothing/accessory/storage/pouches, /obj/item/clothing/accessory/armor/tag/nt) /obj/item/clothing/suit/armor/pcarrier/blue name = "blue plate carrier" @@ -529,7 +529,7 @@ /obj/item/clothing/suit/armor/pcarrier/blue/sol name = "peacekeeper plate carrier" desc = "A lightweight plate carrier vest in SCG Peacekeeper colors. It can be equipped with armor plates, but provides no protection of its own." - starting_accessories = list(/obj/item/clothing/accessory/armorplate/medium, /obj/item/clothing/accessory/storage/pouches/blue, /obj/item/clothing/accessory/armguards/blue, /obj/item/clothing/accessory/armor/tag) + starting_accessories = list(/obj/item/clothing/accessory/armor/armorplate/medium, /obj/item/clothing/accessory/storage/pouches/blue, /obj/item/clothing/accessory/armor/armguards/blue, /obj/item/clothing/accessory/armor/tag) /obj/item/clothing/suit/armor/pcarrier/green name = "green plate carrier" @@ -548,8 +548,8 @@ /obj/item/clothing/suit/armor/pcarrier/tan/tactical name = "tactical plate carrier" - starting_accessories = list(/obj/item/clothing/accessory/armorplate/tactical, /obj/item/clothing/accessory/storage/pouches/large/tan) + starting_accessories = list(/obj/item/clothing/accessory/armor/armorplate/tactical, /obj/item/clothing/accessory/storage/pouches/large/tan) /obj/item/clothing/suit/armor/pcarrier/merc - starting_accessories = list(/obj/item/clothing/accessory/armorplate/merc, /obj/item/clothing/accessory/armguards/merc, /obj/item/clothing/accessory/legguards/merc, /obj/item/clothing/accessory/storage/pouches/large) + starting_accessories = list(/obj/item/clothing/accessory/armor/armorplate/merc, /obj/item/clothing/accessory/armor/armguards/merc, /obj/item/clothing/accessory/armor/legguards/merc, /obj/item/clothing/accessory/storage/pouches/large) diff --git a/code/modules/clothing/under/accessories/armor.dm b/code/modules/clothing/under/accessories/armor.dm index f17c5e7ad2..df9e3b7c17 100644 --- a/code/modules/clothing/under/accessories/armor.dm +++ b/code/modules/clothing/under/accessories/armor.dm @@ -1,11 +1,25 @@ +/* +// This file holds all of the accessories used as part of the modular armor system. At some point it might be wise to split this into multiple files. +*/ + +/obj/item/clothing/accessory/armor + name = "armor accessory" + desc = "You should never see this description. Ahelp this, please." + icon_override = 'icons/mob/modular_armor.dmi' + icon = 'icons/obj/clothing/modular_armor.dmi' + icon_state = "pouches" + w_class = ITEMSIZE_NORMAL + +/////////// //Pouches +/////////// /obj/item/clothing/accessory/storage/pouches name = "storage pouches" desc = "A collection of black pouches that can be attached to a plate carrier. Carries up to two items." icon_override = 'icons/mob/modular_armor.dmi' icon = 'icons/obj/clothing/modular_armor.dmi' -// accessory_icons = list(slot_tie_str = 'icons/mob/modular_armor.dmi', slot_wear_suit_str = 'icons/mob/modular_armor.dmi') icon_state = "pouches" + w_class = ITEMSIZE_NORMAL gender = PLURAL slot = ACCESSORY_SLOT_ARMOR_S slots = 2 @@ -31,6 +45,7 @@ desc = "A collection of black pouches that can be attached to a plate carrier. Carries up to four items." icon_state = "lpouches" slots = 4 + slowdown = 0.25 /obj/item/clothing/accessory/storage/pouches/large/blue desc = "A collection of blue pouches that can be attached to a plate carrier. Carries up to four items." @@ -48,40 +63,41 @@ desc = "A collection of tan pouches that can be attached to a plate carrier. Carries up to four items." icon_state = "lpouches_tan" +//////////////// //Armor plates -/obj/item/clothing/accessory/armorplate +//////////////// +/obj/item/clothing/accessory/armor/armorplate name = "light armor plate" desc = "A basic armor plate made of steel-reinforced synthetic fibers. Attaches to a plate carrier." - icon = 'icons/obj/clothing/modular_armor.dmi' icon_state = "armor_light" body_parts_covered = UPPER_TORSO|LOWER_TORSO armor = list(melee = 30, bullet = 15, laser = 40, energy = 10, bomb = 25, bio = 0, rad = 0) slot = ACCESSORY_SLOT_ARMOR_C -/obj/item/clothing/accessory/armorplate/medium +/obj/item/clothing/accessory/armor/armorplate/medium name = "medium armor plate" desc = "A plasteel-reinforced synthetic armor plate, providing good protection. Attaches to a plate carrier." icon_state = "armor_medium" armor = list(melee = 40, bullet = 40, laser = 40, energy = 25, bomb = 30, bio = 0, rad = 0) -/obj/item/clothing/accessory/armorplate/tactical +/obj/item/clothing/accessory/armor/armorplate/tactical name = "tactical armor plate" desc = "A medium armor plate with additional ablative coating. Attaches to a plate carrier." icon_state = "armor_tactical" armor = list(melee = 40, bullet = 40, laser = 60, energy = 35, bomb = 30, bio = 0, rad = 0) -/obj/item/clothing/accessory/armorplate/merc +/obj/item/clothing/accessory/armor/armorplate/merc name = "heavy armor plate" desc = "A ceramics-reinforced synthetic armor plate, providing state of of the art protection. Attaches to a plate carrier." icon_state = "armor_heavy" armor = list(melee = 60, bullet = 60, laser = 60, energy = 40, bomb = 40, bio = 0, rad = 0) +////////////// //Arm guards -/obj/item/clothing/accessory/armguards +////////////// +/obj/item/clothing/accessory/armor/armguards name = "arm guards" desc = "A pair of black arm pads reinforced with armor plating. Attaches to a plate carrier." - icon_override = 'icons/mob/modular_armor.dmi' - icon = 'icons/obj/clothing/modular_armor.dmi' // accessory_icons = list(slot_tie_str = 'icons/mob/modular_armor.dmi', slot_wear_suit_str = 'icons/mob/modular_armor.dmi') icon_state = "armguards" gender = PLURAL @@ -89,34 +105,58 @@ armor = list(melee = 40, bullet = 40, laser = 40, energy = 25, bomb = 30, bio = 0, rad = 0) slot = ACCESSORY_SLOT_ARMOR_A -/obj/item/clothing/accessory/armguards/blue +/obj/item/clothing/accessory/armor/armguards/blue desc = "A pair of blue arm pads reinforced with armor plating. Attaches to a plate carrier." icon_state = "armguards_blue" -/obj/item/clothing/accessory/armguards/navy +/obj/item/clothing/accessory/armor/armguards/navy desc = "A pair of navy blue arm pads reinforced with armor plating. Attaches to a plate carrier." icon_state = "armguards_navy" -/obj/item/clothing/accessory/armguards/green +/obj/item/clothing/accessory/armor/armguards/green desc = "A pair of green arm pads reinforced with armor plating. Attaches to a plate carrier." icon_state = "armguards_green" -/obj/item/clothing/accessory/armguards/tan +/obj/item/clothing/accessory/armor/armguards/tan desc = "A pair of tan arm pads reinforced with armor plating. Attaches to a plate carrier." icon_state = "armguards_tan" -/obj/item/clothing/accessory/armguards/merc +/obj/item/clothing/accessory/armor/armguards/merc name = "heavy arm guards" desc = "A pair of red-trimmed black arm pads reinforced with heavy armor plating. Attaches to a plate carrier." icon_state = "armguards_merc" armor = list(melee = 60, bullet = 60, laser = 60, energy = 40, bomb = 40, bio = 0, rad = 0) +/obj/item/clothing/accessory/armor/armguards/laserproof + name = "ablative arm guards" + desc = "These arm guards will protect your arms from energy weapons." + icon_state = "armguards_laser" + item_state_slots = list(slot_r_hand_str = "swat", slot_l_hand_str = "swat") + siemens_coefficient = 0.4 //This is worse than the other ablative pieces, to avoid this from becoming the poor warden's insulated gloves. + armor = list(melee = 10, bullet = 10, laser = 80, energy = 50, bomb = 0, bio = 0, rad = 0) + +/obj/item/clothing/accessory/armor/armguards/bulletproof + name = "bullet resistant arm guards" + desc = "These arm guards will protect your arms from ballistic weapons." + icon_state = "armguards_bullet" + item_state_slots = list(slot_r_hand_str = "swat", slot_l_hand_str = "swat") + siemens_coefficient = 0.7 + armor = list(melee = 10, bullet = 80, laser = 10, energy = 50, bomb = 0, bio = 0, rad = 0) + +/obj/item/clothing/accessory/armor/armguards/riot + name = "riot arm guards" + desc = "These arm guards will protect your arms from close combat weapons." + icon_state = "armguards_riot" + item_state_slots = list(slot_r_hand_str = "swat", slot_l_hand_str = "swat") + siemens_coefficient = 0.5 + armor = list(melee = 80, bullet = 10, laser = 10, energy = 50, bomb = 0, bio = 0, rad = 0) + +////////////// //Leg guards -/obj/item/clothing/accessory/legguards +////////////// +/obj/item/clothing/accessory/armor/legguards name = "leg guards" desc = "A pair of armored leg pads in black. Attaches to a plate carrier." - icon_override = 'icons/mob/modular_armor.dmi' - icon = 'icons/obj/clothing/modular_armor.dmi' // accessory_icons = list(slot_tie_str = 'icons/mob/modular_armor.dmi', slot_wear_suit_str = 'icons/mob/modular_armor.dmi') icon_state = "legguards" gender = PLURAL @@ -124,38 +164,62 @@ armor = list(melee = 40, bullet = 40, laser = 40, energy = 25, bomb = 30, bio = 0, rad = 0) slot = ACCESSORY_SLOT_ARMOR_L -/obj/item/clothing/accessory/legguards/blue +/obj/item/clothing/accessory/armor/legguards/blue desc = "A pair of armored leg pads in blue. Attaches to a plate carrier." icon_state = "legguards_blue" -/obj/item/clothing/accessory/legguards/navy +/obj/item/clothing/accessory/armor/legguards/navy desc = "A pair of armored leg pads in navy blue. Attaches to a plate carrier." icon_state = "legguards_navy" -/obj/item/clothing/accessory/legguards/green +/obj/item/clothing/accessory/armor/legguards/green desc = "A pair of armored leg pads in green. Attaches to a plate carrier." icon_state = "legguards_green" -/obj/item/clothing/accessory/legguards/tan +/obj/item/clothing/accessory/armor/legguards/tan desc = "A pair of armored leg pads in tan. Attaches to a plate carrier." icon_state = "legguards_tan" -/obj/item/clothing/accessory/legguards/merc +/obj/item/clothing/accessory/armor/legguards/merc name = "heavy leg guards" desc = "A pair of heavily armored leg pads in red-trimmed black. Attaches to a plate carrier." icon_state = "legguards_merc" armor = list(melee = 60, bullet = 60, laser = 60, energy = 40, bomb = 40, bio = 0, rad = 0) +/obj/item/clothing/accessory/armor/legguards/laserproof + name = "ablative leg guards" + desc = "These will protect your legs from energy weapons." + icon_state = "legguards_laser" + item_state_slots = list(slot_r_hand_str = "jackboots", slot_l_hand_str = "jackboots") + siemens_coefficient = 0.1 + armor = list(melee = 10, bullet = 10, laser = 80, energy = 50, bomb = 0, bio = 0, rad = 0) +/obj/item/clothing/accessory/armor/legguards/bulletproof + name = "bullet resistant leg guards" + desc = "These will protect your legs from ballistic weapons." + icon_state = "legguards_bullet" + item_state_slots = list(slot_r_hand_str = "jackboots", slot_l_hand_str = "jackboots") + siemens_coefficient = 0.7 + armor = list(melee = 10, bullet = 80, laser = 10, energy = 10, bomb = 0, bio = 0, rad = 0) + +/obj/item/clothing/accessory/armor/legguards/riot + name = "riot leg guards" + desc = "These will protect your legs from close combat weapons." + icon_state = "legguards_riot" + item_state_slots = list(slot_r_hand_str = "jackboots", slot_l_hand_str = "jackboots") + siemens_coefficient = 0.5 + armor = list(melee = 80, bullet = 10, laser = 10, energy = 10, bomb = 0, bio = 0, rad = 0) + +////////////////////////// //Decorative attachments +////////////////////////// /obj/item/clothing/accessory/armor/tag name = "\improper SCG Flag" desc = "An emblem depicting the Solar Confederate Government's flag." - icon_override = 'icons/mob/modular_armor.dmi' - icon = 'icons/obj/clothing/modular_armor.dmi' // accessory_icons = list(slot_tie_str = 'icons/mob/modular_armor.dmi', slot_wear_suit_str = 'icons/mob/modular_armor.dmi') icon_state = "solflag" slot = ACCESSORY_SLOT_ARMOR_M + w_class = ITEMSIZE_SMALL /obj/item/clothing/accessory/armor/tag/sifguard name = "\improper Sif Defense Force crest" @@ -226,3 +290,50 @@ name = "\improper AB- blood patch" desc = "An embroidered patch indicating the wearer's blood type as AB NEGATIVE." icon_state = "abnegtag" + +///////////////// +// Helmet Covers +///////////////// + +obj/item/clothing/accessory/armor/helmcover + name = "helmet cover" + desc = "A fabric cover for armored helmets." + icon_override = 'icons/mob/ties.dmi' + icon = 'icons/obj/clothing/modular_armor.dmi' + icon_state = "helmcover_blue" + slot = ACCESSORY_SLOT_HELM_C + +/obj/item/clothing/accessory/armor/helmcover/blue + name = "blue helmet cover" + desc = "A fabric cover for armored helmets in a bright blue color." + icon_state = "helmcover_blue" + +/obj/item/clothing/accessory/armor/helmcover/navy + name = "navy blue helmet cover" + desc = "A fabric cover for armored helmets. This one is colored navy blue." + icon_state = "helmcover_navy" + +/obj/item/clothing/accessory/armor/helmcover/green + name = "green helmet cover" + desc = "A fabric cover for armored helmets. This one has a woodland camouflage pattern." + icon_state = "helmcover_green" + +/obj/item/clothing/accessory/armor/helmcover/tan + name = "tan helmet cover" + desc = "A fabric cover for armored helmets. This one has a desert camouflage pattern." + icon_state = "helmcover_tan" + +/obj/item/clothing/accessory/armor/helmcover/nt + name = "\improper NanoTrasen helmet cover" + desc = "A fabric cover for armored helmets. This one has NanoTrasen's colors." + icon_state = "helmcover_nt" + +/obj/item/clothing/accessory/armor/helmcover/pcrc + name = "\improper PCRC helmet cover" + desc = "A fabric cover for armored helmets. This one is colored navy blue and has a tag in the back with the words PROXIMA CENTAURI RISK CONTROL printed in cyan lettering on it." + icon_state = "helmcover_pcrc" + +/obj/item/clothing/accessory/armor/helmcover/saare + name = "\improper SAARE helmet cover" + desc = "A fabric cover for armored helmets. This one has SAARE's colors." + icon_state = "helmcover_saare" \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 54bc007f94..b82da13991 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -133,7 +133,7 @@ msg += "
" //uniform - if(w_uniform && !skipjumpsuit) + if(w_uniform && !skipjumpsuit && w_uniform.show_examine) //Ties var/tie_msg if(istype(w_uniform,/obj/item/clothing/under) && !skiptie) @@ -142,7 +142,7 @@ if(skipholster) var/list/accessories_visible = new/list() //please let this fix the stupid fucking runtimes for(var/obj/item/clothing/accessory/A in U.accessories) - if(A.concealed_holster == 0) + if(A.concealed_holster == 0 && A.show_examine) accessories_visible.Add(A) if(accessories_visible.len) tie_msg += ". Attached to it is [lowertext(english_list(accessories_visible))]" @@ -154,7 +154,7 @@ msg += "[T.He] [T.is] wearing \icon[w_uniform] \a [w_uniform][tie_msg].\n" //head - if(head) + if(head && head.show_examine) if(head.blood_DNA) msg += "[T.He] [T.is] wearing \icon[head] [head.gender==PLURAL?"some":"a"] [(head.blood_color != SYNTH_BLOOD_COLOUR) ? "blood" : "oil"]-stained [head.name] on [T.his] head!\n" else @@ -174,35 +174,35 @@ msg += "[T.He] [T.is] wearing \icon[wear_suit] \a [wear_suit][tie_msg].\n" //suit/armour storage - if(s_store && !skipsuitstorage) + if(s_store && !skipsuitstorage && s_store.show_examine) if(s_store.blood_DNA) msg += "[T.He] [T.is] carrying \icon[s_store] [s_store.gender==PLURAL?"some":"a"] [(s_store.blood_color != SYNTH_BLOOD_COLOUR) ? "blood" : "oil"]-stained [s_store.name] on [T.his] [wear_suit.name]!\n" else msg += "[T.He] [T.is] carrying \icon[s_store] \a [s_store] on [T.his] [wear_suit.name].\n" //back - if(back) + if(back && back.show_examine) if(back.blood_DNA) msg += "[T.He] [T.has] \icon[back] [back.gender==PLURAL?"some":"a"] [(back.blood_color != SYNTH_BLOOD_COLOUR) ? "blood" : "oil"]-stained [back] on [T.his] back.\n" else msg += "[T.He] [T.has] \icon[back] \a [back] on [T.his] back.\n" //left hand - if(l_hand) + if(l_hand && l_hand.show_examine) if(l_hand.blood_DNA) msg += "[T.He] [T.is] holding \icon[l_hand] [l_hand.gender==PLURAL?"some":"a"] [(l_hand.blood_color != SYNTH_BLOOD_COLOUR) ? "blood" : "oil"]-stained [l_hand.name] in [T.his] left hand!\n" else msg += "[T.He] [T.is] holding \icon[l_hand] \a [l_hand] in [T.his] left hand.\n" //right hand - if(r_hand) + if(r_hand && r_hand.show_examine) if(r_hand.blood_DNA) msg += "[T.He] [T.is] holding \icon[r_hand] [r_hand.gender==PLURAL?"some":"a"] [(r_hand.blood_color != SYNTH_BLOOD_COLOUR) ? "blood" : "oil"]-stained [r_hand.name] in [T.his] right hand!\n" else msg += "[T.He] [T.is] holding \icon[r_hand] \a [r_hand] in [T.his] right hand.\n" //gloves - if(gloves && !skipgloves) + if(gloves && !skipgloves && gloves.show_examine) if(gloves.blood_DNA) msg += "[T.He] [T.has] \icon[gloves] [gloves.gender==PLURAL?"some":"a"] [(gloves.blood_color != SYNTH_BLOOD_COLOUR) ? "blood" : "oil"]-stained [gloves.name] on [T.his] hands!\n" else @@ -211,7 +211,7 @@ msg += "[T.He] [T.has] [(hand_blood_color != SYNTH_BLOOD_COLOUR) ? "blood" : "oil"]-stained hands!\n" //handcuffed? - if(handcuffed) + if(handcuffed && handcuffed.show_examine) if(istype(handcuffed, /obj/item/weapon/handcuffs/cable)) msg += "[T.He] [T.is] \icon[handcuffed] restrained with cable!\n" else @@ -222,14 +222,14 @@ msg += "[T.He] [T.is] \icon[buckled] buckled to [buckled]!\n" //belt - if(belt) + if(belt && belt.show_examine) if(belt.blood_DNA) msg += "[T.He] [T.has] \icon[belt] [belt.gender==PLURAL?"some":"a"] [(belt.blood_color != SYNTH_BLOOD_COLOUR) ? "blood" : "oil"]-stained [belt.name] about [T.his] waist!\n" else msg += "[T.He] [T.has] \icon[belt] \a [belt] about [T.his] waist.\n" //shoes - if(shoes && !skipshoes) + if(shoes && !skipshoes && shoes.show_examine) if(shoes.blood_DNA) msg += "[T.He] [T.is] wearing \icon[shoes] [shoes.gender==PLURAL?"some":"a"] [(shoes.blood_color != SYNTH_BLOOD_COLOUR) ? "blood" : "oil"]-stained [shoes.name] on [T.his] feet!\n" else @@ -238,7 +238,7 @@ msg += "[T.He] [T.has] [(feet_blood_color != SYNTH_BLOOD_COLOUR) ? "blood" : "oil"]-stained feet!\n" //mask - if(wear_mask && !skipmask) + if(wear_mask && !skipmask && wear_mask.show_examine) var/descriptor = "on [T.his] face" if(istype(wear_mask, /obj/item/weapon/grenade) && check_has_mouth()) descriptor = "in [T.his] mouth" @@ -249,22 +249,22 @@ msg += "[T.He] [T.has] \icon[wear_mask] \a [wear_mask] [descriptor].\n" //eyes - if(glasses && !skipeyes) + if(glasses && !skipeyes && glasses.show_examine) if(glasses.blood_DNA) msg += "[T.He] [T.has] \icon[glasses] [glasses.gender==PLURAL?"some":"a"] [(glasses.blood_color != SYNTH_BLOOD_COLOUR) ? "blood" : "oil"]-stained [glasses] covering [T.his] eyes!\n" else msg += "[T.He] [T.has] \icon[glasses] \a [glasses] covering [T.his] eyes.\n" //left ear - if(l_ear && !skipears) + if(l_ear && !skipears && l_ear.show_examine) msg += "[T.He] [T.has] \icon[l_ear] \a [l_ear] on [T.his] left ear.\n" //right ear - if(r_ear && !skipears) + if(r_ear && !skipears && r_ear.show_examine) msg += "[T.He] [T.has] \icon[r_ear] \a [r_ear] on [T.his] right ear.\n" //ID - if(wear_id) + if(wear_id && wear_id.show_examine) /*var/id if(istype(wear_id, /obj/item/device/pda)) var/obj/item/device/pda/pda = wear_id diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index 5c269c7ce2..871145d8a9 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -3,6 +3,9 @@ Add fingerprints to items when we put them in our hands. This saves us from having to call add_fingerprint() any time something is put in a human's hands programmatically. */ +/mob/living/carbon/human + var/list/worn_clothing = list() //Contains all CLOTHING items worn + /mob/living/carbon/human/verb/quick_equip() set name = "quick-equip" set hidden = 1 @@ -86,6 +89,7 @@ This saves us from having to call add_fingerprint() any time something is put in if (W == wear_suit) if(s_store) drop_from_inventory(s_store) + worn_clothing -= wear_suit wear_suit = null update_inv_wear_suit() else if (W == w_uniform) @@ -96,16 +100,21 @@ This saves us from having to call add_fingerprint() any time something is put in if (wear_id) drop_from_inventory(wear_id) if (belt) + worn_clothing -= belt drop_from_inventory(belt) + worn_clothing -= w_uniform w_uniform = null update_inv_w_uniform() else if (W == gloves) + worn_clothing -= gloves gloves = null update_inv_gloves() else if (W == glasses) + worn_clothing -= glasses glasses = null update_inv_glasses() else if (W == head) + worn_clothing -= head head = null if(istype(W, /obj/item)) var/obj/item/I = W @@ -121,12 +130,15 @@ This saves us from having to call add_fingerprint() any time something is put in r_ear = null update_inv_ears() else if (W == shoes) + worn_clothing -= shoes shoes = null update_inv_shoes() else if (W == belt) + worn_clothing -= belt belt = null update_inv_belt() else if (W == wear_mask) + worn_clothing -= wear_mask wear_mask = null if(istype(W, /obj/item)) var/obj/item/I = W @@ -187,15 +199,21 @@ This saves us from having to call add_fingerprint() any time something is put in //set redraw_mob to 0 if you don't wish the hud to be updated - if you're doing it manually in your own proc. /mob/living/carbon/human/equip_to_slot(obj/item/W as obj, slot, redraw_mob = 1) - if(!slot) return - if(!istype(W)) return - if(!has_organ_for_slot(slot)) return - if(!species || !species.hud || !(slot in species.hud.equip_slots)) return + if(!slot) + return + if(!istype(W)) + return + if(!has_organ_for_slot(slot)) + return + if(!species || !species.hud || !(slot in species.hud.equip_slots)) + return + W.loc = src switch(slot) if(slot_back) src.back = W W.equipped(src, slot) + worn_clothing += back update_inv_back(redraw_mob) if(slot_wear_mask) src.wear_mask = W @@ -203,6 +221,7 @@ This saves us from having to call add_fingerprint() any time something is put in update_hair(redraw_mob) //rebuild hair update_inv_ears(0) W.equipped(src, slot) + worn_clothing += wear_mask update_inv_wear_mask(redraw_mob) if(slot_handcuffed) src.handcuffed = W @@ -222,6 +241,7 @@ This saves us from having to call add_fingerprint() any time something is put in if(slot_belt) src.belt = W W.equipped(src, slot) + worn_clothing += belt update_inv_belt(redraw_mob) if(slot_wear_id) src.wear_id = W @@ -252,6 +272,7 @@ This saves us from having to call add_fingerprint() any time something is put in if(slot_gloves) src.gloves = W W.equipped(src, slot) + worn_clothing += glasses update_inv_gloves(redraw_mob) if(slot_head) src.head = W @@ -262,18 +283,22 @@ This saves us from having to call add_fingerprint() any time something is put in if(istype(W,/obj/item/clothing/head/kitty)) W.update_icon(src) W.equipped(src, slot) + worn_clothing += head update_inv_head(redraw_mob) if(slot_shoes) src.shoes = W W.equipped(src, slot) + worn_clothing += shoes update_inv_shoes(redraw_mob) if(slot_wear_suit) src.wear_suit = W W.equipped(src, slot) + worn_clothing += wear_suit update_inv_wear_suit(redraw_mob) if(slot_w_uniform) src.w_uniform = W W.equipped(src, slot) + worn_clothing += w_uniform update_inv_w_uniform(redraw_mob) if(slot_l_store) src.l_store = W @@ -292,8 +317,8 @@ This saves us from having to call add_fingerprint() any time something is put in src.remove_from_mob(W) W.loc = src.back if(slot_tie) - var/obj/item/clothing/under/uniform = src.w_uniform - uniform.attackby(W,src) + for(var/obj/item/clothing/C in worn_clothing) + C.attackby(W, usr) else src << "You are trying to eqip this item to an unsupported inventory slot. How the heck did you manage that? Stop it..." return diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index cb395ece82..cb0b4a4027 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -1006,6 +1006,13 @@ var/global/list/damage_icon_parts = list() standing = image(base) else standing.color = head.color + + // Accessories - copied from uniform, BOILERPLATE because fuck this system. + var/obj/item/clothing/head/hat = head + if(istype(hat) && hat.accessories.len) + for(var/obj/item/clothing/accessory/A in hat.accessories) + standing.overlays |= A.get_mob_overlay() + overlays_standing[HEAD_LAYER] = standing else diff --git a/html/changelogs/Anewbe - Various1.yml b/html/changelogs/Anewbe - Various1.yml new file mode 100644 index 0000000000..85c8994fd1 --- /dev/null +++ b/html/changelogs/Anewbe - Various1.yml @@ -0,0 +1,39 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: Anewbe + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Added Warden and HoS helmets." + - tweak: "Clothing items must be click+dragged to be unequipped. A lot of them already had this, but the system is now standardized." + - tweak: "Accessories now apply slowdown to what they're attached to. + - tweak: "Certain items, notably Technomancer spells, no longer show up when you examine the mob wearing them." \ No newline at end of file diff --git a/icons/mob/modular_armor.dmi b/icons/mob/modular_armor.dmi index 2c7d8ea841..f8e4fe7738 100644 Binary files a/icons/mob/modular_armor.dmi and b/icons/mob/modular_armor.dmi differ diff --git a/icons/mob/ties.dmi b/icons/mob/ties.dmi index fa22bde1c4..b90b3bb18d 100644 Binary files a/icons/mob/ties.dmi and b/icons/mob/ties.dmi differ diff --git a/icons/obj/clothing/modular_armor.dmi b/icons/obj/clothing/modular_armor.dmi index 89ef66aa8c..10bffa0857 100644 Binary files a/icons/obj/clothing/modular_armor.dmi and b/icons/obj/clothing/modular_armor.dmi differ