diff --git a/code/defines/obj/clothing/glasses.dm b/code/defines/obj/clothing/glasses.dm index ef8745b30af..925bbf7e994 100644 --- a/code/defines/obj/clothing/glasses.dm +++ b/code/defines/obj/clothing/glasses.dm @@ -66,6 +66,12 @@ icon_state = "thermoncle" flags = null //doesn't protect eyes because it's a monocle, duh +/obj/item/clothing/glasses/thermal/eyepatch + name = "Optical Thermal Eyepatch" + desc = "An eyepatch with built-in thermal optics" + icon_state = "eyepatch" + item_state = "eyepatch" + /obj/item/clothing/glasses/hud name = "HUD" desc = "A heads-up display that provides important info in (almost) real time." diff --git a/code/defines/obj/clothing/head.dm b/code/defines/obj/clothing/head.dm index d167b1b60c2..d8557153159 100644 --- a/code/defines/obj/clothing/head.dm +++ b/code/defines/obj/clothing/head.dm @@ -281,8 +281,7 @@ /obj/item/clothing/head/helmet/space/deathsquad/beret name = "officer's beret" desc = "An armored beret commonly used by special operations officers." - icon_state = "beret" - item_state = "deathsquad" + icon_state = "beret_badge" armor = list(melee = 65, bullet = 55, laser = 35, taser = 20, bomb = 30, bio = 30, rad = 30) /obj/item/clothing/head/helmet/swat diff --git a/code/defines/obj/clothing/jumpsuit.dm b/code/defines/obj/clothing/jumpsuit.dm index daafb5d58e6..33f618c798a 100644 --- a/code/defines/obj/clothing/jumpsuit.dm +++ b/code/defines/obj/clothing/jumpsuit.dm @@ -392,6 +392,9 @@ color = "tactifool" armor = list(melee = 0, bullet = 0, laser = 2, taser = 2, bomb = 0, bio = 0, rad = 0) +/obj/item/clothing/under/syndicate/combat + name = "Combat Turtleneck" + /obj/item/clothing/under/librarian name = "Sensible Suit" desc = "It's very... sensible." @@ -470,4 +473,19 @@ item_state = "nursesuit" color = "nursesuit" permeability_coefficient = 0.50 - armor = list(melee = 0, bullet = 0, laser = 2, taser = 2, bomb = 0, bio = 10, rad = 0) \ No newline at end of file + armor = list(melee = 0, bullet = 0, laser = 2, taser = 2, bomb = 0, bio = 10, rad = 0) + +/obj/item/clothing/under/acj + name = "Administrative Cybernetic Jumpsuit" + icon_state = "syndicate" + item_state = "bl_suit" + color = "syndicate" + desc = "A cybernetically enhanced jumpsuit used in administrative duties." + gas_transfer_coefficient = 0.01 + permeability_coefficient = 0.01 + heat_transfer_coefficient = 0.01 + radiation_protection = 1 + protective_temperature = 100000 + flags = FPRINT | TABLEPASS | SUITSPACE + body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS + armor = list(melee = 100, bullet = 100, laser = 100, taser = 100, bomb = 100, bio = 100, rad = 100) \ No newline at end of file diff --git a/code/defines/obj/clothing/mask.dm b/code/defines/obj/clothing/mask.dm index efeb712e601..0ec5dfb5608 100644 --- a/code/defines/obj/clothing/mask.dm +++ b/code/defines/obj/clothing/mask.dm @@ -81,12 +81,6 @@ desc = "A close-fitting tactical mask that can filter some environmental toxins or be connected to an air supply." icon_state = "swat" -/obj/item/clothing/mask/gas/swat/cigar - name = "Premium Havanian Cigar" - desc = "Only for the best of centcom officers." - icon_state = "cigaron" - item_state = "cigaroff" - /obj/item/clothing/mask/gas/voice name = "gas mask" desc = "A close-fitting mask that can filter some environmental toxins or be connected to an air supply." @@ -151,4 +145,13 @@ icon_state = "cigar2off" icon_on = "cigar2on" icon_off = "cigar2off" - icon_butt = "cigarbutt" \ No newline at end of file + icon_butt = "cigarbutt" + +/obj/item/clothing/mask/cigarette/cigar/havanian + name = "Premium Havanian Cigar" + desc = "Only the best for the best." + icon_state = "cigar2off" + icon_on = "cigar2on" + icon_off = "cigar2off" + icon_butt = "cigarbutt" + smoketime = 7200 \ No newline at end of file diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 21eb868dc33..651dd44f666 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -372,6 +372,10 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that "death commando", "centcom official", "centcom commander", + "special ops officer", + "blue wizard", + "red wizard", + "marisa wizard", ) var/dresscode = input("Select dress for [M]", "Robust quick dress shop") as null|anything in dresspacks if (isnull(dresscode)) @@ -598,5 +602,63 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that W.registered = M.real_name M.equip_if_possible(W, M.slot_wear_id) + if("special ops officer") + M.equip_if_possible(new /obj/item/clothing/under/syndicate/combat(M), M.slot_w_uniform) + M.equip_if_possible(new /obj/item/clothing/suit/armor/swat/officer(M), M.slot_wear_suit) + M.equip_if_possible(new /obj/item/clothing/shoes/combat(M), M.slot_shoes) + M.equip_if_possible(new /obj/item/clothing/gloves/combat(M), M.slot_gloves) + M.equip_if_possible(new /obj/item/device/radio/headset/heads/captain(M), M.slot_ears) + M.equip_if_possible(new /obj/item/clothing/glasses/thermal/eyepatch(M), M.slot_glasses) + M.equip_if_possible(new /obj/item/clothing/mask/cigarette/cigar/havanian(M), M.slot_wear_mask) + M.equip_if_possible(new /obj/item/clothing/head/helmet/space/deathsquad/beret(M), M.slot_head) + M.equip_if_possible(new /obj/item/weapon/gun/energy/pulse_rifle/m1911(M), M.slot_belt) + M.equip_if_possible(new /obj/item/weapon/zippo(M), M.slot_r_store) + M.equip_if_possible(new /obj/item/weapon/storage/backpack/satchel(M), M.slot_back) + + var/obj/item/weapon/card/id/W = new(M) + W.name = "[M.real_name]'s ID Card" + W.icon_state = "centcom" + W.access = get_all_accesses() + W.access += get_all_centcom_access() + W.assignment = "Special Operations Officer" + W.registered = M.real_name + M.equip_if_possible(W, M.slot_wear_id) + + if("blue wizard") + M.equip_if_possible(new /obj/item/clothing/under/lightpurple(M), M.slot_w_uniform) + M.equip_if_possible(new /obj/item/clothing/suit/wizrobe(M), M.slot_wear_suit) + M.equip_if_possible(new /obj/item/clothing/shoes/sandal(M), M.slot_shoes) + M.equip_if_possible(new /obj/item/device/radio/headset(M), M.slot_ears) + M.equip_if_possible(new /obj/item/clothing/head/wizard(M), M.slot_head) + M.equip_if_possible(new /obj/item/weapon/teleportation_scroll(M), M.slot_r_store) + M.equip_if_possible(new /obj/item/weapon/spellbook(M), M.slot_r_hand) + M.equip_if_possible(new /obj/item/weapon/staff(M), M.slot_l_hand) + M.equip_if_possible(new /obj/item/weapon/storage/backpack(M), M.slot_back) + M.equip_if_possible(new /obj/item/weapon/storage/survival_kit(M), M.slot_in_backpack) + + if("red wizard") + M.equip_if_possible(new /obj/item/clothing/under/lightpurple(M), M.slot_w_uniform) + M.equip_if_possible(new /obj/item/clothing/suit/wizrobe/red(M), M.slot_wear_suit) + M.equip_if_possible(new /obj/item/clothing/shoes/sandal(M), M.slot_shoes) + M.equip_if_possible(new /obj/item/device/radio/headset(M), M.slot_ears) + M.equip_if_possible(new /obj/item/clothing/head/wizard/red(M), M.slot_head) + M.equip_if_possible(new /obj/item/weapon/teleportation_scroll(M), M.slot_r_store) + M.equip_if_possible(new /obj/item/weapon/spellbook(M), M.slot_r_hand) + M.equip_if_possible(new /obj/item/weapon/staff(M), M.slot_l_hand) + M.equip_if_possible(new /obj/item/weapon/storage/backpack(M), M.slot_back) + M.equip_if_possible(new /obj/item/weapon/storage/survival_kit(M), M.slot_in_backpack) + + if("marisa wizard") + M.equip_if_possible(new /obj/item/clothing/under/lightpurple(M), M.slot_w_uniform) + M.equip_if_possible(new /obj/item/clothing/suit/wizrobe/marisa(M), M.slot_wear_suit) + M.equip_if_possible(new /obj/item/clothing/shoes/sandal/marisa(M), M.slot_shoes) + M.equip_if_possible(new /obj/item/device/radio/headset(M), M.slot_ears) + M.equip_if_possible(new /obj/item/clothing/head/wizard/marisa(M), M.slot_head) + M.equip_if_possible(new /obj/item/weapon/teleportation_scroll(M), M.slot_r_store) + M.equip_if_possible(new /obj/item/weapon/spellbook(M), M.slot_r_hand) + M.equip_if_possible(new /obj/item/weapon/staff(M), M.slot_l_hand) + M.equip_if_possible(new /obj/item/weapon/storage/backpack(M), M.slot_back) + M.equip_if_possible(new /obj/item/weapon/storage/survival_kit(M), M.slot_in_backpack) + M.update_clothing() return diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi index a0ebbea8712..8b0677d6c3d 100644 Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index bfe8f45b569..7596951469f 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/maps/tgstation.2.0.7.dmm b/maps/tgstation.2.0.7.dmm index d6201cc08f0..50166b1a548 100644 --- a/maps/tgstation.2.0.7.dmm +++ b/maps/tgstation.2.0.7.dmm @@ -6175,7 +6175,7 @@ "coM" = (/obj/bookcase{name = "bookcase (Tactics)"},/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) "coN" = (/obj/secure_closet/hos,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) "coO" = (/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) -"coP" = (/obj/rack,/obj/item/weapon/secstorage/sbriefcase,/obj/item/weapon/cigpacket,/obj/item/weapon/zippo,/obj/item/weapon/gun/energy/pulse_rifle/M1911,/obj/item/weapon/storage/utilitybelt,/obj/item/weapon/storage/backpack/security,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) +"coP" = (/obj/rack,/obj/item/weapon/secstorage/sbriefcase,/obj/item/weapon/cigpacket,/obj/item/weapon/zippo,/obj/item/weapon/storage/utilitybelt,/obj/item/weapon/storage/backpack/satchel,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) "coQ" = (/obj/bookcase{name = "bookcase (Reports)"},/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) "coR" = (/obj/machinery/vending/snack,/turf/unsimulated/floor{icon_state = "green"; dir = 8},/area/centcom/control) "coS" = (/obj/grille,/obj/window/reinforced,/obj/window/reinforced{dir = 4},/obj/window/reinforced{dir = 1},/turf/unsimulated/floor{name = "plating"},/area/centcom/control) @@ -6210,7 +6210,7 @@ "cpv" = (/obj/machinery/camera{c_tag = "Spec. Ops. Shuttle"; dir = 2; network = "CREED"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) "cpw" = (/obj/machinery/computer/pod{id = "NTrasen"; name = "Hull Door Control"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) "cpx" = (/obj/machinery/computer/specops_shuttle,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) -"cpy" = (/obj/table/woodentable{dir = 9},/obj/item/weapon/reagent_containers/food/drinks/flask,/obj/item/clothing/mask/gas/swat/cigar,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) +"cpy" = (/obj/table/woodentable{dir = 9},/obj/item/weapon/reagent_containers/food/drinks/flask,/obj/item/clothing/mask/cigarette/cigar/havanian,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) "cpz" = (/obj/machinery/computer/security/telescreen{name = "Spec. Ops. Monitor"; network = "CREED"},/obj/table/woodentable{dir = 5},/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) "cpA" = (/obj/table/woodentable{dir = 5},/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) "cpB" = (/obj/machinery/computer/card/centcom,/obj/item/weapon/card/id/centcom,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) @@ -6252,7 +6252,7 @@ "cql" = (/turf/unsimulated/wall,/area/centcom/ferry) "cqm" = (/obj/livestock/spesscarp/elite{aggressive = 0; anchored = 1; name = "Small Boss"},/obj/overlay{anchored = 1; icon = 'beach.dmi'; icon_state = "water2"; layer = 10; mouse_opacity = 0; name = "water"},/turf/unsimulated/floor{icon = 'beach.dmi'; icon_state = "water"; name = "water"},/area/centcom/ferry) "cqn" = (/obj/overlay{anchored = 1; icon = 'beach.dmi'; icon_state = "water2"; layer = 10; mouse_opacity = 0; name = "water"},/turf/unsimulated/floor{icon = 'beach.dmi'; icon_state = "water"; name = "water"},/area/centcom/ferry) -"cqo" = (/obj/rack,/obj/item/clothing/shoes/combat,/obj/item/clothing/under/syndicate{desc = "Non-descript, slightly suspicious military clothing."; gas_transfer_coefficient = 0.01; heat_transfer_coefficient = 0.02; name = "Combat Turtleneck"},/obj/item/clothing/suit/armor/swat/officer,/obj/item/clothing/gloves/combat,/obj/item/clothing/glasses/thermal{icon_state = "eyepatch"; name = "Optical Thermal Eyepatch"},/obj/item/clothing/head/helmet/space/deathsquad/beret,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/creed) +"cqo" = (/obj/rack,/obj/item/weapon/tank/jetpack/black_jetpack,/obj/item/clothing/suit/armor/powered,/obj/item/clothing/head/helmet/powered,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/creed) "cqp" = (/turf/unsimulated/floor{icon_state = "asteroid1"; name = "sand"; tag = "icon-asteroid1"},/area/centcom/control) "cqq" = (/turf/unsimulated/floor{dir = 6; icon_state = "asteroid8"; name = "sand"; tag = "icon-asteroid8 (SOUTHEAST)"},/area/centcom/control) "cqr" = (/turf/unsimulated/floor{icon_state = "asteroid2"; name = "sand"; tag = "icon-asteroid2"},/area/centcom/control)