diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index faaf28381eb..4bde30ff2a2 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -1266,6 +1266,15 @@ new /obj/item/clothing/under/plasmaman/coke(src) new /obj/item/clothing/head/helmet/space/plasmaman/coke(src) +/obj/item/storage/box/tacticool_envirosuit + name = "tactical suit box" + desc = "A box with a special envirosuit usually supplied by black markets." + icon_state = "plasma_box" + +/obj/item/storage/box/tacticool_envirosuit/populate_contents() + new /obj/item/clothing/under/plasmaman/tacticool(src) + new /obj/item/clothing/head/helmet/space/plasmaman/tacticool(src) + #undef NODESIGN #undef NANOTRASEN #undef SYNDI diff --git a/code/modules/client/preference/loadout/loadout_racial.dm b/code/modules/client/preference/loadout/loadout_racial.dm index 4b576e96daa..55359fb4fbc 100644 --- a/code/modules/client/preference/loadout/loadout_racial.dm +++ b/code/modules/client/preference/loadout/loadout_racial.dm @@ -48,3 +48,8 @@ display_name = "Coke Suit" description = "Plasmaman envirosuit designed by Space Cola Co and gifted to the people of Boron as part of an elaborate advertisement campaign." path = /obj/item/storage/box/coke_envirosuit + +/datum/gear/racial/plasmamansuit_tacticool + display_name = "Tactical Suit" + description = "Plasmaman envirosuit supplied by black markets. Forged on Boron. Does not have suit sensors." + path = /obj/item/storage/box/tacticool_envirosuit diff --git a/code/modules/clothing/spacesuits/plasmamen.dm b/code/modules/clothing/spacesuits/plasmamen.dm index 500a1f000a8..632f9838974 100644 --- a/code/modules/clothing/spacesuits/plasmamen.dm +++ b/code/modules/clothing/spacesuits/plasmamen.dm @@ -288,3 +288,69 @@ desc = "A plasmaman envirohelm designed by Space Cola Co for the plasmamen." icon_state = "coke_envirohelm" item_state = "coke_envirohelm" + +/obj/item/clothing/head/helmet/space/plasmaman/tacticool + name = "diver envirosuit helmet" + desc = "A plasmaman helm resembling old diver helms." + icon_state = "diver_envirohelm" + base_icon_state = "diver_envirohelm" + item_state = "diver_envirohelm" + /// Different icons and names for the helm to use when reskinning + var/list/static/plasmaman_helm_options = list("Diver" = "diver_envirohelm", "Knight" = "knight_envirohelm", "Skull" = "skull_envirohelm") + /// Checks if the helm has been reskinned already + var/reskinned = FALSE + +/obj/item/clothing/head/helmet/space/plasmaman/tacticool/examine(mob/user) + . = ..() + if(!reskinned) + . += "You can Alt-Click to reskin it." + +/obj/item/clothing/head/helmet/space/plasmaman/tacticool/AltClick(mob/user) + ..() + if(HAS_TRAIT(user, TRAIT_HANDS_BLOCKED)) + to_chat(user, "You can't do that right now!") + return + if(reskin_radial_check(user) && !reskinned) + reskin(user) + +/obj/item/clothing/head/helmet/space/plasmaman/tacticool/update_icon_state() + if(!up) + icon_state = base_icon_state + else + icon_state = "[base_icon_state][on ? "-light":""]" + item_state = icon_state + +/obj/item/clothing/head/helmet/space/plasmaman/tacticool/proc/reskin(mob/M) + var/list/skins = list() + for(var/I in plasmaman_helm_options) + skins[I] = image(icon, icon_state = plasmaman_helm_options[I]) + var/choice = show_radial_menu(M, src, skins, radius = 40, custom_check = CALLBACK(src, PROC_REF(reskin_radial_check), M), require_near = TRUE) + + if(!choice || !reskin_radial_check(M)) + return + switch(choice) + if("Diver") + name = initial(name) + desc = initial(desc) + base_icon_state = initial(base_icon_state) + if("Knight") + name = "knight envirosuit helmet" + desc = "A plasmaman envirohelm designed in the shape of a knight helm." + base_icon_state = "knight_envirohelm" + visor_icon = "knight_envisor" + if("Skull") + name = "skull envirosuit helmet" + desc = "A plasmaman envirohelm designed in the shape of a skull." + base_icon_state = "skull_envirohelm" + visor_icon = "skull_envisor" + update_icon() + M.update_inv_head() + reskinned = TRUE + +/obj/item/clothing/head/helmet/space/plasmaman/tacticool/proc/reskin_radial_check(mob/user) + if(!ishuman(user)) + return FALSE + var/mob/living/carbon/human/H = user + if(!H.is_in_hands(src) || HAS_TRAIT(H, TRAIT_HANDS_BLOCKED)) + return FALSE + return TRUE diff --git a/code/modules/clothing/under/jobs/plasmamen/civilian_service.dm b/code/modules/clothing/under/jobs/plasmamen/civilian_service.dm index ad986528c74..a11e1717586 100644 --- a/code/modules/clothing/under/jobs/plasmamen/civilian_service.dm +++ b/code/modules/clothing/under/jobs/plasmamen/civilian_service.dm @@ -126,3 +126,11 @@ icon_state = "coke_envirosuit" item_state = "coke_envirosuit" item_color = "coke_envirosuit" + +/obj/item/clothing/under/plasmaman/tacticool + name = "tactical envirosuit" + desc = "An envirosuit designed to be sleek and tactical, forged on unknown parts of Boron." + icon_state = "tacticool_envirosuit" + item_state = "tacticool_envirosuit" + item_color = "tacticool_envirosuit" + has_sensor = FALSE diff --git a/icons/mob/clothing/species/plasmaman/helmet.dmi b/icons/mob/clothing/species/plasmaman/helmet.dmi index 53e36a92e35..04feebb6aa9 100644 Binary files a/icons/mob/clothing/species/plasmaman/helmet.dmi and b/icons/mob/clothing/species/plasmaman/helmet.dmi differ diff --git a/icons/mob/clothing/species/plasmaman/uniform.dmi b/icons/mob/clothing/species/plasmaman/uniform.dmi index 80e63b2de2b..bf1e7080881 100644 Binary files a/icons/mob/clothing/species/plasmaman/uniform.dmi and b/icons/mob/clothing/species/plasmaman/uniform.dmi differ diff --git a/icons/obj/clothing/species/plasmaman/hats.dmi b/icons/obj/clothing/species/plasmaman/hats.dmi index 6139a79bc2f..f216a84f05a 100644 Binary files a/icons/obj/clothing/species/plasmaman/hats.dmi and b/icons/obj/clothing/species/plasmaman/hats.dmi differ diff --git a/icons/obj/clothing/species/plasmaman/uniform.dmi b/icons/obj/clothing/species/plasmaman/uniform.dmi index 2f274f7541c..3486bd07b43 100644 Binary files a/icons/obj/clothing/species/plasmaman/uniform.dmi and b/icons/obj/clothing/species/plasmaman/uniform.dmi differ