diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm index 7e6f1e3f7e6..2db29d4ab04 100644 --- a/code/game/machinery/suit_storage_unit.dm +++ b/code/game/machinery/suit_storage_unit.dm @@ -1064,19 +1064,9 @@ if(!target_species || !target_department) return - switch(target_species) - if("Skrell") - if(helmet) helmet.species_restricted = list("Skrell") - if(suit) suit.species_restricted = list("exclude","Unathi","Tajaran","Diona","Vox") - if("Human") - if(helmet) helmet.species_restricted = list("exclude","Unathi","Tajaran","Diona","Vox","Skrell") - if(suit) suit.species_restricted = list("exclude","Unathi","Tajaran","Diona","Vox") - if("Unathi") - if(helmet) helmet.species_restricted = list("Unathi") - if(suit) suit.species_restricted = list("Unathi") - if("Tajaran") - if(helmet) helmet.species_restricted = list("Tajaran") - if(suit) suit.species_restricted = list("Tajaran") + if(target_species) + if(helmet) helmet.refit_for_species(target_species) + if(suit) suit.refit_for_species(target_species) switch(target_department) if("Engineering") diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 6beb98c40c4..935760efdb1 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -49,6 +49,18 @@ var/list/sprite_sheets = null var/icon_override = null //Used to override hardcoded clothing dmis in human clothing proc. + /* Species-specific sprite sheets for object and inhand sprites + Works similarly to worn sprite_sheets, except the alternate sprites are used when the clothing/refit_for_species() proc is called. + */ + var/list/sprite_sheets_obj = null + + //Inhand is not as big a deal as the object sprites, so I'm not sure if these are worth the extra vars. + //Maybe in the future: + //var/list/sprite_sheets_inhand_l = null + //var/list/sprite_sheets_inhand_r = null + //var/icon_l_hand = 'icons/mob/items_lefthand.dmi' + //var/icon_r_hand = 'icons/mob/items_righthand.dmi' + /obj/item/device icon = 'icons/obj/device.dmi' diff --git a/code/game/objects/items/devices/modkit.dm b/code/game/objects/items/devices/modkit.dm index dd7c1231f45..bbab8870b12 100644 --- a/code/game/objects/items/devices/modkit.dm +++ b/code/game/objects/items/devices/modkit.dm @@ -7,7 +7,7 @@ desc = "A kit containing all the needed tools and parts to modify a hardsuit for another user." icon_state = "modkit" var/parts = MODKIT_FULL - var/list/target_species = list("Human","Skrell") + var/target_species = null var/list/permitted_types = list( /obj/item/clothing/head/helmet/space/rig, @@ -38,20 +38,21 @@ var/obj/item/clothing/I = O if(istype(I)) - I.species_restricted = target_species.Copy() + if (target_species) + I.refit_for_species(target_species) + else + I.refit_for_species("Human") parts-- if(!parts) user.drop_from_inventory(src) del(src) +/obj/item/device/modkit/examine() + ..() + usr << "It looks as though it modifies hardsuits to fit the following [target_species? target_species : "Human"] users." + /obj/item/device/modkit/tajaran name = "tajaran hardsuit modification kit" desc = "A kit containing all the needed tools and parts to modify a hardsuit for another user. This one looks like it's meant for Tajara." - target_species = list("Tajaran") - -/obj/item/device/modkit/examine() - ..() - usr << "It looks as though it modifies hardsuits to fit the following users:" - for(var/species in target_species) - usr << "- [species]" \ No newline at end of file + target_species = "Tajaran" \ No newline at end of file diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 034fede96ac..5ad55ff5571 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -32,6 +32,27 @@ return 1 +/obj/item/clothing/proc/refit_for_species(var/target_species) + switch(target_species) + if("Human", "Skrell") //humanoid bodytypes + species_restricted = list("exclude","Unathi","Tajaran","Diona","Vox") + else + species_restricted = list(target_species) + + if (sprite_sheets_obj && (target_species in sprite_sheets_obj)) + icon = sprite_sheets_obj[target_species] + +/obj/item/clothing/head/helmet/refit_for_species(var/target_species) + switch(target_species) + if("Human") + species_restricted = list("exclude","Unathi","Tajaran","Diona","Vox") + else + species_restricted = list(target_species) + + if (sprite_sheets_obj && (target_species in sprite_sheets_obj)) + icon = sprite_sheets_obj[target_species] + + //Ears: headsets, earmuffs and tiny objects /obj/item/clothing/ears name = "ears"