diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 55728fa2c03..ec23a1e41a2 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -39,6 +39,7 @@ var/armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) var/list/allowed = null //suit storage stuff. var/obj/item/device/uplink/hidden/hidden_uplink = null // All items can have an uplink hidden inside, just remember to add the triggers. + var/list/species_fit = null //This object has a different appearance when worn by these species /obj/item/Destroy() if(istype(src.loc, /mob)) @@ -274,9 +275,9 @@ //returns 1 if the item is equipped by a mob, 0 otherwise. //This might need some error trapping, not sure if get_equipped_items() is safe for non-human mobs. /obj/item/proc/is_equipped() - if(!ismob(loc)) + if(!ismob(loc)) return 0 - + var/mob/M = loc if(src in M.get_equipped_items()) return 1 diff --git a/code/modules/clothing/shoes/colour.dm b/code/modules/clothing/shoes/colour.dm index 534542d5c21..c0cbed23b59 100644 --- a/code/modules/clothing/shoes/colour.dm +++ b/code/modules/clothing/shoes/colour.dm @@ -3,6 +3,7 @@ icon_state = "black" _color = "black" desc = "A pair of black shoes." + species_fit = list("Vox") cold_protection = FEET min_cold_protection_temperature = SHOE_MIN_COLD_PROTECITON_TEMPERATURE @@ -17,6 +18,7 @@ desc = "A pair of brown shoes." icon_state = "brown" _color = "brown" + species_fit = list("Vox") captain _color = "captain" //Exists for washing machines. Is not different from brown shoes in any way. @@ -67,6 +69,7 @@ icon_state = "white" permeability_coefficient = 0.01 _color = "white" + species_fit = list("Vox") /obj/item/clothing/shoes/leather name = "leather shoes" @@ -84,6 +87,7 @@ name = "orange shoes" icon_state = "orange" _color = "orange" + species_fit = list("Vox") /obj/item/clothing/shoes/orange/attack_self(mob/user as mob) if (src.chained) diff --git a/code/modules/clothing/under/color.dm b/code/modules/clothing/under/color.dm index 332b41e482a..5f01b9d526a 100644 --- a/code/modules/clothing/under/color.dm +++ b/code/modules/clothing/under/color.dm @@ -32,6 +32,7 @@ item_state = "gy_suit" _color = "grey" flags = FPRINT | TABLEPASS | ONESIZEFITSALL + species_fit = list("Vox") /obj/item/clothing/under/color/orange name = "orange jumpsuit" @@ -153,4 +154,4 @@ desc = "darkred" icon_state = "darkred" _color = "darkred" - flags = FPRINT | TABLEPASS | ONESIZEFITSALL \ No newline at end of file + flags = FPRINT | TABLEPASS | ONESIZEFITSALL diff --git a/code/modules/clothing/under/jobs/civilian.dm b/code/modules/clothing/under/jobs/civilian.dm index 234921b849b..8b3eabcff6a 100644 --- a/code/modules/clothing/under/jobs/civilian.dm +++ b/code/modules/clothing/under/jobs/civilian.dm @@ -7,6 +7,7 @@ item_state = "ba_suit" _color = "ba_suit" flags = FPRINT | TABLEPASS | ONESIZEFITSALL + species_fit = list("Vox") /obj/item/clothing/under/rank/captain //Alright, technically not a 'civilian' but its better then giving a .dm file for a single define. @@ -16,6 +17,7 @@ item_state = "caparmor" _color = "captain" flags = FPRINT | TABLEPASS | ONESIZEFITSALL + species_fit = list("Vox") /obj/item/clothing/under/rank/cargo @@ -25,6 +27,7 @@ item_state = "lb_suit" _color = "qm" flags = FPRINT | TABLEPASS | ONESIZEFITSALL + species_fit = list("Vox") /obj/item/clothing/under/rank/cargotech @@ -34,6 +37,7 @@ item_state = "lb_suit" _color = "cargo" flags = FPRINT | TABLEPASS | ONESIZEFITSALL + species_fit = list("Vox") /obj/item/clothing/under/rank/chaplain @@ -43,6 +47,7 @@ item_state = "bl_suit" _color = "chapblack" flags = FPRINT | TABLEPASS | ONESIZEFITSALL + species_fit = list("Vox") /obj/item/clothing/under/rank/chef @@ -51,6 +56,7 @@ icon_state = "chef" _color = "chef" flags = FPRINT | TABLEPASS | ONESIZEFITSALL + species_fit = list("Vox") /obj/item/clothing/under/rank/clown @@ -69,6 +75,7 @@ item_state = "b_suit" _color = "hop" flags = FPRINT | TABLEPASS | ONESIZEFITSALL + species_fit = list("Vox") /obj/item/clothing/under/rank/head_of_personnel_whimsy desc = "A blue jacket and red tie, with matching red cuffs! Snazzy. Wearing this makes you feel more important than your job title does." @@ -87,6 +94,7 @@ _color = "hydroponics" permeability_coefficient = 0.50 flags = FPRINT | TABLEPASS | ONESIZEFITSALL + species_fit = list("Vox") /obj/item/clothing/under/rank/internalaffairs @@ -96,6 +104,7 @@ item_state = "internalaffairs" _color = "internalaffairs" flags = FPRINT | TABLEPASS | ONESIZEFITSALL + species_fit = list("Vox") /obj/item/clothing/under/rank/janitor @@ -105,6 +114,7 @@ _color = "janitor" armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) flags = FPRINT | TABLEPASS | ONESIZEFITSALL + species_fit = list("Vox") /obj/item/clothing/under/lawyer @@ -112,34 +122,29 @@ name = "Lawyer suit" flags = FPRINT | TABLEPASS | ONESIZEFITSALL - /obj/item/clothing/under/lawyer/black icon_state = "lawyer_black" item_state = "lawyer_black" _color = "lawyer_black" - flags = FPRINT | TABLEPASS - + species_fit = list("Vox") /obj/item/clothing/under/lawyer/female icon_state = "black_suit_fem" item_state = "black_suit_fem" _color = "black_suit_fem" - flags = FPRINT | TABLEPASS - + species_fit = list("Vox") /obj/item/clothing/under/lawyer/red icon_state = "lawyer_red" item_state = "lawyer_red" _color = "lawyer_red" - flags = FPRINT | TABLEPASS - + species_fit = list("Vox") /obj/item/clothing/under/lawyer/blue icon_state = "lawyer_blue" item_state = "lawyer_blue" _color = "lawyer_blue" - flags = FPRINT | TABLEPASS - + species_fit = list("Vox") /obj/item/clothing/under/lawyer/bluesuit name = "Blue Suit" @@ -147,15 +152,14 @@ icon_state = "bluesuit" item_state = "bluesuit" _color = "bluesuit" - flags = FPRINT | TABLEPASS - + species_fit = list("Vox") /obj/item/clothing/under/lawyer/purpsuit name = "Purple Suit" icon_state = "lawyer_purp" item_state = "lawyer_purp" _color = "lawyer_purp" - flags = FPRINT | TABLEPASS + species_fit = list("Vox") /obj/item/clothing/under/lawyer/oldman name = "Old Man's Suit" @@ -163,7 +167,7 @@ icon_state = "oldman" item_state = "oldman" _color = "oldman" - flags = FPRINT | TABLEPASS + species_fit = list("Vox") /obj/item/clothing/under/librarian @@ -173,6 +177,8 @@ item_state = "red_suit" _color = "red_suit" flags = FPRINT | TABLEPASS | ONESIZEFITSALL + species_fit = list("Vox") + /obj/item/clothing/under/mime name = "mime's outfit" @@ -182,6 +188,7 @@ _color = "mime" flags = FPRINT | TABLEPASS | ONESIZEFITSALL + /obj/item/clothing/under/rank/miner desc = "It's a snappy jumpsuit with a sturdy set of overalls. It is very dirty." name = "shaft miner's jumpsuit" @@ -189,6 +196,7 @@ item_state = "miner" _color = "miner" flags = FPRINT | TABLEPASS | ONESIZEFITSALL + species_fit = list("Vox") /obj/item/clothing/under/barber desc = "It's a barber's uniform." diff --git a/code/modules/clothing/under/jobs/engineering.dm b/code/modules/clothing/under/jobs/engineering.dm index 9de181ea060..83b9f5ef789 100644 --- a/code/modules/clothing/under/jobs/engineering.dm +++ b/code/modules/clothing/under/jobs/engineering.dm @@ -7,6 +7,7 @@ _color = "chief" armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 10) flags = FPRINT | TABLEPASS | ONESIZEFITSALL + species_fit = list("Vox") /obj/item/clothing/under/rank/atmospheric_technician desc = "It's a jumpsuit worn by atmospheric technicians." @@ -15,6 +16,7 @@ item_state = "atmos_suit" _color = "atmos" flags = FPRINT | TABLEPASS | ONESIZEFITSALL + species_fit = list("Vox") /obj/item/clothing/under/rank/engineer desc = "It's an orange high visibility jumpsuit worn by engineers. It has minor radiation shielding." @@ -24,6 +26,7 @@ _color = "engine" armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 10) flags = FPRINT | TABLEPASS | ONESIZEFITSALL + species_fit = list("Vox") /obj/item/clothing/under/rank/roboticist desc = "It's a slimming black with reinforced seams; great for industrial work." @@ -31,4 +34,5 @@ icon_state = "robotics" item_state = "robotics" _color = "robotics" - flags = FPRINT | TABLEPASS | ONESIZEFITSALL \ No newline at end of file + flags = FPRINT | TABLEPASS | ONESIZEFITSALL + species_fit = list("Vox") \ No newline at end of file diff --git a/code/modules/clothing/under/jobs/medsci.dm b/code/modules/clothing/under/jobs/medsci.dm index abd33367ea4..b66b9f4e755 100644 --- a/code/modules/clothing/under/jobs/medsci.dm +++ b/code/modules/clothing/under/jobs/medsci.dm @@ -9,6 +9,7 @@ _color = "director" armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) flags = FPRINT | TABLEPASS | ONESIZEFITSALL + species_fit = list("Vox") /obj/item/clothing/under/rank/scientist desc = "It's made of a special fiber that provides minor protection against biohazards. It has markings that denote the wearer as a scientist." @@ -19,7 +20,7 @@ permeability_coefficient = 0.50 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 0, rad = 0) flags = FPRINT | TABLEPASS | ONESIZEFITSALL - + species_fit = list("Vox") /obj/item/clothing/under/rank/chemist desc = "It's made of a special fiber that gives special protection against biohazards. It has a chemist rank stripe on it." @@ -30,6 +31,7 @@ permeability_coefficient = 0.50 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) flags = FPRINT | TABLEPASS | ONESIZEFITSALL + species_fit = list("Vox") /* * Medical @@ -43,6 +45,7 @@ permeability_coefficient = 0.50 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) flags = FPRINT | TABLEPASS | ONESIZEFITSALL + species_fit = list("Vox") /obj/item/clothing/under/rank/geneticist desc = "It's made of a special fiber that gives special protection against biohazards. It has a genetics rank stripe on it." @@ -53,6 +56,7 @@ permeability_coefficient = 0.50 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) flags = FPRINT | TABLEPASS | ONESIZEFITSALL + species_fit = list("Vox") /obj/item/clothing/under/rank/virologist desc = "It's made of a special fiber that gives special protection against biohazards. It has a virologist rank stripe on it." @@ -63,6 +67,7 @@ permeability_coefficient = 0.50 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) flags = FPRINT | TABLEPASS | ONESIZEFITSALL + species_fit = list("Vox") /obj/item/clothing/under/rank/nursesuit desc = "It's a jumpsuit commonly worn by nursing staff in the medical department." @@ -73,6 +78,7 @@ permeability_coefficient = 0.50 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) flags = FPRINT | TABLEPASS | ONESIZEFITSALL + species_fit = list("Vox") /obj/item/clothing/under/rank/nurse desc = "A dress commonly worn by the nursing staff in the medical department." @@ -83,6 +89,7 @@ permeability_coefficient = 0.50 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) flags = FPRINT | TABLEPASS | ONESIZEFITSALL + species_fit = list("Vox") /obj/item/clothing/under/rank/orderly desc = "A white suit to be worn by orderly people who love orderly things." @@ -93,6 +100,7 @@ permeability_coefficient = 0.50 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) flags = FPRINT | TABLEPASS | ONESIZEFITSALL + species_fit = list("Vox") /obj/item/clothing/under/rank/medical desc = "It's made of a special fiber that provides minor protection against biohazards. It has a cross on the chest denoting that the wearer is trained medical personnel." @@ -103,6 +111,7 @@ permeability_coefficient = 0.50 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) flags = FPRINT | TABLEPASS | ONESIZEFITSALL + species_fit = list("Vox") /obj/item/clothing/under/rank/medical/blue name = "medical scrubs" @@ -110,6 +119,7 @@ icon_state = "scrubsblue" _color = "scrubsblue" flags = FPRINT | TABLEPASS | ONESIZEFITSALL + species_fit = list("Vox") /obj/item/clothing/under/rank/medical/green name = "medical scrubs" @@ -117,6 +127,7 @@ icon_state = "scrubsgreen" _color = "scrubsgreen" flags = FPRINT | TABLEPASS | ONESIZEFITSALL + species_fit = list("Vox") /obj/item/clothing/under/rank/medical/purple name = "medical scrubs" @@ -124,6 +135,7 @@ icon_state = "scrubspurple" _color = "scrubspurple" flags = FPRINT | TABLEPASS | ONESIZEFITSALL + species_fit = list("Vox") //paramedic /obj/item/clothing/under/rank/medical/paramedic @@ -135,6 +147,7 @@ permeability_coefficient = 0.50 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 10) flags = FPRINT | TABLEPASS | ONESIZEFITSALL + species_fit = list("Vox") @@ -180,4 +193,4 @@ _color = "virologist_new" permeability_coefficient = 0.50 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) - flags = FPRINT | TABLEPASS | ONESIZEFITSALL \ No newline at end of file + flags = FPRINT | TABLEPASS | ONESIZEFITSALL diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index 7afaf54640a..385420b9091 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -179,6 +179,7 @@ icon_state = "red_suit" item_state = "r_suit" _color = "red_suit" + species_fit = list("Vox") /obj/item/clothing/under/blackskirt name = "black skirt" @@ -495,4 +496,4 @@ desc = "A suit made of strange materials." icon_state = "psyamp" item_state = "psyamp" - _color = "psyamp" \ No newline at end of file + _color = "psyamp" diff --git a/code/modules/mob/living/carbon/species.dm b/code/modules/mob/living/carbon/species.dm index dfa92ace514..245e2227a8f 100644 --- a/code/modules/mob/living/carbon/species.dm +++ b/code/modules/mob/living/carbon/species.dm @@ -46,6 +46,17 @@ var/flesh_color = "#FFC896" //Pink. var/list/abilities = list() // For species-derived or admin-given powers + var/w_uniform_icons = null + var/gloves_icons = null + var/glasses_icons = null + var/ears_icons + var/shoes_icons = null + var/head_icons = null + var/belt_icons = null + var/wear_suit_icons = null + var/wear_mask_icons = null + var/back_icons = null + /datum/species/proc/create_organs(var/mob/living/carbon/human/H) //Handles creation of mob organs. //This is a basic humanoid limb setup. H.organs = list() @@ -188,6 +199,9 @@ eyes = "vox_eyes_s" breath_type = "nitrogen" + w_uniform_icons = 'icons/mob/species/vox_w_uniform.dmi' + shoes_icons = 'icons/mob/species/vox_shoes.dmi' + flags = NO_SCAN | IS_WHITELISTED | NO_BLOOD /datum/species/vox/handle_post_spawn(var/mob/living/carbon/human/H) @@ -266,6 +280,7 @@ default_mutations=list(M_REMOTE_TALK) default_block_names=list("REMOTETALK") + /datum/species/diona name = "Diona" icobase = 'icons/mob/human_races/r_diona.dmi' diff --git a/icons/mob/species/vox_shoes.dmi b/icons/mob/species/vox_shoes.dmi new file mode 100644 index 00000000000..3b4e47ea9dc Binary files /dev/null and b/icons/mob/species/vox_shoes.dmi differ diff --git a/icons/mob/species/vox_w_uniform.dmi b/icons/mob/species/vox_w_uniform.dmi new file mode 100644 index 00000000000..0cef140b342 Binary files /dev/null and b/icons/mob/species/vox_w_uniform.dmi differ