diff --git a/.github/workflows/autochangelog.yml b/.github/workflows/autochangelog.yml index 7953929ce5..71a53a5b2d 100644 --- a/.github/workflows/autochangelog.yml +++ b/.github/workflows/autochangelog.yml @@ -11,7 +11,7 @@ env: jobs: autochangelog: name: Autochangelog - runs-on: ubuntu-16.04 + runs-on: ubuntu-20.04 if: github.event.pull_request.merged == true steps: - uses: /actions/checkout@v2 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0473967037..454348a5cd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,7 +10,7 @@ env: jobs: file_tests: name: Run Linters - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - name: Ensure +x on CI directory @@ -26,7 +26,7 @@ jobs: # dreamchecker: # name: DreamChecker -# runs-on: ubuntu-18.04 +# runs-on: ubuntu-20.04 # steps: # - uses: actions/checkout@v2 # @@ -54,7 +54,7 @@ jobs: unit_tests: name: Integration Tests - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - name: Ensure +x on CI directory @@ -69,7 +69,7 @@ jobs: run: | sudo dpkg --add-architecture i386 sudo apt update || true - sudo apt install libc6:i386 libgcc1:i386 libstdc++6:i386 libssl1.0.0:i386 zlib1g:i386 + sudo apt install zlib1g-dev:i386 libssl-dev:i386 pkg-config:i386 ldd librust_g.so - name: Unit Tests run: | diff --git a/.github/workflows/render_nanomaps.yml b/.github/workflows/render_nanomaps.yml index f3a50a5e94..fd5536ea48 100644 --- a/.github/workflows/render_nanomaps.yml +++ b/.github/workflows/render_nanomaps.yml @@ -14,7 +14,7 @@ on: jobs: generate_maps: name: 'Generate NanoMaps' - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 steps: - name: Clone uses: actions/checkout@v2 diff --git a/_build_dependencies.sh b/_build_dependencies.sh index b278c1115a..cf9e6ed7bd 100644 --- a/_build_dependencies.sh +++ b/_build_dependencies.sh @@ -4,8 +4,8 @@ export SPACEMAN_DMM_VERSION=suite-1.7 # For NanoUI + TGUI export NODE_VERSION=12 # Byond Major -export BYOND_MAJOR=513 +export BYOND_MAJOR=514 # Byond Minor -export BYOND_MINOR=1542 +export BYOND_MINOR=1557 # Macro Count export MACRO_COUNT=4 diff --git a/code/__defines/materials.dm b/code/__defines/materials.dm index 38a84e7169..12a671b464 100644 --- a/code/__defines/materials.dm +++ b/code/__defines/materials.dm @@ -34,6 +34,7 @@ #define MAT_CHITIN "chitin" #define MAT_CLOTH "cloth" #define MAT_SYNCLOTH "syncloth" +#define MAT_FIBERS "fibers" #define MAT_COPPER "copper" #define MAT_QUARTZ "quartz" #define MAT_TIN "tin" diff --git a/code/__defines/mobs.dm b/code/__defines/mobs.dm index 092b5e677a..8bc561b4a6 100644 --- a/code/__defines/mobs.dm +++ b/code/__defines/mobs.dm @@ -112,25 +112,24 @@ #define MAX_SUPPLIED_LAW_NUMBER 50 //default item on-mob icons -#define INV_HEAD_DEF_ICON 'icons/mob/head.dmi' -#define INV_BACK_DEF_ICON 'icons/mob/back.dmi' #define INV_L_HAND_DEF_ICON 'icons/mob/items/lefthand.dmi' #define INV_R_HAND_DEF_ICON 'icons/mob/items/righthand.dmi' -#define INV_W_UNIFORM_DEF_ICON "icons/mob/uniform" -#define INV_ACCESSORIES_DEF_ICON 'icons/mob/ties.dmi' -#define INV_TIE_DEF_ICON 'icons/mob/ties.dmi' -#define INV_SUIT_DEF_ICON "icons/mob/suit" -#define INV_SPACESUIT_DEF_ICON 'icons/mob/spacesuit.dmi' #define INV_WEAR_ID_DEF_ICON 'icons/mob/mob.dmi' -#define INV_GLOVES_DEF_ICON 'icons/mob/hands.dmi' -#define INV_EYES_DEF_ICON 'icons/mob/eyes.dmi' -#define INV_EARS_DEF_ICON 'icons/mob/ears.dmi' -#define INV_FEET_DEF_ICON 'icons/mob/feet.dmi' -#define INV_BELT_DEF_ICON 'icons/mob/belt.dmi' -#define INV_MASK_DEF_ICON 'icons/mob/mask.dmi' #define INV_HCUFF_DEF_ICON 'icons/mob/mob.dmi' #define INV_LCUFF_DEF_ICON 'icons/mob/mob.dmi' +#define INV_HEAD_DEF_ICON 'icons/inventory/head/mob.dmi' +#define INV_BACK_DEF_ICON 'icons/inventory/back/mob.dmi' +#define INV_W_UNIFORM_DEF_ICON 'icons/inventory/uniform/mob.dmi' +#define INV_ACCESSORIES_DEF_ICON 'icons/inventory/accessory/mob.dmi' +#define INV_SUIT_DEF_ICON 'icons/inventory/suit/mob.dmi' +#define INV_GLOVES_DEF_ICON 'icons/inventory/hands/mob.dmi' +#define INV_EYES_DEF_ICON 'icons/inventory/eyes/mob.dmi' +#define INV_EARS_DEF_ICON 'icons/inventory/ears/mob.dmi' +#define INV_FEET_DEF_ICON 'icons/inventory/feet/mob.dmi' +#define INV_BELT_DEF_ICON 'icons/inventory/belt/mob.dmi' +#define INV_MASK_DEF_ICON 'icons/inventory/face/mob.dmi' + // Character's economic class #define CLASS_UPPER "Wealthy" #define CLASS_UPMID "Well-off" diff --git a/code/__defines/subsystems.dm b/code/__defines/subsystems.dm index 0de79c56d0..cb30162b73 100644 --- a/code/__defines/subsystems.dm +++ b/code/__defines/subsystems.dm @@ -60,7 +60,6 @@ var/global/list/runlevel_flags = list(RUNLEVEL_LOBBY, RUNLEVEL_SETUP, RUNLEVEL_G #define INIT_ORDER_INPUT 37 #define INIT_ORDER_CHEMISTRY 35 #define INIT_ORDER_VIS 32 -#define INIT_ORDER_SKYBOX 30 #define INIT_ORDER_MAPPING 25 #define INIT_ORDER_SOUNDS 23 #define INIT_ORDER_INSTRUMENTS 22 @@ -87,10 +86,12 @@ var/global/list/runlevel_flags = list(RUNLEVEL_LOBBY, RUNLEVEL_SETUP, RUNLEVEL_G #define INIT_ORDER_AI_FAST -23 #define INIT_ORDER_GAME_MASTER -24 #define INIT_ORDER_PERSISTENCE -25 +#define INIT_ORDER_SKYBOX -30 //Visual only, irrelevant to gameplay, but needs to be late enough to have overmap populated fully #define INIT_ORDER_TICKER -50 #define INIT_ORDER_CHAT -100 //Should be last to ensure chat remains smooth during init. + // Subsystem fire priority, from lowest to highest priority // If the subsystem isn't listed here it's either DEFAULT or PROCESS (if it's a processing subsystem child) #define FIRE_PRIORITY_SHUTTLES 5 diff --git a/code/_helpers/logging.dm b/code/_helpers/logging.dm index fa4ffabfee..793d605b3d 100644 --- a/code/_helpers/logging.dm +++ b/code/_helpers/logging.dm @@ -279,6 +279,9 @@ #endif /proc/log_tgui(user_or_client, text) + if(!text) + stack_trace("Pointless log_tgui message") + return var/entry = "" if(!user_or_client) entry += "no user" diff --git a/code/_helpers/unsorted.dm b/code/_helpers/unsorted.dm index 93ea9ee2cb..277a668442 100644 --- a/code/_helpers/unsorted.dm +++ b/code/_helpers/unsorted.dm @@ -840,7 +840,11 @@ Turf and target are seperate in case you want to teleport some distance from a t //Move the objects. Not forceMove because the object isn't "moving" really, it's supposed to be on the "same" turf. for(var/obj/O in T) O.loc = X - O.update_light() + if(O.light_system == STATIC_LIGHT) + O.update_light() + else + var/datum/component/overlay_lighting/OL = O.GetComponent(/datum/component/overlay_lighting) + OL?.on_parent_moved(O, T, O.dir, TRUE) if(z_level_change) // The objects still need to know if their z-level changed. O.onTransitZ(T.z, X.z) diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index bdde739d83..98c187fc97 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -177,7 +177,10 @@ var/list/global_huds = list( var/obj/screen/move_intent var/list/adding + /// Misc hud elements that are hidden when the hud is minimized var/list/other + /// Same, but always shown even when the hud is minimized + var/list/other_important var/list/miniobjs var/list/obj/screen/hotkeybuttons @@ -214,6 +217,7 @@ var/list/global_huds = list( move_intent = null adding = null other = null + other_important = null hotkeybuttons = null // item_action_list = null // ? mymob = null @@ -367,12 +371,16 @@ var/list/global_huds = list( client.screen -= hud_used.other if(hud_used.hotkeybuttons) client.screen -= hud_used.hotkeybuttons + if(hud_used.other_important) + client.screen -= hud_used.other_important else hud_used.hud_shown = 1 if(hud_used.adding) client.screen += hud_used.adding if(hud_used.other && hud_used.inventory_shown) client.screen += hud_used.other + if(hud_used.other_important) + client.screen += hud_used.other_important if(hud_used.hotkeybuttons && !hud_used.hotkey_ui_hidden) client.screen += hud_used.hotkeybuttons if(healths) diff --git a/code/controllers/subsystems/skybox.dm b/code/controllers/subsystems/skybox.dm index 05053fbb0f..99f69ec595 100644 --- a/code/controllers/subsystems/skybox.dm +++ b/code/controllers/subsystems/skybox.dm @@ -93,13 +93,17 @@ SUBSYSTEM_DEF(skybox) . = ..() /datum/controller/subsystem/skybox/proc/get_skybox(z) + if(!subsystem_initialized) + return // WAIT if(!skybox_cache["[z]"]) skybox_cache["[z]"] = generate_skybox(z) return skybox_cache["[z]"] /datum/controller/subsystem/skybox/proc/generate_skybox(z) var/datum/skybox_settings/settings = global.using_map.get_skybox_datum(z) - + + var/new_overlays = list() + var/image/res = image(settings.icon) res.appearance_flags = KEEP_TOGETHER @@ -111,23 +115,26 @@ SUBSYSTEM_DEF(skybox) stars.appearance_flags = RESET_COLOR base.overlays += stars - res.overlays += base + new_overlays += base if(global.using_map.use_overmap && settings.use_overmap_details) var/obj/effect/overmap/visitable/O = get_overmap_sector(z) if(istype(O)) - var/image/overmap = image(settings.icon) - overmap.overlays += O.generate_skybox() + var/image/self_image = O.generate_skybox(z) + new_overlays += self_image for(var/obj/effect/overmap/visitable/other in O.loc) if(other != O) - overmap.overlays += other.get_skybox_representation() - overmap.appearance_flags = RESET_COLOR - res.overlays += overmap + new_overlays += other.get_skybox_representation(z) // Allow events to apply custom overlays to skybox! (Awesome!) for(var/datum/event/E in SSevents.active_events) if(E.has_skybox_image && E.isRunning && (z in E.affecting_z)) - res.overlays += E.get_skybox_image() + new_overlays += E.get_skybox_image() + + for(var/image/I in new_overlays) + I.appearance_flags |= RESET_COLOR + + res.overlays = new_overlays return res diff --git a/code/controllers/subsystems/transcore_vr.dm b/code/controllers/subsystems/transcore_vr.dm index ebf47439d6..6b0815999b 100644 --- a/code/controllers/subsystems/transcore_vr.dm +++ b/code/controllers/subsystems/transcore_vr.dm @@ -114,7 +114,7 @@ SUBSYSTEM_DEF(transcore) else if(curr_MR.dead_state != MR_DEAD) //First time switching to dead if(curr_MR.do_notify) - db.notify(curr_MR.mindname) + db.notify(curr_MR) curr_MR.last_notification = world.time curr_MR.dead_state = MR_DEAD @@ -250,10 +250,15 @@ SUBSYSTEM_DEF(transcore) return 1 -// Send a past-due notification to the medical radio channel. -/datum/transcore_db/proc/notify(var/name) - ASSERT(name) - global_announcer.autosay("[name] is past-due for a mind backup.", "TransCore Oversight", "Medical") +// Send a past-due notification to the proper radio channel. +/datum/transcore_db/proc/notify(var/datum/transhuman/mind_record/MR) + ASSERT(MR) + var/datum/transcore_db/db = SStranscore.db_by_mind_name(MR.mindname) + var/datum/transhuman/body_record/BR = db.body_scans[MR.mindname] + if(!BR) + global_announcer.autosay("[MR.mindname] is past-due for a mind backup, but lacks a corresponding body record.", "TransCore Oversight", "Medical") + return + global_announcer.autosay("[MR.mindname] is past-due for a mind backup.", "TransCore Oversight", BR.synthetic ? "Science" : "Medical") // Called from mind_record to add itself to the transcore. /datum/transcore_db/proc/add_backup(var/datum/transhuman/mind_record/MR) @@ -295,4 +300,4 @@ SUBSYSTEM_DEF(transcore) return disk.stored.len #undef SSTRANSCORE_BACKUPS -#undef SSTRANSCORE_IMPLANTS \ No newline at end of file +#undef SSTRANSCORE_IMPLANTS diff --git a/code/datums/autolathe/tools.dm b/code/datums/autolathe/tools.dm index be182c0713..e62232540f 100644 --- a/code/datums/autolathe/tools.dm +++ b/code/datums/autolathe/tools.dm @@ -59,3 +59,7 @@ resources = list(MAT_PLASTIC = 5000, MAT_STEEL = 2000) hidden = 1 man_rating = 2 + +/datum/category_item/autolathe/tools/rsf + name = "rapid service fabricator" + path = /obj/item/weapon/rsf diff --git a/code/datums/components/crafting/crafting.dm b/code/datums/components/crafting/crafting.dm index e823199af3..cc6bb53a97 100644 --- a/code/datums/components/crafting/crafting.dm +++ b/code/datums/components/crafting/crafting.dm @@ -8,7 +8,7 @@ var/datum/hud/H = user.hud_used var/obj/screen/craft/C = new() C.icon = H.ui_style - H.other += C + LAZYADD(H.other_important, C) CL.screen += C RegisterSignal(C, COMSIG_CLICK, .proc/component_ui_interact) @@ -49,6 +49,7 @@ var/datum/action/innate/crafting/button var/display_craftable_only = FALSE var/display_compact = TRUE + var/tgui_category_hint /* This is what procs do: get_environment - gets a list of things accessable for crafting by user @@ -357,7 +358,7 @@ container.close_all() qdel(DL) -/datum/component/personal_crafting/proc/component_ui_interact(/obj/screen/craft/image, location, control, params, user) +/datum/component/personal_crafting/proc/component_ui_interact(source, location, control, params, user) // SIGNAL_HANDLER if(user == parent) @@ -380,6 +381,18 @@ ui.open() /datum/component/personal_crafting/tgui_data(mob/user) + // ANNOYING. We won't know what category will be on top (and thus first selected) in the UI + // until we crunch all the resources in tgui_static_data. So it just sets a hint and we + // consume it and set the category on the first UI open + if(tgui_category_hint) + cur_category = tgui_category_hint + tgui_category_hint = null + if(islist(categories[cur_category])) + var/list/subcats = categories[cur_category] + cur_subcategory = subcats[1] + else + cur_subcategory = CAT_NONE + var/list/data = list() data["busy"] = busy data["category"] = cur_category @@ -411,6 +424,7 @@ var/datum/crafting_recipe/R = rec if(R.name == "") //This is one of the invalid parents that sneaks in + GLOB.crafting_recipes -= rec continue if(!R.always_available && !(R.type in user?.mind?.learned_recipes)) //User doesn't actually know how to make this. @@ -427,6 +441,9 @@ crafting_recipes[R.category]["has_subcats"] = TRUE crafting_recipes[R.category][R.subcategory] += list(build_recipe_data(R)) + if(crafting_recipes.len) + tgui_category_hint = crafting_recipes[1] + data["crafting_recipes"] = crafting_recipes return data diff --git a/code/datums/components/crafting/recipes.dm b/code/datums/components/crafting/recipes.dm index 5d4cd12c61..bd5aec3395 100644 --- a/code/datums/components/crafting/recipes.dm +++ b/code/datums/components/crafting/recipes.dm @@ -5,7 +5,10 @@ /datum/crafting_recipe var/name = "" //in-game display name - var/list/reqs = list() //type paths of items consumed associated with how many are needed + /// type paths of items consumed associated with how many are needed + /// Note that stacks have special handling: the logic accounts for having '23' available + /// in the case of just having one stack of 23 amount, so stack/steel = 23 is fine + var/list/reqs = list() var/list/blacklist = list() //type paths of items explicitly not allowed as an ingredient var/result //type path of item resulting from this craft /// String defines of items needed but not consumed. Lazy list. @@ -44,13 +47,3 @@ /datum/crafting_recipe/proc/on_craft_completion(mob/user, atom/result) return - -/datum/crafting_recipe/stunprod - name = "Stunprod" - result = /obj/item/weapon/melee/baton/cattleprod - reqs = list(/obj/item/weapon/handcuffs/cable = 1, - /obj/item/stack/rods = 1, - /obj/item/weapon/tool/wirecutters = 1) - time = 40 - category = CAT_WEAPONRY - subcategory = CAT_WEAPON \ No newline at end of file diff --git a/code/datums/components/crafting/recipes/primitive.dm b/code/datums/components/crafting/recipes/primitive.dm new file mode 100644 index 0000000000..064fd63020 --- /dev/null +++ b/code/datums/components/crafting/recipes/primitive.dm @@ -0,0 +1,13 @@ +/datum/crafting_recipe/cloth + name = "Cloth bolt" + result = /obj/item/stack/material/cloth + reqs = list(/obj/item/stack/material/fiber = 3) + time = 40 + category = CAT_PRIMAL + +/datum/crafting_recipe/crude_bandage + name = "Crude bandages (x10)" + result = /obj/item/stack/medical/crude_pack + reqs = list(/obj/item/stack/material/cloth = 2) + time = 40 + category = CAT_PRIMAL diff --git a/code/datums/components/crafting/recipes/weapons.dm b/code/datums/components/crafting/recipes/weapons.dm new file mode 100644 index 0000000000..32a8b2cc4e --- /dev/null +++ b/code/datums/components/crafting/recipes/weapons.dm @@ -0,0 +1,9 @@ +/datum/crafting_recipe/stunprod + name = "Stunprod" + result = /obj/item/weapon/melee/baton/cattleprod + reqs = list(/obj/item/weapon/handcuffs/cable = 1, + /obj/item/stack/rods = 1, + /obj/item/weapon/tool/wirecutters = 1) + time = 40 + category = CAT_WEAPONRY + subcategory = CAT_WEAPON \ No newline at end of file diff --git a/code/datums/outfits/jobs/medical.dm b/code/datums/outfits/jobs/medical.dm index 0ad0938db5..ca95c8b52e 100644 --- a/code/datums/outfits/jobs/medical.dm +++ b/code/datums/outfits/jobs/medical.dm @@ -92,7 +92,7 @@ /decl/hierarchy/outfit/job/medical/paramedic name = OUTFIT_JOB_NAME("Paramedic") - uniform = /obj/item/clothing/under/rank/medical/scrubs/black + uniform = /obj/item/clothing/under/rank/medical/paramedic suit = /obj/item/clothing/suit/storage/toggle/fr_jacket shoes = /obj/item/clothing/shoes/boots/jackboots l_hand = /obj/item/weapon/storage/firstaid/regular @@ -103,5 +103,5 @@ /decl/hierarchy/outfit/job/medical/paramedic/emt name = OUTFIT_JOB_NAME("Emergency Medical Technician") - uniform = /obj/item/clothing/under/rank/medical/paramedic + uniform = /obj/item/clothing/under/rank/medical/paramedic_alt suit = /obj/item/clothing/suit/storage/toggle/labcoat/emt diff --git a/code/datums/supplypacks/medical.dm b/code/datums/supplypacks/medical.dm index 69f198bbd4..eb7d350c5f 100644 --- a/code/datums/supplypacks/medical.dm +++ b/code/datums/supplypacks/medical.dm @@ -202,7 +202,7 @@ /obj/item/clothing/under/rank/medical/paramedic, /obj/item/clothing/suit/storage/toggle/fr_jacket, /obj/item/clothing/mask/gas, - /obj/item/clothing/under/rank/medical/paramedic, + /obj/item/clothing/under/rank/medical/paramedic_alt, /obj/item/clothing/accessory/stethoscope, /obj/item/weapon/storage/firstaid/adv, /obj/item/clothing/shoes/boots/jackboots, @@ -305,8 +305,8 @@ /datum/supply_pack/med/medicalbiosuits name = "Medical biohazard gear" contains = list( - /obj/item/clothing/head/bio_hood = 3, - /obj/item/clothing/suit/bio_suit = 3, + /obj/item/clothing/head/bio_hood/modern = 3, + /obj/item/clothing/suit/bio_suit/modern = 3, /obj/item/clothing/head/bio_hood/virology = 2, /obj/item/clothing/suit/bio_suit/cmo, /obj/item/clothing/head/bio_hood/cmo, diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 1b47513e1b..d443b0bf0a 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -378,6 +378,7 @@ /atom/movable/proc/onTransitZ(old_z,new_z) GLOB.z_moved_event.raise_event(src, old_z, new_z) + SEND_SIGNAL(src, COMSIG_MOVABLE_Z_CHANGED, old_z, new_z) for(var/item in src) // Notify contents of Z-transition. This can be overridden IF we know the items contents do not care. var/atom/movable/AM = item AM.onTransitZ(old_z,new_z) diff --git a/code/game/gamemodes/technomancer/core_obj.dm b/code/game/gamemodes/technomancer/core_obj.dm index fb1e62c86e..cc2102cc45 100644 --- a/code/game/gamemodes/technomancer/core_obj.dm +++ b/code/game/gamemodes/technomancer/core_obj.dm @@ -13,7 +13,7 @@ TECH_COMBAT = 7, TECH_MAGNET = 9, TECH_DATA = 5 ) sprite_sheets = list( - SPECIES_TESHARI = 'icons/mob/species/teshari/back.dmi' + SPECIES_TESHARI = 'icons/inventory/back/mob_teshari.dmi' ) var/energy = 10000 var/max_energy = 10000 diff --git a/code/game/machinery/casino_ch.dm b/code/game/machinery/casino_ch.dm index b6aa6a712d..1c39d2221c 100644 --- a/code/game/machinery/casino_ch.dm +++ b/code/game/machinery/casino_ch.dm @@ -229,57 +229,6 @@ busy = FALSE - -/obj/structure/wheel_of_fortune - name = "wheel of fortune" - desc = "May fortune favour the lucky one!" - icon = 'icons/obj/casino_ch.dmi' - icon_state = "wheel_of_fortune" - density = 1 - anchored = 1 - var/interval = 1 - var/busy = 0 - - var/datum/effect/effect/system/confetti_spread - var/confetti_strength = 8 - -/obj/structure/wheel_of_fortune/verb/setinterval() - set name = "Change interval" - set category = "Object" - set src in view(1) - - if(usr.incapacitated()) - return - if(ishuman(usr) || istype(usr, /mob/living/silicon/robot)) - interval = input("Put the desired interval (1-100)", "Set Interval") as num - if(interval>100 || interval<1) - usr << "Invalid interval." - return - usr << "You set the interval to [interval]" - return - - -/obj/structure/wheel_of_fortune/attack_hand(mob/user as mob) - if (busy) - to_chat(user,"The wheel of fortune is already spinning! ") - return - visible_message("\ [user] spins the wheel of fortune!") - busy = 1 - icon_state = "wheel_of_fortune_spinning" - var/result = rand(1,interval) - add_fingerprint(user) - spawn(5 SECONDS) - visible_message("The wheel of fortune stops spinning, the number is [result]!") - - src.confetti_spread = new /datum/effect/effect/system/confetti_spread() - src.confetti_spread.attach(src) //If somehow people start dragging slot machine - spawn(0) - for(var/i = 1 to confetti_strength) - src.confetti_spread.start() - sleep(10) - busy=0 - icon_state = "wheel_of_fortune" - /obj/structure/stripper_pole name = "stripper pole" icon = 'icons/obj/casino_ch.dmi' @@ -1009,3 +958,186 @@ spawn_money(round(I:worth/2.5), src.loc) src.attack_hand(user) qdel(I) + +/obj/machinery/wheel_of_fortune + name = "wheel of fortune" + desc = "The Wheel of Fortune! Insert chips and may fortune favour the lucky one at the next lottery!" + icon = 'icons/obj/64x64_ch.dmi' + icon_state = "wheel_of_fortune" + density = 1 + anchored = 1 + pixel_x = -16 + + req_access = list(300) + var/interval = 1 + var/busy = 0 + var/public_spin = 0 + var/lottery_sale = "disabled" + var/lottery_price = 100 + var/lottery_entries = 0 + var/lottery_tickets = list() + var/lottery_tickets_ckeys = list() + + var/datum/effect/effect/system/confetti_spread + var/confetti_strength = 15 + + +/obj/machinery/wheel_of_fortune/attack_hand(mob/user as mob) + if (busy) + to_chat(user,"The wheel of fortune is already spinning! ") + return + + if(usr.incapacitated()) + return + if(ishuman(usr) || istype(usr, /mob/living/silicon/robot)) + switch(input(user,"Choose what to do","Wheel Of Fortune") in list("Spin the Wheel! (Not Lottery)", "Set the interval", "Cancel")) + if("Cancel") + return + if("Spin the Wheel! (Not Lottery)") + if(public_spin == 0) + to_chat(user,"The Wheel makes a sad beep, public spins are not enabled right now.. ") + return + else + to_chat(user,"You spin the wheel! ") + spin_the_wheel("not_lottery") + if("Set the interval") + setinterval() + + +/obj/machinery/wheel_of_fortune/attackby(obj/item/weapon/W as obj, mob/user as mob) + if (busy) + to_chat(user,"The wheel of fortune is already spinning! ") + return + + if(usr.incapacitated()) + return + + if(istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda)) + if(!check_access(W)) + to_chat(user, "Access Denied.") + return + else + to_chat(user, "Proper access, allowed staff controls.") + if(ishuman(usr) || istype(usr, /mob/living/silicon/robot)) + switch(input(user,"Choose what to do (Management)","Wheel Of Fortune (Management)") in list("Spin the Lottery Wheel!", "Toggle Lottery Sales", "Toggle Public Spins", "Reset Lottery", "Cancel")) + if("Cancel") + return + if("Spin the Lottery Wheel!") + to_chat(user,"You spin the wheel for the lottery! ") + spin_the_wheel("lottery") + + if("Toggle Lottery Sales") + if(lottery_sale == "disabled") + lottery_sale = "enabled" + to_chat(user,"Public Lottery sale has been enabled. ") + else + lottery_sale = "disabled" + to_chat(user,"Public Lottery sale has been disabled. ") + + if("Toggle Public Spins") + if(public_spin == 0) + public_spin = 1 + to_chat(user,"Public spins has been enabled. ") + else + public_spin = 0 + to_chat(user,"Public spins has been disabled. ") + + if("Reset Lottery") + var/confirm = tgui_alert(usr, "Are you sure you want to reset Lottery?", "Confirm Lottery Reset", list("Yes", "No")) + if(confirm == "Yes") + to_chat(user, "Lottery has been Reset!") + lottery_entries = 0 + lottery_tickets = list() + lottery_tickets_ckeys = list() + + if(istype(W, /obj/item/weapon/spacecasinocash)) + if(lottery_sale == "disabled") + to_chat(user, "Lottery sales are currently disabled.") + return + else + if(user.client.ckey in lottery_tickets_ckeys) + to_chat(user, "The scanner beeps in an upset manner, you already have a ticket!") + return + + var/obj/item/weapon/spacecasinocash/C = W + insert_chip(C, user) + +/obj/machinery/wheel_of_fortune/proc/insert_chip(var/obj/item/weapon/spacecasinocash/cashmoney, mob/user) + if (busy) + to_chat(user,"The Wheel of Fortune is busy, wait for it to be done to buy a lottery ticket. ") + return + if(cashmoney.worth < lottery_price) + to_chat(user,"You dont have enough chips to buy a lottery ticket! ") + return + + to_chat(user,"You put [lottery_price] credits worth of chips into the Wheel of Fortune and it pings to notify of your lottery ticket registered!") + cashmoney.worth -= lottery_price + cashmoney.update_icon() + + if(cashmoney.worth <= 0) + usr.drop_from_inventory(cashmoney) + qdel(cashmoney) + cashmoney.update_icon() + + lottery_entries++ + lottery_tickets += "Number.[lottery_entries] [user.name]" + lottery_tickets_ckeys += user.client.ckey + +/obj/machinery/wheel_of_fortune/proc/spin_the_wheel(var/mode) + var/result = 0 + + if(mode == "not_lottery") + busy = 1 + icon_state = "wheel_of_fortune_spinning" + result = rand(1,interval) + + spawn(5 SECONDS) + visible_message("The wheel of fortune stops spinning, the number is [result]!") + src.confetti_spread = new /datum/effect/effect/system/confetti_spread() + src.confetti_spread.attach(src) //If somehow people start dragging slot machine + spawn(0) + for(var/i = 1 to confetti_strength) + src.confetti_spread.start() + sleep(10) + + flick("[icon_state]-winning",src) + busy = 0 + icon_state = "wheel_of_fortune" + + if(mode == "lottery") + if(lottery_entries == 0) + visible_message("There are no tickets in the system!") + return + + busy = 1 + icon_state = "wheel_of_fortune_spinning" + result = pick(lottery_tickets) + + spawn(5 SECONDS) + visible_message("The wheel of fortune stops spinning, and the winner is [result]!") + src.confetti_spread = new /datum/effect/effect/system/confetti_spread() + src.confetti_spread.attach(src) //If somehow people start dragging slot machine + spawn(0) + for(var/i = 1 to confetti_strength) + src.confetti_spread.start() + sleep(10) + + flick("[icon_state]-winning",src) + busy = 0 + icon_state = "wheel_of_fortune" + + +/obj/machinery/wheel_of_fortune/verb/setinterval() + set name = "Change interval" + set category = "Object" + set src in view(1) + + if(usr.incapacitated()) + return + if(ishuman(usr) || istype(usr, /mob/living/silicon/robot)) + interval = input("Put the desired interval (1-1000)", "Set Interval") as num + if(interval>1000 || interval<1) + usr << "Invalid interval." + return + usr << "You set the interval to [interval]" + return \ No newline at end of file diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index f04aba5a25..5b39bc618f 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -13,12 +13,13 @@ var/list/network = list() var/datum/tgui_module/camera/camera + var/camera_datum_type = /datum/tgui_module/camera /obj/machinery/computer/security/Initialize() . = ..() if(!LAZYLEN(network)) network = get_default_networks() - camera = new(src, network) + camera = new camera_datum_type(src, network) /obj/machinery/computer/security/proc/get_default_networks() . = using_map.station_networks.Copy() @@ -67,19 +68,41 @@ density = 0 circuit = null +GLOBAL_LIST_EMPTY(entertainment_screens) /obj/machinery/computer/security/telescreen/entertainment name = "entertainment monitor" desc = "Damn, why do they never have anything interesting on these things?" - icon = 'icons/obj/status_display.dmi' - icon_screen = "entertainment" + icon = 'icons/obj/entertainment_monitor.dmi' + icon_state = "screen" + icon_screen = null light_color = "#FFEEDB" light_range_on = 2 network = list(NETWORK_THUNDER) circuit = /obj/item/weapon/circuitboard/security/telescreen/entertainment + camera_datum_type = /datum/tgui_module/camera/bigscreen + var/obj/item/device/radio/radio = null + var/obj/effect/overlay/vis/pinboard + var/weakref/showing /obj/machinery/computer/security/telescreen/entertainment/Initialize() + GLOB.entertainment_screens += src + + var/static/icon/mask = icon('icons/obj/entertainment_monitor.dmi', "mask") + + add_overlay("glass") + + pinboard = new() + pinboard.icon = icon + pinboard.icon_state = "pinboard" + pinboard.layer = 0.1 + pinboard.vis_flags = VIS_UNDERLAY|VIS_INHERIT_ID|VIS_INHERIT_PLANE + pinboard.appearance_flags = KEEP_TOGETHER + pinboard.add_filter("screen cutter", 1, alpha_mask_filter(icon = mask)) + vis_contents += pinboard + . = ..() + radio = new(src) radio.listening = TRUE radio.broadcasting = FALSE @@ -87,13 +110,44 @@ radio.canhear_range = 7 // Same as default sight range. power_change() +/obj/machinery/computer/security/telescreen/entertainment/Destroy() + if(showing) + stop_showing() + vis_contents.Cut() + qdel_null(pinboard) + qdel_null(radio) + return ..() + +/obj/machinery/computer/security/telescreen/entertainment/Click(location, control, params) + attack_hand(usr) + +/obj/machinery/computer/security/telescreen/entertainment/update_icon() + return // NUH + +/obj/machinery/computer/security/telescreen/entertainment/proc/show_thing(atom/thing) + if(showing) + stop_showing() + if(stat & NOPOWER) + return + showing = weakref(thing) + pinboard.vis_contents = list(thing) + +/obj/machinery/computer/security/telescreen/entertainment/proc/stop_showing() + // Reverse of the above + pinboard.vis_contents = null + showing = null + +/obj/machinery/computer/security/telescreen/entertainment/proc/maybe_stop_showing(weakref/thingref) + if(showing == thingref) + stop_showing() + /obj/machinery/computer/security/telescreen/entertainment/power_change() ..() - if(radio) - if(stat & NOPOWER) - radio.on = FALSE - else - radio.on = TRUE + if(stat & NOPOWER) + radio?.on = FALSE + stop_showing() + else + radio?.on = TRUE /obj/machinery/computer/security/wooden_tv name = "security camera monitor" diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index 51d97df592..8d5dd425e3 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -491,6 +491,19 @@ for(var/datum/data/record/G in data_core.general) if((G.fields["name"] == to_despawn.real_name)) qdel(G) + + // Also check the hidden version of each datacore, if they're an offmap role. + var/datum/job/J = SSjob.get_job(job) + if(J?.offmap_spawn) + for(var/datum/data/record/R in data_core.hidden_general) + if((R.fields["name"] == to_despawn.real_name)) + qdel(R) + for(var/datum/data/record/T in data_core.hidden_security) + if((T.fields["name"] == to_despawn.real_name)) + qdel(T) + for(var/datum/data/record/G in data_core.hidden_medical) + if((G.fields["name"] == to_despawn.real_name)) + qdel(G) icon_state = base_icon_state diff --git a/code/game/machinery/doors/blast_door.dm b/code/game/machinery/doors/blast_door.dm index c1cdc8a969..a086a490e0 100644 --- a/code/game/machinery/doors/blast_door.dm +++ b/code/game/machinery/doors/blast_door.dm @@ -404,6 +404,13 @@ icon_state_closing = "closing" icon_state = "closed" +/obj/machinery/door/blast/multi_tile/four_tile_ver_sec + icon = 'icons/obj/doors/1x4blast_vert_sec.dmi' + bound_height = 128 + width = 4 + dir = NORTH + autoclose = TRUE + /obj/machinery/door/blast/multi_tile/four_tile_ver icon = 'icons/obj/doors/1x4blast_vert.dmi' bound_height = 128 @@ -422,6 +429,13 @@ width = 2 dir = NORTH +/obj/machinery/door/blast/multi_tile/four_tile_hor_sec + icon = 'icons/obj/doors/1x4blast_hor_sec.dmi' + bound_width = 128 + width = 4 + dir = EAST + autoclose = TRUE + /obj/machinery/door/blast/multi_tile/four_tile_hor icon = 'icons/obj/doors/1x4blast_hor.dmi' bound_width = 128 diff --git a/code/game/machinery/gear_dispenser.dm b/code/game/machinery/gear_dispenser.dm index a2723a2597..adb204e4d9 100644 --- a/code/game/machinery/gear_dispenser.dm +++ b/code/game/machinery/gear_dispenser.dm @@ -80,15 +80,16 @@ var/list/dispenser_presets = list() var/spawned = list() voidsuit = new voidsuit_type(T) - spawned += voidsuit + spawned += voidsuit // We only add the voidsuit so the game doesn't try to put the tank/helmet/boots etc into their hands + // If we're supposed to make a helmet if(voidhelmet_type) // The coder may not have realized this type spawns its own helmet if(voidsuit.helmet) error("[src] created a voidsuit [voidsuit] and wants to add a helmet but it already has one") else - voidsuit.attach_helmet(new voidhelmet_type()) - spawned += voidhelmet + voidhelmet = new voidhelmet_type() + voidsuit.attach_helmet(voidhelmet) // If we're supposed to make boots if(magboots_type) // The coder may not have realized thist ype spawns its own boots @@ -97,7 +98,6 @@ var/list/dispenser_presets = list() else magboots = new magboots_type(voidsuit) voidsuit.boots = magboots - spawned += magboots if(refit) voidsuit.refit_for_species(user.species?.get_bodytype()) // does helmet and boots if they're attached @@ -109,7 +109,6 @@ var/list/dispenser_presets = list() else var/obj/item/life_support = new /obj/item/device/suit_cooling_unit(voidsuit) voidsuit.cooler = life_support - spawned += life_support else if(user.species?.breath_type) if(voidsuit.tank) error("[src] created a voidsuit [voidsuit] and wants to add a tank but it already has one") @@ -121,7 +120,6 @@ var/list/dispenser_presets = list() if(tankpath) var/obj/item/life_support = new tankpath(voidsuit) voidsuit.tank = life_support - spawned += life_support else voidsuit.audible_message("Dispenser warning: Unable to locate suitable airtank for user.") @@ -567,6 +565,27 @@ var/list/dispenser_presets = list() one_setting = /datum/gear_disp/voidsuit/autolok special_frame = "frame_grey" +////////////////////////////// MOEBIUS SUIT DISPENSERS /////////////////////////// +/datum/gear_disp/voidsuit/aether + name = "Aether Voidsuit" + voidsuit_type = /obj/item/clothing/suit/space/void/aether + voidhelmet_type = /obj/item/clothing/head/helmet/space/void/aether + refit = FALSE // No animal sprites AAA! + +/obj/machinery/gear_dispenser/suit/aether + name = "\improper Aether Voidsuit Dispenser" + desc = "An industrial U-Tak-It Dispenser unit designed to fetch a specific Aether-produced high-end suit." + icon_state = "suitdispenserMB" + dispenser_flags = GD_ONEITEM|GD_NOGREED|GD_UNLIMITED + one_setting = /datum/gear_disp/voidsuit/aether + +/obj/machinery/gear_dispenser/suit_fancy/aether + name = "\improper Aether Voidsuit Dispenser" + desc = "A commercial U-Tak-It Dispenser unit designed to fetch a specific Aether-produced high-end suit." + dispenser_flags = GD_ONEITEM|GD_NOGREED|GD_UNLIMITED + one_setting = /datum/gear_disp/voidsuit/aether + special_frame = "frame_purple" + // Adminbuse /obj/machinery/gear_dispenser/vv_get_dropdown() . = ..() diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index f94c284967..47444f69e5 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -845,9 +845,9 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out. return icon_override //2: species-specific sprite sheets (skipped for inhands) - if(LAZYLEN(sprite_sheets)) + if(LAZYLEN(sprite_sheets) && !inhands) var/sheet = sprite_sheets[body_type] - if(sheet && !inhands) + if(sheet) return sheet //3: slot-specific sprite sheets diff --git a/code/game/objects/items/devices/chameleonproj.dm b/code/game/objects/items/devices/chameleonproj.dm index 09cee5bb4c..b8dc28b2e9 100644 --- a/code/game/objects/items/devices/chameleonproj.dm +++ b/code/game/objects/items/devices/chameleonproj.dm @@ -11,7 +11,7 @@ var/can_use = 1 var/obj/effect/dummy/chameleon/active_dummy = null var/saved_item = /obj/item/trash/cigbutt - var/saved_icon = 'icons/obj/clothing/masks.dmi' + var/saved_icon = 'icons/inventory/face/item.dmi' var/saved_icon_state = "cigbutt" var/saved_overlays diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 258fa02632..22cfcad31d 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -8,7 +8,7 @@ subspace_transmission = 1 canhear_range = 0 // can't hear headsets from very far away slot_flags = SLOT_EARS - sprite_sheets = list(SPECIES_TESHARI = 'icons/mob/species/teshari/ears.dmi') + sprite_sheets = list(SPECIES_TESHARI = 'icons/inventory/ears/mob_teshari.dmi') var/translate_binary = 0 var/translate_hive = 0 diff --git a/code/game/objects/items/devices/radio/headset_vr.dm b/code/game/objects/items/devices/radio/headset_vr.dm index 1285ae0709..ce4e3377a9 100644 --- a/code/game/objects/items/devices/radio/headset_vr.dm +++ b/code/game/objects/items/devices/radio/headset_vr.dm @@ -22,8 +22,8 @@ icon_state = "nt_headset_alt" /obj/item/device/radio/headset - sprite_sheets = list(SPECIES_TESHARI = 'icons/mob/species/teshari/ears.dmi', - SPECIES_WEREBEAST = 'icons/mob/species/werebeast/ears.dmi') + sprite_sheets = list(SPECIES_TESHARI = 'icons/inventory/ears/mob_teshari.dmi', + SPECIES_WEREBEAST = 'icons/inventory/ears/mob_werebeast.dmi') /obj/item/device/radio/headset/mob_headset //Adminbus headset for simplemob shenanigans. name = "nonhuman radio receiver" diff --git a/code/game/objects/items/devices/radio/radiopack.dm b/code/game/objects/items/devices/radio/radiopack.dm index 3bc222373f..98cbd1064b 100644 --- a/code/game/objects/items/devices/radio/radiopack.dm +++ b/code/game/objects/items/devices/radio/radiopack.dm @@ -2,7 +2,7 @@ name = "bluespace radio" desc = "A powerful radio that uses a tiny bluespace wormhole to send signals directly to subspace receivers and transmitters, bypassing the limitations of subspace." icon = 'icons/obj/device_vr.dmi' // VOREStation Edit - icon_override = 'icons/mob/back_vr.dmi' // VOREStation Edit + icon_override = 'icons/inventory/back/mob_vr.dmi' // VOREStation Edit icon_state = "radiopack" item_state = "radiopack" slot_flags = SLOT_BACK diff --git a/code/game/objects/items/devices/tvcamera.dm b/code/game/objects/items/devices/tvcamera.dm index acf4b7cc3a..b7d7933a88 100644 --- a/code/game/objects/items/devices/tvcamera.dm +++ b/code/game/objects/items/devices/tvcamera.dm @@ -8,6 +8,8 @@ var/channel = "NCS Northern Star News Feed" var/obj/machinery/camera/network/thunder/camera var/obj/item/device/radio/radio + var/weakref/showing + var/showing_name /obj/item/device/tvcamera/New() ..() @@ -45,9 +47,14 @@ /obj/item/device/tvcamera/attack_self(mob/user) add_fingerprint(user) user.set_machine(src) + show_ui(user) + +/obj/item/device/tvcamera/proc/show_ui(mob/user) var/dat = list() dat += "Channel name is: [channel ? channel : "unidentified broadcast"]
" dat += "Video streaming is [camera.status ? "on" : "off"]
" + if(camera.status && showing_name) + dat += "- You're showing [showing_name] to your viewers.
" dat += "Mic is [radio.broadcasting ? "on" : "off"]
" dat += "Sound is being broadcasted on frequency [format_frequency(radio.frequency)] ([get_frequency_name(radio.frequency)])
" var/datum/browser/popup = new(user, "Hovercamera", "Eye Buddy", 300, 390, src) @@ -67,8 +74,12 @@ camera.set_status(!camera.status) if(camera.status) to_chat(usr,"Video streaming activated. Broadcasting on channel '[channel]'") + show_tvs(loc) else to_chat(usr,"Video streaming deactivated.") + hide_tvs() + for(var/obj/machinery/computer/security/telescreen/entertainment/ES as anything in GLOB.entertainment_screens) + ES.stop_showing() update_icon() if(href_list["sound"]) radio.ToggleBroadcast() @@ -79,6 +90,50 @@ if(!href_list["close"]) attack_self(usr) +/obj/item/device/tvcamera/proc/show_tvs(atom/thing) + if(showing) + hide_tvs(showing) + + showing = weakref(thing) + showing_name = "[thing]" + for(var/obj/machinery/computer/security/telescreen/entertainment/ES as anything in GLOB.entertainment_screens) + ES.show_thing(thing) + + START_PROCESSING(SSobj, src) + +/obj/item/device/tvcamera/proc/hide_tvs() + if(!showing) + return + for(var/obj/machinery/computer/security/telescreen/entertainment/ES as anything in GLOB.entertainment_screens) + ES.maybe_stop_showing(showing) + STOP_PROCESSING(SSobj, src) + showing = null + showing_name = null + +/obj/item/device/tvcamera/Moved(atom/old_loc, direction, forced = FALSE, movetime) + . = ..() + if(camera.status && loc != old_loc) + show_tvs(loc) + +/obj/item/device/tvcamera/afterattack(atom/target, mob/user, proximity_flag, click_parameters) + . = ..() + if(camera.status && !isturf(target)) + show_tvs(target) + user.visible_message("[user] aims [src] at [target].", "You aim [src] at [target].") + if(user.machine == src) + show_ui(user) // refresh the UI + +/obj/item/device/tvcamera/process() + if(!showing) + return PROCESS_KILL + + var/atom/A = showing.resolve() + if(!A || QDELETED(A)) + show_tvs(loc) + + if(get_dist(get_turf(src), get_turf(A)) > 5) + show_tvs(loc) + /obj/item/device/tvcamera/update_icon() ..() if(camera.status) diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm index 06b0e9edce..ddeac74b58 100644 --- a/code/game/objects/items/robot/robot_items.dm +++ b/code/game/objects/items/robot/robot_items.dm @@ -42,20 +42,20 @@ name = "\proper thermal vision" sight_mode = BORGTHERM icon_state = "thermal" - icon = 'icons/obj/clothing/glasses.dmi' + icon = 'icons/inventory/eyes/item.dmi' /obj/item/borg/sight/meson name = "\proper meson vision" sight_mode = BORGMESON icon_state = "meson" - icon = 'icons/obj/clothing/glasses.dmi' + icon = 'icons/inventory/eyes/item.dmi' /obj/item/borg/sight/material name = "\proper material scanner vision" sight_mode = BORGMATERIAL icon_state = "material" - icon = 'icons/obj/clothing/glasses.dmi' + icon = 'icons/inventory/eyes/item.dmi' /obj/item/borg/sight/hud name = "hud" @@ -65,7 +65,7 @@ /obj/item/borg/sight/hud/med name = "medical hud" icon_state = "healthhud" - icon = 'icons/obj/clothing/glasses.dmi' + icon = 'icons/inventory/eyes/item.dmi' /obj/item/borg/sight/hud/med/New() ..() @@ -76,7 +76,7 @@ /obj/item/borg/sight/hud/sec name = "security hud" icon_state = "securityhud" - icon = 'icons/obj/clothing/glasses.dmi' + icon = 'icons/inventory/eyes/item.dmi' /obj/item/borg/sight/hud/sec/New() ..() diff --git a/code/game/objects/items/toys/toys.dm b/code/game/objects/items/toys/toys.dm index bf4aec9fd3..0af6443e64 100644 --- a/code/game/objects/items/toys/toys.dm +++ b/code/game/objects/items/toys/toys.dm @@ -1442,7 +1442,7 @@ name = "inflatable duck" desc = "No bother to sink or swim when you can just float!" icon_state = "inflatable" - icon = 'icons/obj/clothing/belts.dmi' + icon = 'icons/inventory/belt/item.dmi' slot_flags = SLOT_BELT drop_sound = 'sound/items/drop/rubber.ogg' diff --git a/code/game/objects/items/trash.dm b/code/game/objects/items/trash.dm index e09c9b1e5d..1a109bab91 100644 --- a/code/game/objects/items/trash.dm +++ b/code/game/objects/items/trash.dm @@ -190,7 +190,7 @@ /obj/item/trash/spitgum name = "old gum" desc = "A disgusting chewed up wad of gum." - icon = 'icons/obj/clothing/masks.dmi' + icon = 'icons/inventory/face/item.dmi' icon_state = "spit-gum" drop_sound = 'sound/items/drop/flesh.ogg' pickup_sound = 'sound/items/pickup/flesh.ogg' @@ -198,7 +198,7 @@ /obj/item/trash/lollibutt name = "lollipop stick" desc = "A lollipop stick devoid of pop." - icon = 'icons/obj/clothing/masks.dmi' + icon = 'icons/inventory/face/item.dmi' icon_state = "pop-stick" drop_sound = 'sound/items/drop/component.ogg' pickup_sound = 'sound/items/pickup/component.ogg' @@ -206,7 +206,7 @@ /obj/item/trash/spitwad name = "spit wad" desc = "A disgusting spitwad." - icon = 'icons/obj/clothing/masks.dmi' + icon = 'icons/inventory/face/item.dmi' icon_state = "spit-chew" drop_sound = 'sound/items/drop/flesh.ogg' pickup_sound = 'sound/items/pickup/flesh.ogg' diff --git a/code/game/objects/items/uav.dm b/code/game/objects/items/uav.dm index ddd4bcda09..cd23ffc624 100644 --- a/code/game/objects/items/uav.dm +++ b/code/game/objects/items/uav.dm @@ -97,8 +97,10 @@ return // Can disasemble or reassemble from packed or off (and this one takes time) if("(Dis)Assemble") - if(can_transition_to(state == UAV_PACKED ? UAV_OFF : UAV_PACKED, user) && do_after(user, 10 SECONDS, src)) - return toggle_packed(user) + if(can_transition_to(state == UAV_PACKED ? UAV_OFF : UAV_PACKED, user)) + user.visible_message("[user] starts [state == UAV_PACKED ? "unpacking" : "packing"] [src].", "You start [state == UAV_PACKED ? "unpacking" : "packing"] [src].") + if(do_after(user, 10 SECONDS, src)) + return toggle_packed(user) // Can toggle power from on and off if("Toggle Power") if(can_transition_to(state == UAV_ON ? UAV_OFF : UAV_ON, user)) diff --git a/code/game/objects/items/weapons/RSF.dm b/code/game/objects/items/weapons/RSF.dm index b7371ce88c..a12ba0106a 100644 --- a/code/game/objects/items/weapons/RSF.dm +++ b/code/game/objects/items/weapons/RSF.dm @@ -13,6 +13,7 @@ RSF opacity = 0 density = 0 anchored = 0.0 + matter = list(DEFAULT_WALL_MATERIAL = 25000) var/stored_matter = 30 var/mode = 1 var/obj/item/weapon/reagent_containers/glasstype = /obj/item/weapon/reagent_containers/food/drinks/metaglass diff --git a/code/game/objects/items/weapons/chewables.dm b/code/game/objects/items/weapons/chewables.dm index 2ab2c95c72..93a2df1615 100644 --- a/code/game/objects/items/weapons/chewables.dm +++ b/code/game/objects/items/weapons/chewables.dm @@ -1,7 +1,7 @@ /obj/item/clothing/mask/chewable name = "chewable item master" desc = "If you are seeing this, ahelp it." - icon = 'icons/obj/clothing/masks.dmi' + icon = 'icons/inventory/face/item.dmi' drop_sound = 'sound/items/drop/food.ogg' body_parts_covered = 0 diff --git a/code/game/objects/items/weapons/cigs_lighters.dm b/code/game/objects/items/weapons/cigs_lighters.dm index 15170138d3..ade55cbeca 100644 --- a/code/game/objects/items/weapons/cigs_lighters.dm +++ b/code/game/objects/items/weapons/cigs_lighters.dm @@ -376,7 +376,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM /obj/item/trash/cigbutt name = "cigarette butt" desc = "A manky old cigarette butt." - icon = 'icons/obj/clothing/masks.dmi' + icon = 'icons/inventory/face/item.dmi' icon_state = "cigbutt" randpixel = 10 w_class = ITEMSIZE_TINY diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm index e6370499a0..ad016d0d85 100644 --- a/code/game/objects/items/weapons/storage/backpack.dm +++ b/code/game/objects/items/weapons/storage/backpack.dm @@ -5,10 +5,10 @@ /obj/item/weapon/storage/backpack name = "backpack" desc = "You wear this on your back and put items into it." - icon = 'icons/obj/clothing/backpack.dmi' + icon = 'icons/inventory/back/item.dmi' icon_state = "backpack" sprite_sheets = list( - SPECIES_TESHARI = 'icons/mob/species/teshari/back.dmi' + SPECIES_TESHARI = 'icons/inventory/back/mob_teshari.dmi' ) w_class = ITEMSIZE_LARGE slot_flags = SLOT_BACK diff --git a/code/game/objects/items/weapons/storage/backpack_vr.dm b/code/game/objects/items/weapons/storage/backpack_vr.dm index 59505d3f71..c98b1dcfc9 100644 --- a/code/game/objects/items/weapons/storage/backpack_vr.dm +++ b/code/game/objects/items/weapons/storage/backpack_vr.dm @@ -1,8 +1,8 @@ /obj/item/weapon/storage/backpack/saddlebag name = "Horse Saddlebags" desc = "A saddle that holds items. Seems slightly bulky." - icon = 'icons/obj/clothing/backpack_vr.dmi' - icon_override = 'icons/mob/back_vr.dmi' + icon = 'icons/inventory/back/item_vr.dmi' + icon_override = 'icons/inventory/back/mob_vr.dmi' item_state = "saddlebag" icon_state = "saddlebag" max_storage_space = INVENTORY_DUFFLEBAG_SPACE //Saddlebags can hold more, like dufflebags @@ -29,8 +29,8 @@ /obj/item/weapon/storage/backpack/saddlebag_common //Shared bag for other taurs with sturdy backs name = "Taur Saddlebags" desc = "A saddle that holds items. Seems slightly bulky." - icon = 'icons/obj/clothing/backpack_vr.dmi' - icon_override = 'icons/mob/back_vr.dmi' + icon = 'icons/inventory/back/item_vr.dmi' + icon_override = 'icons/inventory/back/mob_vr.dmi' item_state = "saddlebag" icon_state = "saddlebag" var/icon_base = "saddlebag" @@ -53,8 +53,8 @@ /obj/item/weapon/storage/backpack/saddlebag_common/robust //Shared bag for other taurs with sturdy backs name = "Robust Saddlebags" desc = "A saddle that holds items. Seems robust." - icon = 'icons/obj/clothing/backpack_vr.dmi' - icon_override = 'icons/mob/back_vr.dmi' + icon = 'icons/inventory/back/item_vr.dmi' + icon_override = 'icons/inventory/back/mob_vr.dmi' item_state = "robustsaddle" icon_state = "robustsaddle" icon_base = "robustsaddle" @@ -62,8 +62,8 @@ /obj/item/weapon/storage/backpack/saddlebag_common/vest //Shared bag for other taurs with sturdy backs name = "Taur Duty Vest" desc = "An armored vest with the armor modules replaced with various handy compartments with decent storage capacity. Useless for protection though. Holds less than a saddle." - icon = 'icons/obj/clothing/backpack_vr.dmi' - icon_override = 'icons/mob/back_vr.dmi' + icon = 'icons/inventory/back/item_vr.dmi' + icon_override = 'icons/inventory/back/mob_vr.dmi' item_state = "taurvest" icon_state = "taurvest" icon_base = "taurvest" @@ -77,8 +77,8 @@ /obj/item/weapon/storage/backpack sprite_sheets = list( - SPECIES_TESHARI = 'icons/mob/species/teshari/back.dmi', - SPECIES_WEREBEAST = 'icons/mob/species/werebeast/back.dmi') + SPECIES_TESHARI = 'icons/inventory/back/mob_teshari.dmi', + SPECIES_WEREBEAST = 'icons/inventory/back/mob_werebeast.dmi') /obj/item/weapon/storage/backpack/ert max_storage_space = INVENTORY_DUFFLEBAG_SPACE @@ -88,31 +88,31 @@ /obj/item/weapon/storage/backpack/explorer name = "exploration backpack" desc = "A backpack for carrying a large number of supplies easily." - icon = 'icons/obj/clothing/backpack_vr.dmi' - icon_override = 'icons/mob/back_vr.dmi' + icon = 'icons/inventory/back/item_vr.dmi' + icon_override = 'icons/inventory/back/mob_vr.dmi' icon_state = "explorer" /obj/item/weapon/storage/backpack/satchel/explorer name = "exploration satchel" desc = "A satchel for carrying a large number of supplies easily." - icon = 'icons/obj/clothing/backpack_vr.dmi' - icon_override = 'icons/mob/back_vr.dmi' + icon = 'icons/inventory/back/item_vr.dmi' + icon_override = 'icons/inventory/back/mob_vr.dmi' icon_state = "explorer_satchel" item_state_slots = null /obj/item/weapon/storage/backpack/messenger/explorer name = "exploration messenger bag" desc = "A sturdy backpack worn over one shoulder." - icon = 'icons/obj/clothing/backpack_vr.dmi' - icon_override = 'icons/mob/back_vr.dmi' + icon = 'icons/inventory/back/item_vr.dmi' + icon_override = 'icons/inventory/back/mob_vr.dmi' icon_state = "explorer_courier" item_state_slots = null /obj/item/weapon/storage/backpack/dufflebag/explorer name = "exploration dufflebag" desc = "A large dufflebag for holding extra supplies." - icon = 'icons/obj/clothing/backpack_vr.dmi' - icon_override = 'icons/mob/back_vr.dmi' + icon = 'icons/inventory/back/item_vr.dmi' + icon_override = 'icons/inventory/back/mob_vr.dmi' icon_state = "explorer_duffle" ///Talon Bags/// @@ -120,31 +120,31 @@ /obj/item/weapon/storage/backpack/talon name = "ITV backpack" desc = "A backpack for carrying a large number of supplies easily." - icon = 'icons/obj/clothing/backpack_vr.dmi' - icon_override = 'icons/mob/back_vr.dmi' + icon = 'icons/inventory/back/item_vr.dmi' + icon_override = 'icons/inventory/back/mob_vr.dmi' icon_state = "talon" /obj/item/weapon/storage/backpack/satchel/talon name = "ITV satchel" desc = "A satchel for carrying a large number of supplies easily." - icon = 'icons/obj/clothing/backpack_vr.dmi' - icon_override = 'icons/mob/back_vr.dmi' + icon = 'icons/inventory/back/item_vr.dmi' + icon_override = 'icons/inventory/back/mob_vr.dmi' icon_state = "talon_satchel" item_state_slots = null /obj/item/weapon/storage/backpack/messenger/talon name = "ITV messenger bag" desc = "A sturdy backpack worn over one shoulder." - icon = 'icons/obj/clothing/backpack_vr.dmi' - icon_override = 'icons/mob/back_vr.dmi' + icon = 'icons/inventory/back/item_vr.dmi' + icon_override = 'icons/inventory/back/mob_vr.dmi' icon_state = "talon_courier" item_state_slots = null /obj/item/weapon/storage/backpack/dufflebag/talon name = "ITV dufflebag" desc = "A large dufflebag for holding extra supplies." - icon = 'icons/obj/clothing/backpack_vr.dmi' - icon_override = 'icons/mob/back_vr.dmi' + icon = 'icons/inventory/back/item_vr.dmi' + icon_override = 'icons/inventory/back/mob_vr.dmi' icon_state = "talon_duffle" ///Roboticist Bags/// @@ -152,16 +152,16 @@ /obj/item/weapon/storage/backpack/satchel/roboticist name = "roboticist satchel" desc = "A satchel for carrying a large number of spare parts easily." - icon = 'icons/obj/clothing/backpack_vr.dmi' - icon_override = 'icons/mob/back_vr.dmi' + icon = 'icons/inventory/back/item_vr.dmi' + icon_override = 'icons/inventory/back/mob_vr.dmi' item_state = "satchel-robo" icon_state = "satchel-robo" /obj/item/weapon/storage/backpack/roboticist name = "roboticist backpack" desc = "A backpack for carrying a large number of spare parts easily." - icon = 'icons/obj/clothing/backpack_vr.dmi' - icon_override = 'icons/mob/back_vr.dmi' + icon = 'icons/inventory/back/item_vr.dmi' + icon_override = 'icons/inventory/back/mob_vr.dmi' item_state = "backpack-robo" icon_state = "backpack-robo" @@ -170,23 +170,23 @@ /obj/item/weapon/storage/backpack/vietnam name = "vietnam backpack" desc = "There are tangos in the trees! We need napalm right now! Why is my gun jammed?" - icon = 'icons/obj/clothing/backpack_vr.dmi' - icon_override = 'icons/mob/back_vr.dmi' + icon = 'icons/inventory/back/item_vr.dmi' + icon_override = 'icons/inventory/back/mob_vr.dmi' item_state = "nambackpack" icon_state = "nambackpack" /obj/item/weapon/storage/backpack/russian name = "russian backpack" desc = "Useful for carrying large quantities of vodka." - icon = 'icons/obj/clothing/backpack_vr.dmi' - icon_override = 'icons/mob/back_vr.dmi' + icon = 'icons/inventory/back/item_vr.dmi' + icon_override = 'icons/inventory/back/mob_vr.dmi' item_state = "ru_rucksack" icon_state = "ru_rucksack" /obj/item/weapon/storage/backpack/korean name = "korean backpack" desc = "Insert witty description here." - icon = 'icons/obj/clothing/backpack_vr.dmi' - icon_override = 'icons/mob/back_vr.dmi' + icon = 'icons/inventory/back/item_vr.dmi' + icon_override = 'icons/inventory/back/mob_vr.dmi' item_state = "kr_rucksack" icon_state = "kr_rucksack" diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index 5412fab07c..dbe0292263 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -1,7 +1,7 @@ /obj/item/weapon/storage/belt name = "belt" desc = "Can hold various things." - icon = 'icons/obj/clothing/belts.dmi' + icon = 'icons/inventory/belt/item.dmi' icon_state = "utility" storage_slots = 7 max_storage_space = ITEMSIZE_COST_NORMAL * 7 //This should ensure belts always have enough room to store whatever. @@ -11,7 +11,7 @@ equip_sound = 'sound/items/toolbelt_equip.ogg' drop_sound = 'sound/items/drop/toolbelt.ogg' pickup_sound = 'sound/items/pickup/toolbelt.ogg' - sprite_sheets = list(SPECIES_TESHARI = 'icons/mob/species/teshari/belt.dmi') + sprite_sheets = list(SPECIES_TESHARI = 'icons/inventory/belt/mob_teshari.dmi') var/show_above_suit = 0 diff --git a/code/game/objects/items/weapons/storage/belt_vr.dm b/code/game/objects/items/weapons/storage/belt_vr.dm index b07630de39..92da577c31 100644 --- a/code/game/objects/items/weapons/storage/belt_vr.dm +++ b/code/game/objects/items/weapons/storage/belt_vr.dm @@ -1,13 +1,13 @@ /obj/item/weapon/storage/belt sprite_sheets = list( - SPECIES_TESHARI = 'icons/mob/species/teshari/belt.dmi', - SPECIES_WEREBEAST = 'icons/mob/species/werebeast/belt.dmi') + SPECIES_TESHARI = 'icons/inventory/belt/mob_teshari.dmi', + SPECIES_WEREBEAST = 'icons/inventory/belt/mob_werebeast.dmi') /obj/item/weapon/storage/belt/explorer name = "explorer's belt" desc = "A versatile belt with several pouches. It can hold a very wide variety of items, but less items overall than a dedicated belt. Still, it's useful for any explorer who wants to be prepared for anything they might find." - icon = 'icons/obj/clothing/belts_vr.dmi' - icon_override = 'icons/mob/belt_vr.dmi' + icon = 'icons/inventory/belt/item_vr.dmi' + icon_override = 'icons/inventory/belt/mob_vr.dmi' icon_state = "explo_belt" item_state = "explorer_belt" storage_slots = 5 //makes it strictly inferior to any specialized belt as they have seven slots, but it's far more versatile @@ -54,7 +54,7 @@ /obj/item/weapon/storage/belt/explorer/pathfinder name = "pathfinder's belt" desc = "A deluxe belt with many pouches. It can hold a very wide variety of items, but less items overall than a dedicated belt. Still, it's useful for any explorer who wants to be prepared for anything they might find." - icon = 'icons/obj/clothing/belts_vr.dmi' + icon = 'icons/inventory/belt/item_vr.dmi' icon_state = "pathfinder_belt" item_state = "explorer_belt" storage_slots = 7 //two more, bringing it on par with normal belts diff --git a/code/game/objects/items/weapons/storage/pouches.dm b/code/game/objects/items/weapons/storage/pouches.dm index 24a81f4112..62e04c0764 100644 --- a/code/game/objects/items/weapons/storage/pouches.dm +++ b/code/game/objects/items/weapons/storage/pouches.dm @@ -4,7 +4,7 @@ /obj/item/weapon/storage/pouch name = "storage pouch (medium)" desc = "This storage pouch can be used to provide some additional storage for quick access." - icon = 'icons/obj/clothing/pouches.dmi' + icon = 'icons/inventory/pockets/item.dmi' slot_flags = SLOT_POCKET drop_sound = 'sound/items/drop/backpack.ogg' pickup_sound = 'sound/items/pickup/backpack.ogg' diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm index 643700c1e9..4704449c3b 100644 --- a/code/game/objects/items/weapons/storage/storage.dm +++ b/code/game/objects/items/weapons/storage/storage.dm @@ -158,6 +158,15 @@ usr.put_in_l_hand(src) src.add_fingerprint(usr) +/obj/item/weapon/storage/AltClick(mob/user) + if(user in is_seeing) + src.close(user) + // I would think there should be some incap check here or something + // But MouseDrop doesn't use one (as of this writing), so... + else if(isliving(user) && Adjacent(user)) + src.open(user) + else + return ..() /obj/item/weapon/storage/proc/return_inv() diff --git a/code/game/objects/items/weapons/tanks/tank_types_vr.dm b/code/game/objects/items/weapons/tanks/tank_types_vr.dm index 68c18aebd2..b40ae4a210 100644 --- a/code/game/objects/items/weapons/tanks/tank_types_vr.dm +++ b/code/game/objects/items/weapons/tanks/tank_types_vr.dm @@ -2,7 +2,7 @@ name = "double emergency phoron tank" desc = "Contains dangerous phoron. Do not inhale. Warning: extremely flammable." icon = 'icons/obj/tank_vr.dmi' - icon_override = 'icons/mob/belt_vr.dmi' + icon_override = 'icons/inventory/belt/mob_vr.dmi' icon_state = "emergency_double_vox" gauge_icon = "indicator_double" gauge_cap = 3 @@ -39,7 +39,7 @@ /obj/item/weapon/tank/vox //Can't be a child of phoron or the gas amount gets screwey. icon = 'icons/obj/tank_vr.dmi' - icon_override = 'icons/mob/back_vr.dmi' + icon_override = 'icons/inventory/back/mob_vr.dmi' icon_state = "phoron_vox" gauge_cap = 3 gauge_icon = "indicator_double" @@ -82,7 +82,7 @@ /obj/item/weapon/tank/emergency/phoron icon = 'icons/obj/tank_vr.dmi' - icon_override = 'icons/mob/belt_vr.dmi' + icon_override = 'icons/inventory/belt/mob_vr.dmi' icon_state = "emergency_phoron_vox" gauge_icon = "indicator_smalltank" volume = 6 diff --git a/code/game/objects/items/weapons/tanks/tanks.dm b/code/game/objects/items/weapons/tanks/tanks.dm index 69e795cb6b..0c6c78dbbe 100644 --- a/code/game/objects/items/weapons/tanks/tanks.dm +++ b/code/game/objects/items/weapons/tanks/tanks.dm @@ -6,7 +6,7 @@ var/list/global/tank_gauge_cache = list() name = "tank" icon = 'icons/obj/tank.dmi' sprite_sheets = list( - SPECIES_TESHARI = 'icons/mob/species/teshari/back.dmi' + SPECIES_TESHARI = 'icons/inventory/back/mob_teshari.dmi' ) drop_sound = 'sound/items/drop/gascan.ogg' pickup_sound = 'sound/items/pickup/gascan.ogg' diff --git a/code/game/objects/items/weapons/towels.dm b/code/game/objects/items/weapons/towels.dm index 77e1c43960..119c9d7419 100644 --- a/code/game/objects/items/weapons/towels.dm +++ b/code/game/objects/items/weapons/towels.dm @@ -15,11 +15,11 @@ ..() switch(slot) if(slot_head) - sprite_sheets = list(SPECIES_TESHARI = 'icons/mob/species/teshari/head.dmi') + sprite_sheets = list(SPECIES_TESHARI = 'icons/inventory/head/mob_teshari.dmi') if(slot_wear_suit) - sprite_sheets = list(SPECIES_TESHARI = 'icons/mob/species/teshari/suit.dmi') + sprite_sheets = list(SPECIES_TESHARI = 'icons/inventory/suit/mob_teshari.dmi') if(slot_belt) - sprite_sheets = list(SPECIES_TESHARI = 'icons/mob/species/teshari/belt.dmi') + sprite_sheets = list(SPECIES_TESHARI = 'icons/inventory/belt/mob_teshari.dmi') /obj/item/weapon/towel/attack_self(mob/living/user as mob) user.visible_message(text("[] uses [] to towel themselves off.", user, src)) diff --git a/code/game/objects/items/weapons/traps_vr.dm b/code/game/objects/items/weapons/traps_vr.dm index f1338f691d..0b7c543f02 100644 --- a/code/game/objects/items/weapons/traps_vr.dm +++ b/code/game/objects/items/weapons/traps_vr.dm @@ -1,7 +1,7 @@ /obj/item/weapon/beartrap slot_flags = SLOT_MASK item_icons = list( - slot_wear_mask_str = 'icons/mob/mask_vr.dmi' + slot_wear_mask_str = 'icons/inventory/face/mob_vr.dmi' ) /obj/item/weapon/beartrap/equipped() diff --git a/code/game/objects/items/weapons/weldbackpack_ch.dm b/code/game/objects/items/weapons/weldbackpack_ch.dm index 0235e8403f..9af370cb9a 100644 --- a/code/game/objects/items/weapons/weldbackpack_ch.dm +++ b/code/game/objects/items/weapons/weldbackpack_ch.dm @@ -1,4 +1,4 @@ /obj/item/weapon/weldpack sprite_sheets = list( - SPECIES_TESHARI = 'icons/mob/species/teshari/back.dmi' + SPECIES_TESHARI = 'icons/inventory/back/mob_teshari.dmi' ) diff --git a/code/game/objects/random/misc.dm b/code/game/objects/random/misc.dm index f2af9145b8..0c15256c50 100644 --- a/code/game/objects/random/misc.dm +++ b/code/game/objects/random/misc.dm @@ -957,7 +957,7 @@ /obj/random/thermalponcho name = "random thermal poncho" desc = "This is a thermal poncho spawn." - icon = 'icons/obj/clothing/ties.dmi' + icon = 'icons/inventory/accessory/item.dmi' icon_state = "classicponcho" /obj/random/thermalponcho/item_to_spawn() @@ -970,7 +970,7 @@ /obj/random/pouch name = "Random Storage Pouch" desc = "This is a random storage pouch." - icon = 'icons/obj/clothing/pouches.dmi' + icon = 'icons/inventory/pockets/item.dmi' icon_state = "random" /obj/random/pouch/item_to_spawn() diff --git a/code/game/objects/random/spacesuits.dm b/code/game/objects/random/spacesuits.dm index 2d394625b9..5db5bbb074 100644 --- a/code/game/objects/random/spacesuits.dm +++ b/code/game/objects/random/spacesuits.dm @@ -4,7 +4,7 @@ /obj/random/multiple/voidsuit name = "Random Voidsuit" desc = "This is a random voidsuit." - icon = 'icons/obj/clothing/spacesuits.dmi' + icon = 'icons/inventory/suit/item.dmi' icon_state = "void" /obj/random/multiple/voidsuit/item_to_spawn() @@ -98,7 +98,7 @@ /obj/random/multiple/voidsuit/mining name = "Random Mining Voidsuit" desc = "This is a random mining voidsuit." - icon = 'icons/obj/clothing/spacesuits.dmi' + icon = 'icons/inventory/suit/item.dmi' icon_state = "rig-mining" /obj/random/multiple/voidsuit/mining/item_to_spawn() @@ -116,7 +116,7 @@ /obj/random/multiple/voidsuit/engineering name = "Random Engineering Voidsuit" desc = "This is a random engineering voidsuit." - icon = 'icons/obj/clothing/spacesuits.dmi' + icon = 'icons/inventory/suit/item.dmi' icon_state = "rig-engineering" /obj/random/multiple/voidsuit/engineering/item_to_spawn() @@ -146,7 +146,7 @@ /obj/random/multiple/voidsuit/security name = "Random Security Voidsuit" desc = "This is a random security voidsuit." - icon = 'icons/obj/clothing/spacesuits.dmi' + icon = 'icons/inventory/suit/item.dmi' icon_state = "rig-sec" /obj/random/multiple/voidsuit/security/item_to_spawn() @@ -168,7 +168,7 @@ /obj/random/multiple/voidsuit/medical name = "Random Medical Voidsuit" desc = "This is a random medical voidsuit." - icon = 'icons/obj/clothing/spacesuits.dmi' + icon = 'icons/inventory/suit/item.dmi' icon_state = "rig-medical" /obj/random/multiple/voidsuit/medical/item_to_spawn() @@ -194,7 +194,7 @@ /obj/random/multiple/voidsuit/vintage name = "Random Vintage Voidsuit" desc = "This is a random vintage voidsuit." - icon = 'icons/obj/clothing/spacesuits.dmi' + icon = 'icons/inventory/suit/item.dmi' icon_state = "rig-vintagecrew" /obj/random/multiple/voidsuit/vintage/item_to_spawn() diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm index f023f3e395..38e173e3ff 100644 --- a/code/game/objects/structures.dm +++ b/code/game/objects/structures.dm @@ -10,8 +10,8 @@ var/list/climbers var/block_turf_edges = FALSE // If true, turf edge icons will not be made on the turf this occupies. - var/list/connections = list("0", "0", "0", "0") - var/list/other_connections = list("0", "0", "0", "0") + var/list/connections + var/list/other_connections var/list/blend_objects = newlist() // Objects which to blend with var/list/noblend_objects = newlist() //Objects to avoid blending with (such as children of listed blend objects. diff --git a/code/game/objects/structures/barricades.dm b/code/game/objects/structures/barricades.dm index 34ab6025c7..c60c48375e 100644 --- a/code/game/objects/structures/barricades.dm +++ b/code/game/objects/structures/barricades.dm @@ -144,7 +144,8 @@ var/image/I for(var/i = 1 to 4) - I = image('icons/obj/sandbags.dmi', "sandbags[connections[i]]", dir = 1<<(i-1)) + var/connect = connections?[i] || 0 + I = image('icons/obj/sandbags.dmi', "sandbags[connect]", dir = 1<<(i-1)) I.color = material.icon_colour add_overlay(I) diff --git a/code/game/objects/structures/catwalk.dm b/code/game/objects/structures/catwalk.dm index 58674def1a..e77abbaa6f 100644 --- a/code/game/objects/structures/catwalk.dm +++ b/code/game/objects/structures/catwalk.dm @@ -51,7 +51,8 @@ var/image/I if(!hatch_open) for(var/i = 1 to 4) - I = image(icon, "catwalk[connections[i]]", dir = 1<<(i-1)) + var/connect = connections?[i] || 0 + I = image(icon, "catwalk[connect]", dir = 1<<(i-1)) add_overlay(I) if(plating_color) I = image(icon, "plated") diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm index a89601cc0a..a1412ba7a9 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm @@ -33,6 +33,7 @@ /obj/item/clothing/under/rank/nurse, /obj/item/clothing/under/rank/orderly, /obj/item/clothing/suit/storage/toggle/labcoat, + /obj/item/clothing/suit/storage/toggle/labcoat/modern, /obj/item/clothing/suit/storage/toggle/fr_jacket, /obj/item/clothing/shoes/white, /obj/item/weapon/cartridge/medical, @@ -127,6 +128,7 @@ /obj/item/clothing/under/rank/chief_medical_officer/skirt, /obj/item/clothing/suit/storage/toggle/labcoat/cmo, /obj/item/clothing/suit/storage/toggle/labcoat/cmoalt, + /obj/item/clothing/suit/storage/toggle/labcoat/modern/cmo, /obj/item/weapon/cartridge/cmo, /obj/item/clothing/gloves/sterile/latex, /obj/item/clothing/shoes/brown, diff --git a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm index 66383849f0..a3fdc31f24 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm @@ -33,6 +33,7 @@ /obj/item/clothing/under/rank/research_director/rdalt, /obj/item/clothing/under/rank/research_director/dress_rd, /obj/item/clothing/suit/storage/toggle/labcoat, + /obj/item/clothing/suit/storage/toggle/labcoat/modern, /obj/item/weapon/cartridge/rd, /obj/item/clothing/shoes/white, /obj/item/clothing/shoes/laceup/brown, @@ -54,6 +55,7 @@ starts_with = list( /obj/item/clothing/under/rank/scientist, /obj/item/clothing/suit/storage/toggle/labcoat, + /obj/item/clothing/suit/storage/toggle/labcoat/modern, /obj/item/clothing/shoes/white, /obj/item/weapon/melee/umbrella, // vorestation addition, /obj/item/clothing/glasses/science, diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm index 6c88090e40..12a1119792 100644 --- a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm +++ b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm @@ -220,6 +220,7 @@ /obj/item/clothing/under/rank/scientist/skirt = 2, /obj/item/clothing/under/rank/scientist/turtleneck = 3, /obj/item/clothing/suit/storage/toggle/labcoat = 3, + /obj/item/clothing/suit/storage/toggle/labcoat/modern = 3, /obj/item/clothing/shoes/white = 3, /obj/item/clothing/shoes/slippers = 3, /obj/item/clothing/suit/storage/hooded/wintercoat/science, diff --git a/code/game/objects/structures/flora/flora.dm b/code/game/objects/structures/flora/flora.dm index ccb3106886..6f7963509e 100644 --- a/code/game/objects/structures/flora/flora.dm +++ b/code/game/objects/structures/flora/flora.dm @@ -15,6 +15,7 @@ var/harvest_tool = null // The type of item used to harvest the plant. var/harvest_count = 0 + var/destroy_on_harvest = FALSE var/randomize_harvest_count = TRUE var/max_harvests = 0 @@ -53,6 +54,8 @@ else to_chat(user, "You harvest \the [AM] from \the [src].") + if(harvest_count >= max_harvests && destroy_on_harvest) + qdel(src) return ..(W, user) @@ -66,11 +69,12 @@ /obj/structure/flora/proc/spawn_harvest(var/path = null, var/mob/user = null) if(!ispath(path)) return 0 - var/turf/Target = get_turf(src) + + var/atom/movable/AM = new path() if(user) - Target = get_turf(user) - - var/atom/movable/AM = new path(Target) + user.put_in_hands(AM) + else + AM.forceMove(drop_location()) harvest_count++ return AM @@ -80,6 +84,12 @@ name = "bush" icon = 'icons/obj/flora/snowflora.dmi' icon_state = "snowbush1" + + destroy_on_harvest = TRUE + harvest_tool = /obj/item/weapon/material/knife + randomize_harvest_count = FALSE + harvest_loot = list(/obj/item/stack/material/fiber = 1) + max_harvests = 1 /obj/structure/flora/bush/New() ..() @@ -99,6 +109,12 @@ name = "bush" icon = 'icons/obj/flora/ausflora.dmi' icon_state = "firstbush_1" + + destroy_on_harvest = TRUE + harvest_tool = /obj/item/weapon/material/knife + randomize_harvest_count = FALSE + harvest_loot = list(/obj/item/stack/material/fiber = 1) + max_harvests = 1 /obj/structure/flora/ausbushes/New() ..() diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm index 0eb4775c23..d41b8057a7 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -11,7 +11,7 @@ var/glass = 1 var/datum/tgui_module/appearance_changer/mirror/M -/obj/structure/mirror/New(var/loc, var/dir, var/building = 0, mob/user as mob) +/obj/structure/mirror/Initialize(mapload, var/dir, var/building = 0, mob/user as mob) M = new(src, null) if(building) glass = 0 diff --git a/code/game/objects/stumble_into_vr.dm b/code/game/objects/stumble_into_vr.dm index e52a2f6ce5..d282648303 100644 --- a/code/game/objects/stumble_into_vr.dm +++ b/code/game/objects/stumble_into_vr.dm @@ -77,7 +77,9 @@ M.Weaken(2) M.stop_flying() if(get_turf(M) == get_turf(src)) - M.forceMove(get_step(src, src.dir)) + var/turf/T = get_step(src, src.dir) + if(T?.Enter(M, get_turf(src))) + M.forceMove(T) else M.forceMove(get_turf(src)) diff --git a/code/game/turfs/flooring/flooring.dm b/code/game/turfs/flooring/flooring.dm index 3fa9e921cb..74a0745bb4 100644 --- a/code/game/turfs/flooring/flooring.dm +++ b/code/game/turfs/flooring/flooring.dm @@ -243,7 +243,7 @@ var/list/flooring_types /decl/flooring/snow name = "snow" desc = "A layer of many tiny bits of frozen water. It's hard to tell how deep it is." - icon = 'icons/turf/snow_new.dmi' + icon = 'icons/turf/outdoors.dmi' icon_base = "snow" footstep_sounds = list("human" = list( 'sound/effects/footstep/snow1.ogg', diff --git a/code/game/turfs/flooring/flooring_premade.dm b/code/game/turfs/flooring/flooring_premade.dm index 5c1fcce798..72ea2f44e6 100644 --- a/code/game/turfs/flooring/flooring_premade.dm +++ b/code/game/turfs/flooring/flooring_premade.dm @@ -390,7 +390,7 @@ //**** Here lives snow **** /turf/simulated/floor/snow name = "snow" - icon = 'icons/turf/snow_new.dmi' + icon = 'icons/turf/outdoors.dmi' icon_state = "snow" initial_flooring = /decl/flooring/snow var/list/crossed_dirs = list() diff --git a/code/game/turfs/simulated/floor_attackby.dm b/code/game/turfs/simulated/floor_attackby.dm index 9aa7ecce6d..8342a5d6e8 100644 --- a/code/game/turfs/simulated/floor_attackby.dm +++ b/code/game/turfs/simulated/floor_attackby.dm @@ -12,6 +12,7 @@ if(!(C.is_screwdriver() && flooring && (flooring.flags & TURF_REMOVE_SCREWDRIVER)) && try_graffiti(user, C)) return + // Multi-z roof building if(istype(C, /obj/item/stack/tile/roofing)) var/expended_tile = FALSE // To track the case. If a ceiling is built in a multiz zlevel, it also necessarily roofs it against weather var/turf/T = GetAbove(src) @@ -56,6 +57,7 @@ break return + // Floor has flooring set if(!is_plating()) if(istype(C, /obj/item/weapon)) try_deconstruct_tile(C, user) @@ -66,7 +68,10 @@ else if(istype(C, /obj/item/stack/tile)) try_replace_tile(C, user) return + + // Floor is plating (or no flooring) else + // Placing wires on plating if(istype(C, /obj/item/stack/cable_coil)) if(broken || burnt) to_chat(user, "This section is too damaged to support anything. Use a welder to fix the damage.") @@ -74,6 +79,7 @@ var/obj/item/stack/cable_coil/coil = C coil.turf_place(src, user) return + // Placing flooring on plating else if(istype(C, /obj/item/stack)) if(broken || burnt) to_chat(user, "This section is too damaged to support anything. Use a welder to fix the damage.") @@ -102,10 +108,11 @@ set_flooring(use_flooring) playsound(src, 'sound/items/Deconstruct.ogg', 80, 1) return - // Repairs. + // Plating repairs and removal else if(istype(C, /obj/item/weapon/weldingtool)) var/obj/item/weapon/weldingtool/welder = C - if(welder.isOn() && (is_plating())) + if(welder.isOn()) + // Needs repairs if(broken || burnt) if(welder.remove_fuel(0,user)) to_chat(user, "You fix some dents on the broken plating.") @@ -115,6 +122,22 @@ broken = null else to_chat(user, "You need more welding fuel to complete this task.") + // Deconstructing plating + else + var/base_type = get_base_turf_by_area(src) + if(type == base_type || !base_type) + to_chat(user, "There's nothing under [src] to expose by cutting.") + return + if(!can_remove_plating(user)) + return + + user.visible_message("[user] begins cutting through [src].", "You begin cutting through [src].") + // This is slow because it's a potentially hostile action to just cut through places into space in the middle of the bar and such + // Presumably also the structural floor is thick? + if(do_after(user, 10 SECONDS, src, TRUE, exclusive = TASK_ALL_EXCLUSIVE)) + if(!can_remove_plating(user)) + return // Someone slapped down some flooring or cables or something + do_remove_plating(C, user, base_type) /turf/simulated/floor/proc/try_deconstruct_tile(obj/item/weapon/W as obj, mob/user as mob) if(W.is_crowbar()) @@ -160,4 +183,32 @@ return if(flooring) return - attackby(T, user) \ No newline at end of file + attackby(T, user) + +/turf/simulated/floor/proc/can_remove_plating(mob/user) + if(!is_plating()) + to_chat(user, "\The [src] can't be cut through!") + return FALSE + if(locate(/obj/structure) in contents) + to_chat(user, "\The [src] has structures that must be removed before cutting!") + return FALSE + return TRUE + +/turf/simulated/floor/proc/do_remove_plating(obj/item/weapon/W, mob/user, base_type) + if(istype(W, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = W + if(!WT.remove_fuel(5,user)) + to_chat(user, "You don't have enough fuel in [WT] finish cutting through [src].") + return + playsound(src, WT.usesound, 80, 1) + + // Keep in mind, turfs can never actually be deleted in byond, after this line + // our turf is just 'magically changed' to the new type and src refers to that + ChangeTurf(base_type, preserve_outdoors = TRUE) + + var/static/list/floors_that_need_lattice = list( + /turf/space, + /turf/simulated/open + ) + if(is_type_in_list(src, floors_that_need_lattice)) + new /obj/structure/lattice(src) diff --git a/code/game/turfs/simulated/outdoors/snow.dm b/code/game/turfs/simulated/outdoors/snow.dm index 07a6804803..fc4832d845 100644 --- a/code/game/turfs/simulated/outdoors/snow.dm +++ b/code/game/turfs/simulated/outdoors/snow.dm @@ -53,6 +53,16 @@ desc = "Looks slippery." edge_blending_priority = 0 +/turf/simulated/floor/outdoors/ice/dark + name = "black ice" + icon_state = "ice_dark" + desc = "An uneven surface of dark rocks glazed over by solid ice. Looks slippey, maybe even painful" + +/turf/simulated/floor/outdoors/ice/dark_smooth + name = "smooth black ice" + icon_state = "ice_dark_smooth" + desc = "Dark rock that has been smoothened to be perfectly even. It's coated in a layer of slippey ice" + /turf/simulated/floor/outdoors/ice/Entered(var/mob/living/M) sleep(1 * world.tick_lag) if(istype(M, /mob/living)) diff --git a/code/modules/admin/view_variables/topic_list.dm b/code/modules/admin/view_variables/topic_list.dm index c437a58a17..1f535f2b42 100644 --- a/code/modules/admin/view_variables/topic_list.dm +++ b/code/modules/admin/view_variables/topic_list.dm @@ -10,7 +10,7 @@ mod_list(target, null, "list", "contents", target_index, autodetect_class = FALSE) if(href_list[VV_HK_LIST_REMOVE]) var/variable = target[target_index] - var/prompt = tgui_alert(usr, "Do you want to remove item number [target_index] from list?", "Confirm", "Yes", "No") + var/prompt = tgui_alert(usr, "Do you want to remove item number [target_index] from list?", "Confirm", list("Yes", "No")) if (prompt != "Yes") return target.Cut(target_index, target_index+1) diff --git a/code/modules/asset_cache/asset_list_items.dm b/code/modules/asset_cache/asset_list_items.dm index be52a58031..e92d5b1719 100644 --- a/code/modules/asset_cache/asset_list_items.dm +++ b/code/modules/asset_cache/asset_list_items.dm @@ -388,14 +388,6 @@ if(ispath(item, /obj/item/weapon/reagent_containers/food/drinks/glass2) && !ispath(item, /obj/item/weapon/reagent_containers/food/drinks/glass2/fitnessflask)) var/obj/item/weapon/reagent_containers/food/drinks/glass2/G = item icon_state = initial(G.base_icon) - if(ispath(item, /obj/item/clothing/suit)) - var/obj/item/clothing/suit/U = item - if(initial(U.index)) - icon_file = "icons/obj/clothing/suits_[initial(U.index)].dmi" - if(ispath(item, /obj/item/clothing/under)) - var/obj/item/clothing/under/U = item - if(initial(U.index)) - icon_file = "icons/obj/clothing/uniforms_[initial(U.index)].dmi" if(ispath(item, /obj/item/weapon/reagent_containers/hypospray/autoinjector)) icon_state += "0" diff --git a/code/modules/awaymissions/gateway.dm b/code/modules/awaymissions/gateway.dm index d880984be8..bf734a429f 100644 --- a/code/modules/awaymissions/gateway.dm +++ b/code/modules/awaymissions/gateway.dm @@ -23,6 +23,7 @@ //this is da important part wot makes things go +GLOBAL_DATUM(gateway_station, /obj/machinery/gateway/centerstation) /obj/machinery/gateway/centerstation density = 1 icon_state = "offcenter" @@ -35,12 +36,29 @@ var/obj/machinery/gateway/centeraway/awaygate = null /obj/machinery/gateway/centerstation/Initialize() + if(GLOB.gateway_station) + warning("[src] at [x],[y],[z] appears to be an additional station-gateway") + else + GLOB.gateway_station = src + update_icon() wait = world.time + config.gateway_delay //+ thirty minutes default - awaygate = locate(/obj/machinery/gateway/centeraway) + + if(GLOB.gateway_away) + awaygate = GLOB.gateway_away + else + awaygate = locate(/obj/machinery/gateway/centeraway) + . = ..() density = 1 //VOREStation Add +/obj/machinery/gateway/centerstation/Destroy() + if(awaygate?.stationgate == src) + awaygate.stationgate = null + if(GLOB.gateway_station == src) + GLOB.gateway_station = null + return ..() + /obj/machinery/gateway/centerstation/update_icon() if(active) icon_state = "oncenter" @@ -204,8 +222,11 @@ /obj/machinery/gateway/centerstation/attackby(obj/item/device/W as obj, mob/user as mob) if(istype(W,/obj/item/device/multitool)) - if(!awaygate) - awaygate = locate(/obj/machinery/gateway/centeraway) + if(!awaygate) + if(GLOB.gateway_away) + awaygate = GLOB.gateway_away + else + awaygate = locate(/obj/machinery/gateway/centeraway) if(!awaygate) // We still can't find the damn thing because there is no destination. to_chat(user, "Error: Programming failed. No destination found.") return @@ -215,8 +236,7 @@ return /////////////////////////////////////Away//////////////////////// - - +GLOBAL_DATUM(gateway_away, /obj/machinery/gateway/centeraway) /obj/machinery/gateway/centeraway density = 1 icon_state = "offcenter" @@ -224,15 +244,32 @@ var/calibrated = 1 var/list/linked = list() //a list of the connected gateway chunks var/ready = 0 - var/obj/machinery/gateway/centeraway/stationgate = null + var/obj/machinery/gateway/centerstation/stationgate = null +/obj/machinery/gateway/centeraway/New() + density = 1 /obj/machinery/gateway/centeraway/Initialize() + if(GLOB.gateway_away) + warning("[src] at [x],[y],[z] appears to be an additional away-gateway") + else + GLOB.gateway_away = src + update_icon() - stationgate = locate(/obj/machinery/gateway/centerstation) + + if(GLOB.gateway_station) + stationgate = GLOB.gateway_station + else + stationgate = locate(/obj/machinery/gateway/centerstation) . = ..() density = 1 //VOREStation Add +/obj/machinery/gateway/centeraway/Destroy() + if(stationgate?.awaygate == src) + stationgate.awaygate = null + if(GLOB.gateway_away == src) + GLOB.gateway_away = null + return ..() /obj/machinery/gateway/centeraway/update_icon() if(active) @@ -240,10 +277,6 @@ return icon_state = "offcenter" -/obj/machinery/gateway/centeraway/New() - density = 1 - - /obj/machinery/gateway/centeraway/proc/detect() linked = list() //clear the list var/turf/T = loc @@ -317,7 +350,10 @@ return else // VOREStation Add - stationgate = locate(/obj/machinery/gateway/centerstation) + if(GLOB.gateway_station) + stationgate = GLOB.gateway_station + else + stationgate = locate(/obj/machinery/gateway/centerstation) if(!stationgate) to_chat(user, "Error: Recalibration failed. No destination found... That can't be good.") return diff --git a/code/modules/busy_space_vr/organizations.dm b/code/modules/busy_space_vr/organizations.dm index 05df67ce87..ec30b2a2a8 100644 --- a/code/modules/busy_space_vr/organizations.dm +++ b/code/modules/busy_space_vr/organizations.dm @@ -1402,7 +1402,7 @@ ////////////////////////////////////////////////////////////////////////////////// // Other -/datum/lore/organization/other/kitsuhana //sorry KHI, but you're not a coherent stellar government, and you're definitely not a TSC. you get to go in the Others pool. +/datum/lore/organization/other/kitsuhana //sorry KHI, but you're not a coherent stellar government, and you're definitely not a TSC. you get to go in the Others pool. //makes sense to me! name = "Kitsuhana Heavy Industries" short_name = "" //whitespace haaaack desc = "A large post-scarcity amalgamation of races, Kitsuhana is no longer a company but rather a loose association of 'members' \ diff --git a/code/modules/client/preference_setup/loadout/loadout_suit.dm b/code/modules/client/preference_setup/loadout/loadout_suit.dm index 0c5050b670..18b6815f1f 100644 --- a/code/modules/client/preference_setup/loadout/loadout_suit.dm +++ b/code/modules/client/preference_setup/loadout/loadout_suit.dm @@ -135,43 +135,39 @@ gear_tweaks += new/datum/gear_tweak/path(sortAssoc(hoodies)) /datum/gear/suit/labcoat - display_name = "labcoat" + display_name = "labcoat selection, public" path = /obj/item/clothing/suit/storage/toggle/labcoat -/datum/gear/suit/labcoat/blue - display_name = "labcoat, blue" - path = /obj/item/clothing/suit/storage/toggle/labcoat/blue +/datum/gear/suit/labcoat/New() + ..() + var/list/labcoats = list( + "White labcoat" = /obj/item/clothing/suit/storage/toggle/labcoat, + "Blue-edge labcoat" = /obj/item/clothing/suit/storage/toggle/labcoat/blue_edge, + "Green labcoat" = /obj/item/clothing/suit/storage/toggle/labcoat/green, + "Orange labcoat" = /obj/item/clothing/suit/storage/toggle/labcoat/orange, + "Purple labcoat" = /obj/item/clothing/suit/storage/toggle/labcoat/purple, + "Pink labcoat" = /obj/item/clothing/suit/storage/toggle/labcoat/pink, + "Red labcoat" = /obj/item/clothing/suit/storage/toggle/labcoat/red, + "Yellow labcoat" = /obj/item/clothing/suit/storage/toggle/labcoat/yellow + ) + gear_tweaks += new/datum/gear_tweak/path(labcoats) -/datum/gear/suit/labcoat/blue_edge - display_name = "labcoat, blue-edged" - path = /obj/item/clothing/suit/storage/toggle/labcoat/blue_edge +/datum/gear/suit/labcoat_cmo + display_name = "labcoat selection, cmo" + path = /obj/item/clothing/suit/storage/toggle/labcoat/cmo + allowed_roles = list("Chief Medical Officer") -/datum/gear/suit/labcoat/green - display_name = "labcoat, green" - path = /obj/item/clothing/suit/storage/toggle/labcoat/green - -/datum/gear/suit/labcoat/orange - display_name = "labcoat, orange" - path = /obj/item/clothing/suit/storage/toggle/labcoat/orange - -/datum/gear/suit/labcoat/purple - display_name = "labcoat, purple" - path = /obj/item/clothing/suit/storage/toggle/labcoat/purple - -/datum/gear/suit/labcoat/pink - display_name = "labcoat, pink" - path = /obj/item/clothing/suit/storage/toggle/labcoat/pink - -/datum/gear/suit/labcoat/red - display_name = "labcoat, red" - path = /obj/item/clothing/suit/storage/toggle/labcoat/red - -/datum/gear/suit/labcoat/yellow - display_name = "labcoat, yellow" - path = /obj/item/clothing/suit/storage/toggle/labcoat/yellow +/datum/gear/suit/labcoat_cmo/New() + ..() + var/list/labcoats = list( + "CMO labcoat" = /obj/item/clothing/suit/storage/toggle/labcoat/cmo, + "CMO labcoat (alt)" = /obj/item/clothing/suit/storage/toggle/labcoat/cmoalt, + "CMO labcoat (modern)" = /obj/item/clothing/suit/storage/toggle/labcoat/modern/cmo + ) + gear_tweaks += new/datum/gear_tweak/path(labcoats) /datum/gear/suit/labcoat/emt - display_name = "labcoat, EMT (Medical)" + display_name = "labcoat, EMT" path = /obj/item/clothing/suit/storage/toggle/labcoat/emt allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist", "Psychiatrist") @@ -189,6 +185,11 @@ path = /obj/item/clothing/suit/storage/apron/overalls cost = 1 +/datum/gear/suit/cyberpunk + display_name = "cyberpunk jacket" + path = /obj/item/clothing/suit/cyberpunk + cost = 2 + /datum/gear/suit/poncho display_name = "poncho selection" path = /obj/item/clothing/accessory/poncho @@ -203,45 +204,26 @@ gear_tweaks += new/datum/gear_tweak/path(sortAssoc(ponchos)) /datum/gear/suit/roles/poncho - display_name = "poncho, cargo" + display_name = "poncho selection, departments" path = /obj/item/clothing/accessory/poncho/roles/cargo cost = 1 -/datum/gear/suit/roles/poncho/security - display_name = "poncho, security" - path = /obj/item/clothing/accessory/poncho/roles/security - -<<<<<<< HEAD -/datum/gear/suit/roles/poncho/medical - display_name = "poncho, medical" - path = /obj/item/clothing/accessory/poncho/roles/medical - -/datum/gear/suit/roles/poncho/engineering - display_name = "poncho, engineering" - path = /obj/item/clothing/accessory/poncho/roles/engineering - -/datum/gear/suit/roles/poncho/science - display_name = "poncho, science" - path = /obj/item/clothing/accessory/poncho/roles/science - -/datum/gear/suit/roles/poncho/cloak/hos -||||||| parent of 7ec7f1cdda... Merge pull request #11054 from VOREStation/Fixes/11052 -/datum/gear/suit/roles/cloak/New() +/datum/gear/suit/roles/poncho/New() ..() - var/list/cloaks = list( - "Cargo cloak" = /obj/item/clothing/accessory/poncho/roles/cloak/cargo, - "Mining cloak" = /obj/item/clothing/accessory/poncho/roles/cloak/mining, - "Security cloak" = /obj/item/clothing/accessory/poncho/roles/cloak/security, - "Service cloak" = /obj/item/clothing/accessory/poncho/roles/cloak/service, - "Engineer cloak" = /obj/item/clothing/accessory/poncho/roles/cloak/engineer, - "Atmos cloak" = /obj/item/clothing/accessory/poncho/roles/cloak/atmos, - "Research cloak" = /obj/item/clothing/accessory/poncho/roles/cloak/research, - "Medical cloak" = /obj/item/clothing/accessory/poncho/roles/cloak/medical + var/list/ponchos = list( + "Cargo poncho" = /obj/item/clothing/accessory/poncho/roles/cargo, + "Security poncho" = /obj/item/clothing/accessory/poncho/roles/security, + "Medical poncho" = /obj/item/clothing/accessory/poncho/roles/medical, + "Engineering poncho" = /obj/item/clothing/accessory/poncho/roles/engineering, + "Science poncho" = /obj/item/clothing/accessory/poncho/roles/science ) - gear_tweaks += new/datum/gear_tweak/path(cloaks) + gear_tweaks += new/datum/gear_tweak/path(ponchos) + + +/datum/gear/suit/roles/cloak + display_name = "cloak selection, departments" + path = /obj/item/clothing/accessory/poncho/roles/cloak/cargo -/datum/gear/suit/roles/poncho/cloak_hos -======= /datum/gear/suit/roles/cloak/New() ..() var/list/cloaks = list( @@ -257,120 +239,42 @@ gear_tweaks += new/datum/gear_tweak/path(cloaks) /datum/gear/suit/roles/cloak_hos ->>>>>>> 7ec7f1cdda... Merge pull request #11054 from VOREStation/Fixes/11052 display_name = "cloak, head of security" path = /obj/item/clothing/accessory/poncho/roles/cloak/hos allowed_roles = list("Head of Security") -<<<<<<< HEAD -/datum/gear/suit/roles/poncho/cloak/cmo -||||||| parent of 7ec7f1cdda... Merge pull request #11054 from VOREStation/Fixes/11052 -/datum/gear/suit/roles/poncho/cloak_cmo -======= /datum/gear/suit/roles/cloak_cmo ->>>>>>> 7ec7f1cdda... Merge pull request #11054 from VOREStation/Fixes/11052 display_name = "cloak, chief medical officer" path = /obj/item/clothing/accessory/poncho/roles/cloak/cmo allowed_roles = list("Chief Medical Officer") -<<<<<<< HEAD -/datum/gear/suit/roles/poncho/cloak/ce -||||||| parent of 7ec7f1cdda... Merge pull request #11054 from VOREStation/Fixes/11052 -/datum/gear/suit/roles/poncho/cloak_ce -======= /datum/gear/suit/roles/cloak_ce ->>>>>>> 7ec7f1cdda... Merge pull request #11054 from VOREStation/Fixes/11052 display_name = "cloak, chief engineer" path = /obj/item/clothing/accessory/poncho/roles/cloak/ce allowed_roles = list("Chief Engineer") -<<<<<<< HEAD -/datum/gear/suit/roles/poncho/cloak/rd -||||||| parent of 7ec7f1cdda... Merge pull request #11054 from VOREStation/Fixes/11052 -/datum/gear/suit/roles/poncho/cloak_rd -======= /datum/gear/suit/roles/cloak_rd ->>>>>>> 7ec7f1cdda... Merge pull request #11054 from VOREStation/Fixes/11052 display_name = "cloak, research director" path = /obj/item/clothing/accessory/poncho/roles/cloak/rd allowed_roles = list("Research Director") -<<<<<<< HEAD -/datum/gear/suit/roles/poncho/cloak/qm -||||||| parent of 7ec7f1cdda... Merge pull request #11054 from VOREStation/Fixes/11052 -/datum/gear/suit/roles/poncho/cloak_qm -======= /datum/gear/suit/roles/cloak_qm ->>>>>>> 7ec7f1cdda... Merge pull request #11054 from VOREStation/Fixes/11052 display_name = "cloak, quartermaster" path = /obj/item/clothing/accessory/poncho/roles/cloak/qm allowed_roles = list("Quartermaster") -<<<<<<< HEAD -/datum/gear/suit/roles/poncho/cloak/captain -||||||| parent of 7ec7f1cdda... Merge pull request #11054 from VOREStation/Fixes/11052 -/datum/gear/suit/roles/poncho/cloak_captain -======= /datum/gear/suit/roles/cloak_captain ->>>>>>> 7ec7f1cdda... Merge pull request #11054 from VOREStation/Fixes/11052 display_name = "cloak, site manager" path = /obj/item/clothing/accessory/poncho/roles/cloak/captain allowed_roles = list("Site Manager") -<<<<<<< HEAD -/datum/gear/suit/roles/poncho/cloak/hop -||||||| parent of 7ec7f1cdda... Merge pull request #11054 from VOREStation/Fixes/11052 -/datum/gear/suit/roles/poncho/cloak_hop -======= /datum/gear/suit/roles/cloak_hop ->>>>>>> 7ec7f1cdda... Merge pull request #11054 from VOREStation/Fixes/11052 display_name = "cloak, head of personnel" path = /obj/item/clothing/accessory/poncho/roles/cloak/hop allowed_roles = list("Head of Personnel") -<<<<<<< HEAD -/datum/gear/suit/roles/poncho/cloak/cargo - display_name = "cloak, cargo" - path = /obj/item/clothing/accessory/poncho/roles/cloak/cargo - -/datum/gear/suit/roles/poncho/cloak/mining - display_name = "cloak, mining" - path = /obj/item/clothing/accessory/poncho/roles/cloak/mining - -/datum/gear/suit/roles/poncho/cloak/security - display_name = "cloak, security" - path = /obj/item/clothing/accessory/poncho/roles/cloak/security - allowed_roles = list("Head of Security","Detective","Warden","Security Officer","Blueshield Guard","Security Pilot") //YW ADDITIONS - -/datum/gear/suit/roles/poncho/cloak/service - display_name = "cloak, service" - path = /obj/item/clothing/accessory/poncho/roles/cloak/service - -/datum/gear/suit/roles/poncho/cloak/engineer - display_name = "cloak, engineer" - path = /obj/item/clothing/accessory/poncho/roles/cloak/engineer - -/datum/gear/suit/roles/poncho/cloak/atmos - display_name = "cloak, atmos" - path = /obj/item/clothing/accessory/poncho/roles/cloak/atmos - -/datum/gear/suit/roles/poncho/cloak/research - display_name = "cloak, science" - path = /obj/item/clothing/accessory/poncho/roles/cloak/research - -/datum/gear/suit/roles/poncho/cloak/medical - display_name = "cloak, medical" - path = /obj/item/clothing/accessory/poncho/roles/cloak/medical - -/datum/gear/suit/roles/poncho/cloak/custom //A colorable cloak - display_name = "cloak (colorable)" -||||||| parent of 7ec7f1cdda... Merge pull request #11054 from VOREStation/Fixes/11052 -/datum/gear/suit/roles/poncho/cloak_custom //A colorable cloak - display_name = "cloak, colorable" -======= /datum/gear/suit/cloak_custom //A colorable cloak display_name = "cloak, colorable" ->>>>>>> 7ec7f1cdda... Merge pull request #11054 from VOREStation/Fixes/11052 path = /obj/item/clothing/accessory/poncho/roles/cloak/custom /datum/gear/suit/cloak_custom/New() @@ -382,50 +286,49 @@ path = /obj/item/clothing/suit/unathi/robe cost = 1 -/datum/gear/suit/black_lawyer_jacket - display_name = "suit jacket, black" +/datum/gear/suit/lawyer_jackets + display_name = "suit jacket selection" path = /obj/item/clothing/suit/storage/toggle/internalaffairs -/datum/gear/suit/blue_lawyer_jacket - display_name = "suit jacket, blue" - path = /obj/item/clothing/suit/storage/toggle/lawyer/bluejacket - -/datum/gear/suit/purple_lawyer_jacket - display_name = "suit jacket, purple" - path = /obj/item/clothing/suit/storage/toggle/lawyer/purpjacket +/datum/gear/suit/lawyer_jackets/New() + ..() + var/list/jackets = list( + "Black suit jacket" = /obj/item/clothing/suit/storage/toggle/internalaffairs, + "Blue suit jacket" = /obj/item/clothing/suit/storage/toggle/lawyer/bluejacket, + "Purple suit jacket" = /obj/item/clothing/suit/storage/toggle/lawyer/purpjacket + ) + gear_tweaks += new/datum/gear_tweak/path(jackets) /datum/gear/suit/suspenders display_name = "suspenders" path = /obj/item/clothing/suit/suspenders /datum/gear/suit/forensics - display_name = "forensics long, red" + display_name = "forensics uniform selection (Detective)" path = /obj/item/clothing/suit/storage/forensics/red/long allowed_roles = list("Detective") -/datum/gear/suit/forensics/blue - display_name = "forensics long, blue" - path = /obj/item/clothing/suit/storage/forensics/blue/long - allowed_roles = list("Detective") +/datum/gear/suit/forensics/New() + ..() + var/list/uniforms = list( + "Red, long uniform" = /obj/item/clothing/suit/storage/forensics/red/long, + "Blue, long uniform" = /obj/item/clothing/suit/storage/forensics/blue/long, + "Red, short uniform" = /obj/item/clothing/suit/storage/forensics/red, + "Blue, short uniform" = /obj/item/clothing/suit/storage/forensics/blue + ) + gear_tweaks += new/datum/gear_tweak/path(uniforms) -/datum/gear/suit/forensics/blue/short - display_name = "forensics, blue" - path = /obj/item/clothing/suit/storage/forensics/blue - allowed_roles = list("Detective") +/datum/gear/suit/qm_coat + display_name = "coat, quartermaster" + path = /obj/item/clothing/suit/storage/qm + allowed_roles = list("Quartermaster") -<<<<<<< HEAD -/datum/gear/suit/forensics/red/short - display_name = "forensics, red" - path = /obj/item/clothing/suit/storage/forensics/red - allowed_roles = list("Detective") +/datum/gear/suit/cargo_coat + display_name = "coat, cargo tech" + path = /obj/item/clothing/suit/storage/cargo + allowed_roles = list("Quartermaster","Shaft Miner","Cargo Technician","Head of Personnel") -||||||| parent of 7ec7f1cdda... Merge pull request #11054 from VOREStation/Fixes/11052 -/obj/item/clothing/suit/storage/cargo - -======= ->>>>>>> 7ec7f1cdda... Merge pull request #11054 from VOREStation/Fixes/11052 // winter coats go here - /datum/gear/suit/wintercoat display_name = "winter coat" path = /obj/item/clothing/suit/storage/hooded/wintercoat @@ -490,7 +393,6 @@ path = /obj/item/clothing/suit/storage/hooded/wintercoat/science allowed_roles = list("Research Director","Scientist", "Roboticist", "Xenobiologist", "Xenobotanist") - /datum/gear/suit/wintercoat/science/robotics display_name = "winter coat, robotics" path = /obj/item/clothing/suit/storage/hooded/wintercoat/science/robotics @@ -561,7 +463,6 @@ /datum/gear/suit/wintercoat/cosmic display_name = "winter coat, cosmic" path = /obj/item/clothing/suit/storage/hooded/wintercoat/cosmic - // winter coats end here /datum/gear/suit/varsity @@ -589,20 +490,18 @@ gear_tweaks += new/datum/gear_tweak/path(sortAssoc(tracks)) /datum/gear/suit/flannel - display_name = "grey flannel" + display_name = "flannel jacket selection" path = /obj/item/clothing/suit/storage/flannel -/datum/gear/suit/flannel/red - display_name = "red flannel" - path = /obj/item/clothing/suit/storage/flannel/red - -/datum/gear/suit/flannel/aqua - display_name = "aqua flannel" - path = /obj/item/clothing/suit/storage/flannel/aqua - -/datum/gear/suit/flannel/brown - display_name = "brown flannel" - path = /obj/item/clothing/suit/storage/flannel/brown +/datum/gear/suit/flannel/New() + ..() + var/list/flannel = list( + "Grey flannel" = /obj/item/clothing/suit/storage/flannel, + "Red flannel" = /obj/item/clothing/suit/storage/flannel/red, + "Aqua flannel" = /obj/item/clothing/suit/storage/flannel/aqua, + "Brown flannel" = /obj/item/clothing/suit/storage/flannel/brown + ) + gear_tweaks += new/datum/gear_tweak/path(flannel) /datum/gear/suit/denim_jacket display_name = "denim jacket" @@ -628,25 +527,20 @@ ..() gear_tweaks += gear_tweak_free_color_choice -/datum/gear/suit/miscellaneous/sec_dep_jacket - display_name = "department jacket, security" +/datum/gear/suit/miscellaneous/dep_jacket + display_name = "department jacket selection" path = /obj/item/clothing/suit/storage/toggle/sec_dep_jacket -/datum/gear/suit/miscellaneous/engi_dep_jacket - display_name = "department jacket, engineering" - path = /obj/item/clothing/suit/storage/toggle/engi_dep_jacket - -/datum/gear/suit/miscellaneous/supply_dep_jacket - display_name = "department jacket, supply" - path = /obj/item/clothing/suit/storage/toggle/supply_dep_jacket - -/datum/gear/suit/miscellaneous/sci_dep_jacket - display_name = "department jacket, science" - path = /obj/item/clothing/suit/storage/toggle/sci_dep_jacket - -/datum/gear/suit/miscellaneous/med_dep_jacket - display_name = "department jacket, medical" - path = /obj/item/clothing/suit/storage/toggle/med_dep_jacket +/datum/gear/suit/miscellaneous/dep_jacket/New() + ..() + var/list/jacket = list( + "Security department jacket" = /obj/item/clothing/suit/storage/toggle/sec_dep_jacket, + "Engineering department jacket" = /obj/item/clothing/suit/storage/toggle/engi_dep_jacket, + "Cargo department jacket" = /obj/item/clothing/suit/storage/toggle/supply_dep_jacket, + "Science department jacket" = /obj/item/clothing/suit/storage/toggle/sci_dep_jacket, + "Medical department jacket" = /obj/item/clothing/suit/storage/toggle/med_dep_jacket + ) + gear_tweaks += new/datum/gear_tweak/path(jacket) /datum/gear/suit/miscellaneous/peacoat display_name = "peacoat" @@ -700,4 +594,4 @@ /datum/gear/suit/miscellaneous/cardigan/New() ..() - gear_tweaks += gear_tweak_free_color_choice \ No newline at end of file + gear_tweaks += gear_tweak_free_color_choice diff --git a/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm b/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm index 2de9713198..f33118bce0 100644 --- a/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm @@ -31,16 +31,20 @@ path = /obj/item/clothing/suit/poncho //Detective alternative -/datum/gear/uniform/detective_alt - display_name = "sleek modern coat, detective" +/datum/gear/suit/detective_alt + display_name = "sleek modern coat selection, detective" path = /obj/item/clothing/suit/storage/det_trench/alt allowed_roles = list("Head of Security", "Detective") -//Detective alternative -/datum/gear/uniform/detective_alt2 - display_name = "sleek modern coat (long), detective" - path = /obj/item/clothing/suit/storage/det_trench/alt2 - allowed_roles = list("Head of Security", "Detective") +/datum/gear/suit/detective_alt/New() + ..() + var/list/coats = list( + "Modern coat (tan)" = /obj/item/clothing/suit/storage/det_trench/alt, + "Modern coat (long, tan)" = /obj/item/clothing/suit/storage/det_trench/alt2, + "Modern coat (black)" = /obj/item/clothing/suit/storage/det_trench/alt/black, + "Modern coat (long, black)" = /obj/item/clothing/suit/storage/det_trench/alt2/black + ) + gear_tweaks += new/datum/gear_tweak/path(coats) //Emergency Responder jackets for Parameds & EMTs, but also general Medical Staff /datum/gear/suit/roles/medical/ems_jacket diff --git a/code/modules/client/preference_setup/loadout/loadout_uniform_vr.dm b/code/modules/client/preference_setup/loadout/loadout_uniform_vr.dm index df63678531..7c6e9ca629 100644 --- a/code/modules/client/preference_setup/loadout/loadout_uniform_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_uniform_vr.dm @@ -235,4 +235,18 @@ Talon jumpsuit /datum/gear/uniform/talonbasic display_name = "ITV Jumpsuit" description = "A jumpsuit that is usually issued to ITV contractors, however others can purchase it to show their support towards ITV." - path = /obj/item/clothing/under/rank/talon/basic \ No newline at end of file + path = /obj/item/clothing/under/rank/talon/basic + +// Summer dresses +/datum/gear/uniform/summerdress + display_name = "summer dress selection" + path = /obj/item/clothing/under/summerdress + +/datum/gear/uniform/summerdress/New() + ..() + var/list/dresses = list( + "black and white" = /obj/item/clothing/under/summerdress, + "blue and white" = /obj/item/clothing/under/summerdress/blue, + "red and white" = /obj/item/clothing/under/summerdress/red + ) + gear_tweaks += new/datum/gear_tweak/path(dresses) diff --git a/code/modules/client/verbs/who.dm b/code/modules/client/verbs/who.dm index c5f576ee7d..006815d443 100644 --- a/code/modules/client/verbs/who.dm +++ b/code/modules/client/verbs/who.dm @@ -69,7 +69,7 @@ var/temp = "" var/category = R_ADMIN // VOREStation Edit - Apply stealthmin protection to all levels - if(C.holder.fakekey && !check_rights(R_ADMIN|R_MOD, FALSE, src)) // Only admins and mods can see stealthmins + if(C.holder.fakekey && !check_rights_for(src, R_ADMIN|R_MOD)) // Only admins and mods can see stealthmins continue // VOREStation Edit End if(check_rights(R_BAN, FALSE, C)) // admins //VOREStation Edit diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm index b9abfabf04..08c594153d 100644 --- a/code/modules/clothing/chameleon.dm +++ b/code/modules/clothing/chameleon.dm @@ -336,7 +336,6 @@ /obj/item/weapon/storage/belt/chameleon name = "belt" desc = "Can hold various things. It also has a small dial inside one of the pouches." - icon = 'icons/obj/clothing/belts.dmi' icon_state = "utilitybelt" origin_tech = list(TECH_ILLEGAL = 3) var/global/list/clothing_choices @@ -376,7 +375,7 @@ /obj/item/clothing/accessory/chameleon name = "black tie" desc = "Looks like a black tie, but his one also has a dial inside." - icon = 'icons/obj/clothing/ties.dmi' + icon = 'icons/inventory/accessory/item.dmi' icon_state = "blacktie" origin_tech = list(TECH_ILLEGAL = 3) var/global/list/clothing_choices diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 5a5787c5cc..13816406cf 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -26,8 +26,6 @@ var/ear_protection = 0 var/blood_sprite_state - var/index //null by default, if set, will change which dmi it uses - var/update_icon_define = null // Only needed if you've got multiple files for the same type of clothing var/polychromic = FALSE //VOREStation edit @@ -229,7 +227,7 @@ throwforce = 2 slot_flags = SLOT_EARS sprite_sheets = list( - SPECIES_TESHARI = 'icons/mob/species/teshari/ears.dmi') + SPECIES_TESHARI = 'icons/inventory/ears/mob_teshari.dmi') /obj/item/clothing/ears/attack_hand(mob/user as mob) if (!user) return @@ -312,7 +310,7 @@ ) gender = PLURAL //Carn: for grammarically correct text-parsing w_class = ITEMSIZE_SMALL - icon = 'icons/obj/clothing/gloves.dmi' + icon = 'icons/inventory/hands/item.dmi' siemens_coefficient = 0.9 blood_sprite_state = "bloodyhands" var/wired = 0 @@ -328,8 +326,8 @@ slot_flags = SLOT_GLOVES attack_verb = list("challenged") sprite_sheets = list( - SPECIES_TESHARI = 'icons/mob/species/teshari/gloves.dmi', - SPECIES_VOX = 'icons/mob/species/vox/gloves.dmi' + SPECIES_TESHARI = 'icons/inventory/hands/mob_teshari.dmi', + SPECIES_VOX = 'icons/inventory/hands/mob_vox.dmi' ) drop_sound = 'sound/items/drop/gloves.ogg' pickup_sound = 'sound/items/pickup/gloves.ogg' @@ -438,7 +436,7 @@ /obj/item/clothing/gloves/ring name = "ring" w_class = ITEMSIZE_TINY - icon = 'icons/obj/clothing/rings.dmi' + icon = 'icons/inventory/hands/item.dmi' gender = NEUTER species_restricted = list("exclude", SPECIES_DIONA) siemens_coefficient = 1 @@ -453,7 +451,7 @@ //Head /obj/item/clothing/head name = "head" - icon = 'icons/obj/clothing/hats.dmi' + icon = 'icons/inventory/head/item.dmi' item_icons = list( slot_l_hand_str = 'icons/mob/items/lefthand_hats.dmi', slot_r_hand_str = 'icons/mob/items/righthand_hats.dmi', @@ -470,8 +468,8 @@ var/image/helmet_light sprite_sheets = list( - SPECIES_TESHARI = 'icons/mob/species/teshari/head.dmi', - SPECIES_VOX = 'icons/mob/species/vox/head.dmi' + SPECIES_TESHARI = 'icons/inventory/head/mob_teshari.dmi', + SPECIES_VOX = 'icons/inventory/head/mob_vox.dmi' ) drop_sound = 'sound/items/drop/hat.ogg' pickup_sound = 'sound/items/pickup/hat.ogg' @@ -544,7 +542,7 @@ // Generate and cache the on-mob icon, which is used in update_inv_head(). var/body_type = (H && H.species.get_bodytype(H)) - var/cache_key = "[light_overlay][body_type && sprite_sheets[body_type] ? "_[body_type]" : ""]" + var/cache_key = "[light_overlay][body_type && sprite_sheets[body_type] ? body_type : ""]" if(!light_overlay_cache[cache_key]) var/use_icon = LAZYACCESS(sprite_sheets,body_type) || 'icons/mob/light_overlays.dmi' light_overlay_cache[cache_key] = image(icon = use_icon, icon_state = "[light_overlay]") @@ -564,7 +562,7 @@ //Mask /obj/item/clothing/mask name = "mask" - icon = 'icons/obj/clothing/masks.dmi' + icon = 'icons/inventory/face/item.dmi' item_icons = list( slot_l_hand_str = 'icons/mob/items/lefthand_masks.dmi', slot_r_hand_str = 'icons/mob/items/righthand_masks.dmi', @@ -574,10 +572,10 @@ body_parts_covered = FACE|EYES blood_sprite_state = "maskblood" sprite_sheets = list( - SPECIES_TESHARI = 'icons/mob/species/teshari/masks.dmi', - SPECIES_VOX = 'icons/mob/species/vox/masks.dmi', - SPECIES_TAJ = 'icons/mob/species/tajaran/mask.dmi', - SPECIES_UNATHI = 'icons/mob/species/unathi/mask.dmi' + SPECIES_TESHARI = 'icons/inventory/face/mob_teshari.dmi', + SPECIES_VOX = 'icons/inventory/face/mob_vox.dmi', + SPECIES_TAJ = 'icons/inventory/face/mob_tajaran.dmi', + SPECIES_UNATHI = 'icons/inventory/face/mob_unathi.dmi' ) var/voicechange = 0 @@ -599,7 +597,7 @@ //Shoes /obj/item/clothing/shoes name = "shoes" - icon = 'icons/obj/clothing/shoes.dmi' + icon = 'icons/inventory/feet/item.dmi' item_icons = list( slot_l_hand_str = 'icons/mob/items/lefthand_shoes.dmi', slot_r_hand_str = 'icons/mob/items/righthand_shoes.dmi', @@ -628,8 +626,8 @@ var/overshoes = 0 species_restricted = list("exclude",SPECIES_TESHARI, SPECIES_VOX) sprite_sheets = list( - SPECIES_TESHARI = 'icons/mob/species/teshari/shoes.dmi', - SPECIES_VOX = 'icons/mob/species/vox/shoes.dmi' + SPECIES_TESHARI = 'icons/inventory/feet/mob_teshari.dmi', + SPECIES_VOX = 'icons/inventory/feet/mob_vox.dmi' ) drop_sound = 'sound/items/drop/shoes.ogg' pickup_sound = 'sound/items/pickup/shoes.ogg' @@ -729,7 +727,7 @@ /////////////////////////////////////////////////////////////////////// //Suit /obj/item/clothing/suit - icon = 'icons/obj/clothing/suits.dmi' + icon = 'icons/inventory/suit/item.dmi' item_icons = list( slot_l_hand_str = 'icons/mob/items/lefthand_suits.dmi', slot_r_hand_str = 'icons/mob/items/righthand_suits.dmi', @@ -738,7 +736,7 @@ var/fire_resist = T0C+100 body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS allowed = list(/obj/item/weapon/tank/emergency/oxygen) - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0) slot_flags = SLOT_OCLOTHING var/blood_overlay_type = "suit" blood_sprite_state = "suitblood" //Defaults to the suit's blood overlay, so that some blood renders instead of no blood. @@ -751,34 +749,18 @@ sprite_sheets = list( - SPECIES_TESHARI = 'icons/mob/species/teshari/suit.dmi', - SPECIES_VOX = 'icons/mob/species/vox/suit.dmi' + SPECIES_TESHARI = 'icons/inventory/suit/mob_teshari.dmi', + SPECIES_VOX = 'icons/inventory/suit/mob_vox.dmi' ) valid_accessory_slots = (ACCESSORY_SLOT_OVER | ACCESSORY_SLOT_ARMBAND) restricted_accessory_slots = (ACCESSORY_SLOT_ARMBAND) -/obj/item/clothing/suit/set_clothing_index() - ..() - - if(index && !icon_override) - icon = new /icon("icons/obj/clothing/suits_[index].dmi") - item_icons = list( - slot_l_hand_str = new /icon("icons/mob/items/lefthand_suits_[index].dmi"), - slot_r_hand_str = new /icon("icons/mob/items/righthand_suits_[index].dmi"), - ) - - return 1 - - return 0 - /obj/item/clothing/suit/update_clothing_icon() if (ismob(src.loc)) var/mob/M = src.loc M.update_inv_wear_suit() - set_clothing_index() - /obj/item/clothing/suit/equipped(var/mob/user, var/slot) if(ishuman(user)) var/mob/living/carbon/human/H = user @@ -819,7 +801,7 @@ /////////////////////////////////////////////////////////////////////// //Under clothing /obj/item/clothing/under - icon = 'icons/obj/clothing/uniforms.dmi' + icon = 'icons/inventory/uniform/item.dmi' item_icons = list( slot_l_hand_str = 'icons/mob/items/lefthand_uniforms.dmi', slot_r_hand_str = 'icons/mob/items/righthand_uniforms.dmi', @@ -845,8 +827,8 @@ var/rolled_down = -1 //0 = unrolled, 1 = rolled, -1 = cannot be toggled var/rolled_sleeves = -1 //0 = unrolled, 1 = rolled, -1 = cannot be toggled sprite_sheets = list( - SPECIES_TESHARI = 'icons/mob/species/teshari/uniform.dmi', - SPECIES_VOX = 'icons/mob/species/vox/uniform.dmi' + SPECIES_TESHARI = 'icons/inventory/uniform/mob_teshari.dmi', + SPECIES_VOX = 'icons/inventory/uniform/mob_vox.dmi' ) //convenience var for defining the icon state for the overlay used when the clothing is worn. @@ -872,8 +854,8 @@ |ACCESSORY_SLOT_DEPT\ |ACCESSORY_SLOT_OVER) - var/icon/rolled_down_icon = 'icons/mob/uniform_rolled_down.dmi' - var/icon/rolled_down_sleeves_icon = 'icons/mob/uniform_sleeves_rolled.dmi' + var/icon/rolled_down_icon = 'icons/inventory/uniform/mob_rolled_down.dmi' + var/icon/rolled_down_sleeves_icon = 'icons/inventory/uniform/mob_sleeves_rolled.dmi' /obj/item/clothing/under/attack_hand(var/mob/user) if(LAZYLEN(accessories)) @@ -893,7 +875,7 @@ //autodetect rollability if(rolled_down < 0) - if(("[worn_state]_d_s" in cached_icon_states(icon)) || ("[worn_state]_s" in cached_icon_states(rolled_down_icon)) || ("[worn_state]_d_s" in cached_icon_states(icon_override))) + if(("[worn_state]_d" in cached_icon_states(icon)) || (worn_state in cached_icon_states(rolled_down_icon)) || ("[worn_state]_d" in cached_icon_states(icon_override))) rolled_down = 0 if(rolled_down == -1) @@ -901,23 +883,6 @@ if(rolled_sleeves == -1) verbs -= /obj/item/clothing/under/verb/rollsleeves -/obj/item/clothing/under/set_clothing_index() - ..() - - if(index && !icon_override) - icon = new /icon("icons/obj/clothing/uniforms_[index].dmi") - - item_icons = list( - slot_l_hand_str = new /icon("icons/mob/items/lefthand_uniforms_[index].dmi"), - slot_r_hand_str = new /icon("icons/mob/items/righthand_uniforms_[index].dmi"), - ) - - rolled_down_icon = new /icon("icons/mob/uniform_rolled_down_[index].dmi") - rolled_down_sleeves_icon = new /icon("icons/mob/uniform_sleeves_rolled_[index].dmi") - return 1 - - return 0 - /obj/item/clothing/under/proc/update_rolldown_status() var/mob/living/carbon/human/H if(istype(src.loc, /mob/living/carbon/human)) @@ -930,11 +895,11 @@ under_icon = sprite_sheets[H.species.get_bodytype(H)] else if(item_icons && item_icons[slot_w_uniform_str]) under_icon = item_icons[slot_w_uniform_str] - else if ("[worn_state]_s" in cached_icon_states(rolled_down_icon)) + else if (worn_state in cached_icon_states(rolled_down_icon)) under_icon = rolled_down_icon // The _s is because the icon update procs append it. - if((under_icon == rolled_down_icon && ("[worn_state]_s" in cached_icon_states(under_icon))) || ("[worn_state]_d_s" in cached_icon_states(under_icon))) + if((under_icon == rolled_down_icon && ("[worn_state]" in cached_icon_states(under_icon))) || ("[worn_state]_d" in cached_icon_states(under_icon))) if(rolled_down != 1) rolled_down = 0 else @@ -953,13 +918,13 @@ under_icon = sprite_sheets[H.species.get_bodytype(H)] else if(item_icons && item_icons[slot_w_uniform_str]) under_icon = item_icons[slot_w_uniform_str] - else if ("[worn_state]_s" in cached_icon_states(rolled_down_sleeves_icon)) + else if (worn_state in cached_icon_states(rolled_down_sleeves_icon)) under_icon = rolled_down_sleeves_icon - else if(index) - under_icon = new /icon("[INV_W_UNIFORM_DEF_ICON]_[index].dmi") + else + under_icon = new /icon(INV_W_UNIFORM_DEF_ICON) // The _s is because the icon update procs append it. - if((under_icon == rolled_down_sleeves_icon && ("[worn_state]_s" in cached_icon_states(under_icon))) || ("[worn_state]_r_s" in cached_icon_states(under_icon))) + if((under_icon == rolled_down_sleeves_icon && ("[worn_state]" in cached_icon_states(under_icon))) || ("[worn_state]_r" in cached_icon_states(under_icon))) if(rolled_sleeves != 1) rolled_sleeves = 0 else @@ -1042,9 +1007,9 @@ if(rolled_down) body_parts_covered = initial(body_parts_covered) body_parts_covered &= ~(UPPER_TORSO|ARMS) - if("[worn_state]_s" in cached_icon_states(rolled_down_icon)) + if(worn_state in cached_icon_states(rolled_down_icon)) icon_override = rolled_down_icon - item_state_slots[slot_w_uniform_str] = "[worn_state]" + item_state_slots[slot_w_uniform_str] = worn_state else item_state_slots[slot_w_uniform_str] = "[worn_state]_d" @@ -1053,7 +1018,7 @@ body_parts_covered = initial(body_parts_covered) if(icon_override == rolled_down_icon) icon_override = initial(icon_override) - item_state_slots[slot_w_uniform_str] = "[worn_state]" + item_state_slots[slot_w_uniform_str] = worn_state to_chat(usr, "You roll up your [src].") update_clothing_icon() @@ -1075,9 +1040,9 @@ rolled_sleeves = !rolled_sleeves if(rolled_sleeves) body_parts_covered &= ~(ARMS) - if("[worn_state]_s" in cached_icon_states(rolled_down_sleeves_icon)) + if(worn_state in cached_icon_states(rolled_down_sleeves_icon)) icon_override = rolled_down_sleeves_icon - item_state_slots[slot_w_uniform_str] = "[worn_state]" + item_state_slots[slot_w_uniform_str] = worn_state else item_state_slots[slot_w_uniform_str] = "[worn_state]_r" to_chat(usr, "You roll up your [src]'s sleeves.") @@ -1085,7 +1050,7 @@ body_parts_covered = initial(body_parts_covered) if(icon_override == rolled_down_sleeves_icon) icon_override = initial(icon_override) - item_state_slots[slot_w_uniform_str] = "[worn_state]" + item_state_slots[slot_w_uniform_str] = worn_state to_chat(usr, "You roll down your [src]'s sleeves.") update_clothing_icon() diff --git a/code/modules/clothing/clothing_icons.dm b/code/modules/clothing/clothing_icons.dm index 1762d09201..c28d60a9ff 100644 --- a/code/modules/clothing/clothing_icons.dm +++ b/code/modules/clothing/clothing_icons.dm @@ -10,12 +10,6 @@ bloodsies.color = blood_color standing.add_overlay(bloodsies) -//UNIFORM: Always appends "_s" to iconstate, stupidly. -/obj/item/clothing/under/get_worn_icon_state(var/slot_name) - var/state2use = ..() - state2use += "_s" - return state2use - //HELMET: May have a lighting overlay /obj/item/clothing/head/make_worn_icon(var/body_type,var/slot_name,var/inhands,var/default_icon,var/default_layer = 0,var/icon/clip_mask = null) var/image/standing = ..() diff --git a/code/modules/clothing/clothing_vr.dm b/code/modules/clothing/clothing_vr.dm index e6935a30e9..a33461a7e4 100644 --- a/code/modules/clothing/clothing_vr.dm +++ b/code/modules/clothing/clothing_vr.dm @@ -5,9 +5,9 @@ var/list/inside_emotes = list() var/recent_squish = 0 sprite_sheets = list( - SPECIES_TESHARI = 'icons/mob/species/teshari/shoes.dmi', - SPECIES_VOX = 'icons/mob/species/vox/shoes.dmi', - SPECIES_WEREBEAST = 'icons/mob/species/werebeast/feet.dmi') + SPECIES_TESHARI = 'icons/inventory/feet/mob_teshari.dmi', + SPECIES_VOX = 'icons/inventory/feet/mob_vox.dmi', + SPECIES_WEREBEAST = 'icons/inventory/feet/mob_werebeast.dmi') /obj/item/clothing/shoes/New() inside_emotes = list( @@ -85,14 +85,14 @@ /obj/item/clothing/gloves sprite_sheets = list( - SPECIES_TESHARI = 'icons/mob/species/teshari/gloves.dmi', - SPECIES_VOX = 'icons/mob/species/vox/gloves.dmi', - SPECIES_WEREBEAST = 'icons/mob/species/werebeast/hands.dmi') + SPECIES_TESHARI = 'icons/inventory/hands/mob_teshari.dmi', + SPECIES_VOX = 'icons/inventory/hands/mob_vox.dmi', + SPECIES_WEREBEAST = 'icons/inventory/hands/mob_werebeast.dmi') /obj/item/clothing/ears sprite_sheets = list( - SPECIES_TESHARI = 'icons/mob/species/teshari/ears.dmi', - SPECIES_WEREBEAST = 'icons/mob/species/werebeast/ears.dmi') + SPECIES_TESHARI = 'icons/inventory/ears/mob_teshari.dmi', + SPECIES_WEREBEAST = 'icons/inventory/ears/mob_werebeast.dmi') /obj/item/clothing/relaymove(var/mob/living/user,var/direction) @@ -119,7 +119,7 @@ //Mask /obj/item/clothing/mask name = "mask" - icon = 'icons/obj/clothing/masks_vr.dmi' // This is intentional because of our custom species. + icon = 'icons/inventory/face/item_vr.dmi' // This is intentional because of our custom species. item_icons = list( slot_l_hand_str = 'icons/mob/items/lefthand_masks.dmi', slot_r_hand_str = 'icons/mob/items/righthand_masks.dmi', @@ -128,41 +128,38 @@ slot_flags = SLOT_MASK body_parts_covered = FACE|EYES item_icons = list( - slot_wear_mask_str = 'icons/mob/mask_vr.dmi' + slot_wear_mask_str = 'icons/inventory/face/mob_vr.dmi' ) sprite_sheets = list( - SPECIES_TESHARI = 'icons/mob/species/teshari/masks_vr.dmi', - SPECIES_VOX = 'icons/mob/species/vox/masks.dmi', - SPECIES_TAJ = 'icons/mob/species/tajaran/mask_vr.dmi', - SPECIES_UNATHI = 'icons/mob/species/unathi/mask_vr.dmi', - SPECIES_SERGAL = 'icons/mob/species/sergal/mask_vr.dmi', - SPECIES_NEVREAN = 'icons/mob/species/nevrean/mask_vr.dmi', - SPECIES_ZORREN_HIGH = 'icons/mob/species/fox/mask_vr.dmi', - SPECIES_ZORREN_FLAT = 'icons/mob/species/fennec/mask_vr.dmi', - SPECIES_AKULA = 'icons/mob/species/akula/mask_vr.dmi', - SPECIES_VULPKANIN = 'icons/mob/species/vulpkanin/mask.dmi', - SPECIES_XENOCHIMERA = 'icons/mob/species/tajaran/mask_vr.dmi', - SPECIES_WEREBEAST = 'icons/mob/species/werebeast/masks.dmi', - SPECIES_GREY_YW = 'icons/mob/species/grey/mask.dmi'/*ywedit*/ + SPECIES_TESHARI = 'icons/inventory/face/mob_teshari.dmi', + SPECIES_VOX = 'icons/inventory/face/mob_vox.dmi', + SPECIES_TAJ = 'icons/inventory/face/mob_tajaran.dmi', + SPECIES_UNATHI = 'icons/inventory/face/mob_unathi.dmi', + SPECIES_SERGAL = 'icons/inventory/face/mob_sergal.dmi', + SPECIES_NEVREAN = 'icons/inventory/face/mob_nevrean.dmi', + SPECIES_ZORREN_HIGH = 'icons/inventory/face/mob_fox.dmi', + SPECIES_ZORREN_FLAT = 'icons/inventory/face/mob_fennec.dmi', + SPECIES_AKULA = 'icons/inventory/face/mob_akula.dmi', + SPECIES_VULPKANIN = 'icons/inventory/face/mob_vulpkanin.dmi', + SPECIES_XENOCHIMERA = 'icons/inventory/face/mob_tajaran.dmi', + SPECIES_WEREBEAST = 'icons/inventory/face/mob_werebeast.dmi' ) -//"Spider" = 'icons/mob/species/spider/mask_vr.dmi' Add this later when they have custom mask sprites and everything. +//"Spider" = 'icons/inventory/mask/mob_spider.dmi' Add this later when they have custom mask sprites and everything. //Switch to taur sprites if a taur equips /obj/item/clothing/suit sprite_sheets = list( - SPECIES_TESHARI = 'icons/mob/species/teshari/suit.dmi', - SPECIES_VOX = 'icons/mob/species/vox/suit.dmi', - SPECIES_WEREBEAST = 'icons/mob/species/werebeast/suit.dmi') + SPECIES_TESHARI = 'icons/inventory/suit/mob_teshari.dmi', + SPECIES_VOX = 'icons/inventory/suit/mob_vox.dmi', + SPECIES_WEREBEAST = 'icons/inventory/suit/mob_werebeast.dmi') /obj/item/clothing/under sensor_mode = 3 var/sensorpref = 5 sprite_sheets = list( - SPECIES_TESHARI = 'icons/mob/species/teshari/uniform.dmi', - SPECIES_VOX = 'icons/mob/species/vox/uniform.dmi', - SPECIES_WEREBEAST = 'icons/mob/species/werebeast/uniform.dmi', - SPECIES_GREY_YW = 'icons/mob/species/grey/uniform.dmi'/*ywedit*/ - ) + SPECIES_TESHARI = 'icons/inventory/uniform/mob_teshari.dmi', + SPECIES_VOX = 'icons/inventory/uniform/mob_vox.dmi', + SPECIES_WEREBEAST = 'icons/inventory/uniform/mob_werebeast.dmi') /obj/item/clothing/under/New(var/mob/living/carbon/human/H) ..() @@ -179,6 +176,6 @@ /obj/item/clothing/head sprite_sheets = list( - SPECIES_TESHARI = 'icons/mob/species/teshari/head.dmi', - SPECIES_VOX = 'icons/mob/species/vox/head.dmi', - SPECIES_WEREBEAST = 'icons/mob/species/werebeast/head.dmi') + SPECIES_TESHARI = 'icons/inventory/head/mob_teshari.dmi', + SPECIES_VOX = 'icons/inventory/head/mob_vox.dmi', + SPECIES_WEREBEAST = 'icons/inventory/head/mob_werebeast.dmi') diff --git a/code/modules/clothing/ears/earrings.dm b/code/modules/clothing/ears/earrings.dm index 154f69f44a..82746980bd 100644 --- a/code/modules/clothing/ears/earrings.dm +++ b/code/modules/clothing/ears/earrings.dm @@ -2,7 +2,7 @@ /obj/item/clothing/ears/earring name = "earring" desc = "An earring of some kind." - icon = 'icons/obj/clothing/ears.dmi' + icon = 'icons/inventory/ears/item.dmi' /obj/item/clothing/ears/earring/stud name = "pearl stud earrings" diff --git a/code/modules/clothing/ears/ears.dm b/code/modules/clothing/ears/ears.dm index 07e74d7321..99f9b00912 100644 --- a/code/modules/clothing/ears/ears.dm +++ b/code/modules/clothing/ears/ears.dm @@ -43,7 +43,7 @@ /obj/item/clothing/ears/skrell name = "skrell tentacle wear" desc = "Some stuff worn by skrell to adorn their head tentacles." - icon = 'icons/obj/clothing/ears.dmi' + icon = 'icons/inventory/ears/item.dmi' w_class = ITEMSIZE_TINY slot_flags = SLOT_EARS species_restricted = list(SPECIES_SKRELL) diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm index a659a02322..3db7ad58cf 100644 --- a/code/modules/clothing/glasses/glasses.dm +++ b/code/modules/clothing/glasses/glasses.dm @@ -13,7 +13,7 @@ BLIND // can't see anything /obj/item/clothing/glasses name = "glasses" - icon = 'icons/obj/clothing/glasses.dmi' + icon = 'icons/inventory/eyes/item.dmi' w_class = ITEMSIZE_SMALL slot_flags = SLOT_EYES plane_slots = list(slot_glasses) @@ -31,10 +31,8 @@ BLIND // can't see anything pickup_sound = 'sound/items/pickup/accessory.ogg' sprite_sheets = list( - SPECIES_TESHARI = 'icons/mob/species/teshari/eyes.dmi', - SPECIES_VOX = 'icons/mob/species/vox/eyes.dmi', - "Sergal" = 'icons/mob/species/sergal/eyes_yw.dmi', //YWedit - SPECIES_GREY_YW = 'icons/mob/species/grey/eyes.dmi'/*ywedit*/ + SPECIES_TESHARI = 'icons/inventory/eyes/mob_teshari.dmi', + SPECIES_VOX = 'icons/inventory/eyes/mob_vox.dmi' ) /obj/item/clothing/glasses/update_clothing_icon() diff --git a/code/modules/clothing/glasses/glasses_vr.dm b/code/modules/clothing/glasses/glasses_vr.dm index aa0335ddf3..63be852414 100644 --- a/code/modules/clothing/glasses/glasses_vr.dm +++ b/code/modules/clothing/glasses/glasses_vr.dm @@ -64,8 +64,8 @@ /obj/item/clothing/glasses/graviton/medgravpatch name = "medical graviton eyepatch" desc = "A graviton eyepatch with a medical overlay." - icon = 'icons/obj/clothing/glasses_vr.dmi' - icon_override = 'icons/mob/eyes_vr.dmi' + icon = 'icons/inventory/eyes/item_vr.dmi' + icon_override = 'icons/inventory/eyes/mob_vr.dmi' icon_state = "medgravpatch" item_state_slots = list(slot_r_hand_str = "blindfold", slot_l_hand_str = "blindfold") action_button_name = "Toggle Eyepatch" @@ -77,8 +77,8 @@ /obj/item/clothing/glasses/tajblind name = "embroidered veil" desc = "An Tajaran made veil that allows the user to see while obscuring their eyes." - icon = 'icons/obj/clothing/glasses_vr.dmi' - icon_override = 'icons/mob/eyes_vr.dmi' + icon = 'icons/inventory/eyes/item_vr.dmi' + icon_override = 'icons/inventory/eyes/mob_vr.dmi' icon_state = "tajblind" item_state = "tajblind" prescription = 1 @@ -87,8 +87,8 @@ /obj/item/clothing/glasses/hud/health/tajblind name = "lightweight veil" desc = "An Tajaran made veil that allows the user to see while obscuring their eyes. This one has an installed medical HUD." - icon = 'icons/obj/clothing/glasses_vr.dmi' - icon_override = 'icons/mob/eyes_vr.dmi' + icon = 'icons/inventory/eyes/item_vr.dmi' + icon_override = 'icons/inventory/eyes/mob_vr.dmi' icon_state = "tajblind_med" item_state = "tajblind_med" body_parts_covered = EYES @@ -96,8 +96,8 @@ /obj/item/clothing/glasses/sunglasses/sechud/tajblind name = "sleek veil" desc = "An Tajaran made veil that allows the user to see while obscuring their eyes. This one has an in-built security HUD." - icon = 'icons/obj/clothing/glasses_vr.dmi' - icon_override = 'icons/mob/eyes_vr.dmi' + icon = 'icons/inventory/eyes/item_vr.dmi' + icon_override = 'icons/inventory/eyes/mob_vr.dmi' icon_state = "tajblind_sec" item_state = "tajblind_sec" prescription = 1 @@ -106,8 +106,8 @@ /obj/item/clothing/glasses/meson/prescription/tajblind name = "industrial veil" desc = "An Tajaran made veil that allows the user to see while obscuring their eyes. This one has installed mesons." - icon = 'icons/obj/clothing/glasses_vr.dmi' - icon_override = 'icons/mob/eyes_vr.dmi' + icon = 'icons/inventory/eyes/item_vr.dmi' + icon_override = 'icons/inventory/eyes/mob_vr.dmi' icon_state = "tajblind_meson" item_state = "tajblind_meson" off_state = "tajblind" @@ -116,8 +116,8 @@ /obj/item/clothing/glasses/material/prescription/tajblind name = "mining veil" desc = "An Tajaran made veil that allows the user to see while obscuring their eyes. This one has an installed material scanner." - icon = 'icons/obj/clothing/glasses_vr.dmi' - icon_override = 'icons/mob/eyes_vr.dmi' + icon = 'icons/inventory/eyes/item_vr.dmi' + icon_override = 'icons/inventory/eyes/mob_vr.dmi' icon_state = "tajblind_meson" item_state = "tajblind_meson" off_state = "tajblind" @@ -125,8 +125,7 @@ /obj/item/clothing/glasses sprite_sheets = list( - SPECIES_TESHARI = 'icons/mob/species/teshari/eyes.dmi', - SPECIES_VOX = 'icons/mob/species/vox/eyes.dmi', - SPECIES_WEREBEAST = 'icons/mob/species/werebeast/eyes.dmi', - SPECIES_GREY_YW = 'icons/mob/species/grey/eyes.dmi'/*ywedit*/ + SPECIES_TESHARI = 'icons/inventory/eyes/mob_teshari.dmi', + SPECIES_VOX = 'icons/inventory/eyes/mob_vox.dmi', + SPECIES_WEREBEAST = 'icons/inventory/eyes/mob_werebeast.dmi' ) diff --git a/code/modules/clothing/glasses/hud_vr.dm b/code/modules/clothing/glasses/hud_vr.dm index c5ea5d5044..6093034dd1 100644 --- a/code/modules/clothing/glasses/hud_vr.dm +++ b/code/modules/clothing/glasses/hud_vr.dm @@ -116,8 +116,8 @@ /obj/item/clothing/glasses/omnihud/visor name = "AR visor" desc = "The VZR-AR are a product based upon the classic AR Glasses, just more fashionable." - icon_override = 'icons/mob/eyes_vr.dmi' - icon = 'icons/mob/eyes_vr.dmi' + icon_override = 'icons/inventory/eyes/mob_vr.dmi' + icon = 'icons/inventory/eyes/mob_vr.dmi' icon_state = "visor_CIV" item_state = "visor_CIV" diff --git a/code/modules/clothing/gloves/arm_guards_vr.dm b/code/modules/clothing/gloves/arm_guards_vr.dm index 00f78dcc5d..69b3bee05d 100644 --- a/code/modules/clothing/gloves/arm_guards_vr.dm +++ b/code/modules/clothing/gloves/arm_guards_vr.dm @@ -2,5 +2,5 @@ name = "imperial gauntlets" desc = "Made of some exotic metal, and crafted by space elves. Elves have delicate hands." icon_state = "ge_gloves" - icon = 'icons/obj/clothing/gloves_vr.dmi' - icon_override = 'icons/mob/hands_vr.dmi' \ No newline at end of file + icon = 'icons/inventory/hands/item_vr.dmi' + icon = 'icons/inventory/hands/mob_vr.dmi' \ No newline at end of file diff --git a/code/modules/clothing/gloves/miscellaneous_vr.dm b/code/modules/clothing/gloves/miscellaneous_vr.dm index 975ef36988..a9b21cafc7 100644 --- a/code/modules/clothing/gloves/miscellaneous_vr.dm +++ b/code/modules/clothing/gloves/miscellaneous_vr.dm @@ -1,7 +1,7 @@ /obj/item/clothing/gloves/weddingring name = "golden wedding ring" desc = "For showing your devotion to another person. It has a golden glimmer to it." - icon = 'icons/obj/clothing/gloves_vr.dmi' + icon = 'icons/inventory/hands/item_vr.dmi' icon_state = "wedring_g" item_state = "wedring_g" var/partnername = "" @@ -59,4 +59,4 @@ desc = "ye olde armored gauntlets" name = "knight gauntlets" icon_state = "brown" - item_state = "brown" \ No newline at end of file + item_state = "brown" diff --git a/code/modules/clothing/head/collectable.dm b/code/modules/clothing/head/collectable.dm index 4b410163fe..bb4e035196 100644 --- a/code/modules/clothing/head/collectable.dm +++ b/code/modules/clothing/head/collectable.dm @@ -10,8 +10,8 @@ desc = "an ultra rare hat. It commands a certain respect." icon_state = "petehat" sprite_sheets = list( - SPECIES_TESHARI = 'icons/mob/species/teshari/head.dmi', - SPECIES_VOX = 'icons/mob/species/vox/head.dmi' + SPECIES_TESHARI = 'icons/inventory/head/mob_teshari.dmi', + SPECIES_VOX = 'icons/inventory/head/mob_vox.dmi' ) /obj/item/clothing/head/collectable/slime diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index cf0527c6a6..bbe3f21b44 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -172,8 +172,8 @@ icon_state = "swathelm" item_state_slots = list(slot_r_hand_str = "swat", slot_l_hand_str = "swat") sprite_sheets = list( - SPECIES_TAJ = 'icons/mob/species/tajaran/helmet.dmi', - SPECIES_UNATHI = 'icons/mob/species/unathi/helmet.dmi', + SPECIES_TAJ = 'icons/inventory/head/mob_tajaran.dmi', + SPECIES_UNATHI = 'icons/inventory/head/mob_unathi.dmi', ) armor = list(melee = 60, bullet = 60, laser = 60, energy = 40, bomb = 40, bio = 0, rad = 0) diff --git a/code/modules/clothing/head/helmet_vr.dm b/code/modules/clothing/head/helmet_vr.dm index 6f36aef383..53e9c581af 100644 --- a/code/modules/clothing/head/helmet_vr.dm +++ b/code/modules/clothing/head/helmet_vr.dm @@ -11,30 +11,30 @@ desc = "If you wanna to keep your brain inside yo' head, you'd best put this on!" icon_state = "unsc_helm" item_state = "unsc_helm" - icon = 'icons/obj/clothing/hats_vr.dmi' - icon_override = 'icons/mob/head_vr.dmi' + icon = 'icons/inventory/head/item_vr.dmi' + icon_override = 'icons/inventory/head/mob_vr.dmi' /obj/item/clothing/head/helmet/combat/imperial name = "imperial soldier helmet" desc = "Veni, vidi, vici; I came, I saw, I conquered." icon_state = "ge_helm" - icon = 'icons/obj/clothing/hats_vr.dmi' - icon_override = 'icons/mob/head_vr.dmi' + icon = 'icons/inventory/head/item_vr.dmi' + icon_override = 'icons/inventory/head/mob_vr.dmi' /obj/item/clothing/head/helmet/combat/imperial/centurion name = "imperial centurion helmet" desc = "Vendi, vidi, visa; I came, I saw, I realised this hat was too expensive." icon_state = "ge_helmcent" - icon = 'icons/obj/clothing/hats_vr.dmi' - icon_override = 'icons/mob/head_vr.dmi' + icon = 'icons/inventory/head/item_vr.dmi' + icon_override = 'icons/inventory/head/mob_vr.dmi' // Armor Versions Here /obj/item/clothing/head/helmet/combat/crusader name = "crusader helmet" desc = "ye olde armored helmet" icon_state = "crusader" - icon = 'icons/obj/clothing/hats_vr.dmi' - icon_override = 'icons/obj/clothing/hats_vr.dmi' + icon = 'icons/inventory/head/item_vr.dmi' + icon_override = 'icons/inventory/head/item_vr.dmi' armor = list(melee = 80, bullet = 50, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0) siemens_coefficient = 2 @@ -42,8 +42,8 @@ name = "bedevere's helmet" desc = "ye olde armored helmet" icon_state = "bedevere_helmet" - icon = 'icons/obj/clothing/hats_vr.dmi' - icon_override = 'icons/obj/clothing/hats_vr.dmi' + icon = 'icons/inventory/head/item_vr.dmi' + icon_override = 'icons/inventory/head/item_vr.dmi' armor = list(melee = 80, bullet = 50, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0) tint = TINT_HEAVY siemens_coefficient = 2 @@ -90,8 +90,8 @@ name = "crusader costume helmet" desc = "ye olde armored helmet" icon_state = "crusader" - icon = 'icons/obj/clothing/hats_vr.dmi' - icon_override = 'icons/obj/clothing/hats_vr.dmi' + icon = 'icons/inventory/head/item_vr.dmi' + icon_override = 'icons/inventory/head/item_vr.dmi' armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0) siemens_coefficient = 1 @@ -99,8 +99,8 @@ name = "bedevere's costume helmet" desc = "ye olde armored helmet" icon_state = "bedevere_helmet" - icon = 'icons/obj/clothing/hats_vr.dmi' - icon_override = 'icons/obj/clothing/hats_vr.dmi' + icon = 'icons/inventory/head/item_vr.dmi' + icon_override = 'icons/inventory/head/item_vr.dmi' armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0) tint = TINT_HEAVY siemens_coefficient = 1 diff --git a/code/modules/clothing/head/hood_vr.dm b/code/modules/clothing/head/hood_vr.dm index c1de0bafc3..906bc98b02 100644 --- a/code/modules/clothing/head/hood_vr.dm +++ b/code/modules/clothing/head/hood_vr.dm @@ -32,5 +32,5 @@ /obj/item/clothing/head/hood/winter/talon name = "ITV winter hood" desc = "A cozy winter hood attached to a heavy winter jacket." - icon_override = 'icons/mob/head_vr.dmi' + icon_override = 'icons/inventory/head/mob_vr.dmi' icon_state = "winterhood_talon" \ No newline at end of file diff --git a/code/modules/clothing/head/jobs_vr.dm b/code/modules/clothing/head/jobs_vr.dm index 19a3a8163d..d77ff798ba 100644 --- a/code/modules/clothing/head/jobs_vr.dm +++ b/code/modules/clothing/head/jobs_vr.dm @@ -2,7 +2,7 @@ name = "Type-34C Semi-Enclosed Headwear" desc = "Civilian model of a popular helmet used by certain law enforcement agencies. It does not have any armor plating, but has a neo-laminated fiber lining." icon_state = "cyberpunkgoggle" - icon = 'icons/obj/clothing/hats_vr.dmi' - icon_override = 'icons/mob/head_vr.dmi' + icon = 'icons/inventory/head/item_vr.dmi' + icon_override = 'icons/inventory/head/mob_vr.dmi' flags_inv = HIDEEARS|HIDEEYES|BLOCKHAIR \ No newline at end of file diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index 780333ae7e..d096eb5883 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -186,10 +186,10 @@ /obj/item/clothing/head/kitty/update_icon(var/mob/living/carbon/human/user) if(!istype(user)) return - var/icon/ears = new/icon("icon" = 'icons/mob/head.dmi', "icon_state" = "kitty") + var/icon/ears = new/icon("icon" = 'icons/inventory/head/mob.dmi', "icon_state" = "kitty") ears.Blend(rgb(user.r_hair, user.g_hair, user.b_hair), ICON_ADD) - var/icon/earbit = new/icon("icon" = 'icons/mob/head.dmi', "icon_state" = "kittyinner") + var/icon/earbit = new/icon("icon" = 'icons/inventory/head/mob.dmi', "icon_state" = "kittyinner") ears.Blend(earbit, ICON_OVERLAY) /obj/item/clothing/head/richard diff --git a/code/modules/clothing/head/misc_vr.dm b/code/modules/clothing/head/misc_vr.dm index 8d55d41786..8cde8bac5c 100644 --- a/code/modules/clothing/head/misc_vr.dm +++ b/code/modules/clothing/head/misc_vr.dm @@ -5,23 +5,23 @@ name = "fish skull" desc = "You... you're not actually going to wear that, right?" icon_state = "fishskull" - icon = 'icons/obj/clothing/hats_vr.dmi' - icon_override = 'icons/mob/head_vr.dmi' + icon = 'icons/inventory/head/item_vr.dmi' + icon_override = 'icons/inventory/head/mob_vr.dmi' flags_inv = HIDEEARS|BLOCKHAIR /obj/item/clothing/head/crown name = "crown" desc = "How regal!" icon_state = "crown" - icon = 'icons/obj/clothing/hats_vr.dmi' - icon_override = 'icons/mob/head_vr.dmi' + icon = 'icons/inventory/head/item_vr.dmi' + icon_override = 'icons/inventory/head/mob_vr.dmi' /obj/item/clothing/head/fancy_crown name = "fancy crown" desc = "How extraordinarily regal!" icon_state = "fancycrown" - icon = 'icons/obj/clothing/hats_vr.dmi' - icon_override = 'icons/mob/head_vr.dmi' + icon = 'icons/inventory/head/item_vr.dmi' + icon_override = 'icons/inventory/head/mob_vr.dmi' /obj/item/clothing/head/shiny_hood icon_override = 'icons/mob/modular_shiny_vr.dmi' @@ -51,8 +51,8 @@ /obj/item/clothing/head/pelt name = "Bear pelt" desc = "A luxurious bear pelt, good to keep warm in winter. Or to sleep through winter." - icon = 'icons/obj/clothing/hats_vr.dmi' - icon_override = 'icons/mob/head_vr.dmi' + icon = 'icons/inventory/head/item_vr.dmi' + icon_override = 'icons/inventory/head/mob_vr.dmi' icon_state = "bearpelt_brown" item_state = "bearpelt_brown" @@ -92,16 +92,16 @@ name = "pizza delivery visor" desc = "A fancy visor showing alignment to pizza delivery service. Extremely risky career choice." icon_state = "pizzadelivery" - icon = 'icons/obj/clothing/hats_vr.dmi' - icon_override = 'icons/mob/head_vr.dmi' + icon = 'icons/inventory/head/item_vr.dmi' + icon_override = 'icons/inventory/head/mob_vr.dmi' //////////TALON HATS////////// /obj/item/clothing/head/soft/talon name = "ITV baseball cap" desc = "It's a ballcap bearing the colors of ITV." - icon = 'icons/obj/clothing/hats_vr.dmi' - icon_override = 'icons/mob/head_vr.dmi' + icon = 'icons/inventory/head/item_vr.dmi' + icon_override = 'icons/inventory/head/mob_vr.dmi' icon_state = "talonsoft" item_state = "talonsoft" item_state_slots = list(slot_r_hand_str = "blacksoft", slot_l_hand_str = "blacksoft") @@ -109,23 +109,23 @@ /obj/item/clothing/head/caphat/talon name = "ITV nautical hat" desc = "It's a classic nautical hat bearing the colors of ITV. Perfect for commanding the Talon." - icon = 'icons/obj/clothing/hats_vr.dmi' - icon_override = 'icons/mob/head_vr.dmi' + icon = 'icons/inventory/head/item_vr.dmi' + icon_override = 'icons/inventory/head/mob_vr.dmi' icon_state = "talon_captain_cap" item_state = "taloncaptaincap" /obj/item/clothing/head/beret/talon name = "ITV beret" desc = "It's a basic baret colored to match ITV's uniforms." - icon = 'icons/obj/clothing/hats_vr.dmi' - icon_override = 'icons/mob/head_vr.dmi' + icon = 'icons/inventory/head/item_vr.dmi' + icon_override = 'icons/inventory/head/mob_vr.dmi' icon_state = "beret_talon" item_state = "baret_talon" /obj/item/clothing/head/beret/talon/command name = "ITV officer beret" desc = "It's a basic baret colored to match ITV's uniforms with a badge pinned on the front. Perfect for commanders." - icon = 'icons/obj/clothing/hats_vr.dmi' - icon_override = 'icons/mob/head_vr.dmi' + icon = 'icons/inventory/head/item_vr.dmi' + icon_override = 'icons/inventory/head/mob_vr.dmi' icon_state = "beret_talon_officer" item_state = "baret_talon_command" diff --git a/code/modules/clothing/head/pilot_helmet.dm b/code/modules/clothing/head/pilot_helmet.dm index 519f7cd1a7..f2c3956e47 100644 --- a/code/modules/clothing/head/pilot_helmet.dm +++ b/code/modules/clothing/head/pilot_helmet.dm @@ -6,7 +6,7 @@ icon_state = "pilot_helmet1" item_icons = list(slot_head_str = 'icons/mob/pilot_helmet.dmi') sprite_sheets = list( - SPECIES_TESHARI = 'icons/mob/species/teshari/pilot_helmet.dmi' + SPECIES_TESHARI = 'icons/inventory/head/mob_teshari.dmi' ) flags = THICKMATERIAL armor = list(melee = 20, bullet = 10, laser = 10, energy = 5, bomb = 10, bio = 0, rad = 0) diff --git a/code/modules/clothing/head/pilot_helmet_vr.dm b/code/modules/clothing/head/pilot_helmet_vr.dm index 55afe6f713..26557b2ca3 100644 --- a/code/modules/clothing/head/pilot_helmet_vr.dm +++ b/code/modules/clothing/head/pilot_helmet_vr.dm @@ -2,7 +2,7 @@ /obj/item/clothing/head/pilot_vr name = "standard pilot helmet" desc = "Standard pilot gear. Protects the head from impacts. This one has a retractable visor" - icon = 'icons/obj/clothing/helmets_vr.dmi' + icon = 'icons/inventory/head/item_vr.dmi' icon_state = "pilot1" armor = list(melee = 20, bullet = 10, laser = 10, energy = 5, bomb = 10, bio = 0, rad = 0) flags_inv = HIDEEARS @@ -11,9 +11,9 @@ heat_protection = HEAD max_heat_protection_temperature = HELMET_MAX_HEAT_PROTECTION_TEMPERATURE w_class = ITEMSIZE_NORMAL - item_icons = list(slot_head_str = 'icons/mob/head_vr.dmi') + item_icons = list(slot_head_str = 'icons/inventory/head/mob_vr.dmi') sprite_sheets = list( - SPECIES_TESHARI = 'icons/mob/species/teshari/helmet_vr.dmi' + SPECIES_TESHARI = 'icons/inventory/head/mob_vr_teshari.dmi' ) action_button_name = "Toggle Visor" @@ -30,9 +30,9 @@ name = "colored pilot helmet" desc = "A colored version of the standard pilot helmet. Protects the head from impacts. This one has a retractable visor" icon_state = "pilot2" - item_icons = list(slot_head_str = 'icons/mob/head_vr.dmi') + item_icons = list(slot_head_str = 'icons/inventory/head/mob_vr.dmi') sprite_sheets = list( - SPECIES_TESHARI = 'icons/mob/species/teshari/helmet_vr.dmi' + SPECIES_TESHARI = 'icons/inventory/head/mob_vr_teshari.dmi' ) action_button_name = "Toggle Visor" @@ -51,9 +51,9 @@ name = "ITV pilot helmet" desc = "An ITV version of the standard pilot helmet. Protects the head from impacts. This one has a retractable visor" icon_state = "pilot3" - item_icons = list(slot_head_str = 'icons/mob/head_vr.dmi') + item_icons = list(slot_head_str = 'icons/inventory/head/mob_vr.dmi') sprite_sheets = list( - SPECIES_TESHARI = 'icons/mob/species/teshari/helmet_vr.dmi' + SPECIES_TESHARI = 'icons/inventory/head/mob_vr_teshari.dmi' ) action_button_name = "Toggle Visor" diff --git a/code/modules/clothing/masks/gasmask_vr.dm b/code/modules/clothing/masks/gasmask_vr.dm index 81b9f7ced0..cdc7d52e0c 100644 --- a/code/modules/clothing/masks/gasmask_vr.dm +++ b/code/modules/clothing/masks/gasmask_vr.dm @@ -6,15 +6,15 @@ // Since we changed the gas mask sprite, if we want the old one for some reason use this. /obj/item/clothing/mask/gas/wwii - icon = 'icons/obj/clothing/masks.dmi' - icon_override = 'icons/mob/mask.dmi' + icon = 'icons/inventory/face/item.dmi' + icon_override = 'icons/inventory/face/mob.dmi' flags_inv = HIDEEARS|HIDEEYES|HIDEFACE /obj/item/clothing/mask/gas/imperial name = "imperial soldier facemask" desc = "A close-fitting tactical mask that can be connected to an air supply." icon_state = "ge_visor" - icon = 'icons/obj/clothing/masks_vr.dmi' - icon_override = 'icons/mob/mask_vr.dmi' + icon = 'icons/inventory/face/item_vr.dmi' + icon_override = 'icons/inventory/face/mob_vr.dmi' body_parts_covered = FACE|EYES flags_inv = HIDEEARS|HIDEEYES|HIDEFACE \ No newline at end of file diff --git a/code/modules/clothing/rings/material.dm b/code/modules/clothing/rings/material.dm index 3607b6bc8a..218065b253 100644 --- a/code/modules/clothing/rings/material.dm +++ b/code/modules/clothing/rings/material.dm @@ -1,7 +1,7 @@ ///////////////////////////////////////// //Material Rings /obj/item/clothing/gloves/ring/material - icon = 'icons/obj/clothing/rings.dmi' + icon = 'icons/inventory/hands/item.dmi' icon_state = "material" /obj/item/clothing/gloves/ring/material/New(var/newloc, var/new_material) diff --git a/code/modules/clothing/rings/rings_vr.dm b/code/modules/clothing/rings/rings_vr.dm index 56c72cc7c5..45306a7acc 100644 --- a/code/modules/clothing/rings/rings_vr.dm +++ b/code/modules/clothing/rings/rings_vr.dm @@ -1,7 +1,7 @@ /obj/item/clothing/gloves/ring/wedding name = "golden wedding ring" desc = "For showing your devotion to another person. It has a golden glimmer to it." - icon = 'icons/obj/clothing/gloves_vr.dmi' + icon = 'icons/inventory/hands/item_vr.dmi' icon_state = "wedring_g" item_state = "wedring_g" var/partnername = "" diff --git a/code/modules/clothing/shoes/boots_vr.dm b/code/modules/clothing/shoes/boots_vr.dm index 4c62209499..9f2f044f70 100644 --- a/code/modules/clothing/shoes/boots_vr.dm +++ b/code/modules/clothing/shoes/boots_vr.dm @@ -2,5 +2,5 @@ name = "hoofboots" desc = "A pair of high-heeled boots with hooves on the front of the soles, for use with a hobby horse or to disguise your footprints." icon_state = "hoofboots" - icon = 'icons/obj/clothing/shoes_vr.dmi' - icon_override = 'icons/mob/feet_vr.dmi' \ No newline at end of file + icon = 'icons/inventory/feet/item_vr.dmi' + icon_override = 'icons/inventory/feet/mob_vr.dmi' \ No newline at end of file diff --git a/code/modules/clothing/shoes/leg_guards_vr.dm b/code/modules/clothing/shoes/leg_guards_vr.dm index 52903bafa5..5000ef6670 100644 --- a/code/modules/clothing/shoes/leg_guards_vr.dm +++ b/code/modules/clothing/shoes/leg_guards_vr.dm @@ -2,5 +2,5 @@ name = "imperial leg guards" desc = "Good for Roman around." icon_state = "ge_boots" - icon = 'icons/obj/clothing/shoes_vr.dmi' - icon_override = 'icons/mob/feet_vr.dmi' \ No newline at end of file + icon = 'icons/inventory/feet/item_vr.dmi' + icon_override = 'icons/inventory/feet/mob_vr.dmi' \ No newline at end of file diff --git a/code/modules/clothing/shoes/miscellaneous_vr.dm b/code/modules/clothing/shoes/miscellaneous_vr.dm index 9e68be33dd..0e7accaa34 100644 --- a/code/modules/clothing/shoes/miscellaneous_vr.dm +++ b/code/modules/clothing/shoes/miscellaneous_vr.dm @@ -3,16 +3,16 @@ desc = "A pair of costume boots fashioned after bird talons." icon_state = "griffinboots" item_state = "griffinboots" - icon = 'icons/obj/clothing/shoes_vr.dmi' - icon_override = 'icons/mob/feet_vr.dmi' + icon = 'icons/inventory/feet/item_vr.dmi' + icon_override = 'icons/inventory/feet/mob_vr.dmi' /obj/item/clothing/shoes/bhop name = "jump boots" desc = "A specialized pair of combat boots with a built-in propulsion system for rapid foward movement." icon_state = "jetboots" item_state = "jetboots" - icon = 'icons/obj/clothing/shoes_vr.dmi' - icon_override = 'icons/mob/feet_vr.dmi' + icon = 'icons/inventory/feet/item_vr.dmi' + icon_override = 'icons/inventory/feet/mob_vr.dmi' // resistance_flags = FIRE_PROOF action_button_name = "Activate Jump Boots" permeability_coefficient = 0.05 @@ -44,8 +44,8 @@ /obj/item/clothing/shoes/magboots/adv name = "advanced magboots" desc = "Advanced magnetic boots for a trained user. They have a lower magnetic force, allowing the user to move more quickly." - icon = 'icons/obj/clothing/shoes_vr.dmi' - icon_override = 'icons/mob/feet_vr.dmi' + icon = 'icons/inventory/feet/item_vr.dmi' + icon_override = 'icons/inventory/feet/mob_vr.dmi' icon_state = "advmag0" item_flags = PHORONGUARD @@ -66,8 +66,8 @@ desc = "A pair of olde knight boots." icon_state = "knight_boots1" item_state = "knight_boots1" - icon = 'icons/obj/clothing/shoes_vr.dmi' - icon_override = 'icons/obj/clothing/shoes_vr.dmi' + icon = 'icons/inventory/feet/item_vr.dmi' + icon_override = 'icons/inventory/feet/item_vr.dmi' armor = list(melee = 80, bullet = 50, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0) /obj/item/clothing/shoes/knight/black @@ -82,8 +82,8 @@ desc = "A pair of olde knight boots." icon_state = "knight_boots1" item_state = "knight_boots1" - icon = 'icons/obj/clothing/shoes_vr.dmi' - icon_override = 'icons/obj/clothing/shoes_vr.dmi' + icon = 'icons/inventory/feet/item_vr.dmi' + icon_override = 'icons/inventory/feet/item_vr.dmi' /obj/item/clothing/shoes/knight_costume/black name = "knight boots" diff --git a/code/modules/clothing/spacesuits/rig/modules/modules.dm b/code/modules/clothing/spacesuits/rig/modules/modules.dm index fe2176215a..0762fedeae 100644 --- a/code/modules/clothing/spacesuits/rig/modules/modules.dm +++ b/code/modules/clothing/spacesuits/rig/modules/modules.dm @@ -41,6 +41,7 @@ // Icons. var/suit_overlay + var/suit_overlay_icon = 'icons/mob/rig_modules.dmi' var/suit_overlay_active // If set, drawn over icon and mob when effect is active. var/suit_overlay_inactive // As above, inactive. var/suit_overlay_used // As above, when engaged. diff --git a/code/modules/clothing/spacesuits/rig/modules/utility.dm b/code/modules/clothing/spacesuits/rig/modules/utility.dm index 43bcd583d2..4550eab088 100644 --- a/code/modules/clothing/spacesuits/rig/modules/utility.dm +++ b/code/modules/clothing/spacesuits/rig/modules/utility.dm @@ -8,7 +8,6 @@ * /obj/item/rig_module/device/arch_drill * /obj/item/rig_module/device/anomaly_scanner * /obj/item/rig_module/maneuvering_jets - * /obj/item/rig_module/foam_sprayer * /obj/item/rig_module/device/broadcaster * /obj/item/rig_module/chem_dispenser * /obj/item/rig_module/chem_dispenser/injector @@ -411,11 +410,7 @@ jets.holder = null jets.ion_trail.set_up(jets) -/obj/item/rig_module/foam_sprayer - - //Deployable Mop - /obj/item/rig_module/mounted/mop name = "mop projector" diff --git a/code/modules/clothing/spacesuits/rig/rig.dm b/code/modules/clothing/spacesuits/rig/rig.dm index aba67b11c7..5cfe6a9290 100644 --- a/code/modules/clothing/spacesuits/rig/rig.dm +++ b/code/modules/clothing/spacesuits/rig/rig.dm @@ -7,7 +7,6 @@ */ /obj/item/weapon/rig - name = "hardsuit control module" icon = 'icons/obj/rig_modules.dmi' desc = "A back-mounted hardsuit deployment and control mechanism." @@ -27,6 +26,8 @@ unacidable = 1 preserve_item = 1 + var/default_mob_icon = 'icons/mob/rig_back.dmi' + var/suit_state //The string used for the suit's icon_state. var/interface_path = "RIGSuit" @@ -98,22 +99,8 @@ var/datum/effect/effect/system/spark_spread/spark_system var/datum/mini_hud/rig/minihud -/obj/item/weapon/rig/examine() - . = ..() - if(wearer) - for(var/obj/item/piece in list(helmet,gloves,chest,boots)) - if(!piece || piece.loc != wearer) - continue - . += "[bicon(piece)] \The [piece] [piece.gender == PLURAL ? "are" : "is"] deployed." - - if(src.loc == usr) - . += "The access panel is [locked? "locked" : "unlocked"]." - . += "The maintenance panel is [open ? "open" : "closed"]." - . += "Hardsuit systems are [offline ? "offline" : "online"]." - . += "The cooling stystem is [cooling_on ? "active" : "inactive"]." - - if(open) - . += "It's equipped with [english_list(installed_modules)]." + // Action button + action_button_name = "Hardsuit Interface" /obj/item/weapon/rig/New() ..() @@ -186,6 +173,23 @@ spark_system = null return ..() +/obj/item/weapon/rig/examine() + . = ..() + if(wearer) + for(var/obj/item/piece in list(helmet,gloves,chest,boots)) + if(!piece || piece.loc != wearer) + continue + . += "[bicon(piece)] \The [piece] [piece.gender == PLURAL ? "are" : "is"] deployed." + + if(src.loc == usr) + . += "The access panel is [locked? "locked" : "unlocked"]." + . += "The maintenance panel is [open ? "open" : "closed"]." + . += "Hardsuit systems are [offline ? "offline" : "online"]." + . += "The cooling stystem is [cooling_on ? "active" : "inactive"]." + + if(open) + . += "It's equipped with [english_list(installed_modules)]." + // We only care about processing when we're on a mob /obj/item/weapon/rig/Moved(old_loc, direction, forced) if(ismob(loc)) @@ -589,7 +593,7 @@ cut_overlays() if(!mob_icon || update_mob_icon) - var/species_icon = 'icons/mob/rig_back.dmi' + var/species_icon = default_mob_icon // Since setting mob_icon will override the species checks in // update_inv_wear_suit(), handle species checks here. if(wearer && sprite_sheets && sprite_sheets[wearer.species.get_bodytype(wearer)]) @@ -599,7 +603,7 @@ if(installed_modules.len) for(var/obj/item/rig_module/module in installed_modules) if(module.suit_overlay) - chest.add_overlay(image('icons/mob/rig_modules.dmi', icon_state = "[module.suit_overlay]", dir = SOUTH)) + chest.add_overlay(image(module.suit_overlay_icon, icon_state = "[module.suit_overlay]", dir = SOUTH)) if(wearer) wearer.update_inv_shoes() diff --git a/code/modules/clothing/spacesuits/rig/rig_pieces.dm b/code/modules/clothing/spacesuits/rig/rig_pieces.dm index 3c1843698c..600e89a82c 100644 --- a/code/modules/clothing/spacesuits/rig/rig_pieces.dm +++ b/code/modules/clothing/spacesuits/rig/rig_pieces.dm @@ -11,11 +11,11 @@ cold_protection = HEAD|FACE|EYES light_range = 4 sprite_sheets = list( - SPECIES_TAJ = 'icons/mob/species/tajaran/helmet.dmi', - SPECIES_SKRELL = 'icons/mob/species/skrell/helmet.dmi', - SPECIES_UNATHI = 'icons/mob/species/unathi/helmet.dmi', - SPECIES_VOX = 'icons/mob/species/vox/head.dmi', - SPECIES_TESHARI = 'icons/mob/species/teshari/head.dmi' + SPECIES_TAJ = 'icons/inventory/head/mob_tajaran.dmi', + SPECIES_SKRELL = 'icons/inventory/head/mob_skrell.dmi', + SPECIES_UNATHI = 'icons/inventory/head/mob_unathi.dmi', + SPECIES_VOX = 'icons/inventory/head/mob_vox.dmi', + SPECIES_TESHARI = 'icons/inventory/head/mob_teshari.dmi' ) species_restricted = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_TAJ, SPECIES_UNATHI, SPECIES_PROMETHEAN, SPECIES_TESHARI) //vox, diona, and zaddat can't use hardsuits not designed for them max_pressure_protection = null @@ -54,10 +54,10 @@ resilience = 0.2 can_breach = 1 sprite_sheets = list( - SPECIES_TAJ = 'icons/mob/species/tajaran/suit.dmi', - SPECIES_UNATHI = 'icons/mob/species/unathi/suit.dmi', - SPECIES_VOX = 'icons/mob/species/vox/suit.dmi', - SPECIES_TESHARI = 'icons/mob/species/teshari/suit.dmi' + SPECIES_TAJ = 'icons/inventory/suit/mob_tajaran.dmi', + SPECIES_UNATHI = 'icons/inventory/suit/mob_unathi.dmi', + SPECIES_VOX = 'icons/inventory/suit/mob_vox.dmi', + SPECIES_TESHARI = 'icons/inventory/suit/mob_teshari.dmi' ) supporting_limbs = list() species_restricted = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_TAJ, SPECIES_UNATHI, SPECIES_PROMETHEAN, SPECIES_TESHARI) //vox, diona, and zaddat can't use hardsuits not designed for them diff --git a/code/modules/clothing/spacesuits/rig/rig_pieces_vr.dm b/code/modules/clothing/spacesuits/rig/rig_pieces_vr.dm index b9ca364883..8d3a7df868 100644 --- a/code/modules/clothing/spacesuits/rig/rig_pieces_vr.dm +++ b/code/modules/clothing/spacesuits/rig/rig_pieces_vr.dm @@ -1,38 +1,35 @@ /obj/item/clothing/head/helmet/space/rig sprite_sheets = list( - SPECIES_TAJ = 'icons/mob/species/tajaran/helmet.dmi', - SPECIES_SKRELL = 'icons/mob/species/skrell/helmet.dmi', - SPECIES_UNATHI = 'icons/mob/species/unathi/helmet.dmi', - SPECIES_XENOHYBRID = 'icons/mob/species/unathi/helmet.dmi', - SPECIES_AKULA = 'icons/mob/species/akula/helmet_vr.dmi', - SPECIES_SERGAL = 'icons/mob/species/sergal/helmet_vr.dmi', - SPECIES_NEVREAN = 'icons/mob/species/sergal/helmet_vr.dmi', - SPECIES_VULPKANIN = 'icons/mob/species/vulpkanin/helmet.dmi', - SPECIES_ZORREN_HIGH = 'icons/mob/species/vulpkanin/helmet.dmi', - SPECIES_FENNEC = 'icons/mob/species/vulpkanin/helmet.dmi', - SPECIES_PROMETHEAN = 'icons/mob/species/skrell/helmet.dmi', - SPECIES_VOX = 'icons/mob/species/vox/head.dmi', - SPECIES_TESHARI = 'icons/mob/species/teshari/head.dmi', - SPECIES_GREY_YW = 'icons/mob/species/grey/helmet.dmi' /*ywedit*/ + SPECIES_TAJ = 'icons/inventory/head/mob_tajaran.dmi', + SPECIES_SKRELL = 'icons/inventory/head/mob_skrell.dmi', + SPECIES_UNATHI = 'icons/inventory/head/mob_unathi.dmi', + SPECIES_XENOHYBRID = 'icons/inventory/head/mob_unathi.dmi', + SPECIES_AKULA = 'icons/inventory/head/mob_akula.dmi', + SPECIES_SERGAL = 'icons/inventory/head/mob_sergal.dmi', + SPECIES_NEVREAN = 'icons/inventory/head/mob_sergal.dmi', + SPECIES_VULPKANIN = 'icons/inventory/head/mob_vulpkanin.dmi', + SPECIES_ZORREN_HIGH = 'icons/inventory/head/mob_vulpkanin.dmi', + SPECIES_FENNEC = 'icons/inventory/head/mob_vulpkanin.dmi', + SPECIES_PROMETHEAN = 'icons/inventory/head/mob_skrell.dmi', + SPECIES_VOX = 'icons/inventory/head/mob_vox.dmi', + SPECIES_TESHARI = 'icons/inventory/head/mob_teshari.dmi' ) - - /obj/item/clothing/suit/space/rig sprite_sheets = list( - SPECIES_TAJ = 'icons/mob/species/tajaran/suit.dmi', - SPECIES_SKRELL = 'icons/mob/species/skrell/suit.dmi', - SPECIES_UNATHI = 'icons/mob/species/unathi/suit.dmi', - SPECIES_XENOHYBRID = 'icons/mob/species/unathi/suit.dmi', - SPECIES_AKULA = 'icons/mob/species/akula/suit_vr.dmi', - SPECIES_SERGAL = 'icons/mob/species/sergal/suit_vr.dmi', - SPECIES_NEVREAN = 'icons/mob/species/sergal/suit_vr.dmi', - SPECIES_VULPKANIN = 'icons/mob/species/vulpkanin/suit.dmi', - SPECIES_ZORREN_HIGH = 'icons/mob/species/vulpkanin/suit.dmi', - SPECIES_FENNEC = 'icons/mob/species/vulpkanin/suit.dmi', - SPECIES_PROMETHEAN = 'icons/mob/species/skrell/suit.dmi', - SPECIES_VOX = 'icons/mob/species/vox/suit.dmi', - SPECIES_TESHARI = 'icons/mob/species/teshari/suit.dmi' + SPECIES_TAJ = 'icons/inventory/suit/mob_tajaran.dmi', + SPECIES_SKRELL = 'icons/inventory/suit/mob_skrell.dmi', + SPECIES_UNATHI = 'icons/inventory/suit/mob_unathi.dmi', + SPECIES_XENOHYBRID = 'icons/inventory/suit/mob_unathi.dmi', + SPECIES_AKULA = 'icons/inventory/suit/mob_akula.dmi', + SPECIES_SERGAL = 'icons/inventory/suit/mob_sergal.dmi', + SPECIES_NEVREAN = 'icons/inventory/suit/mob_sergal.dmi', + SPECIES_VULPKANIN = 'icons/inventory/suit/mob_vulpkanin.dmi', + SPECIES_ZORREN_HIGH = 'icons/inventory/suit/mob_vulpkanin.dmi', + SPECIES_FENNEC = 'icons/inventory/suit/mob_vulpkanin.dmi', + SPECIES_PROMETHEAN = 'icons/inventory/suit/mob_skrell.dmi', + SPECIES_VOX = 'icons/inventory/suit/mob_vox.dmi', + SPECIES_TESHARI = 'icons/inventory/suit/mob_teshari.dmi' ) /obj/item/clothing/head/helmet/space/rig diff --git a/code/modules/clothing/spacesuits/rig/rig_verbs.dm b/code/modules/clothing/spacesuits/rig/rig_verbs.dm index c1d2fe2c5b..b28d93bc55 100644 --- a/code/modules/clothing/spacesuits/rig/rig_verbs.dm +++ b/code/modules/clothing/spacesuits/rig/rig_verbs.dm @@ -9,6 +9,11 @@ if(wearer && (wearer.back == src || wearer.belt == src)) tgui_interact(usr) +// So the UI button clicks come here +/obj/item/weapon/rig/ui_action_click() + if(usr == wearer && (wearer.back == src || wearer.belt == src)) + tgui_interact(usr) + /obj/item/weapon/rig/verb/toggle_vision() set name = "Toggle Visor" diff --git a/code/modules/clothing/spacesuits/rig/suits/alien.dm b/code/modules/clothing/spacesuits/rig/suits/alien.dm index dbc1e34709..56f69bda52 100644 --- a/code/modules/clothing/spacesuits/rig/suits/alien.dm +++ b/code/modules/clothing/spacesuits/rig/suits/alien.dm @@ -74,7 +74,7 @@ name = "talons" species_restricted = list(SPECIES_VOX) sprite_sheets = list( - SPECIES_VOX = 'icons/mob/species/vox/shoes.dmi' + SPECIES_VOX = 'icons/inventory/feet/mob_vox.dmi' ) /obj/item/clothing/suit/space/rig/vox @@ -84,7 +84,7 @@ siemens_coefficient = 0 species_restricted = list(SPECIES_VOX) sprite_sheets = list( - SPECIES_VOX = 'icons/mob/species/vox/gloves.dmi' + SPECIES_VOX = 'icons/inventory/hands/mob_vox.dmi' ) /obj/item/weapon/rig/vox/carapace diff --git a/code/modules/clothing/spacesuits/rig/suits/alien_ch.dm b/code/modules/clothing/spacesuits/rig/suits/alien_ch.dm index b4cb198152..c06d651d82 100644 --- a/code/modules/clothing/spacesuits/rig/suits/alien_ch.dm +++ b/code/modules/clothing/spacesuits/rig/suits/alien_ch.dm @@ -78,7 +78,7 @@ SPECIES_ZORREN_HIGH = 'icons/mob/species/fox/helmet_ch.dmi', SPECIES_FENNEC = 'icons/mob/species/vulpkanin/helmet_ch.dmi', SPECIES_PROMETHEAN = 'icons/mob/species/skrell/helmet_ch.dmi', - SPECIES_TESHARI = 'icons/mob/species/teshari/head_ch.dmi', + SPECIES_TESHARI = 'icons/inventory/head/mob_ch_teshari.dmi', SPECIES_VASILISSAN = 'icons/mob/species/skrell/helmet_ch.dmi', SPECIES_VOX = 'icons/mob/species/vox/head_ch.dmi' ) @@ -115,7 +115,7 @@ SPECIES_ZORREN_HIGH = 'icons/mob/species/fox/suit_ch.dmi', SPECIES_FENNEC = 'icons/mob/species/vulpkanin/suit_ch.dmi', SPECIES_PROMETHEAN = 'icons/mob/species/skrell/suit_ch.dmi', - SPECIES_TESHARI = 'icons/mob/species/teshari/suit_ch.dmi', + SPECIES_TESHARI = 'icons/inventory/suit/mob_ch_teshari.dmi', SPECIES_VASILISSAN = 'icons/mob/species/skrell/suit_ch.dmi', SPECIES_VOX = 'icons/mob/species/vox/suit_ch.dmi' ) diff --git a/code/modules/clothing/spacesuits/rig/suits/station_ch.dm b/code/modules/clothing/spacesuits/rig/suits/station_ch.dm index 00d6a6856b..89945e0dfb 100644 --- a/code/modules/clothing/spacesuits/rig/suits/station_ch.dm +++ b/code/modules/clothing/spacesuits/rig/suits/station_ch.dm @@ -88,7 +88,7 @@ SPECIES_ZORREN_HIGH = 'icons/mob/species/fox/helmet_ch.dmi', SPECIES_FENNEC = 'icons/mob/species/vulpkanin/helmet_ch.dmi', SPECIES_PROMETHEAN = 'icons/mob/species/skrell/helmet_ch.dmi', - SPECIES_TESHARI = 'icons/mob/species/teshari/head_ch.dmi', + SPECIES_TESHARI = 'icons/inventory/head/mob_ch_teshari.dmi', SPECIES_VASILISSAN = 'icons/mob/species/skrell/helmet_ch.dmi', SPECIES_VOX = 'icons/mob/species/vox/head_ch.dmi' ) @@ -125,7 +125,7 @@ SPECIES_ZORREN_HIGH = 'icons/mob/species/fox/suit_ch.dmi', SPECIES_FENNEC = 'icons/mob/species/vulpkanin/suit_ch.dmi', SPECIES_PROMETHEAN = 'icons/mob/species/skrell/suit_ch.dmi', - SPECIES_TESHARI = 'icons/mob/species/teshari/suit_ch.dmi', + SPECIES_TESHARI = 'icons/inventory/suit/mob_ch_teshari.dmi', SPECIES_VASILISSAN = 'icons/mob/species/skrell/suit_ch.dmi', SPECIES_VOX = 'icons/mob/species/vox/suit_ch.dmi' ) diff --git a/code/modules/clothing/spacesuits/rig/suits/station_vr.dm b/code/modules/clothing/spacesuits/rig/suits/station_vr.dm index f543b95431..e0d14f189a 100644 --- a/code/modules/clothing/spacesuits/rig/suits/station_vr.dm +++ b/code/modules/clothing/spacesuits/rig/suits/station_vr.dm @@ -53,3 +53,128 @@ /obj/item/weapon/rig/robotics allowed = list(/obj/item/device/flashlight, /obj/item/weapon/storage/box, /obj/item/weapon/storage/belt, /obj/item/device/defib_kit/compact) + +// 'Technomancer' hardsuit +/obj/item/weapon/rig/focalpoint + name = "\improper F.P.E. hardsuit control module" + desc = "A high-end hardsuit produced by Focal Point Energistics, focused around repair and construction." + + icon = 'icons/obj/rig_modules_vr.dmi' // the item + default_mob_icon = 'icons/mob/rig_back_vr.dmi' // the onmob + icon_state = "techno_rig" + suit_type = "\improper F.P.E. hardsuit" + cell_type = /obj/item/weapon/cell/hyper + + // Copied from CE rig + slowdown = 0 + offline_slowdown = 0 + offline_vision_restriction = 0 + rigsuit_max_pressure = 20 * ONE_ATMOSPHERE // Max pressure the rig protects against when sealed + rigsuit_min_pressure = 0 // Min pressure the rig protects against when sealed + min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE + max_heat_protection_temperature = FIRESUIT_MAX_HEAT_PROTECTION_TEMPERATURE // so it's like a rig firesuit + armor = list("melee" = 40, "bullet" = 10, "laser" = 30, "energy" = 55, "bomb" = 70, "bio" = 100, "rad" = 100) + + chest_type = /obj/item/clothing/suit/space/rig/focalpoint + helm_type = /obj/item/clothing/head/helmet/space/rig/focalpoint + boot_type = /obj/item/clothing/shoes/magboots/rig/focalpoint + glove_type = /obj/item/clothing/gloves/gauntlets/rig/focalpoint + +/obj/item/weapon/rig/focalpoint/equipped + initial_modules = list( + /obj/item/rig_module/maneuvering_jets, + /obj/item/rig_module/teleporter, // Try not to set yourself on fire + /obj/item/rig_module/device/rcd, + /obj/item/rig_module/grenade_launcher/metalfoam + ) + +/obj/item/clothing/head/helmet/space/rig/focalpoint + icon = 'icons/inventory/head/item_vr.dmi' + default_worn_icon = 'icons/inventory/head/mob_vr.dmi' + icon_state = "techno_rig" + // No animal people sprites for these yet, sad times + species_restricted = list("exclude", SPECIES_TESHARI, SPECIES_VOX, SPECIES_DIONA) + sprite_sheets = list() + +/obj/item/clothing/suit/space/rig/focalpoint + icon = 'icons/inventory/suit/item_vr.dmi' + default_worn_icon = 'icons/inventory/suit/mob_vr.dmi' + icon_state = "techno_rig" + // No animal people sprites for these yet, sad times + species_restricted = list("exclude", SPECIES_TESHARI, SPECIES_VOX, SPECIES_DIONA) + sprite_sheets = list() + +/obj/item/clothing/shoes/magboots/rig/focalpoint + icon = 'icons/inventory/feet/item_vr.dmi' + default_worn_icon = 'icons/inventory/feet/mob_vr.dmi' + icon_state = "techno_rig" + // No animal people sprites for these yet, sad times + species_restricted = list("exclude", SPECIES_TESHARI, SPECIES_VOX, SPECIES_DIONA) + sprite_sheets = list() + +/obj/item/clothing/gloves/gauntlets/rig/focalpoint + icon = 'icons/inventory/hands/item_vr.dmi' + default_worn_icon = 'icons/inventory/hands/mob_vr.dmi' + icon_state = "techno_rig" + siemens_coefficient = 0 + // No animal people sprites for these yet, sad times + species_restricted = list("exclude", SPECIES_TESHARI, SPECIES_VOX, SPECIES_DIONA) + sprite_sheets = list() + +// 'Ironhammer' hardsuit +/obj/item/weapon/rig/hephaestus + name = "\improper Hephaestus hardsuit control module" + desc = "A high-end hardsuit produced by Hephaestus Industries, focused on destroying the competition. Literally." + + icon = 'icons/obj/rig_modules_vr.dmi' // the item + default_mob_icon = 'icons/mob/rig_back_vr.dmi' // the onmob + icon_state = "ihs_rig" + suit_type = "\improper Hephaestus hardsuit" + cell_type = /obj/item/weapon/cell/super + + armor = list("melee" = 70, "bullet" = 70, "laser" = 70, "energy" = 50, "bomb" = 60, "bio" = 100, "rad" = 20) + + chest_type = /obj/item/clothing/suit/space/rig/hephaestus + helm_type = /obj/item/clothing/head/helmet/space/rig/hephaestus + boot_type = /obj/item/clothing/shoes/magboots/rig/hephaestus + glove_type = /obj/item/clothing/gloves/gauntlets/rig/hephaestus + +/obj/item/weapon/rig/hephaestus/equipped + initial_modules = list( + /obj/item/rig_module/maneuvering_jets, + /obj/item/rig_module/grenade_launcher, + /obj/item/rig_module/mounted/egun, + /obj/item/rig_module/mounted/energy_blade + ) + +/obj/item/clothing/head/helmet/space/rig/hephaestus + icon = 'icons/inventory/head/item_vr.dmi' + default_worn_icon = 'icons/inventory/head/mob_vr.dmi' + icon_state = "ihs_rig" + // No animal people sprites for these yet, sad times + species_restricted = list("exclude", SPECIES_TESHARI, SPECIES_VOX, SPECIES_DIONA) + sprite_sheets = list() + +/obj/item/clothing/suit/space/rig/hephaestus + icon = 'icons/inventory/suit/item_vr.dmi' + default_worn_icon = 'icons/inventory/suit/mob_vr.dmi' + icon_state = "ihs_rig" + // No animal people sprites for these yet, sad times + species_restricted = list("exclude", SPECIES_TESHARI, SPECIES_VOX, SPECIES_DIONA) + sprite_sheets = list() + +/obj/item/clothing/shoes/magboots/rig/hephaestus + icon = 'icons/inventory/feet/item_vr.dmi' + default_worn_icon = 'icons/inventory/feet/mob_vr.dmi' + icon_state = "ihs_rig" + // No animal people sprites for these yet, sad times + species_restricted = list("exclude", SPECIES_TESHARI, SPECIES_VOX, SPECIES_DIONA) + sprite_sheets = list() + +/obj/item/clothing/gloves/gauntlets/rig/hephaestus + icon = 'icons/inventory/hands/item_vr.dmi' + default_worn_icon = 'icons/inventory/hands/mob_vr.dmi' + icon_state = "ihs_rig" + // No animal people sprites for these yet, sad times + species_restricted = list("exclude", SPECIES_TESHARI, SPECIES_VOX, SPECIES_DIONA) + sprite_sheets = list() diff --git a/code/modules/clothing/spacesuits/spacesuits.dm b/code/modules/clothing/spacesuits/spacesuits.dm index f8a40c99ea..659cf74847 100644 --- a/code/modules/clothing/spacesuits/spacesuits.dm +++ b/code/modules/clothing/spacesuits/spacesuits.dm @@ -37,7 +37,7 @@ verbs |= /obj/item/clothing/head/helmet/space/proc/toggle_camera if(type == /obj/item/clothing/head/helmet/space) //VOREStation edit - use the specially refitted sprites by KBraid. Done this way to avoid breaking subtypes. - sprite_sheets[SPECIES_TESHARI] = 'icons/mob/species/teshari/helmet_vr.dmi' + sprite_sheets[SPECIES_TESHARI] = 'icons/inventory/head/mob_vr_teshari.dmi' /obj/item/clothing/head/helmet/space/proc/toggle_camera() set name = "Toggle Helmet Camera" @@ -68,8 +68,7 @@ /obj/item/clothing/suit/space name = "Space suit" desc = "A suit that protects against low pressure environments." - icon = 'icons/obj/clothing/spacesuits.dmi' - update_icon_define = INV_SPACESUIT_DEF_ICON + icon = 'icons/inventory/suit/item.dmi' icon_state = "space" w_class = ITEMSIZE_HUGE // So you can't fit this in your bag and be prepared at all times. gas_transfer_coefficient = 0.01 @@ -95,7 +94,7 @@ /obj/item/clothing/suit/space/Initialize() . = ..() if(type == /obj/item/clothing/suit/space) - sprite_sheets[SPECIES_TESHARI] = 'icons/mob/species/teshari/suit_vr.dmi' + sprite_sheets[SPECIES_TESHARI] = 'icons/inventory/suit/mob_vr_teshari.dmi' // aAAAaaAAAAA //VOREStation edit end. /obj/item/clothing/suit/space/equipped(mob/M) diff --git a/code/modules/clothing/spacesuits/void/ert_vr.dm b/code/modules/clothing/spacesuits/void/ert_vr.dm index c771132f18..5ef86ce2e1 100644 --- a/code/modules/clothing/spacesuits/void/ert_vr.dm +++ b/code/modules/clothing/spacesuits/void/ert_vr.dm @@ -7,7 +7,8 @@ slowdown = 0.5 siemens_coefficient = 0.5 species_restricted = list("exclude",SPECIES_DIONA,SPECIES_VOX,SPECIES_TESHARI) //this thing can autoadapt - icon = 'icons/obj/clothing/suits_vr.dmi' + icon = 'icons/inventory/suit/item_vr.dmi' + default_worn_icon = 'icons/inventory/suit/mob_vr.dmi' w_class = ITEMSIZE_NORMAL //the mark vii packs itself down when not in use, thanks future-materials breach_threshold = 16 //Extra Thicc resilience = 0.05 //Military Armor @@ -109,7 +110,8 @@ species_restricted = list("exclude",SPECIES_DIONA,SPECIES_VOX,SPECIES_TESHARI) //this thing can autoadapt too armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 100, rad = 100) siemens_coefficient = 0.5 - icon = 'icons/obj/clothing/hats_vr.dmi' + icon = 'icons/inventory/head/item_vr.dmi' + default_worn_icon = 'icons/inventory/head/mob_vr.dmi' enables_planes = list(VIS_CH_ID,VIS_CH_HEALTH_VR,VIS_AUGMENTED) var/away_planes = null plane_slots = list(slot_head) @@ -166,75 +168,75 @@ /obj/item/clothing/suit/space/void/responseteam sprite_sheets = list( - SPECIES_HUMAN = 'icons/mob/spacesuit_vr.dmi', - SPECIES_TAJ = 'icons/mob/species/tajaran/suit_vr.dmi', - SPECIES_SKRELL = 'icons/mob/species/skrell/suit_vr.dmi', - SPECIES_UNATHI = 'icons/mob/species/unathi/suit_vr.dmi', - SPECIES_XENOHYBRID = 'icons/mob/species/unathi/suit_vr.dmi', - SPECIES_AKULA = 'icons/mob/species/akula/suit_vr.dmi', - SPECIES_SERGAL = 'icons/mob/species/sergal/suit_vr.dmi', - SPECIES_VULPKANIN = 'icons/mob/species/vulpkanin/suit_vr.dmi', - SPECIES_ZORREN_HIGH = 'icons/mob/species/vulpkanin/suit_vr.dmi', - SPECIES_FENNEC = 'icons/mob/species/vulpkanin/suit_vr.dmi', - SPECIES_SHADEKIN_CREW = 'icons/mob/species/vulpkanin/suit_vr.dmi', - SPECIES_VASILISSAN = 'icons/mob/spacesuit_vr.dmi', - SPECIES_NEVREAN = 'icons/mob/spacesuit_vr.dmi', - SPECIES_RAPALA = 'icons/mob/spacesuit_vr.dmi', - SPECIES_ALRAUNE = 'icons/mob/spacesuit_vr.dmi', - SPECIES_ZADDAT = 'icons/mob/spacesuit_vr.dmi' + SPECIES_HUMAN = 'icons/inventory/suit/mob_vr.dmi', + SPECIES_TAJ = 'icons/inventory/suit/mob_vr_tajaran.dmi', + SPECIES_SKRELL = 'icons/inventory/suit/mob_vr_skrell.dmi', + SPECIES_UNATHI = 'icons/inventory/suit/mob_vr_unathi.dmi', + SPECIES_XENOHYBRID = 'icons/inventory/suit/mob_vr_unathi.dmi', + SPECIES_AKULA = 'icons/inventory/suit/mob_akula.dmi', + SPECIES_SERGAL = 'icons/inventory/suit/mob_sergal.dmi', + SPECIES_VULPKANIN = 'icons/inventory/suit/mob_vr_vulpkanin.dmi', + SPECIES_ZORREN_HIGH = 'icons/inventory/suit/mob_vr_vulpkanin.dmi', + SPECIES_FENNEC = 'icons/inventory/suit/mob_vr_vulpkanin.dmi', + SPECIES_SHADEKIN_CREW = 'icons/inventory/suit/mob_vr_vulpkanin.dmi', + SPECIES_VASILISSAN = 'icons/inventory/suit/mob_vr.dmi', + SPECIES_NEVREAN = 'icons/inventory/suit/mob_vr.dmi', + SPECIES_RAPALA = 'icons/inventory/suit/mob_vr.dmi', + SPECIES_ALRAUNE = 'icons/inventory/suit/mob_vr.dmi', + SPECIES_ZADDAT = 'icons/inventory/suit/mob_vr.dmi' ) sprite_sheets_obj = list( - SPECIES_TAJ = 'icons/obj/clothing/suits_vr.dmi', - SPECIES_SKRELL = 'icons/obj/clothing/suits_vr.dmi', - SPECIES_UNATHI = 'icons/obj/clothing/suits_vr.dmi', - SPECIES_XENOHYBRID = 'icons/obj/clothing/suits_vr.dmi', - SPECIES_AKULA = 'icons/obj/clothing/suits_vr.dmi', - SPECIES_SERGAL = 'icons/obj/clothing/suits_vr.dmi', - SPECIES_VULPKANIN = 'icons/obj/clothing/suits_vr.dmi', - SPECIES_ZORREN_HIGH = 'icons/obj/clothing/suits_vr.dmi', - SPECIES_FENNEC = 'icons/obj/clothing/suits_vr.dmi', - SPECIES_SHADEKIN_CREW = 'icons/obj/clothing/suits_vr.dmi', - SPECIES_VASILISSAN = 'icons/obj/clothing/suits_vr.dmi', - SPECIES_NEVREAN = 'icons/obj/clothing/suits_vr.dmi', - SPECIES_RAPALA = 'icons/obj/clothing/suits_vr.dmi', - SPECIES_ALRAUNE = 'icons/obj/clothing/suits_vr.dmi', - SPECIES_ZADDAT = 'icons/obj/clothing/suits_vr.dmi' + SPECIES_TAJ = 'icons/inventory/suit/item_vr.dmi', + SPECIES_SKRELL = 'icons/inventory/suit/item_vr.dmi', + SPECIES_UNATHI = 'icons/inventory/suit/item_vr.dmi', + SPECIES_XENOHYBRID = 'icons/inventory/suit/item_vr.dmi', + SPECIES_AKULA = 'icons/inventory/suit/item_vr.dmi', + SPECIES_SERGAL = 'icons/inventory/suit/item_vr.dmi', + SPECIES_VULPKANIN = 'icons/inventory/suit/item_vr.dmi', + SPECIES_ZORREN_HIGH = 'icons/inventory/suit/item_vr.dmi', + SPECIES_FENNEC = 'icons/inventory/suit/item_vr.dmi', + SPECIES_SHADEKIN_CREW = 'icons/inventory/suit/item_vr.dmi', + SPECIES_VASILISSAN = 'icons/inventory/suit/item_vr.dmi', + SPECIES_NEVREAN = 'icons/inventory/suit/item_vr.dmi', + SPECIES_RAPALA = 'icons/inventory/suit/item_vr.dmi', + SPECIES_ALRAUNE = 'icons/inventory/suit/item_vr.dmi', + SPECIES_ZADDAT = 'icons/inventory/suit/item_vr.dmi' ) /obj/item/clothing/head/helmet/space/void/responseteam sprite_sheets = list( - SPECIES_HUMAN = 'icons/mob/head_vr.dmi', - SPECIES_TAJ = 'icons/mob/species/tajaran/helmet_vr.dmi', - SPECIES_SKRELL = 'icons/mob/species/skrell/helmet_vr.dmi', - SPECIES_UNATHI = 'icons/mob/species/unathi/helmet_vr.dmi', - SPECIES_XENOHYBRID = 'icons/mob/species/unathi/helmet_vr.dmi', - SPECIES_AKULA = 'icons/mob/species/unathi/helmet_vr.dmi', - SPECIES_SERGAL = 'icons/mob/species/unathi/helmet_vr.dmi', - SPECIES_VULPKANIN = 'icons/mob/species/vulpkanin/helmet_vr.dmi', - SPECIES_ZORREN_HIGH = 'icons/mob/species/vulpkanin/helmet_vr.dmi', - SPECIES_FENNEC = 'icons/mob/species/vulpkanin/helmet_vr.dmi', - SPECIES_SHADEKIN_CREW = 'icons/mob/species/vulpkanin/helmet_vr.dmi', - SPECIES_VASILISSAN = 'icons/mob/head_vr.dmi', - SPECIES_NEVREAN = 'icons/mob/head_vr.dmi', - SPECIES_RAPALA = 'icons/mob/head_vr.dmi', - SPECIES_ALRAUNE = 'icons/mob/head_vr.dmi', - SPECIES_ZADDAT = 'icons/mob/head_vr.dmi' + SPECIES_HUMAN = 'icons/inventory/head/mob_vr.dmi', + SPECIES_TAJ = 'icons/inventory/head/mob_vr_tajaran.dmi', + SPECIES_SKRELL = 'icons/inventory/head/mob_vr_skrell.dmi', + SPECIES_UNATHI = 'icons/inventory/head/mob_vr_unathi.dmi', + SPECIES_XENOHYBRID = 'icons/inventory/head/mob_vr_unathi.dmi', + SPECIES_AKULA = 'icons/inventory/head/mob_vr_unathi.dmi', + SPECIES_SERGAL = 'icons/inventory/head/mob_vr_unathi.dmi', + SPECIES_VULPKANIN = 'icons/inventory/head/mob_vr_vulpkanin.dmi', + SPECIES_ZORREN_HIGH = 'icons/inventory/head/mob_vr_vulpkanin.dmi', + SPECIES_FENNEC = 'icons/inventory/head/mob_vr_vulpkanin.dmi', + SPECIES_SHADEKIN_CREW = 'icons/inventory/head/mob_vulpkanin.dmi', + SPECIES_VASILISSAN = 'icons/inventory/head/mob_vr.dmi', + SPECIES_NEVREAN = 'icons/inventory/head/mob_vr.dmi', + SPECIES_RAPALA = 'icons/inventory/head/mob_vr.dmi', + SPECIES_ALRAUNE = 'icons/inventory/head/mob_vr.dmi', + SPECIES_ZADDAT = 'icons/inventory/head/mob_vr.dmi' ) sprite_sheets_obj = list( - SPECIES_TAJ = 'icons/obj/clothing/hats_vr.dmi', - SPECIES_SKRELL = 'icons/obj/clothing/hats_vr.dmi', - SPECIES_UNATHI = 'icons/obj/clothing/hats_vr.dmi', - SPECIES_XENOHYBRID = 'icons/obj/clothing/hats_vr.dmi', - SPECIES_AKULA = 'icons/obj/clothing/hats_vr.dmi', - SPECIES_SERGAL = 'icons/obj/clothing/hats_vr.dmi', - SPECIES_VULPKANIN = 'icons/obj/clothing/hats_vr.dmi', - SPECIES_ZORREN_HIGH = 'icons/obj/clothing/hats_vr.dmi', - SPECIES_FENNEC = 'icons/obj/clothing/hats_vr.dmi', - SPECIES_SHADEKIN_CREW = 'icons/obj/clothing/hats_vr.dmi', - SPECIES_VASILISSAN = 'icons/obj/clothing/hats_vr.dmi', - SPECIES_NEVREAN = 'icons/obj/clothing/hats_vr.dmi', - SPECIES_RAPALA = 'icons/obj/clothing/hats_vr.dmi', - SPECIES_ALRAUNE = 'icons/obj/clothing/hats_vr.dmi', - SPECIES_ZADDAT = 'icons/obj/clothing/hats_vr.dmi' + SPECIES_TAJ = 'icons/inventory/head/item_vr.dmi', + SPECIES_SKRELL = 'icons/inventory/head/item_vr.dmi', + SPECIES_UNATHI = 'icons/inventory/head/item_vr.dmi', + SPECIES_XENOHYBRID = 'icons/inventory/head/item_vr.dmi', + SPECIES_AKULA = 'icons/inventory/head/item_vr.dmi', + SPECIES_SERGAL = 'icons/inventory/head/item_vr.dmi', + SPECIES_VULPKANIN = 'icons/inventory/head/item_vr.dmi', + SPECIES_ZORREN_HIGH = 'icons/inventory/head/item_vr.dmi', + SPECIES_FENNEC = 'icons/inventory/head/item_vr.dmi', + SPECIES_SHADEKIN_CREW = 'icons/inventory/head/item_vr.dmi', + SPECIES_VASILISSAN = 'icons/inventory/head/item_vr.dmi', + SPECIES_NEVREAN = 'icons/inventory/head/item_vr.dmi', + SPECIES_RAPALA = 'icons/inventory/head/item_vr.dmi', + SPECIES_ALRAUNE = 'icons/inventory/head/item_vr.dmi', + SPECIES_ZADDAT = 'icons/inventory/head/item_vr.dmi' ) - sprite_sheets_refit = list() //have to nullify this as well just to be thorough \ No newline at end of file + sprite_sheets_refit = list() //have to nullify this as well just to be thorough diff --git a/code/modules/clothing/spacesuits/void/event_vr.dm b/code/modules/clothing/spacesuits/void/event_vr.dm index 357a8ff772..6d947ce245 100644 --- a/code/modules/clothing/spacesuits/void/event_vr.dm +++ b/code/modules/clothing/spacesuits/void/event_vr.dm @@ -73,4 +73,161 @@ /obj/item/clothing/suit/space/void/refurb/mercenary/talon name = "talon mercenary's voidsuit" - desc = "A refurbished early contact era voidsuit of human design. These things aren't especially good against modern weapons but they're sturdy, incredibly easy to come by, and there are lots of spare parts for repairs. Many old-timer mercs swear by these old things, even if new powered hardsuits have more features and better armor. The red markings indicate this as the mercenary variant. \"ITV TALON\" has been stamped onto each pauldron and the right side of the breastplate." \ No newline at end of file + desc = "A refurbished early contact era voidsuit of human design. These things aren't especially good against modern weapons but they're sturdy, incredibly easy to come by, and there are lots of spare parts for repairs. Many old-timer mercs swear by these old things, even if new powered hardsuits have more features and better armor. The red markings indicate this as the mercenary variant. \"ITV TALON\" has been stamped onto each pauldron and the right side of the breastplate." + +// HEV Suits +/obj/item/clothing/suit/space/void/hev + name = "hazardous environment suit" + desc = "Has a strange smell to it, but you feel like it might be an old friend." + + icon = 'icons/inventory/suit/item_vr.dmi' + default_worn_icon = 'icons/inventory/suit/mob_vr.dmi' + icon_state = "hev_orange" + + // No animal people sprites for these yet, sad times + species_restricted = list("exclude", SPECIES_TESHARI, SPECIES_VOX, SPECIES_DIONA) + sprite_sheets = list() + +/obj/item/clothing/suit/space/void/hev/violet + icon_state = "hev_violet" + desc = "Has a strange smell to it, but you feel like it might be an old friend. This one has 'Dr. Coomer' engraved on the collar." + +/obj/item/clothing/head/helmet/space/void/hev + name = "hazardous environment helmet" + desc = "Has a strange smell to it, but you feel like it might be an old friend." + + icon = 'icons/inventory/head/item_vr.dmi' + default_worn_icon = 'icons/inventory/head/mob_vr.dmi' + icon_state = "hev_orange" + + // No animal people sprites for these yet, sad times + species_restricted = list("exclude", SPECIES_TESHARI, SPECIES_VOX, SPECIES_DIONA) + sprite_sheets = list() + +/obj/item/clothing/head/helmet/space/void/hev/violet + icon_state = "hev_violet" + desc = "Has a strange smell to it, but you feel like it might be an old friend. This one has 'Dr. Coomer' engraved on the collar." + +// Makeshift void suit +/obj/item/clothing/suit/space/void/makeshift + name = "makeshift voidsuit" + desc = "This is not something you should use if you have other options, but it's better than nothing!" + + icon = 'icons/inventory/suit/item_vr.dmi' + default_worn_icon = 'icons/inventory/suit/mob_vr.dmi' + icon_state = "makeshift_void" + + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 0) + + // No animal people sprites for these yet, sad times + species_restricted = list("exclude", SPECIES_TESHARI, SPECIES_VOX, SPECIES_DIONA) + sprite_sheets = list() + +/obj/item/clothing/head/helmet/space/void/makeshift + name = "makeshift voidsuit helmet" + desc = "This is not something you should use if you have other options, but it's better than nothing!" + + icon = 'icons/inventory/head/item_vr.dmi' + default_worn_icon = 'icons/inventory/head/mob_vr.dmi' + icon_state = "makeshift_void" + + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 0) + + // No animal people sprites for these yet, sad times + species_restricted = list("exclude", SPECIES_TESHARI, SPECIES_VOX, SPECIES_DIONA) + sprite_sheets = list() + +// 'Custodian' armor +/obj/item/clothing/suit/space/void/custodian + name = "custodian suit" + desc = "Vacuum-capable armor for a Custodian to do their duty." + + icon = 'icons/inventory/suit/item_vr.dmi' + default_worn_icon = 'icons/inventory/suit/mob_vr.dmi' + icon_state = "custodian" + + armor = list("melee" = 70, "bullet" = 70, "laser" = 70, "energy" = 50, "bomb" = 40, "bio" = 0, "rad" = 20) + + // No animal people sprites for these yet, sad times + species_restricted = list("exclude", SPECIES_TESHARI, SPECIES_VOX, SPECIES_DIONA) + sprite_sheets = list() + +/obj/item/clothing/head/helmet/space/void/custodian + name = "custodian helmet" + desc = "Vacuum-capable helmet for a Custodian to do their duty." + + icon = 'icons/inventory/head/item_vr.dmi' + default_worn_icon = 'icons/inventory/head/mob_vr.dmi' + icon_state = "custodian" + + armor = list("melee" = 70, "bullet" = 70, "laser" = 70, "energy" = 50, "bomb" = 40, "bio" = 0, "rad" = 20) + + // No animal people sprites for these yet, sad times + species_restricted = list("exclude", SPECIES_TESHARI, SPECIES_VOX, SPECIES_DIONA) + sprite_sheets = list() + +// 'Moebius' armor +/obj/item/clothing/suit/space/void/aether + name = "\improper Aether voidsuit" + desc = "This suit seems rather high-end for a standard voidsuit. The air in it has a hint of 'new car smell', courtesy of Aether Atmospherics." + + icon = 'icons/inventory/suit/item_vr.dmi' + default_worn_icon = 'icons/inventory/suit/mob_vr.dmi' + icon_state = "moebiussuit" + + armor = list("melee" = 30, "bullet" = 30, "laser" = 30, "energy" = 20, "bomb" = 20, "bio" = 100, "rad" = 20) + + // No animal people sprites for these yet, sad times + species_restricted = list("exclude", SPECIES_TESHARI, SPECIES_VOX, SPECIES_DIONA) + sprite_sheets = list() + +/obj/item/clothing/head/helmet/space/void/aether + name = "\improper Aether voidsuit helmet" + desc = "Aether Atmospherics thought that giving this helmet selectable colored lighting would improve market penetration. Very comfortable, regardless." + + icon = 'icons/inventory/head/item_vr.dmi' + default_worn_icon = 'icons/inventory/head/mob_vr.dmi' + icon_state = "moebiushelm_White" + + armor = list("melee" = 30, "bullet" = 30, "laser" = 30, "energy" = 20, "bomb" = 20, "bio" = 100, "rad" = 20) + + // No animal people sprites for these yet, sad times + species_restricted = list("exclude", SPECIES_TESHARI, SPECIES_VOX, SPECIES_DIONA) + sprite_sheets = list() + +/obj/item/clothing/head/helmet/space/void/aether/verb/select_color() + set name = "Helmet Color" + set desc = "Change the color of [src]" + set category = "Object" + + var/choice = tgui_input_list(usr, "Select a new color:", "[src] Color", list("White", "Blue", "Purple", "Yellow", "Red", "Green")) + if(!choice) + return + icon_state = "moebiushelm_[choice]" + update_clothing_icon() + to_chat(usr, "[src] color changed to: [choice]") + +// Excelsior suit +/obj/item/clothing/suit/space/void/excelsior + name = "\improper Excelsior voidsuit" + desc = "A space suit from a particular spaceship: Excelsior." + + icon = 'icons/inventory/suit/item_vr.dmi' + default_worn_icon = 'icons/inventory/suit/mob_vr.dmi' + icon_state = "excelsior" + + // No animal people sprites for these yet, sad times + species_restricted = list("exclude", SPECIES_TESHARI, SPECIES_VOX, SPECIES_DIONA) + sprite_sheets = list() + +/obj/item/clothing/head/helmet/space/void/excelsior + name = "\improper Excelsior voidsuit helmet" + desc = "A space helmet from a particular spaceship: Excelsior." + + icon = 'icons/inventory/head/item_vr.dmi' + default_worn_icon = 'icons/inventory/head/mob_vr.dmi' + icon_state = "excelsior" + + // No animal people sprites for these yet, sad times + species_restricted = list("exclude", SPECIES_TESHARI, SPECIES_VOX, SPECIES_DIONA) + sprite_sheets = list() diff --git a/code/modules/clothing/spacesuits/void/military_vr.dm b/code/modules/clothing/spacesuits/void/military_vr.dm index 94355ba9c4..8eb7ff9ebd 100644 --- a/code/modules/clothing/spacesuits/void/military_vr.dm +++ b/code/modules/clothing/spacesuits/void/military_vr.dm @@ -31,8 +31,8 @@ icon_state = "rig0-odst" item_state = "rig0-odst" item_state_slots = null - icon = 'icons/obj/clothing/hats_vr.dmi' - icon_override = 'icons/mob/head_vr.dmi' + icon = 'icons/inventory/head/item_vr.dmi' + icon_override = 'icons/inventory/head/mob_vr.dmi' light_overlay = "helmet_light_dual" species_restricted = null @@ -40,9 +40,9 @@ name = "\improper Ace's ODST Helmet" icon = 'icons/obj/custom_items.dmi' icon_state = "rig0-odst_ace" - desc = "Etched under the inner visor is the phrase \"Don’t let your past define you; let it mold you into the person you want to be.\"" - icon = 'icons/obj/clothing/hats_vr.dmi' - icon_override = 'icons/mob/head_vr.dmi'*/ + desc = "Etched under the inner visor is the phrase \"Don�t let your past define you; let it mold you into the person you want to be.\"" + icon = 'icons/inventory/head/item_vr.dmi' + icon_override = 'icons/inventory/head/mob_vr.dmi'*/ /obj/item/clothing/suit/space/void/merc/odst name = "ODST Armor" @@ -50,8 +50,8 @@ icon_state = "odst" item_state = "odst" item_state_slots = null - icon = 'icons/obj/clothing/suits_vr.dmi' - icon_override = 'icons/mob/suit_vr.dmi' + icon = 'icons/inventory/suit/item_vr.dmi' + icon_override = 'icons/inventory/suit/mob_vr.dmi' species_restricted = null breach_threshold = 16 //Extra Thicc resilience = 0.05 //Military Armor diff --git a/code/modules/clothing/spacesuits/void/station.dm b/code/modules/clothing/spacesuits/void/station.dm index c94dfb0335..dd35822ecc 100644 --- a/code/modules/clothing/spacesuits/void/station.dm +++ b/code/modules/clothing/spacesuits/void/station.dm @@ -204,16 +204,16 @@ /obj/item/clothing/head/helmet/space/void/medical/alt sprite_sheets = list( - SPECIES_HUMAN = 'icons/mob/head.dmi', - SPECIES_TAJ = 'icons/mob/species/tajaran/helmet.dmi', - SPECIES_SKRELL = 'icons/mob/species/skrell/helmet.dmi', - SPECIES_UNATHI = 'icons/mob/species/unathi/helmet.dmi' - ) + SPECIES_HUMAN = 'icons/inventory/head/mob.dmi', + SPECIES_TAJ = 'icons/inventory/head/mob_tajaran.dmi', + SPECIES_SKRELL = 'icons/inventory/head/mob_skrell.dmi', + SPECIES_UNATHI = 'icons/inventory/head/mob_unathi.dmi' + ) sprite_sheets_obj = list( - SPECIES_TAJ = 'icons/obj/clothing/hats.dmi', - SPECIES_SKRELL = 'icons/obj/clothing/hats.dmi', - SPECIES_UNATHI = 'icons/obj/clothing/hats.dmi' - ) + SPECIES_TAJ = 'icons/inventory/head/item.dmi', + SPECIES_SKRELL = 'icons/inventory/head/item.dmi', + SPECIES_UNATHI = 'icons/inventory/head/item.dmi' + ) /obj/item/clothing/head/helmet/space/void/medical/alt/tesh name = "streamlined teshari medical voidsuit helmet" @@ -223,10 +223,10 @@ /obj/item/clothing/head/helmet/space/void/medical/alt/tesh sprite_sheets = list( - SPECIES_TESHARI = 'icons/mob/species/teshari/head.dmi' + SPECIES_TESHARI = 'icons/inventory/head/mob_teshari.dmi' ) sprite_sheets_obj = list( - SPECIES_TESHARI = 'icons/obj/clothing/hats.dmi' + SPECIES_TESHARI = 'icons/inventory/head/item.dmi' ) /obj/item/clothing/suit/space/void/medical/alt @@ -240,15 +240,15 @@ /obj/item/clothing/suit/space/void/medical/alt sprite_sheets = list( - SPECIES_HUMAN = 'icons/mob/spacesuit.dmi', - SPECIES_TAJ = 'icons/mob/species/tajaran/suit.dmi', - SPECIES_SKRELL = 'icons/mob/species/skrell/suit.dmi', - SPECIES_UNATHI = 'icons/mob/species/unathi/suit.dmi' + SPECIES_HUMAN = 'icons/inventory/suit/mob.dmi', + SPECIES_TAJ = 'icons/inventory/suit/mob_tajaran.dmi', + SPECIES_SKRELL = 'icons/inventory/suit/mob_skrell.dmi', + SPECIES_UNATHI = 'icons/inventory/suit/mob_unathi.dmi' ) sprite_sheets_obj = list( - SPECIES_TAJ = 'icons/obj/clothing/spacesuits.dmi', - SPECIES_SKRELL = 'icons/obj/clothing/spacesuits.dmi', - SPECIES_UNATHI = 'icons/obj/clothing/spacesuits.dmi' + SPECIES_TAJ = 'icons/inventory/suit/item.dmi', + SPECIES_SKRELL = 'icons/inventory/suit/item.dmi', + SPECIES_UNATHI = 'icons/inventory/suit/item.dmi' ) /obj/item/clothing/suit/space/void/medical/alt/tesh @@ -259,10 +259,10 @@ /obj/item/clothing/suit/space/void/medical/alt/tesh sprite_sheets = list( - SPECIES_TESHARI = 'icons/mob/species/teshari/suit.dmi' + SPECIES_TESHARI = 'icons/inventory/suit/mob_teshari.dmi' ) sprite_sheets_obj = list( - SPECIES_TESHARI = 'icons/obj/clothing/spacesuits.dmi' + SPECIES_TESHARI = 'icons/inventory/suit/item.dmi' ) //Security diff --git a/code/modules/clothing/spacesuits/void/station_vr.dm b/code/modules/clothing/spacesuits/void/station_vr.dm index 0684095afb..0c35f5a62b 100644 --- a/code/modules/clothing/spacesuits/void/station_vr.dm +++ b/code/modules/clothing/spacesuits/void/station_vr.dm @@ -1,49 +1,49 @@ /obj/item/clothing/head/helmet/space/void/medical/alt sprite_sheets = list( - SPECIES_HUMAN = 'icons/mob/head.dmi', - SPECIES_TAJ = 'icons/mob/species/tajaran/helmet.dmi', - SPECIES_SKRELL = 'icons/mob/species/skrell/helmet.dmi', - SPECIES_UNATHI = 'icons/mob/species/unathi/helmet.dmi', - SPECIES_XENOHYBRID = 'icons/mob/species/unathi/helmet.dmi', - SPECIES_AKULA = 'icons/mob/species/unathi/helmet.dmi', - SPECIES_SERGAL = 'icons/mob/species/unathi/helmet.dmi', - SPECIES_VULPKANIN = 'icons/mob/species/vulpkanin/helmet.dmi', - SPECIES_ZORREN_HIGH = 'icons/mob/species/vulpkanin/helmet.dmi', - SPECIES_FENNEC = 'icons/mob/species/vulpkanin/helmet.dmi' + SPECIES_HUMAN = 'icons/inventory/head/mob.dmi', + SPECIES_TAJ = 'icons/inventory/head/mob_tajaran.dmi', + SPECIES_SKRELL = 'icons/inventory/head/mob_skrell.dmi', + SPECIES_UNATHI = 'icons/inventory/head/mob_unathi.dmi', + SPECIES_XENOHYBRID = 'icons/inventory/head/mob_unathi.dmi', + SPECIES_AKULA = 'icons/inventory/head/mob_unathi.dmi', + SPECIES_SERGAL = 'icons/inventory/head/mob_unathi.dmi', + SPECIES_VULPKANIN = 'icons/inventory/head/mob_vulpkanin.dmi', + SPECIES_ZORREN_HIGH = 'icons/inventory/head/mob_vulpkanin.dmi', + SPECIES_FENNEC = 'icons/inventory/head/mob_vulpkanin.dmi' ) sprite_sheets_obj = list( - SPECIES_TAJ = 'icons/obj/clothing/hats.dmi', - SPECIES_SKRELL = 'icons/obj/clothing/hats.dmi', - SPECIES_UNATHI = 'icons/obj/clothing/hats.dmi', - SPECIES_XENOHYBRID = 'icons/obj/clothing/hats.dmi', - SPECIES_AKULA = 'icons/obj/clothing/hats.dmi', - SPECIES_SERGAL = 'icons/obj/clothing/hats.dmi', - SPECIES_VULPKANIN = 'icons/obj/clothing/hats.dmi', - SPECIES_ZORREN_HIGH = 'icons/obj/clothing/hats.dmi', - SPECIES_FENNEC = 'icons/obj/clothing/hats.dmi' + SPECIES_TAJ = 'icons/inventory/head/item.dmi', + SPECIES_SKRELL = 'icons/inventory/head/item.dmi', + SPECIES_UNATHI = 'icons/inventory/head/item.dmi', + SPECIES_XENOHYBRID = 'icons/inventory/head/item.dmi', + SPECIES_AKULA = 'icons/inventory/head/item.dmi', + SPECIES_SERGAL = 'icons/inventory/head/item.dmi', + SPECIES_VULPKANIN = 'icons/inventory/head/item.dmi', + SPECIES_ZORREN_HIGH = 'icons/inventory/head/item.dmi', + SPECIES_FENNEC = 'icons/inventory/head/item.dmi' ) /obj/item/clothing/suit/space/void/medical/alt sprite_sheets = list( - SPECIES_HUMAN = 'icons/mob/spacesuit.dmi', - SPECIES_TAJ = 'icons/mob/species/tajaran/suit.dmi', - SPECIES_SKRELL = 'icons/mob/species/skrell/suit.dmi', - SPECIES_UNATHI = 'icons/mob/species/unathi/suit.dmi', - SPECIES_XENOHYBRID = 'icons/mob/species/unathi/suit.dmi', - SPECIES_AKULA = 'icons/mob/species/akula/suit_vr.dmi', - SPECIES_SERGAL = 'icons/mob/species/sergal/suit_vr.dmi', - SPECIES_VULPKANIN = 'icons/mob/species/vulpkanin/suit.dmi', - SPECIES_ZORREN_HIGH = 'icons/mob/species/vulpkanin/suit.dmi', - SPECIES_FENNEC = 'icons/mob/species/vulpkanin/suit.dmi' + SPECIES_HUMAN = 'icons/inventory/suit/mob.dmi', + SPECIES_TAJ = 'icons/inventory/suit/mob_tajaran.dmi', + SPECIES_SKRELL = 'icons/inventory/suit/mob_skrell.dmi', + SPECIES_UNATHI = 'icons/inventory/suit/mob_unathi.dmi', + SPECIES_XENOHYBRID = 'icons/inventory/suit/mob_unathi.dmi', + SPECIES_AKULA = 'icons/inventory/suit/mob_akula.dmi', + SPECIES_SERGAL = 'icons/inventory/suit/mob_sergal.dmi', + SPECIES_VULPKANIN = 'icons/inventory/suit/mob_vulpkanin.dmi', + SPECIES_ZORREN_HIGH = 'icons/inventory/suit/mob_vulpkanin.dmi', + SPECIES_FENNEC = 'icons/inventory/suit/mob_vulpkanin.dmi' ) sprite_sheets_obj = list( - SPECIES_TAJ = 'icons/obj/clothing/spacesuits.dmi', - SPECIES_SKRELL = 'icons/obj/clothing/spacesuits.dmi', - SPECIES_UNATHI = 'icons/obj/clothing/spacesuits.dmi', - SPECIES_XENOHYBRID = 'icons/obj/clothing/spacesuits.dmi', - SPECIES_AKULA = 'icons/obj/clothing/spacesuits.dmi', - SPECIES_SERGAL = 'icons/obj/clothing/spacesuits.dmi', - SPECIES_VULPKANIN = 'icons/obj/clothing/spacesuits.dmi', - SPECIES_ZORREN_HIGH = 'icons/obj/clothing/spacesuits.dmi', - SPECIES_FENNEC = 'icons/obj/clothing/spacesuits.dmi' + SPECIES_TAJ = 'icons/inventory/suit/item.dmi', + SPECIES_SKRELL = 'icons/inventory/suit/item.dmi', + SPECIES_UNATHI = 'icons/inventory/suit/item.dmi', + SPECIES_XENOHYBRID = 'icons/inventory/suit/item.dmi', + SPECIES_AKULA = 'icons/inventory/suit/item.dmi', + SPECIES_SERGAL = 'icons/inventory/suit/item.dmi', + SPECIES_VULPKANIN = 'icons/inventory/suit/item.dmi', + SPECIES_ZORREN_HIGH = 'icons/inventory/suit/item.dmi', + SPECIES_FENNEC = 'icons/inventory/suit/item.dmi' ) \ No newline at end of file diff --git a/code/modules/clothing/spacesuits/void/void.dm b/code/modules/clothing/spacesuits/void/void.dm index 4f477e6ae8..ed7b708797 100644 --- a/code/modules/clothing/spacesuits/void/void.dm +++ b/code/modules/clothing/spacesuits/void/void.dm @@ -15,16 +15,16 @@ //Species-specific stuff. species_restricted = list("Human", "Promethean") sprite_sheets_refit = list( - SPECIES_UNATHI = 'icons/mob/species/unathi/helmet.dmi', - SPECIES_TAJ = 'icons/mob/species/tajaran/helmet.dmi', - SPECIES_SKRELL = 'icons/mob/species/skrell/helmet.dmi' + SPECIES_UNATHI = 'icons/inventory/head/mob_unathi.dmi', + SPECIES_TAJ = 'icons/inventory/head/mob_tajaran.dmi', + SPECIES_SKRELL = 'icons/inventory/head/mob_skrell.dmi' //Teshari have a general sprite sheet defined in modules/clothing/clothing.dm ) sprite_sheets_obj = list( - SPECIES_UNATHI = 'icons/obj/clothing/species/unathi/hats.dmi', - SPECIES_TAJ = 'icons/obj/clothing/species/tajaran/hats.dmi', - SPECIES_SKRELL = 'icons/obj/clothing/species/skrell/hats.dmi', - SPECIES_TESHARI = 'icons/obj/clothing/species/teshari/hats.dmi' + SPECIES_UNATHI = 'icons/inventory/head/item_unathi.dmi', + SPECIES_TAJ = 'icons/inventory/head/item_tajaran.dmi', + SPECIES_SKRELL = 'icons/inventory/head/item_skrell.dmi', + SPECIES_TESHARI = 'icons/inventory/head/item_teshari.dmi' ) light_overlay = "helmet_light" @@ -45,16 +45,16 @@ species_restricted = list("Human", SPECIES_SKRELL, "Promethean") sprite_sheets_refit = list( - SPECIES_UNATHI = 'icons/mob/species/unathi/suit.dmi', - SPECIES_TAJ = 'icons/mob/species/tajaran/suit.dmi', - SPECIES_SKRELL = 'icons/mob/species/skrell/suit.dmi' + SPECIES_UNATHI = 'icons/inventory/suit/mob_unathi.dmi', + SPECIES_TAJ = 'icons/inventory/suit/mob_tajaran.dmi', + SPECIES_SKRELL = 'icons/inventory/suit/mob_skrell.dmi' //Teshari have a general sprite sheet defined in modules/clothing/clothing.dm ) sprite_sheets_obj = list( - SPECIES_UNATHI = 'icons/obj/clothing/species/unathi/suits.dmi', - SPECIES_TAJ = 'icons/obj/clothing/species/tajaran/suits.dmi', - SPECIES_SKRELL = 'icons/obj/clothing/species/skrell/suits.dmi', - SPECIES_TESHARI = 'icons/obj/clothing/species/teshari/suits.dmi' + SPECIES_UNATHI = 'icons/inventory/suit/item_unathi.dmi', + SPECIES_TAJ = 'icons/inventory/suit/item_tajaran.dmi', + SPECIES_SKRELL = 'icons/inventory/suit/item_skrell.dmi', + SPECIES_TESHARI = 'icons/inventory/suit/item_teshari.dmi' ) //Breach thresholds, should ideally be inherited by most (if not all) voidsuits. diff --git a/code/modules/clothing/spacesuits/void/void_vr.dm b/code/modules/clothing/spacesuits/void/void_vr.dm index c3768e1afb..2ec40aa13f 100644 --- a/code/modules/clothing/spacesuits/void/void_vr.dm +++ b/code/modules/clothing/spacesuits/void/void_vr.dm @@ -8,60 +8,59 @@ /obj/item/clothing/head/helmet/space/void species_restricted = list(SPECIES_HUMAN, SPECIES_RAPALA, SPECIES_VASILISSAN, SPECIES_ALRAUNE, SPECIES_PROMETHEAN, SPECIES_XENOCHIMERA) sprite_sheets = list( - SPECIES_TAJ = 'icons/mob/species/tajaran/helmet.dmi', - SPECIES_SKRELL = 'icons/mob/species/skrell/helmet.dmi', - SPECIES_UNATHI = 'icons/mob/species/unathi/helmet.dmi', - SPECIES_TESHARI = 'icons/mob/species/teshari/head.dmi', - SPECIES_XENOHYBRID = 'icons/mob/species/unathi/helmet.dmi', - SPECIES_AKULA = 'icons/mob/species/akula/helmet_vr.dmi', - SPECIES_SERGAL = 'icons/mob/species/sergal/helmet_vr.dmi', - SPECIES_NEVREAN = 'icons/mob/species/sergal/helmet_vr.dmi', - SPECIES_VULPKANIN = 'icons/mob/species/vulpkanin/helmet.dmi', - SPECIES_ZORREN_HIGH = 'icons/mob/species/vulpkanin/helmet.dmi', - SPECIES_FENNEC = 'icons/mob/species/vulpkanin/helmet.dmi', - SPECIES_GREY_YW = 'icons/mob/species/grey/helmet.dmi' /*ywedit*/ + SPECIES_TAJ = 'icons/inventory/head/mob_tajaran.dmi', + SPECIES_SKRELL = 'icons/inventory/head/mob_skrell.dmi', + SPECIES_UNATHI = 'icons/inventory/head/mob_unathi.dmi', + SPECIES_TESHARI = 'icons/inventory/head/mob_teshari.dmi', + SPECIES_XENOHYBRID = 'icons/inventory/head/mob_unathi.dmi', + SPECIES_AKULA = 'icons/inventory/head/mob_akula.dmi', + SPECIES_SERGAL = 'icons/inventory/head/mob_sergal.dmi', + SPECIES_NEVREAN = 'icons/inventory/head/mob_sergal.dmi', + SPECIES_VULPKANIN = 'icons/inventory/head/mob_vulpkanin.dmi', + SPECIES_ZORREN_HIGH = 'icons/inventory/head/mob_vulpkanin.dmi', + SPECIES_FENNEC = 'icons/inventory/head/mob_vulpkanin.dmi' ) sprite_sheets_obj = list( - SPECIES_TAJ = 'icons/obj/clothing/species/tajaran/hats.dmi', // Copied from void.dm - SPECIES_SKRELL = 'icons/obj/clothing/species/skrell/hats.dmi', // Copied from void.dm - SPECIES_UNATHI = 'icons/obj/clothing/species/unathi/hats.dmi', // Copied from void.dm - SPECIES_TESHARI = 'icons/obj/clothing/species/teshari/hats.dmi', // Copied from void.dm - SPECIES_XENOHYBRID = 'icons/obj/clothing/species/unathi/hats.dmi', - SPECIES_AKULA = 'icons/obj/clothing/species/akula/hats.dmi', - SPECIES_SERGAL = 'icons/obj/clothing/species/sergal/hats.dmi', - SPECIES_NEVREAN = 'icons/obj/clothing/species/sergal/hats.dmi', - SPECIES_VULPKANIN = 'icons/obj/clothing/species/vulpkanin/hats.dmi', - SPECIES_ZORREN_HIGH = 'icons/obj/clothing/species/vulpkanin/hats.dmi', - SPECIES_FENNEC = 'icons/obj/clothing/species/vulpkanin/hats.dmi' + SPECIES_TAJ = 'icons/inventory/head/item_tajaran.dmi', + SPECIES_SKRELL = 'icons/inventory/head/item_skrell.dmi', + SPECIES_UNATHI = 'icons/inventory/head/item_unathi.dmi', + SPECIES_TESHARI = 'icons/inventory/head/item_teshari.dmi', + SPECIES_XENOHYBRID = 'icons/inventory/head/item_unathi.dmi', + SPECIES_AKULA = 'icons/inventory/head/item_akula.dmi', + SPECIES_SERGAL = 'icons/inventory/head/item_sergal.dmi', + SPECIES_NEVREAN = 'icons/inventory/head/item_sergal.dmi', + SPECIES_VULPKANIN = 'icons/inventory/head/item_vulpkanin.dmi', + SPECIES_ZORREN_HIGH = 'icons/inventory/head/item_vulpkanin.dmi', + SPECIES_FENNEC = 'icons/inventory/head/item_vulpkanin.dmi' ) /obj/item/clothing/suit/space/void species_restricted = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_RAPALA, SPECIES_VASILISSAN, SPECIES_ALRAUNE, SPECIES_PROMETHEAN, SPECIES_XENOCHIMERA) sprite_sheets = list( - SPECIES_TAJ = 'icons/mob/species/tajaran/suit.dmi', - SPECIES_SKRELL = 'icons/mob/species/skrell/suit.dmi', - SPECIES_UNATHI = 'icons/mob/species/unathi/suit.dmi', - SPECIES_TESHARI = 'icons/mob/species/teshari/suit.dmi', - SPECIES_XENOHYBRID = 'icons/mob/species/unathi/suit.dmi', - SPECIES_AKULA = 'icons/mob/species/akula/suit_vr.dmi', - SPECIES_SERGAL = 'icons/mob/species/sergal/suit_vr.dmi', - SPECIES_NEVREAN = 'icons/mob/species/sergal/suit_vr.dmi', - SPECIES_VULPKANIN = 'icons/mob/species/vulpkanin/suit.dmi', - SPECIES_ZORREN_HIGH = 'icons/mob/species/vulpkanin/suit.dmi', - SPECIES_FENNEC = 'icons/mob/species/vulpkanin/suit.dmi' + SPECIES_TAJ = 'icons/inventory/suit/mob_tajaran.dmi', + SPECIES_SKRELL = 'icons/inventory/suit/mob_skrell.dmi', + SPECIES_UNATHI = 'icons/inventory/suit/mob_unathi.dmi', + SPECIES_TESHARI = 'icons/inventory/suit/mob_teshari.dmi', + SPECIES_XENOHYBRID = 'icons/inventory/suit/mob_unathi.dmi', + SPECIES_AKULA = 'icons/inventory/suit/mob_akula.dmi', + SPECIES_SERGAL = 'icons/inventory/suit/mob_sergal.dmi', + SPECIES_NEVREAN = 'icons/inventory/suit/mob_sergal.dmi', + SPECIES_VULPKANIN = 'icons/inventory/suit/mob_vulpkanin.dmi', + SPECIES_ZORREN_HIGH = 'icons/inventory/suit/mob_vulpkanin.dmi', + SPECIES_FENNEC = 'icons/inventory/suit/mob_vulpkanin.dmi' ) sprite_sheets_obj = list( - SPECIES_TAJ = 'icons/obj/clothing/species/tajaran/suits.dmi', // Copied from void.dm - SPECIES_SKRELL = 'icons/obj/clothing/species/skrell/suits.dmi', // Copied from void.dm - SPECIES_UNATHI = 'icons/obj/clothing/species/unathi/suits.dmi', // Copied from void.dm - SPECIES_TESHARI = 'icons/obj/clothing/species/teshari/suits.dmi', // Copied from void.dm - SPECIES_XENOHYBRID = 'icons/obj/clothing/species/unathi/suits.dmi', - SPECIES_AKULA = 'icons/obj/clothing/species/akula/suits.dmi', - SPECIES_SERGAL = 'icons/obj/clothing/species/sergal/suits.dmi', - SPECIES_NEVREAN = 'icons/obj/clothing/species/sergal/suits.dmi', - SPECIES_VULPKANIN = 'icons/obj/clothing/species/vulpkanin/suits.dmi', - SPECIES_ZORREN_HIGH = 'icons/obj/clothing/species/vulpkanin/suits.dmi', - SPECIES_FENNEC = 'icons/obj/clothing/species/vulpkanin/suits.dmi' + SPECIES_TAJ = 'icons/inventory/suit/item_tajaran.dmi', + SPECIES_SKRELL = 'icons/inventory/suit/item_skrell.dmi', + SPECIES_UNATHI = 'icons/inventory/suit/item_unathi.dmi', + SPECIES_TESHARI = 'icons/inventory/suit/item_teshari.dmi', + SPECIES_XENOHYBRID = 'icons/inventory/suit/item_unathi.dmi', + SPECIES_AKULA = 'icons/inventory/suit/item_akula.dmi', + SPECIES_SERGAL = 'icons/inventory/suit/item_sergal.dmi', + SPECIES_NEVREAN = 'icons/inventory/suit/item_sergal.dmi', + SPECIES_VULPKANIN = 'icons/inventory/suit/item_vulpkanin.dmi', + SPECIES_ZORREN_HIGH = 'icons/inventory/suit/item_vulpkanin.dmi', + SPECIES_FENNEC = 'icons/inventory/suit/item_vulpkanin.dmi' ) // This is a hack to prevent the item_state variable on the suits from taking effect @@ -75,8 +74,8 @@ desc = "Hostile Environiment Cross-Kinetic Helmet: A helmet designed to withstand the wide variety of hazards from \[REDACTED\]. It wasn't enough for its last owner." icon_state = "hostile_env" item_state = "hostile_env" - icon = 'icons/obj/clothing/hats_vr.dmi' - icon_override = 'icons/mob/head_vr.dmi' + icon = 'icons/inventory/head/item_vr.dmi' + icon_override = 'icons/inventory/head/mob_vr.dmi' armor = list(melee = 60, bullet = 35, laser = 35, energy = 15, bomb = 55, bio = 100, rad = 20) /obj/item/clothing/head/helmet/space/void/heck/Initialize() @@ -97,8 +96,8 @@ desc = "Hostile Environment Cross-Kinetic Suit: A suit designed to withstand the wide variety of hazards from \[REDACTED\]. It wasn't enough for its last owner." icon_state = "hostile_env" item_state = "hostile_env" - icon = 'icons/obj/clothing/suits_vr.dmi' - icon_override = 'icons/mob/suit_vr.dmi' + icon = 'icons/inventory/suit/item_vr.dmi' + icon_override = 'icons/inventory/suit/mob_vr.dmi' slowdown = 1.5 armor = list(melee = 60, bullet = 35, laser = 35, energy = 15, bomb = 55, bio = 100, rad = 20) @@ -107,8 +106,8 @@ desc = "A free helmet, gifted you by your new not-quite-corporate master!" icon_state = "syndicate-contract" item_state = "syndicate-contract" - icon = 'icons/obj/clothing/hats_vr.dmi' - icon_override = 'icons/mob/head_vr.dmi' + icon = 'icons/inventory/head/item_vr.dmi' + icon_override = 'icons/inventory/head/mob_vr.dmi' armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 35, bio = 100, rad = 60) siemens_coefficient = 0.6 camera_networks = list(NETWORK_MERCENARY) @@ -118,8 +117,8 @@ desc = "A free suit, gifted you by your new not-quite-corporate master!" icon_state = "syndicate-contract" item_state = "syndicate-contract" - icon = 'icons/obj/clothing/suits_vr.dmi' - icon_override = 'icons/mob/suit_vr.dmi' + icon = 'icons/inventory/suit/item_vr.dmi' + icon_override = 'icons/inventory/suit/mob_vr.dmi' armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 35, bio = 100, rad = 60) siemens_coefficient = 0.6 @@ -128,21 +127,21 @@ desc = "From out of space and time, this helmet will protect you while you perform your duties." icon_state = "chronohelmet" item_state = "chronohelmet" - icon = 'icons/obj/clothing/hats_vr.dmi' - icon_override = 'icons/mob/head_vr.dmi' + icon = 'icons/inventory/head/item_vr.dmi' + icon_override = 'icons/inventory/head/mob_vr.dmi' /obj/item/clothing/suit/space/void/chrono name = "chrono-suit" desc = "From out of space and time, this helmet will protect you while you perform your duties." icon_state = "chronosuit" item_state = "chronosuit" - icon = 'icons/obj/clothing/suits_vr.dmi' - icon_override = 'icons/mob/suit_vr.dmi' + icon = 'icons/inventory/suit/item_vr.dmi' + icon_override = 'icons/inventory/suit/mob_vr.dmi' /obj/item/clothing/suit/space/void/autolok name = "AutoLok pressure suit" desc = "A high-tech snug-fitting pressure suit. Fits any species. It offers very little physical protection, but is equipped with sensors that will automatically deploy the integral helmet to protect the wearer." - icon = 'icons/obj/clothing/suits_vr.dmi' + icon = 'icons/inventory/suit/item_vr.dmi' icon_state = "autoloksuit" item_state = "autoloksuit" item_state_slots = list(slot_r_hand_str = "space_suit_syndicate", slot_l_hand_str = "space_suit_syndicate") @@ -152,32 +151,33 @@ species_restricted = list("exclude",SPECIES_DIONA,SPECIES_VOX) //this thing can autoadapt breach_threshold = 6 //this thing is basically tissue paper w_class = ITEMSIZE_NORMAL //if it's snug, high-tech, and made of relatively soft materials, it should be much easier to store! + default_worn_icon = 'icons/inventory/suit/mob_vr.dmi' /obj/item/clothing/suit/space/void/autolok sprite_sheets = list( - SPECIES_HUMAN = 'icons/mob/spacesuit_vr.dmi', - SPECIES_TAJ = 'icons/mob/species/tajaran/suit_vr.dmi', - SPECIES_SKRELL = 'icons/mob/species/skrell/suit_vr.dmi', - SPECIES_UNATHI = 'icons/mob/species/unathi/suit_vr.dmi', - SPECIES_XENOHYBRID = 'icons/mob/species/unathi/suit_vr.dmi', - SPECIES_AKULA = 'icons/mob/species/unathi/suit_vr.dmi', - SPECIES_SERGAL = 'icons/mob/species/unathi/suit_vr.dmi', - SPECIES_VULPKANIN = 'icons/mob/species/vulpkanin/suit_vr.dmi', - SPECIES_ZORREN_HIGH = 'icons/mob/species/vulpkanin/suit_vr.dmi', - SPECIES_FENNEC = 'icons/mob/species/vulpkanin/suit_vr.dmi', - SPECIES_TESHARI = 'icons/mob/species/teshari/suit_vr.dmi' + SPECIES_HUMAN = 'icons/inventory/suit/mob_vr.dmi', + SPECIES_TAJ = 'icons/inventory/suit/mob_vr_tajaran.dmi', + SPECIES_SKRELL = 'icons/inventory/suit/mob_vr_skrell.dmi', + SPECIES_UNATHI = 'icons/inventory/suit/mob_vr_unathi.dmi', + SPECIES_XENOHYBRID = 'icons/inventory/suit/mob_vr_unathi.dmi', + SPECIES_AKULA = 'icons/inventory/suit/mob_vr_unathi.dmi', + SPECIES_SERGAL = 'icons/inventory/suit/mob_vr_unathi.dmi', + SPECIES_VULPKANIN = 'icons/inventory/suit/mob_vr_vulpkanin.dmi', + SPECIES_ZORREN_HIGH = 'icons/inventory/suit/mob_vr_vulpkanin.dmi', + SPECIES_FENNEC = 'icons/inventory/suit/mob_vr_vulpkanin.dmi', + SPECIES_TESHARI = 'icons/inventory/suit/mob_vr_teshari.dmi' ) sprite_sheets_obj = list( - SPECIES_TAJ = 'icons/obj/clothing/suits_vr.dmi', - SPECIES_SKRELL = 'icons/obj/clothing/suits_vr.dmi', - SPECIES_UNATHI = 'icons/obj/clothing/suits_vr.dmi', - SPECIES_XENOHYBRID = 'icons/obj/clothing/suits_vr.dmi', - SPECIES_AKULA = 'icons/obj/clothing/suits_vr.dmi', - SPECIES_SERGAL = 'icons/obj/clothing/suits_vr.dmi', - SPECIES_VULPKANIN = 'icons/obj/clothing/suits_vr.dmi', - SPECIES_ZORREN_HIGH = 'icons/obj/clothing/suits_vr.dmi', - SPECIES_FENNEC = 'icons/obj/clothing/suits_vr.dmi', - SPECIES_TESHARI = 'icons/obj/clothing/suits_vr.dmi' + SPECIES_TAJ = 'icons/inventory/suit/item_vr.dmi', + SPECIES_SKRELL = 'icons/inventory/suit/item_vr.dmi', + SPECIES_UNATHI = 'icons/inventory/suit/item_vr.dmi', + SPECIES_XENOHYBRID = 'icons/inventory/suit/item_vr.dmi', + SPECIES_AKULA = 'icons/inventory/suit/item_vr.dmi', + SPECIES_SERGAL = 'icons/inventory/suit/item_vr.dmi', + SPECIES_VULPKANIN = 'icons/inventory/suit/item_vr.dmi', + SPECIES_ZORREN_HIGH = 'icons/inventory/suit/item_vr.dmi', + SPECIES_FENNEC = 'icons/inventory/suit/item_vr.dmi', + SPECIES_TESHARI = 'icons/inventory/suit/item_vr.dmi' ) /obj/item/clothing/suit/space/void/autolok/Initialize() @@ -226,36 +226,37 @@ /obj/item/clothing/head/helmet/space/void/autolok name = "AutoLok pressure helmet" desc = "A rather close-fitting helmet designed to protect the wearer from hazardous conditions. Automatically deploys when the suit's sensors detect an environment that is hazardous to the wearer." + icon = 'icons/inventory/head/item_vr.dmi' icon_state = "autolokhelmet" item_state = "autolokhelmet" species_restricted = list("exclude",SPECIES_DIONA,SPECIES_VOX) //this thing can autoadapt too - icon = 'icons/obj/clothing/hats_vr.dmi' flags_inv = HIDEEARS|BLOCKHAIR //removed HIDEFACE/MASK/EYES flags so sunglasses or facemasks don't disappear. still gotta have BLOCKHAIR or it'll clip out tho. + default_worn_icon = 'icons/inventory/head/mob_vr.dmi' /obj/item/clothing/head/helmet/space/void/autolok sprite_sheets = list( - SPECIES_HUMAN = 'icons/mob/head_vr.dmi', - SPECIES_TAJ = 'icons/mob/species/tajaran/helmet_vr.dmi', - SPECIES_SKRELL = 'icons/mob/species/skrell/helmet_vr.dmi', - SPECIES_UNATHI = 'icons/mob/species/unathi/helmet_vr.dmi', - SPECIES_XENOHYBRID = 'icons/mob/species/unathi/helmet_vr.dmi', - SPECIES_AKULA = 'icons/mob/species/unathi/helmet_vr.dmi', - SPECIES_SERGAL = 'icons/mob/species/unathi/helmet_vr.dmi', - SPECIES_VULPKANIN = 'icons/mob/species/vulpkanin/helmet_vr.dmi', - SPECIES_ZORREN_HIGH = 'icons/mob/species/vulpkanin/helmet_vr.dmi', - SPECIES_FENNEC = 'icons/mob/species/vulpkanin/helmet_vr.dmi', - SPECIES_TESHARI = 'icons/mob/species/teshari/helmet_vr.dmi' + SPECIES_HUMAN = 'icons/inventory/head/mob_vr.dmi', + SPECIES_TAJ = 'icons/inventory/head/mob_vr_tajaran.dmi', + SPECIES_SKRELL = 'icons/inventory/head/mob_vr_skrell.dmi', + SPECIES_UNATHI = 'icons/inventory/head/mob_vr_unathi.dmi', + SPECIES_XENOHYBRID = 'icons/inventory/head/mob_vr_unathi.dmi', + SPECIES_AKULA = 'icons/inventory/head/mob_vr_unathi.dmi', + SPECIES_SERGAL = 'icons/inventory/head/mob_vr_unathi.dmi', + SPECIES_VULPKANIN = 'icons/inventory/head/mob_vr_vulpkanin.dmi', + SPECIES_ZORREN_HIGH = 'icons/inventory/head/mob_vr_vulpkanin.dmi', + SPECIES_FENNEC = 'icons/inventory/head/mob_vr_vulpkanin.dmi', + SPECIES_TESHARI = 'icons/inventory/head/mob_vr_teshari.dmi' ) sprite_sheets_obj = list( - SPECIES_TAJ = 'icons/obj/clothing/hats_vr.dmi', - SPECIES_SKRELL = 'icons/obj/clothing/hats_vr.dmi', - SPECIES_UNATHI = 'icons/obj/clothing/hats_vr.dmi', - SPECIES_XENOHYBRID = 'icons/obj/clothing/hats_vr.dmi', - SPECIES_AKULA = 'icons/obj/clothing/hats_vr.dmi', - SPECIES_SERGAL = 'icons/obj/clothing/hats_vr.dmi', - SPECIES_VULPKANIN = 'icons/obj/clothing/hats_vr.dmi', - SPECIES_ZORREN_HIGH = 'icons/obj/clothing/hats_vr.dmi', - SPECIES_FENNEC = 'icons/obj/clothing/hats_vr.dmi', - SPECIES_TESHARI = 'icons/obj/clothing/hats_vr.dmi' + SPECIES_TAJ = 'icons/inventory/head/item_vr.dmi', + SPECIES_SKRELL = 'icons/inventory/head/item_vr.dmi', + SPECIES_UNATHI = 'icons/inventory/head/item_vr.dmi', + SPECIES_XENOHYBRID = 'icons/inventory/head/item_vr.dmi', + SPECIES_AKULA = 'icons/inventory/head/item_vr.dmi', + SPECIES_SERGAL = 'icons/inventory/head/item_vr.dmi', + SPECIES_VULPKANIN = 'icons/inventory/head/item_vr.dmi', + SPECIES_ZORREN_HIGH = 'icons/inventory/head/item_vr.dmi', + SPECIES_FENNEC = 'icons/inventory/head/item_vr.dmi', + SPECIES_TESHARI = 'icons/inventory/head/item_vr.dmi' ) - sprite_sheets_refit = list() //have to nullify this as well just to be thorough \ No newline at end of file + sprite_sheets_refit = list() //have to nullify this as well just to be thorough diff --git a/code/modules/clothing/suits/aliens/teshari.dm b/code/modules/clothing/suits/aliens/teshari.dm index 98498dcffd..256130de03 100644 --- a/code/modules/clothing/suits/aliens/teshari.dm +++ b/code/modules/clothing/suits/aliens/teshari.dm @@ -2,8 +2,8 @@ /obj/item/clothing/suit/storage/teshari/cloak name = "black cloak" desc = "It drapes over a Teshari's shoulders and closes at the neck with pockets convienently placed inside." - icon = 'icons/mob/species/teshari/teshari_cloak.dmi' - icon_override = 'icons/mob/species/teshari/teshari_cloak.dmi' + icon = 'icons/inventory/suit/item_teshari.dmi' + icon = 'icons/inventory/suit/mob_teshari.dmi' icon_state = "tesh_cloak_bn" item_state = "tesh_cloak_bn" species_restricted = list(SPECIES_TESHARI) @@ -131,10 +131,6 @@ // Job Cloaks -/obj/item/clothing/suit/storage/teshari/cloak/jobs - icon = 'icons/mob/species/teshari/deptcloak.dmi' - icon_override = 'icons/mob/species/teshari/deptcloak.dmi' - /obj/item/clothing/suit/storage/teshari/cloak/jobs/cap name = "facility director cloak" desc = "A soft Teshari cloak made for the Facility Director" @@ -288,16 +284,12 @@ /obj/item/clothing/suit/storage/toggle/labcoat/teshari name = "Teshari labcoat" desc = "A small suit that protects against minor chemical spills. This one is a good fit on Teshari." - icon = 'icons/obj/clothing/species/teshari/suits.dmi' - icon_override = 'icons/mob/species/teshari/suit.dmi' icon_state = "tesh_labcoat" species_restricted = list(SPECIES_TESHARI) /obj/item/clothing/suit/storage/toggle/tesharicoat name = "small black coat" desc = "A coat that seems too small to fit a human." - icon = 'icons/obj/clothing/species/teshari/suits.dmi' - icon_override = 'icons/mob/species/teshari/suit.dmi' icon_state = "tesharicoat" body_parts_covered = UPPER_TORSO|ARMS|LOWER_TORSO|LEGS species_restricted = list(SPECIES_TESHARI) @@ -305,8 +297,6 @@ /obj/item/clothing/suit/storage/toggle/tesharicoatwhite name = "small coat" desc = "A coat that seems too small to fit a human." - icon = 'icons/obj/clothing/species/teshari/suits.dmi' - icon_override = 'icons/mob/species/teshari/suit.dmi' icon_state = "tesharicoatwhite" body_parts_covered = UPPER_TORSO|ARMS|LOWER_TORSO|LEGS species_restricted = list(SPECIES_TESHARI) @@ -315,8 +305,6 @@ /obj/item/clothing/suit/storage/hooded/teshari name = "Hooded Teshari Cloak" desc = "A soft teshari cloak with an added hood." - icon_override = 'icons/mob/species/teshari/teshari_hood.dmi' - icon = 'icons/mob/species/teshari/teshari_hood.dmi' icon_state = "tesh_hcloak_bo" item_state_slots = list(slot_r_hand_str = "tesh_hcloak_bo", slot_l_hand_str = "tesh_hcloak_bo") body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS @@ -329,8 +317,6 @@ /obj/item/clothing/head/tesh_hood name = "Cloak Hood" desc = "A hood attached to a teshari cloak." - icon_override = 'icons/mob/species/teshari/teshari_hood.dmi' - icon = 'icons/mob/species/teshari/teshari_hood.dmi' icon_state = "tesh_hood_bo" item_state_slots = list(slot_r_hand_str = "tesh_hood_bo", slot_l_hand_str = "tesh_hood_bo") flags_inv = BLOCKHAIR @@ -616,8 +602,6 @@ /obj/item/clothing/suit/storage/teshari/beltcloak name = "belted cloak" desc = "A more ridged and stylized Teshari cloak." - icon = 'icons/mob/species/teshari/teshari_cloak.dmi' - icon_override = 'icons/mob/species/teshari/teshari_cloak.dmi' icon_state = "tesh_beltcloak_bo" item_state = "tesh_beltcloak_bo" species_restricted = list(SPECIES_TESHARI) @@ -749,10 +733,6 @@ item_state = "tesh_beltcloak_brg" //Belted job cloaks -/obj/item/clothing/suit/storage/teshari/beltcloak/jobs - icon = 'icons/mob/species/teshari/deptcloak.dmi' - icon_override = 'icons/mob/species/teshari/deptcloak.dmi' - /obj/item/clothing/suit/storage/teshari/beltcloak/jobs/cargo name = "cargo belted cloak" desc = "A soft Teshari cloak made for the Cargo department" diff --git a/code/modules/clothing/suits/armor_vr.dm b/code/modules/clothing/suits/armor_vr.dm index 09446bb66b..1f9ccf2402 100644 --- a/code/modules/clothing/suits/armor_vr.dm +++ b/code/modules/clothing/suits/armor_vr.dm @@ -34,12 +34,6 @@ /obj/item/clothing/suit/storage/vest/hos armor = list(melee = 50, bullet = 40, laser = 40, energy = 25, bomb = 25, bio = 0, rad = 0) -/obj/item/clothing/suit/storage/vest/hoscoat/jensen - name = "armored trenchcoat" - desc = "A trenchcoat augmented with a special alloy for some protection and style." - icon_state = "hostrench" - flags_inv = HIDEHOLSTER - // Override Polaris's "confederate" naming convention. I hate it. /obj/item/clothing/suit/storage/vest/solgov name = "\improper Solar Central Government" //YW EDIT: SolGov @@ -61,16 +55,16 @@ name = "marine body armor" desc = "When I joined the Corps, we didn't have any fancy-schmanzy armor. We had sticks! Two sticks, and a rock for the whole platoon-and we had to share the rock!" icon_state = "unsc_armor" - icon = 'icons/obj/clothing/suits_vr.dmi' - icon_override = 'icons/mob/suit_vr.dmi' + icon = 'icons/inventory/suit/item_vr.dmi' + icon_override = 'icons/inventory/suit/mob_vr.dmi' body_parts_covered = UPPER_TORSO|LOWER_TORSO // ToDo: Break up the armor into smaller bits. /obj/item/clothing/suit/armor/combat/imperial name = "imperial soldier armor" desc = "Made out of an especially light metal, it lets you conquer in style." icon_state = "ge_armor" - icon = 'icons/obj/clothing/suits_vr.dmi' - icon_override = 'icons/mob/suit_vr.dmi' + icon = 'icons/inventory/suit/item_vr.dmi' + icon_override = 'icons/inventory/suit/mob_vr.dmi' body_parts_covered = UPPER_TORSO|LOWER_TORSO /obj/item/clothing/suit/armor/combat/imperial/centurion @@ -79,12 +73,12 @@ icon_state = "ge_armorcent" /obj/item/clothing/suit/storage/vest/wardencoat/alt2 - icon = 'icons/obj/clothing/suits_vr.dmi' - icon_override = 'icons/mob/suit_vr.dmi' + icon = 'icons/inventory/suit/item_vr.dmi' + icon_override = 'icons/inventory/suit/mob_vr.dmi' /obj/item/clothing/suit/storage/vest/hoscoat/jensen/alt - icon = 'icons/obj/clothing/suits_vr.dmi' - icon_override = 'icons/mob/suit_vr.dmi' + icon = 'icons/inventory/suit/item_vr.dmi' + icon_override = 'icons/inventory/suit/mob_vr.dmi' // Armor Versions Here /obj/item/clothing/suit/armor/combat/crusader @@ -124,3 +118,24 @@ /obj/item/clothing/suit/armor/pcarrier/explorer/deluxe name = "modular explorer suit" desc = "A modification of the explorer suit with a modular armor system. Requires you to insert armor plates." + +// 'Crusader' armor +/obj/item/clothing/suit/armor/crusader + name = "crusader armor" + desc = "God will protect those who defend his faith." + + armor = list("melee" = 50, "bullet" = 50, "laser" = 50, "energy" = 25, "bomb" = 30, "bio" = 0, "rad" = 0) + + icon = 'icons/inventory/suit/item_vr.dmi' + default_worn_icon = 'icons/inventory/suit/mob_vr.dmi' + icon_state = "crusader_suit" + +/obj/item/clothing/head/helmet/crusader + name = "crusader helmet" + desc = "God will protect those who defend his faith." + + armor = list("melee" = 50, "bullet" = 50, "laser" = 50, "energy" = 25, "bomb" = 30, "bio" = 0, "rad" = 0) + + icon = 'icons/inventory/head/item_vr.dmi' + default_worn_icon = 'icons/inventory/head/mob_vr.dmi' + icon_state = "crusader_head" diff --git a/code/modules/clothing/suits/hooded_vr.dm b/code/modules/clothing/suits/hooded_vr.dm index 8d0b6a9c38..47d0bb1274 100644 --- a/code/modules/clothing/suits/hooded_vr.dm +++ b/code/modules/clothing/suits/hooded_vr.dm @@ -5,8 +5,8 @@ /obj/item/clothing/suit/storage/hooded/techpriest name = "tech priest robe" desc = "Praise be to the Omnissiah." - icon = 'icons/obj/clothing/suits_vr.dmi' - icon_override = 'icons/mob/suit_vr.dmi' + icon = 'icons/inventory/suit/item_vr.dmi' + icon_override = 'icons/inventory/suit/mob_vr.dmi' icon_state = "techpriest" hoodtype = /obj/item/clothing/head/hood/techpriest armor = list(melee = 20, bullet = 10, laser = 10, energy = 10, bomb = 25, bio = 50, rad = 25) @@ -73,8 +73,8 @@ /obj/item/clothing/suit/storage/hooded/wintercoat/talon name = "ITV winter coat" desc = "A cozy winter coat, covered in thick fur and baring the colors of ITV." - icon = 'icons/obj/clothing/suits_vr.dmi' - icon_override = 'icons/mob/suit_vr.dmi' + icon = 'icons/inventory/suit/item_vr.dmi' + icon_override = 'icons/inventory/suit/mob_vr.dmi' icon_state = "taloncoat" armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) hoodtype = /obj/item/clothing/head/hood/winter/talon diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index 5d5f168096..1119079e2a 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -242,7 +242,7 @@ /obj/item/clothing/suit/suspenders name = "suspenders" desc = "They suspend the illusion of the mime's play." - icon = 'icons/obj/clothing/belts.dmi' + icon = 'icons/inventory/belt/item.dmi' icon_state = "suspenders" blood_overlay_type = "armor" //it's the less thing that I can put here body_parts_covered = 0 diff --git a/code/modules/clothing/suits/jobs_vr.dm b/code/modules/clothing/suits/jobs_vr.dm new file mode 100644 index 0000000000..9b34c18637 --- /dev/null +++ b/code/modules/clothing/suits/jobs_vr.dm @@ -0,0 +1,18 @@ +// Cargotech jacket +/obj/item/clothing/suit/storage/cargo + name = "cargo jacket" + desc = "A jacket typically assigned to cargo technicians when it's chilly in cargonia." + + icon = 'icons/inventory/suit/item_vr.dmi' + default_worn_icon = 'icons/inventory/suit/mob_vr.dmi' + icon_state = "cargo_jacket" + +// QM Coat +/obj/item/clothing/suit/storage/qm + name = "\improper QM coat" + desc = "A coat typically assigned to quartermasters when it's chilly in cargonia." + + icon = 'icons/inventory/suit/item_vr.dmi' + default_worn_icon = 'icons/inventory/suit/mob_vr.dmi' + icon_state = "qm_coat" + \ No newline at end of file diff --git a/code/modules/clothing/suits/labcoat.dm b/code/modules/clothing/suits/labcoat.dm index 2560692656..71cd7e81a6 100644 --- a/code/modules/clothing/suits/labcoat.dm +++ b/code/modules/clothing/suits/labcoat.dm @@ -8,7 +8,6 @@ flags_inv = HIDEHOLSTER allowed = list(/obj/item/device/analyzer,/obj/item/stack/medical,/obj/item/weapon/dnainjector,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/hypospray,/obj/item/device/healthanalyzer,/obj/item/device/flashlight/pen,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/storage/pill_bottle,/obj/item/weapon/paper) armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0) - index = 1 /obj/item/clothing/suit/storage/toggle/labcoat/red name = "red labcoat" @@ -110,4 +109,3 @@ name = "golden plague doctor suit" desc = "If it worked then, it works now. This classic design comes in gold." icon_state = "plaguedoctor2" - index = 1 diff --git a/code/modules/clothing/suits/labcoat_vr.dm b/code/modules/clothing/suits/labcoat_vr.dm new file mode 100644 index 0000000000..4f82afd2e3 --- /dev/null +++ b/code/modules/clothing/suits/labcoat_vr.dm @@ -0,0 +1,27 @@ +// 'Modern' labcoats +/obj/item/clothing/suit/storage/toggle/labcoat/modern + name = "modern labcoat" + + icon = 'icons/inventory/suit/item_vr.dmi' + default_worn_icon = 'icons/inventory/suit/mob_vr.dmi' + icon_state = "labcoat_mod" + +/obj/item/clothing/suit/storage/toggle/labcoat/modern/cmo + name = "modern cmo's labcoat" + desc = "A suit that protects against minor chemical spills. This one has distinct markings on the arms." + icon_state = "labcoat_cmo_mod" + +// 'Modern' biosuits +/obj/item/clothing/suit/bio_suit/modern + name = "modern bio suit" + + icon = 'icons/inventory/suit/item_vr.dmi' + default_worn_icon = 'icons/inventory/suit/mob_vr.dmi' + icon_state = "bio_mod" + +/obj/item/clothing/head/bio_hood/modern + name = "modern bio hood" + + icon = 'icons/inventory/head/item_vr.dmi' + default_worn_icon = 'icons/inventory/head/mob_vr.dmi' + icon_state = "bio_mod" diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index e95147bff5..a4b59ac612 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -43,7 +43,7 @@ /obj/item/clothing/suit/poncho name = "poncho" desc = "A simple, comfortable poncho." - icon = 'icons/mob/suit.dmi' + icon = 'icons/inventory/suit/mob.dmi' icon_state = "poncho" item_state = "poncho" item_icons = list( @@ -105,10 +105,7 @@ /obj/item/clothing/suit/syndicatefake name = "red space suit replica" - icon = 'icons/obj/clothing/spacesuits.dmi' - icon_override = "icons/mob/spacesuit.dmi" //Chomp edit to fix its missing icon icon_state = "syndicate" - default_worn_icon = 'icons/mob/spacesuit.dmi' desc = "A plastic replica of the syndicate space suit, you'll look just like a real murderous syndicate agent in this! This is a toy, it is not made for use in space!" w_class = ITEMSIZE_NORMAL allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency/oxygen,/obj/item/toy) @@ -437,7 +434,6 @@ icon_state = "militaryjacket_tan" item_state_slots = list(slot_r_hand_str = "suit_orange", slot_l_hand_str = "suit_orange") flags_inv = HIDEHOLSTER - index = 1 /obj/item/clothing/suit/storage/miljacket/grey name = "grey military jacket" @@ -445,7 +441,6 @@ icon_state = "militaryjacket_grey" item_state_slots = list(slot_r_hand_str = "suit_grey", slot_l_hand_str = "suit_grey") flags_inv = HIDEHOLSTER - index = 1 /obj/item/clothing/suit/storage/miljacket/navy name = "navy military jacket" @@ -453,7 +448,6 @@ icon_state = "militaryjacket_navy" item_state_slots = list(slot_r_hand_str = "suit_navy", slot_l_hand_str = "suit_navy") flags_inv = HIDEHOLSTER - index = 1 /obj/item/clothing/suit/storage/miljacket/black name = "black military jacket" @@ -461,7 +455,6 @@ icon_state = "militaryjacket_black" item_state_slots = list(slot_r_hand_str = "suit_black", slot_l_hand_str = "suit_black") flags_inv = HIDEHOLSTER - index = 1 /obj/item/clothing/suit/storage/miljacket/white name = "white military jacket" @@ -469,7 +462,6 @@ icon_state = "militaryjacket_white" item_state_slots = list(slot_r_hand_str = "med_dep_jacket", slot_l_hand_str = "med_dep_jacket") flags_inv = HIDEHOLSTER - index = 1 /obj/item/clothing/suit/storage/toggle/bomber name = "bomber jacket" diff --git a/code/modules/clothing/suits/miscellaneous_vr.dm b/code/modules/clothing/suits/miscellaneous_vr.dm index 6a6554b51c..8febb11143 100644 --- a/code/modules/clothing/suits/miscellaneous_vr.dm +++ b/code/modules/clothing/suits/miscellaneous_vr.dm @@ -4,16 +4,16 @@ /obj/item/clothing/suit/chiton name = "chiton" desc = "A traditional piece of clothing from Greece." - icon = 'icons/obj/clothing/suits_vr.dmi' + icon = 'icons/inventory/suit/item_vr.dmi' icon_state = "chiton" - icon_override = 'icons/mob/suit_vr.dmi' + icon_override = 'icons/inventory/suit/mob_vr.dmi' /obj/item/clothing/suit/oversize name = "oversized t-shirt" desc = "This ain't your daddy's shirt! Well, it might be..." - icon = 'icons/obj/clothing/suits_vr.dmi' + icon = 'icons/inventory/suit/item_vr.dmi' icon_state = "oversize" - icon_override = 'icons/mob/suit_vr.dmi' + icon_override = 'icons/inventory/suit/mob_vr.dmi' //HERE BE TAUR RELATED CLOTHES @@ -88,24 +88,50 @@ /obj/item/clothing/suit/storage/det_trench/alt name = "sleek modern coat" desc = "A sleek overcoat made of neo-laminated fabric. Has a reasonably sized pocket on the inside." - icon = 'icons/obj/clothing/suits_vr.dmi' - icon_override = 'icons/mob/suit_vr.dmi' + + icon = 'icons/inventory/suit/item_vr.dmi' + default_worn_icon = 'icons/inventory/suit/mob_vr.dmi' icon_state = "cyberpunksleek" - item_state = "cyberpunksleek" /obj/item/clothing/suit/storage/det_trench/alt2 name = "sleek modern coat (long)" desc = "A sleek long overcoat made of neo-laminated fabric. Has a reasonably sized pocket on the inside." - icon = 'icons/obj/clothing/suits_vr.dmi' - icon_override = 'icons/mob/suit_vr.dmi' + + icon = 'icons/inventory/suit/item_vr.dmi' + default_worn_icon = 'icons/inventory/suit/mob_vr.dmi' icon_state = "cyberpunksleek_long" - item_state = "cyberpunksleek_long" + +/obj/item/clothing/suit/storage/det_trench/alt/black + icon_state = "cyberpunksleek_black" + +/obj/item/clothing/suit/storage/det_trench/alt2/black + icon_state = "cyberpunksleek_long_black" //Talon Hoodie /obj/item/clothing/suit/storage/toggle/hoodie/talon name = "ITV hoodie" desc = "A warm, blue sweatshirt bearing ITV markings." - icon = 'icons/obj/clothing/suits_vr.dmi' - icon_override = 'icons/mob/suit_vr.dmi' + icon = 'icons/inventory/suit/item_vr.dmi' + icon_override = 'icons/inventory/suit/mob_vr.dmi' icon_state = "talonhoodie" - item_state_slots = list(slot_r_hand_str = "suit_blue", slot_l_hand_str = "suit_blue") \ No newline at end of file + item_state_slots = list(slot_r_hand_str = "suit_blue", slot_l_hand_str = "suit_blue") + +// Bladerunner coat +/obj/item/clothing/suit/storage/bladerunner + name = "leather coat" + desc = "An old leather coat. Has probably seen things you wouldn't believe." + + icon = 'icons/inventory/suit/item_vr.dmi' + default_worn_icon = 'icons/inventory/suit/mob_vr.dmi' + icon_state = "bladerunner_coat" + +// Cyberpunk 'orange' vest +/obj/item/clothing/suit/cyberpunk + name = "cyberpunk vest" + desc = "A red vest with golden streaks. It's made out of tough materials, and can protect fairly well against bullets. Wake the fuck up, Samurai." + + icon = 'icons/inventory/suit/item_vr.dmi' + default_worn_icon = 'icons/inventory/suit/mob_vr.dmi' + icon_state = "cyberpunk" + armor = list("melee" = 10, "bullet" = 20, "laser" = 10, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0) + diff --git a/code/modules/clothing/suits/solgov.dm b/code/modules/clothing/suits/solgov.dm index 73463c002c..a20ce165ee 100644 --- a/code/modules/clothing/suits/solgov.dm +++ b/code/modules/clothing/suits/solgov.dm @@ -1,8 +1,8 @@ //SolGov Uniform Suits /obj/item/clothing/suit/storage/solgov name = "master solgov jacket" - icon = 'icons/obj/clothing/suits_solgov.dmi' - icon_override = 'icons/mob/suit_solgov.dmi' + icon = 'icons/inventory/suit/item.dmi' + icon_override = 'icons/inventory/suit/mob.dmi' //Service @@ -262,8 +262,8 @@ desc = "A uniform dress jacket, fancy." icon_state = "blackdress" item_state = "blackdress" - icon = 'icons/obj/clothing/suits_solgov.dmi' - icon_override = 'icons/mob/suit_solgov.dmi' + icon = 'icons/inventory/suit/item.dmi' + icon_override = 'icons/inventory/suit/mob.dmi' body_parts_covered = UPPER_TORSO|ARMS armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) siemens_coefficient = 0.9 @@ -293,8 +293,8 @@ /obj/item/clothing/suit/storage/hooded/wintercoat/solgov name = "\improper SifGuard winter coat" icon_state = "coatec" - icon = 'icons/obj/clothing/suits_solgov.dmi' - icon_override = 'icons/mob/suit_solgov.dmi' + icon = 'icons/inventory/suit/item.dmi' + icon_override = 'icons/inventory/suit/mob.dmi' armor = list(melee = 25, bullet = 10, laser = 5, energy = 10, bomb = 20, bio = 0, rad = 10) valid_accessory_slots = (ACCESSORY_SLOT_INSIGNIA|ACCESSORY_SLOT_RANK) @@ -344,8 +344,8 @@ desc = "An Stealth Assault Enterprises . Black and undecorated." icon_state = "terranservice" item_state = "terranservice" - icon = 'icons/obj/clothing/suits_solgov.dmi' - icon_override = 'icons/mob/suit_solgov.dmi' + icon = 'icons/inventory/suit/item.dmi' + icon_override = 'icons/inventory/suit/mob.dmi' /obj/item/clothing/suit/storage/saare/service/command name = "SAARE command coat" @@ -360,8 +360,8 @@ desc = "A Stealth Assault Enterprises uniform dress jacket, fancy." icon_state = "terrandress" item_state = "terrandress" - icon = 'icons/obj/clothing/suits_solgov.dmi' - icon_override = 'icons/mob/suit_solgov.dmi' + icon = 'icons/inventory/suit/item.dmi' + icon_override = 'icons/inventory/suit/mob.dmi' body_parts_covered = UPPER_TORSO|ARMS armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) siemens_coefficient = 0.9 diff --git a/code/modules/clothing/suits/utility.dm b/code/modules/clothing/suits/utility.dm index 0dde614e04..fb1494f4bc 100644 --- a/code/modules/clothing/suits/utility.dm +++ b/code/modules/clothing/suits/utility.dm @@ -103,15 +103,15 @@ /obj/item/clothing/suit/radiation/teshari name = "Small radiation suit" desc = "A specialist suit that protects against radiation, designed specifically for use by Teshari. Made to order by Aether." - icon = 'icons/obj/clothing/species/teshari/suits.dmi' - icon_override = 'icons/mob/species/teshari/suit.dmi' + icon = 'icons/inventory/suit/item_teshari.dmi' + icon_override = 'icons/inventory/suit/mob_teshari.dmi' icon_state = "rad_fitted" species_restricted = list(SPECIES_TESHARI) /obj/item/clothing/head/radiation/teshari name = "Small radiation hood" desc = "A specialist hood with radiation protective properties, designed specifically for use by Teshari. Made to order by Aether." - icon = 'icons/obj/clothing/species/teshari/hats.dmi' - icon_override = 'icons/mob/species/teshari/head.dmi' + icon = 'icons/inventory/suit/item_teshari.dmi' + icon_override = 'icons/inventory/head/mob_teshari.dmi' icon_state = "rad_fitted" species_restricted = list(SPECIES_TESHARI) \ No newline at end of file diff --git a/code/modules/clothing/suits/utility_vr.dm b/code/modules/clothing/suits/utility_vr.dm index 2463e1de7d..f12e54ee63 100644 --- a/code/modules/clothing/suits/utility_vr.dm +++ b/code/modules/clothing/suits/utility_vr.dm @@ -5,8 +5,8 @@ /obj/item/clothing/suit/storage/toggle/paramedic name = "paramedic vest" desc = "A vest that protects against minor chemical spills." - icon = 'icons/obj/clothing/suits_vr.dmi' - icon_override = 'icons/mob/suit_vr.dmi' + icon = 'icons/inventory/suit/item_vr.dmi' + icon_override = 'icons/inventory/suit/mob_vr.dmi' icon_state = "paramedic-vest" item_state = "paramedic-vest" item_state_slots = list(slot_r_hand_str = "blue_labcoat", slot_l_hand_str = "blue_labcoat") @@ -15,18 +15,17 @@ flags_inv = HIDEHOLSTER allowed = list(/obj/item/device/analyzer,/obj/item/stack/medical,/obj/item/weapon/dnainjector,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/hypospray,/obj/item/device/healthanalyzer,/obj/item/device/flashlight/pen,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/storage/pill_bottle,/obj/item/weapon/paper) armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0) - index = 1 /obj/item/clothing/head/radiation sprite_sheets = list( - SPECIES_TESHARI = 'icons/mob/species/teshari/head_ch.dmi', //CHOMPstation edit, using our overwrite icons - SPECIES_VOX = 'icons/mob/species/vox/head.dmi', - SPECIES_WEREBEAST = 'icons/mob/species/werebeast/head.dmi' + SPECIES_TESHARI = 'icons/inventory/head/mob_ch_teshari.dmi', //CHOMPstation edit, using our overwrite icons + SPECIES_VOX = 'icons/inventory/head/mob_vox.dmi', + SPECIES_WEREBEAST = 'icons/inventory/head/mob_werebeast.dmi' ) /obj/item/clothing/suit/radiation sprite_sheets = list( - SPECIES_TESHARI = 'icons/mob/species/teshari/suit_ch.dmi', //CHOMPstation edit, using our overwrite icons - SPECIES_VOX = 'icons/mob/species/vox/suit.dmi', - SPECIES_WEREBEAST = 'icons/mob/species/werebeast/suit.dmi' + SPECIES_TESHARI = 'icons/inventory/suit/mob_ch_teshari.dmi', //CHOMPstation edit, using our overwrite icons + SPECIES_VOX = 'icons/inventory/suit/mob_vox.dmi', + SPECIES_WEREBEAST = 'icons/inventory/suit/mob_werebeast.dmi' ) diff --git a/code/modules/clothing/under/accessories/accessory.dm b/code/modules/clothing/under/accessories/accessory.dm index 3b4001154c..00e2b47795 100644 --- a/code/modules/clothing/under/accessories/accessory.dm +++ b/code/modules/clothing/under/accessories/accessory.dm @@ -1,7 +1,7 @@ /obj/item/clothing/accessory name = "tie" desc = "A neosilk clip-on tie." - icon = 'icons/obj/clothing/ties.dmi' + icon = 'icons/inventory/accessory/item.dmi' icon_state = "bluetie" item_state_slots = list(slot_r_hand_str = "", slot_l_hand_str = "") appearance_flags = RESET_COLOR // Stops has_suit's color from being multiplied onto the accessory @@ -15,7 +15,7 @@ var/concealed_holster = 0 var/mob/living/carbon/human/wearer = null // To check if the wearer changes, so species spritesheets change properly. var/list/on_rolled = list() // Used when jumpsuit sleevels are rolled ("rolled" entry) or it's rolled down ("down"). Set to "none" to hide in those states. - sprite_sheets = list(SPECIES_TESHARI = 'icons/mob/species/teshari/ties.dmi') //Teshari can into webbing, too! + sprite_sheets = list(SPECIES_TESHARI = 'icons/inventory/accessory/mob_teshari.dmi') //Teshari can into webbing, too! drop_sound = 'sound/items/drop/accessory.ogg' pickup_sound = 'sound/items/pickup/accessory.ogg' @@ -365,7 +365,7 @@ /obj/item/clothing/accessory/bracelet name = "bracelet" desc = "A simple silver bracelet with a clasp." - icon = 'icons/obj/clothing/ties.dmi' + icon = 'icons/inventory/accessory/item.dmi' icon_state = "bracelet" w_class = ITEMSIZE_TINY slot_flags = SLOT_TIE diff --git a/code/modules/clothing/under/accessories/accessory_vr.dm b/code/modules/clothing/under/accessories/accessory_vr.dm index aa76755117..68a0598f13 100644 --- a/code/modules/clothing/under/accessories/accessory_vr.dm +++ b/code/modules/clothing/under/accessories/accessory_vr.dm @@ -6,15 +6,15 @@ name = "plain choker" slot_flags = SLOT_TIE | SLOT_OCLOTHING desc = "A simple, plain choker. Or maybe it's a collar? Use in-hand to customize it." - icon = 'icons/obj/clothing/ties_vr.dmi' - icon_override = 'icons/mob/ties_vr.dmi' + icon = 'icons/inventory/accessory/item_vr.dmi' + icon_override = 'icons/inventory/accessory/mob_vr.dmi' icon_state = "choker_cst" item_state = "choker_cst" overlay_state = "choker_cst" var/customized = 0 var/icon_previous_override sprite_sheets = list( - SPECIES_TESHARI = 'icons/mob/species/teshari/ties_vr.dmi' + SPECIES_TESHARI = 'icons/inventory/accessory/mob_vr_teshari.dmi' ) //Forces different sprite sheet on equip @@ -58,14 +58,14 @@ /obj/item/clothing/accessory/collar slot_flags = SLOT_TIE | SLOT_OCLOTHING - icon = 'icons/obj/clothing/ties_vr.dmi' - icon_override = 'icons/mob/ties_vr.dmi' + icon = 'icons/inventory/accessory/item_vr.dmi' + icon_override = 'icons/inventory/accessory/mob_vr.dmi' icon_state = "collar_blk" var/writtenon = 0 var/icon_previous_override sprite_sheets = list( - SPECIES_TESHARI = 'icons/mob/species/teshari/ties_vr.dmi' - ) + SPECIES_TESHARI = 'icons/inventory/accessory/mob_vr_teshari.dmi' + ) //Forces different sprite sheet on equip /obj/item/clothing/accessory/collar/New() @@ -380,8 +380,8 @@ desc = "A silver medal awarded to a group which has demonstrated exceptional teamwork to achieve a notable feat." /obj/item/clothing/accessory/medal/silver/unity/tabiranth - icon = 'icons/obj/clothing/ties_vr.dmi' - icon_override = 'icons/mob/ties_vr.dmi' + icon = 'icons/inventory/accessory/item_vr.dmi' + icon_override = 'icons/inventory/accessory/mob_vr.dmi' icon_state = "silverthree" item_state = "silverthree" overlay_state = "silverthree" @@ -390,8 +390,8 @@ /obj/item/clothing/accessory/talon name = "ITV pin" desc = "A collectable enamel pin that resembles ITV's company logo." - icon = 'icons/obj/clothing/ties_vr.dmi' - icon_override = 'icons/mob/ties_vr.dmi' + icon = 'icons/inventory/accessory/item_vr.dmi' + icon_override = 'icons/inventory/accessory/mob_vr.dmi' icon_state = "talon_pin" item_state = "talonpin" overlay_state = "talonpin" diff --git a/code/modules/clothing/under/accessories/armor.dm b/code/modules/clothing/under/accessories/armor.dm index 79a603b9aa..b4e748713f 100644 --- a/code/modules/clothing/under/accessories/armor.dm +++ b/code/modules/clothing/under/accessories/armor.dm @@ -397,7 +397,7 @@ /obj/item/clothing/accessory/armor/helmcover name = "helmet cover" desc = "A fabric cover for armored helmets." - icon_override = 'icons/mob/ties.dmi' + icon_override = 'icons/inventory/accessory/mob.dmi' icon = 'icons/obj/clothing/modular_armor.dmi' icon_state = "helmcover_blue" slot = ACCESSORY_SLOT_HELM_C diff --git a/code/modules/clothing/under/accessories/clothing.dm b/code/modules/clothing/under/accessories/clothing.dm index 683fa72118..2b94585029 100644 --- a/code/modules/clothing/under/accessories/clothing.dm +++ b/code/modules/clothing/under/accessories/clothing.dm @@ -48,7 +48,7 @@ desc = "A simple, comfortable poncho." icon_state = "classicponcho" item_state = "classicponcho" - icon_override = 'icons/mob/ties.dmi' + icon_override = 'icons/inventory/accessory/mob.dmi' var/fire_resist = T0C+100 allowed = list(/obj/item/weapon/tank/emergency/oxygen) armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) @@ -58,14 +58,14 @@ w_class = ITEMSIZE_NORMAL slot = ACCESSORY_SLOT_OVER sprite_sheets = list( - SPECIES_TESHARI = 'icons/mob/species/teshari/suit.dmi' + SPECIES_TESHARI = 'icons/inventory/suit/mob_teshari.dmi' ) //YWEdit Start, Makes ponchos use teshari sprite /obj/item/clothing/accessory/poncho/get_worn_icon_file(var/body_type,var/slot_name,var/default_icon,var/inhands) if(body_type == SPECIES_TESHARI) if(!inhands) - return 'icons/mob/species/teshari/suit.dmi' + return 'icons/inventory/suit/mob_teshari.dmi' else return ..() //YWEdit end @@ -75,9 +75,9 @@ var/mob/living/carbon/human/H = loc if(istype(H) && H.wear_suit == src) if(H.species.name == SPECIES_TESHARI) - icon_override = 'icons/mob/species/teshari/suit.dmi' + icon_override = 'icons/inventory/suit/mob_teshari.dmi' else - icon_override = 'icons/mob/ties.dmi' + icon_override = 'icons/inventory/accessory/mob.dmi' update_clothing_icon() /obj/item/clothing/accessory/poncho/dropped() //Resets the override to prevent the wrong .dmi from being used because equipped only triggers when wearing ponchos as suits. @@ -271,7 +271,7 @@ desc = "For some classy, murderous fun." icon_state = "vest" item_state = "vest" - icon_override = 'icons/mob/ties.dmi' + icon_override = 'icons/inventory/accessory/mob.dmi' item_state_slots = list(slot_r_hand_str = "wcoat", slot_l_hand_str = "wcoat") allowed = list(/obj/item/weapon/pen, /obj/item/weapon/paper, /obj/item/device/flashlight, /obj/item/weapon/tank/emergency/oxygen, /obj/item/weapon/storage/fancy/cigarettes, /obj/item/weapon/storage/box/matches, /obj/item/weapon/reagent_containers/food/drinks/flask) armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) @@ -322,7 +322,7 @@ /obj/item/clothing/accessory/sweater name = "sweater" desc = "A warm knit sweater." - icon_override = 'icons/mob/ties.dmi' + icon_override = 'icons/inventory/accessory/mob.dmi' icon_state = "sweater" slot_flags = SLOT_OCLOTHING | SLOT_TIE body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS diff --git a/code/modules/clothing/under/accessories/holster_vr.dm b/code/modules/clothing/under/accessories/holster_vr.dm index f99e798faa..8cd7681dd9 100644 --- a/code/modules/clothing/under/accessories/holster_vr.dm +++ b/code/modules/clothing/under/accessories/holster_vr.dm @@ -6,11 +6,11 @@ /obj/item/clothing/accessory/holster/machete/rapier name = "rapier sheath" desc = "A beautiful red sheath, probably for a beautiful blade." - icon = 'icons/obj/clothing/ties_vr.dmi' + icon = 'icons/inventory/accessory/item_vr.dmi' icon_state = "sheath" slot_flags = SLOT_BELT|ACCESSORY_SLOT_WEAPON var/has_full_icon = 1 - icon_override = 'icons/mob/ties_vr.dmi' + icon_override = 'icons/inventory/accessory/mob_vr.dmi' overlay_state = "sheath" can_hold = list(/obj/item/weapon/melee/rapier) diff --git a/code/modules/clothing/under/extrauniforms_yw.dm b/code/modules/clothing/under/extrauniforms_yw.dm index 724848172f..00fe06deb8 100644 --- a/code/modules/clothing/under/extrauniforms_yw.dm +++ b/code/modules/clothing/under/extrauniforms_yw.dm @@ -24,7 +24,7 @@ desc = "Sturdy mess of black synthcotton belts and buckles." icon_state = "pilot_webbing2" sprite_sheets = list( - "Teshari" = 'icons/mob/species/teshari/ties.dmi' + "Teshari" = 'icons/inventory/accessory/mob_teshari.dmi' ) /obj/item/clothing/under/rank/khi/sec/pilot //yes, we're inheriting from the khi version; that one has full rolldown sprites diff --git a/code/modules/clothing/under/imperial_vr.dm b/code/modules/clothing/under/imperial_vr.dm index 9cffdb56fd..855cd0b50c 100644 --- a/code/modules/clothing/under/imperial_vr.dm +++ b/code/modules/clothing/under/imperial_vr.dm @@ -1,6 +1,6 @@ /obj/item/clothing/under/imperial desc = "imperial military jumpsuit" - icon = 'icons/obj/clothing/uniforms_vr.dmi' - icon_override = 'icons/mob/uniform_vr.dmi' + icon = 'icons/inventory/uniform/item_vr.dmi' + icon_override = 'icons/inventory/uniform/mob_vr.dmi' icon_state = "crimson" item_state = "crimson" \ 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 f77ec96a54..87346c6741 100644 --- a/code/modules/clothing/under/jobs/medsci.dm +++ b/code/modules/clothing/under/jobs/medsci.dm @@ -122,6 +122,15 @@ rolled_sleeves = -1 /obj/item/clothing/under/rank/medical/paramedic + name = "paramedic uniform" + desc = "It's made of a special fiber that provides minor protection against biohazards. This one is the color scheme that designates a rapid first responder." + icon_state = "paramedic" + item_state_slots = list(slot_r_hand_str = "white", slot_l_hand_str = "white") + body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS + rolled_down = -1 + rolled_sleeves = -1 + +/obj/item/clothing/under/rank/medical/paramedic_alt name = "short sleeve medical jumpsuit" desc = "It's made of a special fiber that provides minor protection against biohazards. This one has a cross on the chest denoting that the wearer is trained medical personnel." icon_state = "medical_short" @@ -164,7 +173,6 @@ desc = "It's made of a special fiber that provides minor protection against biohazards" icon_state = "scrubs" item_state_slots = list(slot_r_hand_str = "white", slot_l_hand_str = "white") - index = 1 /obj/item/clothing/under/rank/psych desc = "A basic white jumpsuit. It has turqouise markings that denote the wearer as a psychiatrist." diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index 80eba8000d..0f2b43c380 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -357,7 +357,6 @@ name = "maid costume" desc = "Maid in China." icon_state = "maid" - index = 1 /obj/item/clothing/under/dress/maid/janitor name = "maid uniform" @@ -539,38 +538,32 @@ name = "revealing dress" desc = "A very revealing black and blue dress. Is this work appropriate?" icon_state = "revealingdress" - index = 1 /obj/item/clothing/under/dress/gothic name = "gothic dress" desc = "A black dress with a sheer mesh over it, tastefully old school goth." icon_state = "gothic" - index = 1 /obj/item/clothing/under/dress/formalred name = "formal red dress" desc = "A very formal red dress, for those fancy galas." icon_state = "formalred" flags_inv = HIDESHOES - index = 1 /obj/item/clothing/under/dress/pentagram name = "pentagram dress" desc = "A black dress with straps over the chest in the shape of a pentagram." icon_state = "pentagram" - index = 1 /obj/item/clothing/under/dress/yellowswoop name = "yellow swooped dress" desc = "A yellow dress that swoops to the side." icon_state = "yellowswoop" - index = 1 /obj/item/clothing/under/dress/countess name = "countess dress" desc = "A red and black dress fit for a countess." icon_state = "countess" - index = 1 /* * wedding stuff @@ -614,13 +607,11 @@ desc = "A lovely floofed out dress for formal occasions. Comes in many colors!" icon_state = "floofdress" flags_inv = HIDESHOES - index = 1 /obj/item/clothing/under/wedding/whitegown name = "white gown" desc = "A elegant white gown with accents of sheer mesh." icon_state = "whitegown" - index = 1 /* Uniforms and such @@ -643,48 +634,41 @@ Uniforms and such desc = "A cute pink sundress." icon_state = "pinksun" body_parts_covered = UPPER_TORSO|LOWER_TORSO - index = 1 /obj/item/clothing/under/dress/sundress_white name = "white sundress" desc = "A white sundress, it's short." icon_state = "whitesun" body_parts_covered = UPPER_TORSO|LOWER_TORSO - index = 1 /obj/item/clothing/under/dress/sundress_pinkbow name = "bowed pink sundress" desc = "A cute pink sundress with a bow." icon_state = "bowsun" body_parts_covered = UPPER_TORSO|LOWER_TORSO - index = 1 /obj/item/clothing/under/dress/sundress_blue name = "long blue sundress" desc = "A long blue sun dress with white frills towards the bottom." icon_state = "bluesun" body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS - index = 1 /obj/item/clothing/under/dress/sundress_pinkshort name = "short pink sundress" desc = "A very short pink sundress, it's more like a chemise." icon_state = "shortpink" body_parts_covered = UPPER_TORSO|LOWER_TORSO - index = 1 /obj/item/clothing/under/dress/twopiece name = "two-piece dress" desc = "A fancy two-piece dress, the pieces are sewn together." icon_state = "twopiece" body_parts_covered = UPPER_TORSO|LOWER_TORSO - index = 1 /obj/item/clothing/under/dress/gothic2 name = "lacey gothic dress" desc = "An elegant gothic dress with lace decorations." icon_state = "gothic2" - index = 1 /obj/item/clothing/under/captainformal name = "site manager's formal uniform" @@ -869,43 +853,36 @@ Uniforms and such name = "ripped punk jeans" desc = "Black ripped jeans and a fishnet top. How punk." icon_state = "rippedpunk" - index = 1 /obj/item/clothing/under/greenasym name = "green asymmetrical jumpsuit" desc = "A green futuristic uniform with asymmetrical pants. Trendy!" icon_state = "greenasym" - index = 1 /obj/item/clothing/under/cyberpunkharness name = "cyberpunk strapped harness" desc = "A cyberpunk styled harness and pants. Perfect for your dystopian future." icon_state = "cyberhell" - index = 1 /obj/item/clothing/under/blackngold name = "black and gold gown" desc = "A black and gold gown. You get the impression this is typically worn for religious purposes." icon_state = "blackngold" - index = 1 /obj/item/clothing/under/sheerblue name = "sheer blue dress" desc = "An entirely sheer blue dress. Best worn with something underneath!" icon_state = "sheerblue" - index = 1 /obj/item/clothing/under/disheveled name = "disheveled suit" desc = "What might pass as well maintained formal attire. If you're blind." icon_state = "disheveled" - index = 1 /obj/item/clothing/under/flower_skirt name = "flower skirt" desc = "A flowery skirt that comes in a variety of colors." icon_state = "flowerskirt" - index = 1 /* * swimsuit diff --git a/code/modules/clothing/under/miscellaneous_vr.dm b/code/modules/clothing/under/miscellaneous_vr.dm index 577c1cb003..ef3c67103a 100644 --- a/code/modules/clothing/under/miscellaneous_vr.dm +++ b/code/modules/clothing/under/miscellaneous_vr.dm @@ -18,8 +18,8 @@ /obj/item/clothing/under/hyperfiber name = "HYPER jumpsuit" - icon = 'icons/obj/clothing/uniforms_vr.dmi' - icon_override = 'icons/mob/uniform_vr.dmi' + icon = 'icons/inventory/uniform/item_vr.dmi' + icon_override = 'icons/inventory/uniform/mob_vr.dmi' icon_state = "hyper" item_icons = list( slot_l_hand_str = 'icons/mob/items/lefthand_uniforms.dmi', @@ -122,8 +122,8 @@ /obj/item/clothing/under/dress/qipao name = "qipao" desc = "A type of feminine body-hugging dress with distinctive Chinese features of Manchu origin." - icon = 'icons/obj/clothing/uniforms_vr.dmi' - icon_override = 'icons/mob/uniform_vr.dmi' + icon = 'icons/inventory/uniform/item_vr.dmi' + icon_override = 'icons/inventory/uniform/mob_vr.dmi' icon_state = "qipao" item_state = "qipao" @@ -140,9 +140,8 @@ /obj/item/clothing/under/pizzaguy name = "pizza delivery uniform" desc = "A dedicated outfit for pizza delivery people, one of most dangerous occupations around these parts. Can be rolled up for extra show of skin." - icon = 'icons/obj/clothing/uniforms_vr.dmi' - index = "vr" - rolled_down_icon = 'icons/mob/uniform_rolled_down_vr.dmi' + icon = 'icons/inventory/uniform/item_vr.dmi' + rolled_down_icon = 'icons/inventory/uniform/mob_vr_rolled_down.dmi' icon_state = "pizzadelivery" item_state = "pizzadelivery" rolled_down = 0 @@ -152,10 +151,9 @@ /obj/item/clothing/under/rank/talon/basic name = "ITV jumpsuit" desc = "A basic jumpsuit that bares the ITV logo on the breast." - icon = 'icons/obj/clothing/uniforms_vr.dmi' - index = "vr" - rolled_down_icon = 'icons/mob/uniform_rolled_down_vr.dmi' - icon_override = 'icons/mob/uniform_vr.dmi' + icon = 'icons/inventory/uniform/item_vr.dmi' + rolled_down_icon = 'icons/inventory/uniform/mob_vr_rolled_down.dmi' + icon_override = 'icons/inventory/uniform/mob_vr.dmi' icon_state = "talon_basic" item_state = "talon_basic" rolled_sleeves = 0 @@ -163,10 +161,9 @@ /obj/item/clothing/under/rank/talon/proper name = "ITV proper jumpsuit" desc = "A neat and proper uniform for a proper company." - icon = 'icons/obj/clothing/uniforms_vr.dmi' - index = "vr" - rolled_down_icon = 'icons/mob/uniform_rolled_down_vr.dmi' - icon_override = 'icons/mob/uniform_vr.dmi' + icon = 'icons/inventory/uniform/item_vr.dmi' + rolled_down_icon = 'icons/inventory/uniform/mob_vr_rolled_down.dmi' + icon_override = 'icons/inventory/uniform/mob_vr.dmi' icon_state = "talon_jumpsuit" item_state = "talon_jumpsuit" rolled_sleeves = 0 @@ -174,10 +171,9 @@ /obj/item/clothing/under/rank/talon/security name = "ITV security jumpsuit" desc = "A sleek, streamlined version of ITV's standard jumpsuit that bares security markings." - icon = 'icons/obj/clothing/uniforms_vr.dmi' - index = "vr" - rolled_down_icon = 'icons/mob/uniform_rolled_down_vr.dmi' - icon_override = 'icons/mob/uniform_vr.dmi' + icon = 'icons/inventory/uniform/item_vr.dmi' + rolled_down_icon = 'icons/inventory/uniform/mob_vr_rolled_down.dmi' + icon_override = 'icons/inventory/uniform/mob_vr.dmi' icon_state = "talon_security" item_state = "talon_security" rolled_sleeves = 0 @@ -185,10 +181,9 @@ /obj/item/clothing/under/rank/talon/pilot name = "ITV pilot jumpsuit" desc = "A sleek, streamlined version of ITV's standard jumpsuit. Made from cushioned fabric to handle intense flight." - icon = 'icons/obj/clothing/uniforms_vr.dmi' - index = "vr" - rolled_down_icon = 'icons/mob/uniform_rolled_down_vr.dmi' - icon_override = 'icons/mob/uniform_vr.dmi' + icon = 'icons/inventory/uniform/item_vr.dmi' + rolled_down_icon = 'icons/inventory/uniform/mob_vr_rolled_down.dmi' + icon_override = 'icons/inventory/uniform/mob_vr.dmi' icon_state = "talon_pilot" item_state = "talon_pilot" rolled_sleeves = 0 @@ -196,10 +191,37 @@ /obj/item/clothing/under/rank/talon/command name = "ITV command jumpsuit" desc = "A commanding jumpsuit fit for a commanding officer." - icon = 'icons/obj/clothing/uniforms_vr.dmi' - index = "vr" - rolled_down_icon = 'icons/mob/uniform_rolled_down_vr.dmi' - icon_override = 'icons/mob/uniform_vr.dmi' + icon = 'icons/inventory/uniform/item_vr.dmi' + rolled_down_icon = 'icons/inventory/uniform/mob_vr_rolled_down.dmi' + icon_override = 'icons/inventory/uniform/mob_vr.dmi' icon_state = "talon_captain" item_state = "talon_captain" - rolled_sleeves = 0 \ No newline at end of file + rolled_sleeves = 0 + +// Excelsior uniforms +/obj/item/clothing/under/excelsior + name = "\improper Excelsior uniform" + desc = "A uniform from a particular spaceship: Excelsior." + + icon = 'icons/inventory/uniform/item_vr.dmi' + default_worn_icon = 'icons/inventory/uniform/mob_vr.dmi' + icon_state = "excelsior_white" + +/obj/item/clothing/under/excelsior/mixed + icon_state = "excelsior_mixed" +/obj/item/clothing/under/excelsior/orange + icon_state = "excelsior_orange" + +// Summer dresses +/obj/item/clothing/under/summerdress + name = "summer dress" + desc = "A nice summer dress." + + icon = 'icons/inventory/uniform/item_vr.dmi' + default_worn_icon = 'icons/inventory/uniform/mob_vr.dmi' + icon_state = "summerdress" + +/obj/item/clothing/under/summerdress/red + icon_state = "summerdress3" +/obj/item/clothing/under/summerdress/blue + icon_state = "summerdress2" diff --git a/code/modules/clothing/under/nanotrasen_vr.dm b/code/modules/clothing/under/nanotrasen_vr.dm index 65dee31347..9375efd71e 100644 --- a/code/modules/clothing/under/nanotrasen_vr.dm +++ b/code/modules/clothing/under/nanotrasen_vr.dm @@ -3,9 +3,9 @@ /obj/item/clothing/under/nanotrasen name = "NanoTrasen uniform" desc = "A comfortable turtleneck and black trousers sporting nanotrasen symbols." - icon = 'icons/obj/clothing/uniforms_solgov.dmi' - icon_override = 'icons/mob/uniform_solgov.dmi' - item_icons = list(slot_w_uniform_str = 'icons/mob/uniform_solgov.dmi', slot_r_hand_str = "black", slot_l_hand_str = "black") + icon = 'icons/inventory/uniform/item.dmi' + icon_override = 'icons/inventory/uniform/mob.dmi' + item_icons = list(slot_w_uniform_str = 'icons/inventory/uniform/mob.dmi', slot_r_hand_str = "black", slot_l_hand_str = "black") icon_state = "blackutility" worn_state = "blackutility" armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) diff --git a/code/modules/clothing/under/pants.dm b/code/modules/clothing/under/pants.dm index 1af0517ab0..035aac4cf8 100644 --- a/code/modules/clothing/under/pants.dm +++ b/code/modules/clothing/under/pants.dm @@ -5,7 +5,6 @@ icon_state = "jeans" gender = PLURAL body_parts_covered = LOWER_TORSO|LEGS - index = 1 /obj/item/clothing/under/pants/ripped name = "ripped jeans" diff --git a/code/modules/clothing/under/shorts.dm b/code/modules/clothing/under/shorts.dm index 0d6516cc8e..d168ddc1eb 100644 --- a/code/modules/clothing/under/shorts.dm +++ b/code/modules/clothing/under/shorts.dm @@ -5,7 +5,6 @@ icon_state = "redshorts" // Hackyfix for icon states until someone wants to come do a recolor later. gender = PLURAL body_parts_covered = LOWER_TORSO - index = 1 /obj/item/clothing/under/shorts/red name = "red athletic shorts" @@ -101,7 +100,6 @@ icon_state = "skirt_short_black" body_parts_covered = LOWER_TORSO rolled_sleeves = -1 - index = 1 /obj/item/clothing/under/skirt/khaki name = "khaki skirt" @@ -168,14 +166,12 @@ desc = "It's a jumpskirt worn by the quartermaster. It's specially designed to prevent back injuries caused by pushing paper." icon_state = "qmf" item_state_slots = list(slot_r_hand_str = "qm", slot_l_hand_str = "qm") - index = 1 /obj/item/clothing/under/rank/cargotech/skirt name = "cargo technician's jumpskirt" desc = "Skirrrrrts! They're comfy and easy to wear!" icon_state = "cargof" item_state_slots = list(slot_r_hand_str = "cargo", slot_l_hand_str = "cargo") - index = 1 /obj/item/clothing/under/rank/engineer/skirt desc = "It's an orange high visibility jumpskirt worn by engineers. It has minor radiation shielding." @@ -183,61 +179,51 @@ icon_state = "enginef" armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 10) item_state_slots = list(slot_r_hand_str = "engine", slot_l_hand_str = "engine") - index = 1 /obj/item/clothing/under/rank/chief_engineer/skirt desc = "It's a high visibility jumpskirt given to those engineers insane enough to achieve the rank of \"Chief engineer\". It has minor radiation shielding." name = "chief engineer's jumpskirt" icon_state = "chieff" item_state_slots = list(slot_r_hand_str = "chiefengineer", slot_l_hand_str = "chiefengineer") - index = 1 /obj/item/clothing/under/rank/atmospheric_technician/skirt desc = "It's a jumpskirt worn by atmospheric technicians." name = "atmospheric technician's jumpskirt" icon_state = "atmosf" item_state_slots = list(slot_r_hand_str = "atmos", slot_l_hand_str = "atmos") - index = 1 /obj/item/clothing/under/rank/roboticist/skirt desc = "It's a slimming black jumpskirt with reinforced seams; great for industrial work." name = "roboticist's jumpskirt" icon_state = "roboticsf" item_state_slots = list(slot_r_hand_str = "robotics", slot_l_hand_str = "robotics") - index = 1 /obj/item/clothing/under/rank/scientist/skirt name = "scientist's jumpskirt" icon_state = "sciencef" permeability_coefficient = 0.50 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 0, rad = 0) - index = 1 /obj/item/clothing/under/rank/medical/skirt name = "medical doctor's jumpskirt" icon_state = "medicalf" - index = 1 /obj/item/clothing/under/rank/chemist/skirt name = "chemist's jumpskirt" icon_state = "chemistryf" - index = 1 /obj/item/clothing/under/rank/chief_medical_officer/skirt desc = "It's a jumpskirt worn by those with the experience to be \"Chief Medical Officer\". It provides minor biological protection." name = "chief medical officer's jumpskirt" icon_state = "cmof" - index = 1 /obj/item/clothing/under/rank/geneticist/skirt name = "geneticist's jumpskirt" icon_state = "geneticsf" - index = 1 /obj/item/clothing/under/rank/virologist/skirt name = "virologist's jumpskirt" icon_state = "virologyf" - index = 1 /obj/item/clothing/under/rank/security/skirt name = "security officer's jumpskirt" @@ -245,16 +231,13 @@ icon_state = "securityf" armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) siemens_coefficient = 0.9 - index = 1 /obj/item/clothing/under/rank/warden/skirt desc = "Standard feminine fashion for a Warden. It is made of sturdier material than standard jumpskirts. It has the word \"Warden\" written on the shoulders." name = "warden's jumpskirt" icon_state = "wardenf" - index = 1 /obj/item/clothing/under/rank/head_of_security/skirt desc = "It's a fashionable jumpskirt worn by those few with the dedication to achieve the position of \"Head of Security\". It has additional armor to protect the wearer." name = "head of security's jumpskirt" icon_state = "hosf" - index = 1 \ No newline at end of file diff --git a/code/modules/clothing/under/solgov.dm b/code/modules/clothing/under/solgov.dm index cd2c111098..5854c006e2 100644 --- a/code/modules/clothing/under/solgov.dm +++ b/code/modules/clothing/under/solgov.dm @@ -4,8 +4,8 @@ /obj/item/clothing/under/solgov name = "master solgov uniform" desc = "You shouldn't be seeing this." - icon = 'icons/obj/clothing/uniforms_solgov.dmi' - item_icons = list(slot_w_uniform_str = 'icons/mob/uniform_solgov.dmi') + icon = 'icons/inventory/uniform/item.dmi' + item_icons = list(slot_w_uniform_str = 'icons/inventory/uniform/mob.dmi') rolled_down = 0 rolled_sleeves = 0 armor = list(melee = 5, bullet = 0, laser = 5, energy = 5, bomb = 0, bio = 5, rad = 5) @@ -474,8 +474,8 @@ /obj/item/clothing/under/saare name = "master SAARE uniform" desc = "You shouldn't be seeing this." - icon = 'icons/obj/clothing/uniforms_solgov.dmi' - item_icons = list(slot_w_uniform_str = 'icons/mob/uniform_solgov.dmi') + icon = 'icons/inventory/uniform/item.dmi' + item_icons = list(slot_w_uniform_str = 'icons/inventory/uniform/mob.dmi') armor = list(melee = 5, bullet = 0, laser = 5, energy = 5, bomb = 0, bio = 5, rad = 5) siemens_coefficient = 0.8 diff --git a/code/modules/clothing/under/solgov_vr.dm b/code/modules/clothing/under/solgov_vr.dm index dc2190f991..0cbaf0b339 100644 --- a/code/modules/clothing/under/solgov_vr.dm +++ b/code/modules/clothing/under/solgov_vr.dm @@ -57,16 +57,16 @@ /obj/item/clothing/under/solgov/utility/army/olive name = "olive fatigues" desc = "An olive version of the USDF marine utility uniform, made from durable material." //YW EDIT: TCG to USDF - icon = 'icons/obj/clothing/uniforms_vr.dmi' - icon_override = 'icons/mob/uniform_vr.dmi' + icon = 'icons/inventory/uniform/item_vr.dmi' + icon_override = 'icons/inventory/uniform/mob_vr.dmi' icon_state = "bdu_olive" item_state = "bdu_olive" /obj/item/clothing/under/solgov/utility/army/desert name = "desert fatigues" desc = "A desert version of the USDF marine utility uniform, made from durable material." //YW EDIT: TCG to USDF - icon = 'icons/obj/clothing/uniforms_vr.dmi' - icon_override = 'icons/mob/uniform_vr.dmi' + icon = 'icons/inventory/uniform/item_vr.dmi' + icon_override = 'icons/inventory/uniform/mob_vr.dmi' icon_state = "bdu_olive" item_state = "bdu_olive" diff --git a/code/modules/clothing/under/xenos/teshari.dm b/code/modules/clothing/under/xenos/teshari.dm index 044559db26..b70a6cacbf 100644 --- a/code/modules/clothing/under/xenos/teshari.dm +++ b/code/modules/clothing/under/xenos/teshari.dm @@ -1,5 +1,5 @@ /obj/item/clothing/under/teshari - icon = 'icons/obj/clothing/species/teshari/uniform.dmi' + icon = 'icons/inventory/uniform/item_teshari.dmi' icon_state = "seromi_grey" species_restricted = list(SPECIES_TESHARI) @@ -134,8 +134,6 @@ /obj/item/clothing/under/teshari/undercoat name = "Undercoat" desc = "A Teshari traditional garb, with a modern twist! Made of micro and nanofibres to make it light and billowy, perfect for going fast and stylishly!" - icon = 'icons/mob/species/teshari/teshari_uniform.dmi' - icon_override = 'icons/mob/species/teshari/teshari_uniform.dmi' icon_state = "tesh_uniform_bo" item_state = "tesh_uniform_bo" body_parts_covered = UPPER_TORSO|LOWER_TORSO @@ -256,11 +254,6 @@ item_state = "tesh_uniform_brg" //Job Undercoats - -/obj/item/clothing/under/teshari/undercoat/jobs - icon = 'icons/mob/species/teshari/deptjacket.dmi' - icon_override = 'icons/mob/species/teshari/deptjacket.dmi' - /obj/item/clothing/under/teshari/undercoat/jobs/cap name = "facility director undercoat" desc = "A traditional Teshari garb made for the Facility Director" diff --git a/code/modules/economy/vending_machines.dm b/code/modules/economy/vending_machines.dm index 7d4d9270ea..dfd693afd2 100644 --- a/code/modules/economy/vending_machines.dm +++ b/code/modules/economy/vending_machines.dm @@ -1156,6 +1156,7 @@ /obj/item/clothing/head/surgery/black = 5, /obj/item/clothing/shoes/white = 5, /obj/item/clothing/suit/storage/toggle/labcoat = 5, + /obj/item/clothing/suit/storage/toggle/labcoat/modern = 5, /obj/item/clothing/mask/surgical = 5, /obj/item/clothing/suit/storage/hooded/wintercoat/medical = 5, /obj/item/clothing/shoes/boots/winter/medical = 5 @@ -1227,6 +1228,7 @@ /obj/item/clothing/under/rank/scientist/skirt = 5, /obj/item/clothing/under/rank/scientist/turtleneck = 5, /obj/item/clothing/suit/storage/toggle/labcoat = 5, + /obj/item/clothing/suit/storage/toggle/labcoat/modern = 5, /obj/item/clothing/shoes/white = 5, /obj/item/clothing/shoes/slippers = 5, /obj/item/clothing/suit/storage/hooded/wintercoat/science = 5, @@ -1348,6 +1350,7 @@ /obj/item/clothing/under/rank/cargotech/jeans = 5, /obj/item/clothing/under/rank/cargotech/jeans/female = 5, /obj/item/clothing/suit/storage/hooded/wintercoat/cargo = 5, + /obj/item/clothing/suit/storage/cargo = 5, /obj/item/clothing/shoes/boots/winter/supply = 5, /obj/item/clothing/shoes/black = 5, /obj/item/clothing/gloves/black = 5, diff --git a/code/modules/events/carp_migration.dm b/code/modules/events/carp_migration.dm index f573614666..77612bbd25 100644 --- a/code/modules/events/carp_migration.dm +++ b/code/modules/events/carp_migration.dm @@ -6,6 +6,9 @@ var/list/spawned_carp = list() /datum/event/carp_migration/setup() + if(prob(50)) + kill() + return announceWhen = rand(30, 60) // 1 to 2 minutes endWhen += severity * 25 carp_cap = 2 + 3 ** severity // No more than this many at once regardless of waves. (5, 11, 29) diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm index 8e262bb69f..bf83e28bf7 100644 --- a/code/modules/hydroponics/grown.dm +++ b/code/modules/hydroponics/grown.dm @@ -138,7 +138,7 @@ if("[seed.get_trait(TRAIT_PRODUCT_ICON)]-leaf" in cached_icon_states('icons/obj/hydroponics_products.dmi')) var/image/fruit_leaves = image('icons/obj/hydroponics_products.dmi',"[seed.get_trait(TRAIT_PRODUCT_ICON)]-leaf") fruit_leaves.color = "[seed.get_trait(TRAIT_PLANT_COLOUR)]" - add_overlay(fruit_leaves) + plant_icon.add_overlay(fruit_leaves) SSplants.plant_icon_cache[icon_key] = plant_icon add_overlay(plant_icon) diff --git a/code/modules/integrated_electronics/core/assemblies/clothing.dm b/code/modules/integrated_electronics/core/assemblies/clothing.dm index 98af46f71d..d881d7bd4a 100644 --- a/code/modules/integrated_electronics/core/assemblies/clothing.dm +++ b/code/modules/integrated_electronics/core/assemblies/clothing.dm @@ -156,7 +156,7 @@ name = "electronic earwear" desc = "It's a wearable case for electronics. This one appears to be a technical-looking headset." description_info = "Control-shift-click on this with an item in hand to use it on the integrated circuit." - icon = 'icons/obj/clothing/ears.dmi' + icon = 'icons/inventory/ears/item.dmi' icon_state = "circuitry" item_state = "circuitry" diff --git a/code/modules/materials/fifty_spawner_mats.dm b/code/modules/materials/fifty_spawner_mats.dm index af2e3703e8..24f3985c4a 100644 --- a/code/modules/materials/fifty_spawner_mats.dm +++ b/code/modules/materials/fifty_spawner_mats.dm @@ -104,6 +104,10 @@ name = "stack of cloth" type_to_spawn = /obj/item/stack/material/cloth +/obj/fiftyspawner/fiber + name = "stack of plant fibers" + type_to_spawn = /obj/item/stack/material/fiber + /obj/fiftyspawner/cardboard name = "stack of cardboard" type_to_spawn = /obj/item/stack/material/cardboard diff --git a/code/modules/materials/materials/organic/cloth.dm b/code/modules/materials/materials/organic/cloth.dm index 317f8779bf..f286f22d99 100644 --- a/code/modules/materials/materials/organic/cloth.dm +++ b/code/modules/materials/materials/organic/cloth.dm @@ -128,3 +128,16 @@ melting_point = T0C+300 protectiveness = 1 // 4% conductive = 0 + +/datum/material/fibers + name = MAT_FIBERS + display_name = "plant" + sheet_singular_name = "fiber" + sheet_singular_name = "fibers" + icon_colour = "#006b0e" + flags = MATERIAL_PADDING + ignition_point = T0C+232 + melting_point = T0C+300 + protectiveness = 1 // 4% + conductive = 0 + pass_stack_colors = TRUE diff --git a/code/modules/materials/sheets/organic/textiles.dm b/code/modules/materials/sheets/organic/textiles.dm index a534ee19b1..8e5594eaa0 100644 --- a/code/modules/materials/sheets/organic/textiles.dm +++ b/code/modules/materials/sheets/organic/textiles.dm @@ -11,6 +11,7 @@ /obj/item/stack/material/cloth name = "cloth" + desc = "Individual fibers woven into a cloth." icon_state = "sheet-cloth" default_type = "cloth" no_variants = FALSE @@ -21,3 +22,13 @@ /obj/item/stack/material/cloth/diyaab color = "#c6ccf0" + +/obj/item/stack/material/fiber + name = "plant fiber" + desc = "Some all-natural plant fibers." + icon_state = "sheet-fiber" + default_type = MAT_FIBERS + pass_color = TRUE + apply_colour = TRUE + drop_sound = 'sound/items/drop/clothing.ogg' + pickup_sound = 'sound/items/pickup/clothing.ogg' diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index f90b3c0b7e..3af97e5e75 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -82,6 +82,30 @@ var/list/mining_overlay_cache = list() rock_icon_state = "rock-light" random_icon = 1 +/turf/simulated/mineral/alt + icon_state = "rock-alt" + rock_side_icon_state = "rock_side-alt" + sand_icon_state = "asteroid" + rock_icon_state = "rock-alt" + +/turf/simulated/mineral/icey + icon_state = "rock-icey" + rock_side_icon_state = "rock_side-icey" + sand_icon_state = "sand-icey" // to be replaced + rock_icon_state = "rock-icey" + +/turf/simulated/mineral/crystal + icon_state = "rock-crystal" + rock_side_icon_state = "rock_side-crystal" + sand_icon_state = "sand-icey" // to be replaced + rock_icon_state = "rock-crystal" + +/turf/simulated/mineral/crystal_shiny + icon_state = "rock-crystal-shiny" + rock_side_icon_state = "rock_side-crystal" + sand_icon_state = "sand-icey" // to be replaced + rock_icon_state = "rock-crystal-shiny" + /turf/simulated/mineral/ignore_mapgen ignore_mapgen = 1 @@ -99,6 +123,10 @@ var/list/mining_overlay_cache = list() icon_state = "sand-light" sand_icon_state = "sand-light" +/turf/simulated/mineral/floor/icey + icon_state = "sand-icey" + sand_icon_state = "sand-icey" // to be replaced + /turf/simulated/mineral/floor/light_border icon_state = "sand-light-border" sand_icon_state = "sand-light-border" diff --git a/code/modules/mob/dead/observer/observer_vr.dm b/code/modules/mob/dead/observer/observer_vr.dm index df68f41851..1fb9d913c9 100644 --- a/code/modules/mob/dead/observer/observer_vr.dm +++ b/code/modules/mob/dead/observer/observer_vr.dm @@ -73,7 +73,7 @@ else if((world.time - record.last_notification) < 5 MINUTES) to_chat(src, "Too little time has passed since your last notification.") else - db.notify(record.mindname) + db.notify(record) record.last_notification = world.time to_chat(src, "New notification has been sent.") else diff --git a/code/modules/mob/holder.dm b/code/modules/mob/holder.dm index 088a7dda78..3848a6c413 100644 --- a/code/modules/mob/holder.dm +++ b/code/modules/mob/holder.dm @@ -11,8 +11,8 @@ var/list/holder_mob_icon_cache = list() show_messages = 1 sprite_sheets = list( - SPECIES_TESHARI = 'icons/mob/species/teshari/head.dmi', - SPECIES_VOX = 'icons/mob/species/vox/head.dmi' + SPECIES_TESHARI = 'icons/inventory/head/mob_teshari.dmi', + SPECIES_VOX = 'icons/inventory/head/mob_vox.dmi' ) origin_tech = null diff --git a/code/modules/mob/living/carbon/human/human_species.dm b/code/modules/mob/living/carbon/human/human_species.dm index 3c6451fc99..29b8155366 100644 --- a/code/modules/mob/living/carbon/human/human_species.dm +++ b/code/modules/mob/living/carbon/human/human_species.dm @@ -22,6 +22,17 @@ . = ..() delete_inventory() +/mob/living/carbon/human/dummy/mannequin/autoequip + icon = 'icons/effects/species.dmi' + icon_state = "lizard_f_s_full" + +/mob/living/carbon/human/dummy/mannequin/autoequip/Initialize() + icon = null + icon_state = "" + . = ..() + for(var/obj/item/I in loc) + equip_to_appropriate_slot(I) + /mob/living/carbon/human/skrell/Initialize(var/new_loc) h_style = "Skrell Short Tentacles" return ..(new_loc, SPECIES_SKRELL) diff --git a/code/modules/mob/living/carbon/human/say.dm b/code/modules/mob/living/carbon/human/say.dm index e4303081e3..8d2ca00ef5 100644 --- a/code/modules/mob/living/carbon/human/say.dm +++ b/code/modules/mob/living/carbon/human/say.dm @@ -129,6 +129,11 @@ message_data[2] = pick(M.say_verbs) . = 1 + if(CE_SPEEDBOOST in chem_effects || is_jittery) // motor mouth + for(var/datum/multilingual_say_piece/S in message_data[1]) + S.message = replacetext(S.message," ","") + S.message = replacetext(S.message,",","") + S.message = replacetext(S.message,";","") else . = ..(message_data) diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index 8fa5824715..d63681898d 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -16,7 +16,7 @@ var/speech_bubble_appearance = "normal" // Part of icon_state to use for speech bubbles when talking. See talk.dmi for available icons. var/fire_icon_state = "humanoid" // The icon_state used inside OnFire.dmi for when on fire. - var/suit_storage_icon = 'icons/mob/belt_mirror.dmi' // Icons used for worn items in suit storage slot. + var/suit_storage_icon = 'icons/inventory/suit_store/mob.dmi' // Icons used for worn items in suit storage slot. var/pixel_offset_x = 0 // CHOMPedit. Used for offsetting 64x64 and up icons. var/pixel_offset_y = 0 // CHOMPedit. Used for offsetting 64x64 and up icons. @@ -110,7 +110,7 @@ var/alcohol_mod = 1 // Multiplier to alcohol strength; 0.5 = half, 0 = no effect at all, 2 = double, etc. var/pain_mod = 1 // Multiplier to pain effects; 0.5 = half, 0 = no effect (equal to NO_PAIN, really), 2 = double, etc. var/spice_mod = 1 // Multiplier to spice/capsaicin/frostoil effects; 0.5 = half, 0 = no effect (immunity), 2 = double, etc. - var/trauma_mod = 1 // Affects traumatic shock (how fast pain crit happens). 0 = no effect (immunity to pain crit), 2 = double etc.Overriden by "can_feel_pain" var + var/trauma_mod = 1 // Affects traumatic shock (how fast pain crit happens). 0 = no effect (immunity to pain crit), 2 = double etc.Overriden by "can_feel_pain" var // set below is EMP interactivity for nonsynth carbons var/emp_sensitivity = 0 // bitflag. valid flags are: EMP_PAIN, EMP_BLIND, EMP_DEAFEN, EMP_CONFUSE, EMP_STUN, and EMP_(BRUTE/BURN/TOX/OXY)_DMG var/emp_dmg_mod = 1 // Multiplier to all EMP damage sustained by the mob, if it's EMP-sensitive @@ -431,6 +431,8 @@ H.visible_message( \ "[H] boops [target]'s nose.", \ "You boop [target] on the nose.", ) + else if(H.zone_sel.selecting == BP_GROIN) //CHOMPEdit + H.vore_bellyrub(target) //VOREStation Edit End else H.visible_message("[H] hugs [target] to make [t_him] feel better!", \ diff --git a/code/modules/mob/living/carbon/human/species/station/alraune.dm b/code/modules/mob/living/carbon/human/species/station/alraune.dm index 77092eeccb..e7151b9608 100644 --- a/code/modules/mob/living/carbon/human/species/station/alraune.dm +++ b/code/modules/mob/living/carbon/human/species/station/alraune.dm @@ -49,8 +49,8 @@ flags = NO_SCAN | IS_PLANT | NO_MINOR_CUT appearance_flags = HAS_HAIR_COLOR | HAS_LIPS | HAS_UNDERWEAR | HAS_SKIN_COLOR | HAS_EYE_COLOR - inherent_verbs = list( - /mob/living/carbon/human/proc/alraune_fruit_select) //Give them the voremodes related to wrapping people in vines and sapping their fluids + inherent_verbs = list(/mob/living/carbon/human/proc/alraune_fruit_select, //Give them the voremodes related to wrapping people in vines and sapping their fluids + /mob/living/carbon/human/proc/tie_hair) color_mult = 1 icobase = 'icons/mob/human_races/r_human_vr.dmi' diff --git a/code/modules/mob/living/carbon/human/species/station/blank_vr.dm b/code/modules/mob/living/carbon/human/species/station/blank_vr.dm index ed84be3121..af626ee68b 100644 --- a/code/modules/mob/living/carbon/human/species/station/blank_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/blank_vr.dm @@ -25,6 +25,7 @@ health_hud_intensity = 2 num_alternate_languages = 3 assisted_langs = list(LANGUAGE_EAL, LANGUAGE_ROOTLOCAL, LANGUAGE_ROOTGLOBAL, LANGUAGE_VOX) + inherent_verbs = list(/mob/living/carbon/human/proc/tie_hair) genders = list(MALE, FEMALE, PLURAL, NEUTER) diff --git a/code/modules/mob/living/carbon/human/species/station/station.dm b/code/modules/mob/living/carbon/human/species/station/station.dm index 568196fd7d..1bd96fae47 100644 --- a/code/modules/mob/living/carbon/human/species/station/station.dm +++ b/code/modules/mob/living/carbon/human/species/station/station.dm @@ -633,7 +633,9 @@ if(isturf(H.loc)) //else, there's considered to be no light var/turf/T = H.loc light_amount = T.get_lumcount() * 10 - H.adjust_nutrition(light_amount) + // Don't overfeed, just make them full without going over. + if((H.nutrition + light_amount) < initial(H.nutrition)) + H.adjust_nutrition(light_amount) H.shock_stage -= light_amount if(light_amount >= 3) //if there's enough light, heal diff --git a/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm b/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm index 0bb05f1af9..290bb6766a 100644 --- a/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm @@ -27,7 +27,8 @@ /mob/living/carbon/human/proc/sonar_ping, /mob/living/carbon/human/proc/tie_hair, /mob/living/proc/flying_toggle, - /mob/living/proc/start_wings_hovering) //Xenochimera get all the special verbs since they can't select traits. + /mob/living/proc/start_wings_hovering, + /mob/living/carbon/human/proc/tie_hair) //Xenochimera get all the special verbs since they can't select traits. virus_immune = 1 // They practically ARE one. min_age = 18 @@ -337,7 +338,8 @@ /mob/living/carbon/human/proc/toggle_silk_production, /mob/living/carbon/human/proc/weave_structure, /mob/living/carbon/human/proc/weave_item, - /mob/living/carbon/human/proc/set_silk_color) + /mob/living/carbon/human/proc/set_silk_color, + /mob/living/carbon/human/proc/tie_hair) min_age = 18 max_age = 80 diff --git a/code/modules/mob/living/carbon/human/species/station/station_vr.dm b/code/modules/mob/living/carbon/human/species/station/station_vr.dm index 42b93294f4..6b51d9db8a 100644 --- a/code/modules/mob/living/carbon/human/species/station/station_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/station_vr.dm @@ -15,6 +15,7 @@ secondary_langs = list(LANGUAGE_SAGARU) name_language = LANGUAGE_SAGARU color_mult = 1 + inherent_verbs = list(/mob/living/carbon/human/proc/tie_hair) min_age = 18 max_age = 110 @@ -84,7 +85,7 @@ name_language = LANGUAGE_SKRELLIAN color_mult = 1 assisted_langs = list(LANGUAGE_EAL, LANGUAGE_ROOTLOCAL, LANGUAGE_ROOTGLOBAL, LANGUAGE_VOX) - + inherent_verbs = list(/mob/living/carbon/human/proc/tie_hair) min_age = 18 max_age = 110 @@ -135,8 +136,9 @@ secondary_langs = list(LANGUAGE_BIRDSONG) name_language = LANGUAGE_BIRDSONG color_mult = 1 - inherent_verbs = list(/mob/living/proc/flying_toggle,/mob/living/proc/start_wings_hovering) - + inherent_verbs = list(/mob/living/proc/flying_toggle, + /mob/living/proc/start_wings_hovering, + /mob/living/carbon/human/proc/tie_hair) min_age = 18 max_age = 110 @@ -181,7 +183,9 @@ num_alternate_languages = 3 secondary_langs = list(LANGUAGE_TERMINUS) name_language = LANGUAGE_TERMINUS - inherent_verbs = list(/mob/living/carbon/human/proc/lick_wounds) + inherent_verbs = list(/mob/living/carbon/human/proc/lick_wounds, + /mob/living/proc/shred_limb, + /mob/living/carbon/human/proc/tie_hair) assisted_langs = list(LANGUAGE_EAL, LANGUAGE_SKRELLIAN, LANGUAGE_SKRELLIANFAR, LANGUAGE_ROOTLOCAL, LANGUAGE_ROOTGLOBAL, LANGUAGE_VOX) //AEIOU edit: Zorren can speak Terminus unassisted. min_age = 18 @@ -218,7 +222,6 @@ "You feel uncomfortably warm.", "Your overheated skin itches." ) - inherent_verbs = list(/mob/living/proc/shred_limb) /datum/species/vulpkanin name = SPECIES_VULPKANIN @@ -237,7 +240,8 @@ // gluttonous = 1 num_alternate_languages = 3 color_mult = 1 - inherent_verbs = list(/mob/living/carbon/human/proc/lick_wounds) + inherent_verbs = list(/mob/living/carbon/human/proc/lick_wounds, + /mob/living/carbon/human/proc/tie_hair) male_scream_sound = null //CHOMPedit female_scream_sound = null //CHOMPedit @@ -274,6 +278,7 @@ tail_animation = 'icons/mob/species/unathi/tail_vr.dmi' color_mult = 1 min_age = 18 + inherent_verbs = list(/mob/living/carbon/human/proc/tie_hair) gluttonous = 0 inherent_verbs = list(/mob/living/proc/shred_limb) genders = list(MALE, FEMALE, PLURAL, NEUTER) @@ -289,6 +294,7 @@ tail_animation = 'icons/mob/species/tajaran/tail_vr.dmi' color_mult = 1 min_age = 18 + inherent_verbs = list(/mob/living/carbon/human/proc/tie_hair) allergens = null gluttonous = 0 //Moving this here so I don't have to fix this conflict every time polaris glances at station.dm inherent_verbs = list(/mob/living/carbon/human/proc/lick_wounds) @@ -305,6 +311,7 @@ deform = 'icons/mob/human_races/r_def_skrell_vr.dmi' color_mult = 1 min_age = 18 + inherent_verbs = list(/mob/living/carbon/human/proc/tie_hair) reagent_tag = null allergens = null assisted_langs = list(LANGUAGE_EAL, LANGUAGE_ROOTLOCAL, LANGUAGE_ROOTGLOBAL, LANGUAGE_VOX) @@ -316,6 +323,7 @@ /datum/species/zaddat spawn_flags = SPECIES_CAN_JOIN min_age = 18 + inherent_verbs = list(/mob/living/carbon/human/proc/tie_hair) //I don't even know if Zaddat can HAVE hair, but here we are, I suppose gluttonous = 0 genders = list(MALE, FEMALE, PLURAL, NEUTER) descriptors = list() @@ -365,8 +373,9 @@ /datum/species/vox gluttonous = 0 - spawn_flags = SPECIES_CAN_JOIN | SPECIES_IS_WHITELISTED | SPECIES_WHITELIST_SELECTABLE //CHOMPStation Edit TFF 20/1/20 - restore whitelist requirement - min_age = 18 + spawn_flags = SPECIES_CAN_JOIN | SPECIES_IS_WHITELISTED | SPECIES_WHITELIST_SELECTABLE //CHOMPStation Edit + min_age = 18 + inherent_verbs = list(/mob/living/carbon/human/proc/tie_hair) //Get ya quills done did icobase = 'icons/mob/human_races/r_vox_old.dmi' deform = 'icons/mob/human_races/r_def_vox_old.dmi' descriptors = list( @@ -389,7 +398,7 @@ name_language = null color_mult = 1 genders = list(MALE, FEMALE, PLURAL, NEUTER) - inherent_verbs = list(/mob/living/proc/flying_toggle,/mob/living/proc/start_wings_hovering) + inherent_verbs = list(/mob/living/proc/flying_toggle,/mob/living/proc/start_wings_hovering,/mob/living/carbon/human/proc/tie_hair) min_age = 18 max_age = 80 @@ -544,7 +553,7 @@ num_alternate_languages = 3 secondary_langs = list(LANGUAGE_TERMINUS) name_language = LANGUAGE_TERMINUS - inherent_verbs = list(/mob/living/carbon/human/proc/lick_wounds) + inherent_verbs = list(/mob/living/carbon/human/proc/lick_wounds,/mob/living/proc/shred_limb,/mob/living/carbon/human/proc/tie_hair) min_age = 18 max_age = 80 @@ -561,7 +570,6 @@ base_color = "#333333" blood_color = "#240bc4" color_mult = 1 - inherent_verbs = list(/mob/living/proc/shred_limb) heat_discomfort_strings = list( "Your fur prickles in the heat.", diff --git a/code/modules/mob/living/carbon/human/species/station/teshari.dm b/code/modules/mob/living/carbon/human/species/station/teshari.dm index 3bc2e8cd5c..df8f757a53 100644 --- a/code/modules/mob/living/carbon/human/species/station/teshari.dm +++ b/code/modules/mob/living/carbon/human/species/station/teshari.dm @@ -43,7 +43,7 @@ damage_overlays = 'icons/mob/human_races/masks/dam_teshari.dmi' damage_mask = 'icons/mob/human_races/masks/dam_mask_teshari.dmi' blood_mask = 'icons/mob/human_races/masks/blood_teshari.dmi' - suit_storage_icon = 'icons/mob/species/teshari/belt_mirror.dmi' + suit_storage_icon = 'icons/inventory/suit_store/mob_teshari.dmi' fire_icon_state = "generic" // Humanoid is too big for them and spriting a new one is really annoying. diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 4fb4c88fc2..2c6c9e0e70 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -641,11 +641,10 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon() var/obj/item/clothing/under/under = w_uniform var/uniform_sprite - - if(under.index) - uniform_sprite = "[INV_W_UNIFORM_DEF_ICON]_[under.index].dmi" + if(istype(under) && !isnull(under.update_icon_define)) + uniform_sprite = under.update_icon_define else - uniform_sprite = "[INV_W_UNIFORM_DEF_ICON].dmi" + uniform_sprite = INV_W_UNIFORM_DEF_ICON //Build a uniform sprite var/icon/c_mask = tail_style?.clip_mask @@ -824,12 +823,10 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon() var/obj/item/clothing/suit/suit = wear_suit var/suit_sprite - if(istype(suit) && suit.index) - suit_sprite = "[INV_SUIT_DEF_ICON]_[suit.index].dmi" - else if(istype(suit, /obj/item/clothing) && !isnull(suit.update_icon_define)) + if(istype(suit) && !isnull(suit.update_icon_define)) suit_sprite = suit.update_icon_define else - suit_sprite = "[INV_SUIT_DEF_ICON].dmi" + suit_sprite = INV_SUIT_DEF_ICON var/icon/c_mask = null var/tail_is_rendered = (overlays_standing[TAIL_LAYER] || overlays_standing[TAIL_LAYER_ALT]) diff --git a/code/modules/mob/living/simple_mob/defense.dm b/code/modules/mob/living/simple_mob/defense.dm index b0d622cb20..09d6fc7335 100644 --- a/code/modules/mob/living/simple_mob/defense.dm +++ b/code/modules/mob/living/simple_mob/defense.dm @@ -16,6 +16,9 @@ switch(L.a_intent) if(I_HELP) if(health > 0) + if(L.zone_sel.selecting == BP_GROIN) //CHOMPEdit + if(L.vore_bellyrub(src)) + return L.visible_message("\The [L] [response_help] \the [src].") if(I_DISARM) diff --git a/code/modules/mob/living/simple_mob/on_click.dm b/code/modules/mob/living/simple_mob/on_click.dm index 4b824c9580..74b0236c13 100644 --- a/code/modules/mob/living/simple_mob/on_click.dm +++ b/code/modules/mob/living/simple_mob/on_click.dm @@ -14,6 +14,9 @@ switch(a_intent) if(I_HELP) if(isliving(A)) + if(src.zone_sel.selecting == BP_GROIN) //CHOMPEdit + if(src.vore_bellyrub(A)) + return custom_emote(1,"[pick(friendly)] \the [A]!") if(I_HURT) diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/hyena/hyena.dm b/code/modules/mob/living/simple_mob/subtypes/animal/hyena/hyena.dm index 81d86900b8..4d6b6d0e1d 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/hyena/hyena.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/hyena/hyena.dm @@ -161,7 +161,7 @@ They're also cool, and Rykka/Nyria wrote this uwu ..() if(hat) var/hat_state = hat.item_state ? hat.item_state : hat.icon_state - var/image/I = image('icons/mob/head.dmi', src, hat_state) + var/image/I = image('icons/inventory/head/mob.dmi', src, hat_state) I.pixel_y = -15 // Hyenas are smol! - TODO: Test this. I.appearance_flags = RESET_COLOR - add_overlay(I) \ No newline at end of file + add_overlay(I) diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/passive/armadillo_ch.dm b/code/modules/mob/living/simple_mob/subtypes/animal/passive/armadillo_ch.dm index 3d029a1c66..0e3d3e8d0e 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/passive/armadillo_ch.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/passive/armadillo_ch.dm @@ -61,7 +61,7 @@ // Hat simulator. if(hat) var/hat_state = hat.item_state ? hat.item_state : hat.icon_state - var/image/I = image('icons/mob/head.dmi', src, hat_state) + var/image/I = image('icons/inventory/head/mob.dmi', src, hat_state) I.pixel_y = -7 // Smol I.appearance_flags = RESET_COLOR add_overlay(I) @@ -155,4 +155,4 @@ message = lowertext(message) if(findtext(message, "grande")) bol.resize(bol.size_multiplier + 0.01) - return \ No newline at end of file + return diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/sif/racoon.dm b/code/modules/mob/living/simple_mob/subtypes/animal/sif/racoon.dm index a11c85ade8..a94bdb2659 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/sif/racoon.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/sif/racoon.dm @@ -144,7 +144,7 @@ ..() if(hat) var/hat_state = hat.item_state ? hat.item_state : hat.icon_state - var/image/I = image('icons/mob/head.dmi', src, hat_state) + var/image/I = image('icons/inventory/head/mob.dmi', src, hat_state) I.pixel_y = -15 // Sakimm are tiny! I.appearance_flags = RESET_COLOR add_overlay(I) diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/vox.dm b/code/modules/mob/living/simple_mob/subtypes/animal/vox.dm index 69a774ca1e..f049ce1221 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/vox.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/vox.dm @@ -154,7 +154,7 @@ name = "strange armour" desc = "Hulking reinforced armour for something huge." - icon = 'icons/obj/clothing/suits.dmi' + icon = 'icons/inventory/suit/item.dmi' icon_state = "armalis_armour" item_state = "armalis_armour" @@ -162,6 +162,6 @@ name = "strange lenses" desc = "A series of metallic lenses and chains." - icon = 'icons/obj/clothing/hats.dmi' + icon = 'icons/inventory/head/item.dmi' icon_state = "amp" item_state = "amp" diff --git a/code/modules/mob/living/simple_mob/subtypes/slime/slime.dm b/code/modules/mob/living/simple_mob/subtypes/slime/slime.dm index ade53adebc..f210835b18 100644 --- a/code/modules/mob/living/simple_mob/subtypes/slime/slime.dm +++ b/code/modules/mob/living/simple_mob/subtypes/slime/slime.dm @@ -136,7 +136,7 @@ var/list/_slime_default_emotes = list( // Hat simulator. if(hat) var/hat_state = hat.item_state ? hat.item_state : hat.icon_state - var/image/I = image('icons/mob/head.dmi', src, hat_state) + var/image/I = image('icons/inventory/head/mob.dmi', src, hat_state) I.pixel_y = -7 // Slimes are small. I.appearance_flags = RESET_COLOR add_overlay(I) diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/otie.dm b/code/modules/mob/living/simple_mob/subtypes/vore/otie.dm index af2d00404e..04e995d7d1 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/otie.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/otie.dm @@ -274,11 +274,15 @@ switch(M.a_intent) if(I_HELP) if(health > 0) + if(M.zone_sel.selecting == BP_GROIN) //CHOMPEdit + if(M.vore_bellyrub(src)) + return M.visible_message("[M] [response_help] \the [src].") if(has_AI()) var/datum/ai_holder/AI = ai_holder AI.set_stance(STANCE_IDLE) if(prob(tame_chance)) + AI.violent_breakthrough = FALSE AI.hostile = FALSE friend = M AI.set_follow(friend) diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/weretiger.dm b/code/modules/mob/living/simple_mob/subtypes/vore/weretiger.dm index 7934899315..61c3d57faa 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/weretiger.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/weretiger.dm @@ -27,6 +27,7 @@ ai_holder_type = /datum/ai_holder/simple_mob/retaliate pixel_x = -16 + default_pixel_x = -16 has_hands = 1 @@ -42,4 +43,4 @@ /datum/say_list/weretiger speak = list("Gruff.","ROAR!","Growl.") emote_hear = list("growls!","grunts.") - emote_see = list("pads around noisily.","scratches the floor thoroughly.") \ No newline at end of file + emote_see = list("pads around noisily.","scratches the floor thoroughly.") diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index 5392d53b62..c2f1d635af 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -169,6 +169,7 @@ // If dead and we try to move in our mob, it leaves our body if(my_mob.stat == DEAD && isliving(my_mob) && !my_mob.forbid_seeing_deadchat) + my_mob.setMoveCooldown(my_mob.movement_delay(n, direct)) my_mob.ghostize() return diff --git a/code/modules/mob/mob_planes.dm b/code/modules/mob/mob_planes.dm index 7b1fbd6f7e..b5a94810fe 100644 --- a/code/modules/mob/mob_planes.dm +++ b/code/modules/mob/mob_planes.dm @@ -215,6 +215,7 @@ render_target = O_LIGHTING_VISUAL_RENDER_TARGET blend_mode = BLEND_MULTIPLY alpha = 255 + appearance_flags = PLANE_MASTER|NO_CLIENT_COLOR // NO_CLIENT_COLOR because it has some naughty interactions with colorblindness that I can't figure out. Byond bug? /obj/screen/plane_master/emissive plane = PLANE_EMISSIVE diff --git a/code/modules/mob/new_player/sprite_accessories_extra.dm b/code/modules/mob/new_player/sprite_accessories_extra.dm index a124eff96b..c236037388 100644 --- a/code/modules/mob/new_player/sprite_accessories_extra.dm +++ b/code/modules/mob/new_player/sprite_accessories_extra.dm @@ -498,7 +498,7 @@ /* werewolf_nose name = "Werewolf nose" - icon = 'icons/mob/species/werebeast/werebeast_markings.dmi' + icon = 'icons/inventory/werebeast_markings/mob_werebeast.dmi' icon_state = "werewolf_nose" color_blend_mode = ICON_MULTIPLY body_parts = list(BP_HEAD) @@ -506,7 +506,7 @@ werewolf_nose werewolf_face name = "Werewolf face" - icon = 'icons/mob/species/werebeast/werebeast_markings.dmi' + icon = 'icons/inventory/werebeast_markings/mob_werebeast.dmi' icon_state = "werewolf" color_blend_mode = ICON_MULTIPLY body_parts = list(BP_HEAD) @@ -514,7 +514,7 @@ werewolf_face werewolf_belly name = "Werewolf belly" - icon = 'icons/mob/species/werebeast/werebeast_markings.dmi' + icon = 'icons/inventory/werebeast_markings/mob_werebeast.dmi' icon_state = "werewolf" color_blend_mode = ICON_MULTIPLY body_parts = list(BP_GROIN,BP_TORSO) @@ -522,7 +522,7 @@ werewolf_belly werewolf_socks name = "Werewolf socks" - icon = 'icons/mob/species/werebeast/werebeast_markings.dmi' + icon = 'icons/inventory/werebeast_markings/mob_werebeast.dmi' icon_state = "werewolf" color_blend_mode = ICON_MULTIPLY body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND) diff --git a/code/modules/nifsoft/nif_tgui.dm b/code/modules/nifsoft/nif_tgui.dm index b5978242c4..7be13ceff6 100644 --- a/code/modules/nifsoft/nif_tgui.dm +++ b/code/modules/nifsoft/nif_tgui.dm @@ -55,12 +55,12 @@ screen_icon = new() RegisterSignal(screen_icon, COMSIG_CLICK, .proc/nif_menu_click) screen_icon.icon = HUD.ui_style - HUD.other += screen_icon + LAZYADD(HUD.other_important, screen_icon) user.client?.screen += screen_icon user.verbs |= /mob/living/carbon/human/proc/nif_menu -/datum/component/nif_menu/proc/nif_menu_click(obj/screen/nif/image, location, control, params, user) +/datum/component/nif_menu/proc/nif_menu_click(source, location, control, params, user) var/mob/living/carbon/human/H = user if(istype(H) && H.nif) INVOKE_ASYNC(H.nif, .proc/tgui_interact, user) diff --git a/code/modules/overmap/overmap_object.dm b/code/modules/overmap/overmap_object.dm index f79741bd3a..ad5bf60dd2 100644 --- a/code/modules/overmap/overmap_object.dm +++ b/code/modules/overmap/overmap_object.dm @@ -37,12 +37,12 @@ return ..() //Overlay of how this object should look on other skyboxes -/obj/effect/overmap/proc/get_skybox_representation() +/obj/effect/overmap/proc/get_skybox_representation(zlevel) if(!cached_skybox_image) - build_skybox_representation() + build_skybox_representation(zlevel) return cached_skybox_image -/obj/effect/overmap/proc/build_skybox_representation() +/obj/effect/overmap/proc/build_skybox_representation(zlevel) if(!skybox_icon) return var/image/I = image(icon = skybox_icon, icon_state = skybox_icon_state) diff --git a/code/modules/overmap/sectors.dm b/code/modules/overmap/sectors.dm index f9d41780f8..4b461a6a52 100644 --- a/code/modules/overmap/sectors.dm +++ b/code/modules/overmap/sectors.dm @@ -165,7 +165,7 @@ for(var/thing in restricted_waypoints[shuttle_name]) .[thing] = name -/obj/effect/overmap/visitable/proc/generate_skybox() +/obj/effect/overmap/visitable/proc/generate_skybox(zlevel) return /obj/effect/overmap/visitable/proc/cleanup() diff --git a/code/modules/projectiles/guns/energy/gunsword_vr.dm b/code/modules/projectiles/guns/energy/gunsword_vr.dm index 2b8b45a9fe..20ffc1ccea 100644 --- a/code/modules/projectiles/guns/energy/gunsword_vr.dm +++ b/code/modules/projectiles/guns/energy/gunsword_vr.dm @@ -7,7 +7,7 @@ icon_override = 'icons/vore/custom_guns_vr.dmi' item_state = "gbuster" - item_icons = list(slot_r_hand_str = 'icons/vore/custom_guns_vr.dmi', slot_l_hand_str = 'icons/vore/custom_guns_vr.dmi', "slot_belt" = 'icons/mob/belt_vr.dmi') + item_icons = list(slot_r_hand_str = 'icons/vore/custom_guns_vr.dmi', slot_l_hand_str = 'icons/vore/custom_guns_vr.dmi', "slot_belt" = 'icons/inventory/belt/mob_vr.dmi') w_class = ITEMSIZE_NORMAL origin_tech = list(TECH_COMBAT = 8, TECH_MATERIAL = 4) diff --git a/code/modules/projectiles/guns/energy/hooklauncher.dm b/code/modules/projectiles/guns/energy/hooklauncher.dm index 208f9e56e1..b9f652bf34 100644 --- a/code/modules/projectiles/guns/energy/hooklauncher.dm +++ b/code/modules/projectiles/guns/energy/hooklauncher.dm @@ -23,7 +23,7 @@ /obj/item/weapon/gun/energy/hooklauncher/ring name = "ominous ring" desc = "A small ring with strange symbols engraved upon it." - icon = 'icons/obj/clothing/rings.dmi' + icon = 'icons/inventory/hands/item.dmi' icon_state = "seal-signet" item_state = "concealed" diff --git a/code/modules/projectiles/guns/energy/laser_vr.dm b/code/modules/projectiles/guns/energy/laser_vr.dm index 3ac37978a4..91ea6a23c8 100644 --- a/code/modules/projectiles/guns/energy/laser_vr.dm +++ b/code/modules/projectiles/guns/energy/laser_vr.dm @@ -197,7 +197,7 @@ icon = 'icons/obj/gun_vr.dmi' icon_state = "phaserkill" item_state = "phaser" - item_icons = list(slot_l_hand_str = 'icons/mob/items/lefthand_guns_vr.dmi', slot_r_hand_str = 'icons/mob/items/righthand_guns_vr.dmi', "slot_belt" = 'icons/mob/belt_vr.dmi') + item_icons = list(slot_l_hand_str = 'icons/mob/items/lefthand_guns_vr.dmi', slot_r_hand_str = 'icons/mob/items/righthand_guns_vr.dmi', "slot_belt" = 'icons/inventory/belt/mob_vr.dmi') fire_sound = 'sound/weapons/laser2.ogg' origin_tech = list(TECH_COMBAT = 4, TECH_MAGNET = 2, TECH_POWER = 4) charge_cost = 300 diff --git a/code/modules/tables/tables.dm b/code/modules/tables/tables.dm index 7111cd52d7..914c478e17 100644 --- a/code/modules/tables/tables.dm +++ b/code/modules/tables/tables.dm @@ -359,24 +359,27 @@ var/list/table_icon_cache = list() // Base frame shape. Mostly done for glass/diamond tables, where this is visible. for(var/i = 1 to 4) - var/image/I = get_table_image(icon, connections[i], 1<<(i-1)) + var/image/I = get_table_image(icon, connections?[i] || 0, 1<<(i-1)) add_overlay(I) // Standard table image if(material) for(var/i = 1 to 4) - var/image/I = get_table_image(icon, "[material.icon_base]_[connections[i]]", 1<<(i-1), material.icon_colour, 255 * material.opacity) + var/connect = connections?[i] || 0 + var/image/I = get_table_image(icon, "[material.icon_base]_[connect]", 1<<(i-1), material.icon_colour, 255 * material.opacity) add_overlay(I) // Reinforcements if(reinforced) for(var/i = 1 to 4) - var/image/I = get_table_image(icon, "[reinforced.icon_reinf]_[connections[i]]", 1<<(i-1), reinforced.icon_colour, 255 * reinforced.opacity) + var/connect = connections?[i] || 0 + var/image/I = get_table_image(icon, "[reinforced.icon_reinf]_[connect]", 1<<(i-1), reinforced.icon_colour, 255 * reinforced.opacity) add_overlay(I) if(carpeted) for(var/i = 1 to 4) - var/image/I = get_table_image(icon, "carpet_[connections[i]]", 1<<(i-1)) + var/connect = connections?[i] || 0 + var/image/I = get_table_image(icon, "carpet_[connect]", 1<<(i-1)) add_overlay(I) else cut_overlays() diff --git a/code/modules/telesci/quantum_pad.dm b/code/modules/telesci/quantum_pad.dm index 490ff55f0d..6f1381a191 100644 --- a/code/modules/telesci/quantum_pad.dm +++ b/code/modules/telesci/quantum_pad.dm @@ -2,7 +2,7 @@ name = "quantum pad" desc = "A bluespace quantum-linked telepad used for teleporting objects to other quantum pads." icon = 'icons/obj/telescience.dmi' - icon_state = "qpad-idle" + icon_state = "qpad" anchored = TRUE use_power = USE_POWER_IDLE idle_power_usage = 200 @@ -26,6 +26,7 @@ connect_to_network() if(map_pad_id) mapped_quantum_pads[map_pad_id] = src + update_icon() /obj/machinery/power/quantumpad/Destroy() mapped_quantum_pads -= map_pad_id @@ -61,6 +62,7 @@ if(istype(M.connectable, /obj/machinery/power/quantumpad)) linked_pad = M.connectable to_chat(user, "You link [src] to the one in [I]'s buffer.") + update_icon() return 1 if(default_part_replacement(user, I)) @@ -73,12 +75,28 @@ /obj/machinery/power/quantumpad/update_icon() . = ..() - - if(inoperable() || panel_open) - icon_state = "pad-idle-o" + + cut_overlays() + if(panel_open) + add_overlay("qpad-panel") + + if(inoperable() || panel_open || !powernet) + icon_state = "[initial(icon_state)]-o" + else if (!linked_pad) + icon_state = "[initial(icon_state)]-b" else icon_state = initial(icon_state) +// Panel flips retry power cable connections so you don't have to decon the whole thing +/obj/machinery/power/quantumpad/default_deconstruction_screwdriver(var/mob/user, var/obj/item/S) + if((. = ..())) + var/original_powernet = powernet + if(powernet) + disconnect_from_network() + connect_to_network() + if(powernet != original_powernet) + update_icon() + /obj/machinery/power/quantumpad/attack_hand(mob/user) . = ..() if(.) @@ -133,57 +151,114 @@ ghost.forceMove(get_turf(linked_pad)) /obj/machinery/power/quantumpad/proc/doteleport(mob/user) + update_icon() if(!linked_pad) return playsound(src, 'sound/weapons/flash.ogg', 25, 1) teleporting = 1 spawn(teleport_speed) + // We gone if(!src || QDELETED(src)) teleporting = 0 return + // Broken or whatever if(inoperable()) to_chat(user, "[src] is nonfunctional!") teleporting = 0 return + // Linked pad or not, we can always re-scatter people + if(!can_traverse_gateway()) + teleporting = 0 + last_teleport = world.time + gateway_scatter(user) + return + // Nothing to teleport to if(!linked_pad || QDELETED(linked_pad) || linked_pad.inoperable()) to_chat(user, "Linked pad is not responding to ping. Teleport aborted.") teleporting = 0 return + // Insufficient power + if(!use_teleport_power()) + to_chat(user, "Power is not sufficient to complete a teleport. Teleport aborted.") + teleporting = 0 + return teleporting = 0 last_teleport = world.time - // use a lot of power - var/power_to_use = 10000 / power_efficiency - if(draw_power(power_to_use) != power_to_use) - to_chat(user, "Power is not sufficient to complete a teleport. Teleport aborted.") - return sparks() linked_pad.sparks() - flick("qpad-beam", src) + flick("qpad-beam-out", src) playsound(src, 'sound/weapons/emitter2.ogg', 25, 1, extrarange = 3, falloff = 5) - flick("qpad-beam", linked_pad) + flick("qpad-beam-in", linked_pad) playsound(linked_pad, 'sound/weapons/emitter2.ogg', 25, 1, extrarange = 3, falloff = 5) - for(var/atom/movable/ROI in get_turf(src)) - // if is anchored, don't let through - if(ROI.anchored) - if(isliving(ROI)) - var/mob/living/L = ROI - if(L.buckled) - // TP people on office chairs - if(L.buckled.anchored) - continue - else - continue - else if(!isobserver(ROI)) - continue - do_teleport(ROI, get_turf(linked_pad), local = FALSE) + + transport_objects(get_turf(linked_pad)) /obj/machinery/power/quantumpad/proc/initMappedLink() . = FALSE var/obj/machinery/power/quantumpad/link = mapped_quantum_pads[map_pad_link_id] if(link) linked_pad = link + update_icon() . = TRUE + +/obj/machinery/power/quantumpad/proc/use_teleport_power() + var/area/A = get_area(src) + // Well, I guess you can do it! + if(!A?.requires_power) + return TRUE + + // Otherwise we'll need a powernet + var/power_to_use = 10000 / power_efficiency + if(draw_power(power_to_use) != power_to_use) + return FALSE + return TRUE + +/obj/machinery/power/quantumpad/proc/transport_objects(turf/destination) + for(var/atom/movable/ROI in get_turf(src)) + // if is anchored, don't let through + if(ROI.anchored) + if(isliving(ROI)) + var/mob/living/L = ROI + if(L.buckled) + // TP people on office chairs + if(L.buckled.anchored) + continue + else + continue + else if(!isobserver(ROI)) + continue + do_teleport(ROI, destination, local = FALSE) + +/obj/machinery/power/quantumpad/proc/can_traverse_gateway() + // Well, if there's no gateway map we're definitely not on it + if(!GLOB.gateway_away) + return TRUE + + // Traverse! + if(GLOB.gateway_away.calibrated) + return TRUE + + var/list/gateway_zs = GetConnectedZlevels(GLOB.gateway_away.z) + if(z in gateway_zs) + return FALSE // It's not calibrated and we're in a connected z + + return TRUE + +/obj/machinery/power/quantumpad/proc/gateway_scatter(mob/user) + var/obj/effect/landmark/dest = pick(awaydestinations) + if(!dest) + to_chat(user, "Nothing happens... maybe there's no signal to the remote pad?") + return + // Insufficient power + if(!use_teleport_power()) + to_chat(user, "Power is not sufficient to complete a teleport. Teleport aborted.") + return + + sparks() + to_chat(user, "You feel yourself pulled in different directions, before ending up not far from where you started.") + flick("qpad-beam-out", src) + transport_objects(get_turf(dest)) diff --git a/code/modules/tgui/external.dm b/code/modules/tgui/external.dm index 9abd0adce7..ce30eb2f45 100644 --- a/code/modules/tgui/external.dm +++ b/code/modules/tgui/external.dm @@ -224,7 +224,9 @@ if(window_id) window = usr.client.tgui_windows[window_id] if(!window) + // #ifdef TGUI_DEBUGGING // Always going to log these log_tgui(usr, "Error: Couldn't find the window datum, force closing.") + // #endif SStgui.force_close_window(usr, window_id) return FALSE // Decode payload diff --git a/code/modules/tgui/modules/camera.dm b/code/modules/tgui/modules/camera.dm index 86eb923c1c..abfef14be1 100644 --- a/code/modules/tgui/modules/camera.dm +++ b/code/modules/tgui/modules/camera.dm @@ -296,3 +296,7 @@ /datum/tgui_module/camera/ntos/hacked/New(host) . = ..(host, using_map.station_networks.Copy()) + +/datum/tgui_module/camera/bigscreen/tgui_state(mob/user) + return GLOB.tgui_physical_state_bigscreen + \ No newline at end of file diff --git a/code/modules/tgui/modules/ntos-only/uav.dm b/code/modules/tgui/modules/ntos-only/uav.dm index f27a08eda9..b9288457e5 100644 --- a/code/modules/tgui/modules/ntos-only/uav.dm +++ b/code/modules/tgui/modules/ntos-only/uav.dm @@ -13,11 +13,11 @@ if(current_uav) if(QDELETED(current_uav)) - set_current(null) + clear_current() else if(signal_test_counter-- <= 0) signal_strength = get_signal_to(current_uav) if(!signal_strength) - set_current(null) + clear_current() else // Don't reset counter until we find a UAV that's actually in range we can stay connected to signal_test_counter = 20 @@ -95,16 +95,33 @@ signal_strength = 0 current_uav = U + RegisterSignal(U, COMSIG_MOVABLE_Z_CHANGED, .proc/current_uav_changed_z) if(LAZYLEN(viewers)) for(var/weakref/W in viewers) var/M = W.resolve() if(M) - if(current_uav) - to_chat(M, "You're disconnected from the UAV's camera!") - unlook(M) - else - look(M) + look(M) + +/datum/tgui_module/uav/proc/clear_current() + if(!current_uav) + return + + UnregisterSignal(current_uav, COMSIG_MOVABLE_Z_CHANGED) + signal_strength = 0 + current_uav = null + + if(LAZYLEN(viewers)) + for(var/weakref/W in viewers) + var/M = W.resolve() + if(M) + to_chat(M, "You're disconnected from the UAV's camera!") + unlook(M) + +/datum/tgui_module/uav/proc/current_uav_changed_z(old_z, new_z) + signal_strength = get_signal_to(current_uav) + if(!signal_strength) + clear_current() //// //// Finding signal strength between us and the UAV @@ -130,6 +147,7 @@ var/list/zlevels_in_range = using_map.get_map_levels(their_z, FALSE) var/list/zlevels_in_long_range = using_map.get_map_levels(their_z, TRUE, om_range = DEFAULT_OVERMAP_RANGE) - zlevels_in_range var/their_signal = 0 + // Measure z-distance between the AM passed in and the nearest relay for(var/relay in ntnet_global.relays) var/obj/machinery/ntnet_relay/R = relay if(!R.operable()) @@ -144,7 +162,8 @@ their_signal = 1 break - if(!their_signal) //They have no NTnet at all + // AM passed in has no NTnet at all + if(!their_signal) if(get_z(host) == their_z && (get_dist(host, AM) < adhoc_range)) return 1 //We can connect (with weak signal) in same z without ntnet, within 30 turfs else diff --git a/code/modules/tgui/states.dm b/code/modules/tgui/states.dm index 01b8ae1a84..5a66efc090 100644 --- a/code/modules/tgui/states.dm +++ b/code/modules/tgui/states.dm @@ -85,7 +85,7 @@ * * Check the distance for a living mob. * Really only used for checks outside the context of a mob. - * Otherwise, use shared_living_ui_distance(). + * Otherwise, use shared_living_tgui_distance(). * * required src_object The object which owns the UI. * required user mob The mob who opened/is using the UI. @@ -119,10 +119,26 @@ return STATUS_DISABLED return STATUS_CLOSE // Otherwise, we got nothing. -/mob/living/carbon/human/shared_living_tgui_distance(atom/movable/src_object, viewcheck = TRUE) - if((TK in mutations) && (get_dist(src, src_object) <= 2)) +/** + * public + * + * Distance versus interaction check, with max'd update range. + * + * required src_object atom/movable The object which owns the UI. + * + * return UI_state The state of the UI. + */ +/mob/living/proc/shared_living_tgui_distance_bigscreen(atom/movable/src_object, viewcheck = TRUE) + // If the object is obscured, close it. + if(viewcheck && !(src_object in view(src))) + return STATUS_CLOSE + + var/dist = get_dist(src_object, src) + if(dist <= 1) // Open and interact if 1-0 tiles away. return STATUS_INTERACTIVE - return ..() + else if(dist <= world.view) + return STATUS_UPDATE + return STATUS_CLOSE // Otherwise, we got nothing. // Topic Extensions for old UIs /datum/proc/CanUseTopic(var/mob/user, var/datum/tgui_state/state) diff --git a/code/modules/tgui/states/physical.dm b/code/modules/tgui/states/physical.dm index 30c67906ae..9712090b5d 100644 --- a/code/modules/tgui/states/physical.dm +++ b/code/modules/tgui/states/physical.dm @@ -47,3 +47,29 @@ GLOBAL_DATUM_INIT(tgui_physical_obscured_state, /datum/tgui_state/physical_obscu /mob/living/silicon/ai/physical_obscured_can_use_topic(src_object) return STATUS_UPDATE // AIs are not physical. + + /** + * tgui state: physical_state_bigscreen + * + * Short-circuits the default state to only check physical distance, + * but allows updates out to the full size of the screen. + **/ + +GLOBAL_DATUM_INIT(tgui_physical_state_bigscreen, /datum/tgui_state/physical_bigscreen, new) + +/datum/tgui_state/physical_bigscreen/can_use_topic(src_object, mob/user) + . = user.shared_tgui_interaction(src_object) + if(. > STATUS_CLOSE) + return min(., user.physical_can_use_tgui_topic_bigscreen(src_object)) + +/mob/proc/physical_can_use_tgui_topic_bigscreen(src_object) + return STATUS_CLOSE + +/mob/living/physical_can_use_tgui_topic_bigscreen(src_object) + return shared_living_tgui_distance_bigscreen(src_object) + +/mob/living/silicon/physical_can_use_tgui_topic_bigscreen(src_object) + return max(STATUS_UPDATE, shared_living_tgui_distance_bigscreen(src_object)) // Silicons can always see. + +/mob/living/silicon/ai/physical_can_use_tgui_topic(src_object) + return STATUS_UPDATE // AIs are not physical. \ No newline at end of file diff --git a/code/modules/tgui/tgui.dm b/code/modules/tgui/tgui.dm index 5b62af468b..5f95ab7db2 100644 --- a/code/modules/tgui/tgui.dm +++ b/code/modules/tgui/tgui.dm @@ -257,12 +257,14 @@ return // Validate ping if(!initialized && world.time - opened_at > TGUI_PING_TIMEOUT) + // #ifdef TGUI_DEBUGGING // Always log zombie windows log_tgui(user, \ "Error: Zombie window detected, killing it with fire.\n" \ + "window_id: [window.id]\n" \ + "opened_at: [opened_at]\n" \ + "world.time: [world.time]") close(can_be_suspended = FALSE) + // #endif return // Update through a normal call to ui_interact if(status != STATUS_DISABLED && (autoupdate || force)) @@ -288,9 +290,6 @@ status = min(status, parent_ui.status) return prev_status != status -/datum/tgui/proc/log_message(message) - log_tgui("[user] ([user.ckey]) using \"[title]\":\n[message]") - /datum/tgui/proc/set_map_z_level(nz) map_z_level = nz @@ -305,7 +304,9 @@ // Pass act type messages to tgui_act if(type && copytext(type, 1, 5) == "act/") var/act_type = copytext(type, 5) + #ifdef TGUI_DEBUGGING log_tgui(user, "Action: [act_type] [href_list["payload"]], Window: [window.id], Source: [src_object]") + #endif process_status() if(src_object.tgui_act(act_type, payload, src, state)) SStgui.update_uis(src_object) diff --git a/code/modules/tgui/tgui_window.dm b/code/modules/tgui/tgui_window.dm index 55a08f8808..cc8a63ef27 100644 --- a/code/modules/tgui/tgui_window.dm +++ b/code/modules/tgui/tgui_window.dm @@ -53,7 +53,9 @@ inline_assets = list(), inline_html = "", fancy = FALSE) + #ifdef TGUI_DEBUGGING log_tgui(client, "[id]/initiailize ([src])") + #endif if(!client) return src.inline_assets = inline_assets @@ -177,7 +179,9 @@ if(!client) return if(can_be_suspended && can_be_suspended()) + #ifdef TGUI_DEBUGGING log_tgui(client, "[id]/close: suspending") + #endif status = TGUI_WINDOW_READY send_message("suspend") // You would think that BYOND would null out client or make it stop passing istypes or, y'know, ANYTHING during @@ -187,7 +191,9 @@ if(!logout && client) winset(client, null, "mapwindow.map.focus=true") return + #ifdef TGUI_DEBUGGING log_tgui(client, "[id]/close") + #endif release_lock() status = TGUI_WINDOW_CLOSED message_queue = null diff --git a/code/modules/ventcrawl/ventcrawl.dm b/code/modules/ventcrawl/ventcrawl.dm index dd96f40167..a1fd6af591 100644 --- a/code/modules/ventcrawl/ventcrawl.dm +++ b/code/modules/ventcrawl/ventcrawl.dm @@ -10,7 +10,8 @@ var/list/ventcrawl_machinery = list( /obj/item/weapon/holder, /obj/machinery/camera, /obj/belly, - /obj/screen + /obj/screen, + /atom/movable/emissive_blocker ) //VOREStation Edit : added /obj/belly, to this list, CI is complaining about this in his indentation check //mob/living/simple_mob/borer, //VORESTATION AI TEMPORARY REMOVAL REPLACE BACK IN LIST WHEN RESOLVED //VOREStation Edit diff --git a/code/modules/vore/eating/belly_obj_ch.dm b/code/modules/vore/eating/belly_obj_ch.dm index 710c551915..6a90218395 100644 --- a/code/modules/vore/eating/belly_obj_ch.dm +++ b/code/modules/vore/eating/belly_obj_ch.dm @@ -1,4 +1,4 @@ -//CHOMP vore additions, currently only consists of reagent stuff - Jack +//CHOMP vore additions. /obj/belly //CHOMP - liquid bellies @@ -302,4 +302,52 @@ transfer_contents(prey, dest_belly) else // Didn't transfer, so wait before retrying - addtimer(CALLBACK(src, /obj/belly/.proc/check_autotransfer, prey, autotransferlocation), autotransferwait) \ No newline at end of file + addtimer(CALLBACK(src, /obj/belly/.proc/check_autotransfer, prey, autotransferlocation), autotransferwait) + + +/////////////////////////// Process Cycle Lite /////////////////////////// CHOMP PCL +/obj/belly/proc/quick_cycle() //For manual belly cycling without straining the bellies subsystem. + HandleBellyReagents() //CHOMP reagent belly stuff. + // VERY early exit + if(!contents.len) + return + + var/to_update = FALSE //Did anything update worthy happen? + +/////////////////////////// Exit Early //////////////////////////// CHOMP PCL + var/list/touchable_atoms = contents - items_preserved + if(!length(touchable_atoms)) + return + + var/datum/digest_mode/DM = GLOB.digest_modes["[digest_mode]"] + if(!DM) + log_debug("Digest mode [digest_mode] didn't exist in the digest_modes list!!") + return FALSE + if(DM.handle_atoms(src, touchable_atoms)) + updateVRPanels() + return + + var/list/touchable_mobs = null + + var/list/hta_returns = handle_touchable_atoms(touchable_atoms) + if(islist(hta_returns)) + if(hta_returns["touchable_mobs"]) + touchable_mobs = hta_returns["touchable_mobs"] + if(hta_returns["to_update"]) + to_update = hta_returns["to_update"] + + if(!LAZYLEN(touchable_mobs)) + return + +///////////////////// Time to actually process mobs ///////////////////// CHOMP PCL + for(var/target in touchable_mobs) + var/mob/living/L = target + if(!istype(L)) + continue + var/list/returns = DM.process_mob(src, target) + if(istype(returns) && returns["to_update"]) + to_update = TRUE + + if(to_update) + updateVRPanels() +/////////////////////////// CHOMP PCL END /////////////////////////// \ No newline at end of file diff --git a/code/modules/vore/eating/bellymodes_vr.dm b/code/modules/vore/eating/bellymodes_vr.dm index 7c195dac12..aec57913ee 100644 --- a/code/modules/vore/eating/bellymodes_vr.dm +++ b/code/modules/vore/eating/bellymodes_vr.dm @@ -17,8 +17,10 @@ var/play_sound //Potential sound to play at the end to avoid code duplication. var/to_update = FALSE //Did anything update worthy happen? -///////////////////// Prey Loop Refresh/hack ////////////////////// - prey_loop() +/////////////////////////// Exit Early //////////////////////////// + var/list/touchable_atoms = contents - items_preserved + if(!length(touchable_atoms)) + return /////////////////////////// Sound Selections /////////////////////////// var/digestion_noise_chance = 0 @@ -31,10 +33,7 @@ prey_digest = sound(get_sfx("fancy_digest_prey")) pred_digest = sound(get_sfx("fancy_digest_pred")) -/////////////////////////// Exit Early //////////////////////////// - var/list/touchable_atoms = contents - items_preserved - if(!length(touchable_atoms)) - return +///////////////////// Early Non-Mode Handling ///////////////////// var/datum/digest_mode/DM = GLOB.digest_modes["[digest_mode]"] if(!DM) @@ -55,10 +54,58 @@ if(hta_returns["to_update"]) to_update = hta_returns["to_update"] + if(!digestion_noise_chance) + digestion_noise_chance = DM.noise_chance + +/////////////////////////// Make any noise /////////////////////////// + if(digestion_noise_chance && prob(digestion_noise_chance)) + for(var/mob/M in contents) + if(M && M.is_preference_enabled(/datum/client_preference/digestion_noises)) + SEND_SOUND(M, prey_digest) + play_sound = pred_digest + + if(to_update) + updateVRPanels() + if(!LAZYLEN(touchable_mobs)) + if(play_sound) + for(var/mob/M in hearers(VORE_SOUND_RANGE, get_turf(owner))) //so we don't fill the whole room with the sound effect + if(!M.is_preference_enabled(/datum/client_preference/digestion_noises)) + continue + if(isturf(M.loc) || (M.loc != src)) //to avoid people on the inside getting the outside sounds and their direct sounds + built in sound pref check + if(fancy_vore) + M.playsound_local(get_turf(owner), play_sound, vol = 100, vary = 1, falloff = VORE_SOUND_FALLOFF) + else + M.playsound_local(get_turf(owner), play_sound, vol = 100, vary = 1, falloff = VORE_SOUND_FALLOFF) + //these are all external sound triggers now, so it's ok. return -///////////////////// Early Non-Mode Handling ///////////////////// +///////////////////// Prey Loop Refresh/hack ////////////////////// + prey_loop() + +///////////////////// Time to actually process mobs ///////////////////// + + for(var/target in touchable_mobs) + var/mob/living/L = target + if(!istype(L)) + continue + var/list/returns = DM.process_mob(src, target) + if(istype(returns) && returns["to_update"]) + to_update = TRUE + if(istype(returns) && returns["soundToPlay"] && !play_sound) + play_sound = returns["soundToPlay"] + + if(play_sound) + for(var/mob/M in hearers(VORE_SOUND_RANGE, get_turf(owner))) //so we don't fill the whole room with the sound effect + if(!M.is_preference_enabled(/datum/client_preference/digestion_noises)) + continue + if(isturf(M.loc) || (M.loc != src)) //to avoid people on the inside getting the outside sounds and their direct sounds + built in sound pref check + if(fancy_vore) + M.playsound_local(get_turf(owner), play_sound, vol = 100, vary = 1, falloff = VORE_SOUND_FALLOFF) + else + M.playsound_local(get_turf(owner), play_sound, vol = 100, vary = 1, falloff = VORE_SOUND_FALLOFF) + //these are all external sound triggers now, so it's ok. + if(emote_active) var/list/EL = emote_lists[digest_mode] if(LAZYLEN(EL) && next_emote <= world.time) @@ -79,41 +126,6 @@ formatted_message = replacetext(formatted_message, "%countprey", living_count) to_chat(M, "[formatted_message]") - if(!digestion_noise_chance) - digestion_noise_chance = DM.noise_chance - - -///////////////////// Time to actually process mobs ///////////////////// - for(var/target in touchable_mobs) - var/mob/living/L = target - if(!istype(L)) - continue - var/list/returns = DM.process_mob(src, target) - if(istype(returns) && returns["to_update"]) - to_update = TRUE - if(istype(returns) && returns["soundToPlay"] && !play_sound) - play_sound = returns["soundToPlay"] - -/////////////////////////// Make any noise /////////////////////////// - if(digestion_noise_chance && prob(digestion_noise_chance)) - for(var/mob/M in contents) - if(M && M.is_preference_enabled(/datum/client_preference/digestion_noises)) - SEND_SOUND(M, prey_digest) - play_sound = pred_digest - - if(play_sound) - for(var/mob/M in hearers(VORE_SOUND_RANGE, get_turf(owner))) //so we don't fill the whole room with the sound effect - if(!M.is_preference_enabled(/datum/client_preference/digestion_noises)) - continue - if(isturf(M.loc) || (M.loc != src)) //to avoid people on the inside getting the outside sounds and their direct sounds + built in sound pref check - if(fancy_vore) - M.playsound_local(get_turf(owner), play_sound, vol = 100, vary = 1, falloff = VORE_SOUND_FALLOFF) - else - M.playsound_local(get_turf(owner), play_sound, vol = 100, vary = 1, falloff = VORE_SOUND_FALLOFF) - //these are all external sound triggers now, so it's ok. - - if(to_update) - updateVRPanels() /obj/belly/proc/handle_touchable_atoms(list/touchable_atoms) var/did_an_item = FALSE // Only do one item per cycle. diff --git a/code/modules/vore/eating/living_ch.dm b/code/modules/vore/eating/living_ch.dm index f51bc265b1..58f4c656e3 100644 --- a/code/modules/vore/eating/living_ch.dm +++ b/code/modules/vore/eating/living_ch.dm @@ -219,3 +219,21 @@ mob/living/proc/check_vorefootstep(var/m_intent, var/turf/T) soundfile = fancy_release_sounds[RTB.release_sound] if(soundfile) playsound(src, soundfile, vol = 100, vary = 1, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/eating_noises) + +/mob/living/proc/vore_bellyrub(var/mob/living/T) + set name = "Give Bellyrubs" + set category = "Abilities" + set desc = "Provide bellyrubs to either yourself or another mob with a belly." + + if(!T) + T = input("Choose whose belly to rub") as null| mob in view(src.loc,1) + if(!T) + return FALSE + if(T.vore_selected) + var/obj/belly/B = T.vore_selected + if(istype(B)) + custom_emote_vr(1, "gives some rubs over [T]'s [B].") + B.quick_cycle() + return TRUE + to_chat(src, "There is no suitable belly for rubs.") + return FALSE \ No newline at end of file diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm index 5d194781c7..d69ccb25b9 100644 --- a/code/modules/vore/eating/living_vr.dm +++ b/code/modules/vore/eating/living_vr.dm @@ -52,6 +52,7 @@ M.verbs += /mob/living/proc/insidePanel M.verbs += /mob/living/proc/vore_transfer_reagents //CHOMP If mob doesnt have bellies it cant use this verb for anything M.verbs += /mob/living/proc/vore_check_reagents //CHOMP If mob doesnt have bellies it cant use this verb for anything + M.verbs += /mob/living/proc/vore_bellyrub //CHOMP If mob doesnt have bellies it probably won't be needing this anyway //Tries to load prefs if a client is present otherwise gives freebie stomach spawn(2 SECONDS) @@ -544,7 +545,7 @@ // Their AI should get notified so they can stab us prey.ai_holder?.react_to_attack(user) - + //Timer and progress bar if(!do_after(user, swallow_time, prey, exclusive = TASK_USER_EXCLUSIVE)) return FALSE // Prey escpaed (or user disabled) before timer expired. diff --git a/code/modules/vore/fluffstuff/custom_clothes_vr.dm b/code/modules/vore/fluffstuff/custom_clothes_vr.dm index d8f70d9919..2116cb6048 100644 --- a/code/modules/vore/fluffstuff/custom_clothes_vr.dm +++ b/code/modules/vore/fluffstuff/custom_clothes_vr.dm @@ -182,7 +182,7 @@ icon = 'icons/vore/custom_clothes_vr.dmi' icon_state = "solara_dress" - icon_override = 'icons/mob/uniform.dmi' + icon_override = 'icons/inventory/uniform/mob.dmi' item_state = "solara_dress" //For general use @@ -698,10 +698,10 @@ desc = " This is Lethe's Hat! A little tag attached inside reads: 'If found please return to Lethe! Or else!' It looks rather worn in. It also lacks armor." armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) - icon = 'icons/obj/clothing/hats.dmi' + icon = 'icons/inventory/head/item.dmi' icon_state = "hoscap" - icon_override = 'icons/mob/head.dmi' + icon_override = 'icons/inventory/head/mob.dmi' item_state = "hoscap" /obj/item/weapon/storage/belt/utility/fluff/vulpine @@ -889,74 +889,56 @@ No. With a teleporter? Just *no*. - Hawk, YW //catalogue_data = list(/datum/category_item/catalogue/information/organization/khi) sensor_mode = 3 - icon = 'icons/vore/custom_clothes_vr.dmi' - icon_state = "khi_uniform_i" - - icon_override = 'icons/vore/custom_clothes_vr.dmi' - item_state = "" + icon = 'icons/inventory/uniform/item_vr.dmi' + default_worn_icon = 'icons/inventory/uniform/mob_vr.dmi' + icon_state = "khi_uniform" /obj/item/clothing/under/rank/khi/cmd //Command version name = "GE command suit" //CHOMPedit: Change to GE desc = "Gilthari Exports uniform. An extra-comfortable command one, at that." //CHOMPedit - icon_state = "khi_uniform_cmd_i" - item_state = "khi_uniform_cmd" - worn_state = "khi_uniform_cmd" + icon_state = "khi_uniform_cmd" armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0) /obj/item/clothing/under/rank/khi/sec //Security version name = "GE security suit" //CHOMPedit: Change to GE desc = "Gilthari Exports uniform. This one has angry red security stripes. Keepin' the peace in style." //CHOMPedit - icon_state = "khi_uniform_sec_i" - item_state = "khi_uniform_sec" - worn_state = "khi_uniform_sec" + icon_state = "khi_uniform_sec" armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0) /obj/item/clothing/under/rank/khi/med //Medical version name = "GE medical suit" //CHOMPedit: Change to GE desc = "Gilthari Exports uniform. The medical version. Why not just get a new body, anyway?"//CHOMPedit - icon_state = "khi_uniform_med_i" - item_state = "khi_uniform_med" - worn_state = "khi_uniform_med" + icon_state = "khi_uniform_med" armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 10, rad = 0) /obj/item/clothing/under/rank/khi/eng //Engineering version name = "GE engineering suit" //CHOMPedit: Change to GE desc = "Gilthari Exports uniform. One fit for an engineer, by the looks of it. Building the future, one disaster at a time." //CHOMPedit - icon_state = "khi_uniform_eng_i" - item_state = "khi_uniform_eng" - worn_state = "khi_uniform_eng" + icon_state = "khi_uniform_eng" armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 10) /obj/item/clothing/under/rank/khi/sci //Science version name = "GE science suit" //CHOMPedit: Change to GE desc = "Gilthari Exports uniform. For performing science in, based on the color! Only SCIENCE can save us now." //CHOMPedit - icon_state = "khi_uniform_sci_i" - item_state = "khi_uniform_sci" - worn_state = "khi_uniform_sci" + icon_state = "khi_uniform_sci" armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 10, bio = 0, rad = 0) /obj/item/clothing/under/rank/khi/crg //Cargo version name = "GE cargo suit" //CHOMPedit: Change to GE desc = "A sleek cargo uniform from Gilthari Exports." //CHOMPedit - icon_state = "khi_uniform_crg_i" - item_state = "khi_uniform_crg" - worn_state = "khi_uniform_crg" + icon_state = "khi_uniform_crg" armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0) /obj/item/clothing/under/rank/khi/civ //Science version name = "GE civilian suit" //CHOMPedit: Change to GE desc = "A sleek civilian uniform from Gilthari Exports." //CHOMPedit - icon_state = "khi_uniform_civ_i" - item_state = "khi_uniform_civ" - worn_state = "khi_uniform_civ" + icon_state = "khi_uniform_civ" armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0) /obj/item/clothing/under/rank/khi/fluff/aronai //Aro fluff version name = "KHI meditech suit" - desc = "An outdated uniform of some sort. You get the sense that whoever wore this must've been very full of themselves" - icon_state = "khi_uniform_aro_i" - item_state = "khi_uniform_aro" - worn_state = "khi_uniform_aro" + desc = "An outdated uniform of some sort. You get the sense that whoever wore this must've been very full of themselves" //YW edit + icon_state = "khi_uniform_aro" armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 10, rad = 0) //jacobdragon:Earthen Breath @@ -1189,30 +1171,26 @@ Departamental Swimsuits, for general use /obj/item/clothing/under/rank/trek name = "Section 31 Uniform" desc = "Oooh... right." - icon = 'icons/vore/custom_clothes_vr.dmi' - icon_override = 'icons/vore/custom_clothes_vr.dmi' - item_state = "" + icon = 'icons/inventory/uniform/item_vr.dmi' + default_worn_icon = 'icons/inventory/uniform/mob_vr.dmi' //TOS /obj/item/clothing/under/rank/trek/command name = "Command Uniform" desc = "The uniform worn by command officers in the mid 2260s." icon_state = "trek_command" - item_state = "trek_command" armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) // Considering only staff heads get to pick it /obj/item/clothing/under/rank/trek/eng //CHOMPEdit: Engineering only name = "Operations Uniform" desc = "The uniform worn by operations officers of the mid 2260s. You feel strangely vulnerable just seeing this..." icon_state = "trek_engsec" - item_state = "trek_engsec" armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) // since they're shared between jobs and kinda moot. //CHOMPEdit: I'll tell you what, the armor values are NOT shared. Removed melee bonus. /obj/item/clothing/under/rank/trek/medsci name = "MedSci Uniform" desc = "The uniform worn by medsci officers in the mid 2260s." icon_state = "trek_medsci" - item_state = "trek_medsci" permeability_coefficient = 0.50 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) // basically a copy of vanilla sci/med @@ -1220,59 +1198,48 @@ Departamental Swimsuits, for general use /obj/item/clothing/under/rank/trek/command/next desc = "The uniform worn by command officers. This one's from the mid 2360s." icon_state = "trek_next_command" - item_state = "trek_next_command" /obj/item/clothing/under/rank/trek/eng/next //CHOMPEdit: Engineering only desc = "The uniform worn by operation officers. This one's from the mid 2360s." icon_state = "trek_next_engsec" - item_state = "trek_next_engsec" /obj/item/clothing/under/rank/trek/medsci/next desc = "The uniform worn by medsci officers. This one's from the mid 2360s." icon_state = "trek_next_medsci" - item_state = "trek_next_medsci" //ENT /obj/item/clothing/under/rank/trek/command/ent desc = "The uniform worn by command officers of the 2140s." icon_state = "trek_ent_command" - item_state = "trek_ent_command" /obj/item/clothing/under/rank/trek/eng/ent //CHOMPEdit: Engineering only desc = "The uniform worn by operations officers of the 2140s." icon_state = "trek_ent_engsec" - item_state = "trek_ent_engsec" /obj/item/clothing/under/rank/trek/medsci/ent desc = "The uniform worn by medsci officers of the 2140s." icon_state = "trek_ent_medsci" - item_state = "trek_ent_medsci" //VOY /obj/item/clothing/under/rank/trek/command/voy desc = "The uniform worn by command officers of the 2370s." icon_state = "trek_voy_command" - item_state = "trek_voy_command" /obj/item/clothing/under/rank/trek/eng/voy //CHOMPEdit: Engineering only desc = "The uniform worn by operations officers of the 2370s." icon_state = "trek_voy_engsec" - item_state = "trek_voy_engsec" /obj/item/clothing/under/rank/trek/medsci/voy desc = "The uniform worn by medsci officers of the 2370s." icon_state = "trek_voy_medsci" - item_state = "trek_voy_medsci" //DS9 - /obj/item/clothing/suit/storage/trek/ds9 name = "Padded Overcoat" desc = "The overcoat worn by all officers of the 2380s." + icon = 'icons/inventory/suit/item_vr.dmi' + default_worn_icon = 'icons/inventory/suit/mob_vr.dmi' icon_state = "trek_ds9_coat" - icon = 'icons/vore/custom_clothes_vr.dmi' - item_state = "trek_ds9_coat_mob" - icon_override = 'icons/vore/custom_clothes_vr.dmi' body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS permeability_coefficient = 0.50 allowed = list( @@ -1289,23 +1256,21 @@ Departamental Swimsuits, for general use name = "Admiral Overcoat" desc = "Admirality specialty coat to keep flag officers fashionable and protected." icon_state = "trek_ds9_coat_adm" - item_state = "trek_ds9_coat_adm_mob" armor = list(melee = 45, bullet = 35, laser = 35, energy = 20, bomb = 0, bio = 40, rad = 55) - /obj/item/clothing/under/rank/trek/command/ds9 desc = "The uniform worn by command officers of the 2380s." - icon_state = "trek_command" + icon_state = "trek_command" // no unique state for this one item_state = "trek_ds9_command" /obj/item/clothing/under/rank/trek/eng/ds9 //CHOMPEdit: Engineering only desc = "The uniform worn by operations officers of the 2380s." - icon_state = "trek_engsec" + icon_state = "trek_engsec" // no unique state for this one item_state = "trek_ds9_engsec" /obj/item/clothing/under/rank/trek/medsci/ds9 desc = "The uniform undershit worn by medsci officers of the 2380s." - icon_state = "trek_medsci" + icon_state = "trek_medsci" // no unique state for this one item_state = "trek_ds9_medsci" //For general use maybe @@ -1941,7 +1906,7 @@ Departamental Swimsuits, for general use item_icons = list() default_worn_icon = 'icons/vore/custom_clothes_vr.dmi' color = COLOR_NAVY - sprite_sheets = null + sprite_sheets = list() //SweetBlueSylveon:Pip Shyner /obj/item/clothing/accessory/poncho/roles/cloak/hop/fluff/pip diff --git a/code/modules/vore/fluffstuff/custom_clothes_yw.dm b/code/modules/vore/fluffstuff/custom_clothes_yw.dm index fe3a48aa13..45ec54f5d5 100644 --- a/code/modules/vore/fluffstuff/custom_clothes_yw.dm +++ b/code/modules/vore/fluffstuff/custom_clothes_yw.dm @@ -1596,7 +1596,7 @@ /obj/item/weapon/storage/backpack/fluff/kaith name = "Light duffle bag" desc = "A compact duffle bag, meant for long hikes." - icon = 'icons/obj/clothing/backpack.dmi' + icon = 'icons/inventory/back/item.dmi' icon_state = "duffle" diff --git a/code/modules/vore/resizing/holder_micro_vr.dm b/code/modules/vore/resizing/holder_micro_vr.dm index cbcbe3b0e7..1f4f65084d 100644 --- a/code/modules/vore/resizing/holder_micro_vr.dm +++ b/code/modules/vore/resizing/holder_micro_vr.dm @@ -4,7 +4,7 @@ name = "micro" desc = "Another crewmember, small enough to fit in your hand." icon_state = "micro" - icon_override = 'icons/mob/head_vr.dmi' + icon_override = 'icons/inventory/head/mob_vr.dmi' slot_flags = SLOT_FEET | SLOT_HEAD | SLOT_ID w_class = ITEMSIZE_SMALL item_icons = list() // No in-hand sprites (for now, anyway, we could totally add some) diff --git a/code/modules/vore/smoleworld/smoleworld_vr.dm b/code/modules/vore/smoleworld/smoleworld_vr.dm index 50dbacfe1f..ca6a7ae828 100644 --- a/code/modules/vore/smoleworld/smoleworld_vr.dm +++ b/code/modules/vore/smoleworld/smoleworld_vr.dm @@ -107,6 +107,7 @@ //defineing actions /obj/structure/smoletrack icon = 'icons/vore/smoleworld_vr.dmi' + color = "#ffffff" density = 0 /obj/structure/smoletrack/attack_hand(mob/user) @@ -120,6 +121,7 @@ new /obj/item/stack/material/smolebricks(F) qdel(src) +//rotates piece /obj/structure/smoletrack/verb/rotate_clockwise() set name = "Rotate Road Clockwise" set category = "Object" @@ -128,6 +130,33 @@ return src.set_dir(turn(src.dir, 270)) +//color roads +/obj/structure/smoletrack/verb/colorpieces() + set name = "Use Color Pieces" + set category = "Object" + set src in oview(1) + if(ismouse(usr) || (isobserver(usr) && !config.ghost_interaction)) + return + var/new_color = input(usr, "Please select color.", "Paint Color", color) as color|null + color = new_color + return + + +// probably redundant, allows for direct way to dismantal without knowing intents +/obj/structure/smoletrack/verb/menudismantal() + set name = "Take Road Apart" + set category = "Object" + set src in oview(1) + if(ismouse(usr) || (isobserver(usr) && !config.ghost_interaction)) + return + playsound(src, 'sound/items/smolesmallbuild.ogg', 50, 1, -1, volume_channel = VOLUME_CHANNEL_MASTER) + var/turf/simulated/floor/F = get_turf(src) + if(istype(F)) + new /obj/item/stack/material/smolebricks(F) + qdel(src) + return + + // Road pieces /obj/structure/smoletrack/roadS @@ -164,6 +193,7 @@ icon = 'icons/vore/smoleworld_vr.dmi' density = 1 anchored = 1 + color = "#ffffff" var/health = 75 var/damage //makes it so buildings can be dismaintaled or GodZilla style attacked @@ -258,6 +288,31 @@ qdel(src) return +//color buildings +/obj/structure/smolebuilding/verb/colorpieces() + set name = "Use Color Pieces" + set category = "Object" + set src in oview(1) + if(ismouse(usr) || (isobserver(usr) && !config.ghost_interaction)) + return + var/new_color = input(usr, "Please select color.", "Paint Color", color) as color|null + color = new_color + return + +//probably a bit redundant but gives a more direct way to disassemble buildings without using intents +/obj/structure/smolebuilding/verb/menudismantal() + set name = "Take Building Apart" + set category = "Object" + set src in oview(1) + if(ismouse(usr) || (isobserver(usr) && !config.ghost_interaction)) + return + playsound(src, 'sound/items/smolesmallbuild.ogg', 50, 1, -1, volume_channel = VOLUME_CHANNEL_MASTER) + if(!isnull(loc)) + new /obj/item/stack/material/smolebricks(loc) + new /obj/item/stack/material/smolebricks(loc) + qdel(src) + return + //buildings /obj/structure/smoleruins icon = 'icons/vore/smoleworld_vr.dmi' @@ -268,21 +323,25 @@ name = "smole houses" icon = 'icons/vore/smoleworld_vr.dmi' icon_state = "smolehouses" + color = "#ffffff" /obj/structure/smolebuilding/business name = "smole business" icon = 'icons/vore/smoleworld_vr.dmi' icon_state = "smolebusiness" + color = "#ffffff" /obj/structure/smolebuilding/warehouses name = "smole warehouses" icon = 'icons/vore/smoleworld_vr.dmi' icon_state = "smolewarehouses" + color = "#ffffff" /obj/structure/smolebuilding/museum name = "smole museum" icon = 'icons/vore/smoleworld_vr.dmi' icon_state = "smolemuseum" + color = "#ffffff" // //CAR STUFF < WILL BE MESSED WITH IN A LATER UPDATE COMMENTED OUT FOR NOW ///obj/item/smolecar @@ -312,11 +371,11 @@ // // //snack planets, currently just plopped out will be organized later. -/obj/item/trash/Asteroidsmall +/obj/item/trash/candychunk icon = 'icons/vore/smoleworld_vr.dmi' - icon_state = "sp_asteriodB" - name = "asteriod" - desc = "A solid chunk of candy crumb that looks like a asteriod." + icon_state = "sp_sugarchunk" + name = "chunk of candy" + desc = "A solid chunk of candy crumbs, looks like it could be messy." /obj/item/trash/Asteroidlarge icon = 'icons/vore/smoleworld_vr.dmi' @@ -351,7 +410,6 @@ icon = 'icons/vore/smoleworld_vr.dmi' icon_state = "sp_moon" bitesize = 1 - trash = /obj/item/trash/Asteroidsmall nutriment_amt = 2 nutriment_desc = list("sugar" = 2) drop_sound = 'sound/items/drop/basketball.ogg' @@ -373,7 +431,7 @@ icon = 'icons/vore/smoleworld_vr.dmi' icon_state = "sp_phoron" bitesize = 3 - trash = /obj/item/trash/Asteroidmulti + trash = /obj/item/trash/candychunk nutriment_amt = 2 nutriment_desc = list("spicy" = 2) drop_sound = 'sound/items/drop/basketball.ogg' @@ -384,7 +442,7 @@ icon = 'icons/vore/smoleworld_vr.dmi' icon_state = "sp_virgoprime" bitesize = 3 - trash = /obj/item/trash/Asteroidmulti + trash = /obj/item/trash/candychunk nutriment_amt = 2 nutriment_desc = list("salty" = 2) drop_sound = 'sound/items/drop/basketball.ogg' diff --git a/code/modules/xenoarcheaology/tools/equipment.dm b/code/modules/xenoarcheaology/tools/equipment.dm index b241f714be..276d8e305e 100644 --- a/code/modules/xenoarcheaology/tools/equipment.dm +++ b/code/modules/xenoarcheaology/tools/equipment.dm @@ -1,7 +1,7 @@ /obj/item/clothing/suit/bio_suit/anomaly name = "Anomaly suit" desc = "A sealed bio suit capable of insulating against exotic alien energies." - icon = 'icons/obj/clothing/spacesuits.dmi' + icon = 'icons/inventory/suit/item.dmi' icon_state = "engspace_suit" item_state = "engspace_suit" update_icon_define = "icons/mob/spacesuit.dmi" diff --git a/icons/_nanomaps/southern_cross_nanomap_z5.png b/icons/_nanomaps/southern_cross_nanomap_z5.png index 0eb86e27e1..24f0310632 100644 Binary files a/icons/_nanomaps/southern_cross_nanomap_z5.png and b/icons/_nanomaps/southern_cross_nanomap_z5.png differ diff --git a/icons/inventory/accessory/item.dmi b/icons/inventory/accessory/item.dmi new file mode 100644 index 0000000000..61e8c36841 Binary files /dev/null and b/icons/inventory/accessory/item.dmi differ diff --git a/icons/obj/clothing/ties_vr.dmi b/icons/inventory/accessory/item_vr.dmi similarity index 100% rename from icons/obj/clothing/ties_vr.dmi rename to icons/inventory/accessory/item_vr.dmi diff --git a/icons/mob/ties.dmi b/icons/inventory/accessory/mob.dmi similarity index 100% rename from icons/mob/ties.dmi rename to icons/inventory/accessory/mob.dmi diff --git a/icons/mob/species/teshari/ties.dmi b/icons/inventory/accessory/mob_teshari.dmi similarity index 100% rename from icons/mob/species/teshari/ties.dmi rename to icons/inventory/accessory/mob_teshari.dmi diff --git a/icons/mob/ties_vr.dmi b/icons/inventory/accessory/mob_vr.dmi similarity index 100% rename from icons/mob/ties_vr.dmi rename to icons/inventory/accessory/mob_vr.dmi diff --git a/icons/mob/species/teshari/ties_vr.dmi b/icons/inventory/accessory/mob_vr_teshari.dmi similarity index 100% rename from icons/mob/species/teshari/ties_vr.dmi rename to icons/inventory/accessory/mob_vr_teshari.dmi diff --git a/icons/mob/species/werebeast/ears.dmi b/icons/inventory/accessory/mob_werebeast.dmi similarity index 100% rename from icons/mob/species/werebeast/ears.dmi rename to icons/inventory/accessory/mob_werebeast.dmi diff --git a/icons/obj/clothing/backpack.dmi b/icons/inventory/back/item.dmi similarity index 100% rename from icons/obj/clothing/backpack.dmi rename to icons/inventory/back/item.dmi diff --git a/icons/obj/clothing/backpack_vr.dmi b/icons/inventory/back/item_vr.dmi similarity index 100% rename from icons/obj/clothing/backpack_vr.dmi rename to icons/inventory/back/item_vr.dmi diff --git a/icons/inventory/back/mob.dmi b/icons/inventory/back/mob.dmi new file mode 100644 index 0000000000..755a2d75d4 Binary files /dev/null and b/icons/inventory/back/mob.dmi differ diff --git a/icons/inventory/back/mob_teshari.dmi b/icons/inventory/back/mob_teshari.dmi new file mode 100644 index 0000000000..bdec7b1467 Binary files /dev/null and b/icons/inventory/back/mob_teshari.dmi differ diff --git a/icons/mob/back_vr.dmi b/icons/inventory/back/mob_vr.dmi similarity index 100% rename from icons/mob/back_vr.dmi rename to icons/inventory/back/mob_vr.dmi diff --git a/icons/mob/species/werebeast/back.dmi b/icons/inventory/back/mob_werebeast.dmi similarity index 100% rename from icons/mob/species/werebeast/back.dmi rename to icons/inventory/back/mob_werebeast.dmi diff --git a/icons/inventory/belt/item.dmi b/icons/inventory/belt/item.dmi new file mode 100644 index 0000000000..9fd819307a Binary files /dev/null and b/icons/inventory/belt/item.dmi differ diff --git a/icons/obj/clothing/belts_vr.dmi b/icons/inventory/belt/item_vr.dmi similarity index 100% rename from icons/obj/clothing/belts_vr.dmi rename to icons/inventory/belt/item_vr.dmi diff --git a/icons/mob/belt.dmi b/icons/inventory/belt/mob.dmi similarity index 100% rename from icons/mob/belt.dmi rename to icons/inventory/belt/mob.dmi diff --git a/icons/mob/species/teshari/belt.dmi b/icons/inventory/belt/mob_teshari.dmi similarity index 100% rename from icons/mob/species/teshari/belt.dmi rename to icons/inventory/belt/mob_teshari.dmi diff --git a/icons/mob/belt_vr.dmi b/icons/inventory/belt/mob_vr.dmi similarity index 100% rename from icons/mob/belt_vr.dmi rename to icons/inventory/belt/mob_vr.dmi diff --git a/icons/mob/species/werebeast/belt.dmi b/icons/inventory/belt/mob_werebeast.dmi similarity index 100% rename from icons/mob/species/werebeast/belt.dmi rename to icons/inventory/belt/mob_werebeast.dmi diff --git a/icons/obj/clothing/ears.dmi b/icons/inventory/ears/item.dmi similarity index 100% rename from icons/obj/clothing/ears.dmi rename to icons/inventory/ears/item.dmi diff --git a/icons/mob/ears.dmi b/icons/inventory/ears/mob.dmi similarity index 100% rename from icons/mob/ears.dmi rename to icons/inventory/ears/mob.dmi diff --git a/icons/mob/species/teshari/ears.dmi b/icons/inventory/ears/mob_teshari.dmi similarity index 100% rename from icons/mob/species/teshari/ears.dmi rename to icons/inventory/ears/mob_teshari.dmi diff --git a/icons/mob/species/werebeast/ties.dmi b/icons/inventory/ears/mob_werebeast.dmi similarity index 100% rename from icons/mob/species/werebeast/ties.dmi rename to icons/inventory/ears/mob_werebeast.dmi diff --git a/icons/obj/clothing/glasses.dmi b/icons/inventory/eyes/item.dmi similarity index 100% rename from icons/obj/clothing/glasses.dmi rename to icons/inventory/eyes/item.dmi diff --git a/icons/obj/clothing/glasses_vr.dmi b/icons/inventory/eyes/item_vr.dmi similarity index 100% rename from icons/obj/clothing/glasses_vr.dmi rename to icons/inventory/eyes/item_vr.dmi diff --git a/icons/inventory/eyes/mob.dmi b/icons/inventory/eyes/mob.dmi new file mode 100644 index 0000000000..70113e3d8c Binary files /dev/null and b/icons/inventory/eyes/mob.dmi differ diff --git a/icons/mob/species/teshari/eyes.dmi b/icons/inventory/eyes/mob_teshari.dmi similarity index 100% rename from icons/mob/species/teshari/eyes.dmi rename to icons/inventory/eyes/mob_teshari.dmi diff --git a/icons/mob/species/vox/eyes.dmi b/icons/inventory/eyes/mob_vox.dmi similarity index 100% rename from icons/mob/species/vox/eyes.dmi rename to icons/inventory/eyes/mob_vox.dmi diff --git a/icons/mob/eyes_vr.dmi b/icons/inventory/eyes/mob_vr.dmi similarity index 100% rename from icons/mob/eyes_vr.dmi rename to icons/inventory/eyes/mob_vr.dmi diff --git a/icons/mob/species/werebeast/eyes.dmi b/icons/inventory/eyes/mob_werebeast.dmi similarity index 100% rename from icons/mob/species/werebeast/eyes.dmi rename to icons/inventory/eyes/mob_werebeast.dmi diff --git a/icons/obj/clothing/masks.dmi b/icons/inventory/face/item.dmi similarity index 100% rename from icons/obj/clothing/masks.dmi rename to icons/inventory/face/item.dmi diff --git a/icons/obj/clothing/masks_vr.dmi b/icons/inventory/face/item_vr.dmi similarity index 100% rename from icons/obj/clothing/masks_vr.dmi rename to icons/inventory/face/item_vr.dmi diff --git a/icons/mob/mask.dmi b/icons/inventory/face/mob.dmi similarity index 100% rename from icons/mob/mask.dmi rename to icons/inventory/face/mob.dmi diff --git a/icons/mob/species/akula/mask_vr.dmi b/icons/inventory/face/mob_akula.dmi similarity index 100% rename from icons/mob/species/akula/mask_vr.dmi rename to icons/inventory/face/mob_akula.dmi diff --git a/icons/mob/species/fennec/mask_vr.dmi b/icons/inventory/face/mob_fennec.dmi similarity index 100% rename from icons/mob/species/fennec/mask_vr.dmi rename to icons/inventory/face/mob_fennec.dmi diff --git a/icons/mob/species/fox/mask_vr.dmi b/icons/inventory/face/mob_fox.dmi similarity index 100% rename from icons/mob/species/fox/mask_vr.dmi rename to icons/inventory/face/mob_fox.dmi diff --git a/icons/mob/species/nevrean/mask_vr.dmi b/icons/inventory/face/mob_nevrean.dmi similarity index 100% rename from icons/mob/species/nevrean/mask_vr.dmi rename to icons/inventory/face/mob_nevrean.dmi diff --git a/icons/mob/species/sergal/mask_vr.dmi b/icons/inventory/face/mob_sergal.dmi similarity index 100% rename from icons/mob/species/sergal/mask_vr.dmi rename to icons/inventory/face/mob_sergal.dmi diff --git a/icons/mob/species/tajaran/mask.dmi b/icons/inventory/face/mob_tajaran.dmi similarity index 100% rename from icons/mob/species/tajaran/mask.dmi rename to icons/inventory/face/mob_tajaran.dmi diff --git a/icons/mob/species/teshari/masks.dmi b/icons/inventory/face/mob_teshari.dmi similarity index 100% rename from icons/mob/species/teshari/masks.dmi rename to icons/inventory/face/mob_teshari.dmi diff --git a/icons/mob/species/unathi/mask.dmi b/icons/inventory/face/mob_unathi.dmi similarity index 100% rename from icons/mob/species/unathi/mask.dmi rename to icons/inventory/face/mob_unathi.dmi diff --git a/icons/mob/species/vox/masks.dmi b/icons/inventory/face/mob_vox.dmi similarity index 100% rename from icons/mob/species/vox/masks.dmi rename to icons/inventory/face/mob_vox.dmi diff --git a/icons/mob/mask_vr.dmi b/icons/inventory/face/mob_vr.dmi similarity index 100% rename from icons/mob/mask_vr.dmi rename to icons/inventory/face/mob_vr.dmi diff --git a/icons/mob/species/tajaran/mask_vr.dmi b/icons/inventory/face/mob_vr_tajaran.dmi similarity index 100% rename from icons/mob/species/tajaran/mask_vr.dmi rename to icons/inventory/face/mob_vr_tajaran.dmi diff --git a/icons/mob/species/teshari/masks_vr.dmi b/icons/inventory/face/mob_vr_teshari.dmi similarity index 100% rename from icons/mob/species/teshari/masks_vr.dmi rename to icons/inventory/face/mob_vr_teshari.dmi diff --git a/icons/mob/species/unathi/mask_vr.dmi b/icons/inventory/face/mob_vr_unathi.dmi similarity index 100% rename from icons/mob/species/unathi/mask_vr.dmi rename to icons/inventory/face/mob_vr_unathi.dmi diff --git a/icons/mob/species/vulpkanin/mask.dmi b/icons/inventory/face/mob_vulpkanin.dmi similarity index 100% rename from icons/mob/species/vulpkanin/mask.dmi rename to icons/inventory/face/mob_vulpkanin.dmi diff --git a/icons/mob/species/werebeast/masks.dmi b/icons/inventory/face/mob_werebeast.dmi similarity index 100% rename from icons/mob/species/werebeast/masks.dmi rename to icons/inventory/face/mob_werebeast.dmi diff --git a/icons/obj/clothing/shoes.dmi b/icons/inventory/feet/item.dmi similarity index 100% rename from icons/obj/clothing/shoes.dmi rename to icons/inventory/feet/item.dmi diff --git a/icons/inventory/feet/item_vr.dmi b/icons/inventory/feet/item_vr.dmi new file mode 100644 index 0000000000..cfba06c39b Binary files /dev/null and b/icons/inventory/feet/item_vr.dmi differ diff --git a/icons/mob/feet.dmi b/icons/inventory/feet/mob.dmi similarity index 100% rename from icons/mob/feet.dmi rename to icons/inventory/feet/mob.dmi diff --git a/icons/mob/species/teshari/shoes.dmi b/icons/inventory/feet/mob_teshari.dmi similarity index 100% rename from icons/mob/species/teshari/shoes.dmi rename to icons/inventory/feet/mob_teshari.dmi diff --git a/icons/mob/species/vox/shoes.dmi b/icons/inventory/feet/mob_vox.dmi similarity index 100% rename from icons/mob/species/vox/shoes.dmi rename to icons/inventory/feet/mob_vox.dmi diff --git a/icons/inventory/feet/mob_vr.dmi b/icons/inventory/feet/mob_vr.dmi new file mode 100644 index 0000000000..c717e731fb Binary files /dev/null and b/icons/inventory/feet/mob_vr.dmi differ diff --git a/icons/mob/species/werebeast/feet.dmi b/icons/inventory/feet/mob_werebeast.dmi similarity index 100% rename from icons/mob/species/werebeast/feet.dmi rename to icons/inventory/feet/mob_werebeast.dmi diff --git a/icons/obj/clothing/gloves.dmi b/icons/inventory/hands/item.dmi similarity index 62% rename from icons/obj/clothing/gloves.dmi rename to icons/inventory/hands/item.dmi index bfb27a0ec8..9949cefb10 100644 Binary files a/icons/obj/clothing/gloves.dmi and b/icons/inventory/hands/item.dmi differ diff --git a/icons/inventory/hands/item_vr.dmi b/icons/inventory/hands/item_vr.dmi new file mode 100644 index 0000000000..ba5e3bc134 Binary files /dev/null and b/icons/inventory/hands/item_vr.dmi differ diff --git a/icons/mob/hands.dmi b/icons/inventory/hands/mob.dmi similarity index 100% rename from icons/mob/hands.dmi rename to icons/inventory/hands/mob.dmi diff --git a/icons/mob/species/teshari/gloves.dmi b/icons/inventory/hands/mob_teshari.dmi similarity index 100% rename from icons/mob/species/teshari/gloves.dmi rename to icons/inventory/hands/mob_teshari.dmi diff --git a/icons/mob/species/vox/gloves.dmi b/icons/inventory/hands/mob_vox.dmi similarity index 100% rename from icons/mob/species/vox/gloves.dmi rename to icons/inventory/hands/mob_vox.dmi diff --git a/icons/inventory/hands/mob_vr.dmi b/icons/inventory/hands/mob_vr.dmi new file mode 100644 index 0000000000..c2a8db76f8 Binary files /dev/null and b/icons/inventory/hands/mob_vr.dmi differ diff --git a/icons/mob/species/werebeast/hands.dmi b/icons/inventory/hands/mob_werebeast.dmi similarity index 100% rename from icons/mob/species/werebeast/hands.dmi rename to icons/inventory/hands/mob_werebeast.dmi diff --git a/icons/obj/clothing/hats.dmi b/icons/inventory/head/item.dmi similarity index 100% rename from icons/obj/clothing/hats.dmi rename to icons/inventory/head/item.dmi diff --git a/icons/obj/clothing/species/akula/hats.dmi b/icons/inventory/head/item_akula.dmi similarity index 100% rename from icons/obj/clothing/species/akula/hats.dmi rename to icons/inventory/head/item_akula.dmi diff --git a/icons/obj/clothing/species/sergal/hats.dmi b/icons/inventory/head/item_sergal.dmi similarity index 100% rename from icons/obj/clothing/species/sergal/hats.dmi rename to icons/inventory/head/item_sergal.dmi diff --git a/icons/obj/clothing/species/skrell/hats.dmi b/icons/inventory/head/item_skrell.dmi similarity index 100% rename from icons/obj/clothing/species/skrell/hats.dmi rename to icons/inventory/head/item_skrell.dmi diff --git a/icons/obj/clothing/species/tajaran/hats.dmi b/icons/inventory/head/item_tajaran.dmi similarity index 100% rename from icons/obj/clothing/species/tajaran/hats.dmi rename to icons/inventory/head/item_tajaran.dmi diff --git a/icons/obj/clothing/species/teshari/hats.dmi b/icons/inventory/head/item_teshari.dmi similarity index 100% rename from icons/obj/clothing/species/teshari/hats.dmi rename to icons/inventory/head/item_teshari.dmi diff --git a/icons/obj/clothing/species/unathi/hats.dmi b/icons/inventory/head/item_unathi.dmi similarity index 100% rename from icons/obj/clothing/species/unathi/hats.dmi rename to icons/inventory/head/item_unathi.dmi diff --git a/icons/obj/clothing/species/vox/hats.dmi b/icons/inventory/head/item_vox.dmi similarity index 100% rename from icons/obj/clothing/species/vox/hats.dmi rename to icons/inventory/head/item_vox.dmi diff --git a/icons/inventory/head/item_vr.dmi b/icons/inventory/head/item_vr.dmi new file mode 100644 index 0000000000..929960272b Binary files /dev/null and b/icons/inventory/head/item_vr.dmi differ diff --git a/icons/obj/clothing/species/vulpkanin/hats.dmi b/icons/inventory/head/item_vulpkanin.dmi similarity index 100% rename from icons/obj/clothing/species/vulpkanin/hats.dmi rename to icons/inventory/head/item_vulpkanin.dmi diff --git a/icons/mob/head.dmi b/icons/inventory/head/mob.dmi similarity index 100% rename from icons/mob/head.dmi rename to icons/inventory/head/mob.dmi diff --git a/icons/mob/species/akula/helmet_vr.dmi b/icons/inventory/head/mob_akula.dmi similarity index 100% rename from icons/mob/species/akula/helmet_vr.dmi rename to icons/inventory/head/mob_akula.dmi diff --git a/icons/mob/species/teshari/head_ch.dmi b/icons/inventory/head/mob_ch_teshari.dmi similarity index 100% rename from icons/mob/species/teshari/head_ch.dmi rename to icons/inventory/head/mob_ch_teshari.dmi diff --git a/icons/mob/species/sergal/helmet_vr.dmi b/icons/inventory/head/mob_sergal.dmi similarity index 100% rename from icons/mob/species/sergal/helmet_vr.dmi rename to icons/inventory/head/mob_sergal.dmi diff --git a/icons/mob/species/skrell/helmet.dmi b/icons/inventory/head/mob_skrell.dmi similarity index 100% rename from icons/mob/species/skrell/helmet.dmi rename to icons/inventory/head/mob_skrell.dmi diff --git a/icons/mob/species/tajaran/helmet.dmi b/icons/inventory/head/mob_tajaran.dmi similarity index 100% rename from icons/mob/species/tajaran/helmet.dmi rename to icons/inventory/head/mob_tajaran.dmi diff --git a/icons/mob/species/teshari/head.dmi b/icons/inventory/head/mob_teshari.dmi similarity index 100% rename from icons/mob/species/teshari/head.dmi rename to icons/inventory/head/mob_teshari.dmi diff --git a/icons/mob/species/unathi/helmet.dmi b/icons/inventory/head/mob_unathi.dmi similarity index 100% rename from icons/mob/species/unathi/helmet.dmi rename to icons/inventory/head/mob_unathi.dmi diff --git a/icons/mob/species/vox/head.dmi b/icons/inventory/head/mob_vox.dmi similarity index 100% rename from icons/mob/species/vox/head.dmi rename to icons/inventory/head/mob_vox.dmi diff --git a/icons/inventory/head/mob_vr.dmi b/icons/inventory/head/mob_vr.dmi new file mode 100644 index 0000000000..efde8d6aa5 Binary files /dev/null and b/icons/inventory/head/mob_vr.dmi differ diff --git a/icons/mob/species/skrell/helmet_vr.dmi b/icons/inventory/head/mob_vr_skrell.dmi similarity index 100% rename from icons/mob/species/skrell/helmet_vr.dmi rename to icons/inventory/head/mob_vr_skrell.dmi diff --git a/icons/mob/species/tajaran/helmet_vr.dmi b/icons/inventory/head/mob_vr_tajaran.dmi similarity index 100% rename from icons/mob/species/tajaran/helmet_vr.dmi rename to icons/inventory/head/mob_vr_tajaran.dmi diff --git a/icons/mob/species/teshari/helmet_vr.dmi b/icons/inventory/head/mob_vr_teshari.dmi similarity index 100% rename from icons/mob/species/teshari/helmet_vr.dmi rename to icons/inventory/head/mob_vr_teshari.dmi diff --git a/icons/mob/species/unathi/helmet_vr.dmi b/icons/inventory/head/mob_vr_unathi.dmi similarity index 100% rename from icons/mob/species/unathi/helmet_vr.dmi rename to icons/inventory/head/mob_vr_unathi.dmi diff --git a/icons/mob/species/vulpkanin/helmet_vr.dmi b/icons/inventory/head/mob_vr_vulpkanin.dmi similarity index 100% rename from icons/mob/species/vulpkanin/helmet_vr.dmi rename to icons/inventory/head/mob_vr_vulpkanin.dmi diff --git a/icons/mob/species/vulpkanin/helmet.dmi b/icons/inventory/head/mob_vulpkanin.dmi similarity index 100% rename from icons/mob/species/vulpkanin/helmet.dmi rename to icons/inventory/head/mob_vulpkanin.dmi diff --git a/icons/mob/species/werebeast/head.dmi b/icons/inventory/head/mob_werebeast.dmi similarity index 100% rename from icons/mob/species/werebeast/head.dmi rename to icons/inventory/head/mob_werebeast.dmi diff --git a/icons/obj/clothing/pouches.dmi b/icons/inventory/pockets/item.dmi similarity index 100% rename from icons/obj/clothing/pouches.dmi rename to icons/inventory/pockets/item.dmi diff --git a/icons/inventory/suit/item.dmi b/icons/inventory/suit/item.dmi new file mode 100644 index 0000000000..82ae304307 Binary files /dev/null and b/icons/inventory/suit/item.dmi differ diff --git a/icons/obj/clothing/species/akula/suits.dmi b/icons/inventory/suit/item_akula.dmi similarity index 100% rename from icons/obj/clothing/species/akula/suits.dmi rename to icons/inventory/suit/item_akula.dmi diff --git a/icons/obj/clothing/species/sergal/suits.dmi b/icons/inventory/suit/item_sergal.dmi similarity index 100% rename from icons/obj/clothing/species/sergal/suits.dmi rename to icons/inventory/suit/item_sergal.dmi diff --git a/icons/obj/clothing/species/skrell/suits.dmi b/icons/inventory/suit/item_skrell.dmi similarity index 100% rename from icons/obj/clothing/species/skrell/suits.dmi rename to icons/inventory/suit/item_skrell.dmi diff --git a/icons/obj/clothing/species/tajaran/suits.dmi b/icons/inventory/suit/item_tajaran.dmi similarity index 100% rename from icons/obj/clothing/species/tajaran/suits.dmi rename to icons/inventory/suit/item_tajaran.dmi diff --git a/icons/inventory/suit/item_teshari.dmi b/icons/inventory/suit/item_teshari.dmi new file mode 100644 index 0000000000..840c4abb81 Binary files /dev/null and b/icons/inventory/suit/item_teshari.dmi differ diff --git a/icons/obj/clothing/species/unathi/suits.dmi b/icons/inventory/suit/item_unathi.dmi similarity index 100% rename from icons/obj/clothing/species/unathi/suits.dmi rename to icons/inventory/suit/item_unathi.dmi diff --git a/icons/obj/clothing/species/vox/suits.dmi b/icons/inventory/suit/item_vox.dmi similarity index 100% rename from icons/obj/clothing/species/vox/suits.dmi rename to icons/inventory/suit/item_vox.dmi diff --git a/icons/inventory/suit/item_vr.dmi b/icons/inventory/suit/item_vr.dmi new file mode 100644 index 0000000000..8357527923 Binary files /dev/null and b/icons/inventory/suit/item_vr.dmi differ diff --git a/icons/obj/clothing/species/vulpkanin/suits.dmi b/icons/inventory/suit/item_vulpkanin.dmi similarity index 100% rename from icons/obj/clothing/species/vulpkanin/suits.dmi rename to icons/inventory/suit/item_vulpkanin.dmi diff --git a/icons/inventory/suit/mob.dmi b/icons/inventory/suit/mob.dmi new file mode 100644 index 0000000000..f5c48376be Binary files /dev/null and b/icons/inventory/suit/mob.dmi differ diff --git a/icons/mob/species/akula/suit_vr.dmi b/icons/inventory/suit/mob_akula.dmi similarity index 100% rename from icons/mob/species/akula/suit_vr.dmi rename to icons/inventory/suit/mob_akula.dmi diff --git a/icons/mob/species/teshari/suit_ch.dmi b/icons/inventory/suit/mob_ch_teshari.dmi similarity index 100% rename from icons/mob/species/teshari/suit_ch.dmi rename to icons/inventory/suit/mob_ch_teshari.dmi diff --git a/icons/mob/species/sergal/suit_vr.dmi b/icons/inventory/suit/mob_sergal.dmi similarity index 100% rename from icons/mob/species/sergal/suit_vr.dmi rename to icons/inventory/suit/mob_sergal.dmi diff --git a/icons/mob/species/skrell/suit.dmi b/icons/inventory/suit/mob_skrell.dmi similarity index 100% rename from icons/mob/species/skrell/suit.dmi rename to icons/inventory/suit/mob_skrell.dmi diff --git a/icons/mob/species/tajaran/suit.dmi b/icons/inventory/suit/mob_tajaran.dmi similarity index 100% rename from icons/mob/species/tajaran/suit.dmi rename to icons/inventory/suit/mob_tajaran.dmi diff --git a/icons/inventory/suit/mob_teshari.dmi b/icons/inventory/suit/mob_teshari.dmi new file mode 100644 index 0000000000..1fb217782e Binary files /dev/null and b/icons/inventory/suit/mob_teshari.dmi differ diff --git a/icons/mob/species/unathi/suit.dmi b/icons/inventory/suit/mob_unathi.dmi similarity index 100% rename from icons/mob/species/unathi/suit.dmi rename to icons/inventory/suit/mob_unathi.dmi diff --git a/icons/mob/species/vox/suit.dmi b/icons/inventory/suit/mob_vox.dmi similarity index 100% rename from icons/mob/species/vox/suit.dmi rename to icons/inventory/suit/mob_vox.dmi diff --git a/icons/inventory/suit/mob_vr.dmi b/icons/inventory/suit/mob_vr.dmi new file mode 100644 index 0000000000..24d7365930 Binary files /dev/null and b/icons/inventory/suit/mob_vr.dmi differ diff --git a/icons/mob/species/skrell/suit_vr.dmi b/icons/inventory/suit/mob_vr_skrell.dmi similarity index 100% rename from icons/mob/species/skrell/suit_vr.dmi rename to icons/inventory/suit/mob_vr_skrell.dmi diff --git a/icons/mob/species/tajaran/suit_vr.dmi b/icons/inventory/suit/mob_vr_tajaran.dmi similarity index 100% rename from icons/mob/species/tajaran/suit_vr.dmi rename to icons/inventory/suit/mob_vr_tajaran.dmi diff --git a/icons/mob/species/teshari/suit_vr.dmi b/icons/inventory/suit/mob_vr_teshari.dmi similarity index 100% rename from icons/mob/species/teshari/suit_vr.dmi rename to icons/inventory/suit/mob_vr_teshari.dmi diff --git a/icons/mob/species/unathi/suit_vr.dmi b/icons/inventory/suit/mob_vr_unathi.dmi similarity index 100% rename from icons/mob/species/unathi/suit_vr.dmi rename to icons/inventory/suit/mob_vr_unathi.dmi diff --git a/icons/mob/species/vulpkanin/suit_vr.dmi b/icons/inventory/suit/mob_vr_vulpkanin.dmi similarity index 100% rename from icons/mob/species/vulpkanin/suit_vr.dmi rename to icons/inventory/suit/mob_vr_vulpkanin.dmi diff --git a/icons/mob/species/vulpkanin/suit.dmi b/icons/inventory/suit/mob_vulpkanin.dmi similarity index 100% rename from icons/mob/species/vulpkanin/suit.dmi rename to icons/inventory/suit/mob_vulpkanin.dmi diff --git a/icons/mob/species/werebeast/suit.dmi b/icons/inventory/suit/mob_werebeast.dmi similarity index 100% rename from icons/mob/species/werebeast/suit.dmi rename to icons/inventory/suit/mob_werebeast.dmi diff --git a/icons/mob/belt_mirror.dmi b/icons/inventory/suit_store/mob.dmi similarity index 100% rename from icons/mob/belt_mirror.dmi rename to icons/inventory/suit_store/mob.dmi diff --git a/icons/mob/species/teshari/belt_mirror.dmi b/icons/inventory/suit_store/mob_teshari.dmi similarity index 100% rename from icons/mob/species/teshari/belt_mirror.dmi rename to icons/inventory/suit_store/mob_teshari.dmi diff --git a/icons/mob/species/werebeast/belt_mirror.dmi b/icons/inventory/suit_store/mob_werebeast.dmi similarity index 100% rename from icons/mob/species/werebeast/belt_mirror.dmi rename to icons/inventory/suit_store/mob_werebeast.dmi diff --git a/icons/inventory/uniform/item.dmi b/icons/inventory/uniform/item.dmi new file mode 100644 index 0000000000..08cc0cb815 Binary files /dev/null and b/icons/inventory/uniform/item.dmi differ diff --git a/icons/inventory/uniform/item_teshari.dmi b/icons/inventory/uniform/item_teshari.dmi new file mode 100644 index 0000000000..08a7df384a Binary files /dev/null and b/icons/inventory/uniform/item_teshari.dmi differ diff --git a/icons/inventory/uniform/item_vr.dmi b/icons/inventory/uniform/item_vr.dmi new file mode 100644 index 0000000000..e3242dda79 Binary files /dev/null and b/icons/inventory/uniform/item_vr.dmi differ diff --git a/icons/inventory/uniform/mob.dmi b/icons/inventory/uniform/mob.dmi new file mode 100644 index 0000000000..87cee8aca9 Binary files /dev/null and b/icons/inventory/uniform/mob.dmi differ diff --git a/icons/inventory/uniform/mob_rolled_down.dmi b/icons/inventory/uniform/mob_rolled_down.dmi new file mode 100644 index 0000000000..7c7afd8594 Binary files /dev/null and b/icons/inventory/uniform/mob_rolled_down.dmi differ diff --git a/icons/inventory/uniform/mob_sleeves_rolled.dmi b/icons/inventory/uniform/mob_sleeves_rolled.dmi new file mode 100644 index 0000000000..5803d1a3a1 Binary files /dev/null and b/icons/inventory/uniform/mob_sleeves_rolled.dmi differ diff --git a/icons/inventory/uniform/mob_teshari.dmi b/icons/inventory/uniform/mob_teshari.dmi new file mode 100644 index 0000000000..b507f4e4fb Binary files /dev/null and b/icons/inventory/uniform/mob_teshari.dmi differ diff --git a/icons/inventory/uniform/mob_vox.dmi b/icons/inventory/uniform/mob_vox.dmi new file mode 100644 index 0000000000..870fa34d38 Binary files /dev/null and b/icons/inventory/uniform/mob_vox.dmi differ diff --git a/icons/inventory/uniform/mob_vr.dmi b/icons/inventory/uniform/mob_vr.dmi new file mode 100644 index 0000000000..3dc58ffd2c Binary files /dev/null and b/icons/inventory/uniform/mob_vr.dmi differ diff --git a/icons/inventory/uniform/mob_vr_rolled_down.dmi b/icons/inventory/uniform/mob_vr_rolled_down.dmi new file mode 100644 index 0000000000..8c82d1f7c2 Binary files /dev/null and b/icons/inventory/uniform/mob_vr_rolled_down.dmi differ diff --git a/icons/inventory/uniform/mob_werebeast.dmi b/icons/inventory/uniform/mob_werebeast.dmi new file mode 100644 index 0000000000..b1e9966b06 Binary files /dev/null and b/icons/inventory/uniform/mob_werebeast.dmi differ diff --git a/icons/mob/back.dmi b/icons/mob/back.dmi deleted file mode 100644 index bae46a47da..0000000000 Binary files a/icons/mob/back.dmi and /dev/null differ diff --git a/icons/mob/feet_vr.dmi b/icons/mob/feet_vr.dmi deleted file mode 100644 index b1fbd831a1..0000000000 Binary files a/icons/mob/feet_vr.dmi and /dev/null differ diff --git a/icons/mob/hands_vr.dmi b/icons/mob/hands_vr.dmi deleted file mode 100644 index 36e4219289..0000000000 Binary files a/icons/mob/hands_vr.dmi and /dev/null differ diff --git a/icons/mob/head.dmi.orig b/icons/mob/head.dmi.orig deleted file mode 100644 index 1ac40803aa..0000000000 Binary files a/icons/mob/head.dmi.orig and /dev/null differ diff --git a/icons/mob/head_vr.dmi b/icons/mob/head_vr.dmi deleted file mode 100644 index 417faba92c..0000000000 Binary files a/icons/mob/head_vr.dmi and /dev/null differ diff --git a/icons/mob/items/lefthand_suits.dmi b/icons/mob/items/lefthand_suits.dmi index d69739d40f..aab06d09ee 100644 Binary files a/icons/mob/items/lefthand_suits.dmi and b/icons/mob/items/lefthand_suits.dmi differ diff --git a/icons/mob/items/lefthand_suits_1.dmi b/icons/mob/items/lefthand_suits_1.dmi deleted file mode 100644 index 33e2d22930..0000000000 Binary files a/icons/mob/items/lefthand_suits_1.dmi and /dev/null differ diff --git a/icons/mob/items/lefthand_uniforms.dmi b/icons/mob/items/lefthand_uniforms.dmi index 832613e04a..29f70f0ec4 100644 Binary files a/icons/mob/items/lefthand_uniforms.dmi and b/icons/mob/items/lefthand_uniforms.dmi differ diff --git a/icons/mob/items/lefthand_uniforms_1.dmi b/icons/mob/items/lefthand_uniforms_1.dmi deleted file mode 100644 index 280af8518b..0000000000 Binary files a/icons/mob/items/lefthand_uniforms_1.dmi and /dev/null differ diff --git a/icons/mob/items/righthand_suits.dmi b/icons/mob/items/righthand_suits.dmi index 3e0d73d39d..6afe96f806 100644 Binary files a/icons/mob/items/righthand_suits.dmi and b/icons/mob/items/righthand_suits.dmi differ diff --git a/icons/mob/items/righthand_suits_1.dmi b/icons/mob/items/righthand_suits_1.dmi deleted file mode 100644 index e5be8ffab6..0000000000 Binary files a/icons/mob/items/righthand_suits_1.dmi and /dev/null differ diff --git a/icons/mob/items/righthand_uniforms.dmi b/icons/mob/items/righthand_uniforms.dmi index e889b35aee..877532b4cd 100644 Binary files a/icons/mob/items/righthand_uniforms.dmi and b/icons/mob/items/righthand_uniforms.dmi differ diff --git a/icons/mob/items/righthand_uniforms_1.dmi b/icons/mob/items/righthand_uniforms_1.dmi deleted file mode 100644 index 1508f67bed..0000000000 Binary files a/icons/mob/items/righthand_uniforms_1.dmi and /dev/null differ diff --git a/icons/mob/rig_back_vr.dmi b/icons/mob/rig_back_vr.dmi new file mode 100644 index 0000000000..aa676c0e94 Binary files /dev/null and b/icons/mob/rig_back_vr.dmi differ diff --git a/icons/mob/spacesuit.dmi b/icons/mob/spacesuit.dmi index 7c05421b31..7d7c0c61cf 100644 Binary files a/icons/mob/spacesuit.dmi and b/icons/mob/spacesuit.dmi differ diff --git a/icons/mob/spacesuit_vr.dmi b/icons/mob/spacesuit_vr.dmi deleted file mode 100644 index 836b3a623d..0000000000 Binary files a/icons/mob/spacesuit_vr.dmi and /dev/null differ diff --git a/icons/mob/species/teshari/back.dmi b/icons/mob/species/teshari/back.dmi deleted file mode 100644 index 9de0f3544c..0000000000 Binary files a/icons/mob/species/teshari/back.dmi and /dev/null differ diff --git a/icons/mob/species/teshari/deptcloak.dmi b/icons/mob/species/teshari/deptcloak.dmi deleted file mode 100644 index 7a9a412853..0000000000 Binary files a/icons/mob/species/teshari/deptcloak.dmi and /dev/null differ diff --git a/icons/mob/species/teshari/deptjacket.dmi b/icons/mob/species/teshari/deptjacket.dmi index b959be4b9b..020415a61e 100644 Binary files a/icons/mob/species/teshari/deptjacket.dmi and b/icons/mob/species/teshari/deptjacket.dmi differ diff --git a/icons/mob/species/teshari/suit.dmi b/icons/mob/species/teshari/suit.dmi deleted file mode 100644 index 714b0408a5..0000000000 Binary files a/icons/mob/species/teshari/suit.dmi and /dev/null differ diff --git a/icons/mob/species/teshari/teshari_cloak.dmi b/icons/mob/species/teshari/teshari_cloak.dmi index a79ed434ea..a222ede26b 100644 Binary files a/icons/mob/species/teshari/teshari_cloak.dmi and b/icons/mob/species/teshari/teshari_cloak.dmi differ diff --git a/icons/mob/species/teshari/teshari_hood.dmi b/icons/mob/species/teshari/teshari_hood.dmi deleted file mode 100644 index 64ae2eced3..0000000000 Binary files a/icons/mob/species/teshari/teshari_hood.dmi and /dev/null differ diff --git a/icons/mob/species/teshari/teshari_uniform.dmi b/icons/mob/species/teshari/teshari_uniform.dmi deleted file mode 100644 index 092f78a0e1..0000000000 Binary files a/icons/mob/species/teshari/teshari_uniform.dmi and /dev/null differ diff --git a/icons/mob/species/teshari/uniform.dmi b/icons/mob/species/teshari/uniform.dmi index cd853f3e15..aab4dcfe06 100644 Binary files a/icons/mob/species/teshari/uniform.dmi and b/icons/mob/species/teshari/uniform.dmi differ diff --git a/icons/mob/species/vox/uniform.dmi b/icons/mob/species/vox/uniform.dmi deleted file mode 100644 index fe53df15ed..0000000000 Binary files a/icons/mob/species/vox/uniform.dmi and /dev/null differ diff --git a/icons/mob/species/werebeast/uniform.dmi b/icons/mob/species/werebeast/uniform.dmi deleted file mode 100644 index 267847085f..0000000000 Binary files a/icons/mob/species/werebeast/uniform.dmi and /dev/null differ diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi deleted file mode 100644 index 58b92c82dd..0000000000 Binary files a/icons/mob/suit.dmi and /dev/null differ diff --git a/icons/mob/suit_1.dmi b/icons/mob/suit_1.dmi deleted file mode 100644 index 7515beba12..0000000000 Binary files a/icons/mob/suit_1.dmi and /dev/null differ diff --git a/icons/mob/suit_solgov.dmi b/icons/mob/suit_solgov.dmi deleted file mode 100644 index de20b89c17..0000000000 Binary files a/icons/mob/suit_solgov.dmi and /dev/null differ diff --git a/icons/mob/suit_vr.dmi b/icons/mob/suit_vr.dmi deleted file mode 100644 index 77862540b3..0000000000 Binary files a/icons/mob/suit_vr.dmi and /dev/null differ diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi deleted file mode 100644 index 9c210eb641..0000000000 Binary files a/icons/mob/uniform.dmi and /dev/null differ diff --git a/icons/mob/uniform_1.dmi b/icons/mob/uniform_1.dmi deleted file mode 100644 index 1f22a767b6..0000000000 Binary files a/icons/mob/uniform_1.dmi and /dev/null differ diff --git a/icons/mob/uniform_ch.dmi b/icons/mob/uniform_ch.dmi index 778bb710d6..bf2cf12125 100644 Binary files a/icons/mob/uniform_ch.dmi and b/icons/mob/uniform_ch.dmi differ diff --git a/icons/mob/uniform_fat.dmi b/icons/mob/uniform_fat.dmi deleted file mode 100644 index c887239f1f..0000000000 Binary files a/icons/mob/uniform_fat.dmi and /dev/null differ diff --git a/icons/mob/uniform_huge_old.dmi b/icons/mob/uniform_huge_old.dmi deleted file mode 100644 index 3bac93b933..0000000000 Binary files a/icons/mob/uniform_huge_old.dmi and /dev/null differ diff --git a/icons/mob/uniform_rolled_down.dmi b/icons/mob/uniform_rolled_down.dmi deleted file mode 100644 index b5002751cf..0000000000 Binary files a/icons/mob/uniform_rolled_down.dmi and /dev/null differ diff --git a/icons/mob/uniform_rolled_down_1.dmi b/icons/mob/uniform_rolled_down_1.dmi deleted file mode 100644 index 2412be7420..0000000000 Binary files a/icons/mob/uniform_rolled_down_1.dmi and /dev/null differ diff --git a/icons/mob/uniform_rolled_down_vr.dmi b/icons/mob/uniform_rolled_down_vr.dmi deleted file mode 100644 index 726708d822..0000000000 Binary files a/icons/mob/uniform_rolled_down_vr.dmi and /dev/null differ diff --git a/icons/mob/uniform_sleeves_rolled.dmi b/icons/mob/uniform_sleeves_rolled.dmi deleted file mode 100644 index 1c7c6ef7c3..0000000000 Binary files a/icons/mob/uniform_sleeves_rolled.dmi and /dev/null differ diff --git a/icons/mob/uniform_sleeves_rolled_1.dmi b/icons/mob/uniform_sleeves_rolled_1.dmi deleted file mode 100644 index 2412be7420..0000000000 Binary files a/icons/mob/uniform_sleeves_rolled_1.dmi and /dev/null differ diff --git a/icons/mob/uniform_sleeves_rolled_vr.dmi b/icons/mob/uniform_sleeves_rolled_vr.dmi deleted file mode 100644 index cf74d73796..0000000000 Binary files a/icons/mob/uniform_sleeves_rolled_vr.dmi and /dev/null differ diff --git a/icons/mob/uniform_solgov.dmi b/icons/mob/uniform_solgov.dmi deleted file mode 100644 index ecc6310dc4..0000000000 Binary files a/icons/mob/uniform_solgov.dmi and /dev/null differ diff --git a/icons/mob/uniform_vr.dmi b/icons/mob/uniform_vr.dmi deleted file mode 100644 index cd9683972e..0000000000 Binary files a/icons/mob/uniform_vr.dmi and /dev/null differ diff --git a/icons/mob/uniform_yw.dmi b/icons/mob/uniform_yw.dmi index b14fd00648..fb04bf07f2 100644 Binary files a/icons/mob/uniform_yw.dmi and b/icons/mob/uniform_yw.dmi differ diff --git a/icons/obj/64x64_ch.dmi b/icons/obj/64x64_ch.dmi index eba8710141..6f2493d610 100644 Binary files a/icons/obj/64x64_ch.dmi and b/icons/obj/64x64_ch.dmi differ diff --git a/icons/obj/clothing/belts.dmi b/icons/obj/clothing/belts.dmi deleted file mode 100644 index 4f97b40e27..0000000000 Binary files a/icons/obj/clothing/belts.dmi and /dev/null differ diff --git a/icons/obj/clothing/gloves_vr.dmi b/icons/obj/clothing/gloves_vr.dmi deleted file mode 100644 index c682016730..0000000000 Binary files a/icons/obj/clothing/gloves_vr.dmi and /dev/null differ diff --git a/icons/obj/clothing/hats_vr.dmi b/icons/obj/clothing/hats_vr.dmi deleted file mode 100644 index bc6cd12245..0000000000 Binary files a/icons/obj/clothing/hats_vr.dmi and /dev/null differ diff --git a/icons/obj/clothing/helmets_vr.dmi b/icons/obj/clothing/helmets_vr.dmi deleted file mode 100644 index 3b210b9980..0000000000 Binary files a/icons/obj/clothing/helmets_vr.dmi and /dev/null differ diff --git a/icons/obj/clothing/rings.dmi b/icons/obj/clothing/rings.dmi deleted file mode 100644 index 5274bf8735..0000000000 Binary files a/icons/obj/clothing/rings.dmi and /dev/null differ diff --git a/icons/obj/clothing/shoes_vr.dmi b/icons/obj/clothing/shoes_vr.dmi deleted file mode 100644 index 5b81be4b1f..0000000000 Binary files a/icons/obj/clothing/shoes_vr.dmi and /dev/null differ diff --git a/icons/obj/clothing/spacesuits.dmi b/icons/obj/clothing/spacesuits.dmi deleted file mode 100644 index ae9cc5764f..0000000000 Binary files a/icons/obj/clothing/spacesuits.dmi and /dev/null differ diff --git a/icons/obj/clothing/spacesuits_vr.dmi b/icons/obj/clothing/spacesuits_vr.dmi deleted file mode 100644 index cf74d73796..0000000000 Binary files a/icons/obj/clothing/spacesuits_vr.dmi and /dev/null differ diff --git a/icons/obj/clothing/species/teshari/suits.dmi b/icons/obj/clothing/species/teshari/suits.dmi index 2c0281efe4..820649befa 100644 Binary files a/icons/obj/clothing/species/teshari/suits.dmi and b/icons/obj/clothing/species/teshari/suits.dmi differ diff --git a/icons/obj/clothing/species/teshari/uniform.dmi b/icons/obj/clothing/species/teshari/uniform.dmi deleted file mode 100644 index 82d4d126da..0000000000 Binary files a/icons/obj/clothing/species/teshari/uniform.dmi and /dev/null differ diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi deleted file mode 100644 index 788bfa06ba..0000000000 Binary files a/icons/obj/clothing/suits.dmi and /dev/null differ diff --git a/icons/obj/clothing/suits_1.dmi b/icons/obj/clothing/suits_1.dmi deleted file mode 100644 index 3e905eda58..0000000000 Binary files a/icons/obj/clothing/suits_1.dmi and /dev/null differ diff --git a/icons/obj/clothing/suits_solgov.dmi b/icons/obj/clothing/suits_solgov.dmi deleted file mode 100644 index e5259d22e8..0000000000 Binary files a/icons/obj/clothing/suits_solgov.dmi and /dev/null differ diff --git a/icons/obj/clothing/suits_vr.dmi b/icons/obj/clothing/suits_vr.dmi deleted file mode 100644 index 31083070be..0000000000 Binary files a/icons/obj/clothing/suits_vr.dmi and /dev/null differ diff --git a/icons/obj/clothing/ties.dmi b/icons/obj/clothing/ties.dmi deleted file mode 100644 index 21d8bbff1d..0000000000 Binary files a/icons/obj/clothing/ties.dmi and /dev/null differ diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi deleted file mode 100644 index 7b397d3ead..0000000000 Binary files a/icons/obj/clothing/uniforms.dmi and /dev/null differ diff --git a/icons/obj/clothing/uniforms_1.dmi b/icons/obj/clothing/uniforms_1.dmi deleted file mode 100644 index 348cf8dd94..0000000000 Binary files a/icons/obj/clothing/uniforms_1.dmi and /dev/null differ diff --git a/icons/obj/clothing/uniforms_solgov.dmi b/icons/obj/clothing/uniforms_solgov.dmi deleted file mode 100644 index 2b55ea04a2..0000000000 Binary files a/icons/obj/clothing/uniforms_solgov.dmi and /dev/null differ diff --git a/icons/obj/clothing/uniforms_vr.dmi b/icons/obj/clothing/uniforms_vr.dmi deleted file mode 100644 index 4dc173cff2..0000000000 Binary files a/icons/obj/clothing/uniforms_vr.dmi and /dev/null differ diff --git a/icons/obj/doors/1x4blast_hor_sec.dmi b/icons/obj/doors/1x4blast_hor_sec.dmi new file mode 100644 index 0000000000..53df08b41f Binary files /dev/null and b/icons/obj/doors/1x4blast_hor_sec.dmi differ diff --git a/icons/obj/doors/1x4blast_vert_sec.dmi b/icons/obj/doors/1x4blast_vert_sec.dmi new file mode 100644 index 0000000000..73cbc1b95f Binary files /dev/null and b/icons/obj/doors/1x4blast_vert_sec.dmi differ diff --git a/icons/obj/entertainment_monitor.dmi b/icons/obj/entertainment_monitor.dmi new file mode 100644 index 0000000000..40250b33e0 Binary files /dev/null and b/icons/obj/entertainment_monitor.dmi differ diff --git a/icons/obj/overmap_vr.dmi b/icons/obj/overmap_vr.dmi index 347f06ead1..b31599d5a6 100644 Binary files a/icons/obj/overmap_vr.dmi and b/icons/obj/overmap_vr.dmi differ diff --git a/icons/obj/rig_modules.dmi b/icons/obj/rig_modules.dmi index 5c81745fae..a63fcc23a8 100644 Binary files a/icons/obj/rig_modules.dmi and b/icons/obj/rig_modules.dmi differ diff --git a/icons/obj/rig_modules_vr.dmi b/icons/obj/rig_modules_vr.dmi index 1ee2c008aa..687ea5ba78 100644 Binary files a/icons/obj/rig_modules_vr.dmi and b/icons/obj/rig_modules_vr.dmi differ diff --git a/icons/obj/stacks.dmi b/icons/obj/stacks.dmi index 1e8faff31f..430314b223 100644 Binary files a/icons/obj/stacks.dmi and b/icons/obj/stacks.dmi differ diff --git a/icons/obj/suitdispenser.dmi b/icons/obj/suitdispenser.dmi index 09723225a4..def549b9bb 100644 Binary files a/icons/obj/suitdispenser.dmi and b/icons/obj/suitdispenser.dmi differ diff --git a/icons/obj/telescience.dmi b/icons/obj/telescience.dmi index 28da1b8e73..c76b4a3c78 100644 Binary files a/icons/obj/telescience.dmi and b/icons/obj/telescience.dmi differ diff --git a/icons/skybox/virgo3b.dmi b/icons/skybox/virgo3b.dmi new file mode 100644 index 0000000000..2192fab846 Binary files /dev/null and b/icons/skybox/virgo3b.dmi differ diff --git a/icons/turf/flooring/asteroid.dmi b/icons/turf/flooring/asteroid.dmi index f9c0b2cdf8..9df9089658 100644 Binary files a/icons/turf/flooring/asteroid.dmi and b/icons/turf/flooring/asteroid.dmi differ diff --git a/icons/turf/outdoors.dmi b/icons/turf/outdoors.dmi index f08a94a80f..5b9ee2d7a5 100644 Binary files a/icons/turf/outdoors.dmi and b/icons/turf/outdoors.dmi differ diff --git a/icons/turf/outdoors_edge.dmi b/icons/turf/outdoors_edge.dmi index 1c852ecaeb..764336a4f0 100644 Binary files a/icons/turf/outdoors_edge.dmi and b/icons/turf/outdoors_edge.dmi differ diff --git a/icons/turf/walls.dmi b/icons/turf/walls.dmi index 52f1fa13e3..e3fc2202e9 100644 Binary files a/icons/turf/walls.dmi and b/icons/turf/walls.dmi differ diff --git a/icons/vore/custom_clothes_vr.dmi b/icons/vore/custom_clothes_vr.dmi index d9b172cd5a..595ce2da40 100644 Binary files a/icons/vore/custom_clothes_vr.dmi and b/icons/vore/custom_clothes_vr.dmi differ diff --git a/icons/vore/nullsuits.dmi b/icons/vore/nullsuits.dmi index 8cd79585f0..7e4f9720f4 100644 Binary files a/icons/vore/nullsuits.dmi and b/icons/vore/nullsuits.dmi differ diff --git a/icons/vore/smoleworld_vr.dmi b/icons/vore/smoleworld_vr.dmi index 213543e6c1..ae09c350c3 100644 Binary files a/icons/vore/smoleworld_vr.dmi and b/icons/vore/smoleworld_vr.dmi differ diff --git a/librust_g.so b/librust_g.so index 9d46da045f..239f12d713 100644 Binary files a/librust_g.so and b/librust_g.so differ diff --git a/maps/offmap_vr/om_ships/aro3.dmm b/maps/offmap_vr/om_ships/aro3.dmm index 547888d6a3..f31d589f73 100644 --- a/maps/offmap_vr/om_ships/aro3.dmm +++ b/maps/offmap_vr/om_ships/aro3.dmm @@ -2589,6 +2589,10 @@ /obj/structure/table/marble, /turf/simulated/floor/tiled/eris/cafe, /area/aro3/kitchen) +"vP" = ( +/obj/machinery/gear_dispenser/suit_fancy/aether, +/turf/simulated/floor/tiled/eris/steel/panels, +/area/aro3/eva_hall) "vQ" = ( /obj/structure/table/steel, /obj/item/device/flashlight/lamp, @@ -3953,6 +3957,22 @@ /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 8 }, +<<<<<<< HEAD +||||||| parent of df7a88506f... Merge pull request #11032 from VOREStation/Arokha/megaport +/obj/machinery/light_switch{ + dir = 1; + pixel_y = -24 + }, +/obj/item/device/uav/loaded, +======= +/obj/machinery/light_switch{ + dir = 1; + pixel_y = -24 + }, +/obj/item/device/uav/loaded{ + nickname = "FoxBot Beta" + }, +>>>>>>> df7a88506f... Merge pull request #11032 from VOREStation/Arokha/megaport /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/aro3/repair_bay) "Gy" = ( @@ -26082,6 +26102,10 @@ Ua }, /turf/simulated/floor/reinforced/airless, /area/space) +"bF" = ( +/obj/machinery/light/floortube, +/turf/simulated/floor/tiled/eris/dark/danger, +/area/aro3/repair_bay) "bH" = ( /obj/structure/closet/walllocker/emerglocker/north{ dir = 8; @@ -26628,6 +26652,12 @@ Ua }, /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/aro3/power) +"gc" = ( +/obj/machinery/light/floortube{ + dir = 8 + }, +/turf/simulated/floor/tiled/eris/dark, +/area/aro3/surfluid) "gd" = ( /turf/simulated/floor/wood, /area/aro3/suite_port) @@ -26999,8 +27029,18 @@ Ua }, /turf/simulated/floor/tiled/eris/dark/panels, /area/aro3/hallway_bunkrooms) +"iI" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/light_switch{ + pixel_x = -25; + pixel_y = 25 + }, +/turf/simulated/floor/tiled/eris/steel/bar_dance, +/area/aro3/bar) "iJ" = ( -/obj/structure/bed/chair/sofa/black{ +/obj/structure/bed/chair/sofa/corp{ dir = 1 }, /turf/simulated/floor/tiled/eris/dark, @@ -27091,8 +27131,8 @@ Ua /turf/simulated/floor/tiled/eris/steel/panels, /area/aro3/function) "jh" = ( -/obj/structure/bed/chair/sofa/black/corner{ - dir = 4 +/obj/structure/bed/chair/sofa/corp/corner{ + dir = 1 }, /turf/simulated/floor/tiled/eris/dark, /area/aro3/function) @@ -27183,7 +27223,7 @@ Ua /area/aro3/medical) "ke" = ( /obj/structure/fans/hardlight, -/obj/machinery/door/blast/multi_tile/two_tile_hor{ +/obj/machinery/door/blast/multi_tile/four_tile_hor_sec{ id = "aroshipshutter_ramp" }, /turf/simulated/floor/reinforced, @@ -27220,6 +27260,9 @@ Ua /obj/structure/cable/cyan{ icon_state = "1-8" }, +/obj/machinery/light{ + dir = 4 + }, /turf/simulated/floor/carpet/turcarpet, /area/aro3/suite_starboard) "kl" = ( @@ -27399,6 +27442,15 @@ Ua }, /turf/simulated/floor/wood, /area/aro3/suite_starboard) +"lC" = ( +/obj/structure/railing/grey{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/water/indoors/surfluid, +/area/aro3/workshop) "lI" = ( /obj/structure/cable/cyan{ icon_state = "1-2" @@ -27485,10 +27537,8 @@ Ua /turf/simulated/floor/tiled/eris/dark/techfloor_grid, /area/aro3/hallway_port) "mG" = ( -/obj/structure/closet/walllocker/emerglocker/north, -/obj/machinery/light_switch{ - dir = 4; - pixel_x = -25 +/obj/machinery/vending/boozeomat{ + density = 0 }, /turf/simulated/floor/tiled/eris/steel/bar_dance, /area/aro3/bar) @@ -27575,7 +27625,7 @@ Ua /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/aro3/power) "nq" = ( -/obj/structure/bed/chair/sofa/black/right{ +/obj/structure/bed/chair/sofa/corp/right{ dir = 8 }, /turf/simulated/floor/tiled/eris/dark, @@ -27931,10 +27981,10 @@ Ua /area/aro3/workshop) "qV" = ( /obj/machinery/light{ - dir = 1 + dir = 4 }, -/turf/simulated/floor/plating/eris/under, -/area/aro3/power) +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/aro3/hallway_port) "qW" = ( /obj/structure/railing/grey{ dir = 4 @@ -28033,10 +28083,10 @@ Ua /turf/simulated/floor/tiled/eris/dark/danger, /area/aro3/flight_deck) "rx" = ( -/obj/structure/bed/chair/sofa/black/right{ +/obj/machinery/light, +/obj/structure/bed/chair/sofa/corp/left{ dir = 1 }, -/obj/machinery/light, /turf/simulated/floor/tiled/eris/dark, /area/aro3/function) "rA" = ( @@ -28351,6 +28401,12 @@ Ua }, /turf/simulated/floor/tiled/eris/dark/techfloor_grid, /area/aro3/hallway_port) +"uL" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/plating/eris/under, +/area/aro3/power) "uS" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, /obj/machinery/atmospherics/pipe/manifold/hidden/supply, @@ -28750,11 +28806,10 @@ Ua /turf/simulated/floor/tiled/eris/dark, /area/aro3/power) "xG" = ( -/obj/structure/fans/hardlight, /obj/structure/cable/cyan{ icon_state = "1-2" }, -/turf/simulated/floor/reinforced, +/turf/simulated/wall/rpshull, /area/aro3/flight_deck) "xI" = ( /obj/structure/flora/pottedplant/unusual, @@ -28828,6 +28883,15 @@ Ua }, /turf/simulated/floor/tiled/eris/dark/gray_platform, /area/aro3/repair_bay) +"yx" = ( +/obj/effect/shuttle_landmark{ + base_area = /area/space; + base_turf = /turf/space; + landmark_tag = "aronai3_aftstbd"; + name = "Aft and Starboard" + }, +/turf/space, +/area/space) "yy" = ( /obj/structure/cable/cyan{ icon_state = "1-2" @@ -29005,6 +29069,9 @@ Ua /obj/structure/cable/cyan{ icon_state = "2-4" }, +/obj/machinery/light/floortube{ + dir = 4 + }, /turf/simulated/floor/tiled/eris/dark, /area/aro3/surfluid) "zu" = ( @@ -29115,10 +29182,7 @@ Ua /turf/simulated/floor/tiled/eris/steel/bar_dance, /area/aro3/bar) "zY" = ( -/obj/machinery/vending/boozeomat{ - density = 0; - pixel_y = 32 - }, +/obj/structure/closet/walllocker/emerglocker/north, /turf/simulated/floor/tiled/eris/steel/bar_dance, /area/aro3/bar) "Aa" = ( @@ -29293,15 +29357,15 @@ Ua /area/aro3/hallway_starboard) "Bw" = ( /obj/structure/fans/hardlight, -/obj/machinery/door/blast/multi_tile/four_tile_hor{ - id = "aroshipshutter_ramp" - }, /obj/machinery/button/remote/blast_door{ dir = 4; id = "aroshipshutter_ramp"; name = "hangar shutters"; pixel_x = -28 }, +/obj/machinery/door/blast/multi_tile/four_tile_hor_sec{ + id = "aroshipshutter_ramp" + }, /turf/simulated/floor/reinforced, /area/aro3/flight_deck) "Bx" = ( @@ -29463,13 +29527,10 @@ Ua /turf/simulated/floor/tiled/techmaint, /area/aro3/hallway_bunkrooms) "Di" = ( -/obj/effect/shuttle_landmark{ - base_area = /area/space; - base_turf = /turf/space; - landmark_tag = "aronai3_aftstbd"; - name = "Aft and Starboard" +/obj/effect/floor_decal/industrial/warning/dust{ + dir = 1 }, -/turf/space, +/turf/simulated/floor/reinforced/airless, /area/space) "Dn" = ( /turf/space/internal_edge/left, @@ -29496,12 +29557,14 @@ Ua /turf/simulated/floor/tiled/eris/dark/gray_platform, /area/aro3/hallway_bunkrooms) "DA" = ( -/obj/structure/fans/hardlight, -/obj/machinery/door/blast/multi_tile/four_tile_hor{ - id = "aroshipshutter_ramp" +/obj/structure/cable/cyan{ + icon_state = "1-2" }, -/turf/simulated/floor/reinforced, -/area/aro3/flight_deck) +/obj/effect/floor_decal/industrial/warning/dust{ + dir = 1 + }, +/turf/simulated/floor/reinforced/airless, +/area/space) "DB" = ( /obj/structure/cable/cyan{ icon_state = "2-8" @@ -29522,7 +29585,7 @@ Ua /turf/simulated/floor/tiled/eris/steel/panels, /area/aro3/eva_hall) "DQ" = ( -/obj/structure/bed/chair/sofa/black/left{ +/obj/structure/bed/chair/sofa/corp/left{ dir = 4 }, /turf/simulated/floor/tiled/eris/dark, @@ -29599,6 +29662,12 @@ Ua }, /turf/simulated/floor/carpet/turcarpet, /area/aro3/suite_starboard) +"Ew" = ( +/obj/machinery/alarm/alarms_hidden{ + pixel_y = 26 + }, +/turf/simulated/floor/plating/eris/under, +/area/aro3/power) "Ex" = ( /obj/machinery/computer/ship/navigation/telescreen{ pixel_y = 23 @@ -29930,6 +29999,12 @@ Ua "Hv" = ( /turf/simulated/floor/bluegrid, /area/space) +"Hw" = ( +/obj/machinery/light/floortube{ + dir = 1 + }, +/turf/simulated/floor/tiled/eris/dark, +/area/aro3/function) "Hz" = ( /obj/structure/cable/cyan{ icon_state = "4-8" @@ -29952,7 +30027,7 @@ Ua /turf/space, /area/space) "HH" = ( -/obj/structure/bed/chair/sofa/black{ +/obj/structure/bed/chair/sofa/corp{ dir = 4 }, /turf/simulated/floor/tiled/eris/dark, @@ -30027,6 +30102,7 @@ Ua /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 8 }, +/obj/machinery/light/floortube, /turf/simulated/floor/tiled/eris/dark/danger, /area/aro3/workshop) "IK" = ( @@ -30301,6 +30377,9 @@ Ua /obj/machinery/clonepod/transhuman/full{ req_access = list() }, +/obj/machinery/light{ + dir = 1 + }, /turf/simulated/floor/tiled/eris/white/cargo, /area/aro3/medical) "Lp" = ( @@ -30319,7 +30398,7 @@ Ua /turf/simulated/floor/tiled/eris/white/cargo, /area/aro3/medical) "Ls" = ( -/obj/structure/bed/chair/sofa/black/corner{ +/obj/structure/bed/chair/sofa/corp/corner{ dir = 8 }, /turf/simulated/floor/tiled/eris/dark, @@ -30535,6 +30614,9 @@ Ua /obj/structure/cable/cyan{ icon_state = "1-4" }, +/obj/machinery/light{ + dir = 8 + }, /turf/simulated/floor/carpet/turcarpet, /area/aro3/suite_port) "Na" = ( @@ -30622,6 +30704,15 @@ Ua }, /turf/simulated/floor/tiled/eris/dark/violetcorener, /area/aro3/cockpit) +"NR" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/aro3/hallway_starboard) "NU" = ( /obj/structure/table/steel, /obj/machinery/atmospherics/unary/vent_pump/on{ @@ -30635,6 +30726,7 @@ Ua /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 1 }, +/obj/machinery/light, /turf/simulated/floor/tiled/eris/white/cargo, /area/aro3/medical) "Ob" = ( @@ -30784,11 +30876,12 @@ Ua /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 1 }, +/obj/machinery/light, /turf/simulated/floor/tiled/eris/dark/techfloor_grid, /area/aro3/hallway_bunkrooms) "Px" = ( -/obj/machinery/alarm/alarms_hidden{ - pixel_y = 26 +/obj/machinery/light{ + dir = 1 }, /turf/simulated/floor/plating/eris/under, /area/aro3/power) @@ -30819,7 +30912,7 @@ Ua /turf/simulated/floor/tiled/eris/white/golden, /area/aro3/medical) "PJ" = ( -/obj/structure/bed/chair/sofa/black{ +/obj/structure/bed/chair/sofa/corp{ dir = 8 }, /turf/simulated/floor/tiled/eris/dark, @@ -31298,10 +31391,10 @@ Ua /turf/simulated/wall/rpshull, /area/aro3/flight_deck) "Us" = ( -/obj/structure/bed/chair/sofa/black/left{ +/obj/machinery/light, +/obj/structure/bed/chair/sofa/corp/right{ dir = 1 }, -/obj/machinery/light, /turf/simulated/floor/tiled/eris/dark, /area/aro3/function) "Ut" = ( @@ -36260,7 +36353,7 @@ Ua Ua Ua Ua -Ua +Lf Ua Ua Ua @@ -37106,7 +37199,7 @@ Ua Ua Ua Ua -Lf +Ua Ua Ua Ua @@ -39792,10 +39885,10 @@ xj uE kH aq -TW +uL rP Gs -TW +uL aq Fn yn @@ -40076,7 +40169,7 @@ aS uE XQ aq -TW +Ew wx wx TW @@ -40218,7 +40311,7 @@ jV ED NV aq -qV +TW wW RK TW @@ -40365,7 +40458,7 @@ ps xa TW TW -TW +uL aq aq aq @@ -40891,7 +40984,7 @@ IT hb Xm hU -Cv +qV Cv Ej ZB @@ -41460,7 +41553,7 @@ zu uJ dp uJ -zu +Hw qX Fb zu @@ -41631,7 +41724,7 @@ Fr NC NC ue -Is +bF hi Hn NC @@ -41791,8 +41884,8 @@ Ov Ov Ov Ov -ke -hD +Ur +Di hD hD Au @@ -41934,7 +42027,7 @@ MA MA MA xG -te +DA te te sV @@ -42057,7 +42150,7 @@ CH NC NC cc -Is +bF Is Gt NC @@ -42075,7 +42168,7 @@ Ov Ov Ov Ov -DA +ke hD hD hD @@ -42161,7 +42254,7 @@ el el vZ lu -DM +vP XF XF Nu @@ -42170,7 +42263,7 @@ zu uJ nW uJ -zu +Hw qX Fb zu @@ -42190,7 +42283,7 @@ AD RJ vb yk -yk +gc yk Kw RJ @@ -42737,7 +42830,7 @@ Hd wF uX Yh -re +NR re bR BX @@ -43191,7 +43284,7 @@ WJ ly aY ki -aY +lC aY ly lq @@ -43893,7 +43986,7 @@ Yj LS EV mG -aO +iI DH Fx YY @@ -43908,7 +44001,7 @@ dO Ym tl nm -NF +TM fB gG ax @@ -46762,7 +46855,7 @@ Ua Ua Ua Ua -Di +Ua Ua Ua Ua @@ -47620,7 +47713,7 @@ Ua Ua Ua Ua -Ua +yx Ua Ua Ua diff --git a/maps/offmap_vr/talon/talon_v2.dm b/maps/offmap_vr/talon/talon_v2.dm index 2b2ede093c..1a8e79af15 100644 --- a/maps/offmap_vr/talon/talon_v2.dm +++ b/maps/offmap_vr/talon/talon_v2.dm @@ -343,7 +343,7 @@ speaking of, if some dumbass does take it and fly off solo then get themselves k /obj/item/clothing/under/rank/medical, /obj/item/clothing/under/rank/nurse, /obj/item/clothing/under/rank/orderly, - /obj/item/clothing/suit/storage/toggle/labcoat, + /obj/item/clothing/suit/storage/toggle/labcoat/modern, /obj/item/clothing/suit/storage/toggle/fr_jacket, /obj/item/clothing/shoes/white, /obj/item/device/radio/headset/talon, diff --git a/maps/southern_cross/items/clothing/sc_accessory.dm b/maps/southern_cross/items/clothing/sc_accessory.dm index 66d977ffc2..f47c344fcd 100644 --- a/maps/southern_cross/items/clothing/sc_accessory.dm +++ b/maps/southern_cross/items/clothing/sc_accessory.dm @@ -10,5 +10,5 @@ desc = "Sturdy mess of black synthcotton belts and buckles." icon_state = "pilot_webbing2" sprite_sheets = list( - SPECIES_TESHARI = 'icons/mob/species/teshari/ties.dmi' + SPECIES_TESHARI = 'icons/inventory/accessory/mob_teshari.dmi' ) \ No newline at end of file diff --git a/maps/southern_cross/southern_cross-casino.dmm b/maps/southern_cross/southern_cross-casino.dmm index 45e2d806da..a927ef7652 100644 --- a/maps/southern_cross/southern_cross-casino.dmm +++ b/maps/southern_cross/southern_cross-casino.dmm @@ -1,3 +1,4 @@ +"aa" = (/obj/effect/zone_divider,/mob/living/simple_mob/animal/passive/penguin{hovering = 1},/turf/simulated/floor/outdoors/ice,/area/surface/outside/plains/outpost) "ab" = (/turf/simulated/wall/golddiamond,/area/casino/casino_ship/wing_left) "ac" = (/turf/simulated/wall/golddiamond,/area/casino/casino_ship) "af" = (/obj/structure/reagent_dispensers/watertank/high,/turf/simulated/floor/wood/sif,/area/submap/lonehome) @@ -91,7 +92,6 @@ "cU" = (/obj/machinery/door/airlock/silver{name = "Sauna"},/obj/structure/fans/tiny,/turf/simulated/floor/wood,/area/casino/casino_ship) "cY" = (/obj/effect/decal/cleanable/dirt,/obj/random/junk,/turf/simulated/floor/wood/sif,/area/submap/lonehome) "cZ" = (/obj/structure/bed/chair/sofa/yellow/corner,/turf/simulated/floor/carpet/oracarpet,/area/casino/casino_ship) -"da" = (/obj/structure/wheel_of_fortune{pixel_y = 8},/obj/structure/table/fancyblack,/turf/simulated/floor/carpet/turcarpet,/area/casino/casino_ship) "db" = (/obj/structure/table/rack/shelf/steel,/obj/item/stack/material/log/sif{amount = 25},/obj/item/stack/material/log/sif{amount = 25},/turf/simulated/floor/plating,/area/submap/lonehome) "dc" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/flora/ausbushes/ppflowers,/turf/simulated/floor/outdoors/grass/heavy{outdoors = 0},/area/casino/casino_ship) "dd" = (/obj/machinery/light/small{dir = 1},/obj/machinery/recharge_station,/turf/simulated/floor/tiled/freezer,/area/casino/casino_ship) @@ -1020,7 +1020,6 @@ "YV" = (/obj/structure/bed/chair/oldsofa/left{dir = 8},/turf/simulated/floor/carpet/bcarpet,/area/casino/casino_ship) "YX" = (/obj/structure/bed/chair/sofa/yellow/right,/turf/simulated/floor/carpet/oracarpet,/area/casino/casino_ship) "Zc" = (/obj/structure/casino_table/roulette_chart,/turf/simulated/floor/carpet/oracarpet,/area/casino/casino_ship) -"Zi" = (/mob/living/simple_mob/animal/passive/penguin{hovering = 1},/obj/effect/zone_divider,/turf/simulated/floor/outdoors/ice,/area/surface/outside/plains/outpost) "Zj" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4; health = 1e+006},/obj/machinery/door/blast/shutters{dir = 2; id = "Casinodormshutters5"; layer = 3.5; name = "Casino Privacy shutters"},/turf/simulated/floor,/area/casino/casino_ship/dorms) "Zl" = (/obj/structure/bed/chair/comfy/red{dir = 4},/turf/simulated/floor/carpet/oracarpet,/area/casino/casino_ship) "Zn" = (/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/brown/border{dir = 8},/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/casino/casino_ship/wing_left) @@ -1151,7 +1150,7 @@ hPmcmcmcmcmcmcmcmcmcmcmcmcmcmcmcmNmNmNmNfBwtmNmNmNwtmNmNmNeGmNmNcCmNeGmNmNmNhXmN hPmcmcmcmcmcmcmcmcmcmcmcmcmcmcmcmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNwtaFmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNcCmNmNmNmNcCmNmNcCmNmNfBmNmNcCfBmNfBmNmNfBfBcCmNmNmNfBcCcCmNmNmNmNcCmNmNmNmNmNmNmNmNmNmNfBmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNdqmNmNbKbKbKbKbKgabKbKbKbKbKbKbKbKbKbKbKbKbKbKbKbKmNmNmNmNhXmNmNfBmNmNmNmNmNmNmNmNeGmNmNmNmNmNblmNmNmNmNmNmNmNav hPmcmcmcmcmcmcmcmcmcmcmcmcmcmcmNmNmNmNcCmNmNmNmNmNcjmNmNmNmNmNxrmNmNmNmNfBmNmNmNmNmNaFmNmNmNmNhYmNmNmNmNmNmNmNmNmNeGanmNmNmNmNmNgSmNmNmNmNmNmNmNmNmNmNmNmNmNmNKPmNmNcCmNmNmNmNmNaimNmNcCfBmNfBmNmNmNcCmNcCmNmNmNYhaFmNmNmNwtmNmNmNmNmNmNmNmNmNmNmNcChYmNmNmNmNmNmNbKbKbKbKbKbKbKbKgabKbKbKbKbKbKbKbKbKbKbKbKbKbKbKbKbKbKmNmNmNmNmNnfmNmNmNeGmNfBmNmNmNmNfBhXmNmNblmNmNmNwtmNmNmNav hPmcmcmcmcmcmcmcmcmcmcmcmcmcmcmNmNmNmNmNcCmNmNmNmNmNmNmNmNcCmNmNmNmNmNmNeGmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNwtmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNeGmNmNmNmNmNhXmNmNmNmNmNmNmNmNcCaFmNmNmNmNfBmNcCmNfBmNcCmNmNmNmNmNfBmNmNmNmNmNmNmNmNmNmNeGmNmNmNmNmNmNmNmNmNmNmNmNbKbKbKbKbKbKbKbKbKgabKbKbKbKbKbKbKbKbKbKbKbKbKbKbKbKbKbKmNmNmNmNmNmNmNmNfBmNmNmNmNmNmNhXmNmNmNmNblmNmNmNmNmNmNmNav -ZLgrgrgrgrgrgrgrgrgrgrgrgrgrgrlFlFxplFlFlFlFlFlFfXlFlFlFlFlFlFlFlFlFlFlFlFlFlFwrlFlFlFlFyPlFlFlFlFpOlFlFlFlFlFlFlFlFlFPBUNlFlFlFlFlFlFlFlFlFlFlFlFlFlFyPlFlFlFlFlFlFlFlFPBlFlFlFlFlFPBlFyPlFlFlFlFlFlFyPlFlFlFlFlFlFlFlFlFlFlFlFlFlFlFlFlFlFlFyPlFlFlFlFlFlFlFgagagagagagagagagagagagagagagagagagagaZigagagagagagagagagagalFlFlFlFlFlFlFlFlFlFlFlFlFlFlFlFlFlFlFDwXflFlFlFlFlFlFbG +ZLgrgrgrgrgrgrgrgrgrgrgrgrgrgrlFlFxplFlFlFlFlFlFfXlFlFlFlFlFlFlFlFlFlFlFlFlFlFwrlFlFlFlFyPlFlFlFlFpOlFlFlFlFlFlFlFlFlFPBUNlFlFlFlFlFlFlFlFlFlFlFlFlFlFyPlFlFlFlFlFlFlFlFPBlFlFlFlFlFPBlFyPlFlFlFlFlFlFyPlFlFlFlFlFlFlFlFlFlFlFlFlFlFlFlFlFlFlFyPlFlFlFlFlFlFlFgagagagagagagagagagagagagagagagagagagaaagagagagagagagagagagalFlFlFlFlFlFlFlFlFlFlFlFlFlFlFlFlFlFlFDwXflFlFlFlFlFlFbG hPmcmcmcmcmcmcmcmcmcmcmcmcmcmcmNmNmNmNcCmNmNmNmNmNaFmNmNmNmNmNcCaFmNmNmNmNmNmNwteGmNmNmNmNeGmNmNmNmNmNmNmNmNmNmNmNmNmNmNcCmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNfBmNmNmNfBmNmNcCmNmNcCcCfBmNmNmNmNcCmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNcCmNmNmNmNmNbKbKbKbKbKbKbKbKbKUdbKgabKbKbKbKbKbKbKbKbKbKbKbKbKbKbKbKbKbKbKmNmNmNmNmNhXmNmNmNmNmNmNmNmNmNmNmNmNmNblmNmNmNmNmNmNmNav hPmcmcmcmcmcmcmcmcmcmcmcmcmcmcmNmNmNfBmNmNcCXPfBmNmNcCmNmNmNmNdqmNfBmNmNfBmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNhXmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNeGmNmNcncCmNmNmNmNmNmNmNmNcCmNmNmNfBfBOvmNfBmNmNmNmNmNmNmNmNaFmNmNwtmNmNmNmNmNmNmNmNmNmNmNeGmNmNmNmNmNbKbKbKbKbKbKbKbKbKbKbKgabKbKbKbKbKbKbKbKbKbKbKbKbKbKbKbKbKbKbKbKmNmNmNmNmNmNmNmNmNmNdqmNmNmNmNmNmNmNblmNmNmNmNmNmNmNav hPmcmcmcmcmcmcmcmcmcmcmcmcmcmcmNmNmNmNmNaFmNmNmNmNmNmNmNmNmNmNfBmNmNmNmNmNmNaFmNmNmNmNmNmNmNmNeGmNmNfBmNmNmNmNmNeGmNmNmNmNmNmNmNmNcCmNmNmNmNmNmNhXmNmNcCmNmNmNmNmNmNmNmNmNmNmNmNmNmNfBmNfBfBmNmNmNmNmNmNfBmNmNmNmNcCaFmNmNmNmNmNmNmNmNmNmNhYmNmNmNmNmNmNmNdqbKbKbKbKbKbKbKbKbKbKbKgabKbKbKbKbKbKbKbKbKbKbKbKbKbKbKbKbKbKbKbKmNmNmNmNmNmNmNmNmNmNmNfBmNmNmNmNmNmNblmNmNmNmNmNdqmNav @@ -1167,7 +1166,7 @@ hPmcmcmcmcmcmcmcmcmcmcmcmcmNmNdqmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmN hPmcmcmcmcmcmcmcmcmcmcmcmcmcmNmNmNmNmNmNmNmNcCmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNhYmNmNmNmNgNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNwtmNmNmNmNmNmNeGmNmNmNmNhYmNmNmNmNmNmNmNwtmNmNmNmNmNmNmNmNmNmNaFmNmNmNmNeGmNcCmNmNmNmNmNmNmNmNmNmNmNeGmNmNmNmNmNmNeGmNmNmNmNmNmNlFmNmNmNmNmNdqmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNfBdqmNfBmNmNblmNmNmNmNmNdqmNav hPmcmcmcmcmcmcmcmcmcmcmcmcmcmNmNmNmNmNmNmNmNmNgNgNgNgNmNgNgNgNmNeGmNmNeGmNmNmNmNmNmNgNgNmNmNmNhYmNmNmNmNmNmNmNmNmNmNmNmNmNgNmNmNgNgNmNmNmNgNgNgNgNgNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNhYmNmNmNmNwtmNmNmNmNmNmNmNmNcCmNmNmNmNmNmNmNwtmNmNmNmNmNmNaFmNmNmNmNaFmNmNmNmNmNmNmNmNmNeGmNmNlFmNmNmNmNmNmNmNmNmNhYmNmNmNmNmNmNmNmNmNmNmNmNmNwtmNmNmNmNmNhXmNmNmNmNmNmNmNmNblmNhYmNmNmNmNmNav hPmcmcmcmcmcmcmcmcmcmcmcmcmcmNmNmNmNmNmNgNababababababababababmNmNgNmNmNmNmNmNmNmNmNgNgNmNmNmNmNmNmNgNgNgNmNgNgNmNgNgNmNacbMbPbPbPbWacacacbMbPbPbPbWacmNgNgNgNgNgNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNaFmNmNmNmNmNmNmNhXmNmNmNmNeGmNmNmNeGcCmNmNmNfBmNmNmNmNmNmNmNlFmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNaFmNmNmNmNeGmNmNmNmNmNblmNmNmNmNmNmNmNav -hPmcmcmcmcmcmcmcmcmcmcmcmcmcmNmNmNmNgNgNgNabababbZcfcgclcwabababababmNgNmNmNmNmNmNgNgNgNgNmNmNmNaccxcycycydKaccxcycycydKacdzfvcDfvfldgdadgflfvcDfvdzacbMbPbPbPbPbPbWacgNmNgNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNaFmNmNmNmNmNmNmNmNmNmNmNmNmNmNhXmNPchXmNmNmNmNcCmNmNlFmNmNcCmNmNmNmNmNmNmNmNmNmNmNdqmNmNmNmNmNmNmNmNmNmNmNhXmNmNfByfmNmNmNmNmNmNwtblmNmNmNmNmNmNmNav +hPmcmcmcmcmcmcmcmcmcmcmcmcmcmNmNmNmNgNgNgNabababbZcfcgclcwabababababmNgNmNmNmNmNmNgNgNgNgNmNmNmNaccxcycycydKaccxcycycydKacdzfvcDfvfldgfpdgflfvcDfvdzacbMbPbPbPbPbPbWacgNmNgNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNaFmNmNmNmNmNmNmNmNmNmNmNmNmNmNhXmNPchXmNmNmNmNcCmNmNlFmNmNcCmNmNmNmNmNmNmNmNmNmNmNdqmNmNmNmNmNmNmNmNmNmNmNhXmNmNfByfmNmNmNmNmNmNwtblmNmNmNmNmNmNmNav hPmcmcmcmcmcmcmcmcmcmcmcmcmcgNmNmNgNgNgNgNdrcqabdAdJdJdJdRabdTdXabababababgNgNgNmNOuUgUggNgNmNmNacSWekekekkaeOyZyZffyZyZCLdzfvfvfvflfpfpfpflfvfvfvdzfCYjYjfIYjYjHheFacbMbWacmNmNmNgNmNgNmNmNmNgNgNmNgNgNgNgNgNgNmNgNgNgNgNgNgNmNgNgNgNmNmNmNmNmNmNwtmNmNhXmNmNmNfBmNmNmNmNaFhXmNmNfXmNmNmNmNmNmNhXmNmNmNmNcCmNmNmNmNmNmNmNeGmNmNmNmNmNhXmNmNhXmNmNmNmNdqmNmNmNmNblmNmNmNmNhXmNmNav hPmcmcmcmcmcmcmcmcmcmcmcmcmcmNgNgNgNgNgNgNdrcqabfQfYgbgcdJgmdJdJgogpgvgAababababababgDgGacacacacacgZqphbhDcMeFeZeZbNeZeZeZdzdzdzdzflflflflfldzdzdzdzIqIqIqbDIqIqeFeFiKgyzlaPjojpjpjpjvaPjwjHjHjHjIaPjJjWjWjWkgaPbMbPbPbPbPbPbPbPbPbPbWacacgNmNmNmNmNmNmNmNmNmNmNmNfBmNmNfBhYmNmNmNlFmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNhXmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNblmNmNwtmNmNmNmNav hPmcmcmcmcmcmcmcmcmcmcmcmcmcmNmNmNgNgNcpgNdrcqabababababababkDdJlRdJdJwHabababababablSlWacnAlXacJcmomvmwmycMeFbNbNbNbNbNbNeFeFeFdzdzdzdzdzdzdzeFeFeFbDbDbDbDbDbDeFeFMzfhNGaPmOKusuMIkTaPmOfGsuMIkTaPmOfGsuMIkTaPoZoZoZikoZqWxzMexexeTxacacacacmNmNgNmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNlFaFmNmNmNmNmNmNmNmNmNmNmNmNhXmNmNmNmNmNmNmNmNwtmNmNmNmNmNmNmNmNmNmNmNmNmNmNmNblmNmNmNmNmNeGmNav diff --git a/maps/southern_cross/structures/closets/medical.dm b/maps/southern_cross/structures/closets/medical.dm index f528c2a0f1..666b42d617 100644 --- a/maps/southern_cross/structures/closets/medical.dm +++ b/maps/southern_cross/structures/closets/medical.dm @@ -13,6 +13,7 @@ /obj/item/clothing/under/rank/chief_medical_officer/skirt, /obj/item/clothing/suit/storage/toggle/labcoat/cmo, /obj/item/clothing/suit/storage/toggle/labcoat/cmoalt, + /obj/item/clothing/suit/storage/toggle/labcoat/modern/cmo, /obj/item/weapon/cartridge/cmo, /obj/item/clothing/gloves/sterile/latex, /obj/item/clothing/shoes/brown, diff --git a/maps/submaps/surface_submaps/mountains/quarantineshuttle.dmm b/maps/submaps/surface_submaps/mountains/quarantineshuttle.dmm index 003a57a711..c641f359b8 100644 --- a/maps/submaps/surface_submaps/mountains/quarantineshuttle.dmm +++ b/maps/submaps/surface_submaps/mountains/quarantineshuttle.dmm @@ -1,147 +1,1518 @@ -"aa" = (/turf/template_noop,/area/template_noop) -"ab" = (/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle) -"ac" = (/obj/item/clothing/head/cone,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle) -"ad" = (/turf/simulated/shuttle/wall,/area/submap/cave/qShuttle) -"ae" = (/obj/structure/inflatable,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle) -"af" = (/obj/structure/inflatable/door,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle) -"ag" = (/obj/structure/shuttle/engine/heater{dir = 4; icon_state = "heater"},/turf/simulated/shuttle/plating,/area/submap/cave/qShuttle) -"ah" = (/obj/structure/shuttle/engine/propulsion{dir = 8; icon_state = "propulsion_l"},/turf/simulated/shuttle/plating,/area/submap/cave/qShuttle) -"ai" = (/obj/structure/grille,/obj/structure/shuttle/window,/obj/machinery/door/blast/regular{dir = 8; id = "QShuttlePoIDoors"; layer = 3.3; name = "Emergency Lockdown Shutters"},/obj/item/tape/medical{dir = 4; icon_state = "tape_door_0"; layer = 3.4},/turf/simulated/shuttle/plating,/area/submap/cave/qShuttle) -"aj" = (/turf/simulated/shuttle/wall/hard_corner,/area/submap/cave/qShuttle) -"ak" = (/obj/machinery/door/airlock/external{desc = "It opens and closes. It is stamped with the logo of Major Bill's Transportation"; frequency = 1380; icon_state = "door_locked"; id_tag = null; locked = 1; name = "MBT-540"},/obj/item/tape/medical{dir = 4; icon_state = "tape_door_0"; layer = 3.4},/turf/simulated/shuttle/floor{icon_state = "floor_white"},/area/submap/cave/qShuttle) -"al" = (/obj/structure/sign/biohazard{dir = 1},/turf/simulated/shuttle/wall/hard_corner,/area/submap/cave/qShuttle) -"am" = (/obj/structure/toilet{dir = 4},/obj/effect/decal/cleanable/vomit,/obj/effect/decal/remains/human,/turf/simulated/shuttle/floor,/area/submap/cave/qShuttle) -"an" = (/obj/machinery/door/airlock{name = "Restroom"},/turf/simulated/shuttle/wall,/area/submap/cave/qShuttle) -"ao" = (/obj/effect/decal/cleanable/vomit,/turf/simulated/shuttle/floor{icon_state = "floor_white"},/area/submap/cave/qShuttle) -"ap" = (/obj/effect/decal/remains/human,/obj/item/clothing/suit/space/emergency,/obj/item/clothing/head/helmet/space/emergency,/turf/simulated/shuttle/floor{icon_state = "floor_white"},/area/submap/cave/qShuttle) -"aq" = (/obj/structure/bed/chair,/turf/simulated/shuttle/floor{icon_state = "floor_white"},/area/submap/cave/qShuttle) -"ar" = (/obj/structure/bed/chair,/obj/effect/decal/remains/human,/obj/item/clothing/suit/space/emergency,/turf/simulated/shuttle/floor{icon_state = "floor_white"},/area/submap/cave/qShuttle) -"as" = (/obj/machinery/vending/snack{contraband = null; products = list(/obj/item/weapon/reagent_containers/food/snacks/candy = 0, /obj/item/weapon/reagent_containers/food/drinks/dry_ramen = 0, /obj/item/weapon/reagent_containers/food/snacks/chips = 0, /obj/item/weapon/reagent_containers/food/snacks/sosjerky = 0, /obj/item/weapon/reagent_containers/food/snacks/no_raisin = 0, /obj/item/weapon/reagent_containers/food/snacks/packaged/spacetwinkie = 0, /obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers = 0, /obj/item/weapon/reagent_containers/food/snacks/tastybread = 0, /obj/item/weapon/reagent_containers/food/snacks/skrellsnacks = 0)},/turf/simulated/shuttle/floor{icon_state = "floor_white"},/area/submap/cave/qShuttle) -"at" = (/obj/machinery/vending/cola{contraband = null; products = list(/obj/item/weapon/reagent_containers/food/drinks/cans/cola = 0, /obj/item/weapon/reagent_containers/food/drinks/cans/space_mountain_wind = 0, /obj/item/weapon/reagent_containers/food/drinks/cans/dr_gibb = 0, /obj/item/weapon/reagent_containers/food/drinks/cans/starkist = 0, /obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle = 0, /obj/item/weapon/reagent_containers/food/drinks/cans/space_up = 0, /obj/item/weapon/reagent_containers/food/drinks/cans/iced_tea = 0, /obj/item/weapon/reagent_containers/food/drinks/cans/grape_juice = 0, /obj/item/weapon/reagent_containers/food/drinks/cans/gingerale = 0)},/turf/simulated/shuttle/floor{icon_state = "floor_white"},/area/submap/cave/qShuttle) -"au" = (/obj/structure/closet/crate/secure/loot,/turf/simulated/shuttle/floor{icon_state = "floor_yellow"},/area/submap/cave/qShuttle) -"av" = (/obj/item/weapon/pickaxe/drill,/turf/simulated/shuttle/floor{icon_state = "floor_yellow"},/area/submap/cave/qShuttle) -"aw" = (/obj/item/clothing/mask/breath,/obj/effect/decal/cleanable/dirt,/turf/simulated/shuttle/floor{icon_state = "floor_white"},/area/submap/cave/qShuttle) -"ax" = (/obj/effect/decal/cleanable/generic,/turf/simulated/shuttle/floor{icon_state = "floor_white"},/area/submap/cave/qShuttle) -"ay" = (/obj/effect/decal/remains/xeno,/turf/simulated/shuttle/floor{icon_state = "floor_yellow"},/area/submap/cave/qShuttle) -"az" = (/obj/item/trash/syndi_cakes,/turf/simulated/shuttle/floor{icon_state = "floor_yellow"},/area/submap/cave/qShuttle) -"aA" = (/turf/simulated/shuttle/floor{icon_state = "floor_yellow"},/area/submap/cave/qShuttle) -"aB" = (/obj/item/trash/cigbutt,/obj/item/weapon/tank/emergency/oxygen,/turf/simulated/shuttle/floor{icon_state = "floor_yellow"},/area/submap/cave/qShuttle) -"aC" = (/obj/item/weapon/material/knife/tacknife/boot,/obj/item/clothing/mask/breath,/turf/simulated/shuttle/floor{icon_state = "floor_yellow"},/area/submap/cave/qShuttle) -"aD" = (/obj/effect/decal/remains/human,/turf/simulated/shuttle/floor{icon_state = "floor_white"},/area/submap/cave/qShuttle) -"aE" = (/obj/item/trash/sosjerky,/obj/item/weapon/storage/box/donut/empty,/obj/item/weapon/reagent_containers/food/drinks/sillycup,/turf/simulated/shuttle/floor{icon_state = "floor_white"},/area/submap/cave/qShuttle) -"aF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area/submap/cave/qShuttle) -"aG" = (/obj/machinery/door/airlock/glass,/turf/simulated/shuttle/floor{icon_state = "floor_yellow"},/area/submap/cave/qShuttle) -"aH" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/structure/window/reinforced{dir = 4},/turf/simulated/shuttle/plating,/area/submap/cave/qShuttle) -"aI" = (/obj/machinery/button{name = "Cargo Hatch"},/turf/simulated/shuttle/wall,/area/submap/cave/qShuttle) -"aJ" = (/obj/machinery/computer,/turf/simulated/shuttle/floor,/area/submap/cave/qShuttle) -"aK" = (/obj/structure/bed/chair/comfy/brown{dir = 8},/obj/effect/decal/cleanable/vomit,/turf/simulated/shuttle/floor{icon_state = "floor_white"},/area/submap/cave/qShuttle) -"aL" = (/obj/structure/prop/blackbox/quarantined_shuttle,/turf/simulated/shuttle/floor,/area/submap/cave/qShuttle) -"aM" = (/obj/item/trash/cheesie,/obj/effect/decal/remains/human,/turf/simulated/shuttle/floor{icon_state = "floor_white"},/area/submap/cave/qShuttle) -"aN" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/shuttle/floor{icon_state = "floor_yellow"},/area/submap/cave/qShuttle) -"aO" = (/obj/structure/bed/chair{dir = 1},/obj/effect/decal/cleanable/dirt,/turf/simulated/shuttle/floor{icon_state = "floor_yellow"},/area/submap/cave/qShuttle) -"aP" = (/obj/structure/bed/chair{dir = 1},/obj/effect/decal/remains/human,/obj/item/clothing/mask/breath,/turf/simulated/shuttle/floor{icon_state = "floor_white"},/area/submap/cave/qShuttle) -"aQ" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor_white"},/area/submap/cave/qShuttle) -"aR" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor_yellow"},/area/submap/cave/qShuttle) -"aS" = (/obj/effect/decal/cleanable/vomit,/turf/simulated/shuttle/floor{icon_state = "floor_yellow"},/area/submap/cave/qShuttle) -"aT" = (/obj/item/clothing/head/helmet/space/emergency,/turf/simulated/shuttle/floor{icon_state = "floor_white"},/area/submap/cave/qShuttle) -"aU" = (/obj/machinery/door/airlock/engineering{icon_state = "door_locked"; locked = 1; name = "Cargo Bay"},/turf/simulated/shuttle/floor{icon_state = "floor_yellow"},/area/submap/cave/qShuttle) -"aV" = (/obj/item/weapon/virusdish/random,/turf/simulated/shuttle/floor{icon_state = "floor_yellow"},/area/submap/cave/qShuttle) -"aW" = (/obj/item/weapon/material/shard,/turf/simulated/shuttle/floor{icon_state = "floor_yellow"},/area/submap/cave/qShuttle) -"aX" = (/obj/item/device/paicard,/turf/simulated/shuttle/floor{icon_state = "floor_yellow"},/area/submap/cave/qShuttle) -"aY" = (/obj/machinery/door/blast/regular{name = "Cargo Door"},/obj/item/tape/medical{dir = 4; icon_state = "tape_door_0"; layer = 3.4},/turf/simulated/shuttle/floor{icon_state = "floor_yellow"},/area/submap/cave/qShuttle) -"aZ" = (/obj/effect/decal/remains/human,/obj/item/clothing/under/mbill{desc = "A uniform belonging to Major Bill's Transportation, a shipping megacorporation. This looks at least a few decades out of date."; name = "\improper old Major Bill's uniform"},/obj/item/clothing/head/soft/mbill{desc = "It's a ballcap bearing the colors of Major Bill's Shipping. This one looks at least a few decades out of date."; name = "old shipping cap"},/turf/simulated/shuttle/floor,/area/submap/cave/qShuttle) -"ba" = (/obj/item/trash/cigbutt,/turf/simulated/shuttle/floor{icon_state = "floor_white"},/area/submap/cave/qShuttle) -"bb" = (/obj/machinery/door/airlock/command{icon_state = "door_locked"; locked = 1},/turf/simulated/shuttle/floor{icon_state = "floor_white"},/area/submap/cave/qShuttle) -"bc" = (/obj/item/weapon/tank/emergency/oxygen/engi,/obj/effect/decal/cleanable/dirt,/turf/simulated/shuttle/floor{icon_state = "floor_white"},/area/submap/cave/qShuttle) -"bd" = (/obj/effect/decal/remains/human,/obj/item/clothing/suit/space/emergency,/obj/item/clothing/head/helmet/space/emergency,/obj/effect/decal/cleanable/dirt,/turf/simulated/shuttle/floor{icon_state = "floor_yellow"},/area/submap/cave/qShuttle) -"be" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1; health = 1e+006},/turf/simulated/shuttle/plating,/area/submap/cave/qShuttle) -"bf" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1; health = 1e+006},/turf/simulated/shuttle/plating,/area/submap/cave/qShuttle) -"bg" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1; health = 1e+006},/turf/simulated/shuttle/plating,/area/submap/cave/qShuttle) -"bh" = (/obj/item/clothing/suit/space/emergency,/turf/simulated/shuttle/floor{icon_state = "floor_yellow"},/area/submap/cave/qShuttle) -"bi" = (/obj/item/trash/candy,/obj/effect/decal/cleanable/dirt,/turf/simulated/shuttle/floor{icon_state = "floor_white"},/area/submap/cave/qShuttle) -"bj" = (/obj/structure/table/rack,/obj/structure/loot_pile/maint/boxfort,/turf/simulated/shuttle/floor{icon_state = "floor_yellow"},/area/submap/cave/qShuttle) -"bk" = (/obj/structure/table/rack,/obj/item/weapon/shovel,/turf/simulated/shuttle/floor{icon_state = "floor_yellow"},/area/submap/cave/qShuttle) -"bl" = (/obj/structure/closet/crate/secure/science{icon_state = "scisecurecrateopen"; locked = 0; name = "Virus Samples - FRAGILE"; opened = 1},/obj/item/weapon/virusdish/random,/obj/item/weapon/virusdish/random,/obj/item/weapon/virusdish/random,/turf/simulated/shuttle/floor{icon_state = "floor_yellow"},/area/submap/cave/qShuttle) -"bm" = (/obj/structure/bed/chair/comfy/brown{dir = 8},/obj/effect/decal/remains/human,/obj/item/clothing/under/mbill{desc = "A uniform belonging to Major Bill's Transportation, a shipping megacorporation. This looks at least a few decades out of date."; name = "\improper old Major Bill's uniform"},/obj/item/clothing/head/soft/mbill{desc = "It's a ballcap bearing the colors of Major Bill's Shipping. This one looks at least a few decades out of date."; name = "old shipping cap"},/turf/simulated/shuttle/floor{icon_state = "floor_white"},/area/submap/cave/qShuttle) -"bn" = (/obj/structure/table/standard,/obj/item/device/taperecorder,/turf/simulated/shuttle/floor,/area/submap/cave/qShuttle) -"bo" = (/obj/item/weapon/tool/crowbar/red,/turf/simulated/shuttle/floor{icon_state = "floor_white"},/area/submap/cave/qShuttle) -"bp" = (/obj/item/trash/chips,/obj/effect/decal/cleanable/dirt,/turf/simulated/shuttle/floor{icon_state = "floor_yellow"},/area/submap/cave/qShuttle) -"bq" = (/obj/structure/bed/chair,/turf/simulated/shuttle/floor{icon_state = "floor_yellow"},/area/submap/cave/qShuttle) -"br" = (/obj/structure/bed/chair,/obj/effect/decal/cleanable/dirt,/turf/simulated/shuttle/floor{icon_state = "floor_white"},/area/submap/cave/qShuttle) -"bs" = (/obj/structure/bed/chair,/obj/effect/decal/remains/human,/obj/item/clothing/mask/breath,/obj/item/clothing/head/soft/mbill{desc = "It's a ballcap bearing the colors of Major Bill's Shipping. This one looks at least a few decades out of date."; name = "old shipping cap"},/turf/simulated/shuttle/floor{icon_state = "floor_white"},/area/submap/cave/qShuttle) -"bt" = (/obj/structure/bed/chair,/obj/effect/decal/remains/human,/turf/simulated/shuttle/floor{icon_state = "floor_white"},/area/submap/cave/qShuttle) -"bu" = (/obj/effect/decal/remains/xeno,/obj/effect/decal/cleanable/dirt,/turf/simulated/shuttle/floor{icon_state = "floor_white"},/area/submap/cave/qShuttle) -"bv" = (/obj/item/weapon/material/shard{icon_state = "medium"},/turf/simulated/shuttle/floor{icon_state = "floor_yellow"},/area/submap/cave/qShuttle) -"bw" = (/obj/effect/decal/remains/mouse,/turf/simulated/shuttle/floor{icon_state = "floor_yellow"},/area/submap/cave/qShuttle) -"bx" = (/obj/random/maintenance,/turf/simulated/shuttle/floor{icon_state = "floor_yellow"},/area/submap/cave/qShuttle) -"by" = (/obj/item/weapon/coin/silver,/turf/simulated/shuttle/floor{icon_state = "floor_white"},/area/submap/cave/qShuttle) -"bz" = (/obj/effect/decal/remains/human,/obj/item/clothing/suit/space/emergency,/obj/item/clothing/head/helmet/space/emergency,/turf/simulated/shuttle/floor{icon_state = "floor_yellow"},/area/submap/cave/qShuttle) -"bA" = (/obj/effect/decal/cleanable/generic,/turf/simulated/shuttle/floor{icon_state = "floor_yellow"},/area/submap/cave/qShuttle) -"bB" = (/obj/item/weapon/tank/emergency/oxygen/engi,/turf/simulated/shuttle/floor{icon_state = "floor_yellow"},/area/submap/cave/qShuttle) -"bC" = (/obj/item/trash/sosjerky,/obj/effect/decal/remains/human,/turf/simulated/shuttle/floor{icon_state = "floor_white"},/area/submap/cave/qShuttle) -"bD" = (/obj/effect/decal/remains/human,/obj/item/clothing/mask/breath,/turf/simulated/shuttle/floor{icon_state = "floor_white"},/area/submap/cave/qShuttle) -"bE" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/submap/cave/qShuttle) -"bF" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/submap/cave/qShuttle) -"bG" = (/obj/machinery/button{dir = 4; name = "Cargo Access"},/turf/simulated/shuttle/wall,/area/submap/cave/qShuttle) -"bH" = (/obj/machinery/recharge_station,/turf/simulated/shuttle/floor,/area/submap/cave/qShuttle) -"bI" = (/obj/machinery/door/airlock{name = "Charge Station"},/turf/simulated/shuttle/wall,/area/submap/cave/qShuttle) -"bJ" = (/obj/item/trash/tastybread,/obj/item/weapon/material/butterfly/boxcutter,/obj/effect/decal/cleanable/dirt,/turf/simulated/shuttle/floor{icon_state = "floor_white"},/area/submap/cave/qShuttle) -"bK" = (/obj/effect/decal/cleanable/vomit,/obj/effect/decal/cleanable/mucus/mapped,/turf/simulated/shuttle/floor{icon_state = "floor_white"},/area/submap/cave/qShuttle) -"bL" = (/obj/structure/bed/chair{dir = 1},/obj/effect/decal/remains/xeno,/turf/simulated/shuttle/floor{icon_state = "floor_white"},/area/submap/cave/qShuttle) -"bM" = (/obj/structure/bed/chair{dir = 1},/obj/item/weapon/card/id/external{desc = "An identification card of some sort. Looks like this one was issued by the Vir Independent Mining Corp."; name = "VIMC identification card"; rank = "Miner"; registered_name = "Nadia Chu"},/turf/simulated/shuttle/floor{icon_state = "floor_white"},/area/submap/cave/qShuttle) -"bN" = (/obj/structure/table/rack,/obj/item/weapon/storage/toolbox/emergency,/turf/simulated/shuttle/floor{icon_state = "floor_white"},/area/submap/cave/qShuttle) -"bO" = (/obj/structure/table/rack,/obj/item/clothing/head/soft/mbill{desc = "It's a ballcap bearing the colors of Major Bill's Shipping. This one looks at least a few decades out of date."; name = "old shipping cap"},/turf/simulated/shuttle/floor{icon_state = "floor_white"},/area/submap/cave/qShuttle) -"bP" = (/obj/structure/ore_box,/turf/simulated/shuttle/floor{icon_state = "floor_yellow"},/area/submap/cave/qShuttle) -"bQ" = (/obj/item/poster,/turf/simulated/shuttle/floor{icon_state = "floor_yellow"},/area/submap/cave/qShuttle) -"bR" = (/obj/structure/loot_pile/maint/technical,/turf/simulated/shuttle/floor{icon_state = "floor_yellow"},/area/submap/cave/qShuttle) -"bS" = (/obj/structure/sign/biohazard,/turf/simulated/shuttle/wall/hard_corner,/area/submap/cave/qShuttle) -"bT" = (/obj/item/tape/medical{icon_state = "tape_v_0"},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle) -"bU" = (/obj/item/taperoll/medical,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle) -"bV" = (/obj/item/tape/medical{dir = 1; icon_state = "tape_dir_0"},/obj/item/tape/medical{dir = 4; icon_state = "tape_dir_0"},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle) -"bW" = (/obj/item/tape/medical{icon_state = "tape_h_0"},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle) -"bX" = (/obj/structure/lattice,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle) -"bY" = (/obj/structure/sign/warning/secure_area,/turf/simulated/wall/iron,/area/submap/cave/qShuttle) -"bZ" = (/obj/structure/sign/kiddieplaque{desc = "By order of the S.D.D.C, this site or craft is to be buried and not disturbed until such time that sterility can be confirmed. Dated: 20/12/2491 "; name = "\improper Sif Department of Disease Control notice"},/turf/simulated/wall/iron,/area/submap/cave/qShuttle) -"ca" = (/obj/structure/sign/warning,/turf/simulated/wall/iron,/area/submap/cave/qShuttle) -"cb" = (/obj/item/bodybag,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle) -"cc" = (/obj/structure/table/steel,/obj/item/weapon/storage/box/bodybags,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle) -"cd" = (/obj/structure/table/steel,/obj/item/clothing/suit/bio_suit,/obj/random/medical/lite,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle) -"ce" = (/obj/structure/closet/l3closet/virology,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle) -"cf" = (/obj/item/weapon/reagent_containers/syringe/antiviral,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle) -"cg" = (/obj/structure/dispenser/oxygen,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle) -"ch" = (/obj/structure/table/steel,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle) -"ci" = (/obj/structure/table/steel,/obj/item/weapon/reagent_containers/syringe/antiviral,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle) -"cj" = (/obj/structure/table/steel,/obj/item/weapon/reagent_containers/spray/cleaner{desc = "Someone has crossed out the 'Space' from Space Cleaner and written in Chemistry. Scrawled on the back is, 'Okay, whoever filled this with polytrinic acid, it was only funny the first time. It was hard enough replacing the CMO's first cat!'"; name = "Chemistry Cleaner"},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle) -"ck" = (/obj/structure/table/steel,/obj/item/weapon/tool/crowbar/power,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle) -"cl" = (/obj/structure/table/rack,/obj/item/clothing/head/bio_hood,/obj/item/clothing/suit/bio_suit,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle) -"cm" = (/obj/item/weapon/weldingtool/largetank,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle) -"cn" = (/obj/structure/closet/crate/medical,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle) - -(1,1,1) = {" -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaabacababaaaaadadadacaa -aaabababababaeafaeaeabaaaaabababababababadagahabaa -aaacababadaiajakakalaiadaiadadadadadadadadadadaaaa -aaababadadamanaoapadaqaqaradasatadauavauadagahaaaa -aaaaadadadadadawaxayazaAaBaCaDaEadaFaGaHadaIadabaa -aaaaaiaJaKaLadaMaNaOaPaQaQaRaSaTaUaVaAaWaXaAaYabaa -aaabaiaZbababbbcbdadbebfbgadbhbiadbjaAbkaAblaYabaa -aaabaiaJbmbnadbobpbqbrbsbtbqaNbuaUbvaAbwaVbxaYabaa -aaabadadadadadaDbyaAbzaAbAbBbCbDadbEaGbFadadbGabaa -aaababadadbHbIbJbKadbLaQbMadbNbOadbPbQbRadagahabaa -ababacabadaiajakakbSaiadaiadadadadadadadadadadaaaa -ababababbTabaeaeafaeababababbUabababababadagahaaaa -aaabababbVbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWadadadaaaa -aaaaababababababababbXbYbZcacbcbcbabcccdceabcfaaaa -aaaaacababcgchcicjckclababcmabcbcbababababababaaaa -aaaaaaababcnchababababababababaaaaaaaaaaababacaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -"} +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/template_noop, +/area/template_noop) +"ab" = ( +/turf/simulated/mineral/floor/ignore_mapgen, +/area/submap/cave/qShuttle) +"ac" = ( +/obj/item/clothing/head/cone, +/turf/simulated/mineral/floor/ignore_mapgen, +/area/submap/cave/qShuttle) +"ad" = ( +/turf/simulated/shuttle/wall, +/area/submap/cave/qShuttle) +"ae" = ( +/obj/structure/inflatable, +/turf/simulated/mineral/floor/ignore_mapgen, +/area/submap/cave/qShuttle) +"af" = ( +/obj/structure/inflatable/door, +/turf/simulated/mineral/floor/ignore_mapgen, +/area/submap/cave/qShuttle) +"ag" = ( +/obj/structure/shuttle/engine/heater{ + dir = 4; + icon_state = "heater" + }, +/turf/simulated/shuttle/plating, +/area/submap/cave/qShuttle) +"ah" = ( +/obj/structure/shuttle/engine/propulsion{ + dir = 8; + icon_state = "propulsion_l" + }, +/turf/simulated/shuttle/plating, +/area/submap/cave/qShuttle) +"ai" = ( +/obj/structure/grille, +/obj/structure/shuttle/window, +/obj/machinery/door/blast/regular{ + dir = 8; + id = "QShuttlePoIDoors"; + layer = 3.3; + name = "Emergency Lockdown Shutters" + }, +/obj/item/tape/medical{ + dir = 4; + icon_state = "tape_door_0"; + layer = 3.4 + }, +/turf/simulated/shuttle/plating, +/area/submap/cave/qShuttle) +"aj" = ( +/turf/simulated/shuttle/wall/hard_corner, +/area/submap/cave/qShuttle) +"ak" = ( +/obj/machinery/door/airlock/external{ + desc = "It opens and closes. It is stamped with the logo of Major Bill's Transportation"; + frequency = 1380; + icon_state = "door_locked"; + id_tag = null; + locked = 1; + name = "MBT-540" + }, +/obj/item/tape/medical{ + dir = 4; + icon_state = "tape_door_0"; + layer = 3.4 + }, +/turf/simulated/shuttle/floor{ + icon_state = "floor_white" + }, +/area/submap/cave/qShuttle) +"al" = ( +/obj/structure/sign/biohazard{ + dir = 1 + }, +/turf/simulated/shuttle/wall/hard_corner, +/area/submap/cave/qShuttle) +"am" = ( +/obj/structure/toilet{ + dir = 4 + }, +/obj/effect/decal/cleanable/vomit, +/obj/effect/decal/remains/human, +/turf/simulated/shuttle/floor, +/area/submap/cave/qShuttle) +"an" = ( +/obj/machinery/door/airlock{ + name = "Restroom" + }, +/turf/simulated/shuttle/floor{ + icon_state = "floor_white" + }, +/area/submap/cave/qShuttle) +"ao" = ( +/obj/effect/decal/cleanable/vomit, +/turf/simulated/shuttle/floor{ + icon_state = "floor_white" + }, +/area/submap/cave/qShuttle) +"ap" = ( +/obj/effect/decal/remains/human, +/obj/item/clothing/suit/space/emergency, +/obj/item/clothing/head/helmet/space/emergency, +/turf/simulated/shuttle/floor{ + icon_state = "floor_white" + }, +/area/submap/cave/qShuttle) +"aq" = ( +/obj/structure/bed/chair, +/turf/simulated/shuttle/floor{ + icon_state = "floor_white" + }, +/area/submap/cave/qShuttle) +"ar" = ( +/obj/structure/bed/chair, +/obj/effect/decal/remains/human, +/obj/item/clothing/suit/space/emergency, +/turf/simulated/shuttle/floor{ + icon_state = "floor_white" + }, +/area/submap/cave/qShuttle) +"as" = ( +/obj/machinery/vending/snack{ + contraband = null; + products = list(/obj/item/weapon/reagent_containers/food/snacks/candy = 0, /obj/item/weapon/reagent_containers/food/drinks/dry_ramen = 0, /obj/item/weapon/reagent_containers/food/snacks/chips = 0, /obj/item/weapon/reagent_containers/food/snacks/sosjerky = 0, /obj/item/weapon/reagent_containers/food/snacks/no_raisin = 0, /obj/item/weapon/reagent_containers/food/snacks/packaged/spacetwinkie = 0, /obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers = 0, /obj/item/weapon/reagent_containers/food/snacks/tastybread = 0, /obj/item/weapon/reagent_containers/food/snacks/skrellsnacks = 0) + }, +/turf/simulated/shuttle/floor{ + icon_state = "floor_white" + }, +/area/submap/cave/qShuttle) +"at" = ( +/obj/machinery/vending/cola{ + contraband = null; + products = list(/obj/item/weapon/reagent_containers/food/drinks/cans/cola = 0, /obj/item/weapon/reagent_containers/food/drinks/cans/space_mountain_wind = 0, /obj/item/weapon/reagent_containers/food/drinks/cans/dr_gibb = 0, /obj/item/weapon/reagent_containers/food/drinks/cans/starkist = 0, /obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle = 0, /obj/item/weapon/reagent_containers/food/drinks/cans/space_up = 0, /obj/item/weapon/reagent_containers/food/drinks/cans/iced_tea = 0, /obj/item/weapon/reagent_containers/food/drinks/cans/grape_juice = 0, /obj/item/weapon/reagent_containers/food/drinks/cans/gingerale = 0) + }, +/turf/simulated/shuttle/floor{ + icon_state = "floor_white" + }, +/area/submap/cave/qShuttle) +"au" = ( +/obj/structure/closet/crate/secure/loot, +/turf/simulated/shuttle/floor{ + icon_state = "floor_yellow" + }, +/area/submap/cave/qShuttle) +"av" = ( +/obj/item/weapon/pickaxe/drill, +/turf/simulated/shuttle/floor{ + icon_state = "floor_yellow" + }, +/area/submap/cave/qShuttle) +"aw" = ( +/obj/item/clothing/mask/breath, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/shuttle/floor{ + icon_state = "floor_white" + }, +/area/submap/cave/qShuttle) +"ax" = ( +/obj/effect/decal/cleanable/generic, +/turf/simulated/shuttle/floor{ + icon_state = "floor_white" + }, +/area/submap/cave/qShuttle) +"ay" = ( +/obj/effect/decal/remains/xeno, +/turf/simulated/shuttle/floor{ + icon_state = "floor_yellow" + }, +/area/submap/cave/qShuttle) +"az" = ( +/obj/item/trash/syndi_cakes, +/turf/simulated/shuttle/floor{ + icon_state = "floor_yellow" + }, +/area/submap/cave/qShuttle) +"aA" = ( +/turf/simulated/shuttle/floor{ + icon_state = "floor_yellow" + }, +/area/submap/cave/qShuttle) +"aB" = ( +/obj/item/trash/cigbutt, +/obj/item/weapon/tank/emergency/oxygen, +/turf/simulated/shuttle/floor{ + icon_state = "floor_yellow" + }, +/area/submap/cave/qShuttle) +"aC" = ( +/obj/item/weapon/material/knife/tacknife/boot, +/obj/item/clothing/mask/breath, +/turf/simulated/shuttle/floor{ + icon_state = "floor_yellow" + }, +/area/submap/cave/qShuttle) +"aD" = ( +/obj/effect/decal/remains/human, +/turf/simulated/shuttle/floor{ + icon_state = "floor_white" + }, +/area/submap/cave/qShuttle) +"aE" = ( +/obj/item/trash/sosjerky, +/obj/item/weapon/storage/box/donut/empty, +/obj/item/weapon/reagent_containers/food/drinks/sillycup, +/turf/simulated/shuttle/floor{ + icon_state = "floor_white" + }, +/area/submap/cave/qShuttle) +"aF" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1; + health = 1e+006 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/simulated/shuttle/plating, +/area/submap/cave/qShuttle) +"aG" = ( +/obj/machinery/door/airlock/glass, +/turf/simulated/shuttle/floor{ + icon_state = "floor_yellow" + }, +/area/submap/cave/qShuttle) +"aH" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1; + health = 1e+006 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/simulated/shuttle/plating, +/area/submap/cave/qShuttle) +"aI" = ( +/obj/machinery/button{ + name = "Cargo Hatch" + }, +/turf/simulated/shuttle/wall, +/area/submap/cave/qShuttle) +"aJ" = ( +/obj/machinery/computer, +/turf/simulated/shuttle/floor, +/area/submap/cave/qShuttle) +"aK" = ( +/obj/structure/bed/chair/comfy/brown{ + dir = 8 + }, +/obj/effect/decal/cleanable/vomit, +/turf/simulated/shuttle/floor{ + icon_state = "floor_white" + }, +/area/submap/cave/qShuttle) +"aL" = ( +/obj/structure/prop/blackbox/quarantined_shuttle, +/turf/simulated/shuttle/floor, +/area/submap/cave/qShuttle) +"aM" = ( +/obj/item/trash/cheesie, +/obj/effect/decal/remains/human, +/turf/simulated/shuttle/floor{ + icon_state = "floor_white" + }, +/area/submap/cave/qShuttle) +"aN" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/shuttle/floor{ + icon_state = "floor_yellow" + }, +/area/submap/cave/qShuttle) +"aO" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/shuttle/floor{ + icon_state = "floor_yellow" + }, +/area/submap/cave/qShuttle) +"aP" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/obj/effect/decal/remains/human, +/obj/item/clothing/mask/breath, +/turf/simulated/shuttle/floor{ + icon_state = "floor_white" + }, +/area/submap/cave/qShuttle) +"aQ" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/turf/simulated/shuttle/floor{ + icon_state = "floor_white" + }, +/area/submap/cave/qShuttle) +"aR" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/turf/simulated/shuttle/floor{ + icon_state = "floor_yellow" + }, +/area/submap/cave/qShuttle) +"aS" = ( +/obj/effect/decal/cleanable/vomit, +/turf/simulated/shuttle/floor{ + icon_state = "floor_yellow" + }, +/area/submap/cave/qShuttle) +"aT" = ( +/obj/item/clothing/head/helmet/space/emergency, +/turf/simulated/shuttle/floor{ + icon_state = "floor_white" + }, +/area/submap/cave/qShuttle) +"aU" = ( +/obj/machinery/door/airlock/engineering{ + icon_state = "door_locked"; + locked = 1; + name = "Cargo Bay" + }, +/turf/simulated/shuttle/floor{ + icon_state = "floor_yellow" + }, +/area/submap/cave/qShuttle) +"aV" = ( +/obj/item/weapon/virusdish/random, +/turf/simulated/shuttle/floor{ + icon_state = "floor_yellow" + }, +/area/submap/cave/qShuttle) +"aW" = ( +/obj/item/weapon/material/shard, +/turf/simulated/shuttle/floor{ + icon_state = "floor_yellow" + }, +/area/submap/cave/qShuttle) +"aX" = ( +/obj/item/device/paicard, +/turf/simulated/shuttle/floor{ + icon_state = "floor_yellow" + }, +/area/submap/cave/qShuttle) +"aY" = ( +/obj/machinery/door/blast/regular{ + name = "Cargo Door" + }, +/obj/item/tape/medical{ + dir = 4; + icon_state = "tape_door_0"; + layer = 3.4 + }, +/turf/simulated/shuttle/floor{ + icon_state = "floor_yellow" + }, +/area/submap/cave/qShuttle) +"aZ" = ( +/obj/effect/decal/remains/human, +/obj/item/clothing/under/mbill{ + desc = "A uniform belonging to Major Bill's Transportation, a shipping megacorporation. This looks at least a few decades out of date."; + name = "\improper old Major Bill's uniform" + }, +/obj/item/clothing/head/soft/mbill{ + desc = "It's a ballcap bearing the colors of Major Bill's Shipping. This one looks at least a few decades out of date."; + name = "old shipping cap" + }, +/turf/simulated/shuttle/floor, +/area/submap/cave/qShuttle) +"ba" = ( +/obj/item/trash/cigbutt, +/turf/simulated/shuttle/floor{ + icon_state = "floor_white" + }, +/area/submap/cave/qShuttle) +"bb" = ( +/obj/machinery/door/airlock/command{ + icon_state = "door_locked"; + locked = 1 + }, +/turf/simulated/shuttle/floor{ + icon_state = "floor_white" + }, +/area/submap/cave/qShuttle) +"bc" = ( +/obj/item/weapon/tank/emergency/oxygen/engi, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/shuttle/floor{ + icon_state = "floor_white" + }, +/area/submap/cave/qShuttle) +"bd" = ( +/obj/effect/decal/remains/human, +/obj/item/clothing/suit/space/emergency, +/obj/item/clothing/head/helmet/space/emergency, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/shuttle/floor{ + icon_state = "floor_yellow" + }, +/area/submap/cave/qShuttle) +"be" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1; + health = 1e+006 + }, +/turf/simulated/shuttle/plating, +/area/submap/cave/qShuttle) +"bf" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1; + health = 1e+006 + }, +/turf/simulated/shuttle/plating, +/area/submap/cave/qShuttle) +"bg" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1; + health = 1e+006 + }, +/turf/simulated/shuttle/plating, +/area/submap/cave/qShuttle) +"bh" = ( +/obj/item/clothing/suit/space/emergency, +/turf/simulated/shuttle/floor{ + icon_state = "floor_yellow" + }, +/area/submap/cave/qShuttle) +"bi" = ( +/obj/item/trash/candy, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/shuttle/floor{ + icon_state = "floor_white" + }, +/area/submap/cave/qShuttle) +"bj" = ( +/obj/structure/table/rack, +/obj/structure/loot_pile/maint/boxfort, +/turf/simulated/shuttle/floor{ + icon_state = "floor_yellow" + }, +/area/submap/cave/qShuttle) +"bk" = ( +/obj/structure/table/rack, +/obj/item/weapon/shovel, +/turf/simulated/shuttle/floor{ + icon_state = "floor_yellow" + }, +/area/submap/cave/qShuttle) +"bl" = ( +/obj/structure/closet/crate/secure/science{ + icon_state = "scisecurecrateopen"; + locked = 0; + name = "Virus Samples - FRAGILE"; + opened = 1 + }, +/obj/item/weapon/virusdish/random, +/obj/item/weapon/virusdish/random, +/obj/item/weapon/virusdish/random, +/turf/simulated/shuttle/floor{ + icon_state = "floor_yellow" + }, +/area/submap/cave/qShuttle) +"bm" = ( +/obj/structure/bed/chair/comfy/brown{ + dir = 8 + }, +/obj/effect/decal/remains/human, +/obj/item/clothing/under/mbill{ + desc = "A uniform belonging to Major Bill's Transportation, a shipping megacorporation. This looks at least a few decades out of date."; + name = "\improper old Major Bill's uniform" + }, +/obj/item/clothing/head/soft/mbill{ + desc = "It's a ballcap bearing the colors of Major Bill's Shipping. This one looks at least a few decades out of date."; + name = "old shipping cap" + }, +/turf/simulated/shuttle/floor{ + icon_state = "floor_white" + }, +/area/submap/cave/qShuttle) +"bn" = ( +/obj/structure/table/standard, +/obj/item/device/taperecorder, +/turf/simulated/shuttle/floor, +/area/submap/cave/qShuttle) +"bo" = ( +/obj/item/weapon/tool/crowbar/red, +/turf/simulated/shuttle/floor{ + icon_state = "floor_white" + }, +/area/submap/cave/qShuttle) +"bp" = ( +/obj/item/trash/chips, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/shuttle/floor{ + icon_state = "floor_yellow" + }, +/area/submap/cave/qShuttle) +"bq" = ( +/obj/structure/bed/chair, +/turf/simulated/shuttle/floor{ + icon_state = "floor_yellow" + }, +/area/submap/cave/qShuttle) +"br" = ( +/obj/structure/bed/chair, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/shuttle/floor{ + icon_state = "floor_white" + }, +/area/submap/cave/qShuttle) +"bs" = ( +/obj/structure/bed/chair, +/obj/effect/decal/remains/human, +/obj/item/clothing/mask/breath, +/obj/item/clothing/head/soft/mbill{ + desc = "It's a ballcap bearing the colors of Major Bill's Shipping. This one looks at least a few decades out of date."; + name = "old shipping cap" + }, +/turf/simulated/shuttle/floor{ + icon_state = "floor_white" + }, +/area/submap/cave/qShuttle) +"bt" = ( +/obj/structure/bed/chair, +/obj/effect/decal/remains/human, +/turf/simulated/shuttle/floor{ + icon_state = "floor_white" + }, +/area/submap/cave/qShuttle) +"bu" = ( +/obj/effect/decal/remains/xeno, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/shuttle/floor{ + icon_state = "floor_white" + }, +/area/submap/cave/qShuttle) +"bv" = ( +/obj/item/weapon/material/shard{ + icon_state = "medium" + }, +/turf/simulated/shuttle/floor{ + icon_state = "floor_yellow" + }, +/area/submap/cave/qShuttle) +"bw" = ( +/obj/effect/decal/remains/mouse, +/turf/simulated/shuttle/floor{ + icon_state = "floor_yellow" + }, +/area/submap/cave/qShuttle) +"bx" = ( +/obj/random/maintenance, +/turf/simulated/shuttle/floor{ + icon_state = "floor_yellow" + }, +/area/submap/cave/qShuttle) +"by" = ( +/obj/item/weapon/coin/silver, +/turf/simulated/shuttle/floor{ + icon_state = "floor_white" + }, +/area/submap/cave/qShuttle) +"bz" = ( +/obj/effect/decal/remains/human, +/obj/item/clothing/suit/space/emergency, +/obj/item/clothing/head/helmet/space/emergency, +/turf/simulated/shuttle/floor{ + icon_state = "floor_yellow" + }, +/area/submap/cave/qShuttle) +"bA" = ( +/obj/effect/decal/cleanable/generic, +/turf/simulated/shuttle/floor{ + icon_state = "floor_yellow" + }, +/area/submap/cave/qShuttle) +"bB" = ( +/obj/item/weapon/tank/emergency/oxygen/engi, +/turf/simulated/shuttle/floor{ + icon_state = "floor_yellow" + }, +/area/submap/cave/qShuttle) +"bC" = ( +/obj/item/trash/sosjerky, +/obj/effect/decal/remains/human, +/turf/simulated/shuttle/floor{ + icon_state = "floor_white" + }, +/area/submap/cave/qShuttle) +"bD" = ( +/obj/effect/decal/remains/human, +/obj/item/clothing/mask/breath, +/turf/simulated/shuttle/floor{ + icon_state = "floor_white" + }, +/area/submap/cave/qShuttle) +"bE" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/simulated/shuttle/plating, +/area/submap/cave/qShuttle) +"bF" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/simulated/shuttle/plating, +/area/submap/cave/qShuttle) +"bG" = ( +/obj/machinery/button{ + dir = 4; + name = "Cargo Access" + }, +/turf/simulated/shuttle/wall, +/area/submap/cave/qShuttle) +"bH" = ( +/obj/machinery/recharge_station, +/turf/simulated/shuttle/floor, +/area/submap/cave/qShuttle) +"bI" = ( +/obj/machinery/door/airlock{ + name = "Charge Station" + }, +/turf/simulated/shuttle/floor{ + icon_state = "floor_white" + }, +/area/submap/cave/qShuttle) +"bJ" = ( +/obj/item/trash/tastybread, +/obj/item/weapon/material/butterfly/boxcutter, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/shuttle/floor{ + icon_state = "floor_white" + }, +/area/submap/cave/qShuttle) +"bK" = ( +/obj/effect/decal/cleanable/vomit, +/obj/effect/decal/cleanable/mucus/mapped, +/turf/simulated/shuttle/floor{ + icon_state = "floor_white" + }, +/area/submap/cave/qShuttle) +"bL" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/obj/effect/decal/remains/xeno, +/turf/simulated/shuttle/floor{ + icon_state = "floor_white" + }, +/area/submap/cave/qShuttle) +"bM" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/obj/item/weapon/card/id/external{ + desc = "An identification card of some sort. Looks like this one was issued by the Vir Independent Mining Corp."; + name = "VIMC identification card"; + rank = "Miner"; + registered_name = "Nadia Chu" + }, +/turf/simulated/shuttle/floor{ + icon_state = "floor_white" + }, +/area/submap/cave/qShuttle) +"bN" = ( +/obj/structure/table/rack, +/obj/item/weapon/storage/toolbox/emergency, +/turf/simulated/shuttle/floor{ + icon_state = "floor_white" + }, +/area/submap/cave/qShuttle) +"bO" = ( +/obj/structure/table/rack, +/obj/item/clothing/head/soft/mbill{ + desc = "It's a ballcap bearing the colors of Major Bill's Shipping. This one looks at least a few decades out of date."; + name = "old shipping cap" + }, +/turf/simulated/shuttle/floor{ + icon_state = "floor_white" + }, +/area/submap/cave/qShuttle) +"bP" = ( +/obj/structure/ore_box, +/turf/simulated/shuttle/floor{ + icon_state = "floor_yellow" + }, +/area/submap/cave/qShuttle) +"bQ" = ( +/obj/item/poster, +/turf/simulated/shuttle/floor{ + icon_state = "floor_yellow" + }, +/area/submap/cave/qShuttle) +"bR" = ( +/obj/structure/loot_pile/maint/technical, +/turf/simulated/shuttle/floor{ + icon_state = "floor_yellow" + }, +/area/submap/cave/qShuttle) +"bS" = ( +/obj/structure/sign/biohazard, +/turf/simulated/shuttle/wall/hard_corner, +/area/submap/cave/qShuttle) +"bT" = ( +/obj/item/tape/medical{ + icon_state = "tape_v_0" + }, +/turf/simulated/mineral/floor/ignore_mapgen, +/area/submap/cave/qShuttle) +"bU" = ( +/obj/item/taperoll/medical, +/turf/simulated/mineral/floor/ignore_mapgen, +/area/submap/cave/qShuttle) +"bV" = ( +/obj/item/tape/medical{ + dir = 1; + icon_state = "tape_dir_0" + }, +/obj/item/tape/medical{ + dir = 4; + icon_state = "tape_dir_0" + }, +/turf/simulated/mineral/floor/ignore_mapgen, +/area/submap/cave/qShuttle) +"bW" = ( +/obj/item/tape/medical{ + icon_state = "tape_h_0" + }, +/turf/simulated/mineral/floor/ignore_mapgen, +/area/submap/cave/qShuttle) +"bX" = ( +/obj/structure/lattice, +/turf/simulated/mineral/floor/ignore_mapgen, +/area/submap/cave/qShuttle) +"bY" = ( +/obj/structure/sign/warning/secure_area, +/turf/simulated/wall/iron, +/area/submap/cave/qShuttle) +"bZ" = ( +/obj/structure/sign/kiddieplaque{ + desc = "By order of the S.D.D.C, this site or craft is to be buried and not disturbed until such time that sterility can be confirmed. Dated: 20/12/2491 "; + name = "\improper Sif Department of Disease Control notice" + }, +/turf/simulated/wall/iron, +/area/submap/cave/qShuttle) +"ca" = ( +/obj/structure/sign/warning, +/turf/simulated/wall/iron, +/area/submap/cave/qShuttle) +"cb" = ( +/obj/item/bodybag, +/turf/simulated/mineral/floor/ignore_mapgen, +/area/submap/cave/qShuttle) +"cc" = ( +/obj/structure/table/steel, +/obj/item/weapon/storage/box/bodybags, +/turf/simulated/mineral/floor/ignore_mapgen, +/area/submap/cave/qShuttle) +"cd" = ( +/obj/structure/table/steel, +/obj/item/clothing/suit/bio_suit, +/obj/random/medical/lite, +/turf/simulated/mineral/floor/ignore_mapgen, +/area/submap/cave/qShuttle) +"ce" = ( +/obj/structure/closet/l3closet/virology, +/turf/simulated/mineral/floor/ignore_mapgen, +/area/submap/cave/qShuttle) +"cf" = ( +/obj/item/weapon/reagent_containers/syringe/antiviral, +/turf/simulated/mineral/floor/ignore_mapgen, +/area/submap/cave/qShuttle) +"cg" = ( +/obj/structure/dispenser/oxygen, +/turf/simulated/mineral/floor/ignore_mapgen, +/area/submap/cave/qShuttle) +"ch" = ( +/obj/structure/table/steel, +/turf/simulated/mineral/floor/ignore_mapgen, +/area/submap/cave/qShuttle) +"ci" = ( +/obj/structure/table/steel, +/obj/item/weapon/reagent_containers/syringe/antiviral, +/turf/simulated/mineral/floor/ignore_mapgen, +/area/submap/cave/qShuttle) +"cj" = ( +/obj/structure/table/steel, +/obj/item/weapon/reagent_containers/spray/cleaner{ + desc = "Someone has crossed out the 'Space' from Space Cleaner and written in Chemistry. Scrawled on the back is, 'Okay, whoever filled this with polytrinic acid, it was only funny the first time. It was hard enough replacing the CMO's first cat!'"; + name = "Chemistry Cleaner" + }, +/turf/simulated/mineral/floor/ignore_mapgen, +/area/submap/cave/qShuttle) +"ck" = ( +/obj/structure/table/steel, +/obj/item/weapon/tool/crowbar/power, +/turf/simulated/mineral/floor/ignore_mapgen, +/area/submap/cave/qShuttle) +"cl" = ( +/obj/structure/table/rack, +/obj/item/clothing/head/bio_hood, +/obj/item/clothing/suit/bio_suit, +/turf/simulated/mineral/floor/ignore_mapgen, +/area/submap/cave/qShuttle) +"cm" = ( +/obj/item/weapon/weldingtool/largetank, +/turf/simulated/mineral/floor/ignore_mapgen, +/area/submap/cave/qShuttle) +"cn" = ( +/obj/structure/closet/crate/medical, +/turf/simulated/mineral/floor/ignore_mapgen, +/area/submap/cave/qShuttle) +(1,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(2,1,1) = {" +aa +aa +aa +aa +aa +aa +ab +ac +ab +aa +aa +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +"} +(3,1,1) = {" +aa +aa +aa +aa +aa +aa +ab +ab +ab +ad +ai +ai +ai +ad +ab +ac +ab +ab +ab +ac +aa +aa +aa +aa +aa +"} +(4,1,1) = {" +aa +aa +aa +aa +aa +aa +ab +ab +ad +ad +aJ +aZ +aJ +ad +ad +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +"} +(5,1,1) = {" +aa +aa +aa +aa +aa +aa +ab +ad +ad +ad +aK +ba +bm +ad +ad +ad +bT +bV +ab +ab +ab +aa +aa +aa +aa +"} +(6,1,1) = {" +aa +aa +aa +aa +aa +aa +ab +ai +am +ad +aL +ba +bn +ad +bH +ai +ab +bW +ab +cg +cn +aa +aa +aa +aa +"} +(7,1,1) = {" +aa +aa +aa +aa +aa +aa +ae +aj +an +ad +ad +bb +ad +ad +bI +aj +ae +bW +ab +ch +ch +aa +aa +aa +aa +"} +(8,1,1) = {" +aa +aa +aa +aa +aa +aa +af +ak +ao +aw +aM +bc +bo +aD +bJ +ak +ae +bW +ab +ci +ab +aa +aa +aa +aa +"} +(9,1,1) = {" +aa +aa +aa +aa +aa +aa +ae +ak +ap +ax +aN +bd +bp +by +bK +ak +af +bW +ab +cj +ab +aa +aa +aa +aa +"} +(10,1,1) = {" +aa +aa +aa +aa +aa +aa +ae +al +ad +ay +aO +ad +bq +aA +ad +bS +ae +bW +ab +ck +ab +aa +aa +aa +aa +"} +(11,1,1) = {" +aa +aa +aa +aa +aa +aa +ab +ai +aq +az +aP +be +br +bz +bL +ai +ab +bW +bX +cl +ab +aa +aa +aa +aa +"} +(12,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ad +aq +aA +aQ +bf +bs +aA +aQ +ad +ab +bW +bY +ab +ab +aa +aa +aa +aa +"} +(13,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ai +ar +aB +aQ +bg +bt +bA +bM +ai +ab +bW +bZ +ab +ab +aa +aa +aa +aa +"} +(14,1,1) = {" +aa +aa +aa +aa +aa +aa +ab +ad +ad +aC +aR +ad +bq +bB +ad +ad +ab +bW +ca +cm +ab +aa +aa +aa +aa +"} +(15,1,1) = {" +aa +aa +aa +aa +aa +ab +ab +ad +as +aD +aS +bh +aN +bC +bN +ad +bU +bW +cb +ab +ab +aa +aa +aa +aa +"} +(16,1,1) = {" +aa +aa +aa +aa +aa +ac +ab +ad +at +aE +aT +bi +bu +bD +bO +ad +ab +bW +cb +cb +aa +aa +aa +aa +aa +"} +(17,1,1) = {" +aa +aa +aa +aa +aa +ab +ab +ad +ad +ad +aU +ad +aU +ad +ad +ad +ab +bW +cb +cb +aa +aa +aa +aa +aa +"} +(18,1,1) = {" +aa +aa +aa +aa +aa +ab +ab +ad +au +aF +aV +bj +bv +bE +bP +ad +ab +bW +ab +ab +aa +aa +aa +aa +aa +"} +(19,1,1) = {" +aa +aa +aa +aa +aa +aa +ab +ad +av +aG +aA +aA +aA +aG +bQ +ad +ab +bW +cc +ab +aa +aa +aa +aa +aa +"} +(20,1,1) = {" +aa +aa +aa +aa +aa +aa +ab +ad +au +aH +aW +bk +bw +bF +bR +ad +ab +bW +cd +ab +aa +aa +aa +aa +aa +"} +(21,1,1) = {" +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +aX +aA +aV +ad +ad +ad +ad +ad +ce +ab +ab +aa +aa +aa +aa +"} +(22,1,1) = {" +aa +aa +aa +aa +aa +ad +ag +ad +ag +aI +aA +bl +bx +ad +ag +ad +ag +ad +ab +ab +ab +aa +aa +aa +aa +"} +(23,1,1) = {" +aa +aa +aa +aa +ab +ad +ah +ad +ah +ad +aY +aY +aY +bG +ah +ad +ah +ad +cf +ab +ac +aa +aa +aa +aa +"} +(24,1,1) = {" +aa +aa +aa +aa +ab +ac +ab +aa +aa +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(25,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} diff --git a/maps/tether/tether-04-transit.dmm b/maps/tether/tether-04-transit.dmm index f09da46a0c..dc437b011f 100644 --- a/maps/tether/tether-04-transit.dmm +++ b/maps/tether/tether-04-transit.dmm @@ -1,4 +1,5 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +<<<<<<< HEAD "a" = ( /turf/unsimulated/wall, /area/space) @@ -60,6 +61,17 @@ }, /obj/machinery/door/firedoor/glass, /turf/simulated/floor/plating, +||||||| parent of 484d131671... Merge pull request #11014 from VOREStation/Arokha/v3bicons +"ag" = ( +/obj/structure/bed/chair/wood{ + dir = 4 + }, +/turf/simulated/floor/wood, +======= +"ag" = ( +/obj/structure/bed/chair/wood, +/turf/simulated/floor/midpoint_glass/reinf, +>>>>>>> 484d131671... Merge pull request #11014 from VOREStation/Arokha/v3bicons /area/tether/midpoint) "h" = ( /obj/structure/disposalpipe/segment, @@ -143,6 +155,7 @@ }, /turf/simulated/floor/tiled/dark, /area/tether/midpoint) +<<<<<<< HEAD "n" = ( /obj/structure/table/woodentable, /turf/simulated/floor/wood, @@ -151,8 +164,32 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/door/firedoor/glass/hidden{ dir = 1 +||||||| parent of 484d131671... Merge pull request #11014 from VOREStation/Arokha/v3bicons +"dc" = ( +/obj/structure/table/woodentable, +/turf/simulated/floor/wood, +/area/tether/midpoint) +"dU" = ( +/obj/structure/bed/chair/wood{ + dir = 8 +======= +"dc" = ( +/obj/structure/bed/chair/wood{ + dir = 1 +>>>>>>> 484d131671... Merge pull request #11014 from VOREStation/Arokha/v3bicons }, +<<<<<<< HEAD /turf/simulated/floor/tiled/dark, +||||||| parent of 484d131671... Merge pull request #11014 from VOREStation/Arokha/v3bicons +/turf/simulated/floor/wood, +======= +/turf/simulated/floor/midpoint_glass/reinf, +/area/tether/midpoint) +"dU" = ( +/obj/structure/table/woodentable, +/obj/random/plushie, +/turf/simulated/floor/midpoint_glass/reinf, +>>>>>>> 484d131671... Merge pull request #11014 from VOREStation/Arokha/v3bicons /area/tether/midpoint) "p" = ( /obj/machinery/light{ @@ -249,7 +286,28 @@ }, /turf/simulated/floor/wood, /area/tether/midpoint) +<<<<<<< HEAD "jt" = ( +||||||| parent of 484d131671... Merge pull request #11014 from VOREStation/Arokha/v3bicons +"hk" = ( +/obj/structure/table/woodentable, +/obj/random/plushie, +/turf/simulated/floor/wood, +/area/tether/midpoint) +"hp" = ( +/obj/structure/table/woodentable, +/obj/machinery/camera/network/civilian, +/turf/simulated/floor/wood, +/area/tether/midpoint) +"it" = ( +======= +"hp" = ( +/obj/structure/table/woodentable, +/obj/machinery/camera/network/civilian, +/turf/simulated/floor/midpoint_glass/reinf, +/area/tether/midpoint) +"it" = ( +>>>>>>> 484d131671... Merge pull request #11014 from VOREStation/Arokha/v3bicons /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/door/firedoor/glass/hidden, /obj/structure/disposalpipe/segment, @@ -290,7 +348,29 @@ "y" = ( /turf/simulated/wall/r_wall, /area/tether/midpoint) +<<<<<<< HEAD "z" = ( +||||||| parent of 484d131671... Merge pull request #11014 from VOREStation/Arokha/v3bicons +"kz" = ( +/obj/effect/step_trigger/teleporter/planetary_fall/virgo3b, +/turf/simulated/sky/virgo3b, +/area/tether/transit) +"lL" = ( +/obj/effect/blocker, +/obj/effect/step_trigger/teleporter/planetary_fall/virgo3b, +/turf/simulated/sky/virgo3b, +/area/tether/transit) +"mz" = ( +======= +"kz" = ( +/turf/space/v3b_midpoint, +/area/tether/transit) +"lL" = ( +/obj/effect/blocker, +/turf/space/v3b_midpoint, +/area/tether/transit) +"mz" = ( +>>>>>>> 484d131671... Merge pull request #11014 from VOREStation/Arokha/v3bicons /obj/machinery/power/apc{ cell_type = /obj/item/weapon/cell/super; dir = 8; @@ -304,9 +384,24 @@ }, /turf/simulated/floor/plating, /area/maintenance/tether_midpoint) +<<<<<<< HEAD "A" = ( /obj/structure/disposalpipe/up{ dir = 8 +||||||| parent of 484d131671... Merge pull request #11014 from VOREStation/Arokha/v3bicons +"no" = ( +/obj/machinery/atmospherics/pipe/simple/visible, +/obj/structure/cable{ + icon_state = "1-2" +======= +"mT" = ( +/turf/simulated/floor/midpoint_glass/reinf, +/area/tether/midpoint) +"no" = ( +/obj/machinery/atmospherics/pipe/simple/visible, +/obj/structure/cable{ + icon_state = "1-2" +>>>>>>> 484d131671... Merge pull request #11014 from VOREStation/Arokha/v3bicons }, /obj/effect/ceiling, /turf/simulated/floor/plating, @@ -534,10 +629,6 @@ }, /turf/simulated/floor/tiled/dark, /area/tether/midpoint) -"tA" = ( -/obj/structure/table/bench/padded, -/turf/simulated/floor/wood, -/area/tether/midpoint) "tB" = ( /obj/structure/cable{ d1 = 1; @@ -550,6 +641,10 @@ }, /turf/simulated/floor/tiled/dark, /area/tether/midpoint) +"tM" = ( +/obj/structure/table/woodentable, +/turf/simulated/floor/midpoint_glass/reinf, +/area/tether/midpoint) "uA" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -564,14 +659,14 @@ /obj/machinery/holoposter{ pixel_y = 30 }, -/turf/simulated/floor/wood, +/turf/simulated/floor/midpoint_glass/reinf, /area/tether/midpoint) "vh" = ( /obj/structure/table/woodentable, /obj/structure/flora/pottedplant/small{ pixel_y = 8 }, -/turf/simulated/floor/wood, +/turf/simulated/floor/midpoint_glass/reinf, /area/tether/midpoint) "vt" = ( /obj/structure/table/woodentable, @@ -588,11 +683,17 @@ /obj/effect/floor_decal/borderfloorblack{ dir = 4 }, +<<<<<<< HEAD /turf/simulated/floor/tiled/dark, /area/tether/midpoint) "tA" = ( /obj/structure/table/bench/padded, /turf/simulated/floor/wood, +||||||| parent of 484d131671... Merge pull request #11014 from VOREStation/Arokha/v3bicons +/turf/simulated/floor/wood, +======= +/turf/simulated/floor/midpoint_glass/reinf, +>>>>>>> 484d131671... Merge pull request #11014 from VOREStation/Arokha/v3bicons /area/tether/midpoint) "tB" = ( /obj/structure/cable{ @@ -746,7 +847,7 @@ /obj/structure/bed/chair/comfy/black{ dir = 8 }, -/turf/simulated/floor/wood, +/turf/simulated/floor/midpoint_glass/reinf, /area/tether/midpoint) "M" = ( /obj/structure/grille, @@ -899,7 +1000,10 @@ /obj/structure/bed/chair/comfy/black{ dir = 4 }, -/turf/simulated/floor/wood, +/obj/structure/bed/chair/wood{ + dir = 1 + }, +/turf/simulated/floor/midpoint_glass/reinf, /area/tether/midpoint) <<<<<<< HEAD "V" = ( @@ -1002,16 +1106,55 @@ /obj/machinery/door/firedoor/glass, /turf/simulated/open, /area/maintenance/tether_midpoint) +<<<<<<< HEAD "Or" = ( /obj/structure/disposalpipe/segment{ dir = 4 >>>>>>> bb3cfe95f0... Merge pull request #10765 from Very-Soft/messeswithstuff +||||||| parent of 484d131671... Merge pull request #11014 from VOREStation/Arokha/v3bicons +"QE" = ( +/obj/structure/sign/painting/public{ + pixel_y = -30 + }, +/turf/simulated/floor/wood, +/area/tether/midpoint) +"RZ" = ( +/obj/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 8 +======= +"QE" = ( +/obj/structure/sign/painting/public{ + pixel_y = -30 + }, +/turf/simulated/floor/wood, +/area/tether/midpoint) +"Rl" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/table/woodentable, +/turf/simulated/floor/midpoint_glass/reinf, +/area/tether/midpoint) +"RZ" = ( +/obj/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 8 +>>>>>>> 484d131671... Merge pull request #11014 from VOREStation/Arokha/v3bicons }, /obj/machinery/light{ dir = 8; icon_state = "tube1" }, +<<<<<<< HEAD /turf/simulated/floor/tiled/dark, +||||||| parent of 484d131671... Merge pull request #11014 from VOREStation/Arokha/v3bicons +/obj/structure/table/bench/padded, +/turf/simulated/floor/wood, +======= +/obj/structure/table/bench/padded, +/turf/simulated/floor/midpoint_glass/reinf, +>>>>>>> 484d131671... Merge pull request #11014 from VOREStation/Arokha/v3bicons /area/tether/midpoint) "X" = ( /obj/machinery/vending/coffee{ @@ -1037,10 +1180,34 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 10 }, +<<<<<<< HEAD /obj/structure/disposalpipe/segment{ +||||||| parent of 484d131671... Merge pull request #11014 from VOREStation/Arokha/v3bicons +/turf/simulated/floor/wood, +/area/tether/midpoint) +"WU" = ( +/obj/machinery/light{ +======= +/turf/simulated/floor/wood, +/area/tether/midpoint) +"Wf" = ( +/obj/structure/table/bench/padded, +/turf/simulated/floor/midpoint_glass/reinf, +/area/tether/midpoint) +"WU" = ( +/obj/machinery/light{ +>>>>>>> 484d131671... Merge pull request #11014 from VOREStation/Arokha/v3bicons dir = 4 }, +<<<<<<< HEAD /turf/simulated/floor/tiled/dark, +||||||| parent of 484d131671... Merge pull request #11014 from VOREStation/Arokha/v3bicons +/obj/structure/table/bench/padded, +/turf/simulated/floor/wood, +======= +/obj/structure/table/bench/padded, +/turf/simulated/floor/midpoint_glass/reinf, +>>>>>>> 484d131671... Merge pull request #11014 from VOREStation/Arokha/v3bicons /area/tether/midpoint) <<<<<<< HEAD "Z" = ( @@ -1103,7 +1270,13 @@ pixel_y = 8 >>>>>>> bb3cfe95f0... Merge pull request #10765 from Very-Soft/messeswithstuff }, +<<<<<<< HEAD /turf/simulated/floor/tiled/dark, +||||||| parent of 484d131671... Merge pull request #11014 from VOREStation/Arokha/v3bicons +/turf/simulated/floor/wood, +======= +/turf/simulated/floor/midpoint_glass/reinf, +>>>>>>> 484d131671... Merge pull request #11014 from VOREStation/Arokha/v3bicons /area/tether/midpoint) (1,1,1) = {" @@ -5509,6 +5682,7 @@ a a "} (32,1,1) = {" +<<<<<<< HEAD a a a @@ -5649,6 +5823,24997 @@ a a a a +||||||| parent of 484d131671... Merge pull request #11014 from VOREStation/Arokha/v3bicons +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(33,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(34,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(35,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(36,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(37,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(38,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(39,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(40,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(41,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(42,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(43,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(44,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(45,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(46,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(47,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(48,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(49,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(50,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(51,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(52,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(53,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(54,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +NJ +Qc +Qc +PF +Qc +Qc +Qc +Qc +PF +Qc +Qc +zP +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(55,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +NJ +Qc +cH +pK +pK +zi +pK +pK +pK +pK +KN +pK +pK +kn +Qc +zP +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(56,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +PF +PF +fI +pK +pK +ag +ag +pK +ag +ag +pK +ag +ag +pK +pK +Iq +PF +PF +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(57,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +NJ +PF +Jl +pK +pK +pK +dc +dc +pK +dc +hk +pK +dc +dc +pK +Hy +Nt +GU +PF +zP +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(58,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +Et +zi +pK +pK +pK +pK +dU +dU +pK +dU +dU +pK +dU +dU +pK +Or +pK +pK +zi +Et +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(59,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +NJ +gq +pK +pK +pK +pK +pK +pK +Pz +Wc +pK +pK +Wc +Pz +pK +pK +Or +pK +pK +pK +nD +zP +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(60,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +Et +pK +pK +pK +pK +pK +PF +PF +PF +PF +PF +PF +PF +PF +PF +PF +Or +pK +pK +pK +pK +Et +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(61,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +Et +tA +tA +tA +pK +pK +Dz +iK +pM +pM +pM +Dz +oN +yi +ML +PF +uA +pK +tA +tA +tA +Et +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(62,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +PF +uC +vh +dc +pK +Iq +Dz +Ui +HK +cB +Oq +mz +pM +oP +pM +PF +wM +pK +dc +YB +vt +PF +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(63,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +Et +tA +tA +tA +pK +QE +Dz +Qv +xl +no +jE +Ha +gV +Ls +PF +PF +WY +pK +tA +tA +tA +Et +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(64,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +Et +pK +pK +pK +pK +pK +Dz +Qv +Hs +Hs +Hs +Hs +Hs +Hs +PF +pO +Or +pK +pK +pK +pK +Et +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(65,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +Et +pK +pK +pK +pK +pK +Dz +Qv +Hs +Gl +Gl +Gl +Gl +Hs +PF +sw +Or +pK +pK +pK +pK +Et +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(66,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +Et +tA +tA +tA +pK +QE +Dz +Qv +Hs +Gl +Gl +Gl +Gl +Hs +PF +Kh +hi +pK +tA +tA +tA +Et +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(67,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +PF +hp +YB +dc +pK +Iq +Dz +Qv +Hs +Gl +Gl +Gl +Gl +Hs +PF +PF +wM +pK +dc +vh +zZ +PF +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(68,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +Et +tA +tA +tA +pK +VB +Dz +Qv +Hs +Gl +Gl +Gl +Gl +Hs +pM +PF +Xo +pK +tA +tA +tA +Et +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(69,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +Et +pK +pK +pK +pK +pK +Dz +zG +Hs +Hs +Gl +Gl +Hs +Hs +Dz +PF +Or +pK +pK +pK +pK +Et +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(70,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +nD +zP +pK +Hy +Nt +Nt +Nt +EI +oz +it +jt +jt +cR +JB +XO +Nt +KH +pK +pK +pK +NJ +gq +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(71,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +Et +Pz +Or +pK +pK +pK +Tz +It +tB +tB +tB +tB +tn +sR +pK +pK +pK +pK +Pz +Et +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(72,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +nD +PF +RZ +pK +pK +pK +pK +pK +pK +pK +pK +pK +pK +pK +pK +pK +pK +Jl +PF +gq +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(73,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +PF +PF +fI +pK +pK +pK +tA +tA +tA +tA +tA +tA +pK +pK +pK +Iq +PF +PF +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(74,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +nD +Qc +zP +pK +pK +Sm +dc +dc +dc +dc +WU +pK +pK +NJ +Qc +gq +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(75,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +nD +Qc +Qc +PF +Qc +Qc +Qc +Qc +PF +Qc +Qc +gq +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(76,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(77,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(78,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(79,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(80,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(81,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(82,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(83,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(84,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(85,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(86,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(87,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(88,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(89,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(90,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(91,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(92,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(93,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(94,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(95,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(96,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(97,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(98,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(99,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(100,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(101,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(102,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(103,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(104,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(105,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(106,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(107,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(108,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(109,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(110,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(111,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(112,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(113,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(114,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(115,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(116,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(117,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(118,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(119,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +======= +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(33,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(34,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(35,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(36,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(37,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(38,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(39,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(40,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(41,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(42,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(43,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(44,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(45,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(46,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(47,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(48,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(49,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(50,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(51,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(52,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(53,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(54,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +NJ +Qc +Qc +PF +Qc +Qc +Qc +Qc +PF +Qc +Qc +zP +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(55,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +NJ +Qc +cH +mT +ag +Rl +dc +mT +ag +dU +KN +mT +mT +kn +Qc +zP +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(56,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +PF +PF +fI +pK +mT +ag +tM +dc +mT +ag +tM +dc +mT +mT +pK +Iq +PF +PF +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(57,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +NJ +PF +Jl +pK +pK +pK +pK +pK +pK +pK +pK +pK +pK +pK +pK +Hy +Nt +GU +PF +zP +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(58,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +Et +zi +pK +pK +pK +pK +pK +pK +pK +pK +pK +pK +pK +pK +pK +Or +pK +pK +zi +Et +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(59,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +NJ +gq +pK +pK +pK +pK +pK +pK +Pz +Wc +pK +pK +Wc +Pz +pK +pK +Or +pK +pK +pK +nD +zP +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(60,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +Et +mT +mT +pK +pK +pK +PF +PF +PF +PF +PF +PF +PF +PF +PF +PF +Or +pK +pK +mT +mT +Et +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(61,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +Et +Wf +Wf +pK +pK +pK +Dz +iK +pM +pM +pM +Dz +oN +yi +ML +PF +uA +pK +pK +Wf +Wf +Et +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(62,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +PF +uC +vh +pK +pK +Iq +Dz +Ui +HK +cB +Oq +mz +pM +oP +pM +PF +wM +pK +pK +YB +vt +PF +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(63,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +Et +Wf +Wf +pK +pK +QE +Dz +Qv +xl +no +jE +Ha +gV +Ls +PF +PF +WY +pK +pK +Wf +Wf +Et +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(64,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +Et +mT +mT +pK +pK +pK +Dz +Qv +Hs +Hs +Hs +Hs +Hs +Hs +PF +pO +Or +pK +pK +mT +mT +Et +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(65,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +Et +mT +mT +pK +pK +pK +Dz +Qv +Hs +Gl +Gl +Gl +Gl +Hs +PF +sw +Or +pK +pK +mT +mT +Et +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(66,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +Et +Wf +Wf +pK +pK +QE +Dz +Qv +Hs +Gl +Gl +Gl +Gl +Hs +PF +Kh +hi +pK +pK +Wf +Wf +Et +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(67,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +PF +hp +YB +pK +pK +Iq +Dz +Qv +Hs +Gl +Gl +Gl +Gl +Hs +PF +PF +wM +pK +pK +vh +zZ +PF +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(68,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +Et +Wf +Wf +pK +pK +VB +Dz +Qv +Hs +Gl +Gl +Gl +Gl +Hs +pM +PF +Xo +pK +pK +Wf +Wf +Et +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(69,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +Et +mT +mT +pK +pK +pK +Dz +zG +Hs +Hs +Gl +Gl +Hs +Hs +Dz +PF +Or +pK +pK +mT +mT +Et +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(70,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +nD +zP +pK +Hy +Nt +Nt +Nt +EI +oz +it +jt +jt +cR +JB +XO +Nt +KH +pK +pK +pK +NJ +gq +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(71,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +Et +Pz +Or +pK +pK +pK +Tz +It +tB +tB +tB +tB +tn +sR +pK +pK +pK +pK +Pz +Et +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(72,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +nD +PF +RZ +pK +pK +pK +pK +pK +pK +pK +pK +pK +pK +pK +pK +pK +pK +Jl +PF +gq +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(73,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +PF +PF +fI +pK +mT +mT +Wf +Wf +Wf +Wf +Wf +Wf +mT +mT +pK +Iq +PF +PF +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(74,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +nD +Qc +zP +mT +mT +Sm +tM +tM +tM +tM +WU +mT +mT +NJ +Qc +gq +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(75,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +nD +Qc +Qc +PF +Qc +Qc +Qc +Qc +PF +Qc +Qc +gq +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(76,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(77,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(78,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(79,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(80,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(81,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(82,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(83,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(84,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(85,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(86,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(87,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(88,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(89,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +lL +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(90,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(91,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(92,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(93,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(94,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(95,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(96,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(97,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(98,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(99,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(100,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(101,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(102,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(103,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(104,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(105,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(106,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(107,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(108,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(109,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(110,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(111,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(112,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(113,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(114,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(115,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(116,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(117,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(118,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +"} +(119,1,1) = {" +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +kz +>>>>>>> 484d131671... Merge pull request #11014 from VOREStation/Arokha/v3bicons "} (33,1,1) = {" a diff --git a/maps/tether/tether_defines.dm b/maps/tether/tether_defines.dm index 6690846e61..863ee39b2a 100644 --- a/maps/tether/tether_defines.dm +++ b/maps/tether/tether_defines.dm @@ -238,7 +238,15 @@ [i]Transponder[/i]: Transmitting (CIV), NanoTrasen IFF [b]Notice[/b]: NanoTrasen Base, authorized personnel only"} base = 1 - icon_state = "reddwarf" + + icon = 'icons/obj/overmap_vr.dmi' + icon_state = "virgo3b" + + skybox_icon = 'icons/skybox/virgo3b.dmi' + skybox_icon_state = "small" + skybox_pixel_x = 0 + skybox_pixel_y = 0 + initial_generic_waypoints = list( "tether_dockarm_d1a1", //Bottom left, "tether_dockarm_d1a2", //Top left, @@ -288,6 +296,15 @@ else if(istype(AM, /obj/effect/overmap/visitable/ship)) atc.msg(message) +/obj/effect/overmap/visitable/sector/virgo3b/generate_skybox(zlevel) + var/static/image/bigone = image(icon = 'icons/skybox/virgo3b.dmi', icon_state = "large") + var/static/image/smallone = image(icon = 'icons/skybox/virgo3b.dmi', icon_state = "small") + + if(zlevel == Z_LEVEL_TRANSIT) + return bigone + else + return smallone + // For making the 6-in-1 holomap, we calculate some offsets #define TETHER_MAP_SIZE 140 // Width and height of compiled in tether z levels. #define TETHER_HOLOMAP_CENTER_GUTTER 40 // 40px central gutter between columns @@ -328,6 +345,7 @@ z = Z_LEVEL_TRANSIT name = "Transit" flags = MAP_LEVEL_STATION|MAP_LEVEL_SEALED|MAP_LEVEL_PLAYER|MAP_LEVEL_CONTACT|MAP_LEVEL_XENOARCH_EXEMPT + base_turf = /turf/space/v3b_midpoint // Special type that spawns fall triggers /datum/map_z_level/tether/station/space_low z = Z_LEVEL_SPACE_LOW diff --git a/maps/tether/tether_turfs.dm b/maps/tether/tether_turfs.dm index 9bd9d58e3a..e10c6a5fe0 100644 --- a/maps/tether/tether_turfs.dm +++ b/maps/tether/tether_turfs.dm @@ -215,3 +215,72 @@ VIRGO3B_TURF_CREATE(/turf/simulated/mineral/floor) dir = EAST /turf/simulated/sky/virgo3b/moving/west dir = WEST + +/turf/simulated/floor/midpoint_glass + name = "glass floor" + desc = "Dont jump on it, or do, I'm not your mom." + icon = 'icons/turf/flooring/glass.dmi' + icon_state = "glass-0" + base_icon_state = "glass" + +/turf/simulated/floor/midpoint_glass/reinf + name = "reinforced glass floor" + desc = "Do jump on it, it can take it." + icon = 'icons/turf/flooring/reinf_glass.dmi' + icon_state = "reinf_glass-0" + base_icon_state = "reinf_glass" + +/turf/simulated/floor/midpoint_glass/Initialize() + . = ..() + return INITIALIZE_HINT_LATELOAD + +/turf/simulated/floor/midpoint_glass/LateInitialize() + do_icons() + +/turf/simulated/floor/midpoint_glass/proc/do_icons() + var/new_junction = NONE + + for(var/direction in cardinal) //Cardinal case first. + var/turf/T = get_step(src, direction) + if(istype(T, type)) + new_junction |= direction + + if(!(new_junction & (NORTH|SOUTH)) || !(new_junction & (EAST|WEST))) + icon_state = "[base_icon_state]-[new_junction]" + return + + if(new_junction & NORTH) + if(new_junction & WEST) + var/turf/T = get_step(src, NORTHWEST) + if(istype(T, type)) + new_junction |= (1<<7) + + if(new_junction & EAST) + var/turf/T = get_step(src, NORTHEAST) + if(istype(T, type)) + new_junction |= (1<<4) + + if(new_junction & SOUTH) + if(new_junction & WEST) + var/turf/T = get_step(src, SOUTHWEST) + if(istype(T, type)) + new_junction |= (1<<6) + + if(new_junction & EAST) + var/turf/T = get_step(src, SOUTHEAST) + if(istype(T, type)) + new_junction |= (1<<5) + + icon_state = "[base_icon_state]-[new_junction]" + + add_vis_overlay('icons/effects/effects.dmi', "white", plane = SPACE_PLANE, add_vis_flags = VIS_INHERIT_ID|VIS_UNDERLAY) + +/turf/space/v3b_midpoint/Initialize() + . = ..() + new /obj/effect/step_trigger/teleporter/planetary_fall/virgo3b(src) + +/turf/space/v3b_midpoint/ChangeTurf(turf/N, tell_universe, force_lighting_update, preserve_outdoors) + . = ..() + for(var/obj/effect/step_trigger/teleporter/planetary_fall/virgo3b/F in src) + qdel(F) + \ No newline at end of file diff --git a/maps/virgo_minitest/virgo_minitest_defines.dm b/maps/virgo_minitest/virgo_minitest_defines.dm index abee28169d..716815b7b3 100644 --- a/maps/virgo_minitest/virgo_minitest_defines.dm +++ b/maps/virgo_minitest/virgo_minitest_defines.dm @@ -60,6 +60,10 @@ allowed_spawns = list("Arrivals Shuttle","Gateway","Cryogenic Storage","Cyborg Storage") +/datum/map/virgo_minitest/New() + ..() + SSticker.start_immediately = TRUE + /datum/map_z_level/minitest/station z = Z_LEVEL_MAIN_VIRGO_TESTING name = "Station Level" diff --git a/rust_g.dll b/rust_g.dll index 5e60ff2cd4..ebb6c9fd19 100644 Binary files a/rust_g.dll and b/rust_g.dll differ diff --git a/tgui/packages/common/string.js b/tgui/packages/common/string.js index 461f975b3a..4278a1fb3e 100644 --- a/tgui/packages/common/string.js +++ b/tgui/packages/common/string.js @@ -78,13 +78,21 @@ export const createSearch = (searchText, stringifier) => { }; }; +export const isUppercase = chr => { + return chr.toUpperCase() === chr; +}; + export const capitalize = str => { // Handle array if (Array.isArray(str)) { return str.map(capitalize); } // Handle string - return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase(); + let chr = str.charAt(0); + if (isUppercase(chr)) { + return str; // Already caps, might be an acronym, so don't mess it up by lowercasing the rest + } + return chr.toUpperCase() + str.slice(1).toLowerCase(); }; export const toTitleCase = str => { diff --git a/tgui/public/tgui-common.bundle.js b/tgui/public/tgui-common.bundle.js index 013a168d31..d363cbd6bb 100644 --- a/tgui/public/tgui-common.bundle.js +++ b/tgui/public/tgui-common.bundle.js @@ -1 +1 @@ -(self.webpackChunktgui_workspace=self.webpackChunktgui_workspace||[]).push([[962],{33407:function(e,t,n){"use strict";t.__esModule=!0,t.popperGenerator=v,t.createPopper=void 0;var r=d(n(98825)),o=d(n(52089)),i=d(n(66469)),a=d(n(54484)),u=(d(n(82020)),d(n(7183))),c=d(n(16936)),s=(d(n(11026)),d(n(20675)),d(n(78044)),d(n(5495))),l=d(n(45073));t.detectOverflow=l["default"];var f=n(31966);n(54945);function d(e){return e&&e.__esModule?e:{"default":e}}var p={placement:"bottom",modifiers:[],strategy:"absolute"};function h(){for(var e=arguments.length,t=new Array(e),n=0;n=0&&(0,l.isHTMLElement)(e)?(0,u["default"])(e):e;if(!(0,l.isElement)(n))return[];return t.filter((function(e){return(0,l.isElement)(e)&&(0,p["default"])(e,n)&&"body"!==(0,h["default"])(e)}))}(e):[].concat(t),o=[].concat(r,[n]),i=o[0],c=o.reduce((function(t,n){var r=y(e,n);return t.top=(0,m.max)(r.top,t.top),t.right=(0,m.min)(r.right,t.right),t.bottom=(0,m.min)(r.bottom,t.bottom),t.left=(0,m.max)(r.left,t.left),t}),y(e,i));return c.width=c.right-c.left,c.height=c.bottom-c.top,c.x=c.left,c.y=c.top,c};var r=n(54945),o=g(n(17488)),i=g(n(27175)),a=g(n(66469)),u=g(n(54484)),c=g(n(36e3)),s=g(n(82020)),l=n(31966),f=g(n(87916)),d=g(n(23470)),p=g(n(41858)),h=g(n(38012)),v=g(n(77276)),m=n(52209);function g(e){return e&&e.__esModule?e:{"default":e}}function y(e,t){return t===r.viewport?(0,v["default"])((0,o["default"])(e)):(0,l.isHTMLElement)(t)?function(e){var t=(0,f["default"])(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}(t):(0,v["default"])((0,i["default"])((0,c["default"])(e)))}},98825:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e,t,n){void 0===n&&(n=!1);var l=(0,c["default"])(t),f=(0,r["default"])(e),d=(0,a.isHTMLElement)(t),p={scrollLeft:0,scrollTop:0},h={x:0,y:0};(d||!d&&!n)&&(("body"!==(0,i["default"])(t)||(0,s["default"])(l))&&(p=(0,o["default"])(t)),(0,a.isHTMLElement)(t)?((h=(0,r["default"])(t)).x+=t.clientLeft,h.y+=t.clientTop):l&&(h.x=(0,u["default"])(l)));return{x:f.left+p.scrollLeft-h.x,y:f.top+p.scrollTop-h.y,width:f.width,height:f.height}};var r=l(n(87916)),o=l(n(38015)),i=l(n(38012)),a=n(31966),u=l(n(25880)),c=l(n(36e3)),s=l(n(42156));function l(e){return e&&e.__esModule?e:{"default":e}}},82020:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){return(0,o["default"])(e).getComputedStyle(e)};var r,o=(r=n(89778))&&r.__esModule?r:{"default":r}},36e3:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){return(((0,r.isElement)(e)?e.ownerDocument:e.document)||window.document).documentElement};var r=n(31966)},27175:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){var t,n=(0,r["default"])(e),c=(0,a["default"])(e),s=null==(t=e.ownerDocument)?void 0:t.body,l=(0,u.max)(n.scrollWidth,n.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),f=(0,u.max)(n.scrollHeight,n.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),d=-c.scrollLeft+(0,i["default"])(e),p=-c.scrollTop;"rtl"===(0,o["default"])(s||n).direction&&(d+=(0,u.max)(n.clientWidth,s?s.clientWidth:0)-l);return{width:l,height:f,x:d,y:p}};var r=c(n(36e3)),o=c(n(82020)),i=c(n(25880)),a=c(n(31348)),u=n(52209);function c(e){return e&&e.__esModule?e:{"default":e}}},13339:function(e,t){"use strict";t.__esModule=!0,t["default"]=function(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}},52089:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){var t=(0,o["default"])(e),n=e.offsetWidth,r=e.offsetHeight;Math.abs(t.width-n)<=1&&(n=t.width);Math.abs(t.height-r)<=1&&(r=t.height);return{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}};var r,o=(r=n(87916))&&r.__esModule?r:{"default":r}},38012:function(e,t){"use strict";t.__esModule=!0,t["default"]=function(e){return e?(e.nodeName||"").toLowerCase():null}},38015:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){return e!==(0,o["default"])(e)&&(0,i.isHTMLElement)(e)?(0,a["default"])(e):(0,r["default"])(e)};var r=u(n(31348)),o=u(n(89778)),i=n(31966),a=u(n(13339));function u(e){return e&&e.__esModule?e:{"default":e}}},54484:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){var t=(0,r["default"])(e),n=l(e);for(;n&&(0,u["default"])(n)&&"static"===(0,i["default"])(n).position;)n=l(n);if(n&&("html"===(0,o["default"])(n)||"body"===(0,o["default"])(n)&&"static"===(0,i["default"])(n).position))return t;return n||function(e){var t=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&(0,a.isHTMLElement)(e)){if("fixed"===(0,i["default"])(e).position)return null}var n=(0,c["default"])(e);for(;(0,a.isHTMLElement)(n)&&["html","body"].indexOf((0,o["default"])(n))<0;){var r=(0,i["default"])(n);if("none"!==r.transform||"none"!==r.perspective||"paint"===r.contain||-1!==["transform","perspective"].indexOf(r.willChange)||t&&"filter"===r.willChange||t&&r.filter&&"none"!==r.filter)return n;n=n.parentNode}return null}(e)||t};var r=s(n(89778)),o=s(n(38012)),i=s(n(82020)),a=n(31966),u=s(n(69183)),c=s(n(23470));function s(e){return e&&e.__esModule?e:{"default":e}}function l(e){return(0,a.isHTMLElement)(e)&&"fixed"!==(0,i["default"])(e).position?e.offsetParent:null}},23470:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){if("html"===(0,r["default"])(e))return e;return e.assignedSlot||e.parentNode||((0,i.isShadowRoot)(e)?e.host:null)||(0,o["default"])(e)};var r=a(n(38012)),o=a(n(36e3)),i=n(31966);function a(e){return e&&e.__esModule?e:{"default":e}}},92098:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function c(e){if(["html","body","#document"].indexOf((0,i["default"])(e))>=0)return e.ownerDocument.body;if((0,a.isHTMLElement)(e)&&(0,o["default"])(e))return e;return c((0,r["default"])(e))};var r=u(n(23470)),o=u(n(42156)),i=u(n(38012)),a=n(31966);function u(e){return e&&e.__esModule?e:{"default":e}}},17488:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){var t=(0,r["default"])(e),n=(0,o["default"])(e),a=t.visualViewport,u=n.clientWidth,c=n.clientHeight,s=0,l=0;a&&(u=a.width,c=a.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(s=a.offsetLeft,l=a.offsetTop));return{width:u,height:c,x:s+(0,i["default"])(e),y:l}};var r=a(n(89778)),o=a(n(36e3)),i=a(n(25880));function a(e){return e&&e.__esModule?e:{"default":e}}},89778:function(e,t){"use strict";t.__esModule=!0,t["default"]=function(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}},31348:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){var t=(0,o["default"])(e),n=t.pageXOffset,r=t.pageYOffset;return{scrollLeft:n,scrollTop:r}};var r,o=(r=n(89778))&&r.__esModule?r:{"default":r}},25880:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){return(0,r["default"])((0,o["default"])(e)).left+(0,i["default"])(e).scrollLeft};var r=a(n(87916)),o=a(n(36e3)),i=a(n(31348));function a(e){return e&&e.__esModule?e:{"default":e}}},31966:function(e,t,n){"use strict";t.__esModule=!0,t.isElement=function(e){var t=(0,o["default"])(e).Element;return e instanceof t||e instanceof Element},t.isHTMLElement=function(e){var t=(0,o["default"])(e).HTMLElement;return e instanceof t||e instanceof HTMLElement},t.isShadowRoot=function(e){if("undefined"==typeof ShadowRoot)return!1;var t=(0,o["default"])(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot};var r,o=(r=n(89778))&&r.__esModule?r:{"default":r}},42156:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){var t=(0,o["default"])(e),n=t.overflow,r=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+r)};var r,o=(r=n(82020))&&r.__esModule?r:{"default":r}},69183:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){return["table","td","th"].indexOf((0,o["default"])(e))>=0};var r,o=(r=n(38012))&&r.__esModule?r:{"default":r}},66469:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function c(e,t){var n;void 0===t&&(t=[]);var u=(0,r["default"])(e),s=u===(null==(n=e.ownerDocument)?void 0:n.body),l=(0,i["default"])(u),f=s?[l].concat(l.visualViewport||[],(0,a["default"])(u)?u:[]):u,d=t.concat(f);return s?d:d.concat(c((0,o["default"])(f)))};var r=u(n(92098)),o=u(n(23470)),i=u(n(89778)),a=u(n(42156));function u(e){return e&&e.__esModule?e:{"default":e}}},54945:function(e,t){"use strict";t.__esModule=!0,t.modifierPhases=t.afterWrite=t.write=t.beforeWrite=t.afterMain=t.main=t.beforeMain=t.afterRead=t.read=t.beforeRead=t.placements=t.variationPlacements=t.reference=t.popper=t.viewport=t.clippingParents=t.end=t.start=t.basePlacements=t.auto=t.left=t.right=t.bottom=t.top=void 0;t.top="top";var n="bottom";t.bottom=n;var r="right";t.right=r;var o="left";t.left=o;var i="auto";t.auto=i;var a=["top",n,r,o];t.basePlacements=a;var u="start";t.start=u;var c="end";t.end=c;t.clippingParents="clippingParents";t.viewport="viewport";t.popper="popper";t.reference="reference";var s=a.reduce((function(e,t){return e.concat([t+"-"+u,t+"-"+c])}),[]);t.variationPlacements=s;var l=[].concat(a,[i]).reduce((function(e,t){return e.concat([t,t+"-"+u,t+"-"+c])}),[]);t.placements=l;var f="beforeRead";t.beforeRead=f;var d="read";t.read=d;var p="afterRead";t.afterRead=p;var h="beforeMain";t.beforeMain=h;var v="main";t.main=v;var m="afterMain";t.afterMain=m;var g="beforeWrite";t.beforeWrite=g;var y="write";t.write=y;var b="afterWrite";t.afterWrite=b;var _=[f,d,p,h,v,m,g,y,b];t.modifierPhases=_},11613:function(e,t,n){"use strict";t.__esModule=!0;var r={popperGenerator:!0,detectOverflow:!0,createPopperBase:!0,createPopper:!0,createPopperLite:!0};t.createPopperLite=t.createPopper=t.createPopperBase=t.detectOverflow=t.popperGenerator=void 0;var o=n(54945);Object.keys(o).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(r,e)||e in t&&t[e]===o[e]||(t[e]=o[e]))}));var i=n(15461);Object.keys(i).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(r,e)||e in t&&t[e]===i[e]||(t[e]=i[e]))}));var a=n(33407);t.popperGenerator=a.popperGenerator,t.detectOverflow=a.detectOverflow,t.createPopperBase=a.createPopper;var u=n(15172);t.createPopper=u.createPopper;var c=n(15327);t.createPopperLite=c.createPopper},1803:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=void 0;var r,o=(r=n(38012))&&r.__esModule?r:{"default":r},i=n(31966);var a={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},r=t.attributes[e]||{},a=t.elements[e];(0,i.isHTMLElement)(a)&&(0,o["default"])(a)&&(Object.assign(a.style,n),Object.keys(r).forEach((function(e){var t=r[e];!1===t?a.removeAttribute(e):a.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var r=t.elements[e],a=t.attributes[e]||{},u=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});(0,i.isHTMLElement)(r)&&(0,o["default"])(r)&&(Object.assign(r.style,u),Object.keys(a).forEach((function(e){r.removeAttribute(e)})))}))}},requires:["computeStyles"]};t["default"]=a},35838:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=void 0;var r=d(n(78044)),o=d(n(52089)),i=d(n(41858)),a=d(n(54484)),u=d(n(99840)),c=d(n(51520)),s=d(n(72882)),l=d(n(8415)),f=n(54945);n(31966);function d(e){return e&&e.__esModule?e:{"default":e}}var p=function(e,t){return e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e,(0,s["default"])("number"!=typeof e?e:(0,l["default"])(e,f.basePlacements))};var h={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,i=e.name,s=e.options,l=n.elements.arrow,d=n.modifiersData.popperOffsets,h=(0,r["default"])(n.placement),v=(0,u["default"])(h),m=[f.left,f.right].indexOf(h)>=0?"height":"width";if(l&&d){var g=p(s.padding,n),y=(0,o["default"])(l),b="y"===v?f.top:f.left,_="y"===v?f.bottom:f.right,w=n.rects.reference[m]+n.rects.reference[v]-d[v]-n.rects.popper[m],x=d[v]-n.rects.reference[v],E=(0,a["default"])(l),S=E?"y"===v?E.clientHeight||0:E.clientWidth||0:0,C=w/2-x/2,N=g[b],O=S-y[m]-g[_],k=S/2-y[m]/2+C,M=(0,c["default"])(N,k,O),A=v;n.modifiersData[i]=((t={})[A]=M,t.centerOffset=M-k,t)}},effect:function(e){var t=e.state,n=e.options.element,r=void 0===n?"[data-popper-arrow]":n;null!=r&&("string"!=typeof r||(r=t.elements.popper.querySelector(r)))&&(0,i["default"])(t.elements.popper,r)&&(t.elements.arrow=r)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};t["default"]=h},42569:function(e,t,n){"use strict";t.__esModule=!0,t.mapToStyles=d,t["default"]=void 0;var r=n(54945),o=l(n(54484)),i=l(n(89778)),a=l(n(36e3)),u=l(n(82020)),c=l(n(78044)),s=n(52209);function l(e){return e&&e.__esModule?e:{"default":e}}var f={top:"auto",right:"auto",bottom:"auto",left:"auto"};function d(e){var t,n=e.popper,c=e.popperRect,l=e.placement,d=e.offsets,p=e.position,h=e.gpuAcceleration,v=e.adaptive,m=e.roundOffsets,g=!0===m?function(e){var t=e.x,n=e.y,r=window.devicePixelRatio||1;return{x:(0,s.round)((0,s.round)(t*r)/r)||0,y:(0,s.round)((0,s.round)(n*r)/r)||0}}(d):"function"==typeof m?m(d):d,y=g.x,b=void 0===y?0:y,_=g.y,w=void 0===_?0:_,x=d.hasOwnProperty("x"),E=d.hasOwnProperty("y"),S=r.left,C=r.top,N=window;if(v){var O=(0,o["default"])(n),k="clientHeight",M="clientWidth";O===(0,i["default"])(n)&&(O=(0,a["default"])(n),"static"!==(0,u["default"])(O).position&&(k="scrollHeight",M="scrollWidth")),O=O,l===r.top&&(C=r.bottom,w-=O[k]-c.height,w*=h?1:-1),l===r.left&&(S=r.right,b-=O[M]-c.width,b*=h?1:-1)}var A,T=Object.assign({position:p},v&&f);return h?Object.assign({},T,((A={})[C]=E?"0":"",A[S]=x?"0":"",A.transform=(N.devicePixelRatio||1)<2?"translate("+b+"px, "+w+"px)":"translate3d("+b+"px, "+w+"px, 0)",A)):Object.assign({},T,((t={})[C]=E?w+"px":"",t[S]=x?b+"px":"",t.transform="",t))}var p={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,r=n.gpuAcceleration,o=void 0===r||r,i=n.adaptive,a=void 0===i||i,u=n.roundOffsets,s=void 0===u||u,l={placement:(0,c["default"])(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:o};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,d(Object.assign({},l,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:a,roundOffsets:s})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,d(Object.assign({},l,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:s})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}};t["default"]=p},84886:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=void 0;var r,o=(r=n(89778))&&r.__esModule?r:{"default":r};var i={passive:!0};var a={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,n=e.instance,r=e.options,a=r.scroll,u=void 0===a||a,c=r.resize,s=void 0===c||c,l=(0,o["default"])(t.elements.popper),f=[].concat(t.scrollParents.reference,t.scrollParents.popper);return u&&f.forEach((function(e){e.addEventListener("scroll",n.update,i)})),s&&l.addEventListener("resize",n.update,i),function(){u&&f.forEach((function(e){e.removeEventListener("scroll",n.update,i)})),s&&l.removeEventListener("resize",n.update,i)}},data:{}};t["default"]=a},75306:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=void 0;var r=l(n(21784)),o=l(n(78044)),i=l(n(10333)),a=l(n(45073)),u=l(n(9118)),c=n(54945),s=l(n(7938));function l(e){return e&&e.__esModule?e:{"default":e}}var f={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,l=e.name;if(!t.modifiersData[l]._skip){for(var f=n.mainAxis,d=void 0===f||f,p=n.altAxis,h=void 0===p||p,v=n.fallbackPlacements,m=n.padding,g=n.boundary,y=n.rootBoundary,b=n.altBoundary,_=n.flipVariations,w=void 0===_||_,x=n.allowedAutoPlacements,E=t.options.placement,S=(0,o["default"])(E),C=v||(S===E||!w?[(0,r["default"])(E)]:function(e){if((0,o["default"])(e)===c.auto)return[];var t=(0,r["default"])(e);return[(0,i["default"])(e),t,(0,i["default"])(t)]}(E)),N=[E].concat(C).reduce((function(e,n){return e.concat((0,o["default"])(n)===c.auto?(0,u["default"])(t,{placement:n,boundary:g,rootBoundary:y,padding:m,flipVariations:w,allowedAutoPlacements:x}):n)}),[]),O=t.rects.reference,k=t.rects.popper,M=new Map,A=!0,T=N[0],I=0;I=0,j=B?"width":"height",R=(0,a["default"])(t,{placement:P,boundary:g,rootBoundary:y,altBoundary:b,padding:m}),D=B?L?c.right:c.left:L?c.bottom:c.top;O[j]>k[j]&&(D=(0,r["default"])(D));var F=(0,r["default"])(D),K=[];if(d&&K.push(R[V]<=0),h&&K.push(R[D]<=0,R[F]<=0),K.every((function(e){return e}))){T=P,A=!1;break}M.set(P,K)}if(A)for(var z=function(e){var t=N.find((function(t){var n=M.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return T=t,"break"},Y=w?3:1;Y>0;Y--){if("break"===z(Y))break}t.placement!==T&&(t.modifiersData[l]._skip=!0,t.placement=T,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};t["default"]=f},91263:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=void 0;var r,o=n(54945),i=(r=n(45073))&&r.__esModule?r:{"default":r};function a(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function u(e){return[o.top,o.right,o.bottom,o.left].some((function(t){return e[t]>=0}))}var c={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,r=t.rects.reference,o=t.rects.popper,c=t.modifiersData.preventOverflow,s=(0,i["default"])(t,{elementContext:"reference"}),l=(0,i["default"])(t,{altBoundary:!0}),f=a(s,r),d=a(l,o,c),p=u(f),h=u(d);t.modifiersData[n]={referenceClippingOffsets:f,popperEscapeOffsets:d,isReferenceHidden:p,hasPopperEscaped:h},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":p,"data-popper-escaped":h})}};t["default"]=c},15461:function(e,t,n){"use strict";t.__esModule=!0,t.preventOverflow=t.popperOffsets=t.offset=t.hide=t.flip=t.eventListeners=t.computeStyles=t.arrow=t.applyStyles=void 0;var r=d(n(1803));t.applyStyles=r["default"];var o=d(n(35838));t.arrow=o["default"];var i=d(n(42569));t.computeStyles=i["default"];var a=d(n(84886));t.eventListeners=a["default"];var u=d(n(75306));t.flip=u["default"];var c=d(n(91263));t.hide=c["default"];var s=d(n(36777));t.offset=s["default"];var l=d(n(19860));t.popperOffsets=l["default"];var f=d(n(90992));function d(e){return e&&e.__esModule?e:{"default":e}}t.preventOverflow=f["default"]},36777:function(e,t,n){"use strict";t.__esModule=!0,t.distanceAndSkiddingToXY=a,t["default"]=void 0;var r,o=(r=n(78044))&&r.__esModule?r:{"default":r},i=n(54945);function a(e,t,n){var r=(0,o["default"])(e),a=[i.left,i.top].indexOf(r)>=0?-1:1,u="function"==typeof n?n(Object.assign({},t,{placement:e})):n,c=u[0],s=u[1];return c=c||0,s=(s||0)*a,[i.left,i.right].indexOf(r)>=0?{x:s,y:c}:{x:c,y:s}}var u={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.offset,u=void 0===o?[0,0]:o,c=i.placements.reduce((function(e,n){return e[n]=a(n,t.rects,u),e}),{}),s=c[t.placement],l=s.x,f=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=f),t.modifiersData[r]=c}};t["default"]=u},19860:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=void 0;var r,o=(r=n(89731))&&r.__esModule?r:{"default":r};var i={name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=(0,o["default"])({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}};t["default"]=i},90992:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=void 0;var r=n(54945),o=h(n(78044)),i=h(n(99840)),a=h(n(80776)),u=h(n(51520)),c=h(n(52089)),s=h(n(54484)),l=h(n(45073)),f=h(n(7938)),d=h(n(9775)),p=n(52209);function h(e){return e&&e.__esModule?e:{"default":e}}var v={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,h=e.name,v=n.mainAxis,m=void 0===v||v,g=n.altAxis,y=void 0!==g&&g,b=n.boundary,_=n.rootBoundary,w=n.altBoundary,x=n.padding,E=n.tether,S=void 0===E||E,C=n.tetherOffset,N=void 0===C?0:C,O=(0,l["default"])(t,{boundary:b,rootBoundary:_,padding:x,altBoundary:w}),k=(0,o["default"])(t.placement),M=(0,f["default"])(t.placement),A=!M,T=(0,i["default"])(k),I=(0,a["default"])(T),P=t.modifiersData.popperOffsets,V=t.rects.reference,L=t.rects.popper,B="function"==typeof N?N(Object.assign({},t.rects,{placement:t.placement})):N,j={x:0,y:0};if(P){if(m||y){var R="y"===T?r.top:r.left,D="y"===T?r.bottom:r.right,F="y"===T?"height":"width",K=P[T],z=P[T]+O[R],Y=P[T]-O[D],U=S?-L[F]/2:0,H=M===r.start?V[F]:L[F],W=M===r.start?-L[F]:-V[F],$=t.elements.arrow,G=S&&$?(0,c["default"])($):{width:0,height:0},q=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:(0,d["default"])(),X=q[R],Q=q[D],Z=(0,u["default"])(0,V[F],G[F]),J=A?V[F]/2-U-Z-X-B:H-Z-X-B,ee=A?-V[F]/2+U+Z+Q+B:W+Z+Q+B,te=t.elements.arrow&&(0,s["default"])(t.elements.arrow),ne=te?"y"===T?te.clientTop||0:te.clientLeft||0:0,re=t.modifiersData.offset?t.modifiersData.offset[t.placement][T]:0,oe=P[T]+J-re-ne,ie=P[T]+ee-re;if(m){var ae=(0,u["default"])(S?(0,p.min)(z,oe):z,K,S?(0,p.max)(Y,ie):Y);P[T]=ae,j[T]=ae-K}if(y){var ue="x"===T?r.top:r.left,ce="x"===T?r.bottom:r.right,se=P[I],le=se+O[ue],fe=se-O[ce],de=(0,u["default"])(S?(0,p.min)(le,oe):le,se,S?(0,p.max)(fe,ie):fe);P[I]=de,j[I]=de-se}}t.modifiersData[h]=j}},requiresIfExists:["offset"]};t["default"]=v},15327:function(e,t,n){"use strict";t.__esModule=!0,t.defaultModifiers=t.createPopper=void 0;var r=n(33407);t.popperGenerator=r.popperGenerator,t.detectOverflow=r.detectOverflow;var o=c(n(84886)),i=c(n(19860)),a=c(n(42569)),u=c(n(1803));function c(e){return e&&e.__esModule?e:{"default":e}}var s=[o["default"],i["default"],a["default"],u["default"]];t.defaultModifiers=s;var l=(0,r.popperGenerator)({defaultModifiers:s});t.createPopper=l},15172:function(e,t,n){"use strict";t.__esModule=!0;var r={createPopper:!0,createPopperLite:!0,defaultModifiers:!0,popperGenerator:!0,detectOverflow:!0};t.defaultModifiers=t.createPopperLite=t.createPopper=void 0;var o=n(33407);t.popperGenerator=o.popperGenerator,t.detectOverflow=o.detectOverflow;var i=m(n(84886)),a=m(n(19860)),u=m(n(42569)),c=m(n(1803)),s=m(n(36777)),l=m(n(75306)),f=m(n(90992)),d=m(n(35838)),p=m(n(91263)),h=n(15327);t.createPopperLite=h.createPopper;var v=n(15461);function m(e){return e&&e.__esModule?e:{"default":e}}Object.keys(v).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(r,e)||e in t&&t[e]===v[e]||(t[e]=v[e]))}));var g=[i["default"],a["default"],u["default"],c["default"],s["default"],l["default"],f["default"],d["default"],p["default"]];t.defaultModifiers=g;var y=(0,o.popperGenerator)({defaultModifiers:g});t.createPopperLite=t.createPopper=y},9118:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e,t){void 0===t&&(t={});var n=t,u=n.placement,c=n.boundary,s=n.rootBoundary,l=n.padding,f=n.flipVariations,d=n.allowedAutoPlacements,p=void 0===d?o.placements:d,h=(0,r["default"])(u),v=h?f?o.variationPlacements:o.variationPlacements.filter((function(e){return(0,r["default"])(e)===h})):o.basePlacements,m=v.filter((function(e){return p.indexOf(e)>=0}));0===m.length&&(m=v);var g=m.reduce((function(t,n){return t[n]=(0,i["default"])(e,{placement:n,boundary:c,rootBoundary:s,padding:l})[(0,a["default"])(n)],t}),{});return Object.keys(g).sort((function(e,t){return g[e]-g[t]}))};var r=u(n(7938)),o=n(54945),i=u(n(45073)),a=u(n(78044));function u(e){return e&&e.__esModule?e:{"default":e}}},89731:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){var t,n=e.reference,u=e.element,c=e.placement,s=c?(0,r["default"])(c):null,l=c?(0,o["default"])(c):null,f=n.x+n.width/2-u.width/2,d=n.y+n.height/2-u.height/2;switch(s){case a.top:t={x:f,y:n.y-u.height};break;case a.bottom:t={x:f,y:n.y+n.height};break;case a.right:t={x:n.x+n.width,y:d};break;case a.left:t={x:n.x-u.width,y:d};break;default:t={x:n.x,y:n.y}}var p=s?(0,i["default"])(s):null;if(null!=p){var h="y"===p?"height":"width";switch(l){case a.start:t[p]=t[p]-(n[h]/2-u[h]/2);break;case a.end:t[p]=t[p]+(n[h]/2-u[h]/2)}}return t};var r=u(n(78044)),o=u(n(7938)),i=u(n(99840)),a=n(54945);function u(e){return e&&e.__esModule?e:{"default":e}}},16936:function(e,t){"use strict";t.__esModule=!0,t["default"]=function(e){var t;return function(){return t||(t=new Promise((function(n){Promise.resolve().then((function(){t=undefined,n(e())}))}))),t}}},45073:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e,t){void 0===t&&(t={});var n=t,d=n.placement,p=void 0===d?e.placement:d,h=n.boundary,v=void 0===h?c.clippingParents:h,m=n.rootBoundary,g=void 0===m?c.viewport:m,y=n.elementContext,b=void 0===y?c.popper:y,_=n.altBoundary,w=void 0!==_&&_,x=n.padding,E=void 0===x?0:x,S=(0,l["default"])("number"!=typeof E?E:(0,f["default"])(E,c.basePlacements)),C=b===c.popper?c.reference:c.popper,N=e.elements.reference,O=e.rects.popper,k=e.elements[w?C:b],M=(0,o["default"])((0,s.isElement)(k)?k:k.contextElement||(0,i["default"])(e.elements.popper),v,g),A=(0,r["default"])(N),T=(0,a["default"])({reference:A,element:O,strategy:"absolute",placement:p}),I=(0,u["default"])(Object.assign({},O,T)),P=b===c.popper?I:A,V={top:M.top-P.top+S.top,bottom:P.bottom-M.bottom+S.bottom,left:M.left-P.left+S.left,right:P.right-M.right+S.right},L=e.modifiersData.offset;if(b===c.popper&&L){var B=L[p];Object.keys(V).forEach((function(e){var t=[c.right,c.bottom].indexOf(e)>=0?1:-1,n=[c.top,c.bottom].indexOf(e)>=0?"y":"x";V[e]+=B[n]*t}))}return V};var r=d(n(87916)),o=d(n(70846)),i=d(n(36e3)),a=d(n(89731)),u=d(n(77276)),c=n(54945),s=n(31966),l=d(n(72882)),f=d(n(8415));function d(e){return e&&e.__esModule?e:{"default":e}}},8415:function(e,t){"use strict";t.__esModule=!0,t["default"]=function(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}},50121:function(e,t){"use strict";t.__esModule=!0,t["default"]=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r=0?"x":"y"}},21784:function(e,t){"use strict";t.__esModule=!0,t["default"]=function(e){return e.replace(/left|right|bottom|top/g,(function(e){return n[e]}))};var n={left:"right",right:"left",bottom:"top",top:"bottom"}},10333:function(e,t){"use strict";t.__esModule=!0,t["default"]=function(e){return e.replace(/start|end/g,(function(e){return n[e]}))};var n={start:"end",end:"start"}},7938:function(e,t){"use strict";t.__esModule=!0,t["default"]=function(e){return e.split("-")[1]}},52209:function(e,t){"use strict";t.__esModule=!0,t.round=t.min=t.max=void 0;var n=Math.max;t.max=n;var r=Math.min;t.min=r;var o=Math.round;t.round=o},5495:function(e,t){"use strict";t.__esModule=!0,t["default"]=function(e){var t=e.reduce((function(e,t){var n=e[t.name];return e[t.name]=n?Object.assign({},n,t,{options:Object.assign({},n.options,t.options),data:Object.assign({},n.data,t.data)}):t,e}),{});return Object.keys(t).map((function(e){return t[e]}))}},72882:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){return Object.assign({},(0,o["default"])(),e)};var r,o=(r=n(9775))&&r.__esModule?r:{"default":r}},7183:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){var t=function(e){var t=new Map,n=new Set,r=[];function o(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var r=t.get(e);r&&o(r)}})),r.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||o(e)})),r}(e);return r.modifierPhases.reduce((function(e,n){return e.concat(t.filter((function(e){return e.phase===n})))}),[])};var r=n(54945)},77276:function(e,t){"use strict";t.__esModule=!0,t["default"]=function(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}},20675:function(e,t){"use strict";t.__esModule=!0,t["default"]=function(e,t){var n=new Set;return e.filter((function(e){var r=t(e);if(!n.has(r))return n.add(r),!0}))}},11026:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){e.forEach((function(t){Object.keys(t).forEach((function(n){switch(n){case"name":t.name;break;case"enabled":t.enabled;case"phase":o.modifierPhases.indexOf(t.phase);break;case"fn":t.fn;break;case"effect":t.effect;break;case"requires":Array.isArray(t.requires);break;case"requiresIfExists":Array.isArray(t.requiresIfExists)}t.requires&&t.requires.forEach((function(t){e.find((function(e){return e.name===t}))}))}))}))};(r=n(50121))&&r.__esModule;var r,o=n(54945)},51520:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e,t,n){return(0,r.max)(e,(0,r.min)(t,n))};var r=n(52209)},13686:function(e){"use strict";e.exports=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e}},85369:function(e,t,n){"use strict";var r=n(88711);e.exports=function(e){if(!r(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e}},14281:function(e,t,n){"use strict";var r=n(53414),o=n(96093),i=n(96452),a=r("unscopables"),u=Array.prototype;u[a]==undefined&&i.f(u,a,{configurable:!0,value:o(null)}),e.exports=function(e){u[a][e]=!0}},47103:function(e,t,n){"use strict";var r=n(34444).charAt;e.exports=function(e,t,n){return t+(n?r(e,t).length:1)}},2273:function(e){"use strict";e.exports=function(e,t,n){if(!(e instanceof t))throw TypeError("Incorrect "+(n?n+" ":"")+"invocation");return e}},14860:function(e,t,n){"use strict";var r=n(88711);e.exports=function(e){if(!r(e))throw TypeError(String(e)+" is not an object");return e}},17811:function(e){"use strict";e.exports="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView},73203:function(e,t,n){"use strict";var r,o=n(17811),i=n(67738),a=n(179),u=n(88711),c=n(18632),s=n(54781),l=n(21413),f=n(77219),d=n(96452).f,p=n(92608),h=n(77715),v=n(53414),m=n(88340),g=a.Int8Array,y=g&&g.prototype,b=a.Uint8ClampedArray,_=b&&b.prototype,w=g&&p(g),x=y&&p(y),E=Object.prototype,S=E.isPrototypeOf,C=v("toStringTag"),N=m("TYPED_ARRAY_TAG"),O=o&&!!h&&"Opera"!==s(a.opera),k=!1,M={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},A={BigInt64Array:8,BigUint64Array:8},T=function(e){if(!u(e))return!1;var t=s(e);return"DataView"===t||c(M,t)||c(A,t)},I=function(e){if(!u(e))return!1;var t=s(e);return c(M,t)||c(A,t)};for(r in M)a[r]||(O=!1);if((!O||"function"!=typeof w||w===Function.prototype)&&(w=function(){throw TypeError("Incorrect invocation")},O))for(r in M)a[r]&&h(a[r],w);if((!O||!x||x===E)&&(x=w.prototype,O))for(r in M)a[r]&&h(a[r].prototype,x);if(O&&p(_)!==x&&h(_,x),i&&!c(x,C))for(r in k=!0,d(x,C,{get:function(){return u(this)?this[N]:undefined}}),M)a[r]&&l(a[r],N,r);e.exports={NATIVE_ARRAY_BUFFER_VIEWS:O,TYPED_ARRAY_TAG:k&&N,aTypedArray:function(e){if(I(e))return e;throw TypeError("Target is not a typed array")},aTypedArrayConstructor:function(e){if(h){if(S.call(w,e))return e}else for(var t in M)if(c(M,r)){var n=a[t];if(n&&(e===n||S.call(n,e)))return e}throw TypeError("Target is not a typed array constructor")},exportTypedArrayMethod:function(e,t,n){if(i){if(n)for(var r in M){var o=a[r];o&&c(o.prototype,e)&&delete o.prototype[e]}x[e]&&!n||f(x,e,n?t:O&&y[e]||t)}},exportTypedArrayStaticMethod:function(e,t,n){var r,o;if(i){if(h){if(n)for(r in M)(o=a[r])&&c(o,e)&&delete o[e];if(w[e]&&!n)return;try{return f(w,e,n?t:O&&g[e]||t)}catch(u){}}for(r in M)!(o=a[r])||o[e]&&!n||f(o,e,t)}},isView:T,isTypedArray:I,TypedArray:w,TypedArrayPrototype:x}},93071:function(e,t,n){"use strict";var r=n(179),o=n(67738),i=n(17811),a=n(21413),u=n(5289),c=n(84921),s=n(2273),l=n(44028),f=n(27842),d=n(66659),p=n(63408),h=n(92608),v=n(77715),m=n(75604).f,g=n(96452).f,y=n(24115),b=n(81978),_=n(28076),w=_.get,x=_.set,E="ArrayBuffer",S="DataView",C="Wrong index",N=r.ArrayBuffer,O=N,k=r.DataView,M=k&&k.prototype,A=Object.prototype,T=r.RangeError,I=p.pack,P=p.unpack,V=function(e){return[255&e]},L=function(e){return[255&e,e>>8&255]},B=function(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]},j=function(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]},R=function(e){return I(e,23,4)},D=function(e){return I(e,52,8)},F=function(e,t){g(e.prototype,t,{get:function(){return w(this)[t]}})},K=function(e,t,n,r){var o=d(n),i=w(e);if(o+t>i.byteLength)throw T(C);var a=w(i.buffer).bytes,u=o+i.byteOffset,c=a.slice(u,u+t);return r?c:c.reverse()},z=function(e,t,n,r,o,i){var a=d(n),u=w(e);if(a+t>u.byteLength)throw T(C);for(var c=w(u.buffer).bytes,s=a+u.byteOffset,l=r(+o),f=0;fW;)(Y=H[W++])in O||a(O,Y,N[Y]);U.constructor=O}v&&h(M)!==A&&v(M,A);var $=new k(new O(2)),G=M.setInt8;$.setInt8(0,2147483648),$.setInt8(1,2147483649),!$.getInt8(0)&&$.getInt8(1)||u(M,{setInt8:function(e,t){G.call(this,e,t<<24>>24)},setUint8:function(e,t){G.call(this,e,t<<24>>24)}},{unsafe:!0})}else O=function(e){s(this,O,E);var t=d(e);x(this,{bytes:y.call(new Array(t),0),byteLength:t}),o||(this.byteLength=t)},k=function(e,t,n){s(this,k,S),s(e,O,S);var r=w(e).byteLength,i=l(t);if(i<0||i>r)throw T("Wrong offset");if(i+(n=n===undefined?r-i:f(n))>r)throw T("Wrong length");x(this,{buffer:e,byteLength:n,byteOffset:i}),o||(this.buffer=e,this.byteLength=n,this.byteOffset=i)},o&&(F(O,"byteLength"),F(k,"buffer"),F(k,"byteLength"),F(k,"byteOffset")),u(k.prototype,{getInt8:function(e){return K(this,1,e)[0]<<24>>24},getUint8:function(e){return K(this,1,e)[0]},getInt16:function(e){var t=K(this,2,e,arguments.length>1?arguments[1]:undefined);return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=K(this,2,e,arguments.length>1?arguments[1]:undefined);return t[1]<<8|t[0]},getInt32:function(e){return j(K(this,4,e,arguments.length>1?arguments[1]:undefined))},getUint32:function(e){return j(K(this,4,e,arguments.length>1?arguments[1]:undefined))>>>0},getFloat32:function(e){return P(K(this,4,e,arguments.length>1?arguments[1]:undefined),23)},getFloat64:function(e){return P(K(this,8,e,arguments.length>1?arguments[1]:undefined),52)},setInt8:function(e,t){z(this,1,e,V,t)},setUint8:function(e,t){z(this,1,e,V,t)},setInt16:function(e,t){z(this,2,e,L,t,arguments.length>2?arguments[2]:undefined)},setUint16:function(e,t){z(this,2,e,L,t,arguments.length>2?arguments[2]:undefined)},setInt32:function(e,t){z(this,4,e,B,t,arguments.length>2?arguments[2]:undefined)},setUint32:function(e,t){z(this,4,e,B,t,arguments.length>2?arguments[2]:undefined)},setFloat32:function(e,t){z(this,4,e,R,t,arguments.length>2?arguments[2]:undefined)},setFloat64:function(e,t){z(this,8,e,D,t,arguments.length>2?arguments[2]:undefined)}});b(O,E),b(k,S),e.exports={ArrayBuffer:O,DataView:k}},92475:function(e,t,n){"use strict";var r=n(6289),o=n(13292),i=n(27842),a=Math.min;e.exports=[].copyWithin||function(e,t){var n=r(this),u=i(n.length),c=o(e,u),s=o(t,u),l=arguments.length>2?arguments[2]:undefined,f=a((l===undefined?u:o(l,u))-s,u-c),d=1;for(s0;)s in n?n[c]=n[s]:delete n[c],c+=d,s+=d;return n}},24115:function(e,t,n){"use strict";var r=n(6289),o=n(13292),i=n(27842);e.exports=function(e){for(var t=r(this),n=i(t.length),a=arguments.length,u=o(a>1?arguments[1]:undefined,n),c=a>2?arguments[2]:undefined,s=c===undefined?n:o(c,n);s>u;)t[u++]=e;return t}},70091:function(e,t,n){"use strict";var r=n(77118).forEach,o=n(45944)("forEach");e.exports=o?[].forEach:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}},75372:function(e,t,n){"use strict";var r=n(57386),o=n(6289),i=n(36288),a=n(76774),u=n(27842),c=n(79651),s=n(29863);e.exports=function(e){var t,n,l,f,d,p,h=o(e),v="function"==typeof this?this:Array,m=arguments.length,g=m>1?arguments[1]:undefined,y=g!==undefined,b=s(h),_=0;if(y&&(g=r(g,m>2?arguments[2]:undefined,2)),b==undefined||v==Array&&a(b))for(n=new v(t=u(h.length));t>_;_++)p=y?g(h[_],_):h[_],c(n,_,p);else for(d=(f=b.call(h)).next,n=new v;!(l=d.call(f)).done;_++)p=y?i(f,g,[l.value,_],!0):l.value,c(n,_,p);return n.length=_,n}},53454:function(e,t,n){"use strict";var r=n(94789),o=n(27842),i=n(13292),a=function(e){return function(t,n,a){var u,c=r(t),s=o(c.length),l=i(a,s);if(e&&n!=n){for(;s>l;)if((u=c[l++])!=u)return!0}else for(;s>l;l++)if((e||l in c)&&c[l]===n)return e||l||0;return!e&&-1}};e.exports={includes:a(!0),indexOf:a(!1)}},77118:function(e,t,n){"use strict";var r=n(57386),o=n(46317),i=n(6289),a=n(27842),u=n(12384),c=[].push,s=function(e){var t=1==e,n=2==e,s=3==e,l=4==e,f=6==e,d=7==e,p=5==e||f;return function(h,v,m,g){for(var y,b,_=i(h),w=o(_),x=r(v,m,3),E=a(w.length),S=0,C=g||u,N=t?C(h,E):n||d?C(h,0):undefined;E>S;S++)if((p||S in w)&&(b=x(y=w[S],S,_),e))if(t)N[S]=b;else if(b)switch(e){case 3:return!0;case 5:return y;case 6:return S;case 2:c.call(N,y)}else switch(e){case 4:return!1;case 7:c.call(N,y)}return f?-1:s||l?l:N}};e.exports={forEach:s(0),map:s(1),filter:s(2),some:s(3),every:s(4),find:s(5),findIndex:s(6),filterOut:s(7)}},9819:function(e,t,n){"use strict";var r=n(94789),o=n(44028),i=n(27842),a=n(45944),u=Math.min,c=[].lastIndexOf,s=!!c&&1/[1].lastIndexOf(1,-0)<0,l=a("lastIndexOf"),f=s||!l;e.exports=f?function(e){if(s)return c.apply(this,arguments)||0;var t=r(this),n=i(t.length),a=n-1;for(arguments.length>1&&(a=u(a,o(arguments[1]))),a<0&&(a=n+a);a>=0;a--)if(a in t&&t[a]===e)return a||0;return-1}:c},16684:function(e,t,n){"use strict";var r=n(84921),o=n(53414),i=n(32728),a=o("species");e.exports=function(e){return i>=51||!r((function(){var t=[];return(t.constructor={})[a]=function(){return{foo:1}},1!==t[e](Boolean).foo}))}},45944:function(e,t,n){"use strict";var r=n(84921);e.exports=function(e,t){var n=[][e];return!!n&&r((function(){n.call(null,t||function(){throw 1},1)}))}},59878:function(e,t,n){"use strict";var r=n(13686),o=n(6289),i=n(46317),a=n(27842),u=function(e){return function(t,n,u,c){r(n);var s=o(t),l=i(s),f=a(s.length),d=e?f-1:0,p=e?-1:1;if(u<2)for(;;){if(d in l){c=l[d],d+=p;break}if(d+=p,e?d<0:f<=d)throw TypeError("Reduce of empty array with no initial value")}for(;e?d>=0:f>d;d+=p)d in l&&(c=n(c,l[d],d,s));return c}};e.exports={left:u(!1),right:u(!0)}},12384:function(e,t,n){"use strict";var r=n(88711),o=n(1897),i=n(53414)("species");e.exports=function(e,t){var n;return o(e)&&("function"!=typeof(n=e.constructor)||n!==Array&&!o(n.prototype)?r(n)&&null===(n=n[i])&&(n=undefined):n=undefined),new(n===undefined?Array:n)(0===t?0:t)}},36288:function(e,t,n){"use strict";var r=n(14860),o=n(16284);e.exports=function(e,t,n,i){try{return i?t(r(n)[0],n[1]):t(n)}catch(a){throw o(e),a}}},33652:function(e,t,n){"use strict";var r=n(53414)("iterator"),o=!1;try{var i=0,a={next:function(){return{done:!!i++}},"return":function(){o=!0}};a[r]=function(){return this},Array.from(a,(function(){throw 2}))}catch(u){}e.exports=function(e,t){if(!t&&!o)return!1;var n=!1;try{var i={};i[r]=function(){return{next:function(){return{done:n=!0}}}},e(i)}catch(u){}return n}},90726:function(e){"use strict";var t={}.toString;e.exports=function(e){return t.call(e).slice(8,-1)}},54781:function(e,t,n){"use strict";var r=n(97099),o=n(90726),i=n(53414)("toStringTag"),a="Arguments"==o(function(){return arguments}());e.exports=r?o:function(e){var t,n,r;return e===undefined?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(n){}}(t=Object(e),i))?n:a?o(t):"Object"==(r=o(t))&&"function"==typeof t.callee?"Arguments":r}},4721:function(e,t,n){"use strict";var r=n(96452).f,o=n(96093),i=n(5289),a=n(57386),u=n(2273),c=n(8362),s=n(54981),l=n(40548),f=n(67738),d=n(21419).fastKey,p=n(28076),h=p.set,v=p.getterFor;e.exports={getConstructor:function(e,t,n,s){var l=e((function(e,r){u(e,l,t),h(e,{type:t,index:o(null),first:undefined,last:undefined,size:0}),f||(e.size=0),r!=undefined&&c(r,e[s],{that:e,AS_ENTRIES:n})})),p=v(t),m=function(e,t,n){var r,o,i=p(e),a=g(e,t);return a?a.value=n:(i.last=a={index:o=d(t,!0),key:t,value:n,previous:r=i.last,next:undefined,removed:!1},i.first||(i.first=a),r&&(r.next=a),f?i.size++:e.size++,"F"!==o&&(i.index[o]=a)),e},g=function(e,t){var n,r=p(e),o=d(t);if("F"!==o)return r.index[o];for(n=r.first;n;n=n.next)if(n.key==t)return n};return i(l.prototype,{clear:function(){for(var e=p(this),t=e.index,n=e.first;n;)n.removed=!0,n.previous&&(n.previous=n.previous.next=undefined),delete t[n.index],n=n.next;e.first=e.last=undefined,f?e.size=0:this.size=0},"delete":function(e){var t=this,n=p(t),r=g(t,e);if(r){var o=r.next,i=r.previous;delete n.index[r.index],r.removed=!0,i&&(i.next=o),o&&(o.previous=i),n.first==r&&(n.first=o),n.last==r&&(n.last=i),f?n.size--:t.size--}return!!r},forEach:function(e){for(var t,n=p(this),r=a(e,arguments.length>1?arguments[1]:undefined,3);t=t?t.next:n.first;)for(r(t.value,t.key,this);t&&t.removed;)t=t.previous},has:function(e){return!!g(this,e)}}),i(l.prototype,n?{get:function(e){var t=g(this,e);return t&&t.value},set:function(e,t){return m(this,0===e?0:e,t)}}:{add:function(e){return m(this,e=0===e?0:e,e)}}),f&&r(l.prototype,"size",{get:function(){return p(this).size}}),l},setStrong:function(e,t,n){var r=t+" Iterator",o=v(t),i=v(r);s(e,t,(function(e,t){h(this,{type:r,target:e,state:o(e),kind:t,last:undefined})}),(function(){for(var e=i(this),t=e.kind,n=e.last;n&&n.removed;)n=n.previous;return e.target&&(e.last=n=n?n.next:e.state.first)?"keys"==t?{value:n.key,done:!1}:"values"==t?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(e.target=undefined,{value:undefined,done:!0})}),n?"entries":"values",!n,!0),l(t)}}},76568:function(e,t,n){"use strict";var r=n(5289),o=n(21419).getWeakData,i=n(14860),a=n(88711),u=n(2273),c=n(8362),s=n(77118),l=n(18632),f=n(28076),d=f.set,p=f.getterFor,h=s.find,v=s.findIndex,m=0,g=function(e){return e.frozen||(e.frozen=new y)},y=function(){this.entries=[]},b=function(e,t){return h(e.entries,(function(e){return e[0]===t}))};y.prototype={get:function(e){var t=b(this,e);if(t)return t[1]},has:function(e){return!!b(this,e)},set:function(e,t){var n=b(this,e);n?n[1]=t:this.entries.push([e,t])},"delete":function(e){var t=v(this.entries,(function(t){return t[0]===e}));return~t&&this.entries.splice(t,1),!!~t}},e.exports={getConstructor:function(e,t,n,s){var f=e((function(e,r){u(e,f,t),d(e,{type:t,id:m++,frozen:undefined}),r!=undefined&&c(r,e[s],{that:e,AS_ENTRIES:n})})),h=p(t),v=function(e,t,n){var r=h(e),a=o(i(t),!0);return!0===a?g(r).set(t,n):a[r.id]=n,e};return r(f.prototype,{"delete":function(e){var t=h(this);if(!a(e))return!1;var n=o(e);return!0===n?g(t)["delete"](e):n&&l(n,t.id)&&delete n[t.id]},has:function(e){var t=h(this);if(!a(e))return!1;var n=o(e);return!0===n?g(t).has(e):n&&l(n,t.id)}}),r(f.prototype,n?{get:function(e){var t=h(this);if(a(e)){var n=o(e);return!0===n?g(t).get(e):n?n[t.id]:undefined}},set:function(e,t){return v(this,e,t)}}:{add:function(e){return v(this,e,!0)}}),f}}},20991:function(e,t,n){"use strict";var r=n(99592),o=n(179),i=n(61287),a=n(77219),u=n(21419),c=n(8362),s=n(2273),l=n(88711),f=n(84921),d=n(33652),p=n(81978),h=n(69262);e.exports=function(e,t,n){var v=-1!==e.indexOf("Map"),m=-1!==e.indexOf("Weak"),g=v?"set":"add",y=o[e],b=y&&y.prototype,_=y,w={},x=function(e){var t=b[e];a(b,e,"add"==e?function(e){return t.call(this,0===e?0:e),this}:"delete"==e?function(e){return!(m&&!l(e))&&t.call(this,0===e?0:e)}:"get"==e?function(e){return m&&!l(e)?undefined:t.call(this,0===e?0:e)}:"has"==e?function(e){return!(m&&!l(e))&&t.call(this,0===e?0:e)}:function(e,n){return t.call(this,0===e?0:e,n),this})};if(i(e,"function"!=typeof y||!(m||b.forEach&&!f((function(){(new y).entries().next()})))))_=n.getConstructor(t,e,v,g),u.REQUIRED=!0;else if(i(e,!0)){var E=new _,S=E[g](m?{}:-0,1)!=E,C=f((function(){E.has(1)})),N=d((function(e){new y(e)})),O=!m&&f((function(){for(var e=new y,t=5;t--;)e[g](t,t);return!e.has(-0)}));N||((_=t((function(t,n){s(t,_,e);var r=h(new y,t,_);return n!=undefined&&c(n,r[g],{that:r,AS_ENTRIES:v}),r}))).prototype=b,b.constructor=_),(C||O)&&(x("delete"),x("has"),v&&x("get")),(O||S)&&x(g),m&&b.clear&&delete b.clear}return w[e]=_,r({global:!0,forced:_!=y},w),p(_,e),m||n.setStrong(_,e,v),_}},44121:function(e,t,n){"use strict";var r=n(18632),o=n(1051),i=n(8740),a=n(96452);e.exports=function(e,t){for(var n=o(t),u=a.f,c=i.f,s=0;s"+a+""}},97993:function(e,t,n){"use strict";var r=n(9392).IteratorPrototype,o=n(96093),i=n(28804),a=n(81978),u=n(36617),c=function(){return this};e.exports=function(e,t,n){var s=t+" Iterator";return e.prototype=o(r,{next:i(1,n)}),a(e,s,!1,!0),u[s]=c,e}},21413:function(e,t,n){"use strict";var r=n(67738),o=n(96452),i=n(28804);e.exports=r?function(e,t,n){return o.f(e,t,i(1,n))}:function(e,t,n){return e[t]=n,e}},28804:function(e){"use strict";e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},79651:function(e,t,n){"use strict";var r=n(79165),o=n(96452),i=n(28804);e.exports=function(e,t,n){var a=r(t);a in e?o.f(e,a,i(0,n)):e[a]=n}},27051:function(e,t,n){"use strict";var r=n(84921),o=n(61514).start,i=Math.abs,a=Date.prototype,u=a.getTime,c=a.toISOString;e.exports=r((function(){return"0385-07-25T07:06:39.999Z"!=c.call(new Date(-50000000000001))}))||!r((function(){c.call(new Date(NaN))}))?function(){if(!isFinite(u.call(this)))throw RangeError("Invalid time value");var e=this,t=e.getUTCFullYear(),n=e.getUTCMilliseconds(),r=t<0?"-":t>9999?"+":"";return r+o(i(t),r?6:4,0)+"-"+o(e.getUTCMonth()+1,2,0)+"-"+o(e.getUTCDate(),2,0)+"T"+o(e.getUTCHours(),2,0)+":"+o(e.getUTCMinutes(),2,0)+":"+o(e.getUTCSeconds(),2,0)+"."+o(n,3,0)+"Z"}:c},92880:function(e,t,n){"use strict";var r=n(14860),o=n(79165);e.exports=function(e){if("string"!==e&&"number"!==e&&"default"!==e)throw TypeError("Incorrect hint");return o(r(this),"number"!==e)}},54981:function(e,t,n){"use strict";var r=n(99592),o=n(97993),i=n(92608),a=n(77715),u=n(81978),c=n(21413),s=n(77219),l=n(53414),f=n(51684),d=n(36617),p=n(9392),h=p.IteratorPrototype,v=p.BUGGY_SAFARI_ITERATORS,m=l("iterator"),g="keys",y="values",b="entries",_=function(){return this};e.exports=function(e,t,n,l,p,w,x){o(n,t,l);var E,S,C,N=function(e){if(e===p&&T)return T;if(!v&&e in M)return M[e];switch(e){case g:case y:case b:return function(){return new n(this,e)}}return function(){return new n(this)}},O=t+" Iterator",k=!1,M=e.prototype,A=M[m]||M["@@iterator"]||p&&M[p],T=!v&&A||N(p),I="Array"==t&&M.entries||A;if(I&&(E=i(I.call(new e)),h!==Object.prototype&&E.next&&(f||i(E)===h||(a?a(E,h):"function"!=typeof E[m]&&c(E,m,_)),u(E,O,!0,!0),f&&(d[O]=_))),p==y&&A&&A.name!==y&&(k=!0,T=function(){return A.call(this)}),f&&!x||M[m]===T||c(M,m,T),d[t]=T,p)if(S={values:N(y),keys:w?T:N(g),entries:N(b)},x)for(C in S)(v||k||!(C in M))&&s(M,C,S[C]);else r({target:t,proto:!0,forced:v||k},S);return S}},90209:function(e,t,n){"use strict";var r=n(91996),o=n(18632),i=n(42571),a=n(96452).f;e.exports=function(e){var t=r.Symbol||(r.Symbol={});o(t,e)||a(t,e,{value:i.f(e)})}},67738:function(e,t,n){"use strict";var r=n(84921);e.exports=!r((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},27383:function(e,t,n){"use strict";var r=n(179),o=n(88711),i=r.document,a=o(i)&&o(i.createElement);e.exports=function(e){return a?i.createElement(e):{}}},13745:function(e,t,n){"use strict";var r=n(97285);e.exports=/(?:iphone|ipod|ipad).*applewebkit/i.test(r)},23043:function(e,t,n){"use strict";var r=n(90726),o=n(179);e.exports="process"==r(o.process)},59137:function(e,t,n){"use strict";var r=n(97285);e.exports=/web0s(?!.*chrome)/i.test(r)},97285:function(e,t,n){"use strict";var r=n(44417);e.exports=r("navigator","userAgent")||""},32728:function(e,t,n){"use strict";var r,o,i=n(179),a=n(97285),u=i.process,c=u&&u.versions,s=c&&c.v8;s?o=(r=s.split("."))[0]+r[1]:a&&(!(r=a.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\/(\d+)/))&&(o=r[1]),e.exports=o&&+o},89807:function(e){"use strict";e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},99592:function(e,t,n){"use strict";var r=n(179),o=n(8740).f,i=n(21413),a=n(77219),u=n(53753),c=n(44121),s=n(61287);e.exports=function(e,t){var n,l,f,d,p,h=e.target,v=e.global,m=e.stat;if(n=v?r:m?r[h]||u(h,{}):(r[h]||{}).prototype)for(l in t){if(d=t[l],f=e.noTargetGet?(p=o(n,l))&&p.value:n[l],!s(v?l:h+(m?".":"#")+l,e.forced)&&f!==undefined){if(typeof d==typeof f)continue;c(d,f)}(e.sham||f&&f.sham)&&i(d,"sham",!0),a(n,l,d,e)}}},84921:function(e){"use strict";e.exports=function(e){try{return!!e()}catch(t){return!0}}},27167:function(e,t,n){"use strict";n(30660);var r=n(77219),o=n(84921),i=n(53414),a=n(21413),u=i("species"),c=!o((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$")})),s="$0"==="a".replace(/./,"$0"),l=i("replace"),f=!!/./[l]&&""===/./[l]("a","$0"),d=!o((function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2!==n.length||"a"!==n[0]||"b"!==n[1]}));e.exports=function(e,t,n,l){var p=i(e),h=!o((function(){var t={};return t[p]=function(){return 7},7!=""[e](t)})),v=h&&!o((function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[u]=function(){return n},n.flags="",n[p]=/./[p]),n.exec=function(){return t=!0,null},n[p](""),!t}));if(!h||!v||"replace"===e&&(!c||!s||f)||"split"===e&&!d){var m=/./[p],g=n(p,""[e],(function(e,t,n,r,o){return t.exec===RegExp.prototype.exec?h&&!o?{done:!0,value:m.call(t,n,r)}:{done:!0,value:e.call(n,t,r)}:{done:!1}}),{REPLACE_KEEPS_$0:s,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:f}),y=g[0],b=g[1];r(String.prototype,e,y),r(RegExp.prototype,p,2==t?function(e,t){return b.call(e,this,t)}:function(e){return b.call(e,this)})}l&&a(RegExp.prototype[p],"sham",!0)}},83632:function(e,t,n){"use strict";var r=n(1897),o=n(27842),i=n(57386);e.exports=function a(e,t,n,u,c,s,l,f){for(var d,p=c,h=0,v=!!l&&i(l,f,3);h0&&r(d))p=a(e,t,d,o(d.length),p,s-1)-1;else{if(p>=9007199254740991)throw TypeError("Exceed the acceptable array length");e[p]=d}p++}h++}return p}},41e3:function(e,t,n){"use strict";var r=n(84921);e.exports=!r((function(){return Object.isExtensible(Object.preventExtensions({}))}))},57386:function(e,t,n){"use strict";var r=n(13686);e.exports=function(e,t,n){if(r(e),t===undefined)return e;switch(n){case 0:return function(){return e.call(t)};case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,o){return e.call(t,n,r,o)}}return function(){return e.apply(t,arguments)}}},27314:function(e,t,n){"use strict";var r=n(13686),o=n(88711),i=[].slice,a={},u=function(e,t,n){if(!(t in a)){for(var r=[],o=0;o]*>)/g,u=/\$([$&'`]|\d{1,2})/g;e.exports=function(e,t,n,c,s,l){var f=n+e.length,d=c.length,p=u;return s!==undefined&&(s=r(s),p=a),i.call(l,p,(function(r,i){var a;switch(i.charAt(0)){case"$":return"$";case"&":return e;case"`":return t.slice(0,n);case"'":return t.slice(f);case"<":a=s[i.slice(1,-1)];break;default:var u=+i;if(0===u)return r;if(u>d){var l=o(u/10);return 0===l?r:l<=d?c[l-1]===undefined?i.charAt(1):c[l-1]+i.charAt(1):r}a=c[u-1]}return a===undefined?"":a}))}},179:function(e,t,n){"use strict";var r=function(e){return e&&e.Math==Math&&e};e.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof n.g&&n.g)||function(){return this}()||Function("return this")()},18632:function(e){"use strict";var t={}.hasOwnProperty;e.exports=function(e,n){return t.call(e,n)}},58825:function(e){"use strict";e.exports={}},63380:function(e,t,n){"use strict";var r=n(179);e.exports=function(e,t){var n=r.console;n&&n.error&&(1===arguments.length?n.error(e):n.error(e,t))}},55780:function(e,t,n){"use strict";var r=n(44417);e.exports=r("document","documentElement")},59807:function(e,t,n){"use strict";var r=n(67738),o=n(84921),i=n(27383);e.exports=!r&&!o((function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},63408:function(e){"use strict";var t=Math.abs,n=Math.pow,r=Math.floor,o=Math.log,i=Math.LN2;e.exports={pack:function(e,a,u){var c,s,l,f=new Array(u),d=8*u-a-1,p=(1<>1,v=23===a?n(2,-24)-n(2,-77):0,m=e<0||0===e&&1/e<0?1:0,g=0;for((e=t(e))!=e||e===Infinity?(s=e!=e?1:0,c=p):(c=r(o(e)/i),e*(l=n(2,-c))<1&&(c--,l*=2),(e+=c+h>=1?v/l:v*n(2,1-h))*l>=2&&(c++,l/=2),c+h>=p?(s=0,c=p):c+h>=1?(s=(e*l-1)*n(2,a),c+=h):(s=e*n(2,h-1)*n(2,a),c=0));a>=8;f[g++]=255&s,s/=256,a-=8);for(c=c<0;f[g++]=255&c,c/=256,d-=8);return f[--g]|=128*m,f},unpack:function(e,t){var r,o=e.length,i=8*o-t-1,a=(1<>1,c=i-7,s=o-1,l=e[s--],f=127&l;for(l>>=7;c>0;f=256*f+e[s],s--,c-=8);for(r=f&(1<<-c)-1,f>>=-c,c+=t;c>0;r=256*r+e[s],s--,c-=8);if(0===f)f=1-u;else{if(f===a)return r?NaN:l?-Infinity:Infinity;r+=n(2,t),f-=u}return(l?-1:1)*r*n(2,f-t)}}},46317:function(e,t,n){"use strict";var r=n(84921),o=n(90726),i="".split;e.exports=r((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==o(e)?i.call(e,""):Object(e)}:Object},69262:function(e,t,n){"use strict";var r=n(88711),o=n(77715);e.exports=function(e,t,n){var i,a;return o&&"function"==typeof(i=t.constructor)&&i!==n&&r(a=i.prototype)&&a!==n.prototype&&o(e,a),e}},1306:function(e,t,n){"use strict";var r=n(53252),o=Function.toString;"function"!=typeof r.inspectSource&&(r.inspectSource=function(e){return o.call(e)}),e.exports=r.inspectSource},21419:function(e,t,n){"use strict";var r=n(58825),o=n(88711),i=n(18632),a=n(96452).f,u=n(88340),c=n(41e3),s=u("meta"),l=0,f=Object.isExtensible||function(){return!0},d=function(e){a(e,s,{value:{objectID:"O"+ ++l,weakData:{}}})},p=e.exports={REQUIRED:!1,fastKey:function(e,t){if(!o(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!i(e,s)){if(!f(e))return"F";if(!t)return"E";d(e)}return e[s].objectID},getWeakData:function(e,t){if(!i(e,s)){if(!f(e))return!0;if(!t)return!1;d(e)}return e[s].weakData},onFreeze:function(e){return c&&p.REQUIRED&&f(e)&&!i(e,s)&&d(e),e}};r[s]=!0},28076:function(e,t,n){"use strict";var r,o,i,a=n(2900),u=n(179),c=n(88711),s=n(21413),l=n(18632),f=n(53252),d=n(6839),p=n(58825),h=u.WeakMap;if(a){var v=f.state||(f.state=new h),m=v.get,g=v.has,y=v.set;r=function(e,t){return t.facade=e,y.call(v,e,t),t},o=function(e){return m.call(v,e)||{}},i=function(e){return g.call(v,e)}}else{var b=d("state");p[b]=!0,r=function(e,t){return t.facade=e,s(e,b,t),t},o=function(e){return l(e,b)?e[b]:{}},i=function(e){return l(e,b)}}e.exports={set:r,get:o,has:i,enforce:function(e){return i(e)?o(e):r(e,{})},getterFor:function(e){return function(t){var n;if(!c(t)||(n=o(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}}}},76774:function(e,t,n){"use strict";var r=n(53414),o=n(36617),i=r("iterator"),a=Array.prototype;e.exports=function(e){return e!==undefined&&(o.Array===e||a[i]===e)}},1897:function(e,t,n){"use strict";var r=n(90726);e.exports=Array.isArray||function(e){return"Array"==r(e)}},61287:function(e,t,n){"use strict";var r=n(84921),o=/#|\.prototype\./,i=function(e,t){var n=u[a(e)];return n==s||n!=c&&("function"==typeof t?r(t):!!t)},a=i.normalize=function(e){return String(e).replace(o,".").toLowerCase()},u=i.data={},c=i.NATIVE="N",s=i.POLYFILL="P";e.exports=i},44616:function(e,t,n){"use strict";var r=n(88711),o=Math.floor;e.exports=function(e){return!r(e)&&isFinite(e)&&o(e)===e}},88711:function(e){"use strict";e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},51684:function(e){"use strict";e.exports=!1},45025:function(e,t,n){"use strict";var r=n(88711),o=n(90726),i=n(53414)("match");e.exports=function(e){var t;return r(e)&&((t=e[i])!==undefined?!!t:"RegExp"==o(e))}},8362:function(e,t,n){"use strict";var r=n(14860),o=n(76774),i=n(27842),a=n(57386),u=n(29863),c=n(16284),s=function(e,t){this.stopped=e,this.result=t};e.exports=function(e,t,n){var l,f,d,p,h,v,m,g=n&&n.that,y=!(!n||!n.AS_ENTRIES),b=!(!n||!n.IS_ITERATOR),_=!(!n||!n.INTERRUPTED),w=a(t,g,1+y+_),x=function(e){return l&&c(l),new s(!0,e)},E=function(e){return y?(r(e),_?w(e[0],e[1],x):w(e[0],e[1])):_?w(e,x):w(e)};if(b)l=e;else{if("function"!=typeof(f=u(e)))throw TypeError("Target is not iterable");if(o(f)){for(d=0,p=i(e.length);p>d;d++)if((h=E(e[d]))&&h instanceof s)return h;return new s(!1)}l=f.call(e)}for(v=l.next;!(m=v.call(l)).done;){try{h=E(m.value)}catch(S){throw c(l),S}if("object"==typeof h&&h&&h instanceof s)return h}return new s(!1)}},16284:function(e,t,n){"use strict";var r=n(14860);e.exports=function(e){var t=e["return"];if(t!==undefined)return r(t.call(e)).value}},9392:function(e,t,n){"use strict";var r,o,i,a=n(84921),u=n(92608),c=n(21413),s=n(18632),l=n(53414),f=n(51684),d=l("iterator"),p=!1;[].keys&&("next"in(i=[].keys())?(o=u(u(i)))!==Object.prototype&&(r=o):p=!0);var h=r==undefined||a((function(){var e={};return r[d].call(e)!==e}));h&&(r={}),f&&!h||s(r,d)||c(r,d,(function(){return this})),e.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:p}},36617:function(e){"use strict";e.exports={}},64674:function(e){"use strict";var t=Math.expm1,n=Math.exp;e.exports=!t||t(10)>22025.465794806718||t(10)<22025.465794806718||-2e-17!=t(-2e-17)?function(e){return 0==(e=+e)?e:e>-1e-6&&e<1e-6?e+e*e/2:n(e)-1}:t},90702:function(e,t,n){"use strict";var r=n(53188),o=Math.abs,i=Math.pow,a=i(2,-52),u=i(2,-23),c=i(2,127)*(2-u),s=i(2,-126);e.exports=Math.fround||function(e){var t,n,i=o(e),l=r(e);return ic||n!=n?l*Infinity:l*n}},36535:function(e){"use strict";var t=Math.log;e.exports=Math.log1p||function(e){return(e=+e)>-1e-8&&e<1e-8?e-e*e/2:t(1+e)}},53188:function(e){"use strict";e.exports=Math.sign||function(e){return 0==(e=+e)||e!=e?e:e<0?-1:1}},63785:function(e,t,n){"use strict";var r,o,i,a,u,c,s,l,f=n(179),d=n(8740).f,p=n(3350).set,h=n(13745),v=n(59137),m=n(23043),g=f.MutationObserver||f.WebKitMutationObserver,y=f.document,b=f.process,_=f.Promise,w=d(f,"queueMicrotask"),x=w&&w.value;x||(r=function(){var e,t;for(m&&(e=b.domain)&&e.exit();o;){t=o.fn,o=o.next;try{t()}catch(n){throw o?a():i=undefined,n}}i=undefined,e&&e.enter()},h||m||v||!g||!y?_&&_.resolve?(s=_.resolve(undefined),l=s.then,a=function(){l.call(s,r)}):a=m?function(){b.nextTick(r)}:function(){p.call(f,r)}:(u=!0,c=y.createTextNode(""),new g(r).observe(c,{characterData:!0}),a=function(){c.data=u=!u})),e.exports=x||function(e){var t={fn:e,next:undefined};i&&(i.next=t),o||(o=t,a()),i=t}},23287:function(e,t,n){"use strict";var r=n(179);e.exports=r.Promise},72974:function(e,t,n){"use strict";var r=n(23043),o=n(32728),i=n(84921);e.exports=!!Object.getOwnPropertySymbols&&!i((function(){return!Symbol.sham&&(r?38===o:o>37&&o<41)}))},2900:function(e,t,n){"use strict";var r=n(179),o=n(1306),i=r.WeakMap;e.exports="function"==typeof i&&/native code/.test(o(i))},15115:function(e,t,n){"use strict";var r=n(13686),o=function(e){var t,n;this.promise=new e((function(e,r){if(t!==undefined||n!==undefined)throw TypeError("Bad Promise constructor");t=e,n=r})),this.resolve=r(t),this.reject=r(n)};e.exports.f=function(e){return new o(e)}},42386:function(e,t,n){"use strict";var r=n(45025);e.exports=function(e){if(r(e))throw TypeError("The method doesn't accept regular expressions");return e}},87419:function(e,t,n){"use strict";var r=n(179).isFinite;e.exports=Number.isFinite||function(e){return"number"==typeof e&&r(e)}},86710:function(e,t,n){"use strict";var r=n(179),o=n(20017).trim,i=n(65094),a=r.parseFloat,u=1/a(i+"-0")!=-Infinity;e.exports=u?function(e){var t=o(String(e)),n=a(t);return 0===n&&"-"==t.charAt(0)?-0:n}:a},42619:function(e,t,n){"use strict";var r=n(179),o=n(20017).trim,i=n(65094),a=r.parseInt,u=/^[+-]?0[Xx]/,c=8!==a(i+"08")||22!==a(i+"0x16");e.exports=c?function(e,t){var n=o(String(e));return a(n,t>>>0||(u.test(n)?16:10))}:a},18174:function(e,t,n){"use strict";var r=n(67738),o=n(84921),i=n(75224),a=n(32645),u=n(32163),c=n(6289),s=n(46317),l=Object.assign,f=Object.defineProperty;e.exports=!l||o((function(){if(r&&1!==l({b:1},l(f({},"a",{enumerable:!0,get:function(){f(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},t={},n=Symbol(),o="abcdefghijklmnopqrst";return e[n]=7,o.split("").forEach((function(e){t[e]=e})),7!=l({},e)[n]||i(l({},t)).join("")!=o}))?function(e,t){for(var n=c(e),o=arguments.length,l=1,f=a.f,d=u.f;o>l;)for(var p,h=s(arguments[l++]),v=f?i(h).concat(f(h)):i(h),m=v.length,g=0;m>g;)p=v[g++],r&&!d.call(h,p)||(n[p]=h[p]);return n}:l},96093:function(e,t,n){"use strict";var r,o=n(14860),i=n(79227),a=n(89807),u=n(58825),c=n(55780),s=n(27383),l=n(6839),f=l("IE_PROTO"),d=function(){},p=function(e){return"