From b418d57dd6d050f417a56d26ca0a09c803e35848 Mon Sep 17 00:00:00 2001 From: MagmaRam Date: Wed, 9 Nov 2016 23:23:19 -0600 Subject: [PATCH] Makes it so that holsters can be hidden by suit-slot items. I have yet to actually make any suit-slot items hide holsters. --- code/__defines/items_clothing.dm | 2 ++ code/datums/supplypacks/security.dm | 6 +++--- code/game/antagonist/outsider/raider.dm | 4 ++-- .../crates_lockers/closets/secure/security.dm | 2 +- .../crates_lockers/closets/wardrobe.dm | 6 +++--- .../loadout/loadout_accessories.dm | 6 +++--- .../clothing/under/accessories/accessory.dm | 1 + .../clothing/under/accessories/holster.dm | 10 +++++++--- .../mob/living/carbon/human/examine.dm | 19 +++++++++++++++++-- maps/polaris-2.dmm | 8 ++++---- 10 files changed, 43 insertions(+), 21 deletions(-) diff --git a/code/__defines/items_clothing.dm b/code/__defines/items_clothing.dm index f356855338..4295ceaed1 100644 --- a/code/__defines/items_clothing.dm +++ b/code/__defines/items_clothing.dm @@ -52,6 +52,8 @@ #define HIDEJUMPSUIT 0x4 #define HIDESHOES 0x8 #define HIDETAIL 0x10 +#define HIDETIE 0x20 +#define HIDEHOLSTER 0x40 //Some clothing hides holsters, but not all accessories // WARNING: The following flags apply only to the helmets and masks! #define HIDEMASK 0x1 diff --git a/code/datums/supplypacks/security.dm b/code/datums/supplypacks/security.dm index 3099d8d955..72da2a089b 100644 --- a/code/datums/supplypacks/security.dm +++ b/code/datums/supplypacks/security.dm @@ -147,8 +147,8 @@ contains = list( /obj/item/clothing/accessory/holster, /obj/item/clothing/accessory/holster/armpit, - /obj/item/clothing/accessory/holster/waist, - /obj/item/clothing/accessory/holster/hip + /obj/item/clothing/accessory/holster/visible/waist, + /obj/item/clothing/accessory/holster/visible/hip ) cost = 15 containertype = "/obj/structure/closet/crate/secure" @@ -288,7 +288,7 @@ /obj/item/device/flash, /obj/item/device/hailer, /obj/item/clothing/accessory/badge/holo/hos, - /obj/item/clothing/accessory/holster/waist, + /obj/item/clothing/accessory/holster/visible/waist, /obj/item/weapon/melee/telebaton, /obj/item/weapon/shield/riot/tele, /obj/item/clothing/head/beret/sec/corporate/hos, diff --git a/code/game/antagonist/outsider/raider.dm b/code/game/antagonist/outsider/raider.dm index 7bfa22ad43..b66017345d 100644 --- a/code/game/antagonist/outsider/raider.dm +++ b/code/game/antagonist/outsider/raider.dm @@ -100,8 +100,8 @@ var/datum/antagonist/raider/raiders var/list/raider_holster = list( /obj/item/clothing/accessory/holster/armpit, - /obj/item/clothing/accessory/holster/waist, - /obj/item/clothing/accessory/holster/hip + /obj/item/clothing/accessory/holster/visible/waist, + /obj/item/clothing/accessory/holster/visible/hip ) /datum/antagonist/raider/New() 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 064f58f83e..501bae5ffa 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -122,7 +122,7 @@ new /obj/item/weapon/melee/baton/loaded(src) new /obj/item/weapon/gun/energy/gun(src) new /obj/item/weapon/cell/device/weapon(src) - new /obj/item/clothing/accessory/holster/waist(src) + new /obj/item/clothing/accessory/holster/visible/waist(src) new /obj/item/weapon/melee/telebaton(src) new /obj/item/clothing/head/beret/sec/corporate/hos(src) new /obj/item/clothing/suit/storage/hooded/wintercoat/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 fd4e600515..73d3c29bdf 100644 --- a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm +++ b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm @@ -50,9 +50,9 @@ new /obj/item/clothing/accessory/armband(src) new /obj/item/clothing/accessory/armband(src) new /obj/item/clothing/accessory/armband(src) - new /obj/item/clothing/accessory/holster/waist(src) - new /obj/item/clothing/accessory/holster/waist(src) - new /obj/item/clothing/accessory/holster/waist(src) + new /obj/item/clothing/accessory/holster/visible/waist(src) + new /obj/item/clothing/accessory/holster/visible/waist(src) + new /obj/item/clothing/accessory/holster/visible/waist(src) return diff --git a/code/modules/client/preference_setup/loadout/loadout_accessories.dm b/code/modules/client/preference_setup/loadout/loadout_accessories.dm index 3441962ef0..ab1441940e 100644 --- a/code/modules/client/preference_setup/loadout/loadout_accessories.dm +++ b/code/modules/client/preference_setup/loadout/loadout_accessories.dm @@ -112,15 +112,15 @@ /datum/gear/accessory/holster/hip display_name = "holster, hip" - path = /obj/item/clothing/accessory/holster/hip + path = /obj/item/clothing/accessory/holster/visible/hip /datum/gear/accessory/holster/leg display_name = "holster, leg" - path = /obj/item/clothing/accessory/holster/leg + path = /obj/item/clothing/accessory/holster/visible/leg /datum/gear/accessory/holster/waist display_name = "holster, waist" - path = /obj/item/clothing/accessory/holster/waist + path = /obj/item/clothing/accessory/holster/visible/waist /datum/gear/accessory/tie display_name = "tie, black" diff --git a/code/modules/clothing/under/accessories/accessory.dm b/code/modules/clothing/under/accessories/accessory.dm index 2e6f5c6309..d21a86b731 100644 --- a/code/modules/clothing/under/accessories/accessory.dm +++ b/code/modules/clothing/under/accessories/accessory.dm @@ -11,6 +11,7 @@ var/image/inv_overlay = null //overlay used when attached to clothing. var/image/mob_overlay = null var/overlay_state = null + var/concealed_holster = 0 sprite_sheets = list("Teshari" = 'icons/mob/species/seromi/ties.dmi') //Teshari can into webbing, too! diff --git a/code/modules/clothing/under/accessories/holster.dm b/code/modules/clothing/under/accessories/holster.dm index de7ac20c9a..95dcd6f7a1 100644 --- a/code/modules/clothing/under/accessories/holster.dm +++ b/code/modules/clothing/under/accessories/holster.dm @@ -3,6 +3,7 @@ desc = "A handgun holster." icon_state = "holster" slot = "utility" + concealed_holster = 1 var/obj/item/holstered = null /obj/item/clothing/accessory/holster/proc/holster(var/obj/item/I, var/mob/living/user) @@ -115,18 +116,21 @@ desc = "A worn-out handgun holster. Perfect for concealed carry" icon_state = "holster" -/obj/item/clothing/accessory/holster/waist +/obj/item/clothing/accessory/holster/visible + concealed_holster = 0 + +/obj/item/clothing/accessory/holster/visible/waist name = "waist holster" desc = "A handgun holster. Made of expensive leather." icon_state = "holster" overlay_state = "holster_low" -/obj/item/clothing/accessory/holster/hip +/obj/item/clothing/accessory/holster/visible/hip name = "hip holster" desc = "A handgun holster slung low on the hip, draw pardner!" icon_state = "holster_hip" -/obj/item/clothing/accessory/holster/leg +/obj/item/clothing/accessory/holster/visible/leg name = "leg holster" desc = "A tacticool handgun holster. Worn on the upper leg." icon_state = "holster_hip" diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 1d94367c57..3469be688d 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -4,6 +4,8 @@ var/skipjumpsuit = 0 var/skipshoes = 0 var/skipmask = 0 + var/skiptie = 0 + var/skipholster = 0 var/skipears = 0 var/skipeyes = 0 @@ -25,6 +27,13 @@ skiplegs |= 1 skipchest |= 1 skipgroin |= 1 + skiptie |= 1 + skipholster |= 1 + else if(wear_suit.flags_inv & HIDETIE) + skiptie |= 1 + skipholster |= 1 + else if(wear_suit.flags_inv & HIDEHOLSTER) + skipholster |= 1 if(wear_suit.flags_inv & HIDESHOES) skipshoes |= 1 skipfeet |= 1 @@ -105,10 +114,16 @@ if(w_uniform && !skipjumpsuit) //Ties var/tie_msg - if(istype(w_uniform,/obj/item/clothing/under)) + if(istype(w_uniform,/obj/item/clothing/under) && !skiptie) var/obj/item/clothing/under/U = w_uniform if(U.accessories.len) - tie_msg += ". Attached to it is [lowertext(english_list(U.accessories))]" + if(skipholster) + var/list/accessories_visible + for(var/obj/item/clothing/accessory/A in U.accessories) + if((A.concealed_holster == 0)) + accessories_visible.Add(A) + tie_msg += ". Attached to it is [lowertext(english_list(accessories_visible))]" + else tie_msg += ". Attached to it is [lowertext(english_list(U.accessories))]" if(w_uniform.blood_DNA) msg += "[T.He] [T.is] wearing \icon[w_uniform] [w_uniform.gender==PLURAL?"some":"a"] [(w_uniform.blood_color != SYNTH_BLOOD_COLOUR) ? "blood" : "oil"]-stained [w_uniform.name][tie_msg]!\n" diff --git a/maps/polaris-2.dmm b/maps/polaris-2.dmm index 14cc577fa6..65322e3209 100644 --- a/maps/polaris-2.dmm +++ b/maps/polaris-2.dmm @@ -701,7 +701,7 @@ "any" = (/obj/machinery/photocopier,/turf/simulated/floor/carpet,/area/shuttle/trade/centcom) "anz" = (/obj/structure/table/steel_reinforced,/obj/random/action_figure,/obj/random/action_figure,/obj/random/action_figure,/obj/random/action_figure,/obj/random/action_figure,/obj/random/action_figure,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom) "anA" = (/obj/structure/table/steel_reinforced,/obj/item/weapon/lipstick/black,/obj/item/weapon/lipstick/jade,/obj/item/weapon/lipstick/purple,/obj/item/weapon/lipstick,/obj/item/weapon/lipstick/random,/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom) -"anB" = (/obj/structure/table/steel_reinforced,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/storage/white_vest,/obj/item/clothing/accessory/storage/white_vest,/obj/item/clothing/accessory/storage/webbing,/obj/item/clothing/accessory/storage/webbing,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/scarf/white,/obj/item/clothing/accessory/scarf/lightblue,/obj/item/clothing/accessory/scarf/red,/obj/item/clothing/accessory/scarf/purple,/obj/item/clothing/accessory/armband/science,/obj/item/clothing/accessory/armband/med,/obj/item/clothing/accessory/armband/engine,/obj/item/clothing/accessory/armband/cargo,/obj/item/clothing/accessory/armband,/obj/item/clothing/accessory/medal/nobel_science,/obj/item/clothing/accessory/medal/silver,/obj/item/clothing/accessory/medal/gold,/obj/item/clothing/accessory/medal/bronze_heart,/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom) +"anB" = (/obj/structure/table/steel_reinforced,/obj/item/clothing/accessory/holster/visible/hip,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/visible/hip,/obj/item/clothing/accessory/storage/white_vest,/obj/item/clothing/accessory/storage/white_vest,/obj/item/clothing/accessory/storage/webbing,/obj/item/clothing/accessory/storage/webbing,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/scarf/white,/obj/item/clothing/accessory/scarf/lightblue,/obj/item/clothing/accessory/scarf/red,/obj/item/clothing/accessory/scarf/purple,/obj/item/clothing/accessory/armband/science,/obj/item/clothing/accessory/armband/med,/obj/item/clothing/accessory/armband/engine,/obj/item/clothing/accessory/armband/cargo,/obj/item/clothing/accessory/armband,/obj/item/clothing/accessory/medal/nobel_science,/obj/item/clothing/accessory/medal/silver,/obj/item/clothing/accessory/medal/gold,/obj/item/clothing/accessory/medal/bronze_heart,/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom) "anC" = (/obj/structure/table/steel_reinforced,/obj/item/clothing/under/cheongsam,/obj/item/clothing/under/hosformalmale,/obj/item/clothing/under/hosformalfem,/obj/item/clothing/under/harness,/obj/item/clothing/under/gladiator,/obj/item/clothing/under/ert,/obj/item/clothing/under/schoolgirl,/obj/item/clothing/under/redcoat,/obj/item/clothing/under/sexymime,/obj/item/clothing/under/sexyclown,/obj/item/clothing/under/soviet,/obj/item/clothing/under/space,/obj/item/clothing/under/stripper/mankini,/obj/item/clothing/under/suit_jacket/female,/obj/item/clothing/under/rank/psych/turtleneck,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/under/syndicate/tacticool,/obj/item/clothing/under/syndicate/tacticool,/obj/item/clothing/under/dress/sailordress,/obj/item/clothing/under/dress/redeveninggown,/obj/item/clothing/under/dress/dress_saloon,/obj/item/clothing/under/dress/blacktango,/obj/item/clothing/under/dress/blacktango/alt,/obj/item/clothing/under/dress/dress_orange,/obj/item/clothing/under/dress/janimaid,/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom) "anD" = (/obj/structure/table/steel_reinforced,/obj/item/clothing/suit/hgpirate,/obj/item/clothing/suit/imperium_monk,/obj/item/clothing/suit/leathercoat,/obj/item/clothing/suit/justice,/obj/item/clothing/suit/justice,/obj/item/clothing/suit/justice,/obj/item/clothing/suit/justice,/obj/item/clothing/suit/justice,/obj/item/clothing/suit/pirate,/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom) "anE" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/structure/closet/crate/solar,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom) @@ -952,8 +952,8 @@ "asp" = (/obj/structure/lattice,/obj/structure/grille/broken,/turf/space,/area/space) "asq" = (/obj/machinery/door/blast/regular{icon_state = "pdoor1"; id = "ASSAULT"; name = "Assault Armor Storage"; p_open = 0},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops) "asr" = (/obj/structure/table/rack,/obj/item/clothing/glasses/night,/obj/item/clothing/glasses/night,/obj/item/clothing/glasses/night,/obj/item/clothing/glasses/night,/obj/item/clothing/glasses/night,/obj/item/clothing/glasses/night,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) -"ass" = (/obj/structure/table/rack,/obj/item/clothing/accessory/holster/waist,/obj/item/clothing/accessory/holster/waist,/obj/item/clothing/accessory/holster/waist,/obj/item/clothing/accessory/holster/waist,/obj/item/clothing/accessory/holster/waist,/obj/item/clothing/accessory/holster/waist,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) -"ast" = (/obj/structure/table/rack,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/holster/hip,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) +"ass" = (/obj/structure/table/rack,/obj/item/clothing/accessory/holster/visible/waist,/obj/item/clothing/accessory/holster/visible/waist,/obj/item/clothing/accessory/holster/visible/waist,/obj/item/clothing/accessory/holster/visible/waist,/obj/item/clothing/accessory/holster/visible/waist,/obj/item/clothing/accessory/holster/visible/waist,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) +"ast" = (/obj/structure/table/rack,/obj/item/clothing/accessory/holster/visible/hip,/obj/item/clothing/accessory/holster/visible/hip,/obj/item/clothing/accessory/holster/visible/hip,/obj/item/clothing/accessory/holster/visible/hip,/obj/item/clothing/accessory/holster/visible/hip,/obj/item/clothing/accessory/holster/visible/hip,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "asu" = (/obj/structure/table/rack,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/armpit,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "asv" = (/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 32},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "asw" = (/obj/structure/table/reinforced,/obj/item/weapon/crowbar,/obj/item/weapon/screwdriver,/obj/item/weapon/wrench,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) @@ -2747,7 +2747,7 @@ "baQ" = (/obj/machinery/teleport/hub,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station) "baR" = (/obj/structure/table/woodentable,/obj/item/clothing/shoes/workboots,/obj/item/clothing/under/technomancer,/obj/item/clothing/head/technomancer,/obj/item/weapon/storage/box/syndie_kit/chameleon,/obj/item/weapon/storage/box/syndie_kit/chameleon,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station) "baS" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun,/obj/machinery/recharger/wallcharger{pixel_x = 5; pixel_y = -32},/obj/item/weapon/cell/device/weapon,/obj/item/weapon/cell/device/weapon,/obj/item/weapon/cell/device/weapon,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) - + (1,1,1) = {" aaaaabaacaadaaeaafaagaahaaaaaiaajaakaalaamaanaaoaagaafaajaacaadaahaakaaeaamaaiaaoaalaahaajaapaaqaaraasaataauaavaawaaxaayaaaaabaacaadaaeaafaagaahaaaaaiaajaakaalaamaanaaoaagaafaajaacaadaahaakaazaaAaaBaaCaaDaaEaaFaaGaaHaaIaaJaaKaaLaaMaaNaaOaaAaaBaaCaaDaaEaaFaaGaaHaaIaaJaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaRaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaRaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaRaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaRaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaRaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaRaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaR aajaaTaaUaaVaaWaaXaaYaaZabaabbabcabdabeabfabgabhaaYaaXabcaaUaaVaaZabdaaWabfabbabhabeaaZabcaabaauaavaawabiabjabkablabmabeaaXabfaaZabcabbabhabeaaXabfaaZabcabbabhabhabeaaXabfaaZabcabbabhabhabmaazaaEabnaboabpaaqaaraasaataauaavaawabiabjabkablabqabnaboabpaaqaaraasaataauaaNaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaQabrabsaaQabrabsaaQabrabsaaQabrabsaaQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtabuabuabuabvabuabuabuabuabuabuabwabxabyabxabyabxabxabyabxabyabxabwabzabAabAabAabAabAabAabAabAabAabwabBabCabDabDabDabDabDabDabDabDabwabEabEabEabEabEabEabEabEabEabEabwabFabFabFabFabFabFabFabFabFabFabwabGabHabIabJabKabKabKabKabKabLabM