Morrowinventory Port (#75)
@@ -73,8 +73,11 @@
|
||||
// THESE MUST NEVER BE 0! Block code uses ! instead of isnull for the speed boost.
|
||||
#define BLOCK_PRIORITY_ACTIVE_BLOCK 200
|
||||
#define BLOCK_PRIORITY_HELD_ITEM 100
|
||||
#define BLOCK_PRIORITY_CLOTHING 50
|
||||
#define BLOCK_PRIORITY_WEAR_SUIT 75
|
||||
//SKYRAT EDIT
|
||||
#define BLOCK_PRIORITY_CLOTHING 50
|
||||
#define BLOCK_PRIORITY_UNIFORM 25
|
||||
#define BLOCK_PRIORITY_UNDERWEAR 20
|
||||
//SKYRAT EDIT END
|
||||
|
||||
#define BLOCK_PRIORITY_DEFAULT BLOCK_PRIORITY_HELD_ITEM
|
||||
|
||||
@@ -23,6 +23,12 @@
|
||||
#define ITEM_SLOT_HANDS (1<<14)
|
||||
#define ITEM_SLOT_BACKPACK (1<<15)
|
||||
#define ITEM_SLOT_SUITSTORE (1<<16)
|
||||
//skyrat edit
|
||||
#define ITEM_SLOT_UNDERWEAR (1<<17)
|
||||
#define ITEM_SLOT_SOCKS (1<<18)
|
||||
#define ITEM_SLOT_SHIRT (1<<19)
|
||||
#define ITEM_SLOT_WRISTS (1<<20)
|
||||
//
|
||||
|
||||
//SLOTS
|
||||
#define SLOT_BACK 1
|
||||
@@ -32,7 +38,7 @@
|
||||
//SLOT_HANDS as a slot will pick ANY available hand
|
||||
#define SLOT_BELT 5
|
||||
#define SLOT_WEAR_ID 6
|
||||
#define SLOT_EARS 7
|
||||
#define SLOT_EARS_LEFT 7 //skyrat edit
|
||||
#define SLOT_GLASSES 8
|
||||
#define SLOT_GLOVES 9
|
||||
#define SLOT_NECK 10
|
||||
@@ -46,9 +52,16 @@
|
||||
#define SLOT_IN_BACKPACK 18
|
||||
#define SLOT_LEGCUFFED 19
|
||||
#define SLOT_GENERC_DEXTROUS_STORAGE 20
|
||||
//skyrat edit
|
||||
#define SLOT_W_UNDERWEAR 21
|
||||
#define SLOT_W_SOCKS 22
|
||||
#define SLOT_W_SHIRT 23
|
||||
#define SLOT_EARS_RIGHT 24
|
||||
#define SLOT_WRISTS 25
|
||||
//
|
||||
|
||||
|
||||
#define SLOTS_AMT 20 // Keep this up to date!
|
||||
#define SLOTS_AMT 25 // Keep this up to date! //skyrat edit - extra slots
|
||||
|
||||
//I hate that this has to exist
|
||||
/proc/slotdefine2slotbit(slotdefine) //Keep this up to date with the value of SLOT BITMASKS and SLOTS (the two define sections above)
|
||||
@@ -64,12 +77,20 @@
|
||||
. = ITEM_SLOT_BELT
|
||||
if(SLOT_WEAR_ID)
|
||||
. = ITEM_SLOT_ID
|
||||
if(SLOT_EARS)
|
||||
//skyrat edit
|
||||
if(SLOT_EARS_RIGHT)
|
||||
. = ITEM_SLOT_EARS
|
||||
if(SLOT_EARS_LEFT)
|
||||
. = ITEM_SLOT_EARS
|
||||
//
|
||||
if(SLOT_GLASSES)
|
||||
. = ITEM_SLOT_EYES
|
||||
if(SLOT_GLOVES)
|
||||
. = ITEM_SLOT_GLOVES
|
||||
//skyrat edit
|
||||
if(SLOT_WRISTS)
|
||||
. = ITEM_SLOT_WRISTS
|
||||
//
|
||||
if(SLOT_HEAD)
|
||||
. = ITEM_SLOT_HEAD
|
||||
if(SLOT_SHOES)
|
||||
@@ -86,6 +107,14 @@
|
||||
. = ITEM_SLOT_BACKPACK
|
||||
if(SLOT_S_STORE)
|
||||
. = ITEM_SLOT_SUITSTORE
|
||||
//skyrat edit
|
||||
if(SLOT_W_UNDERWEAR)
|
||||
. = ITEM_SLOT_UNDERWEAR
|
||||
if(SLOT_W_SOCKS)
|
||||
. = ITEM_SLOT_SOCKS
|
||||
if(SLOT_W_SHIRT)
|
||||
. = ITEM_SLOT_SHIRT
|
||||
//
|
||||
|
||||
|
||||
//Bit flags for the flags_inv variable, which determine when a piece of clothing hides another. IE a helmet hiding glasses.
|
||||
@@ -103,6 +132,10 @@
|
||||
#define HIDETAUR (1<<11) //gotta hide that snowflake
|
||||
#define HIDESNOUT (1<<12) //or do we actually hide our snoots
|
||||
#define HIDEACCESSORY (1<<13) //hides the jumpsuit accessory.
|
||||
//skyrat edit
|
||||
#define HIDEUNDERWEAR (1<<14) //hides underwear, socks and shirt
|
||||
#define HIDEWRISTS (1<<15) //hides wrists
|
||||
//
|
||||
|
||||
//bitflags for clothing coverage - also used for limbs
|
||||
#define HEAD (1<<0)
|
||||
|
||||
@@ -66,4 +66,12 @@
|
||||
#define LOADOUT_LIMB_PROSTHETIC "Prosthetic"
|
||||
#define LOADOUT_LIMB_AMPUTATED "Amputated"
|
||||
|
||||
#define LOADOUT_LIMBS list(LOADOUT_LIMB_NORMAL,LOADOUT_LIMB_PROSTHETIC,LOADOUT_LIMB_AMPUTATED) //you can amputate your legs/arms though
|
||||
#define LOADOUT_LIMBS list(LOADOUT_LIMB_NORMAL,LOADOUT_LIMB_PROSTHETIC,LOADOUT_LIMB_AMPUTATED) //you can amputate your legs/arms though
|
||||
|
||||
//Special thing that i had to make it myself because skyrat uses old loadout
|
||||
//Underwear Sandcode changes
|
||||
#define LOADOUT_CATEGORY_GENERAL_UNDER "General Underwear"
|
||||
#define LOADOUT_SUBCATEGORY_UNDERWEAR "Underwear"
|
||||
#define LOADOUT_SUBCATEGORY_SHIRT "Shirt"
|
||||
#define LOADOUT_SUBCATEGORY_SOCKS "Socks"
|
||||
//
|
||||
|
||||
@@ -30,23 +30,30 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s
|
||||
|
||||
//Human Overlays Indexes/////////
|
||||
//LOTS OF CIT CHANGES HERE. BE CAREFUL WHEN UPSTREAM ADDS MORE LAYERS
|
||||
#define MUTATIONS_LAYER 33 //mutations. Tk headglows, cold resistance glow, etc
|
||||
#define GENITALS_BEHIND_LAYER 32 //Some genitalia needs to be behind everything, such as with taurs (Taurs use body_behind_layer
|
||||
#define BODY_BEHIND_LAYER 31 //certain mutantrace features (tail when looking south) that must appear behind the body parts
|
||||
#define BODYPARTS_LAYER 30 //Initially "AUGMENTS", this was repurposed to be a catch-all bodyparts flag
|
||||
#define MARKING_LAYER 29 //Matrixed body markings because clashing with snouts?
|
||||
#define BODY_ADJ_LAYER 28 //certain mutantrace features (snout, body markings) that must appear above the body parts
|
||||
#define GENITALS_FRONT_LAYER 27 //Draws some genitalia above clothes and the TAUR body if need be.
|
||||
#define BODY_LAYER 26 //underwear, undershirts, socks, eyes, lips(makeup)
|
||||
#define BODY_ADJ_UPPER_LAYER 25
|
||||
#define FRONT_MUTATIONS_LAYER 24 //mutations that should appear above body, body_adj and bodyparts layer (e.g. laser eyes)
|
||||
#define DAMAGE_LAYER 23 //damage indicators (cuts and burns)
|
||||
#define UNIFORM_LAYER 22
|
||||
#define ID_LAYER 21
|
||||
#define HANDS_PART_LAYER 20
|
||||
#define SHOES_LAYER 19
|
||||
#define GLOVES_LAYER 18
|
||||
#define EARS_LAYER 17
|
||||
#define MUTATIONS_LAYER 40 //mutations. Tk headglows, cold resistance glow, etc
|
||||
#define GENITALS_BEHIND_LAYER 39 //Some genitalia needs to be behind everything, such as with taurs (Taurs use body_behind_layer
|
||||
#define BODY_BEHIND_LAYER 38 //certain mutantrace features (tail when looking south) that must appear behind the body parts
|
||||
#define BODYPARTS_LAYER 37 //Initially "AUGMENTS", this was repurposed to be a catch-all bodyparts flag
|
||||
#define MARKING_LAYER 36 //Matrixed body markings because clashing with snouts?
|
||||
#define BODY_ADJ_LAYER 35 //certain mutantrace features (snout, body markings) that must appear above the body parts
|
||||
#define GENITALS_FRONT_LAYER 34 //Draws some genitalia above clothes and the TAUR body if need be.
|
||||
#define BODY_LAYER 33 //underwear, undershirts, socks, eyes, lips(makeup)
|
||||
#define BODY_ADJ_UPPER_LAYER 32
|
||||
#define FRONT_MUTATIONS_LAYER 31 //mutations that should appear above body, body_adj and bodyparts layer (e.g. laser eyes)
|
||||
#define UNDERWEAR_LAYER 30
|
||||
#define SOCKS_LAYER 29
|
||||
#define SHIRT_LAYER 28
|
||||
#define UNIFORM_LAYER 27
|
||||
#define ID_LAYER 26
|
||||
#define HANDS_PART_LAYER 25
|
||||
#define DAMAGE_LAYER 24 //damage indicators (cuts and burns)
|
||||
#define LOWER_MEDICINE_LAYER 23 //Medicine, like gauze and tourniquets
|
||||
#define MEDICINE_LAYER 22 //Medicine, like gauze and tourniquets
|
||||
#define SHOES_LAYER 21
|
||||
#define GLOVES_LAYER 20
|
||||
#define WRISTS_LAYER 19
|
||||
#define EAR_RIGHT_LAYER 18
|
||||
#define EAR_LEFT_LAYER 17
|
||||
#define SUIT_LAYER 16
|
||||
#define GENITALS_EXPOSED_LAYER 15
|
||||
#define GLASSES_LAYER 14
|
||||
@@ -63,7 +70,7 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s
|
||||
#define HANDS_LAYER 3
|
||||
#define BODY_FRONT_LAYER 2
|
||||
#define FIRE_LAYER 1 //If you're on fire
|
||||
#define TOTAL_LAYERS 33 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_;
|
||||
#define TOTAL_LAYERS 40 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_;
|
||||
|
||||
//Human Overlay Index Shortcuts for alternate_worn_layer, layers
|
||||
//Because I *KNOW* somebody will think layer+1 means "above"
|
||||
|
||||
@@ -280,6 +280,12 @@
|
||||
#define OFFSET_HAIR "hair"
|
||||
#define OFFSET_FHAIR "fhair"
|
||||
#define OFFSET_MUTPARTS "mutantparts"
|
||||
//skyrat edit
|
||||
#define OFFSET_UNDERWEAR "underwear"
|
||||
#define OFFSET_SOCKS "socks"
|
||||
#define OFFSET_SHIRT "shirt"
|
||||
#define OFFSET_WRISTS "wrist"
|
||||
//
|
||||
|
||||
//MINOR TWEAKS/MISC
|
||||
#define AGE_MIN 18 //youngest a character can be //CITADEL EDIT - 17 --> 18
|
||||
|
||||
@@ -131,7 +131,7 @@ GLOBAL_VAR_INIT(miscreants_allowed, FALSE)
|
||||
L = get_equipped_items()
|
||||
for(var/A in L)
|
||||
var/obj/item/I = A
|
||||
if(I.body_parts_covered & GROIN)
|
||||
if(istype(I) && (I.body_parts_covered & GROIN))
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
|
||||
@@ -7,12 +7,14 @@
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/hair, GLOB.hair_styles_list, GLOB.hair_styles_male_list, GLOB.hair_styles_female_list)
|
||||
//facial hair
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/facial_hair, GLOB.facial_hair_styles_list, GLOB.facial_hair_styles_male_list, GLOB.facial_hair_styles_female_list)
|
||||
/* skyrat edit - actual underwear items now
|
||||
//underwear
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/underwear/bottom, GLOB.underwear_list, GLOB.underwear_m, GLOB.underwear_f)
|
||||
//undershirt
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/underwear/top, GLOB.undershirt_list, GLOB.undershirt_m, GLOB.undershirt_f)
|
||||
//socks
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/underwear/socks, GLOB.socks_list)
|
||||
*/
|
||||
//bodypart accessories (blizzard intensifies)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/body_markings, GLOB.body_markings_list)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/lizard, GLOB.tails_list_lizard)
|
||||
|
||||
@@ -413,10 +413,10 @@
|
||||
if(SLOT_BACK, SLOT_WEAR_SUIT, SLOT_W_UNIFORM, SLOT_BELT, SLOT_WEAR_ID)
|
||||
return BODY_ZONE_CHEST
|
||||
|
||||
if(SLOT_GLOVES, SLOT_HANDS, SLOT_HANDCUFFED)
|
||||
if(SLOT_GLOVES, SLOT_HANDS, SLOT_HANDCUFFED, SLOT_WRISTS) //SKYRAT EDIT
|
||||
return pick(BODY_ZONE_PRECISE_L_HAND, BODY_ZONE_PRECISE_R_HAND)
|
||||
|
||||
if(SLOT_HEAD, SLOT_NECK, SLOT_NECK, SLOT_EARS)
|
||||
if(SLOT_HEAD, SLOT_NECK, SLOT_NECK, SLOT_EARS_LEFT, SLOT_EARS_RIGHT) //skyrat edit
|
||||
return BODY_ZONE_HEAD
|
||||
|
||||
if(SLOT_WEAR_MASK)
|
||||
@@ -658,8 +658,20 @@
|
||||
return "Hands"
|
||||
if(SLOT_BELT)
|
||||
return "Belt"
|
||||
if(SLOT_EARS)
|
||||
return "Ears"
|
||||
//skyrat edit
|
||||
if(SLOT_EARS_LEFT)
|
||||
return "Left ear"
|
||||
if(SLOT_EARS_RIGHT)
|
||||
return "Right ear"
|
||||
if(SLOT_W_UNDERWEAR)
|
||||
return "Underwear"
|
||||
if(SLOT_W_SOCKS)
|
||||
return "Socks"
|
||||
if(SLOT_W_SHIRT)
|
||||
return "Shirt"
|
||||
if(SLOT_WRISTS)
|
||||
return "Wrist"
|
||||
//
|
||||
if(SLOT_GLASSES)
|
||||
return "Glasses"
|
||||
if(SLOT_GLOVES)
|
||||
|
||||
@@ -9,5 +9,6 @@ GLOBAL_LIST_INIT(loadout_categories, list(
|
||||
LOADOUT_CATEGORY_SHOES = LOADOUT_SUBCATEGORIES_NONE,
|
||||
LOADOUT_CATEGORY_GLOVES = LOADOUT_SUBCATEGORIES_NONE,
|
||||
LOADOUT_CATEGORY_GLASSES = LOADOUT_SUBCATEGORIES_NONE,
|
||||
LOADOUT_CATEGORY_DONATOR = LOADOUT_SUBCATEGORIES_NONE
|
||||
LOADOUT_CATEGORY_DONATOR = LOADOUT_SUBCATEGORIES_NONE,
|
||||
LOADOUT_CATEGORY_GENERAL_UNDER = list(LOADOUT_SUBCATEGORY_UNDERWEAR, LOADOUT_SUBCATEGORY_SHIRT, LOADOUT_SUBCATEGORY_SOCKS) //DIDN'T NOTICE THIS
|
||||
))
|
||||
|
||||
@@ -150,12 +150,21 @@
|
||||
#define ui_oclothing "WEST+1:8,SOUTH+1:7"
|
||||
#define ui_gloves "WEST+2:10,SOUTH+1:7"
|
||||
|
||||
#define ui_glasses "WEST:6,SOUTH+3:11"
|
||||
#define ui_glasses "WEST+2:10,SOUTH+2:9" //skyrat edit
|
||||
#define ui_mask "WEST+1:8,SOUTH+2:9"
|
||||
#define ui_ears "WEST+2:10,SOUTH+2:9"
|
||||
#define ui_ears "WEST+2:10,SOUTH+3:11" //skyrat edit
|
||||
#define ui_neck "WEST:6,SOUTH+2:9"
|
||||
#define ui_head "WEST+1:8,SOUTH+3:11"
|
||||
|
||||
//skyrat slots
|
||||
#define ui_inventory_extra "WEST:6,SOUTH+3:11"
|
||||
#define ui_boxers "WEST:6,SOUTH+4:13"
|
||||
#define ui_socks "WEST:6,SOUTH+5:15"
|
||||
#define ui_shirt "WEST:6,SOUTH+6:17"
|
||||
#define ui_ears_extra "WEST+2:10,SOUTH+4:13"
|
||||
#define ui_wrists "WEST+1:8,SOUTH+4:13"
|
||||
//
|
||||
|
||||
//Ghosts
|
||||
|
||||
#define ui_ghost_jumptomob "SOUTH:6,CENTER-2:24"
|
||||
|
||||
@@ -15,6 +15,26 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
|
||||
"Liteweb" = 'sandcode/icons/mob/screen_liteweb.dmi'
|
||||
))
|
||||
|
||||
//skyrat edit
|
||||
GLOBAL_LIST_INIT(modular_ui_styles, list(
|
||||
'icons/mob/screen_midnight.dmi' = 'sandcode/icons/mob/screen_midnight.dmi',
|
||||
'icons/mob/screen_retro.dmi' = 'sandcode/icons/mob/screen_retro.dmi',
|
||||
'icons/mob/screen_plasmafire.dmi' = 'sandcode/icons/mob/screen_plasmafire.dmi',
|
||||
'icons/mob/screen_slimecore.dmi' = 'sandcode/icons/mob/screen_slimecore.dmi',
|
||||
'icons/mob/screen_operative.dmi' = 'sandcode/icons/mob/screen_operative.dmi',
|
||||
'icons/mob/screen_clockwork.dmi' = 'sandcode/icons/mob/screen_clockwork.dmi',
|
||||
'sandcode/icons/mob/screen_liteweb.dmi' = 'sandcode/icons/mob/screen_liteweb.dmi'
|
||||
))
|
||||
//
|
||||
|
||||
//skyrat edit
|
||||
/proc/ui_style_modular(ui_style)
|
||||
if(isfile(ui_style))
|
||||
return GLOB.modular_ui_styles[ui_style] || GLOB.modular_ui_styles[GLOB.modular_ui_styles[1]]
|
||||
else
|
||||
return GLOB.modular_ui_styles[ui_style] || GLOB.modular_ui_styles[GLOB.modular_ui_styles[1]]
|
||||
//
|
||||
|
||||
/proc/ui_style2icon(ui_style)
|
||||
return GLOB.available_ui_styles[ui_style] || GLOB.available_ui_styles[GLOB.available_ui_styles[1]]
|
||||
|
||||
@@ -24,6 +44,9 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
|
||||
var/hud_shown = TRUE //Used for the HUD toggle (F12)
|
||||
var/hud_version = HUD_STYLE_STANDARD //Current displayed version of the HUD
|
||||
var/inventory_shown = FALSE //Equipped item inventory
|
||||
//skyrat edit
|
||||
var/extra_shown = FALSE
|
||||
//
|
||||
var/hotkey_ui_hidden = FALSE //This is to hide the buttons that can be used via hotkeys. (hotkeybuttons list of buttons)
|
||||
|
||||
var/obj/screen/ling/chems/lingchemdisplay
|
||||
@@ -45,6 +68,9 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
|
||||
|
||||
var/list/static_inventory = list() //the screen objects which are static
|
||||
var/list/toggleable_inventory = list() //the screen objects which can be hidden
|
||||
//skyrat edit
|
||||
var/list/extra_inventory = list() //equipped item screens that don't show up even if using the initial toggle
|
||||
//
|
||||
var/list/obj/screen/hotkeybuttons = list() //the buttons that can be used via hotkeys
|
||||
var/list/infodisplay = list() //the screen objects that display mob info (health, alien plasma, etc...)
|
||||
var/list/screenoverlays = list() //the screen objects used as whole screen overlays (flash, damageoverlay, etc...)
|
||||
@@ -95,6 +121,9 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
|
||||
pull_icon = null
|
||||
|
||||
QDEL_LIST(toggleable_inventory)
|
||||
//skyrat edit
|
||||
QDEL_LIST(extra_inventory)
|
||||
//
|
||||
QDEL_LIST(hotkeybuttons)
|
||||
throw_icon = null
|
||||
QDEL_LIST(infodisplay)
|
||||
@@ -147,6 +176,10 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
|
||||
screenmob.client.screen += static_inventory
|
||||
if(toggleable_inventory.len && screenmob.hud_used && screenmob.hud_used.inventory_shown)
|
||||
screenmob.client.screen += toggleable_inventory
|
||||
//skyrat edit
|
||||
if(extra_inventory.len && screenmob.hud_used && screenmob.hud_used.extra_shown)
|
||||
screenmob.client.screen += extra_inventory
|
||||
//
|
||||
if(hotkeybuttons.len && !hotkey_ui_hidden)
|
||||
screenmob.client.screen += hotkeybuttons
|
||||
if(infodisplay.len)
|
||||
@@ -163,6 +196,10 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
|
||||
screenmob.client.screen -= static_inventory
|
||||
if(toggleable_inventory.len)
|
||||
screenmob.client.screen -= toggleable_inventory
|
||||
//skyrat edit
|
||||
if(extra_inventory.len)
|
||||
screenmob.client.screen -= extra_inventory
|
||||
//
|
||||
if(hotkeybuttons.len)
|
||||
screenmob.client.screen -= hotkeybuttons
|
||||
if(infodisplay.len)
|
||||
@@ -183,6 +220,10 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
|
||||
screenmob.client.screen -= static_inventory
|
||||
if(toggleable_inventory.len)
|
||||
screenmob.client.screen -= toggleable_inventory
|
||||
//skyrat edit
|
||||
if(extra_inventory.len)
|
||||
screenmob.client.screen -= extra_inventory
|
||||
//
|
||||
if(hotkeybuttons.len)
|
||||
screenmob.client.screen -= hotkeybuttons
|
||||
if(infodisplay.len)
|
||||
@@ -228,6 +269,11 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
|
||||
/datum/hud/proc/hidden_inventory_update()
|
||||
return
|
||||
|
||||
//skyrat edit
|
||||
/datum/hud/proc/extra_inventory_update()
|
||||
return
|
||||
//
|
||||
|
||||
/datum/hud/proc/persistent_inventory_update(mob/viewer)
|
||||
if(!mymob)
|
||||
return
|
||||
@@ -237,7 +283,7 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
|
||||
if (initial(ui_style) || ui_style == new_ui_style)
|
||||
return
|
||||
|
||||
for(var/atom/item in static_inventory + toggleable_inventory + hotkeybuttons + infodisplay + screenoverlays + inv_slots)
|
||||
for(var/atom/item in static_inventory + toggleable_inventory + extra_inventory + hotkeybuttons + infodisplay + screenoverlays + inv_slots) //skyrat edit
|
||||
if (item.icon == ui_style)
|
||||
item.icon = new_ui_style
|
||||
|
||||
|
||||
@@ -17,11 +17,45 @@
|
||||
if(usr.hud_used.inventory_shown && targetmob.hud_used)
|
||||
usr.hud_used.inventory_shown = FALSE
|
||||
usr.client.screen -= targetmob.hud_used.toggleable_inventory
|
||||
//SKYRAT EDIT
|
||||
usr.client.screen -= targetmob.hud_used.extra_inventory
|
||||
//SKYRAT EDIT END
|
||||
else
|
||||
usr.hud_used.inventory_shown = TRUE
|
||||
usr.client.screen += targetmob.hud_used.toggleable_inventory
|
||||
//SKYRAT EDIT
|
||||
if(usr.hud_used.extra_shown)
|
||||
usr.client.screen += targetmob.hud_used.extra_inventory
|
||||
//SKYRAT EDIT END
|
||||
|
||||
targetmob.hud_used.hidden_inventory_update(usr)
|
||||
//SKYRAT EDIT
|
||||
targetmob.hud_used.extra_inventory_update(usr)
|
||||
//SKYRAT EDIT END
|
||||
|
||||
//skyrat edit
|
||||
/obj/screen/human/toggle/extra
|
||||
name = "toggle extra"
|
||||
icon_state = "toggle_extra"
|
||||
|
||||
/obj/screen/human/toggle/extra/Click()
|
||||
|
||||
var/mob/targetmob = usr
|
||||
|
||||
if(isobserver(usr))
|
||||
if(ishuman(usr.client.eye) && (usr.client.eye != usr))
|
||||
var/mob/M = usr.client.eye
|
||||
targetmob = M
|
||||
|
||||
if(usr.hud_used.extra_shown && targetmob.hud_used)
|
||||
usr.hud_used.extra_shown = FALSE
|
||||
usr.client.screen -= targetmob.hud_used.extra_inventory
|
||||
else
|
||||
usr.hud_used.extra_shown = TRUE
|
||||
usr.client.screen += targetmob.hud_used.extra_inventory
|
||||
|
||||
targetmob.hud_used.extra_inventory_update(usr)
|
||||
//
|
||||
|
||||
/obj/screen/human/equip
|
||||
name = "equip"
|
||||
@@ -288,11 +322,11 @@
|
||||
toggleable_inventory += inv_box
|
||||
|
||||
inv_box = new /obj/screen/inventory()
|
||||
inv_box.name = "ears"
|
||||
inv_box.name = "left ear" //skyrat edit
|
||||
inv_box.icon = ui_style
|
||||
inv_box.icon_state = "ears"
|
||||
inv_box.screen_loc = ui_ears
|
||||
inv_box.slot_id = SLOT_EARS
|
||||
inv_box.slot_id = SLOT_EARS_LEFT //skyrat edit
|
||||
toggleable_inventory += inv_box
|
||||
|
||||
inv_box = new /obj/screen/inventory()
|
||||
@@ -311,6 +345,54 @@
|
||||
inv_box.slot_id = SLOT_SHOES
|
||||
toggleable_inventory += inv_box
|
||||
|
||||
//skyrat edit
|
||||
using = new /obj/screen/human/toggle/extra()
|
||||
using.icon = ui_style_modular(ui_style)
|
||||
using.screen_loc = ui_inventory_extra
|
||||
using.hud = src
|
||||
toggleable_inventory += using
|
||||
|
||||
inv_box = new /obj/screen/inventory()
|
||||
inv_box.name = "underwear"
|
||||
inv_box.icon = ui_style_modular(ui_style)
|
||||
inv_box.icon_state = "underwear"
|
||||
inv_box.screen_loc = ui_boxers
|
||||
inv_box.slot_id = SLOT_W_UNDERWEAR //skyrat edit
|
||||
extra_inventory += inv_box
|
||||
|
||||
inv_box = new /obj/screen/inventory()
|
||||
inv_box.name = "socks"
|
||||
inv_box.icon = ui_style_modular(ui_style)
|
||||
inv_box.icon_state = "socks"
|
||||
inv_box.screen_loc = ui_socks
|
||||
inv_box.slot_id = SLOT_W_SOCKS //skyrat edit
|
||||
extra_inventory += inv_box
|
||||
|
||||
inv_box = new /obj/screen/inventory()
|
||||
inv_box.name = "shirt"
|
||||
inv_box.icon = ui_style_modular(ui_style)
|
||||
inv_box.icon_state = "shirt"
|
||||
inv_box.screen_loc = ui_shirt
|
||||
inv_box.slot_id = SLOT_W_SHIRT //skyrat edit
|
||||
extra_inventory += inv_box
|
||||
|
||||
inv_box = new /obj/screen/inventory()
|
||||
inv_box.name = "right ear"
|
||||
inv_box.icon = ui_style_modular(ui_style)
|
||||
inv_box.icon_state = "ears_extra"
|
||||
inv_box.screen_loc = ui_ears_extra
|
||||
inv_box.slot_id = SLOT_EARS_RIGHT //skyrat edit
|
||||
extra_inventory += inv_box
|
||||
|
||||
inv_box = new /obj/screen/inventory()
|
||||
inv_box.name = "wrists"
|
||||
inv_box.icon = ui_style_modular(ui_style)
|
||||
inv_box.icon_state = "wrists"
|
||||
inv_box.screen_loc = ui_wrists
|
||||
inv_box.slot_id = SLOT_WRISTS
|
||||
extra_inventory += inv_box
|
||||
//
|
||||
|
||||
inv_box = new /obj/screen/inventory()
|
||||
inv_box.name = "belt"
|
||||
inv_box.icon = ui_style
|
||||
@@ -385,7 +467,7 @@
|
||||
zone_select.update_icon()
|
||||
static_inventory += zone_select
|
||||
|
||||
for(var/obj/screen/inventory/inv in (static_inventory + toggleable_inventory))
|
||||
for(var/obj/screen/inventory/inv in (static_inventory + toggleable_inventory + extra_inventory)) //skyrat edit
|
||||
if(inv.slot_id)
|
||||
inv.hud = src
|
||||
inv_slots[inv.slot_id] = inv
|
||||
@@ -400,7 +482,7 @@
|
||||
if(!istype(H) || !H.dna.species)
|
||||
return
|
||||
var/datum/species/S = H.dna.species
|
||||
for(var/obj/screen/inventory/inv in (static_inventory + toggleable_inventory))
|
||||
for(var/obj/screen/inventory/inv in (static_inventory + toggleable_inventory + extra_inventory)) //skyrat edit
|
||||
if(inv.slot_id)
|
||||
if(inv.slot_id in S.no_equip)
|
||||
inv.alpha = 128
|
||||
@@ -454,6 +536,42 @@
|
||||
if(H.head) screenmob.client.screen -= H.head
|
||||
|
||||
|
||||
//skyrat edit
|
||||
/datum/hud/human/extra_inventory_update(mob/viewer)
|
||||
if(!mymob)
|
||||
return
|
||||
var/mob/living/carbon/human/H = mymob
|
||||
|
||||
var/mob/screenmob = viewer || H
|
||||
|
||||
if(screenmob.hud_used.extra_shown && screenmob.hud_used.inventory_shown && screenmob.hud_used.hud_shown)
|
||||
if(H.ears_extra)
|
||||
H.ears_extra.screen_loc = ui_ears_extra
|
||||
screenmob.client.screen += H.ears_extra
|
||||
if(H.w_underwear)
|
||||
H.w_underwear.screen_loc = ui_boxers
|
||||
screenmob.client.screen += H.w_underwear
|
||||
if(H.w_socks)
|
||||
H.w_socks.screen_loc = ui_socks
|
||||
screenmob.client.screen += H.w_socks
|
||||
if(H.w_shirt)
|
||||
H.w_shirt.screen_loc = ui_shirt
|
||||
screenmob.client.screen += H.w_shirt
|
||||
if(H.wrists)
|
||||
H.wrists.screen_loc = ui_wrists
|
||||
screenmob.client.screen += H.wrists
|
||||
else
|
||||
if(H.ears_extra)
|
||||
screenmob.client.screen -= H.ears_extra
|
||||
if(H.w_underwear)
|
||||
screenmob.client.screen -= H.w_underwear
|
||||
if(H.w_socks)
|
||||
screenmob.client.screen -= H.w_socks
|
||||
if(H.w_shirt)
|
||||
screenmob.client.screen -= H.w_shirt
|
||||
if(H.wrists)
|
||||
screenmob.client.screen -= H.wrists
|
||||
//
|
||||
|
||||
/datum/hud/human/persistent_inventory_update(mob/viewer)
|
||||
if(!mymob)
|
||||
|
||||
@@ -187,7 +187,6 @@
|
||||
user.swap_hand(held_index)
|
||||
return TRUE
|
||||
|
||||
|
||||
/obj/screen/drop
|
||||
name = "drop"
|
||||
icon = 'icons/mob/screen_midnight.dmi'
|
||||
|
||||
@@ -8,6 +8,10 @@ PROCESSING_SUBSYSTEM_DEF(dcs)
|
||||
comp_lookup = SSdcs.comp_lookup
|
||||
|
||||
/datum/controller/subsystem/processing/dcs/proc/GetElement(list/arguments)
|
||||
//skyrat edit
|
||||
if(!istype(arguments) || !arguments.len)
|
||||
return
|
||||
//
|
||||
var/datum/element/eletype = arguments[1]
|
||||
var/element_id = eletype
|
||||
|
||||
|
||||
@@ -689,6 +689,11 @@ SUBSYSTEM_DEF(job)
|
||||
if(!permitted)
|
||||
continue
|
||||
var/obj/item/I = new G.path
|
||||
//skyrat edit
|
||||
if(G.has_colors)
|
||||
if(the_mob.client.prefs.color_gear[G.name])
|
||||
I.color = the_mob.client.prefs.color_gear[G.name]
|
||||
//
|
||||
if(!M.equip_to_slot_if_possible(I, G.slot, disable_warning = TRUE, bypass_equip_delay_self = TRUE)) // If the job's dresscode compliant, try to put it in its slot, first
|
||||
if(iscarbon(M))
|
||||
var/mob/living/carbon/C = M
|
||||
|
||||
@@ -48,6 +48,11 @@
|
||||
var/damage = rand(min_damage, max_damage)
|
||||
if(HAS_TRAIT(H, TRAIT_LIGHT_STEP))
|
||||
damage *= 0.75
|
||||
//skyrat edit
|
||||
if(H.w_socks)
|
||||
if(H.w_socks.body_parts_covered & FEET)
|
||||
damage *= 0.75
|
||||
//
|
||||
H.apply_damage(damage, BRUTE, picked_def_zone, wound_bonus = CANT_WOUND)
|
||||
|
||||
if(cooldown < world.time - 10) //cooldown to avoid message spam.
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
equipment_items += list(C.head, C.wear_mask, C.back, C.gloves, C.shoes, C.glasses, C.ears)
|
||||
if(ishuman(C))
|
||||
var/mob/living/carbon/human/H = C
|
||||
equipment_items += list(H.wear_suit, H.w_uniform, H.belt, H.s_store, H.wear_id)
|
||||
equipment_items += list(H.wear_suit, H.w_uniform, H.belt, H.s_store, H.wear_id, H.w_socks, H.w_underwear, H.w_shirt, H.ears_extra) //skyrat edit
|
||||
|
||||
for(var/bp in equipment_items)
|
||||
if(!bp)
|
||||
|
||||
@@ -254,13 +254,16 @@
|
||||
|
||||
if(isnull(T.wear_suit) && isnull(T.w_uniform)) // who honestly puts all of their effort into tackling a naked guy?
|
||||
defense_mod += 2
|
||||
//skyrat edit
|
||||
if(isnull(T.w_underwear) && isnull(T.w_socks) && isnull(T.w_shirt))
|
||||
defense_mod += 1
|
||||
//
|
||||
if(suit_slot && (istype(suit_slot,/obj/item/clothing/suit/space/hardsuit)))
|
||||
defense_mod += 1
|
||||
if(T.is_shove_knockdown_blocked()) // riot armor and such
|
||||
defense_mod += 5
|
||||
if(T.is_holding_item_of_type(/obj/item/shield))
|
||||
defense_mod += 2
|
||||
|
||||
if(islizard(T))
|
||||
if(!T.getorganslot(ORGAN_SLOT_TAIL)) // lizards without tails are off-balance
|
||||
defense_mod -= 1
|
||||
|
||||
@@ -37,6 +37,24 @@
|
||||
SEND_SIGNAL(cleaned_human.w_uniform, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_WEAK)
|
||||
cleaned_human.w_uniform.clean_blood()
|
||||
cleaned_human.update_inv_w_uniform()
|
||||
//skyrat edit
|
||||
else if(cleaned_human.w_underwear)
|
||||
SEND_SIGNAL(cleaned_human.w_underwear, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_WEAK)
|
||||
cleaned_human.w_underwear.clean_blood()
|
||||
cleaned_human.update_inv_w_underwear()
|
||||
else if(cleaned_human.w_socks)
|
||||
SEND_SIGNAL(cleaned_human.w_socks, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_WEAK)
|
||||
cleaned_human.w_socks.clean_blood()
|
||||
cleaned_human.update_inv_w_socks()
|
||||
else if(cleaned_human.w_shirt)
|
||||
SEND_SIGNAL(cleaned_human.w_shirt, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_WEAK)
|
||||
cleaned_human.w_shirt.clean_blood()
|
||||
cleaned_human.update_inv_w_shirt()
|
||||
else if(cleaned_human.wrists)
|
||||
SEND_SIGNAL(cleaned_human.wrists, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_WEAK)
|
||||
cleaned_human.w_shirt.clean_blood()
|
||||
cleaned_human.update_inv_wrists()
|
||||
//
|
||||
if(cleaned_human.shoes)
|
||||
SEND_SIGNAL(cleaned_human.shoes, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_WEAK)
|
||||
cleaned_human.shoes.clean_blood()
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
user_by_item -= target
|
||||
|
||||
/datum/element/earhealing/proc/equippedChanged(datum/source, mob/living/carbon/user, slot)
|
||||
if(slot == SLOT_EARS && istype(user))
|
||||
if(((slot == SLOT_EARS_LEFT) || (slot == SLOT_EARS_RIGHT)) && istype(user)) //skyrat edit
|
||||
user_by_item[source] = user
|
||||
else
|
||||
user_by_item -= source
|
||||
|
||||
@@ -28,6 +28,14 @@
|
||||
var/can_be_admin_equipped = TRUE // Set to FALSE if your outfit requires runtime parameters
|
||||
var/list/chameleon_extras //extra types for chameleon outfit changes, mostly guns
|
||||
|
||||
//skyrat edit
|
||||
var/underwear = null
|
||||
var/socks = null
|
||||
var/shirt = null
|
||||
var/ears_extra = null
|
||||
var/wrists = null
|
||||
//
|
||||
|
||||
/datum/outfit/proc/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
//to be overridden for customization depending on client prefs,species etc
|
||||
return
|
||||
@@ -59,13 +67,25 @@
|
||||
if(neck)
|
||||
H.equip_to_slot_or_del(new neck(H),SLOT_NECK)
|
||||
if(ears)
|
||||
H.equip_to_slot_or_del(new ears(H),SLOT_EARS)
|
||||
H.equip_to_slot_or_del(new ears(H),SLOT_EARS_LEFT) //skyrat edit
|
||||
if(glasses)
|
||||
H.equip_to_slot_or_del(new glasses(H),SLOT_GLASSES)
|
||||
if(id)
|
||||
H.equip_to_slot_or_del(new id(H),SLOT_WEAR_ID)
|
||||
if(suit_store)
|
||||
H.equip_to_slot_or_del(new suit_store(H),SLOT_S_STORE)
|
||||
//skyrat edit
|
||||
if(ears_extra)
|
||||
H.equip_to_slot_or_del(new ears(H),SLOT_EARS_RIGHT)
|
||||
if(underwear)
|
||||
H.equip_to_slot_or_del(new underwear(H),SLOT_W_UNDERWEAR)
|
||||
if(socks)
|
||||
H.equip_to_slot_or_del(new socks(H),SLOT_W_SOCKS)
|
||||
if(shirt)
|
||||
H.equip_to_slot_or_del(new shirt(H),SLOT_W_SHIRT)
|
||||
if(wrists)
|
||||
H.equip_to_slot_or_del(new wrists(H),SLOT_WRISTS)
|
||||
//
|
||||
|
||||
if(accessory)
|
||||
var/obj/item/clothing/under/U = H.w_uniform
|
||||
@@ -141,6 +161,18 @@
|
||||
H.shoes.add_fingerprint(H,1)
|
||||
if(H.gloves)
|
||||
H.gloves.add_fingerprint(H,1)
|
||||
//skyrat edit
|
||||
if(H.wrists)
|
||||
H.wrists.add_fingerprint(H,1)
|
||||
if(H.w_socks)
|
||||
H.w_socks.add_fingerprint(H,1)
|
||||
if(H.w_underwear)
|
||||
H.w_underwear.add_fingerprint(H,1)
|
||||
if(H.w_shirt)
|
||||
H.w_shirt.add_fingerprint(H,1)
|
||||
if(H.ears_extra)
|
||||
H.ears_extra.add_fingerprint(H,1)
|
||||
//
|
||||
if(H.ears)
|
||||
H.ears.add_fingerprint(H,1)
|
||||
if(H.glasses)
|
||||
@@ -160,7 +192,7 @@
|
||||
return 1
|
||||
|
||||
/datum/outfit/proc/get_chameleon_disguise_info()
|
||||
var/list/types = list(uniform, suit, back, belt, gloves, shoes, head, mask, neck, ears, glasses, id, l_pocket, r_pocket, suit_store, r_hand, l_hand)
|
||||
var/list/types = list(uniform, underwear, socks, shirt, ears_extra, suit, back, belt, gloves, wrists, shoes, head, mask, neck, ears, glasses, id, l_pocket, r_pocket, suit_store, r_hand, l_hand) //skyrat edit
|
||||
types += chameleon_extras
|
||||
listclearnulls(types)
|
||||
return types
|
||||
|
||||
@@ -576,6 +576,20 @@
|
||||
else if(w_uniform)
|
||||
w_uniform.add_blood_DNA(blood_dna, diseases)
|
||||
update_inv_w_uniform()
|
||||
//skyrat edit
|
||||
else if(w_underwear)
|
||||
w_underwear.add_blood_DNA(blood_dna, diseases)
|
||||
update_inv_w_underwear()
|
||||
else if(w_socks)
|
||||
w_socks.add_blood_DNA(blood_dna, diseases)
|
||||
update_inv_w_socks()
|
||||
else if(w_shirt)
|
||||
w_shirt.add_blood_DNA(blood_dna, diseases)
|
||||
update_inv_w_shirt()
|
||||
else if(wrists)
|
||||
wrists.add_blood_DNA(blood_dna, diseases)
|
||||
update_inv_wrists()
|
||||
//
|
||||
if(gloves)
|
||||
var/obj/item/clothing/gloves/G = gloves
|
||||
G.add_blood_DNA(blood_dna, diseases)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
GLOBAL_LIST_INIT(possible_changeling_IDs, list("Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega"))
|
||||
GLOBAL_LIST_INIT(slots, list("head", "wear_mask", "back", "wear_suit", "w_uniform", "shoes", "belt", "gloves", "glasses", "ears", "wear_id", "s_store"))
|
||||
GLOBAL_LIST_INIT(slot2slot, list("head" = SLOT_HEAD, "wear_mask" = SLOT_WEAR_MASK, "neck" = SLOT_NECK, "back" = SLOT_BACK, "wear_suit" = SLOT_WEAR_SUIT, "w_uniform" = SLOT_W_UNIFORM, "shoes" = SLOT_SHOES, "belt" = SLOT_BELT, "gloves" = SLOT_GLOVES, "glasses" = SLOT_GLASSES, "ears" = SLOT_EARS, "wear_id" = SLOT_WEAR_ID, "s_store" = SLOT_S_STORE))
|
||||
GLOBAL_LIST_INIT(slot2type, list("head" = /obj/item/clothing/head/changeling, "wear_mask" = /obj/item/clothing/mask/changeling, "back" = /obj/item/changeling, "wear_suit" = /obj/item/clothing/suit/changeling, "w_uniform" = /obj/item/clothing/under/changeling, "shoes" = /obj/item/clothing/shoes/changeling, "belt" = /obj/item/changeling, "gloves" = /obj/item/clothing/gloves/changeling, "glasses" = /obj/item/clothing/glasses/changeling, "ears" = /obj/item/changeling, "wear_id" = /obj/item/changeling, "s_store" = /obj/item/changeling))
|
||||
GLOBAL_LIST_INIT(slots, list("head", "wear_mask", "back", "wear_suit", "w_uniform", "w_underwear", "w_socks", "w_shirt", "shoes", "belt", "gloves", "glasses", "ears", "ears_extra", "wear_id", "s_store")) //skyrat edit
|
||||
GLOBAL_LIST_INIT(slot2slot, list("head" = SLOT_HEAD, "wear_mask" = SLOT_WEAR_MASK, "neck" = SLOT_NECK, "back" = SLOT_BACK, "wear_suit" = SLOT_WEAR_SUIT, "w_uniform" = SLOT_W_UNIFORM, "w_underwear" = SLOT_W_UNDERWEAR, "w_socks" = SLOT_W_SOCKS, "w_shirt" = SLOT_W_SHIRT, "ears_extra" = SLOT_EARS_RIGHT, "shoes" = SLOT_SHOES, "belt" = SLOT_BELT, "gloves" = SLOT_GLOVES, "glasses" = SLOT_GLASSES, "ears" = SLOT_EARS_LEFT, "wear_id" = SLOT_WEAR_ID, "s_store" = SLOT_S_STORE, "wrists" = SLOT_WRISTS)) //skyrat edit
|
||||
GLOBAL_LIST_INIT(slot2type, list("head" = /obj/item/clothing/head/changeling, "wear_mask" = /obj/item/clothing/mask/changeling, "back" = /obj/item/changeling, "wear_suit" = /obj/item/clothing/suit/changeling, "w_uniform" = /obj/item/clothing/under/changeling, "shoes" = /obj/item/clothing/shoes/changeling, "belt" = /obj/item/changeling, "gloves" = /obj/item/clothing/gloves/changeling, "glasses" = /obj/item/clothing/glasses/changeling, "ears" = /obj/item/changeling, "wear_id" = /obj/item/changeling, "s_store" = /obj/item/changeling, "w_underwear" = /obj/item/changeling, "w_socks" = /obj/item/changeling, "w_shirt" = /obj/item/changeling, "ears_extra" = /obj/item/changeling, "wrists" = /obj/item/changeling)) //skyrat edit
|
||||
GLOBAL_VAR(changeling_team_objective_type) //If this is not null, we hand our this objective to all lings
|
||||
|
||||
|
||||
|
||||
@@ -39,6 +39,13 @@
|
||||
ADD_TRAIT(C, TRAIT_NODROP, CLOWN_NUKE_TRAIT)
|
||||
H.equip_to_slot_or_del(C, SLOT_W_UNIFORM)
|
||||
|
||||
//skyrat edit
|
||||
if(!H.w_shirt || H.dropItemToGround(H.w_shirt))
|
||||
C = new /obj/item/clothing/underwear/shirt/clown(H)
|
||||
ADD_TRAIT(C, TRAIT_NODROP, CLOWN_NUKE_TRAIT)
|
||||
H.equip_to_slot_or_del(C, SLOT_W_SHIRT)
|
||||
//
|
||||
|
||||
if(!H.shoes || H.dropItemToGround(H.shoes))
|
||||
C = new /obj/item/clothing/shoes/clown_shoes(H)
|
||||
ADD_TRAIT(C, TRAIT_NODROP, CLOWN_NUKE_TRAIT)
|
||||
|
||||
@@ -155,6 +155,9 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb
|
||||
|
||||
var/canMouseDown = FALSE
|
||||
|
||||
//SKYRAT CHANGE
|
||||
var/hide_underwear_examine = FALSE
|
||||
//and no, i'm not taking self-equip delays, period.
|
||||
|
||||
/obj/item/Initialize()
|
||||
|
||||
@@ -365,7 +368,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb
|
||||
if(throwing)
|
||||
throwing.finalize(FALSE)
|
||||
if(loc == user)
|
||||
if(!allow_attack_hand_drop(user) || !user.temporarilyRemoveItemFromInventory(src))
|
||||
if(!user.temporarilyRemoveItemFromInventory(I = src))
|
||||
return
|
||||
|
||||
pickup(user)
|
||||
@@ -699,6 +702,18 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb
|
||||
owner.update_inv_wear_suit()
|
||||
if(flags & ITEM_SLOT_ICLOTHING)
|
||||
owner.update_inv_w_uniform()
|
||||
//skyrat edit
|
||||
if(flags & ITEM_SLOT_UNDERWEAR)
|
||||
owner.update_inv_w_underwear()
|
||||
if(flags & ITEM_SLOT_SOCKS)
|
||||
owner.update_inv_w_socks()
|
||||
if(flags & ITEM_SLOT_SHIRT)
|
||||
owner.update_inv_w_shirt()
|
||||
if(flags & ITEM_SLOT_EARS)
|
||||
owner.update_inv_ears_extra()
|
||||
if(flags & ITEM_SLOT_WRISTS)
|
||||
owner.update_inv_wrists()
|
||||
//
|
||||
if(flags & ITEM_SLOT_GLOVES)
|
||||
owner.update_inv_gloves()
|
||||
if(flags & ITEM_SLOT_EYES)
|
||||
|
||||
@@ -56,7 +56,7 @@ GLOBAL_LIST_INIT(channel_tokens, list(
|
||||
/obj/item/radio/headset/ComponentInitialize()
|
||||
. = ..()
|
||||
if (bowman)
|
||||
AddComponent(/datum/component/wearertargeting/earprotection, list(SLOT_EARS))
|
||||
AddComponent(/datum/component/wearertargeting/earprotection, list(SLOT_EARS_LEFT, SLOT_EARS_RIGHT)) //skyrat edit
|
||||
|
||||
/obj/item/radio/headset/Initialize()
|
||||
. = ..()
|
||||
@@ -76,6 +76,10 @@ GLOBAL_LIST_INIT(channel_tokens, list(
|
||||
var/mob/living/carbon/human/H = src.loc
|
||||
if(H.ears == src)
|
||||
return ..(freq, level)
|
||||
//skyrat edit
|
||||
else if(H.ears_extra == src)
|
||||
return ..(freq, level)
|
||||
//
|
||||
else if(AIuser)
|
||||
return ..(freq, level)
|
||||
return FALSE
|
||||
@@ -364,4 +368,4 @@ GLOBAL_LIST_INIT(channel_tokens, list(
|
||||
name = replacetext(name,"headset", "bowman headset")
|
||||
desc = "[desc] Protects ears from flashbangs."
|
||||
bowman = TRUE
|
||||
AddComponent(/datum/component/wearertargeting/earprotection, list(SLOT_EARS))
|
||||
AddComponent(/datum/component/wearertargeting/earprotection, list(SLOT_EARS_LEFT, SLOT_EARS_RIGHT)) //skyrat edit
|
||||
|
||||
@@ -803,6 +803,9 @@
|
||||
force = 4
|
||||
throwforce = 0
|
||||
attack_verb = list("whipped", "repented", "lashed", "flagellated")
|
||||
//skyrat edit - wowie the first wrist slot item
|
||||
slot_flags = ITEM_SLOT_WRISTS
|
||||
//
|
||||
var/praying = FALSE
|
||||
var/deity_name = "Coderbus" //This is the default, hopefully won't actually appear if the religion subsystem is running properly
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
new /obj/item/stack/sheet/mineral/wood(drop_location(), 10)
|
||||
qdel(src)
|
||||
|
||||
/* skyrat edit - the dresser is useless with our inventory system
|
||||
/obj/structure/dresser/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags)
|
||||
. = ..()
|
||||
if(. || !ishuman(user) || !user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK))
|
||||
@@ -80,3 +81,4 @@
|
||||
if(!n_color || !H.canUseTopic(src, BE_CLOSE, FALSE, NO_TK))
|
||||
return default_color
|
||||
return sanitize_hexcolor(n_color, 3, FALSE, default_color)
|
||||
*/
|
||||
|
||||
@@ -412,6 +412,14 @@
|
||||
H.update_inv_wear_suit()
|
||||
else if(H.w_uniform && wash_obj(H.w_uniform))
|
||||
H.update_inv_w_uniform()
|
||||
//skyrat edit
|
||||
else if(H.w_underwear && wash_obj(H.w_underwear))
|
||||
H.update_inv_w_underwear()
|
||||
else if(H.w_socks && wash_obj(H.w_socks))
|
||||
H.update_inv_w_socks()
|
||||
else if(H.w_underwear && wash_obj(H.w_shirt))
|
||||
H.update_inv_w_shirt()
|
||||
//
|
||||
if(washgloves)
|
||||
H.clean_blood()
|
||||
SEND_SIGNAL(H, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_WEAK)
|
||||
@@ -424,8 +432,11 @@
|
||||
H.update_body()
|
||||
if(H.glasses && washglasses && wash_obj(H.glasses))
|
||||
H.update_inv_glasses()
|
||||
if(H.ears && washears && wash_obj(H.ears))
|
||||
if(H.ears && washears && wash_obj(H.ears) && wash_obj(H.ears_extra)) //skyrat edit
|
||||
H.update_inv_ears()
|
||||
//skyrat edit
|
||||
H.update_inv_ears_extra()
|
||||
//
|
||||
if(H.belt && wash_obj(H.belt))
|
||||
H.update_inv_belt()
|
||||
else
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
for(var/obj/item/I in H.held_items)
|
||||
qdel(I)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/costume/kilt/highlander(H), SLOT_W_UNIFORM)
|
||||
H.equip_to_slot_or_del(new /obj/item/radio/headset/heads/captain(H), SLOT_EARS)
|
||||
H.equip_to_slot_or_del(new /obj/item/radio/headset/heads/captain(H), SLOT_EARS_LEFT) //skyrat edit
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/head/beret/highlander(H), SLOT_HEAD)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(H), SLOT_SHOES)
|
||||
H.equip_to_slot_or_del(new /obj/item/pinpointer/nuke(H), SLOT_L_STORE)
|
||||
|
||||
@@ -99,12 +99,8 @@
|
||||
for(var/obj/item/W in M)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(W == H.w_uniform)
|
||||
if(W == H.w_uniform || W == H.shoes || W == H.w_underwear || W == H.w_socks || W == H.w_shirt) //skyrat edit
|
||||
continue //So all they're left with are shoes and uniform.
|
||||
if(W == H.shoes)
|
||||
continue
|
||||
|
||||
|
||||
M.transferItemToLoc(W)
|
||||
victim_belongings.Add(W)
|
||||
|
||||
@@ -190,10 +186,8 @@
|
||||
for(var/obj/item/W in M)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(W == H.w_uniform)
|
||||
if(W == H.w_uniform || W == H.shoes || W == H.w_underwear || W == H.w_socks || W == H.w_shirt) //skyrat edit
|
||||
continue //So all they're left with are shoes and uniform.
|
||||
if(W == H.shoes)
|
||||
continue
|
||||
M.dropItemToGround(W)
|
||||
for(var/obj/item/W in victim_belongings)
|
||||
W.forceMove(return_pod)
|
||||
|
||||
@@ -207,7 +207,7 @@
|
||||
if(!istype(master_mob) || !istype(H))
|
||||
return
|
||||
if(master_mob.ears)
|
||||
H.equip_to_slot_or_del(new master_mob.ears.type, SLOT_EARS)
|
||||
H.equip_to_slot_or_del(new master_mob.ears.type, SLOT_EARS_LEFT) //skyrat edit
|
||||
if(master_mob.w_uniform)
|
||||
H.equip_to_slot_or_del(new master_mob.w_uniform.type, SLOT_W_UNIFORM)
|
||||
if(master_mob.shoes)
|
||||
|
||||
@@ -52,6 +52,7 @@
|
||||
/obj/item/organ/genital/proc/is_exposed()
|
||||
if(!owner || genital_flags & (GENITAL_INTERNAL|GENITAL_HIDDEN))
|
||||
return FALSE
|
||||
/* skyrat edit
|
||||
if(genital_flags & GENITAL_UNDIES_HIDDEN && ishuman(owner))
|
||||
var/mob/living/carbon/human/H = owner
|
||||
if(!(NO_UNDERWEAR in H.dna.species.species_traits))
|
||||
@@ -59,6 +60,7 @@
|
||||
var/datum/sprite_accessory/underwear/bottom/B = H.hidden_underwear ? null : GLOB.underwear_list[H.underwear]
|
||||
if(zone == BODY_ZONE_CHEST ? (T?.covers_chest || B?.covers_chest) : (T?.covers_groin || B?.covers_groin))
|
||||
return FALSE
|
||||
*/
|
||||
if(genital_flags & GENITAL_THROUGH_CLOTHES)
|
||||
return TRUE
|
||||
|
||||
|
||||
@@ -511,7 +511,7 @@
|
||||
no_drops += H.get_item_by_slot(SLOT_GLOVES)
|
||||
no_drops += H.get_item_by_slot(SLOT_SHOES)
|
||||
no_drops += H.get_item_by_slot(SLOT_W_UNIFORM)
|
||||
no_drops += H.get_item_by_slot(SLOT_EARS)
|
||||
no_drops += H.get_item_by_slot(SLOT_EARS_LEFT) //skyrat edit
|
||||
for(var/i in no_drops)
|
||||
var/obj/item/I = i
|
||||
ADD_TRAIT(I, TRAIT_NODROP, CAPTURE_THE_FLAG_TRAIT)
|
||||
|
||||
@@ -93,6 +93,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
var/see_chat_emotes = TRUE
|
||||
var/enable_personal_chat_color = FALSE
|
||||
var/personal_chat_color = "#ffffff"
|
||||
var/list/color_gear = list()
|
||||
//SKYRAT CHANGES END
|
||||
var/underwear = "Nude" //underwear type
|
||||
var/undie_color = "FFFFFF"
|
||||
@@ -581,6 +582,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
dat += "</td>"
|
||||
dat += "<table><tr><td width='340px' height='300px' valign='top'>"
|
||||
dat += "<h2>Clothing & Equipment</h2>"
|
||||
/* skyrat change
|
||||
dat += "<b>Underwear:</b><a style='display:block;width:100px' href ='?_src_=prefs;preference=underwear;task=input'>[underwear]</a>"
|
||||
if(GLOB.underwear_list[underwear]?.has_color)
|
||||
dat += "<b>Underwear Color:</b> <span style='border:1px solid #161616; background-color: #[undie_color];'> </span> <a href='?_src_=prefs;preference=undie_color;task=input'>Change</a><BR>"
|
||||
@@ -590,6 +592,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
dat += "<b>Socks:</b><a style='display:block;width:100px' href ='?_src_=prefs;preference=socks;task=input'>[socks]</a>"
|
||||
if(GLOB.socks_list[socks]?.has_color)
|
||||
dat += "<b>Socks Color:</b> <span style='border:1px solid #161616; background-color: #[socks_color];'> </span> <a href='?_src_=prefs;preference=socks_color;task=input'>Change</a><BR>"
|
||||
*/
|
||||
dat += "<b>Backpack:</b><a style='display:block;width:100px' href ='?_src_=prefs;preference=bag;task=input'>[backbag]</a>"
|
||||
dat += "<b>Jumpsuit:</b><BR><a href ='?_src_=prefs;preference=suit;task=input'>[jumpsuit_style]</a><BR>"
|
||||
if((HAS_FLESH in pref_species.species_traits) || (HAS_BONE in pref_species.species_traits))
|
||||
@@ -890,7 +893,13 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
class_link = "style='white-space:normal;background:#ebc42e;' href='?_src_=prefs;preference=gear;toggle_gear_path=[html_encode(name)];toggle_gear=1'"
|
||||
else
|
||||
class_link = "style='white-space:normal;' href='?_src_=prefs;preference=gear;toggle_gear_path=[html_encode(name)];toggle_gear=1'"
|
||||
dat += "<tr style='vertical-align:top;'><td width=15%><a [class_link]>[name]</a></td>"
|
||||
//skyrat edit
|
||||
if(gear.has_colors && (gear.name in color_gear))
|
||||
var/colore = "<a href='?_src_=prefs;preference=gear;toggle_gear_path=[html_encode(name)];toggle_gear=color'>Color</a><span style='border: 1px solid #161616; background-color: [color_gear[gear.name]];'> </span>"
|
||||
dat += "<tr style='vertical-align:top;'><td width=15%><a [class_link]>[name]</a>[colore]</td>"
|
||||
else
|
||||
dat += "<tr style='vertical-align:top;'><td width=15%><a [class_link]>[name]</a></td>"
|
||||
//
|
||||
dat += "<td width = 5% style='vertical-align:top'>[gear.cost]</td><td>"
|
||||
if(islist(gear.restricted_roles))
|
||||
if(gear.restricted_roles.len)
|
||||
@@ -1470,6 +1479,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
facial_hair_color = random_short_color()
|
||||
if("facial_hair_style")
|
||||
facial_hair_style = random_facial_hair_style(gender)
|
||||
/*
|
||||
if("underwear")
|
||||
underwear = random_underwear(gender)
|
||||
undie_color = random_short_color()
|
||||
@@ -1479,6 +1489,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
if("socks")
|
||||
socks = random_socks()
|
||||
socks_color = random_short_color()
|
||||
*/
|
||||
if(BODY_ZONE_PRECISE_EYES)
|
||||
eye_color = random_eye_color()
|
||||
if("s_tone")
|
||||
@@ -1640,6 +1651,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
else
|
||||
modified_limbs[limb_type] = list(modification_type)
|
||||
|
||||
/*
|
||||
if("underwear")
|
||||
var/new_underwear = input(user, "Choose your character's underwear:", "Character Preference") as null|anything in GLOB.underwear_list
|
||||
if(new_underwear)
|
||||
@@ -1669,6 +1681,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
var/n_socks_color = input(user, "Choose your socks' color.", "Character Preference", "#[socks_color]") as color|null
|
||||
if(n_socks_color)
|
||||
socks_color = sanitize_hexcolor(n_socks_color, 6)
|
||||
*/
|
||||
|
||||
if("eyes")
|
||||
var/new_eyes = input(user, "Choose your character's eye colour:", "Character Preference","#"+eye_color) as color|null
|
||||
@@ -2682,20 +2695,32 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
var/datum/gear/G = GLOB.loadout_items[gear_category][gear_subcategory][name]
|
||||
if(!G)
|
||||
return
|
||||
var/toggle = text2num(href_list["toggle_gear"])
|
||||
if(!toggle && (G.type in chosen_gear))//toggling off and the item effectively is in chosen gear)
|
||||
chosen_gear -= G.type
|
||||
gear_points += initial(G.cost)
|
||||
else if(toggle && (!(is_type_in_ref_list(G, chosen_gear))))
|
||||
if(!is_loadout_slot_available(G.category))
|
||||
to_chat(user, "<span class='danger'>You cannot take this loadout, as you've already chosen too many of the same category!</span>")
|
||||
return
|
||||
if(G.donoritem && !G.donator_ckey_check(user.ckey))
|
||||
to_chat(user, "<span class='danger'>This is an item intended for donator use only. You are not authorized to use this item.</span>")
|
||||
return
|
||||
if(gear_points >= initial(G.cost))
|
||||
chosen_gear += G.type
|
||||
gear_points -= initial(G.cost)
|
||||
//skyrat edit
|
||||
if(href_list["toggle_gear"] != "color")
|
||||
var/toggle = text2num(href_list["toggle_gear"])
|
||||
if(!toggle && (G.type in chosen_gear))//toggling off and the item effectively is in chosen gear)
|
||||
chosen_gear -= G.type
|
||||
gear_points += initial(G.cost)
|
||||
else if(toggle && (!(is_type_in_ref_list(G, chosen_gear))))
|
||||
if(!is_loadout_slot_available(G.category))
|
||||
to_chat(user, "<span class='danger'>You cannot take this loadout, as you've already chosen too many of the same category!</span>")
|
||||
return
|
||||
if(G.donoritem && !G.donator_ckey_check(user.ckey))
|
||||
to_chat(user, "<span class='danger'>This is an item intended for donator use only. You are not authorized to use this item.</span>")
|
||||
return
|
||||
if(gear_points >= initial(G.cost))
|
||||
chosen_gear += G.type
|
||||
if(!color_gear)
|
||||
color_gear = list()
|
||||
color_gear |= list(G.name = G.color)
|
||||
gear_points -= initial(G.cost)
|
||||
else
|
||||
var/choice = input(user, "Select a color for [G.name].", "Gear Color") as color
|
||||
if(choice)
|
||||
if(!color_gear)
|
||||
color_gear = list()
|
||||
color_gear[G.name] = choice
|
||||
//
|
||||
|
||||
ShowChoices(user)
|
||||
return 1
|
||||
@@ -2736,6 +2761,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
character.dna.skin_tone_override = use_custom_skin_tone ? skin_tone : null
|
||||
character.hair_style = hair_style
|
||||
character.facial_hair_style = facial_hair_style
|
||||
/* skyrat edit
|
||||
character.underwear = underwear
|
||||
|
||||
character.saved_underwear = underwear
|
||||
@@ -2743,6 +2769,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
character.saved_undershirt = undershirt
|
||||
character.socks = socks
|
||||
character.saved_socks = socks
|
||||
*/
|
||||
character.undie_color = undie_color
|
||||
character.shirt_color = shirt_color
|
||||
character.socks_color = socks_color
|
||||
|
||||
@@ -534,6 +534,10 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
S["chosen_limb_id"] >> chosen_limb_id
|
||||
S["hide_ckey"] >> hide_ckey //saved per-character
|
||||
|
||||
//SKYRAT CHANGES
|
||||
S["color_gear"] >> color_gear
|
||||
//
|
||||
|
||||
//Custom names
|
||||
for(var/custom_name_id in GLOB.preferences_custom_names)
|
||||
var/savefile_slot_name = custom_name_id + "_name" //TODO remove this
|
||||
@@ -899,6 +903,9 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
WRITE_FILE(S["modified_limbs"] , safe_json_encode(modified_limbs))
|
||||
WRITE_FILE(S["chosen_limb_id"], chosen_limb_id)
|
||||
|
||||
//SKYRAT CHANGES
|
||||
WRITE_FILE(S["color_gear"] , color_gear)
|
||||
//
|
||||
|
||||
//gear loadout
|
||||
if(chosen_gear.len)
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
/obj/item/clothing/ears/earmuffs/ComponentInitialize()
|
||||
. = ..()
|
||||
AddElement(/datum/element/earhealing)
|
||||
AddComponent(/datum/component/wearertargeting/earprotection, list(SLOT_EARS))
|
||||
AddComponent(/datum/component/wearertargeting/earprotection, list(SLOT_EARS_LEFT, SLOT_EARS_RIGHT)) //skyrat edit
|
||||
|
||||
/obj/item/clothing/ears/headphones
|
||||
name = "headphones"
|
||||
|
||||
@@ -28,8 +28,20 @@
|
||||
mask = item_path
|
||||
if(SLOT_NECK)
|
||||
neck = item_path
|
||||
if(SLOT_EARS)
|
||||
//skyrat edit
|
||||
if(SLOT_EARS_LEFT)
|
||||
ears = item_path
|
||||
if(SLOT_EARS_RIGHT)
|
||||
ears_extra = item_path
|
||||
if(SLOT_WRISTS)
|
||||
wrists = item_path
|
||||
if(SLOT_W_SHIRT)
|
||||
shirt = item_path
|
||||
if(SLOT_W_UNDERWEAR)
|
||||
underwear = item_path
|
||||
if(SLOT_W_SOCKS)
|
||||
socks = item_path
|
||||
//
|
||||
if(SLOT_GLASSES)
|
||||
glasses = item_path
|
||||
if(SLOT_WEAR_ID)
|
||||
@@ -68,7 +80,7 @@
|
||||
|
||||
//Copy equipment
|
||||
var/list/result = list()
|
||||
var/list/slots_to_check = list(SLOT_W_UNIFORM,SLOT_BACK,SLOT_WEAR_SUIT,SLOT_BELT,SLOT_GLOVES,SLOT_SHOES,SLOT_HEAD,SLOT_WEAR_MASK,SLOT_NECK,SLOT_EARS,SLOT_GLASSES,SLOT_WEAR_ID,SLOT_S_STORE,SLOT_L_STORE,SLOT_R_STORE)
|
||||
var/list/slots_to_check = list(SLOT_W_UNIFORM,SLOT_W_UNDERWEAR,SLOT_W_SHIRT,SLOT_W_SOCKS,SLOT_BACK,SLOT_WEAR_SUIT,SLOT_BELT,SLOT_GLOVES,SLOT_WRISTS,SLOT_SHOES,SLOT_HEAD,SLOT_WEAR_MASK,SLOT_NECK,SLOT_EARS_LEFT,SLOT_EARS_RIGHT,SLOT_GLASSES,SLOT_WEAR_ID,SLOT_S_STORE,SLOT_L_STORE,SLOT_R_STORE) //skyrat edit
|
||||
for(var/s in slots_to_check)
|
||||
var/obj/item/I = get_item_by_slot(s)
|
||||
var/vedits = collect_vv(I)
|
||||
@@ -140,4 +152,4 @@
|
||||
if(id_slot)
|
||||
var/obj/item/card/id/card = id_slot.GetID()
|
||||
if(istype(card))
|
||||
card.access |= stored_access
|
||||
card.access |= stored_access
|
||||
|
||||
@@ -24,10 +24,15 @@
|
||||
var/mob/living/carbon/human/M = loc
|
||||
if(ishuman(M) && M.w_uniform)
|
||||
var/obj/item/clothing/under/U = M.w_uniform
|
||||
if(istype(U) && U.attached_accessory)
|
||||
var/obj/item/clothing/accessory/A = U.attached_accessory
|
||||
if(A.above_suit)
|
||||
//SKYRAT EDIT
|
||||
if(istype(U) && length(U.attached_accessories))
|
||||
var/please_overlay = FALSE
|
||||
for(var/obj/item/clothing/accessory/attached in U.attached_accessories)
|
||||
if(attached.above_suit)
|
||||
please_overlay = TRUE
|
||||
if(please_overlay)
|
||||
. += U.accessory_overlay
|
||||
//SKYRAT EDIT END
|
||||
|
||||
/obj/item/clothing/suit/update_clothes_damaged_state()
|
||||
..()
|
||||
|
||||
@@ -16,7 +16,10 @@
|
||||
var/adjusted = NORMAL_STYLE
|
||||
var/alt_covers_chest = FALSE // for adjusted/rolled-down jumpsuits, FALSE = exposes chest and arms, TRUE = exposes arms only
|
||||
var/dummy_thick = FALSE // is able to hold accessories on its item
|
||||
var/obj/item/clothing/accessory/attached_accessory
|
||||
//SKYRAT EDIT - Removed the old attached accessory system. We use a list of accessories instead.
|
||||
var/list/obj/item/clothing/accessory/attached_accessories = list()
|
||||
var/max_accessories = 3
|
||||
//SKYRAT EDIT END
|
||||
var/mutable_appearance/accessory_overlay
|
||||
|
||||
/obj/item/clothing/under/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE)
|
||||
@@ -62,29 +65,33 @@
|
||||
if(!alt_covers_chest)
|
||||
body_parts_covered |= CHEST
|
||||
|
||||
if(attached_accessory && slot != SLOT_HANDS && ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
attached_accessory.on_uniform_equip(src, user)
|
||||
if(attached_accessory.above_suit)
|
||||
H.update_inv_wear_suit()
|
||||
//SKYRAT EDIT
|
||||
for(var/obj/item/clothing/accessory/attached_accessory in attached_accessories)
|
||||
if(attached_accessory && slot != SLOT_HANDS && ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
attached_accessory.on_uniform_equip(src, user)
|
||||
if(attached_accessory.above_suit)
|
||||
H.update_inv_wear_suit()
|
||||
//SKYRAT EDIT END
|
||||
|
||||
/obj/item/clothing/under/dropped(mob/user)
|
||||
if(attached_accessory)
|
||||
//SKYRAT EDIT
|
||||
for(var/obj/item/clothing/accessory/attached_accessory in attached_accessories)
|
||||
attached_accessory.on_uniform_dropped(src, user)
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(attached_accessory.above_suit)
|
||||
H.update_inv_wear_suit()
|
||||
|
||||
//SKYRAT EDIT END
|
||||
..()
|
||||
|
||||
/obj/item/clothing/under/proc/attach_accessory(obj/item/I, mob/user, notifyAttach = 1)
|
||||
. = FALSE
|
||||
if(istype(I, /obj/item/clothing/accessory))
|
||||
var/obj/item/clothing/accessory/A = I
|
||||
if(attached_accessory)
|
||||
if(length(attached_accessories) >= max_accessories)
|
||||
if(user)
|
||||
to_chat(user, "<span class='warning'>[src] already has an accessory.</span>")
|
||||
to_chat(user, "<span class='warning'>[src] already has [length(attached_accessories)] accessories.</span>")
|
||||
return
|
||||
if(dummy_thick)
|
||||
if(user)
|
||||
@@ -102,9 +109,14 @@
|
||||
if((flags_inv & HIDEACCESSORY) || (A.flags_inv & HIDEACCESSORY))
|
||||
return TRUE
|
||||
|
||||
accessory_overlay = mutable_appearance('icons/mob/clothing/accessories.dmi', attached_accessory.icon_state)
|
||||
accessory_overlay.alpha = attached_accessory.alpha
|
||||
accessory_overlay.color = attached_accessory.color
|
||||
//SKYRAT EDIT
|
||||
accessory_overlay = mutable_appearance('icons/mob/clothing/accessories.dmi', "blank")
|
||||
for(var/obj/item/clothing/accessory/attached_accessory in attached_accessories)
|
||||
var/mutable_appearance/Y = mutable_appearance(attached_accessory.mob_overlay_icon, attached_accessory.icon_state, ABOVE_HUD_LAYER)
|
||||
Y.alpha = attached_accessory.alpha
|
||||
Y.color = attached_accessory.color
|
||||
accessory_overlay.add_overlay(Y)
|
||||
//SKYRAT EDIT END
|
||||
|
||||
if(ishuman(loc))
|
||||
var/mob/living/carbon/human/H = loc
|
||||
@@ -119,9 +131,11 @@
|
||||
if(!can_use(user))
|
||||
return
|
||||
|
||||
if(attached_accessory)
|
||||
var/obj/item/clothing/accessory/A = attached_accessory
|
||||
attached_accessory.detach(src, user)
|
||||
//SKYRAT EDIT
|
||||
if(length(attached_accessories))
|
||||
var/obj/item/clothing/accessory/A = attached_accessories[length(attached_accessories)]
|
||||
//SKYRAT EDIT END
|
||||
A.detach(src, user)
|
||||
if(user.put_in_hands(A))
|
||||
to_chat(user, "<span class='notice'>You detach [A] from [src].</span>")
|
||||
else
|
||||
@@ -152,8 +166,10 @@
|
||||
. += "Its vital tracker appears to be enabled."
|
||||
if(SENSOR_COORDS)
|
||||
. += "Its vital tracker and tracking beacon appear to be enabled."
|
||||
if(attached_accessory)
|
||||
. += "\A [attached_accessory] is attached to it."
|
||||
if(length(attached_accessories))
|
||||
for(var/obj/item/clothing/accessory/attached_accessory in attached_accessories)
|
||||
. += "\A [attached_accessory] is attached to it."
|
||||
//SKYRAT EDIT END
|
||||
|
||||
/obj/item/clothing/under/verb/toggle()
|
||||
set name = "Adjust Suit Sensors"
|
||||
@@ -230,7 +246,7 @@
|
||||
. = ..()
|
||||
if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
|
||||
return
|
||||
if(attached_accessory)
|
||||
if(length(attached_accessories)) //SKYRAT EDIT
|
||||
remove_accessory(user)
|
||||
else
|
||||
rolldown()
|
||||
|
||||
@@ -2,6 +2,9 @@
|
||||
name = "Accessory"
|
||||
desc = "Something has gone wrong!"
|
||||
icon = 'icons/obj/clothing/accessories.dmi'
|
||||
//skyrat edit
|
||||
mob_overlay_icon = 'icons/mob/clothing/accessories.dmi'
|
||||
//
|
||||
icon_state = "plasma"
|
||||
item_state = "" //no inhands
|
||||
slot_flags = 0
|
||||
@@ -9,6 +12,9 @@
|
||||
var/above_suit = FALSE
|
||||
var/minimize_when_attached = TRUE // TRUE if shown as a small icon in corner, FALSE if overlayed
|
||||
var/datum/component/storage/detached_pockets
|
||||
//skyrat edit
|
||||
var/current_uniform = null
|
||||
//
|
||||
|
||||
/obj/item/clothing/accessory/proc/attach(obj/item/clothing/under/U, user)
|
||||
var/datum/component/storage/storage = GetComponent(/datum/component/storage)
|
||||
@@ -17,15 +23,12 @@
|
||||
return FALSE
|
||||
U.TakeComponent(storage)
|
||||
detached_pockets = storage
|
||||
U.attached_accessory = src
|
||||
//SKYRAT EDIT
|
||||
U.attached_accessories |= src
|
||||
force_unto(U)
|
||||
current_uniform = U
|
||||
//SKYRAT EDIT END
|
||||
forceMove(U)
|
||||
layer = FLOAT_LAYER
|
||||
plane = FLOAT_PLANE
|
||||
if(minimize_when_attached)
|
||||
transform *= 0.5 //halve the size so it doesn't overpower the under
|
||||
pixel_x += 8
|
||||
pixel_y -= 8
|
||||
U.add_overlay(src)
|
||||
|
||||
if (islist(U.armor) || isnull(U.armor)) // This proc can run before /obj/Initialize has run for U and src,
|
||||
U.armor = getArmor(arglist(U.armor)) // we have to check that the armor list has been transformed into a datum before we try to call a proc on it
|
||||
@@ -45,19 +48,57 @@
|
||||
TakeComponent(detached_pockets)
|
||||
|
||||
U.armor = U.armor.detachArmor(armor)
|
||||
//SKYRAT EDIT
|
||||
current_uniform = null
|
||||
//SKYRAT EDIT END
|
||||
|
||||
if(isliving(user))
|
||||
on_uniform_dropped(U, user)
|
||||
|
||||
if(minimize_when_attached)
|
||||
transform *= 2
|
||||
pixel_x -= 8
|
||||
pixel_y += 8
|
||||
pixel_x = 0
|
||||
pixel_y = 0
|
||||
layer = initial(layer)
|
||||
plane = initial(plane)
|
||||
U.cut_overlays()
|
||||
U.attached_accessory = null
|
||||
U.accessory_overlay = null
|
||||
U.cut_overlays()
|
||||
U.attached_accessories -= src
|
||||
if(length(U.attached_accessories))
|
||||
U.accessory_overlay = mutable_appearance('icons/mob/clothing/accessories.dmi', "blank", WRISTS_LAYER, U.plane)
|
||||
for(var/obj/item/clothing/accessory/attached_accessory in U.attached_accessories)
|
||||
attached_accessory.force_unto(U)
|
||||
var/mutable_appearance/Y = mutable_appearance(attached_accessory.mob_overlay_icon, attached_accessory.icon_state, WRISTS_LAYER, U.plane)
|
||||
Y.alpha = attached_accessory.alpha
|
||||
Y.color = attached_accessory.color
|
||||
U.accessory_overlay.add_overlay(Y)
|
||||
//SKYRAT EDIT
|
||||
/obj/item/clothing/accessory/proc/force_unto(obj/item/clothing/under/U)
|
||||
layer = FLOAT_LAYER
|
||||
plane = FLOAT_PLANE
|
||||
if(minimize_when_attached)
|
||||
if(current_uniform != U)
|
||||
transform *= 0.5 //halve the size so it doesn't overpower the under
|
||||
pixel_x += 8
|
||||
pixel_y -= 8
|
||||
if(length(U.attached_accessories) > 1)
|
||||
if(length(U.attached_accessories) <= 3 && !current_uniform)
|
||||
pixel_y += 8 * (length(U.attached_accessories) - 1)
|
||||
else if((length(U.attached_accessories) > 3) && (length(U.attached_accessories) <= 6) && !current_uniform)
|
||||
pixel_x -= 8
|
||||
pixel_y += 8 * (length(U.attached_accessories) - 4)
|
||||
else if((length(U.attached_accessories) > 6) && (length(U.attached_accessories) <= 9) && !current_uniform)
|
||||
pixel_x -= 16
|
||||
pixel_y += 8 * (length(U.attached_accessories) - 7)
|
||||
else
|
||||
if(current_uniform != U)
|
||||
//we ran out of space for accessories, so we just throw shit at the wall
|
||||
pixel_x = 0
|
||||
pixel_y = 0
|
||||
pixel_x += rand(-16, 16)
|
||||
pixel_y += rand(-16, 16)
|
||||
U.add_overlay(src)
|
||||
//SKYRAT EDIT END
|
||||
|
||||
/obj/item/clothing/accessory/proc/on_uniform_equip(obj/item/clothing/under/U, user)
|
||||
return
|
||||
|
||||
@@ -83,7 +83,7 @@ GLOBAL_LIST_INIT(available_depts, list(SEC_DEPT_ENGINEERING, SEC_DEPT_MEDICAL, S
|
||||
if(ears)
|
||||
if(H.ears)
|
||||
qdel(H.ears)
|
||||
H.equip_to_slot_or_del(new ears(H),SLOT_EARS)
|
||||
H.equip_to_slot_or_del(new ears(H),SLOT_EARS_LEFT) //skyrat edit
|
||||
|
||||
var/obj/item/card/id/W = H.wear_id
|
||||
W.access |= dep_access
|
||||
|
||||
@@ -365,16 +365,23 @@
|
||||
var/slot_priority = W.slot_equipment_priority
|
||||
|
||||
if(!slot_priority)
|
||||
//skyrat edit
|
||||
slot_priority = list( \
|
||||
SLOT_BACK, SLOT_WEAR_ID,\
|
||||
SLOT_W_UNIFORM, SLOT_WEAR_SUIT,\
|
||||
SLOT_W_UNDERWEAR,\
|
||||
SLOT_W_SOCKS,\
|
||||
SLOT_W_SHIRT,\
|
||||
SLOT_W_UNIFORM,\
|
||||
SLOT_WEAR_SUIT,\
|
||||
SLOT_WEAR_MASK, SLOT_HEAD, SLOT_NECK,\
|
||||
SLOT_SHOES, SLOT_GLOVES,\
|
||||
SLOT_EARS, SLOT_GLASSES,\
|
||||
SLOT_SHOES, SLOT_WRISTS, SLOT_GLOVES,\
|
||||
SLOT_EARS_LEFT, SLOT_EARS_RIGHT,\
|
||||
SLOT_GLASSES,\
|
||||
SLOT_BELT, SLOT_S_STORE,\
|
||||
SLOT_L_STORE, SLOT_R_STORE,\
|
||||
SLOT_GENERC_DEXTROUS_STORAGE\
|
||||
)
|
||||
//
|
||||
|
||||
for(var/slot in slot_priority)
|
||||
if(equip_to_slot_if_possible(W, slot, FALSE, TRUE, TRUE, FALSE, clothing_check)) //qdel_on_fail = 0; disable_warning = 1; redraw_mob = 1
|
||||
|
||||
@@ -1176,7 +1176,8 @@
|
||||
if(head.flags_inv & HIDEEYES)
|
||||
LAZYOR(., SLOT_GLASSES)
|
||||
if(head.flags_inv & HIDEEARS)
|
||||
LAZYOR(., SLOT_EARS)
|
||||
LAZYOR(., SLOT_EARS_LEFT)
|
||||
LAZYOR(., SLOT_EARS_RIGHT)
|
||||
|
||||
if(wear_mask)
|
||||
if(wear_mask.flags_inv & HIDEEYES)
|
||||
|
||||
@@ -25,19 +25,47 @@
|
||||
var/list/obscured = check_obscured_slots()
|
||||
var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE))
|
||||
|
||||
//Skyrat changes - edited that to only show the extra species tidbit if it's unknown or he's got a custom species
|
||||
//and also underwear slots :)
|
||||
if(skipface || get_visible_name() == "Unknown")
|
||||
. += "You can't make out what species they are."
|
||||
else
|
||||
. += "[t_He] [t_is] a [dna.custom_species ? dna.custom_species : dna.species.name]!"
|
||||
|
||||
//Underwear
|
||||
var/undies_hidden = underwear_hidden()
|
||||
if(w_underwear && !undies_hidden)
|
||||
. += "[t_He] [t_is] wearing [w_underwear.get_examine_string(user)]."
|
||||
if(w_socks && !undies_hidden)
|
||||
. += "[t_He] [t_is] wearing [w_socks.get_examine_string(user)]."
|
||||
if(w_shirt && !undies_hidden)
|
||||
. += "[t_He] [t_is] wearing [w_shirt.get_examine_string(user)]."
|
||||
//Wrist slot because you're epic
|
||||
if(wrists && !(SLOT_WRISTS in obscured))
|
||||
. += "[t_He] [t_is] wearing [wrists.get_examine_string(user)]."
|
||||
//End of skyrat changes
|
||||
|
||||
//uniform
|
||||
if(w_uniform && !(SLOT_W_UNIFORM in obscured))
|
||||
//accessory
|
||||
var/accessory_msg
|
||||
if(istype(w_uniform, /obj/item/clothing/under))
|
||||
var/obj/item/clothing/under/U = w_uniform
|
||||
if(U.attached_accessory && !(U.attached_accessory.flags_inv & HIDEACCESSORY) && !(U.flags_inv & HIDEACCESSORY))
|
||||
accessory_msg += " with [icon2html(U.attached_accessory, user)] \a [U.attached_accessory]"
|
||||
if(length(U.attached_accessories) && !(U.flags_inv & HIDEACCESSORY))
|
||||
var/list/weehoo = list()
|
||||
var/dumb_icons = ""
|
||||
for(var/obj/item/clothing/accessory/attached_accessory in U.attached_accessories)
|
||||
if(!(attached_accessory.flags_inv & HIDEACCESSORY))
|
||||
weehoo += "\a [attached_accessory]"
|
||||
dumb_icons = "[dumb_icons][icon2html(attached_accessory, user)]"
|
||||
if(length(weehoo))
|
||||
accessory_msg += " with [dumb_icons]"
|
||||
if(length(U.attached_accessories) >= 2)
|
||||
accessory_msg += jointext(weehoo, ", ", 1, length(weehoo) - 1)
|
||||
accessory_msg += " and [weehoo[length(weehoo)]]"
|
||||
else
|
||||
accessory_msg += weehoo[1]
|
||||
|
||||
|
||||
. += "[t_He] [t_is] wearing [w_uniform.get_examine_string(user)][accessory_msg]."
|
||||
//head
|
||||
@@ -100,8 +128,18 @@
|
||||
. += "<b><font color=orange>[t_His] eyes are flickering a bright yellow!</font></b>"
|
||||
|
||||
//ears
|
||||
if(ears && !(SLOT_EARS in obscured))
|
||||
. += "[t_He] [t_has] [ears.get_examine_string(user)] on [t_his] ears."
|
||||
if(ears && !(SLOT_EARS_LEFT in obscured)) //skyrat edit
|
||||
. += "[t_He] [t_has] [ears.get_examine_string(user)] on [t_his] left ear."
|
||||
|
||||
//skyrat edit - extra ear slot haha
|
||||
if(ears_extra && !(SLOT_EARS_RIGHT in obscured))
|
||||
. += "[t_He] [t_has] [ears_extra.get_examine_string(user)] on [t_his] right ear."
|
||||
|
||||
//wearing two ear items makes you look like an idiot
|
||||
if((istype(ears, /obj/item/radio/headset) && !(SLOT_EARS_LEFT in obscured)) && (istype(ears_extra, /obj/item/radio/headset) && !(SLOT_EARS_RIGHT in obscured)))
|
||||
. += "<span class='warning'>[t_He] looks quite tacky wearing both \an [ears.name] and \an [ears_extra.name] on [t_his] head.</span>"
|
||||
|
||||
//
|
||||
|
||||
//ID
|
||||
if(wear_id)
|
||||
|
||||
@@ -145,10 +145,17 @@
|
||||
else
|
||||
dat += "<tr><td><B>Eyes:</B></td><td><A href='?src=[REF(src)];item=[SLOT_GLASSES]'>[(glasses && !(glasses.item_flags & ABSTRACT)) ? glasses : "<font color=grey>Empty</font>"]</A></td></tr>"
|
||||
|
||||
if(SLOT_EARS in obscured)
|
||||
dat += "<tr><td><font color=grey><B>Ears:</B></font></td><td><font color=grey>Obscured</font></td></tr>"
|
||||
//skyrat edit
|
||||
if(SLOT_EARS_LEFT in obscured)
|
||||
dat += "<tr><td><font color=grey><B>Left ear:</B></font></td><td><font color=grey>Obscured</font></td></tr>"
|
||||
else
|
||||
dat += "<tr><td><B>Ears:</B></td><td><A href='?src=[REF(src)];item=[SLOT_EARS]'>[(ears && !(ears.item_flags & ABSTRACT)) ? ears : "<font color=grey>Empty</font>"]</A></td></tr>"
|
||||
dat += "<tr><td><B>Left ear:</B></td><td><A href='?src=[REF(src)];item=[SLOT_EARS_LEFT]'>[(ears && !(ears.item_flags & ABSTRACT)) ? ears : "<font color=grey>Empty</font>"]</A></td></tr>"
|
||||
|
||||
if(SLOT_EARS_RIGHT in obscured)
|
||||
dat += "<tr><td><font color=grey><B>Right ear:</B></font></td><td><font color=grey>Obscured</font></td></tr>"
|
||||
else
|
||||
dat += "<tr><td><B>Right ear:</B></td><td><A href='?src=[REF(src)];item=[SLOT_EARS_RIGHT]'>[(ears_extra && !(ears_extra.item_flags & ABSTRACT)) ? ears_extra : "<font color=grey>Empty</font>"]</A></td></tr>"
|
||||
//
|
||||
|
||||
dat += "<tr><td> </td></tr>"
|
||||
|
||||
@@ -179,6 +186,13 @@
|
||||
else
|
||||
dat += "<tr><td><B>Gloves:</B></td><td><A href='?src=[REF(src)];item=[SLOT_GLOVES]'>[(gloves && !(gloves.item_flags & ABSTRACT)) ? gloves : "<font color=grey>Empty</font>"]</A></td></tr>"
|
||||
|
||||
//skyrat edit
|
||||
if(SLOT_WRISTS in obscured)
|
||||
dat += "<tr><td><font color=grey><B>Wrists:</B></font></td><td><font color=grey>Obscured</font></td></tr>"
|
||||
else
|
||||
dat += "<tr><td><B>Wrists:</B></td><td><A href='?src=[REF(src)];item=[SLOT_WRISTS]'>[(wrists && !(wrists.item_flags & ABSTRACT)) ? wrists : "<font color=grey>Empty</font>"]</A></td></tr>"
|
||||
//
|
||||
|
||||
if(SLOT_W_UNIFORM in obscured)
|
||||
dat += "<tr><td><font color=grey><B>Uniform:</B></font></td><td><font color=grey>Obscured</font></td></tr>"
|
||||
else
|
||||
@@ -197,6 +211,23 @@
|
||||
dat += " <A href='?src=[REF(src)];pockets=right'>[(r_store && !(r_store.item_flags & ABSTRACT)) ? "Right (Full)" : "<font color=grey>Right (Empty)</font>"]</A></td></tr>"
|
||||
dat += "<tr><td> ↳<B>ID:</B></td><td><A href='?src=[REF(src)];item=[SLOT_WEAR_ID]'>[(wear_id && !(wear_id.item_flags & ABSTRACT)) ? wear_id : "<font color=grey>Empty</font>"]</A></td></tr>"
|
||||
|
||||
//skyrat edit
|
||||
dat += "<tr><td><B>Underwear Section:</B></td></tr>"
|
||||
var/undies_hidden = underwear_hidden()
|
||||
if((SLOT_W_UNDERWEAR in obscured) || undies_hidden)
|
||||
dat += "<tr><td><font color=grey> ↳<B>Underwear:</B></font></td><td><font color=grey>Obscured</font></td></tr>"
|
||||
else
|
||||
dat += "<tr><td> ↳<B>Underwear:</B></td><td><A href='?src=[REF(src)];item=[SLOT_W_UNDERWEAR]'>[(w_underwear && !(w_underwear.item_flags & ABSTRACT)) ? w_underwear : "<font color=grey>Empty</font>"]</A></td></tr>"
|
||||
if((SLOT_W_SOCKS in obscured) || undies_hidden)
|
||||
dat += "<tr><td> ↳<font color=grey><B>Socks:</B></font></td><td><font color=grey>Obscured</font></td></tr>"
|
||||
else
|
||||
dat += "<tr><td> ↳<B>Socks:</B></td><td><A href='?src=[REF(src)];item=[SLOT_W_SOCKS]'>[(w_socks && !(w_socks.item_flags & ABSTRACT)) ? w_socks : "<font color=grey>Empty</font>"]</A></td></tr>"
|
||||
if((SLOT_W_SHIRT in obscured) || undies_hidden)
|
||||
dat += "<tr><td> ↳<font color=grey><B>Shirt:</B></font></td><td><font color=grey>Obscured</font></td></tr>"
|
||||
else
|
||||
dat += "<tr><td> ↳<B>Shirt:</B></td><td><A href='?src=[REF(src)];item=[SLOT_W_SHIRT]'>[(w_shirt && !(w_shirt.item_flags & ABSTRACT)) ? w_shirt : "<font color=grey>Empty</font>"]</A></td></tr>"
|
||||
//
|
||||
|
||||
if(handcuffed)
|
||||
dat += "<tr><td><B>Handcuffed:</B> <A href='?src=[REF(src)];item=[SLOT_HANDCUFFED]'>Remove</A></td></tr>"
|
||||
if(legcuffed)
|
||||
@@ -552,10 +583,18 @@
|
||||
if(wear_suit)
|
||||
if(wear_suit.flags_inv & HIDEGLOVES)
|
||||
LAZYOR(., SLOT_GLOVES)
|
||||
LAZYOR(., SLOT_WRISTS)
|
||||
if(wear_suit.flags_inv & HIDEJUMPSUIT)
|
||||
LAZYOR(., SLOT_W_UNIFORM)
|
||||
LAZYOR(., SLOT_W_SHIRT)
|
||||
LAZYOR(., SLOT_W_UNDERWEAR)
|
||||
if(wear_suit.flags_inv & HIDESHOES)
|
||||
LAZYOR(., SLOT_SHOES)
|
||||
LAZYOR(., SLOT_W_SOCKS)
|
||||
if(w_uniform)
|
||||
if(underwear_hidden())
|
||||
LAZYOR(., SLOT_W_SHIRT)
|
||||
LAZYOR(., SLOT_W_UNDERWEAR)
|
||||
|
||||
/mob/living/carbon/human/assess_threat(judgement_criteria, lasercolor = "", datum/callback/weaponcheck=null)
|
||||
if(judgement_criteria & JUDGE_EMAGGED)
|
||||
|
||||
@@ -6,6 +6,20 @@
|
||||
if(w_uniform)
|
||||
if(!.[w_uniform])
|
||||
.[w_uniform] = w_uniform.block_priority
|
||||
//skyrat edit
|
||||
if(w_underwear)
|
||||
if(!.[w_underwear])
|
||||
.[w_underwear] = w_underwear.block_priority
|
||||
if(w_socks)
|
||||
if(!.[w_socks])
|
||||
.[w_socks] = w_socks.block_priority
|
||||
if(w_shirt)
|
||||
if(!.[w_shirt])
|
||||
.[w_shirt] = w_shirt.block_priority
|
||||
if(wrists)
|
||||
if(!.[wrists])
|
||||
.[wrists] = wrists.block_priority
|
||||
//
|
||||
if(wear_neck)
|
||||
if(!.[wear_neck])
|
||||
.[wear_neck] = wear_neck.block_priority
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
if(!d_type || !def_zone)
|
||||
return 0
|
||||
var/protection = 0
|
||||
var/list/body_parts = list(head, wear_mask, wear_suit, w_uniform, back, gloves, shoes, belt, s_store, glasses, ears, wear_id, wear_neck) //Everything but pockets. Pockets are l_store and r_store. (if pockets were allowed, putting something armored, gloves or hats for example, would double up on the armor)
|
||||
var/list/body_parts = list(head, wear_mask, wear_suit, w_uniform, w_underwear, w_socks, w_shirt, back, gloves, wrists, shoes, belt, s_store, glasses, ears, ears_extra, wear_id, wear_neck) //Everything but pockets. Pockets are l_store and r_store. (if pockets were allowed, putting something armored, gloves or hats for example, would double up on the armor) //skyrat edit
|
||||
for(var/bp in body_parts)
|
||||
if(!bp)
|
||||
continue
|
||||
|
||||
@@ -49,6 +49,14 @@
|
||||
var/obj/item/l_store = null
|
||||
var/obj/item/s_store = null
|
||||
|
||||
//skyrat slots
|
||||
var/obj/item/w_underwear = null
|
||||
var/obj/item/w_socks = null
|
||||
var/obj/item/w_shirt = null
|
||||
var/obj/item/ears_extra = null
|
||||
var/obj/item/wrists = null
|
||||
//
|
||||
|
||||
var/special_voice = "" // For changing our voice. Used by a symptom.
|
||||
|
||||
var/bleedsuppress = 0 //for stopping bloodloss, eventually this will be limb-based like bleeding
|
||||
|
||||
@@ -31,12 +31,20 @@
|
||||
return belt
|
||||
if(SLOT_WEAR_ID)
|
||||
return wear_id
|
||||
if(SLOT_EARS)
|
||||
if(SLOT_EARS_LEFT) //skyrat edit
|
||||
return ears
|
||||
//skyrat edit
|
||||
if(SLOT_EARS_RIGHT)
|
||||
return ears_extra
|
||||
//
|
||||
if(SLOT_GLASSES)
|
||||
return glasses
|
||||
if(SLOT_GLOVES)
|
||||
return gloves
|
||||
//skyrat edit
|
||||
if(SLOT_WRISTS)
|
||||
return wrists
|
||||
//
|
||||
if(SLOT_HEAD)
|
||||
return head
|
||||
if(SLOT_SHOES)
|
||||
@@ -45,6 +53,14 @@
|
||||
return wear_suit
|
||||
if(SLOT_W_UNIFORM)
|
||||
return w_uniform
|
||||
//skyrat edit
|
||||
if(SLOT_W_UNDERWEAR)
|
||||
return w_underwear
|
||||
if(SLOT_W_SOCKS)
|
||||
return w_socks
|
||||
if(SLOT_W_SHIRT)
|
||||
return w_shirt
|
||||
//
|
||||
if(SLOT_L_STORE)
|
||||
return l_store
|
||||
if(SLOT_R_STORE)
|
||||
@@ -64,13 +80,17 @@
|
||||
legcuffed,
|
||||
wear_suit,
|
||||
gloves,
|
||||
wrists,
|
||||
shoes,
|
||||
belt,
|
||||
wear_id,
|
||||
l_store,
|
||||
r_store,
|
||||
w_uniform
|
||||
)
|
||||
w_uniform,
|
||||
w_underwear,
|
||||
w_socks,
|
||||
w_shirt,
|
||||
) //skyrat edit
|
||||
|
||||
/mob/living/carbon/human/proc/get_head_slots()
|
||||
return list(
|
||||
@@ -79,7 +99,8 @@
|
||||
wear_neck,
|
||||
glasses,
|
||||
ears,
|
||||
)
|
||||
ears_extra,
|
||||
) //skyrat edit
|
||||
|
||||
/mob/living/carbon/human/proc/get_storage_slots()
|
||||
return list(
|
||||
@@ -105,9 +126,14 @@
|
||||
wear_id = I
|
||||
sec_hud_set_ID()
|
||||
update_inv_wear_id()
|
||||
if(SLOT_EARS)
|
||||
//skyrat edit
|
||||
if(SLOT_EARS_LEFT)
|
||||
ears = I
|
||||
update_inv_ears()
|
||||
if(SLOT_EARS_RIGHT)
|
||||
ears_extra = I
|
||||
update_inv_ears_extra()
|
||||
//
|
||||
if(SLOT_GLASSES)
|
||||
glasses = I
|
||||
var/obj/item/clothing/glasses/G = I
|
||||
@@ -124,6 +150,11 @@
|
||||
if(SLOT_GLOVES)
|
||||
gloves = I
|
||||
update_inv_gloves()
|
||||
//skyrat edit
|
||||
if(SLOT_WRISTS)
|
||||
wrists = I
|
||||
update_inv_wrists()
|
||||
//
|
||||
if(SLOT_SHOES)
|
||||
shoes = I
|
||||
update_inv_shoes()
|
||||
@@ -139,6 +170,17 @@
|
||||
w_uniform = I
|
||||
update_suit_sensors()
|
||||
update_inv_w_uniform()
|
||||
//skyrat edit
|
||||
if(SLOT_W_UNDERWEAR)
|
||||
w_underwear = I
|
||||
update_inv_w_underwear()
|
||||
if(SLOT_W_SOCKS)
|
||||
w_socks = I
|
||||
update_inv_w_socks()
|
||||
if(SLOT_W_SHIRT)
|
||||
w_shirt = I
|
||||
update_inv_w_shirt()
|
||||
//
|
||||
if(SLOT_L_STORE)
|
||||
l_store = I
|
||||
update_inv_pockets()
|
||||
@@ -196,6 +238,24 @@
|
||||
update_suit_sensors()
|
||||
if(!QDELETED(src))
|
||||
update_inv_w_uniform()
|
||||
//skyrat edit
|
||||
else if(I == w_underwear)
|
||||
w_underwear = null
|
||||
if(!QDELETED(src))
|
||||
update_inv_w_underwear()
|
||||
else if(I == w_socks)
|
||||
w_socks = null
|
||||
if(!QDELETED(src))
|
||||
update_inv_w_socks()
|
||||
else if(I == w_shirt)
|
||||
w_shirt = null
|
||||
if(!QDELETED(src))
|
||||
update_inv_w_shirt()
|
||||
else if(I == wrists)
|
||||
wrists = null
|
||||
if(!QDELETED(src))
|
||||
update_inv_wrists()
|
||||
//
|
||||
else if(I == gloves)
|
||||
gloves = null
|
||||
if(!QDELETED(src))
|
||||
@@ -218,6 +278,12 @@
|
||||
ears = null
|
||||
if(!QDELETED(src))
|
||||
update_inv_ears()
|
||||
//skyrat edit
|
||||
else if(I == ears_extra)
|
||||
ears_extra = null
|
||||
if(!QDELETED(src))
|
||||
update_inv_ears_extra()
|
||||
//
|
||||
else if(I == shoes)
|
||||
shoes = null
|
||||
if(!QDELETED(src))
|
||||
|
||||
@@ -163,6 +163,20 @@
|
||||
if(w_uniform)
|
||||
if(w_uniform.max_heat_protection_temperature && w_uniform.max_heat_protection_temperature >= temperature)
|
||||
thermal_protection_flags |= w_uniform.heat_protection
|
||||
//skyrat edit
|
||||
if(w_underwear)
|
||||
if(w_underwear.max_heat_protection_temperature && w_underwear.max_heat_protection_temperature >= temperature)
|
||||
thermal_protection_flags |= w_underwear.heat_protection
|
||||
if(w_socks)
|
||||
if(w_socks.max_heat_protection_temperature && w_socks.max_heat_protection_temperature >= temperature)
|
||||
thermal_protection_flags |= w_socks.heat_protection
|
||||
if(w_shirt)
|
||||
if(w_shirt.max_heat_protection_temperature && w_shirt.max_heat_protection_temperature >= temperature)
|
||||
thermal_protection_flags |= w_shirt.heat_protection
|
||||
if(wrists)
|
||||
if(wrists.max_heat_protection_temperature && wrists.max_heat_protection_temperature >= temperature)
|
||||
thermal_protection_flags |= wrists.heat_protection
|
||||
//
|
||||
if(shoes)
|
||||
if(shoes.max_heat_protection_temperature && shoes.max_heat_protection_temperature >= temperature)
|
||||
thermal_protection_flags |= shoes.heat_protection
|
||||
|
||||
@@ -72,17 +72,30 @@
|
||||
if(MODE_HEADSET)
|
||||
if (ears)
|
||||
ears.talk_into(src, message, , spans, language)
|
||||
//skyrat edit
|
||||
else if (ears_extra)
|
||||
ears_extra.talk_into(src, message, , spans, language)
|
||||
//
|
||||
return ITALICS | REDUCE_RANGE
|
||||
|
||||
if(MODE_DEPARTMENT)
|
||||
if (ears)
|
||||
ears.talk_into(src, message, message_mode, spans, language)
|
||||
//skyrat edit
|
||||
else if (ears_extra)
|
||||
ears_extra.talk_into(src, message, message_mode, spans, language)
|
||||
//
|
||||
return ITALICS | REDUCE_RANGE
|
||||
|
||||
if(message_mode in GLOB.radiochannels)
|
||||
if(ears)
|
||||
ears.talk_into(src, message, message_mode, spans, language)
|
||||
return ITALICS | REDUCE_RANGE
|
||||
//skyrat edit
|
||||
else if (ears_extra)
|
||||
ears_extra.talk_into(src, message, , spans, language)
|
||||
return ITALICS | REDUCE_RANGE
|
||||
//
|
||||
|
||||
return 0
|
||||
|
||||
|
||||
@@ -13,10 +13,14 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
|
||||
var/has_field_of_vision = TRUE
|
||||
|
||||
//Species Icon Drawing Offsets - Pixel X, Pixel Y, Aka X = Horizontal and Y = Vertical, from bottom left corner
|
||||
var/list/offset_features = list(
|
||||
var/list/offset_features = list( //skyrat edit
|
||||
OFFSET_UNIFORM = list(0,0),
|
||||
OFFSET_UNDERWEAR = list(0,0),
|
||||
OFFSET_SOCKS = list(0,0),
|
||||
OFFSET_SHIRT = list(0,0),
|
||||
OFFSET_ID = list(0,0),
|
||||
OFFSET_GLOVES = list(0,0),
|
||||
OFFSET_WRISTS = list(0,0),
|
||||
OFFSET_GLASSES = list(0,0),
|
||||
OFFSET_EARS = list(0,0),
|
||||
OFFSET_SHOES = list(0,0),
|
||||
@@ -611,6 +615,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
|
||||
|
||||
standing += eye_overlay
|
||||
|
||||
/* skyrat edit
|
||||
//Underwear, Undershirts & Socks
|
||||
if(!(NO_UNDERWEAR in species_traits))
|
||||
var/datum/sprite_accessory/taur/TA
|
||||
@@ -655,6 +660,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
|
||||
if(T.has_color)
|
||||
MA.color = "#[H.shirt_color]"
|
||||
standing += MA
|
||||
*/
|
||||
|
||||
if(standing.len)
|
||||
H.overlays_standing[BODY_LAYER] = standing
|
||||
@@ -705,6 +711,17 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
|
||||
if(H.w_uniform && !H.wear_suit)
|
||||
if(!(H.w_uniform.mutantrace_variation & STYLE_DIGITIGRADE))
|
||||
should_be_squished = TRUE
|
||||
//skyrat edit
|
||||
if(H.w_underwear && !H.wear_suit && !H.w_uniform)
|
||||
if(!(H.w_underwear.mutantrace_variation & STYLE_DIGITIGRADE))
|
||||
should_be_squished = TRUE
|
||||
if(H.w_socks && !H.wear_suit && !H.w_uniform)
|
||||
if(!(H.w_socks.mutantrace_variation & STYLE_DIGITIGRADE))
|
||||
should_be_squished = TRUE
|
||||
if(H.w_shirt && !H.wear_suit && !H.w_uniform)
|
||||
if(!(H.w_shirt.mutantrace_variation & STYLE_DIGITIGRADE))
|
||||
should_be_squished = TRUE
|
||||
//
|
||||
if(O.use_digitigrade == FULL_DIGITIGRADE && should_be_squished)
|
||||
O.use_digitigrade = SQUISHED_DIGITIGRADE
|
||||
update_needed = TRUE
|
||||
@@ -1022,6 +1039,16 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
|
||||
if(num_arms < 2)
|
||||
return FALSE
|
||||
return equip_delay_self_check(I, H, bypass_equip_delay_self)
|
||||
//skyrat edit
|
||||
if(SLOT_WRISTS)
|
||||
if(H.wrists)
|
||||
return FALSE
|
||||
if( !(I.slot_flags & ITEM_SLOT_WRISTS) )
|
||||
return FALSE
|
||||
if(num_arms < 2)
|
||||
return FALSE
|
||||
return equip_delay_self_check(I, H, bypass_equip_delay_self)
|
||||
//
|
||||
if(SLOT_SHOES)
|
||||
if(H.shoes)
|
||||
return FALSE
|
||||
@@ -1063,7 +1090,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
|
||||
if(!H.get_bodypart(BODY_ZONE_HEAD))
|
||||
return FALSE
|
||||
return equip_delay_self_check(I, H, bypass_equip_delay_self)
|
||||
if(SLOT_EARS)
|
||||
if(SLOT_EARS_LEFT) //skyrat edit
|
||||
if(H.ears)
|
||||
return FALSE
|
||||
if(!(I.slot_flags & ITEM_SLOT_EARS))
|
||||
@@ -1071,6 +1098,34 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
|
||||
if(!H.get_bodypart(BODY_ZONE_HEAD))
|
||||
return FALSE
|
||||
return equip_delay_self_check(I, H, bypass_equip_delay_self)
|
||||
//skyrat edit
|
||||
if(SLOT_EARS_RIGHT)
|
||||
if(H.ears_extra)
|
||||
return FALSE
|
||||
if(!(I.slot_flags & ITEM_SLOT_EARS))
|
||||
return FALSE
|
||||
if(!H.get_bodypart(BODY_ZONE_HEAD))
|
||||
return FALSE
|
||||
return equip_delay_self_check(I, H, bypass_equip_delay_self)
|
||||
if(SLOT_W_UNDERWEAR)
|
||||
if(H.w_underwear)
|
||||
return FALSE
|
||||
if( !(I.slot_flags & ITEM_SLOT_UNDERWEAR) )
|
||||
return FALSE
|
||||
return equip_delay_self_check(I, H, bypass_equip_delay_self)
|
||||
if(SLOT_W_SOCKS)
|
||||
if(H.w_socks)
|
||||
return FALSE
|
||||
if( !(I.slot_flags & ITEM_SLOT_SOCKS) )
|
||||
return FALSE
|
||||
return equip_delay_self_check(I, H, bypass_equip_delay_self)
|
||||
if(SLOT_W_SHIRT)
|
||||
if(H.w_shirt)
|
||||
return FALSE
|
||||
if( !(I.slot_flags & ITEM_SLOT_SHIRT) )
|
||||
return FALSE
|
||||
return equip_delay_self_check(I, H, bypass_equip_delay_self)
|
||||
//
|
||||
if(SLOT_W_UNIFORM)
|
||||
if(H.w_uniform)
|
||||
return FALSE
|
||||
@@ -1202,6 +1257,11 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
|
||||
REMOVE_TRAIT(H, TRAIT_FAT, OBESITY)
|
||||
H.remove_movespeed_modifier(/datum/movespeed_modifier/obesity)
|
||||
H.update_inv_w_uniform()
|
||||
//skyrat edit
|
||||
H.update_inv_w_underwear()
|
||||
H.update_inv_w_socks()
|
||||
H.update_inv_w_shirt()
|
||||
//
|
||||
H.update_inv_wear_suit()
|
||||
else
|
||||
if(H.overeatduration >= 100)
|
||||
@@ -1209,6 +1269,11 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
|
||||
ADD_TRAIT(H, TRAIT_FAT, OBESITY)
|
||||
H.add_movespeed_modifier(/datum/movespeed_modifier/obesity)
|
||||
H.update_inv_w_uniform()
|
||||
//skyrat edit
|
||||
H.update_inv_w_underwear()
|
||||
H.update_inv_w_socks()
|
||||
H.update_inv_w_shirt()
|
||||
//
|
||||
H.update_inv_wear_suit()
|
||||
|
||||
// nutrition decrease and satiety
|
||||
@@ -1548,6 +1613,14 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
|
||||
|
||||
if(target.w_uniform)
|
||||
target.w_uniform.add_fingerprint(user)
|
||||
//skyrat edit
|
||||
else if(target.w_underwear)
|
||||
target.w_underwear.add_fingerprint(user)
|
||||
else if(target.w_socks)
|
||||
target.w_socks.add_fingerprint(user)
|
||||
else if(target.w_shirt)
|
||||
target.w_shirt.add_fingerprint(user)
|
||||
//
|
||||
//var/randomized_zone = ran_zone(user.zone_selected) CIT CHANGE - comments out to prevent compiling errors
|
||||
SEND_SIGNAL(target, COMSIG_HUMAN_DISARM_HIT, user, user.zone_selected)
|
||||
if(target.pulling == user)
|
||||
@@ -1720,6 +1793,17 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
|
||||
H.visible_message("<span class='danger'>[H] has been knocked down!</span>", \
|
||||
"<span class='userdanger'>[H] has been knocked down!</span>")
|
||||
H.apply_effect(60, EFFECT_KNOCKDOWN, armor_block)
|
||||
//skyrat edit
|
||||
if(H.w_underwear)
|
||||
H.w_underwear.add_mob_blood(H)
|
||||
H.update_inv_w_underwear()
|
||||
if(H.w_socks)
|
||||
H.w_socks.add_mob_blood(H)
|
||||
H.update_inv_w_socks()
|
||||
if(H.w_shirt)
|
||||
H.w_underwear.add_mob_blood(H)
|
||||
H.update_inv_w_shirt()
|
||||
//
|
||||
|
||||
if(bloody)
|
||||
if(H.wear_suit)
|
||||
@@ -1804,6 +1888,14 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
|
||||
|
||||
if(target.w_uniform)
|
||||
target.w_uniform.add_fingerprint(user)
|
||||
//skyrat edit
|
||||
else if(target.w_shirt)
|
||||
target.w_shirt.add_fingerprint(user)
|
||||
else if(target.w_socks)
|
||||
target.w_socks.add_fingerprint(user)
|
||||
else if(target.w_underwear)
|
||||
target.w_underwear.add_fingerprint(user)
|
||||
//
|
||||
SEND_SIGNAL(target, COMSIG_HUMAN_DISARM_HIT, user, user.zone_selected)
|
||||
|
||||
if(CHECK_MOBILITY(target, MOBILITY_STAND))
|
||||
@@ -2107,6 +2199,14 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
|
||||
|
||||
//CHEST//
|
||||
var/obj/item/clothing/chest_clothes = null
|
||||
//skyrat edit
|
||||
if(H.w_underwear && (H.w_underwear.body_parts_covered & CHEST))
|
||||
chest_clothes = H.w_underwear
|
||||
if(H.w_socks && (H.w_socks.body_parts_covered & CHEST))
|
||||
chest_clothes = H.w_socks
|
||||
if(H.w_shirt && (H.w_shirt.body_parts_covered & CHEST))
|
||||
chest_clothes = H.w_shirt
|
||||
//
|
||||
if(H.w_uniform)
|
||||
chest_clothes = H.w_uniform
|
||||
if(H.wear_suit)
|
||||
@@ -2117,6 +2217,16 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
|
||||
|
||||
//ARMS & HANDS//
|
||||
var/obj/item/clothing/arm_clothes = null
|
||||
//skyrat edit
|
||||
if(H.wrists)
|
||||
arm_clothes = H.wrists
|
||||
if(H.w_underwear && (H.w_underwear.body_parts_covered & ARMS))
|
||||
arm_clothes = H.w_underwear
|
||||
if(H.w_socks && (H.w_socks.body_parts_covered & ARMS))
|
||||
arm_clothes = H.w_socks
|
||||
if(H.w_shirt && (H.w_shirt.body_parts_covered & ARMS))
|
||||
arm_clothes = H.w_shirt
|
||||
//
|
||||
if(H.gloves)
|
||||
arm_clothes = H.gloves
|
||||
if(H.w_uniform && ((H.w_uniform.body_parts_covered & HANDS) || (H.w_uniform.body_parts_covered & ARMS)))
|
||||
@@ -2128,6 +2238,14 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
|
||||
|
||||
//LEGS & FEET//
|
||||
var/obj/item/clothing/leg_clothes = null
|
||||
//skyrat edit
|
||||
if(H.w_underwear && (H.w_underwear.body_parts_covered & LEGS))
|
||||
leg_clothes = H.w_underwear
|
||||
if(H.w_socks && (H.w_socks.body_parts_covered & LEGS))
|
||||
leg_clothes = H.w_socks
|
||||
if(H.w_shirt && (H.w_shirt.body_parts_covered & LEGS))
|
||||
leg_clothes = H.w_shirt
|
||||
//
|
||||
if(H.shoes)
|
||||
leg_clothes = H.shoes
|
||||
if(H.w_uniform && ((H.w_uniform.body_parts_covered & FEET) || (H.w_uniform.body_parts_covered & LEGS)))
|
||||
|
||||
@@ -77,6 +77,13 @@ There are several things that need to be remembered:
|
||||
update_body(TRUE)
|
||||
update_hair()
|
||||
update_inv_w_uniform()
|
||||
//skyrat edit
|
||||
update_inv_w_underwear()
|
||||
update_inv_w_socks()
|
||||
update_inv_w_shirt()
|
||||
update_inv_ears_extra()
|
||||
update_inv_wrists()
|
||||
//
|
||||
update_inv_wear_id()
|
||||
update_inv_gloves()
|
||||
update_inv_glasses()
|
||||
@@ -150,6 +157,145 @@ There are several things that need to be remembered:
|
||||
apply_overlay(UNIFORM_LAYER)
|
||||
update_mutant_bodyparts()
|
||||
|
||||
//skyrat edit
|
||||
/mob/living/carbon/human/update_inv_w_underwear()
|
||||
remove_overlay(UNDERWEAR_LAYER)
|
||||
|
||||
if(client && hud_used)
|
||||
var/obj/screen/inventory/inv = hud_used.inv_slots[SLOT_W_UNDERWEAR]
|
||||
inv.update_icon()
|
||||
|
||||
if(istype(w_underwear, /obj/item/clothing/underwear))
|
||||
var/obj/item/clothing/underwear/U = w_underwear
|
||||
U.screen_loc = ui_boxers
|
||||
if(client && hud_used && hud_used.hud_shown && hud_used.extra_shown)
|
||||
if(hud_used.inventory_shown)
|
||||
client.screen += w_underwear
|
||||
update_observer_view(w_underwear,1)
|
||||
|
||||
if(w_uniform && (w_uniform.flags_inv & HIDEUNDERWEAR))
|
||||
return
|
||||
|
||||
var/alt_worn = U.mob_overlay_icon || 'sandcode/icons/mob/clothing/underwear.dmi'
|
||||
var/variant_flag = NONE
|
||||
|
||||
if((DIGITIGRADE in dna.species.species_traits) && U.mutantrace_variation & STYLE_DIGITIGRADE && !(U.mutantrace_variation & STYLE_NO_ANTHRO_ICON))
|
||||
alt_worn = U.anthro_mob_worn_overlay || 'sandcode/icons/mob/clothing/underwear_digi.dmi'
|
||||
variant_flag |= STYLE_DIGITIGRADE
|
||||
|
||||
var/mask
|
||||
if(dna.species.mutant_bodyparts["taur"])
|
||||
var/datum/sprite_accessory/taur/T = GLOB.taur_list[dna.features["taur"]]
|
||||
var/clip_flag = U.mutantrace_variation & T?.hide_legs
|
||||
if(clip_flag)
|
||||
variant_flag |= clip_flag
|
||||
mask = T.alpha_mask_state
|
||||
|
||||
var/mutable_appearance/underwear_overlay
|
||||
|
||||
var/gendered = (dna?.species.sexes && dna.features["body_model"] == FEMALE) ? U.fitted : NO_FEMALE_UNIFORM
|
||||
underwear_overlay = U.build_worn_icon(UNDERWEAR_LAYER, alt_worn, FALSE, gendered, null, variant_flag, FALSE, mask)
|
||||
|
||||
if(OFFSET_UNDERWEAR in dna.species.offset_features)
|
||||
underwear_overlay.pixel_x += dna.species.offset_features[OFFSET_UNDERWEAR][1]
|
||||
underwear_overlay.pixel_y += dna.species.offset_features[OFFSET_UNDERWEAR][2]
|
||||
overlays_standing[UNDERWEAR_LAYER] = underwear_overlay
|
||||
|
||||
apply_overlay(UNDERWEAR_LAYER)
|
||||
update_mutant_bodyparts()
|
||||
|
||||
/mob/living/carbon/human/update_inv_w_socks()
|
||||
remove_overlay(SOCKS_LAYER)
|
||||
|
||||
if(client && hud_used)
|
||||
var/obj/screen/inventory/inv = hud_used.inv_slots[SLOT_W_SOCKS]
|
||||
inv.update_icon()
|
||||
|
||||
if(istype(w_socks, /obj/item/clothing/underwear))
|
||||
var/obj/item/clothing/underwear/U = w_socks
|
||||
U.screen_loc = ui_socks
|
||||
if(client && hud_used && hud_used.hud_shown && hud_used.extra_shown)
|
||||
if(hud_used.inventory_shown)
|
||||
client.screen += w_socks
|
||||
update_observer_view(w_socks,1)
|
||||
|
||||
if(w_uniform && (w_uniform.flags_inv & HIDEUNDERWEAR))
|
||||
return
|
||||
|
||||
var/alt_worn = U.mob_overlay_icon || 'sandcode/icons/mob/clothing/underwear.dmi'
|
||||
var/variant_flag = NONE
|
||||
|
||||
if((DIGITIGRADE in dna.species.species_traits) && U.mutantrace_variation & STYLE_DIGITIGRADE && !(U.mutantrace_variation & STYLE_NO_ANTHRO_ICON))
|
||||
alt_worn = U.anthro_mob_worn_overlay || 'sandcode/icons/mob/clothing/underwear_digi.dmi'
|
||||
variant_flag |= STYLE_DIGITIGRADE
|
||||
|
||||
var/mask
|
||||
if(dna.species.mutant_bodyparts["taur"])
|
||||
var/datum/sprite_accessory/taur/T = GLOB.taur_list[dna.features["taur"]]
|
||||
var/clip_flag = U.mutantrace_variation & T?.hide_legs
|
||||
if(clip_flag)
|
||||
variant_flag |= clip_flag
|
||||
mask = T.alpha_mask_state
|
||||
|
||||
var/mutable_appearance/underwear_overlay
|
||||
|
||||
var/gendered = (dna?.species.sexes && dna.features["body_model"] == FEMALE) ? U.fitted : NO_FEMALE_UNIFORM
|
||||
underwear_overlay = U.build_worn_icon(SOCKS_LAYER, alt_worn, FALSE, gendered, null, variant_flag, FALSE, mask)
|
||||
|
||||
if(OFFSET_SOCKS in dna.species.offset_features)
|
||||
underwear_overlay.pixel_x += dna.species.offset_features[OFFSET_SOCKS][1]
|
||||
underwear_overlay.pixel_y += dna.species.offset_features[OFFSET_SOCKS][2]
|
||||
overlays_standing[SOCKS_LAYER] = underwear_overlay
|
||||
|
||||
apply_overlay(SOCKS_LAYER)
|
||||
update_mutant_bodyparts()
|
||||
|
||||
/mob/living/carbon/human/update_inv_w_shirt()
|
||||
remove_overlay(SHIRT_LAYER)
|
||||
|
||||
if(client && hud_used)
|
||||
var/obj/screen/inventory/inv = hud_used.inv_slots[SLOT_W_SHIRT]
|
||||
inv.update_icon()
|
||||
|
||||
if(istype(w_shirt, /obj/item/clothing/underwear))
|
||||
var/obj/item/clothing/underwear/U = w_shirt
|
||||
U.screen_loc = ui_shirt
|
||||
if(client && hud_used && hud_used.hud_shown && hud_used.extra_shown)
|
||||
if(hud_used.inventory_shown)
|
||||
client.screen += w_shirt
|
||||
update_observer_view(w_shirt,1)
|
||||
|
||||
if(w_uniform && (w_uniform.flags_inv & HIDEUNDERWEAR))
|
||||
return
|
||||
|
||||
var/alt_worn = U.mob_overlay_icon || 'sandcode/icons/mob/clothing/underwear.dmi'
|
||||
var/variant_flag = NONE
|
||||
|
||||
if((DIGITIGRADE in dna.species.species_traits) && U.mutantrace_variation & STYLE_DIGITIGRADE && !(U.mutantrace_variation & STYLE_NO_ANTHRO_ICON))
|
||||
alt_worn = U.anthro_mob_worn_overlay || 'sandcode/icons/mob/clothing/underwear_digi.dmi'
|
||||
variant_flag |= STYLE_DIGITIGRADE
|
||||
|
||||
var/mask
|
||||
if(dna.species.mutant_bodyparts["taur"])
|
||||
var/datum/sprite_accessory/taur/T = GLOB.taur_list[dna.features["taur"]]
|
||||
var/clip_flag = U.mutantrace_variation & T?.hide_legs
|
||||
if(clip_flag)
|
||||
variant_flag |= clip_flag
|
||||
mask = T.alpha_mask_state
|
||||
|
||||
var/mutable_appearance/underwear_overlay
|
||||
|
||||
var/gendered = (dna?.species.sexes && dna.features["body_model"] == FEMALE) ? U.fitted : NO_FEMALE_UNIFORM
|
||||
underwear_overlay = U.build_worn_icon(SHIRT_LAYER, alt_worn, FALSE, gendered, null, variant_flag, FALSE, mask)
|
||||
|
||||
if(OFFSET_UNDERWEAR in dna.species.offset_features)
|
||||
underwear_overlay.pixel_x += dna.species.offset_features[OFFSET_SHIRT][1]
|
||||
underwear_overlay.pixel_y += dna.species.offset_features[OFFSET_SHIRT][2]
|
||||
overlays_standing[SHIRT_LAYER] = underwear_overlay
|
||||
|
||||
apply_overlay(SHIRT_LAYER)
|
||||
update_mutant_bodyparts()
|
||||
//
|
||||
|
||||
/mob/living/carbon/human/update_inv_wear_id()
|
||||
remove_overlay(ID_LAYER)
|
||||
@@ -207,6 +353,39 @@ There are several things that need to be remembered:
|
||||
overlays_standing[GLOVES_LAYER] = gloves_overlay
|
||||
apply_overlay(GLOVES_LAYER)
|
||||
|
||||
//skyrat edit
|
||||
/mob/living/carbon/human/update_inv_wrists()
|
||||
remove_overlay(WRISTS_LAYER)
|
||||
|
||||
if(client && hud_used && hud_used.inv_slots[SLOT_WRISTS])
|
||||
var/obj/screen/inventory/inv = hud_used.inv_slots[SLOT_WRISTS]
|
||||
inv.update_icon()
|
||||
|
||||
if(!wrists && bloody_hands)
|
||||
var/mutable_appearance/bloody_overlay = mutable_appearance('icons/effects/blood.dmi', "bloodyhands", -WRISTS_LAYER, color = blood_DNA_to_color())
|
||||
if(get_num_arms(FALSE) < 2)
|
||||
if(has_left_hand(FALSE))
|
||||
bloody_overlay.icon_state = "bloodyhands_left"
|
||||
else if(has_right_hand(FALSE))
|
||||
bloody_overlay.icon_state = "bloodyhands_right"
|
||||
|
||||
overlays_standing[WRISTS_LAYER] = bloody_overlay
|
||||
|
||||
var/mutable_appearance/wrists_overlay = overlays_standing[WRISTS_LAYER]
|
||||
if(wrists)
|
||||
wrists.screen_loc = ui_wrists
|
||||
if(client && hud_used && hud_used.hud_shown && hud_used.extra_shown)
|
||||
if(hud_used.inventory_shown)
|
||||
client.screen += wrists
|
||||
update_observer_view(wrists,1)
|
||||
overlays_standing[WRISTS_LAYER] = gloves.build_worn_icon(default_layer = WRISTS_LAYER, default_icon_file = 'sandcode/icons/mob/clothing/wrists.dmi')
|
||||
wrists_overlay = overlays_standing[WRISTS_LAYER]
|
||||
if(OFFSET_WRISTS in dna.species.offset_features)
|
||||
wrists_overlay.pixel_x += dna.species.offset_features[OFFSET_WRISTS][1]
|
||||
wrists_overlay.pixel_y += dna.species.offset_features[OFFSET_WRISTS][2]
|
||||
overlays_standing[WRISTS_LAYER] = wrists_overlay
|
||||
apply_overlay(WRISTS_LAYER)
|
||||
//
|
||||
|
||||
/mob/living/carbon/human/update_inv_glasses()
|
||||
remove_overlay(GLASSES_LAYER)
|
||||
@@ -236,13 +415,13 @@ There are several things that need to be remembered:
|
||||
|
||||
|
||||
/mob/living/carbon/human/update_inv_ears()
|
||||
remove_overlay(EARS_LAYER)
|
||||
remove_overlay(EAR_LEFT_LAYER)
|
||||
|
||||
if(!get_bodypart(BODY_ZONE_HEAD)) //decapitated
|
||||
return
|
||||
|
||||
if(client && hud_used)
|
||||
var/obj/screen/inventory/inv = hud_used.inv_slots[SLOT_EARS]
|
||||
var/obj/screen/inventory/inv = hud_used.inv_slots[SLOT_EARS_LEFT]
|
||||
inv.update_icon()
|
||||
|
||||
if(ears)
|
||||
@@ -252,14 +431,38 @@ There are several things that need to be remembered:
|
||||
client.screen += ears //add it to the client's screen
|
||||
update_observer_view(ears,1)
|
||||
|
||||
overlays_standing[EARS_LAYER] = ears.build_worn_icon(default_layer = EARS_LAYER, default_icon_file = 'icons/mob/ears.dmi')
|
||||
var/mutable_appearance/ears_overlay = overlays_standing[EARS_LAYER]
|
||||
overlays_standing[EAR_LEFT_LAYER] = ears.build_worn_icon(default_layer = EAR_LEFT_LAYER, default_icon_file = 'sandcode/icons/mob/clothing/ears.dmi', use_mob_overlay_icon = FALSE)
|
||||
var/mutable_appearance/ears_overlay = overlays_standing[EAR_LEFT_LAYER]
|
||||
if(OFFSET_EARS in dna.species.offset_features)
|
||||
ears_overlay.pixel_x += dna.species.offset_features[OFFSET_EARS][1]
|
||||
ears_overlay.pixel_y += dna.species.offset_features[OFFSET_EARS][2]
|
||||
overlays_standing[EARS_LAYER] = ears_overlay
|
||||
apply_overlay(EARS_LAYER)
|
||||
overlays_standing[EAR_LEFT_LAYER] = ears_overlay
|
||||
apply_overlay(EAR_LEFT_LAYER)
|
||||
|
||||
/mob/living/carbon/human/update_inv_ears_extra()
|
||||
remove_overlay(EAR_RIGHT_LAYER)
|
||||
|
||||
if(!get_bodypart(BODY_ZONE_HEAD)) //decapitated
|
||||
return
|
||||
|
||||
if(client && hud_used)
|
||||
var/obj/screen/inventory/inv = hud_used.inv_slots[SLOT_EARS_RIGHT]
|
||||
inv.update_icon()
|
||||
|
||||
if(ears_extra)
|
||||
ears_extra.screen_loc = ui_ears_extra //move the item to the appropriate screen loc
|
||||
if(client && hud_used && hud_used.hud_shown && hud_used.extra_shown)
|
||||
if(hud_used.inventory_shown) //if the inventory is open
|
||||
client.screen += ears_extra //add it to the client's screen
|
||||
update_observer_view(ears_extra,1)
|
||||
|
||||
overlays_standing[EAR_RIGHT_LAYER] = ears_extra.build_worn_icon(default_layer = EAR_RIGHT_LAYER, default_icon_file = 'sandcode/icons/mob/clothing/ears_extra.dmi', use_mob_overlay_icon = FALSE)
|
||||
var/mutable_appearance/ears_overlay = overlays_standing[EAR_RIGHT_LAYER]
|
||||
if(OFFSET_EARS in dna.species.offset_features)
|
||||
ears_overlay.pixel_x += dna.species.offset_features[OFFSET_EARS][1]
|
||||
ears_overlay.pixel_y += dna.species.offset_features[OFFSET_EARS][2]
|
||||
overlays_standing[EAR_RIGHT_LAYER] = ears_overlay
|
||||
apply_overlay(EAR_RIGHT_LAYER)
|
||||
|
||||
/mob/living/carbon/human/update_inv_shoes()
|
||||
remove_overlay(SHOES_LAYER)
|
||||
|
||||
@@ -34,6 +34,20 @@
|
||||
/mob/proc/update_inv_w_uniform()
|
||||
return
|
||||
|
||||
//skyrat edit
|
||||
/mob/proc/update_inv_w_underwear()
|
||||
return
|
||||
|
||||
/mob/proc/update_inv_w_socks()
|
||||
return
|
||||
|
||||
/mob/proc/update_inv_w_shirt()
|
||||
return
|
||||
|
||||
/mob/proc/update_inv_wrists()
|
||||
return
|
||||
//
|
||||
|
||||
/mob/proc/update_inv_belt()
|
||||
return
|
||||
|
||||
@@ -67,5 +81,10 @@
|
||||
/mob/proc/update_inv_pockets()
|
||||
return
|
||||
|
||||
//skyrat edit
|
||||
/mob/proc/update_inv_ears()
|
||||
return
|
||||
return
|
||||
|
||||
/mob/proc/update_inv_ears_extra()
|
||||
return
|
||||
//
|
||||
|
||||
@@ -53,7 +53,7 @@ It is possible to destroy the net by the occupant or someone else.
|
||||
if(ishuman(affecting))
|
||||
var/mob/living/carbon/human/H = affecting
|
||||
for(var/obj/item/W in H)
|
||||
if(W == H.w_uniform || W == H.shoes)
|
||||
if(W == H.w_uniform || W == H.shoes || W == H.w_underwear) //skyrat edit
|
||||
continue//So all they're left with are shoes and uniform.
|
||||
H.dropItemToGround(W)
|
||||
H.dna.species.give_important_for_life(H) // After we remove items, at least give them what they need to live.
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
desc = "A miniature battery for an energy weapon."
|
||||
icon = 'icons/obj/ammo.dmi'
|
||||
icon_state = "mws_batt"
|
||||
slot_flags = SLOT_BELT | SLOT_EARS
|
||||
slot_flags = SLOT_BELT | SLOT_EARS_LEFT | SLOT_EARS_RIGHT //skyrat edit
|
||||
throwforce = 1
|
||||
|
||||
caliber = "mws"
|
||||
@@ -113,4 +113,4 @@
|
||||
name = "'MWS' microbattery - ION"
|
||||
type_color = "#d084d6"
|
||||
type_name = "<span class='ion'>ION</span>"
|
||||
projectile_type = /obj/item/projectile/ion
|
||||
projectile_type = /obj/item/projectile/ion
|
||||
|
||||
@@ -39,6 +39,24 @@
|
||||
SEND_SIGNAL(cleaned_human.w_uniform, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_WEAK)
|
||||
cleaned_human.w_uniform.clean_blood()
|
||||
cleaned_human.update_inv_w_uniform()
|
||||
//skyrat edit
|
||||
else if(cleaned_human.w_underwear)
|
||||
SEND_SIGNAL(cleaned_human.w_underwear, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_WEAK)
|
||||
cleaned_human.w_underwear.clean_blood()
|
||||
cleaned_human.update_inv_w_underwear()
|
||||
else if(cleaned_human.w_socks)
|
||||
SEND_SIGNAL(cleaned_human.w_socks, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_WEAK)
|
||||
cleaned_human.w_socks.clean_blood()
|
||||
cleaned_human.update_inv_w_socks()
|
||||
else if(cleaned_human.w_shirt)
|
||||
SEND_SIGNAL(cleaned_human.w_shirt, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_WEAK)
|
||||
cleaned_human.w_shirt.clean_blood()
|
||||
cleaned_human.update_inv_w_shirt()
|
||||
else if(cleaned_human.wrists)
|
||||
SEND_SIGNAL(cleaned_human.wrists, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_WEAK)
|
||||
cleaned_human.wrists.clean_blood()
|
||||
cleaned_human.update_inv_wrists()
|
||||
//
|
||||
if(cleaned_human.shoes)
|
||||
SEND_SIGNAL(cleaned_human.shoes, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_WEAK)
|
||||
cleaned_human.shoes.clean_blood()
|
||||
|
||||
@@ -304,11 +304,12 @@
|
||||
SLOT_W_UNIFORM, SLOT_WEAR_SUIT,\
|
||||
SLOT_WEAR_MASK, SLOT_HEAD, SLOT_NECK,\
|
||||
SLOT_SHOES, SLOT_GLOVES,\
|
||||
SLOT_EARS, SLOT_GLASSES,\
|
||||
SLOT_EARS_LEFT, SLOT_EARS_RIGHT,\
|
||||
SLOT_GLASSES,\
|
||||
SLOT_BELT, SLOT_S_STORE,\
|
||||
SLOT_L_STORE, SLOT_R_STORE,\
|
||||
SLOT_GENERC_DEXTROUS_STORAGE
|
||||
)
|
||||
) //skyrat edit
|
||||
container_flags = APTFT_ALTCLICK|APTFT_VERB
|
||||
container_HP = 1
|
||||
|
||||
|
||||
@@ -269,6 +269,14 @@
|
||||
|
||||
if(ishuman(src))
|
||||
var/mob/living/carbon/human/H = src
|
||||
//skyrat edit
|
||||
if(H.w_shirt)
|
||||
H.update_inv_w_shirt()
|
||||
if(H.w_socks)
|
||||
H.update_inv_w_socks()
|
||||
if(H.w_underwear)
|
||||
H.update_inv_w_underwear()
|
||||
//
|
||||
if(H.w_uniform)
|
||||
H.update_inv_w_uniform()
|
||||
if(H.shoes)
|
||||
@@ -290,4 +298,4 @@
|
||||
. |= HAND_LEFT
|
||||
if(ARM_RIGHT)
|
||||
. |= HAND_RIGHT
|
||||
. |= L.body_part
|
||||
. |= L.body_part
|
||||
|
||||
@@ -131,7 +131,7 @@
|
||||
eyesmouth_covered |= I.flags_cover
|
||||
if(ishuman(C))
|
||||
var/mob/living/carbon/human/H = C
|
||||
for(var/obj/item/I in list(H.wear_suit, H.w_uniform, H.shoes, H.belt, H.gloves, H.glasses, H.ears))
|
||||
for(var/obj/item/I in list(H.wear_suit, H.w_uniform, H.w_underwear, H.w_socks, H.w_shirt, H.shoes, H.belt, H.gloves, H.wrists, H.glasses, H.ears, H.ears_extra)) //skyrat edit
|
||||
covered_locations |= I.body_parts_covered
|
||||
face_covered |= I.flags_inv
|
||||
eyesmouth_covered |= I.flags_cover
|
||||
|
||||
|
Before Width: | Height: | Size: 780 B After Width: | Height: | Size: 886 B |
@@ -67,6 +67,11 @@ GLOBAL_LIST_EMPTY(loadout_whitelist_ids)
|
||||
|
||||
var/restricted_desc
|
||||
|
||||
//skyrat edit
|
||||
var/has_colors = FALSE
|
||||
var/color = "#FFFFFF"
|
||||
//
|
||||
|
||||
/datum/gear/New()
|
||||
if(isnull(donoritem))
|
||||
if(donator_group_id || ckeywhitelist)
|
||||
|
||||
@@ -15,10 +15,22 @@
|
||||
//More slots in humans.
|
||||
if(ears)
|
||||
add_screams(ears.alternate_screams)
|
||||
//skyrat edit
|
||||
if(ears_extra)
|
||||
add_screams(ears_extra.alternate_screams)
|
||||
//
|
||||
if(wear_suit)
|
||||
add_screams(wear_suit.alternate_screams)
|
||||
if(w_uniform)
|
||||
add_screams(w_uniform.alternate_screams)
|
||||
//skyrat edit
|
||||
if(w_underwear)
|
||||
add_screams(w_underwear.alternate_screams)
|
||||
if(w_socks)
|
||||
add_screams(w_socks.alternate_screams)
|
||||
if(w_shirt)
|
||||
add_screams(w_shirt.alternate_screams)
|
||||
//
|
||||
if(glasses)
|
||||
add_screams(glasses.alternate_screams)
|
||||
if(gloves)
|
||||
@@ -42,4 +54,4 @@
|
||||
|
||||
/mob/living/proc/clear_screams()
|
||||
LAZYINITLIST(alternate_screams)
|
||||
LAZYCLEARLIST(alternate_screams)
|
||||
LAZYCLEARLIST(alternate_screams)
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
/obj/item/radio/headset
|
||||
slot_flags = ITEM_SLOT_EARS
|
||||
@@ -0,0 +1,2 @@
|
||||
/obj/item
|
||||
hide_underwear_examine = TRUE
|
||||
@@ -0,0 +1,138 @@
|
||||
/datum/gear/underwear
|
||||
name = "Briefs"
|
||||
category = LOADOUT_CATEGORY_GENERAL_UNDER
|
||||
subcategory = LOADOUT_SUBCATEGORY_UNDERWEAR
|
||||
slot = SLOT_W_UNDERWEAR
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/briefs
|
||||
cost = 0
|
||||
|
||||
/datum/gear/underwear/jockstrap
|
||||
name = "Jockstrap"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/briefs/jockstrap
|
||||
|
||||
/datum/gear/underwear/mankini
|
||||
name = "Mankini"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/briefs/mankini
|
||||
|
||||
/datum/gear/underwear/boxers
|
||||
name = "Boxers"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/briefs/boxers
|
||||
|
||||
/datum/gear/underwear/boxers/heart
|
||||
name = "Heart Boxers"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/briefs/boxers/heart
|
||||
|
||||
/datum/gear/underwear/boxers/uk
|
||||
name = "UK Boxers"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/briefs/boxers/uk
|
||||
|
||||
/datum/gear/underwear/boxers/usa
|
||||
name = "USA Boxers"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/briefs/boxers/usa
|
||||
|
||||
/datum/gear/underwear/boxers/commie
|
||||
name = "Heart Boxers"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/briefs/boxers/commie
|
||||
|
||||
/datum/gear/underwear/boxers/striped
|
||||
name = "Striped Boxers"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/briefs/boxers/striped
|
||||
|
||||
/datum/gear/underwear/boxers/bee_shorts
|
||||
name = "Bee Shorts"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/briefs/boxers/bee_shorts
|
||||
|
||||
/datum/gear/underwear/boxers/boxer_briefs
|
||||
name = "Boxer Briefs"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/briefs/boxer_briefs
|
||||
|
||||
/datum/gear/underwear/boxers/panties
|
||||
name = "Panties"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/briefs/panties
|
||||
|
||||
/datum/gear/underwear/boxers/panties/alt
|
||||
name = "Panties (alt)"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/briefs/panties/alt
|
||||
|
||||
/datum/gear/underwear/boxers/panties/slim
|
||||
name = "Slim Panties"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/briefs/panties/slim
|
||||
|
||||
/datum/gear/underwear/boxers/panties/thin
|
||||
name = "Thin Panties"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/briefs/panties/thin
|
||||
|
||||
/datum/gear/underwear/boxers/panties/neko
|
||||
name = "Neko Panties"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/briefs/panties/neko
|
||||
|
||||
/datum/gear/underwear/boxers/panties/thong
|
||||
name = "Thong"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/briefs/panties/thong
|
||||
|
||||
/datum/gear/underwear/boxers/panties/thong/babydoll
|
||||
name = "Babydoll Thong"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/briefs/panties/thong/babydoll
|
||||
|
||||
/datum/gear/underwear/boxers/panties/swimming
|
||||
name = "Swimming Panties"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/briefs/panties/swimming
|
||||
|
||||
/datum/gear/underwear/boxers/panties/kinky
|
||||
name = "Kinky Panties"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/briefs/panties/kinky
|
||||
|
||||
/datum/gear/underwear/boxers/panties/beekini
|
||||
name = "Bee-kini Panties"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/briefs/panties/beekini
|
||||
|
||||
/datum/gear/underwear/boxers/panties/usa
|
||||
name = "USA Panties"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/briefs/panties/usa
|
||||
|
||||
/datum/gear/underwear/boxers/panties/commie
|
||||
name = "Commie Panties"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/briefs/panties/commie
|
||||
|
||||
/datum/gear/underwear/boxers/panties/uk
|
||||
name = "UK Panties"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/briefs/panties/uk
|
||||
|
||||
/datum/gear/underwear/boxers/panties/striped
|
||||
name = "Striped Panties"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/briefs/panties/striped
|
||||
|
||||
/datum/gear/underwear/boxers/panties/fishnet
|
||||
name = "Fishnet Panties"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/briefs/panties/fishnet
|
||||
|
||||
/datum/gear/underwear/boxers/long
|
||||
name = "Long Boxers"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/briefs/boxers/long
|
||||
@@ -0,0 +1,378 @@
|
||||
/datum/gear/shirt
|
||||
name = "Shirt"
|
||||
category = LOADOUT_CATEGORY_GENERAL_UNDER
|
||||
subcategory = LOADOUT_SUBCATEGORY_SHIRT
|
||||
slot = SLOT_W_SHIRT
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt
|
||||
cost = 0
|
||||
|
||||
/datum/gear/shirt/bra
|
||||
name = "Bra"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/bra
|
||||
|
||||
/datum/gear/shirt/bra/alt
|
||||
name = "Bra (alt)"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/bra/alt
|
||||
|
||||
/datum/gear/shirt/bra/thin
|
||||
name = "Thin Bra"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/bra/thin
|
||||
|
||||
/datum/gear/shirt/bra/sports
|
||||
name = "Sports Bra"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/bra/sports
|
||||
|
||||
/datum/gear/shirt/bra/sports/alt
|
||||
name = "Sports Bra (alt)"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/bra/sports/alt
|
||||
|
||||
/datum/gear/shirt/bra/strapless
|
||||
name = "Strapless Bra"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/bra/strapless
|
||||
|
||||
/datum/gear/shirt/bra/strapless/alt
|
||||
name = "Strapless Bra (alt)"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/bra/strapless/alt
|
||||
|
||||
/datum/gear/shirt/bra/halterneck
|
||||
name = "Halterneck Bra"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/bra/halterneck
|
||||
|
||||
/datum/gear/shirt/bra/neko
|
||||
name = "Neko Bra"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/bra/neko
|
||||
|
||||
/datum/gear/shirt/bra/swimming
|
||||
name = "Swimming Bra"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/bra/swimming
|
||||
|
||||
/datum/gear/shirt/bra/swimming/alt
|
||||
name = "Swimming Bra (alt)"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/bra/swimming/alt
|
||||
|
||||
/datum/gear/shirt/bra/tubetop
|
||||
name = "Tubetop Bra"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/bra/tubetop
|
||||
|
||||
/datum/gear/shirt/bra/babydoll
|
||||
name = "Babydoll Bra"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/bra/babydoll
|
||||
|
||||
/datum/gear/shirt/bra/kinky
|
||||
name = "Kinky Bra"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/bra/kinky
|
||||
|
||||
/datum/gear/shirt/bra/beekini
|
||||
name = "Beekini Bra"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/bra/beekini
|
||||
|
||||
/datum/gear/shirt/bra/usa
|
||||
name = "USA Bra"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/bra/usa
|
||||
|
||||
/datum/gear/shirt/bra/commie
|
||||
name = "Commie Bra"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/bra/commie
|
||||
|
||||
/datum/gear/shirt/bra/uk
|
||||
name = "UK Bra"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/bra/uk
|
||||
|
||||
/datum/gear/shirt/bra/striped
|
||||
name = "Striped Bra"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/bra/striped
|
||||
|
||||
/datum/gear/shirt/bra/bikini
|
||||
name = "Bikini Bra"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/bra/bikini
|
||||
|
||||
/datum/gear/shirt/bra/bikini/blue
|
||||
name = "Bikini Bra (Blue)"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/bra/bikini/blue
|
||||
|
||||
/datum/gear/shirt/bra/bikini/black
|
||||
name = "Bikini Bra (Black)"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/bra/bikini/black
|
||||
|
||||
/datum/gear/shirt/bra/fishnet
|
||||
name = "Fishnet Bra"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/bra/fishnet
|
||||
|
||||
/datum/gear/shirt/bra/fishnet/sleeves
|
||||
name = "Sleeved Fishnet Bra"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/bra/fishnet/sleeves
|
||||
|
||||
/datum/gear/shirt/bra/fishnet/sleeves/gloves
|
||||
name = "Sleeved & Gloved Fishnet Bra"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/bra/fishnet/sleeves/gloves
|
||||
|
||||
/datum/gear/shirt/bra/bikini
|
||||
name = "Bikini Bra"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/bra/bikini
|
||||
|
||||
/datum/gear/shirt/shortsleeve
|
||||
name = "Shortsleeved Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/shortsleeve
|
||||
|
||||
/datum/gear/shirt/polo
|
||||
name = "Polo Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/polo
|
||||
|
||||
/datum/gear/shirt/tanktop
|
||||
name = "Tanktop Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/tanktop
|
||||
|
||||
/datum/gear/shirt/tanktop/alt
|
||||
name = "Tanktop Shirt (alt)"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/tanktop/alt
|
||||
|
||||
/datum/gear/shirt/tanktop/striped
|
||||
name = "Striped Tanktop Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/tanktop/striped
|
||||
|
||||
/datum/gear/shirt/tanktop/rainbow
|
||||
name = "Rainbow Tanktop Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/tanktop/rainbow
|
||||
|
||||
/datum/gear/shirt/tanktop/sun
|
||||
name = "Sun Tanktop Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/tanktop/sun
|
||||
|
||||
/datum/gear/shirt/tanktop/midriff
|
||||
name = "Midriff Tanktop Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/tanktop/midriff
|
||||
|
||||
/datum/gear/shirt/tanktop/midriff/alt
|
||||
name = "Midriff Tanktop Shirt (alt)"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/tanktop/midriff/alt
|
||||
|
||||
/datum/gear/shirt/lover
|
||||
name = "Lover Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/lover
|
||||
|
||||
/datum/gear/shirt/ian
|
||||
name = "Ian Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/ian
|
||||
|
||||
/datum/gear/shirt/uk
|
||||
name = "UK Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/uk
|
||||
|
||||
/datum/gear/shirt/ilovent
|
||||
name = "I Love NT Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/ilovent
|
||||
|
||||
/datum/gear/shirt/peace
|
||||
name = "Peace Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/peace
|
||||
|
||||
/datum/gear/shirt/band
|
||||
name = "Band Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/band
|
||||
|
||||
/datum/gear/shirt/pogoman
|
||||
name = "Pogoman Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/pogoman
|
||||
|
||||
/datum/gear/shirt/lover
|
||||
name = "Matroska Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/matroska
|
||||
|
||||
/datum/gear/shirt/sportgreen
|
||||
name = "Green Sport Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/sportgreen
|
||||
|
||||
/datum/gear/shirt/sportblue
|
||||
name = "Blue Sport Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/sportblue
|
||||
|
||||
/datum/gear/shirt/sportred
|
||||
name = "Red Sport Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/sportred
|
||||
|
||||
/datum/gear/shirt/ss13
|
||||
name = "SS13 Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/ss13
|
||||
|
||||
/datum/gear/shirt/question
|
||||
name = "Question Mark Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/question
|
||||
|
||||
/datum/gear/shirt/skull
|
||||
name = "Skull Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/skull
|
||||
|
||||
/datum/gear/shirt/commie
|
||||
name = "Commie Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/commie
|
||||
|
||||
/datum/gear/shirt/striped
|
||||
name = "Striped Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/striped
|
||||
|
||||
/datum/gear/shirt/meat
|
||||
name = "Meat Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/meat
|
||||
|
||||
/datum/gear/shirt/tiedye
|
||||
name = "Tie Dye Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/tiedye
|
||||
|
||||
/datum/gear/shirt/redjersey
|
||||
name = "Red Jersey Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/redjersey
|
||||
|
||||
/datum/gear/shirt/bluejersey
|
||||
name = "Blue Jersey Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/bluejersey
|
||||
|
||||
/datum/gear/shirt/bowlingred
|
||||
name = "Red Bowling Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/bowling
|
||||
|
||||
/datum/gear/shirt/bowlingpink
|
||||
name = "Pink Bowling Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/bowling/pink
|
||||
|
||||
/datum/gear/shirt/bowlingcyan
|
||||
name = "Cyan Bowling Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/bowling/cyan
|
||||
|
||||
/datum/gear/shirt/bowlinggrey
|
||||
name = "Grey Bowling Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/bowling/grey
|
||||
|
||||
/datum/gear/shirt/alien
|
||||
name = "Postal Dude Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/alien
|
||||
|
||||
/datum/gear/shirt/clown
|
||||
name = "Clown Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/clown
|
||||
|
||||
/datum/gear/shirt/bee
|
||||
name = "Bee Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/bee
|
||||
|
||||
/datum/gear/shirt/long
|
||||
name = "Longsleeved Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/long
|
||||
|
||||
/datum/gear/shirt/long/striped
|
||||
name = "Striped Longsleeved Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/long/striped
|
||||
|
||||
/datum/gear/shirt/long/striped/blue
|
||||
name = "Blue Striped Longsleeved Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/long/striped/blue
|
||||
|
||||
/datum/gear/shirt/usa
|
||||
name = "USA Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/usa
|
||||
|
||||
/datum/gear/shirt/cowboy
|
||||
name = "Black Cowboy Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/cowboy
|
||||
|
||||
/datum/gear/shirt/cowboy/white
|
||||
name = "White Cowboy Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/cowboy/white
|
||||
|
||||
/datum/gear/shirt/cowboy/navy
|
||||
name = "Navy Cowboy Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/cowboy/navy
|
||||
|
||||
/datum/gear/shirt/cowboy/red
|
||||
name = "Red Cowboy Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/cowboy/red
|
||||
|
||||
/datum/gear/shirt/cowboy/short
|
||||
name = "Black Shortsleeved Cowboy Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/cowboy/short
|
||||
|
||||
/datum/gear/shirt/cowboy/short/white
|
||||
name = "White Shortsleeved Cowboy Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/cowboy/short/white
|
||||
|
||||
/datum/gear/shirt/cowboy/short/navy
|
||||
name = "Navy Shortsleeved Cowboy Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/cowboy/short/navy
|
||||
|
||||
/datum/gear/shirt/cowboy/short/red
|
||||
name = "Red Shortsleeved Cowboy Shirt"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/shirt/cowboy/short/red
|
||||
@@ -0,0 +1,188 @@
|
||||
/datum/gear/socks
|
||||
name = "Socks"
|
||||
category = LOADOUT_CATEGORY_GENERAL_UNDER
|
||||
subcategory = LOADOUT_SUBCATEGORY_SOCKS
|
||||
slot = SLOT_W_SOCKS
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/socks
|
||||
cost = 0
|
||||
|
||||
/datum/gear/socks/bee
|
||||
name = "Bee Socks"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/socks/bee
|
||||
|
||||
/datum/gear/socks/candycane
|
||||
name = "Candycane Socks"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/socks/candycane
|
||||
|
||||
/datum/gear/socks/candycane
|
||||
name = "Green Candycane Socks"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/socks/candycane/green
|
||||
|
||||
/datum/gear/socks/christmas
|
||||
name = "Christmas Socks"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/socks/christmas
|
||||
|
||||
/datum/gear/socks/knee
|
||||
name = "Knee Socks"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/socks/knee
|
||||
|
||||
/datum/gear/socks/knee/bee
|
||||
name = "Bee Knee Socks"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/socks/knee/bee
|
||||
|
||||
/datum/gear/socks/knee/candycane
|
||||
name = "Candycane Knee Socks"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/socks/knee/candycane
|
||||
|
||||
/datum/gear/socks/knee/candycane/green
|
||||
name = "Green Candycane Socks"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/socks/knee/candycane/green
|
||||
|
||||
/datum/gear/socks/knee/commie
|
||||
name = "Commie Knee Socks"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/socks/knee/commie
|
||||
|
||||
/datum/gear/socks/knee/rainbow
|
||||
name = "Rainbow Knee Socks"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/socks/knee/rainbow
|
||||
|
||||
/datum/gear/socks/knee/striped
|
||||
name = "Striped Knee Socks"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/socks/knee/striped
|
||||
|
||||
/datum/gear/socks/knee/thin
|
||||
name = "Thin Knee Socks"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/socks/knee/thin
|
||||
|
||||
/datum/gear/socks/knee/uk
|
||||
name = "UK Knee Socks"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/socks/knee/uk
|
||||
|
||||
/datum/gear/socks/pantyhose
|
||||
name = "Pantyhose"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/socks/pantyhose
|
||||
|
||||
/datum/gear/socks/short
|
||||
name = "Short Socks"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/socks/short
|
||||
|
||||
/datum/gear/socks/thigh
|
||||
name = "Thigh High Socks"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/socks/thigh
|
||||
|
||||
/datum/gear/socks/thigh/bee
|
||||
name = "Thigh High Bee Socks"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/socks/thigh/bee
|
||||
|
||||
/datum/gear/socks/thigh/candycane
|
||||
name = "Thigh High Candycane Socks"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/socks/thigh/candycane
|
||||
|
||||
/datum/gear/socks/thigh/candycane/green
|
||||
name = "Thigh High Green Candycane Socks"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/socks/thigh/candycane/green
|
||||
|
||||
/datum/gear/socks/thigh/christmas
|
||||
name = "Thigh High Christmas Socks"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/socks/thigh/christmas
|
||||
|
||||
/datum/gear/socks/thigh/commie
|
||||
name = "Thigh High Commie Socks"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/socks/thigh/commie
|
||||
|
||||
/datum/gear/socks/thigh/rainbow
|
||||
name = "Thigh High Rainbow Socks"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/socks/thigh/rainbow
|
||||
|
||||
/datum/gear/socks/thigh/stockings
|
||||
name = "Stockings"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/socks/thigh/stockings
|
||||
|
||||
/datum/gear/socks/thigh/stockings/blue
|
||||
name = "Blue Stockings"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/socks/thigh/stockings/blue
|
||||
|
||||
/datum/gear/socks/thigh/stockings/cyan
|
||||
name = "Cyan Stockings"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/socks/thigh/stockings/cyan
|
||||
|
||||
/datum/gear/socks/thigh/stockings/fishnet
|
||||
name = "Fishnet Stockings"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/socks/thigh/stockings/fishnet
|
||||
|
||||
/datum/gear/socks/thigh/stockings/green
|
||||
name = "Green Stockings"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/socks/thigh/stockings/green
|
||||
|
||||
|
||||
/datum/gear/socks/thigh/stockings/orange
|
||||
name = "Orange Stockings"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/socks/thigh/stockings/orange
|
||||
|
||||
|
||||
/datum/gear/socks/thigh/stockings/pinkish
|
||||
name = "Pinkish Stockings"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/socks/thigh/stockings/pink2
|
||||
|
||||
|
||||
/datum/gear/socks/thigh/stockings/purple
|
||||
name = "Purple Stockings"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/socks/thigh/stockings/purple
|
||||
|
||||
/datum/gear/socks/thigh/stockings
|
||||
name = "Stockings"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/socks/thigh/stockings/yellow
|
||||
|
||||
|
||||
/datum/gear/socks/thigh/striped
|
||||
name = "Thigh High StripedSocks"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/socks/thigh/striped
|
||||
|
||||
|
||||
/datum/gear/socks/thigh/thin
|
||||
name = "Thigh High Thin Socks"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/socks/thigh/thin
|
||||
|
||||
/datum/gear/socks/thigh/uk
|
||||
name = "Thigh High UK Stockings"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/socks/thigh/uk
|
||||
|
||||
/datum/gear/socks/thigh/usa
|
||||
name = "Thigh High USA Stockings"
|
||||
has_colors = TRUE
|
||||
path = /obj/item/clothing/underwear/socks/thigh/usa
|
||||
@@ -0,0 +1,2 @@
|
||||
/obj/item/clothing/under
|
||||
hide_underwear_examine = TRUE
|
||||
@@ -0,0 +1,24 @@
|
||||
//Fuck it we making underwear actual items
|
||||
/obj/item/clothing/underwear
|
||||
name = "Underwear"
|
||||
desc = "If you're reading this, something went wrong."
|
||||
icon = 'sandcode/icons/mob/clothing/underwear.dmi' //if someone is willing to make proper inventory sprites that'd be very cash money
|
||||
mob_overlay_icon = 'sandcode/icons/mob/clothing/underwear.dmi'
|
||||
anthro_mob_worn_overlay = 'sandcode/icons/mob/clothing/underwear_digi.dmi'
|
||||
body_parts_covered = GROIN
|
||||
permeability_coefficient = 0.9
|
||||
block_priority = BLOCK_PRIORITY_UNDERWEAR
|
||||
slot_flags = ITEM_SLOT_UNDERWEAR
|
||||
armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0)
|
||||
mutantrace_variation = NONE
|
||||
hide_underwear_examine = FALSE
|
||||
var/under_type = /obj/item/clothing/underwear //i don't know what i'm gonna use this for
|
||||
var/fitted = FEMALE_UNIFORM_TOP
|
||||
var/has_colors = TRUE
|
||||
|
||||
//Proc to check if underwear is hidden
|
||||
/mob/living/carbon/human/proc/underwear_hidden()
|
||||
for(var/obj/item/I in list(w_uniform, wear_suit, shoes))
|
||||
if(istype(I) && ((I.hide_underwear_examine) || (I.flags_inv & HIDEUNDERWEAR)))
|
||||
return TRUE
|
||||
return FALSE
|
||||
@@ -0,0 +1,125 @@
|
||||
/obj/item/clothing/underwear/briefs
|
||||
name = "briefs"
|
||||
desc = "Not going commando."
|
||||
icon_state = "briefs"
|
||||
under_type = /obj/item/clothing/underwear/briefs
|
||||
body_parts_covered = GROIN
|
||||
slot_flags = ITEM_SLOT_UNDERWEAR
|
||||
|
||||
/obj/item/clothing/underwear/briefs/jockstrap
|
||||
name = "jockstrap"
|
||||
icon_state = "jockstrap"
|
||||
|
||||
/obj/item/clothing/underwear/briefs/mankini
|
||||
name = "mankini"
|
||||
desc = "Kinky."
|
||||
icon_state = "mankini"
|
||||
|
||||
/obj/item/clothing/underwear/briefs/boxers
|
||||
name = "boxers"
|
||||
icon_state = "boxers"
|
||||
mutantrace_variation = STYLE_DIGITIGRADE
|
||||
|
||||
/obj/item/clothing/underwear/briefs/boxers/heart
|
||||
name = "heart boxers"
|
||||
icon_state = "boxers_heart"
|
||||
|
||||
/obj/item/clothing/underwear/briefs/boxers/uk
|
||||
name = "uk boxers"
|
||||
desc = "You got a loicense for that dong?"
|
||||
icon_state = "boxers_uk"
|
||||
|
||||
/obj/item/clothing/underwear/briefs/boxers/usa
|
||||
name = "usa boxers"
|
||||
desc = "Not as free as going commando."
|
||||
icon_state = "boxers_assblastusa"
|
||||
|
||||
/obj/item/clothing/underwear/briefs/boxers/commie
|
||||
name = "commie boxers"
|
||||
desc = "Seize the means of reproduction."
|
||||
icon_state = "boxers_commie"
|
||||
|
||||
/obj/item/clothing/underwear/briefs/boxers/striped
|
||||
name = "striped boxers"
|
||||
icon_state = "boxers_striped"
|
||||
|
||||
/obj/item/clothing/underwear/briefs/boxers/bee_shorts
|
||||
name = "bee shorts"
|
||||
desc = "It's hip to..."
|
||||
icon_state = "bee_shorts"
|
||||
|
||||
/obj/item/clothing/underwear/briefs/boxer_briefs //this typepath jesus
|
||||
name = "boxer briefs"
|
||||
icon_state = "boxer_briefs"
|
||||
|
||||
/obj/item/clothing/underwear/briefs/panties
|
||||
name = "panties"
|
||||
desc = "Panties."
|
||||
body_parts_covered = GROIN
|
||||
icon_state = "panties"
|
||||
|
||||
/obj/item/clothing/underwear/briefs/panties/alt
|
||||
name = "panties (alt)"
|
||||
icon_state = "panties_alt"
|
||||
|
||||
/obj/item/clothing/underwear/briefs/panties/slim
|
||||
name = "slim panties"
|
||||
icon_state = "panties_slim"
|
||||
|
||||
/obj/item/clothing/underwear/briefs/panties/thin
|
||||
name = "thin panties"
|
||||
icon_state = "panties_slim"
|
||||
|
||||
/obj/item/clothing/underwear/briefs/panties/neko
|
||||
name = "neko panties"
|
||||
desc = "Favored by cat \"girls\"."
|
||||
icon_state = "panties_neko"
|
||||
|
||||
/obj/item/clothing/underwear/briefs/panties/thong
|
||||
name = "thong"
|
||||
desc = "More revealing than your average panties."
|
||||
icon_state = "thong"
|
||||
|
||||
/obj/item/clothing/underwear/briefs/panties/thong/babydoll
|
||||
name = "babydoll thong"
|
||||
icon_state = "thong_babydoll"
|
||||
|
||||
/obj/item/clothing/underwear/briefs/panties/swimming
|
||||
name = "swimming panties"
|
||||
icon_state = "panties_swimming"
|
||||
|
||||
/obj/item/clothing/underwear/briefs/panties/kinky
|
||||
name = "kinky panties"
|
||||
icon_state = "panties_kinky"
|
||||
|
||||
/obj/item/clothing/underwear/briefs/panties/beekini
|
||||
name = "bee-kini panties"
|
||||
icon_state = "panties_bee-kini"
|
||||
|
||||
/obj/item/clothing/underwear/briefs/panties/usa
|
||||
name = "usa panties"
|
||||
desc = "Not nearly as free as not wearing any."
|
||||
icon_state = "panties_assblastusa"
|
||||
|
||||
/obj/item/clothing/underwear/briefs/panties/commie
|
||||
name = "commie panties"
|
||||
desc = "Seize the means of reproduction."
|
||||
icon_state = "panties_commie"
|
||||
|
||||
/obj/item/clothing/underwear/briefs/panties/uk
|
||||
name = "uk panties"
|
||||
desc = "Insert loicense joke here."
|
||||
icon_state = "panties_uk"
|
||||
|
||||
/obj/item/clothing/underwear/briefs/panties/striped
|
||||
name = "striped panties"
|
||||
icon_state = "panties_striped"
|
||||
|
||||
/obj/item/clothing/underwear/briefs/panties/fishnet
|
||||
name = "fishnet panties"
|
||||
desc = "They don't hide much of anything..."
|
||||
icon_state = "panties_fishnet"
|
||||
|
||||
/obj/item/clothing/underwear/briefs/boxers/long
|
||||
name = "long boxers"
|
||||
icon_state = "boxers_long"
|
||||
@@ -0,0 +1,333 @@
|
||||
/obj/item/clothing/underwear/shirt
|
||||
name = "shirt"
|
||||
desc = "A shirt."
|
||||
icon_state = "undershirt"
|
||||
under_type = /obj/item/clothing/underwear/shirt
|
||||
body_parts_covered = CHEST | ARMS
|
||||
slot_flags = ITEM_SLOT_SHIRT
|
||||
|
||||
/obj/item/clothing/underwear/shirt/bra
|
||||
name = "bra"
|
||||
desc = "A bra."
|
||||
body_parts_covered = CHEST
|
||||
icon_state = "bra"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/bra/alt
|
||||
name = "bra (alt)"
|
||||
icon_state = "bra_alt"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/bra/thin
|
||||
name = "thin bra"
|
||||
icon_state = "bra_thin"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/bra/sports
|
||||
name = "sports bra"
|
||||
icon_state = "bra_sports"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/bra/sports/alt
|
||||
name = "sports bra (alt)"
|
||||
icon_state = "bra_sports_alt"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/bra/strapless
|
||||
name = "strapless bra"
|
||||
icon_state = "bra_strapless"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/bra/strapless/alt
|
||||
name = "strapless bra (alt)"
|
||||
icon_state = "bra_strapless_alt"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/bra/halterneck
|
||||
name = "halterneck bra"
|
||||
icon_state = "bra_halterneck"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/bra/neko
|
||||
name = "neko bra"
|
||||
desc = "Favored by cat \"girls\"."
|
||||
icon_state = "bra_neko"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/bra/swimming
|
||||
name = "swimming bra"
|
||||
icon_state = "bra_swimming"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/bra/swimming/alt
|
||||
name = "swimming bra (alt)"
|
||||
icon_state = "bra_swimming_alt"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/bra/tubetop
|
||||
name = "tubetop bra"
|
||||
icon_state = "bra_tubetop"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/bra/babydoll
|
||||
name = "babydoll"
|
||||
desc = "A babydoll."
|
||||
icon_state = "babydoll"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/bra/kinky
|
||||
name = "kinky bra"
|
||||
desc = "Kinky."
|
||||
icon_state = "bra_kinky"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/bra/beekini
|
||||
name = "bee-kini bra"
|
||||
desc = "Buzz buzz."
|
||||
icon_state = "bra_bee-kini"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/bra/usa
|
||||
name = "usa bra"
|
||||
desc = "Not nearly as free as letting them bounce."
|
||||
icon_state = "bra_assblastusa"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/bra/commie
|
||||
name = "commie bra"
|
||||
desc = "Seize the mammaries of production."
|
||||
icon_state = "bra_commie"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/bra/uk
|
||||
name = "uk bra"
|
||||
desc = "You got a loicense for those tiddies?"
|
||||
icon_state = "bra_uk"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/bra/striped
|
||||
name = "striped bra"
|
||||
icon_state = "bra_striped"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/bra/bikini
|
||||
name = "bikini"
|
||||
desc = "A bikini."
|
||||
body_parts_covered = CHEST | GROIN
|
||||
icon_state = "swimming"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/bra/bikini/blue
|
||||
name = "blue bikini"
|
||||
icon_state = "swimming_blue"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/bra/bikini/red
|
||||
name = "red bikini"
|
||||
icon_state = "swimming_red"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/bra/bikini/black
|
||||
name = "black bikini"
|
||||
icon_state = "swimming_black"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/bra/fishnet
|
||||
name = "fishnet bra"
|
||||
icon_state = "bra_fishnet"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/bra/fishnet/sleeves
|
||||
name = "sleeved fishnet bra"
|
||||
body_parts_covered = CHEST | ARMS
|
||||
icon_state = "bra_fishnet_sleeves"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/bra/fishnet/sleeves/gloves
|
||||
name = "gloved fishnet bra"
|
||||
body_parts_covered = CHEST | ARMS | HANDS
|
||||
icon_state = "bra_fishnet_gloves"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/shortsleeve
|
||||
name = "shortsleeve shirt"
|
||||
body_parts_covered = CHEST
|
||||
icon_state = "undershirt_short"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/polo
|
||||
name = "polo shirt"
|
||||
icon_state = "undershirt_polo"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/tanktop
|
||||
name = "tanktop shirt"
|
||||
body_parts_covered = CHEST
|
||||
icon_state = "undershirt_tanktop"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/tanktop/alt
|
||||
name = "tanktop shirt (alt)"
|
||||
icon_state = "undershirt_tanktop_alt"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/tanktop/striped
|
||||
name = "striped tanktop shirt"
|
||||
icon_state = "undershirt_tanktop_striped"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/tanktop/rainbow
|
||||
name = "rainbow tanktop shirt"
|
||||
icon_state = "undershirt_tanktop_rainbow"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/tanktop/sun
|
||||
name = "sun tanktop shirt"
|
||||
icon_state = "undershirt_tanktop_sun"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/tanktop/fire
|
||||
name = "fire tanktop shirt"
|
||||
icon_state = "undershirt_tanktop_fire"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/tanktop/midriff
|
||||
name = "midriff tanktop shirt"
|
||||
icon_state = "undershirt_tanktop_midriff"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/tanktop/midriff/alt
|
||||
name = "midriff tanktop shirt (alt)"
|
||||
icon_state = "undershirt_tanktop_midriff_alt"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/lover
|
||||
name = "lover shirt"
|
||||
icon_state = "undershirt_lover"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/ian
|
||||
name = "ian shirt"
|
||||
icon_state = "undershirt_ian"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/uk
|
||||
name = "uk shirt"
|
||||
desc = "I'm running out of UK jokes."
|
||||
icon_state = "undershirt_uk"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/ilovent
|
||||
name = "\"I love NT\" shirt"
|
||||
icon_state = "undershirt_ilovent"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/peace
|
||||
name = "peace shirt"
|
||||
icon_state = "undershirt_peace"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/band
|
||||
name = "band shirt"
|
||||
icon_state = "undershirt_band"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/pogoman
|
||||
name = "pogoman shirt"
|
||||
icon_state = "undershirt_pogoman"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/matroska
|
||||
name = "matroska shirt"
|
||||
icon_state = "undershirt_matroska"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/sportgreen
|
||||
name = "green sports shirt"
|
||||
icon_state = "undershirt_sport_green"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/sportred
|
||||
name = "red sports shirt"
|
||||
icon_state = "undershirt_sport_red"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/sportblue
|
||||
name = "blue sports shirt"
|
||||
icon_state = "undershirt_sport_blue"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/ss13
|
||||
name = "SS13 shirt"
|
||||
icon_state = "undershirt_ss13"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/question
|
||||
name = "question shirt"
|
||||
icon_state = "undershirt_question"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/skull
|
||||
name = "skull shirt"
|
||||
icon_state = "undershirt_skull"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/commie
|
||||
name = "commie shirt"
|
||||
icon_state = "undershirt_commie"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/nano
|
||||
name = "NT shirt"
|
||||
icon_state = "undershirt_nano"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/striped
|
||||
name = "striped shirt"
|
||||
icon_state = "undershirt_striped"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/meat
|
||||
name = "meat shirt"
|
||||
icon_state = "undershirt_meat"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/tiedye
|
||||
name = "tiedye shirt"
|
||||
icon_state = "undershirt_tiedye"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/redjersey
|
||||
name = "red jersey shirt"
|
||||
icon_state = "undershirt_redjersey"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/bluejersey
|
||||
name = "blue jersey shirt"
|
||||
icon_state = "undershirt_bluejersey"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/bowling
|
||||
name = "red bowling shirt"
|
||||
icon_state = "undershirt_bowling_red"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/bowling/pink
|
||||
name = "pink bowling shirt"
|
||||
icon_state = "undershirt_bowling_pink"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/bowling/cyan
|
||||
name = "cyan bowling shirt"
|
||||
icon_state = "undershirt_bowling_cyan"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/bowling/grey
|
||||
name = "grey bowling shirt"
|
||||
icon_state = "undershirt_bowling_grey"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/alien
|
||||
name = "alien shirt"
|
||||
desc = "I regret nothing."
|
||||
icon_state = "undershirt_alien"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/clown
|
||||
name = "clown shirt"
|
||||
desc = "HONK!"
|
||||
icon_state = "undershirt_clown"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/bee
|
||||
name = "bee shirt"
|
||||
desc = "Bee yourself!"
|
||||
icon_state = "undershirt_bee"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/long
|
||||
name = "longsleeved shirt"
|
||||
body_parts_covered = CHEST | ARMS
|
||||
icon_state = "undershirt_long"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/long/striped
|
||||
name = "striped longsleeved shirt"
|
||||
icon_state = "undershirt_long_striped"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/long/striped/blue
|
||||
name = "blue striped longsleeved shirt"
|
||||
icon_state = "undershirt_long_striped_blue"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/usa
|
||||
name = "usa shirt"
|
||||
desc = "Freedom and obesity."
|
||||
icon_state = "undershirt_assblastusa"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/cowboy
|
||||
name = "cowboy shirt"
|
||||
desc = "Yee haw."
|
||||
icon_state = "undershirt_cowboy"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/cowboy/white
|
||||
name = "white cowboy shirt"
|
||||
icon_state = "undershirt_cowboy_white"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/cowboy/navy
|
||||
name = "navy cowboy shirt"
|
||||
icon_state = "undershirt_cowboy_navy"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/cowboy/red
|
||||
name = "red cowboy shirt"
|
||||
icon_state = "undershirt_cowboy_red"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/cowboy/short
|
||||
name = "short sleeved cowboy shirt"
|
||||
icon_state = "undershirt_cowboy_short"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/cowboy/short/white
|
||||
name = "short sleeved white cowboy shirt"
|
||||
icon_state = "undershirt_cowboy_short_white"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/cowboy/short/navy
|
||||
name = "short sleeved navy cowboy shirt"
|
||||
icon_state = "undershirt_cowboy_short_navy"
|
||||
|
||||
/obj/item/clothing/underwear/shirt/cowboy/short/red
|
||||
name = "short sleeved red cowboy shirt"
|
||||
icon_state = "undershirt_cowboy_short_red"
|
||||
@@ -0,0 +1,177 @@
|
||||
/obj/item/clothing/underwear/socks
|
||||
name = "socks"
|
||||
desc = "A pair of socks."
|
||||
icon_state = "socks"
|
||||
under_type = /obj/item/clothing/underwear/socks
|
||||
body_parts_covered = FEET
|
||||
slot_flags = ITEM_SLOT_SOCKS
|
||||
|
||||
/obj/item/clothing/underwear/socks/short
|
||||
name = "short socks"
|
||||
icon_state = "socks_short"
|
||||
|
||||
/obj/item/clothing/underwear/socks/bee
|
||||
name = "bee socks"
|
||||
icon_state = "socks_bee"
|
||||
|
||||
/obj/item/clothing/underwear/socks/christmas
|
||||
name = "christmas socks"
|
||||
icon_state = "socks_christmas"
|
||||
|
||||
/obj/item/clothing/underwear/socks/candycane
|
||||
name = "candy cane socks"
|
||||
icon_state = "socks_candycane"
|
||||
|
||||
/obj/item/clothing/underwear/socks/candycane/green
|
||||
name = "green candy cane socks"
|
||||
icon_state = "socks_candycanegreen"
|
||||
|
||||
/obj/item/clothing/underwear/socks/knee
|
||||
name = "knee socks"
|
||||
icon_state = "socks_knee"
|
||||
mutantrace_variation = STYLE_DIGITIGRADE
|
||||
|
||||
/obj/item/clothing/underwear/socks/knee/thin
|
||||
name = "thin knee socks"
|
||||
icon_state = "socks_knee_thin"
|
||||
|
||||
/obj/item/clothing/underwear/socks/knee/rainbow
|
||||
name = "rainbow knee socks"
|
||||
icon_state = "socks_knee_rainbow"
|
||||
|
||||
/obj/item/clothing/underwear/socks/knee/striped
|
||||
name = "striped knee socks"
|
||||
icon_state = "socks_knee_striped"
|
||||
|
||||
/obj/item/clothing/underwear/socks/knee/usa
|
||||
name = "usa knee socks"
|
||||
desc = "I'm running out of america jokes."
|
||||
icon_state = "socks_knee_assblastusa"
|
||||
|
||||
/obj/item/clothing/underwear/socks/knee/uk
|
||||
name = "uk knee socks"
|
||||
desc = "Brexit or something."
|
||||
icon_state = "socks_knee_uk"
|
||||
|
||||
/obj/item/clothing/underwear/socks/knee/commie
|
||||
name = "commie knee socks"
|
||||
desc = "Karl Marx or something."
|
||||
icon_state = "socks_knee_commie"
|
||||
|
||||
/obj/item/clothing/underwear/socks/knee/bee
|
||||
name = "bee knee socks"
|
||||
desc = "<i>You like jazz?</i>"
|
||||
icon_state = "socks_knee_bee"
|
||||
|
||||
/obj/item/clothing/underwear/socks/knee/christmas
|
||||
name = "christmas knee socks"
|
||||
desc = "Jingle bell."
|
||||
icon_state = "socks_knee_christmas"
|
||||
|
||||
/obj/item/clothing/underwear/socks/knee/candycane
|
||||
name = "candy cane knee socks"
|
||||
desc = "Jingle bell."
|
||||
icon_state = "socks_knee_candycane"
|
||||
|
||||
/obj/item/clothing/underwear/socks/knee/candycane/green
|
||||
name = "green candy cane knee socks"
|
||||
desc = "Jingle bell."
|
||||
icon_state = "socks_knee_candycanegreen"
|
||||
|
||||
/obj/item/clothing/underwear/socks/thigh
|
||||
name = "thigh high socks"
|
||||
icon_state = "socks_thigh"
|
||||
mutantrace_variation = STYLE_DIGITIGRADE
|
||||
|
||||
/obj/item/clothing/underwear/socks/thigh/thin
|
||||
name = "thin thigh high socks"
|
||||
icon_state = "socks_thigh_thin"
|
||||
|
||||
/obj/item/clothing/underwear/socks/thigh/rainbow
|
||||
name = "rainbow thigh high socks"
|
||||
icon_state = "socks_thigh_rainbow"
|
||||
|
||||
/obj/item/clothing/underwear/socks/thigh/striped
|
||||
name = "striped thigh high socks"
|
||||
icon_state = "socks_thigh_striped"
|
||||
|
||||
/obj/item/clothing/underwear/socks/thigh/usa
|
||||
name = "usa thigh high socks"
|
||||
desc = "McDonald's or something."
|
||||
icon_state = "socks_thigh_assblastusa"
|
||||
|
||||
/obj/item/clothing/underwear/socks/thigh/uk
|
||||
name = "uk thigh high socks"
|
||||
desc = "Something something british people have bad teeth."
|
||||
icon_state = "socks_thigh_uk"
|
||||
|
||||
/obj/item/clothing/underwear/socks/thigh/commie
|
||||
name = "commie thigh high socks"
|
||||
desc = "Something something the USSR."
|
||||
icon_state = "socks_thigh_commie"
|
||||
|
||||
/obj/item/clothing/underwear/socks/thigh/bee
|
||||
name = "bee thigh high socks"
|
||||
desc = "Bee socks."
|
||||
icon_state = "socks_thigh_bee"
|
||||
|
||||
/obj/item/clothing/underwear/socks/thigh/christmas
|
||||
name = "christmas thigh high socks"
|
||||
desc = "Santa claus or something."
|
||||
icon_state = "socks_thigh_christmas"
|
||||
|
||||
/obj/item/clothing/underwear/socks/thigh/candycane
|
||||
name = "candy cane thigh high socks"
|
||||
desc = "Santa claus or something."
|
||||
icon_state = "socks_thigh_candycane"
|
||||
|
||||
/obj/item/clothing/underwear/socks/thigh/candycane/green
|
||||
name = "green candy cane thigh high socks"
|
||||
desc = "Santa claus or something."
|
||||
icon_state = "socks_thigh_candycanegreen"
|
||||
|
||||
/obj/item/clothing/underwear/socks/thigh/stockings
|
||||
name = "pink stockings"
|
||||
desc = "A pair of stockings."
|
||||
body_parts_covered = LEGS | FEET
|
||||
icon_state = "stockings_lpink"
|
||||
mutantrace_variation = STYLE_DIGITIGRADE
|
||||
|
||||
/obj/item/clothing/underwear/socks/thigh/stockings/fishnet
|
||||
name = "fishnet stockings"
|
||||
icon_state = "stockings_fishnet"
|
||||
|
||||
/obj/item/clothing/underwear/socks/thigh/stockings/purple
|
||||
name = "purple stockings"
|
||||
icon_state = "stockings_purple"
|
||||
|
||||
/obj/item/clothing/underwear/socks/thigh/stockings/green
|
||||
name = "green stockings"
|
||||
icon_state = "stockings_green"
|
||||
|
||||
/obj/item/clothing/underwear/socks/thigh/stockings/cyan
|
||||
name = "cyan stockings"
|
||||
icon_state = "stockings_cyan"
|
||||
|
||||
/obj/item/clothing/underwear/socks/thigh/stockings/orange
|
||||
name = "orange stockings"
|
||||
icon_state = "stockings_orange"
|
||||
|
||||
/obj/item/clothing/underwear/socks/thigh/stockings/yellow
|
||||
name = "yellow stockings"
|
||||
icon_state = "stockings_yellow"
|
||||
|
||||
/obj/item/clothing/underwear/socks/thigh/stockings/pink2
|
||||
name = "deep pink stockings"
|
||||
icon_state = "stockings_dpink"
|
||||
|
||||
/obj/item/clothing/underwear/socks/thigh/stockings/blue
|
||||
name = "blue stockings"
|
||||
icon_state = "stockings_blue"
|
||||
|
||||
/obj/item/clothing/underwear/socks/pantyhose
|
||||
name = "pantyhose"
|
||||
desc = "Pantyhose."
|
||||
body_parts_covered = FEET | LEGS | GROIN
|
||||
icon_state = "socks_pantyhose"
|
||||
mutantrace_variation = STYLE_DIGITIGRADE
|
||||
@@ -0,0 +1,14 @@
|
||||
//wrist items (currently we have none har har)
|
||||
/obj/item/clothing/wrists
|
||||
name = "slap bracelet"
|
||||
desc = "oh no."
|
||||
gender = PLURAL //change this if it is for a single wrist
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
icon = 'sandcode/icons/obj/clothing/wrist.dmi'
|
||||
mob_overlay_icon = 'sandcode/icons/mob/clothing/wrists.dmi'
|
||||
siemens_coefficient = 0.5
|
||||
body_parts_covered = HANDS
|
||||
slot_flags = ITEM_SLOT_WRISTS
|
||||
attack_verb = list("slapped on the wrist")
|
||||
strip_delay = 20
|
||||
equip_delay_other = 40
|
||||
@@ -0,0 +1,12 @@
|
||||
/obj/machinery/vending/clothing/New(loc, ...)
|
||||
. = ..()
|
||||
products[/obj/item/clothing/head/wig] = 5
|
||||
for(var/P in typesof(/datum/gear/underwear))
|
||||
var/datum/gear/G = P
|
||||
products[initial(G.path)] = 5
|
||||
for(var/P in typesof(/datum/gear/shirt))
|
||||
var/datum/gear/G = P
|
||||
products[initial(G.path)] = 5
|
||||
for(var/P in typesof(/datum/gear/socks))
|
||||
var/datum/gear/G = P
|
||||
products[initial(G.path)] = 5
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 56 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 243 B |
|
After Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 4.1 KiB |
|
After Width: | Height: | Size: 4.2 KiB |
|
After Width: | Height: | Size: 4.2 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 243 B |
@@ -3661,10 +3661,12 @@
|
||||
#include "sandcode\code\game\objects\items\cards_ids.dm"
|
||||
#include "sandcode\code\game\objects\items\chrono_eraser.dm"
|
||||
#include "sandcode\code\game\objects\items\computermath.dm"
|
||||
#include "sandcode\code\game\objects\items\items.dm"
|
||||
#include "sandcode\code\game\objects\items\circuitboards\computer_circuitboards.dm"
|
||||
#include "sandcode\code\game\objects\items\circuitboards\machine_circuitboards.dm"
|
||||
#include "sandcode\code\game\objects\items\devices\extra_arm.dm"
|
||||
#include "sandcode\code\game\objects\items\devices\PDA\PDA.dm"
|
||||
#include "sandcode\code\game\objects\items\devices\radio\radio.dm"
|
||||
#include "sandcode\code\game\objects\items\plushes\goat_boss.dm"
|
||||
#include "sandcode\code\game\objects\items\plushes\plushes.dm"
|
||||
#include "sandcode\code\game\objects\items\robot\robot_upgrades.dm"
|
||||
@@ -3682,12 +3684,21 @@
|
||||
#include "sandcode\code\modules\cargo\packs\emergency.dm"
|
||||
#include "sandcode\code\modules\cargo\packs\misc.dm"
|
||||
#include "sandcode\code\modules\client\asset_cache.dm"
|
||||
#include "sandcode\code\modules\client\loadout\boxers.dm"
|
||||
#include "sandcode\code\modules\client\loadout\shirts.dm"
|
||||
#include "sandcode\code\modules\client\loadout\socks.dm"
|
||||
#include "sandcode\code\modules\clothing\refactor.dm"
|
||||
#include "sandcode\code\modules\clothing\head\misc.dm"
|
||||
#include "sandcode\code\modules\clothing\masks\miscellaneous.dm"
|
||||
#include "sandcode\code\modules\clothing\outfits\standard.dm"
|
||||
#include "sandcode\code\modules\clothing\spacesuits\chronosuit.dm"
|
||||
#include "sandcode\code\modules\clothing\spacesuits\hardsuit.dm"
|
||||
#include "sandcode\code\modules\clothing\under\_under.dm"
|
||||
#include "sandcode\code\modules\clothing\underwear\_underwear.dm"
|
||||
#include "sandcode\code\modules\clothing\underwear\boxers.dm"
|
||||
#include "sandcode\code\modules\clothing\underwear\shirts.dm"
|
||||
#include "sandcode\code\modules\clothing\underwear\socks.dm"
|
||||
#include "sandcode\code\modules\clothing\wrists\_wrists.dm"
|
||||
#include "sandcode\code\modules\crafting\recipes\recipes_misc.dm"
|
||||
#include "sandcode\code\modules\hydroponics\grown\misc.dm"
|
||||
#include "sandcode\code\modules\integrated_electronics\core\assemblies.dm"
|
||||
@@ -3791,5 +3802,6 @@
|
||||
#include "sandcode\code\modules\tgs\custom_procs.dm"
|
||||
#include "sandcode\code\modules\uplink\uplink_items.dm"
|
||||
#include "sandcode\code\modules\uplink\uplink_roles.dm"
|
||||
#include "sandcode\code\modules\vending\clothesmate.dm"
|
||||
#include "sandcode\tools\Redirector\textprocs.dm"
|
||||
// END_INCLUDE
|
||||
|
||||