From 54a6c5a6feea12ecf8ee288fd79c4c00844ea643 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 27 Feb 2020 23:58:49 -0700 Subject: [PATCH 001/103] Typing indicators --- code/controllers/subsystem/input.dm | 39 ++++++++++++++++ code/modules/keybindings/bindings_living.dm | 1 - code/modules/keybindings/bindings_mob.dm | 11 +++++ .../mob/living/carbon/human/species.dm | 8 ++++ .../living/carbon/human/typing_indicator.dm | 2 + code/modules/mob/living/say.dm | 2 +- code/modules/mob/mob_defines.dm | 10 ++++ code/modules/mob/typing_indicator.dm | 44 ++++++++++++++++++ icons/mob/talk.dmi | Bin 5497 -> 5491 bytes tgstation.dme | 4 +- 10 files changed, 118 insertions(+), 3 deletions(-) create mode 100644 code/modules/mob/living/carbon/human/typing_indicator.dm create mode 100644 code/modules/mob/typing_indicator.dm diff --git a/code/controllers/subsystem/input.dm b/code/controllers/subsystem/input.dm index 0970b23a16..8a8e0ac7c9 100644 --- a/code/controllers/subsystem/input.dm +++ b/code/controllers/subsystem/input.dm @@ -8,6 +8,12 @@ SUBSYSTEM_DEF(input) var/list/macro_sets var/list/movement_keys + /*! Special thing (until we get custom keybinds that also support clientside macros :weary:) that lets us do stuff like look up "which key is say/me bound to". Special format too, the value of a key should be list(key, modifier1, modifier2, ...). "default" unless override. + * USE get_key_for_macro_id or get_typing_indicator_binds TO ACCESS! + */ + var/list/macro_set_reverse_lookups + /// cache these for speed. + var/list/typing_indicator_binds /datum/controller/subsystem/input/Initialize() setup_default_macro_sets() @@ -58,6 +64,32 @@ SUBSYSTEM_DEF(input) ), ) + macro_set_reverse_lookups = list( + "default" = list( + "say" = list("T"), + "whisper" = list("T", "Ctrl"), + "me" = list("M"), + "subtle" = list("M", "Ctrl") + ), + "old_default" = list( + "say" = list("T", "Ctrl"), + ), + "old_hotkeys" = list( + "say" = list("T"), + "me" = list("M"), + ) + ) + + typing_indicator_binds = list() + var/static/list/typing_indicator_verbs = list("me", "say") + for(var/check_verb in typing_indicator_verbs) + for(var/macro_set in macro_set_reverse_lookups) + var/list/keylist = macro_set_reverse_lookups[macro_set][check_verb] + if(!keylist) + continue + var/key = keylist[1] + typing_indicator_binds[key] = TRUE + // Because i'm lazy and don't want to type all these out twice var/list/old_default = default_macro_sets["old_default"] @@ -117,3 +149,10 @@ SUBSYSTEM_DEF(input) for(var/i in 1 to length(clients)) var/client/C = clients[i] C.keyLoop() + +/datum/controller/subsystem/input/proc/get_key_for_macro_id(macro_id, macroset) + return macro_set_reverse_lookups[macroset][macro_id] || macro_set_reverse_lookups["default"][macro_id] + +/// Returns an associative list of keys without modifiers like ctrl. You have to do another lookup, this is for the first check to be faster. +/datum/controller/subsystem/input/proc/get_typing_indicator_binds(macroset) + return typing_indicator_binds[macroset] diff --git a/code/modules/keybindings/bindings_living.dm b/code/modules/keybindings/bindings_living.dm index ec6c5dd539..b338c5e899 100644 --- a/code/modules/keybindings/bindings_living.dm +++ b/code/modules/keybindings/bindings_living.dm @@ -23,5 +23,4 @@ lay_down() return - return ..() \ No newline at end of file diff --git a/code/modules/keybindings/bindings_mob.dm b/code/modules/keybindings/bindings_mob.dm index 964ee65047..6d413b4166 100644 --- a/code/modules/keybindings/bindings_mob.dm +++ b/code/modules/keybindings/bindings_mob.dm @@ -3,6 +3,17 @@ // Or we can have NPC's send actual keypresses and detect that by seeing no client /mob/key_down(_key, client/user) + if(SSinput.typing_indicator_binds[_key]) + var/macroset = winget(user, "mainwindow", "macro") + var/list/L = SSinput.macro_set_reverse_lookups[macroset] + var/valid = TRUE + if(length(L) > 1) + for(var/modifier in 2 to length(L)) + if(!client.keys_held[modifier]) + valid = FALSE + break + if(valid) + display_typing_indicator() switch(_key) if("Delete", "H") if(!pulling) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index b1bc47ea4a..52e14a43e4 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -106,6 +106,9 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/whitelist = list() //List the ckeys that can use this species, if it's whitelisted.: list("John Doe", "poopface666", "SeeALiggerPullTheTrigger") Spaces & capitalization can be included or ignored entirely for each key as it checks for both. var/should_draw_citadel = FALSE + /// Our default override for typing indicator state + var/typing_indicator_state + /////////// // PROCS // /////////// @@ -2218,3 +2221,8 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) /datum/species/proc/start_wagging_tail(mob/living/carbon/human/H) /datum/species/proc/stop_wagging_tail(mob/living/carbon/human/H) + + +/////// TYPING INDICATORS /////// +/datum/species/proc/get_typing_indicator_state() + return typing_indicator_state diff --git a/code/modules/mob/living/carbon/human/typing_indicator.dm b/code/modules/mob/living/carbon/human/typing_indicator.dm new file mode 100644 index 0000000000..6d420c1f7b --- /dev/null +++ b/code/modules/mob/living/carbon/human/typing_indicator.dm @@ -0,0 +1,2 @@ +/mob/living/carbon/human/get_typing_indicator_icon_state() + return dna?.species?.get_typing_indicator_state() || ..() diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 35b49cce8e..f90b285d2d 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -354,7 +354,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list( if(cultslurring) message = cultslur(message) - + if(clockcultslurring) message = CLOCK_CULT_SLUR(message) diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index c45f6eec13..7a3959ed8f 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -128,3 +128,13 @@ var/flavor_text = "" var/flavor_text_2 = "" //version of the above that only lasts for the current round. + + ///////TYPING INDICATORS/////// + /// Set to true if we want to show typing indicators. + var/typing_indicator_enabled = FALSE + /// Default icon_state of our typing indicator. Currently only supports paths (because anything else is, as of time of typing this, unnecesary. + var/typing_indicator_state = /obj/effect/overlay/typing_indicator + /// The timer that will remove our indicator for early aborts (like when an user finishes their message) + var/typing_indicator_timerid + /// Default typing indicator timeout + var/typing_indicator_timeout = 30 SECONDS diff --git a/code/modules/mob/typing_indicator.dm b/code/modules/mob/typing_indicator.dm new file mode 100644 index 0000000000..92710e2434 --- /dev/null +++ b/code/modules/mob/typing_indicator.dm @@ -0,0 +1,44 @@ +/// state = overlay/image/object/type/whatever add_overlay will accept +GLOBAL_LIST_EMPTY(typing_indicator_overlays) + +/// Fetches the typing indicator we'll use from GLOB.typing_indicator_overlays +/mob/proc/get_indicator_overlay(state) + . = GLOB.typing_indicator_overlays[state] + if(.) + return + // doesn't exist, make it and cache it + if(ispath(state)) + . = GLOB.typing_indicator_overlays[state] = state + // We only support paths for now because anything else isn't necessary yet. + +/// Gets the state we will use for typing indicators. Defaults to src.typing_indicator_state +/mob/proc/get_typing_indicator_icon_state() + return typing_indicator_state + +/*! + * Displays typing indicator. + * @param timeout_override - Sets how long until this will disappear on its own without the user finishing their message or logging out. Defaults to src.typing_indicator_timeout + * @param state_override - Sets the state that we will fetch. Defaults to src.get_typing_indicator_icon_state() + * @param force - shows even if src.typing_indcator_enabled is FALSE. + */ +/mob/proc/display_typing_indicator(timeout_override = typing_indicator_timeout, state_override = get_typing_indicator_icon_state(), force = FALSE) + if(!typing_indicator_enabled || force) + return + add_overlay(get_indicator_overlay(state_override)) + addtimer(CALLBACK(src, .proc/clear_typing_indicator, state_override), timeout_override, TIMER_STOPPABLE) + +/*! + * Removes typing indicator. + * @param state_override Sets the state that we will remove. Defaults to src.get_typing_indicator_icon_state() + */ +/mob/proc/clear_typing_indicator(state_override = get_typing_indicator_icon_state()) + deltimer(typing_indicator_timerid) + cut_overlay(get_indicator_overlay(state_override)) + +/// Default typing indicator +/obj/effect/overlay/typing_indicator + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + icon = 'icons/mob/talk.dmi' + icon_state = "default_typing" + appearance_flags = RESET_COLOR | TILE_BOUND | PIXEL_SCALE + layer = LARGE_MOB_LAYER diff --git a/icons/mob/talk.dmi b/icons/mob/talk.dmi index 05fe6f56236377f0227fcb4b11800a2bd837ba17..2e300b5a290ba932ecb8408f5b1f2b41e652b455 100644 GIT binary patch delta 4148 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 QLcq^iXD_Gf(}>&u1vJCV9{>OV delta 4153 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 gzq`c7JvIk Date: Wed, 4 Mar 2020 02:42:24 -0700 Subject: [PATCH 002/103] whew! --- icons/mob/talk.dmi | Bin 5491 -> 8698 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/talk.dmi b/icons/mob/talk.dmi index 2e300b5a290ba932ecb8408f5b1f2b41e652b455..0a563210378ee6a14a958cff5a1dc88fe6501434 100644 GIT binary patch literal 8698 zcmd6Nc~leGws$c*g53^?3~@#V!BzwnA=ua=V1ouBDnqclK?Wg+%n*X2a=U3nB@i$| zupyuX2r|l)ps37)Op!56VNQUA5JD=+SFyi)-&^;6Ykljz^(m+c`R%=b zd++-7vYpk|O?x&00I=2i;&}uB$XZC-21Nh>Jf8O(1Aq)M;_9`a^B#A94)hKP@<#gu zK-ddX$~zy~@3uYasJ8!RMfV41mY?AdI$A5En{iEtgO#+^toxd&7?mqGyjr#lPP{h( z8HeGPIa40os$l}p-x<4xdz$6l%DL%=Lpi`Z_eV>-TOC|a+aF8)lHv-(EJLNz0*(9WD3Yn(34)+=*O25#(bmEW5r~&eQ%}Jb!WV$K5ReuotjC zf9`773)V2|ca6|{+DoX|>#Y5Op`Su zDHWWkJ}+JaZQH!FKF^FArFiU_>}ZvAiaK1tbuO`=E4{ltg8We;eL9igF}RV_VJCj) zW#q$DhelZri>hBkD#o7su=fZyN=(|y;YV-7!A&KWeE8kv4E}KN%hRG{BIt!iD$DWwgS)i>PolI4^&jVxMxl?h7PZP_5!B~VCQCJv@1AED0pC#ug zrjQ%Q7IX#%J2&^9E5eZ@<#H;rS*bW04w1J&`en+HIdEnM5j_pa6sRROv`j3ARqB4f zGU%jKX0RpN@6~jk4ayOi_t?7+t3$W3FH`O#pl{qbY7u)5jhaMTC&PoyjJUZ4aXy{s zksNQfjCIoU+Dd+|IdJ%uq9o#*=c~tArRy0qgDG?w;1{%e@40{bV$^r!*`e2KefCj) z%27O-fUb?jn4(@69RXdB>e{q;a3-Y@Mue{)ye25&b~IZT`8~xNb1EX#qDav*2W~F; zK0}FZ-jC7`Vx7cOWZ_&k9Z?mk7NkB&Oa}{8GjT|8{wYfQ;2heFGtH#Xlv=ZqpsN}< zuwSw;iDqrPrh`<8J*X1RX_!XYsDpEp9qkMfa=m*mmd~xY5d#2Kjl#bKQvX13iSNMX zfD)}LNm@J!$Kg%GOL9*a_;-nT-X%8T1rWHMn5Jhz!Uc8+*;SWeE9`KFtLk&E(IS?q z4Iij>XrUWJf|3iESIqkCHP8~!{dJ@y#adnsCke)4b(1C50#%ei9K{p7j5IHGq1lV0 znM$L5ZI@&Q7IsQJ=OO{mJI98ONXGRTM2gCK8^v}uRBV%6ohXp`;&vkV+ZD6L>iPHC z?KYh_wX(7XInvfS?bPf6N- zO9;HAYvwG#0+VTJvMW+`ijri&Gs4y;I?Z4=3W>ruBU(@Ri-L*GNd{>d3iC`#k4kKT zNg`N6fW@#*I^f?)L?5w3&Ne!W3n%#`6^Qz>?oL=YtlNVuzzR&pC5uCmsar0mC{ zIC4c8&nexassa~96nt`-uPS+ioQ}RKApf4!Y(d%s3RAIJ;p^ZUBx6q>mCHIw3|?rL zK$C|AdtWA+Z-MmCaoM^JW!y}iAfF3)D4pv1gJLoD)?ydrRPtr24uyq-g9>EF2*@OpP3@oX{Jcpy>VKJs+xB^lY6l%Q~xM!T6nnX56Ghi28Oy4bl0 zuPJ+Hm07`jm5b~^AG5(#=6=dS^omVo%HIve3Ygq8lx#2^x^s7_dvI_t%jRzeuDl|L zNjxfAK<=paIkqPur*=!HY5iD$x4(a3eqmwAl$l}3Gmz6_h^2G&EIOZ!1-$KHYGVh# zev@0Pq5jn;*xgtB%l*MWl=rW3KmT#M_CjOoY``g(f!i6My@HAoh{Fn;7Fz#V=(4@# z_|~uYu1yRZ8C?>tva&LG(b?72Z@wYq5y+ufMGJ&>(E@rm2~@r(Q*hl(0G}c!dKf;w3JB;DYJ&Auc!eYDy=)m9JS=?+ zXE9TE37Cr!VyDg901MU1En0sSKlqOa^e^Kq)dOoeQkj*6U W&Nw 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 Ai2wiq From e243dc689bda5e7a5a78690aa9f599b6b1aceb2a Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Wed, 4 Mar 2020 03:12:46 -0700 Subject: [PATCH 003/103] index --- code/modules/keybindings/bindings_mob.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/keybindings/bindings_mob.dm b/code/modules/keybindings/bindings_mob.dm index 6d413b4166..c3ffa97237 100644 --- a/code/modules/keybindings/bindings_mob.dm +++ b/code/modules/keybindings/bindings_mob.dm @@ -8,8 +8,8 @@ var/list/L = SSinput.macro_set_reverse_lookups[macroset] var/valid = TRUE if(length(L) > 1) - for(var/modifier in 2 to length(L)) - if(!client.keys_held[modifier]) + for(var/i in 2 to length(L)) + if(!client.keys_held[L[i]]) valid = FALSE break if(valid) From 1ae4ef16bc328d5c5cd82ab7f11fb922c9b97458 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Wed, 4 Mar 2020 06:03:51 -0700 Subject: [PATCH 004/103] sigh --- code/controllers/subsystem/input.dm | 4 +++- code/modules/keybindings/bindings_mob.dm | 20 ++++++++++++++------ code/modules/mob/typing_indicator.dm | 2 +- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/code/controllers/subsystem/input.dm b/code/controllers/subsystem/input.dm index 8a8e0ac7c9..2d80cb7f3c 100644 --- a/code/controllers/subsystem/input.dm +++ b/code/controllers/subsystem/input.dm @@ -14,6 +14,8 @@ SUBSYSTEM_DEF(input) var/list/macro_set_reverse_lookups /// cache these for speed. var/list/typing_indicator_binds + /// same + var/static/list/typing_indicator_verbs /datum/controller/subsystem/input/Initialize() setup_default_macro_sets() @@ -80,8 +82,8 @@ SUBSYSTEM_DEF(input) ) ) + typing_indicator_verbs = list("me", "say") typing_indicator_binds = list() - var/static/list/typing_indicator_verbs = list("me", "say") for(var/check_verb in typing_indicator_verbs) for(var/macro_set in macro_set_reverse_lookups) var/list/keylist = macro_set_reverse_lookups[macro_set][check_verb] diff --git a/code/modules/keybindings/bindings_mob.dm b/code/modules/keybindings/bindings_mob.dm index c3ffa97237..07df11f343 100644 --- a/code/modules/keybindings/bindings_mob.dm +++ b/code/modules/keybindings/bindings_mob.dm @@ -3,15 +3,22 @@ // Or we can have NPC's send actual keypresses and detect that by seeing no client /mob/key_down(_key, client/user) + to_chat(world, "DEBUG: key_down [_key]") if(SSinput.typing_indicator_binds[_key]) var/macroset = winget(user, "mainwindow", "macro") var/list/L = SSinput.macro_set_reverse_lookups[macroset] - var/valid = TRUE - if(length(L) > 1) - for(var/i in 2 to length(L)) - if(!client.keys_held[L[i]]) - valid = FALSE - break + to_chat(world, "DEBUG: Looking up list [macroset] = [english_list(L)]") + to_chat(world, "DEBUG: Client.keys_held = [english_list(client.keys_held)]") + var/valid = FALSE + for(var/the_verb in L) + if(the_verb in SSinput.typing_indicator_verbs) + var/list/keys = L[the_verb] + valid = TRUE + if(length(keys) > 1) + for(var/i in 2 to length(keys)) + if(!client.keys_held[keys[i]]) + valid = FALSE + break if(valid) display_typing_indicator() switch(_key) @@ -86,6 +93,7 @@ return ..() /mob/key_up(_key, client/user) + to_chat(world, "DEBUG: key_up [_key]") switch(_key) if("Alt") toggle_move_intent() diff --git a/code/modules/mob/typing_indicator.dm b/code/modules/mob/typing_indicator.dm index 92710e2434..2587839cb8 100644 --- a/code/modules/mob/typing_indicator.dm +++ b/code/modules/mob/typing_indicator.dm @@ -39,6 +39,6 @@ GLOBAL_LIST_EMPTY(typing_indicator_overlays) /obj/effect/overlay/typing_indicator mouse_opacity = MOUSE_OPACITY_TRANSPARENT icon = 'icons/mob/talk.dmi' - icon_state = "default_typing" + icon_state = "normal_typing" appearance_flags = RESET_COLOR | TILE_BOUND | PIXEL_SCALE layer = LARGE_MOB_LAYER From c28a78de3d9c717e7447f91277b77aec9877be4a Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Wed, 4 Mar 2020 06:41:53 -0700 Subject: [PATCH 005/103] ok --- code/modules/keybindings/bindings_mob.dm | 4 ---- code/modules/mob/living/living_defines.dm | 2 ++ code/modules/mob/say.dm | 4 +++- code/modules/mob/say_vr.dm | 1 - 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/code/modules/keybindings/bindings_mob.dm b/code/modules/keybindings/bindings_mob.dm index 07df11f343..159134508b 100644 --- a/code/modules/keybindings/bindings_mob.dm +++ b/code/modules/keybindings/bindings_mob.dm @@ -3,12 +3,9 @@ // Or we can have NPC's send actual keypresses and detect that by seeing no client /mob/key_down(_key, client/user) - to_chat(world, "DEBUG: key_down [_key]") if(SSinput.typing_indicator_binds[_key]) var/macroset = winget(user, "mainwindow", "macro") var/list/L = SSinput.macro_set_reverse_lookups[macroset] - to_chat(world, "DEBUG: Looking up list [macroset] = [english_list(L)]") - to_chat(world, "DEBUG: Client.keys_held = [english_list(client.keys_held)]") var/valid = FALSE for(var/the_verb in L) if(the_verb in SSinput.typing_indicator_verbs) @@ -93,7 +90,6 @@ return ..() /mob/key_up(_key, client/user) - to_chat(world, "DEBUG: key_up [_key]") switch(_key) if("Alt") toggle_move_intent() diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index 7106d003ee..f57edee9d1 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -5,6 +5,8 @@ hud_possible = list(HEALTH_HUD,STATUS_HUD,ANTAG_HUD,NANITE_HUD,DIAG_NANITE_FULL_HUD,RAD_HUD) pressure_resistance = 10 + typing_indicator_enabled = TRUE + var/resize = 1 //Badminnery resize var/lastattacker = null var/lastattackerckey = null diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index f348829b71..8b2d9ef0c4 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -2,6 +2,7 @@ /mob/verb/say_verb(message as text) set name = "Say" set category = "IC" + clear_typing_indicator() // clear it immediately! if(GLOB.say_disabled) //This is here to try to identify lag problems to_chat(usr, "Speech is currently admin-disabled.") return @@ -19,6 +20,7 @@ /mob/verb/whisper_verb(message as text) set name = "Whisper" set category = "IC" + clear_typing_indicator() // clear it immediately! if(GLOB.say_disabled) //This is here to try to identify lag problems to_chat(usr, "Speech is currently admin-disabled.") return @@ -30,7 +32,7 @@ /mob/verb/me_verb(message as message) set name = "Me" set category = "IC" - + clear_typing_indicator() // clear it immediately! if(GLOB.say_disabled) //This is here to try to identify lag problems to_chat(usr, "Speech is currently admin-disabled.") return diff --git a/code/modules/mob/say_vr.dm b/code/modules/mob/say_vr.dm index 377bb1c5fc..ec82b41cca 100644 --- a/code/modules/mob/say_vr.dm +++ b/code/modules/mob/say_vr.dm @@ -23,7 +23,6 @@ proc/get_top_level_mob(var/mob/S) message = null mob_type_blacklist_typecache = list(/mob/living/brain) - /datum/emote/living/subtle/proc/check_invalid(mob/user, input) if(stop_bad_mime.Find(input, 1, 1)) to_chat(user, "Invalid emote.") From 0d312b8dff347c14bf996a9421889c4ef0658cc8 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Wed, 4 Mar 2020 08:02:28 -0700 Subject: [PATCH 006/103] only way --- code/modules/keybindings/bindings_mob.dm | 2 ++ code/modules/mob/say.dm | 9 +++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/code/modules/keybindings/bindings_mob.dm b/code/modules/keybindings/bindings_mob.dm index 159134508b..6c7b3031c5 100644 --- a/code/modules/keybindings/bindings_mob.dm +++ b/code/modules/keybindings/bindings_mob.dm @@ -19,6 +19,8 @@ if(valid) display_typing_indicator() switch(_key) + if("Escape") + clear_typing_indicator() if("Delete", "H") if(!pulling) to_chat(src, "You are not pulling anything.") diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index 8b2d9ef0c4..ac5924f6d8 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -3,11 +3,12 @@ set name = "Say" set category = "IC" clear_typing_indicator() // clear it immediately! + if(!length(message)) + return if(GLOB.say_disabled) //This is here to try to identify lag problems to_chat(usr, "Speech is currently admin-disabled.") return - if(message) - say(message) + say(message) /mob/say_mod(input, message_mode) var/customsayverb = findtext(input, "*") @@ -21,6 +22,8 @@ set name = "Whisper" set category = "IC" clear_typing_indicator() // clear it immediately! + if(!length(message)) + return if(GLOB.say_disabled) //This is here to try to identify lag problems to_chat(usr, "Speech is currently admin-disabled.") return @@ -33,6 +36,8 @@ set name = "Me" set category = "IC" clear_typing_indicator() // clear it immediately! + if(!length(message)) + return if(GLOB.say_disabled) //This is here to try to identify lag problems to_chat(usr, "Speech is currently admin-disabled.") return From d1f161fe0f56973ecce55df22e2fa1c35395728c Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Wed, 4 Mar 2020 15:42:01 -0700 Subject: [PATCH 007/103] changes --- code/controllers/subsystem/input.dm | 10 ++++---- code/modules/keybindings/bindings_mob.dm | 2 +- .../mob/living/carbon/human/species.dm | 5 ---- .../living/carbon/human/typing_indicator.dm | 2 +- code/modules/mob/say.dm | 23 +++++++++++++++++-- code/modules/mob/typing_indicator.dm | 23 ++++++++++--------- 6 files changed, 40 insertions(+), 25 deletions(-) diff --git a/code/controllers/subsystem/input.dm b/code/controllers/subsystem/input.dm index 2d80cb7f3c..add2682b35 100644 --- a/code/controllers/subsystem/input.dm +++ b/code/controllers/subsystem/input.dm @@ -68,17 +68,17 @@ SUBSYSTEM_DEF(input) macro_set_reverse_lookups = list( "default" = list( - "say" = list("T"), + "say_keybind" = list("T"), "whisper" = list("T", "Ctrl"), - "me" = list("M"), + "me_keybind" = list("M"), "subtle" = list("M", "Ctrl") ), "old_default" = list( - "say" = list("T", "Ctrl"), + "say_keybind" = list("T", "Ctrl"), ), "old_hotkeys" = list( - "say" = list("T"), - "me" = list("M"), + "say_keybind" = list("T"), + "me_keybind" = list("M"), ) ) diff --git a/code/modules/keybindings/bindings_mob.dm b/code/modules/keybindings/bindings_mob.dm index 6c7b3031c5..50770c130a 100644 --- a/code/modules/keybindings/bindings_mob.dm +++ b/code/modules/keybindings/bindings_mob.dm @@ -19,7 +19,7 @@ if(valid) display_typing_indicator() switch(_key) - if("Escape") + if("Escape") //escape breaks out of clientside verb text input without executing at all, meaning we can't hook the verb to do this for us. clear_typing_indicator() if("Delete", "H") if(!pulling) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 52e14a43e4..e3123dddd4 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -2221,8 +2221,3 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) /datum/species/proc/start_wagging_tail(mob/living/carbon/human/H) /datum/species/proc/stop_wagging_tail(mob/living/carbon/human/H) - - -/////// TYPING INDICATORS /////// -/datum/species/proc/get_typing_indicator_state() - return typing_indicator_state diff --git a/code/modules/mob/living/carbon/human/typing_indicator.dm b/code/modules/mob/living/carbon/human/typing_indicator.dm index 6d420c1f7b..16ed95790a 100644 --- a/code/modules/mob/living/carbon/human/typing_indicator.dm +++ b/code/modules/mob/living/carbon/human/typing_indicator.dm @@ -1,2 +1,2 @@ /mob/living/carbon/human/get_typing_indicator_icon_state() - return dna?.species?.get_typing_indicator_state() || ..() + return dna?.species?.typing_indicator_state || ..() diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index ac5924f6d8..bca634ada9 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -1,7 +1,17 @@ //Speech verbs. -/mob/verb/say_verb(message as text) +// the _keybind verbs uses "as text" versus "as text|null" to force a popup when pressed by a keybind. +/mob/verb/say_keybind(message as text) + set name = "say_keybind" + set hidden = TRUE + set category = "IC" + return say_verb(message) + +/mob/verb/say_verb(message as text|null) set name = "Say" set category = "IC" + display_typing_indicator() + if(!length(message)) + message = input(usr, "Say something!", "Say") as text|null clear_typing_indicator() // clear it immediately! if(!length(message)) return @@ -32,9 +42,18 @@ /mob/proc/whisper(message, datum/language/language=null) say(message, language) //only living mobs actually whisper, everything else just talks -/mob/verb/me_verb(message as message) +/mob/verb/me_keybind(message as message) + set name = "me_keybind" + set hidden = TRUE + set category = "IC" + return me_verb(message) + +/mob/verb/me_verb(message as message|null) set name = "Me" set category = "IC" + display_typing_indicator() + if(!length(message)) + message = input(usr, "What do you want to emote?" , "Emote") as message|null clear_typing_indicator() // clear it immediately! if(!length(message)) return diff --git a/code/modules/mob/typing_indicator.dm b/code/modules/mob/typing_indicator.dm index 2587839cb8..7ca9eb72e9 100644 --- a/code/modules/mob/typing_indicator.dm +++ b/code/modules/mob/typing_indicator.dm @@ -15,24 +15,25 @@ GLOBAL_LIST_EMPTY(typing_indicator_overlays) /mob/proc/get_typing_indicator_icon_state() return typing_indicator_state -/*! - * Displays typing indicator. - * @param timeout_override - Sets how long until this will disappear on its own without the user finishing their message or logging out. Defaults to src.typing_indicator_timeout - * @param state_override - Sets the state that we will fetch. Defaults to src.get_typing_indicator_icon_state() - * @param force - shows even if src.typing_indcator_enabled is FALSE. - */ +/** + * Displays typing indicator. + * @param timeout_override - Sets how long until this will disappear on its own without the user finishing their message or logging out. Defaults to src.typing_indicator_timeout + * @param state_override - Sets the state that we will fetch. Defaults to src.get_typing_indicator_icon_state() + * @param force - shows even if src.typing_indcator_enabled is FALSE. + */ /mob/proc/display_typing_indicator(timeout_override = typing_indicator_timeout, state_override = get_typing_indicator_icon_state(), force = FALSE) - if(!typing_indicator_enabled || force) + if(!typing_indicator_enabled && !force) return add_overlay(get_indicator_overlay(state_override)) addtimer(CALLBACK(src, .proc/clear_typing_indicator, state_override), timeout_override, TIMER_STOPPABLE) -/*! - * Removes typing indicator. - * @param state_override Sets the state that we will remove. Defaults to src.get_typing_indicator_icon_state() - */ +/** + * Removes typing indicator. + * @param state_override Sets the state that we will remove. Defaults to src.get_typing_indicator_icon_state() + */ /mob/proc/clear_typing_indicator(state_override = get_typing_indicator_icon_state()) deltimer(typing_indicator_timerid) + typing_indicator_timerid = null cut_overlay(get_indicator_overlay(state_override)) /// Default typing indicator From 8d1e36e0769415c27538e01ae01f36bd9d51793a Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Wed, 4 Mar 2020 15:49:47 -0700 Subject: [PATCH 008/103] k --- code/__DEFINES/mobs.dm | 2 ++ code/modules/mob/mob_defines.dm | 2 -- code/modules/mob/typing_indicator.dm | 7 ++++--- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index dc67de3150..f70f8c55bc 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -277,3 +277,5 @@ #define PULL_PRONE_SLOWDOWN 0.6 #define HUMAN_CARRY_SLOWDOWN 0 + +#define TYPING_INDICATOR_TIMEOUT 10 SECONDS diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 7a3959ed8f..8cda504149 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -136,5 +136,3 @@ var/typing_indicator_state = /obj/effect/overlay/typing_indicator /// The timer that will remove our indicator for early aborts (like when an user finishes their message) var/typing_indicator_timerid - /// Default typing indicator timeout - var/typing_indicator_timeout = 30 SECONDS diff --git a/code/modules/mob/typing_indicator.dm b/code/modules/mob/typing_indicator.dm index 7ca9eb72e9..b8a68b336a 100644 --- a/code/modules/mob/typing_indicator.dm +++ b/code/modules/mob/typing_indicator.dm @@ -21,11 +21,12 @@ GLOBAL_LIST_EMPTY(typing_indicator_overlays) * @param state_override - Sets the state that we will fetch. Defaults to src.get_typing_indicator_icon_state() * @param force - shows even if src.typing_indcator_enabled is FALSE. */ -/mob/proc/display_typing_indicator(timeout_override = typing_indicator_timeout, state_override = get_typing_indicator_icon_state(), force = FALSE) - if(!typing_indicator_enabled && !force) +/mob/proc/display_typing_indicator(timeout_override = TYPING_INDICATOR_TIMEOUT, state_override = get_typing_indicator_icon_state(), force = FALSE) + if((!typing_indicator_enabled && !force) || typing_indicator_timerid) return + typing_indicator_timerid = addtimer(CALLBACK(src, .proc/clear_typing_indicator, state_override), timeout_override, TIMER_STOPPABLE) + var/overlay = get_indicator_overlay(state_override) add_overlay(get_indicator_overlay(state_override)) - addtimer(CALLBACK(src, .proc/clear_typing_indicator, state_override), timeout_override, TIMER_STOPPABLE) /** * Removes typing indicator. From 76541ff57ad4f34c82d65900aaa1c132100f8705 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 5 Mar 2020 00:16:22 -0700 Subject: [PATCH 009/103] getting worse --- code/controllers/subsystem/input.dm | 12 ++++++------ code/modules/mob/typing_indicator.dm | 1 - 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/code/controllers/subsystem/input.dm b/code/controllers/subsystem/input.dm index add2682b35..ac27d43775 100644 --- a/code/controllers/subsystem/input.dm +++ b/code/controllers/subsystem/input.dm @@ -41,9 +41,9 @@ SUBSYSTEM_DEF(input) "Tab" = "\".winset \\\"input.focus=true?map.focus=true input.background-color=[COLOR_INPUT_DISABLED]:input.focus=true input.background-color=[COLOR_INPUT_ENABLED]\\\"\"", "O" = "ooc", "Ctrl+O" = "looc", - "T" = "say", + "T" = "say_keybind", "Ctrl+T" = "whisper", - "M" = "me", + "M" = "me_keybind", "Ctrl+M" = "subtle", "Back" = "\".winset \\\"input.text=\\\"\\\"\\\"\"", // This makes it so backspace can remove default inputs "Any" = "\"KeyDown \[\[*\]\]\"", @@ -51,15 +51,15 @@ SUBSYSTEM_DEF(input) ), "old_default" = list( "Tab" = "\".winset \\\"mainwindow.macro=old_hotkeys map.focus=true input.background-color=[COLOR_INPUT_DISABLED]\\\"\"", - "Ctrl+T" = "say", + "Ctrl+T" = "say_keybind", "Ctrl+O" = "ooc", ), "old_hotkeys" = list( "Tab" = "\".winset \\\"mainwindow.macro=old_default input.focus=true input.background-color=[COLOR_INPUT_ENABLED]\\\"\"", "O" = "ooc", "L" = "looc", - "T" = "say", - "M" = "me", + "T" = "say_keybind", + "M" = "me_keybind", "Back" = "\".winset \\\"input.text=\\\"\\\"\\\"\"", // This makes it so backspace can remove default inputs "Any" = "\"KeyDown \[\[*\]\]\"", "Any+UP" = "\"KeyUp \[\[*\]\]\"", @@ -82,7 +82,7 @@ SUBSYSTEM_DEF(input) ) ) - typing_indicator_verbs = list("me", "say") + typing_indicator_verbs = list("me", "say", "say_keybind", "me_keybind") typing_indicator_binds = list() for(var/check_verb in typing_indicator_verbs) for(var/macro_set in macro_set_reverse_lookups) diff --git a/code/modules/mob/typing_indicator.dm b/code/modules/mob/typing_indicator.dm index b8a68b336a..4ecf930aee 100644 --- a/code/modules/mob/typing_indicator.dm +++ b/code/modules/mob/typing_indicator.dm @@ -25,7 +25,6 @@ GLOBAL_LIST_EMPTY(typing_indicator_overlays) if((!typing_indicator_enabled && !force) || typing_indicator_timerid) return typing_indicator_timerid = addtimer(CALLBACK(src, .proc/clear_typing_indicator, state_override), timeout_override, TIMER_STOPPABLE) - var/overlay = get_indicator_overlay(state_override) add_overlay(get_indicator_overlay(state_override)) /** From 032b973d827cc434efaea69e86ca4ddb09d97c29 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 5 Mar 2020 00:51:05 -0700 Subject: [PATCH 010/103] wow that's a lot of effort --- code/__DEFINES/layers.dm | 5 +- code/__DEFINES/mobs.dm | 2 +- code/_onclick/click.dm | 3 + code/modules/mob/living/living_movement.dm | 2 + code/modules/mob/mob_defines.dm | 2 + code/modules/mob/say.dm | 69 ++++++++++++++-------- code/modules/mob/typing_indicator.dm | 20 ++++--- 7 files changed, 65 insertions(+), 38 deletions(-) diff --git a/code/__DEFINES/layers.dm b/code/__DEFINES/layers.dm index e0a22667ac..78d1264f66 100644 --- a/code/__DEFINES/layers.dm +++ b/code/__DEFINES/layers.dm @@ -67,8 +67,9 @@ #define SPACEVINE_LAYER 4.8 #define SPACEVINE_MOB_LAYER 4.9 //#define FLY_LAYER 5 //For easy recordkeeping; this is a byond define -#define GASFIRE_LAYER 5.05 -#define RIPPLE_LAYER 5.1 +#define ABOVE_FLY_LAYER 5.1 +#define GASFIRE_LAYER 5.2 +#define RIPPLE_LAYER 5.3 #define GHOST_LAYER 6 #define LOW_LANDMARK_LAYER 9 diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index f70f8c55bc..c7f19e600f 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -278,4 +278,4 @@ #define PULL_PRONE_SLOWDOWN 0.6 #define HUMAN_CARRY_SLOWDOWN 0 -#define TYPING_INDICATOR_TIMEOUT 10 SECONDS +#define TYPING_INDICATOR_TIMEOUT 30 SECONDS diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index e8a57bb257..a728d13deb 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -69,6 +69,9 @@ return next_click = world.time + world.tick_lag + // Hide typing indicator if we click + hide_typing_indicator_auto() + if(check_click_intercept(params,A)) return diff --git a/code/modules/mob/living/living_movement.dm b/code/modules/mob/living/living_movement.dm index e0ea6350d7..271b18f86f 100644 --- a/code/modules/mob/living/living_movement.dm +++ b/code/modules/mob/living/living_movement.dm @@ -1,6 +1,8 @@ /mob/living/Moved() . = ..() update_turf_movespeed(loc) + //Hide typing indicator if we move. + hide_typing_indicator_auto() /mob/living/CanPass(atom/movable/mover, turf/target) if((mover.pass_flags & PASSMOB)) diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 8cda504149..4ce11b4f86 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -136,3 +136,5 @@ var/typing_indicator_state = /obj/effect/overlay/typing_indicator /// The timer that will remove our indicator for early aborts (like when an user finishes their message) var/typing_indicator_timerid + /// Current state of our typing indicator. Used for cut overlay, DO NOT RUNTIME ASSIGN OTHER THAN FROM SHOW/CLEAR. Used to absolutely ensure we do not get stuck overlays. + var/typing_indicator_current diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index bca634ada9..95e504aece 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -4,14 +4,23 @@ set name = "say_keybind" set hidden = TRUE set category = "IC" - return say_verb(message) + // If they don't type anything just drop the message. + clear_typing_indicator() // clear it immediately! + if(!length(message)) + return + return do_sayverb(message) /mob/verb/say_verb(message as text|null) set name = "Say" set category = "IC" display_typing_indicator() if(!length(message)) - message = input(usr, "Say something!", "Say") as text|null + // We don't use input because that can't be broken out of with ESC key. + winset(src, null, "command=\"say_keybind\"") + else + return do_sayverb(message) + +/mob/proc/do_sayverb(message) clear_typing_indicator() // clear it immediately! if(!length(message)) return @@ -20,6 +29,38 @@ return say(message) +/mob/verb/me_keybind(message as message) + set name = "me_keybind" + set hidden = TRUE + set category = "IC" + // If they don't type anything just drop the message. + clear_typing_indicator() // clear it immediately! + if(!length(message)) + return + return do_meverb(message) + +/mob/verb/me_verb(message as message|null) + set name = "Me" + set category = "IC" + display_typing_indicator() + if(!length(message)) + // Do not use input because it can't be broken out of with ESC key. + winset(src, null, "command=\"me_keybind\"") + else + return do_meverb(message) + +/mob/proc/do_meverb(message) + clear_typing_indicator() // clear it immediately! + if(!length(message)) + return + if(GLOB.say_disabled) //This is here to try to identify lag problems + to_chat(usr, "Speech is currently admin-disabled.") + return + + message = trim(copytext_char(sanitize(message), 1, MAX_MESSAGE_LEN)) + + usr.emote("me",1,message,TRUE) + /mob/say_mod(input, message_mode) var/customsayverb = findtext(input, "*") if(customsayverb && message_mode != MODE_WHISPER_CRIT) @@ -31,7 +72,6 @@ /mob/verb/whisper_verb(message as text) set name = "Whisper" set category = "IC" - clear_typing_indicator() // clear it immediately! if(!length(message)) return if(GLOB.say_disabled) //This is here to try to identify lag problems @@ -42,29 +82,6 @@ /mob/proc/whisper(message, datum/language/language=null) say(message, language) //only living mobs actually whisper, everything else just talks -/mob/verb/me_keybind(message as message) - set name = "me_keybind" - set hidden = TRUE - set category = "IC" - return me_verb(message) - -/mob/verb/me_verb(message as message|null) - set name = "Me" - set category = "IC" - display_typing_indicator() - if(!length(message)) - message = input(usr, "What do you want to emote?" , "Emote") as message|null - clear_typing_indicator() // clear it immediately! - if(!length(message)) - return - if(GLOB.say_disabled) //This is here to try to identify lag problems - to_chat(usr, "Speech is currently admin-disabled.") - return - - message = trim(copytext_char(sanitize(message), 1, MAX_MESSAGE_LEN)) - - usr.emote("me",1,message,TRUE) - /mob/proc/say_dead(var/message) var/name = real_name var/alt_name = "" diff --git a/code/modules/mob/typing_indicator.dm b/code/modules/mob/typing_indicator.dm index 4ecf930aee..f28cbe4385 100644 --- a/code/modules/mob/typing_indicator.dm +++ b/code/modules/mob/typing_indicator.dm @@ -22,19 +22,21 @@ GLOBAL_LIST_EMPTY(typing_indicator_overlays) * @param force - shows even if src.typing_indcator_enabled is FALSE. */ /mob/proc/display_typing_indicator(timeout_override = TYPING_INDICATOR_TIMEOUT, state_override = get_typing_indicator_icon_state(), force = FALSE) - if((!typing_indicator_enabled && !force) || typing_indicator_timerid) + if((!typing_indicator_enabled && !force) || typing_indicator_current) return - typing_indicator_timerid = addtimer(CALLBACK(src, .proc/clear_typing_indicator, state_override), timeout_override, TIMER_STOPPABLE) - add_overlay(get_indicator_overlay(state_override)) + typing_indicator_current = state_override + add_overlay(state_override) + typing_indicator_timerid = addtimer(CALLBACK(src, .proc/clear_typing_indicator), timeout_override, TIMER_STOPPABLE) /** * Removes typing indicator. - * @param state_override Sets the state that we will remove. Defaults to src.get_typing_indicator_icon_state() */ -/mob/proc/clear_typing_indicator(state_override = get_typing_indicator_icon_state()) - deltimer(typing_indicator_timerid) - typing_indicator_timerid = null - cut_overlay(get_indicator_overlay(state_override)) +/mob/proc/clear_typing_indicator() + cut_overlay(typing_indicator_current) + typing_indicator_current = null + if(typing_indicator_timerid) + deltimer(typing_indicator_timerid) + typing_indicator_timerid = null /// Default typing indicator /obj/effect/overlay/typing_indicator @@ -42,4 +44,4 @@ GLOBAL_LIST_EMPTY(typing_indicator_overlays) icon = 'icons/mob/talk.dmi' icon_state = "normal_typing" appearance_flags = RESET_COLOR | TILE_BOUND | PIXEL_SCALE - layer = LARGE_MOB_LAYER + layer = ABOVE_FLY_LAYER From e027d22fd887a3248c12c024c55955bead017379 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 5 Mar 2020 00:53:18 -0700 Subject: [PATCH 011/103] eh ok --- code/__DEFINES/mobs.dm | 2 +- code/_onclick/click.dm | 2 +- code/modules/mob/living/living_movement.dm | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index c7f19e600f..f70f8c55bc 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -278,4 +278,4 @@ #define PULL_PRONE_SLOWDOWN 0.6 #define HUMAN_CARRY_SLOWDOWN 0 -#define TYPING_INDICATOR_TIMEOUT 30 SECONDS +#define TYPING_INDICATOR_TIMEOUT 10 SECONDS diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index a728d13deb..a6c0792a5d 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -70,7 +70,7 @@ next_click = world.time + world.tick_lag // Hide typing indicator if we click - hide_typing_indicator_auto() + clear_typing_indicator() if(check_click_intercept(params,A)) return diff --git a/code/modules/mob/living/living_movement.dm b/code/modules/mob/living/living_movement.dm index 271b18f86f..a9c80740a1 100644 --- a/code/modules/mob/living/living_movement.dm +++ b/code/modules/mob/living/living_movement.dm @@ -2,7 +2,7 @@ . = ..() update_turf_movespeed(loc) //Hide typing indicator if we move. - hide_typing_indicator_auto() + clear_typing_indicator() /mob/living/CanPass(atom/movable/mover, turf/target) if((mover.pass_flags & PASSMOB)) From 62fd71c50edb2f7cfda5732b78a7677b68f3a365 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Fri, 24 Apr 2020 23:31:34 -0700 Subject: [PATCH 012/103] kay --- code/controllers/subsystem/input.dm | 59 +++++------------------- code/modules/keybindings/bindings_mob.dm | 17 ------- code/modules/mob/say.dm | 38 ++++++--------- interface/skin.dmf | 6 +-- tgstation.dme | 1 + 5 files changed, 28 insertions(+), 93 deletions(-) diff --git a/code/controllers/subsystem/input.dm b/code/controllers/subsystem/input.dm index ac27d43775..c6c03e2cbd 100644 --- a/code/controllers/subsystem/input.dm +++ b/code/controllers/subsystem/input.dm @@ -8,14 +8,6 @@ SUBSYSTEM_DEF(input) var/list/macro_sets var/list/movement_keys - /*! Special thing (until we get custom keybinds that also support clientside macros :weary:) that lets us do stuff like look up "which key is say/me bound to". Special format too, the value of a key should be list(key, modifier1, modifier2, ...). "default" unless override. - * USE get_key_for_macro_id or get_typing_indicator_binds TO ACCESS! - */ - var/list/macro_set_reverse_lookups - /// cache these for speed. - var/list/typing_indicator_binds - /// same - var/static/list/typing_indicator_verbs /datum/controller/subsystem/input/Initialize() setup_default_macro_sets() @@ -41,57 +33,35 @@ SUBSYSTEM_DEF(input) "Tab" = "\".winset \\\"input.focus=true?map.focus=true input.background-color=[COLOR_INPUT_DISABLED]:input.focus=true input.background-color=[COLOR_INPUT_ENABLED]\\\"\"", "O" = "ooc", "Ctrl+O" = "looc", - "T" = "say_keybind", - "Ctrl+T" = "whisper", - "M" = "me_keybind", - "Ctrl+M" = "subtle", + "T" = "Say", + "Ctrl+T" = "SayWithIndicator", + "Y" = "whisper", + "M" = "Me", + "Ctrl+M" = "MeWithIndicator", + "5" = "subtle", "Back" = "\".winset \\\"input.text=\\\"\\\"\\\"\"", // This makes it so backspace can remove default inputs "Any" = "\"KeyDown \[\[*\]\]\"", "Any+UP" = "\"KeyUp \[\[*\]\]\"", ), "old_default" = list( "Tab" = "\".winset \\\"mainwindow.macro=old_hotkeys map.focus=true input.background-color=[COLOR_INPUT_DISABLED]\\\"\"", - "Ctrl+T" = "say_keybind", + "Ctrl+T" = "Say", "Ctrl+O" = "ooc", ), "old_hotkeys" = list( "Tab" = "\".winset \\\"mainwindow.macro=old_default input.focus=true input.background-color=[COLOR_INPUT_ENABLED]\\\"\"", "O" = "ooc", "L" = "looc", - "T" = "say_keybind", - "M" = "me_keybind", + "T" = "Say", + "Ctrl+T" = "SayWithIndicator", + "M" = "Me", + "Ctrl+M" = "MeWithIndicator", "Back" = "\".winset \\\"input.text=\\\"\\\"\\\"\"", // This makes it so backspace can remove default inputs "Any" = "\"KeyDown \[\[*\]\]\"", "Any+UP" = "\"KeyUp \[\[*\]\]\"", ), ) - macro_set_reverse_lookups = list( - "default" = list( - "say_keybind" = list("T"), - "whisper" = list("T", "Ctrl"), - "me_keybind" = list("M"), - "subtle" = list("M", "Ctrl") - ), - "old_default" = list( - "say_keybind" = list("T", "Ctrl"), - ), - "old_hotkeys" = list( - "say_keybind" = list("T"), - "me_keybind" = list("M"), - ) - ) - - typing_indicator_verbs = list("me", "say", "say_keybind", "me_keybind") - typing_indicator_binds = list() - for(var/check_verb in typing_indicator_verbs) - for(var/macro_set in macro_set_reverse_lookups) - var/list/keylist = macro_set_reverse_lookups[macro_set][check_verb] - if(!keylist) - continue - var/key = keylist[1] - typing_indicator_binds[key] = TRUE - // Because i'm lazy and don't want to type all these out twice var/list/old_default = default_macro_sets["old_default"] @@ -151,10 +121,3 @@ SUBSYSTEM_DEF(input) for(var/i in 1 to length(clients)) var/client/C = clients[i] C.keyLoop() - -/datum/controller/subsystem/input/proc/get_key_for_macro_id(macro_id, macroset) - return macro_set_reverse_lookups[macroset][macro_id] || macro_set_reverse_lookups["default"][macro_id] - -/// Returns an associative list of keys without modifiers like ctrl. You have to do another lookup, this is for the first check to be faster. -/datum/controller/subsystem/input/proc/get_typing_indicator_binds(macroset) - return typing_indicator_binds[macroset] diff --git a/code/modules/keybindings/bindings_mob.dm b/code/modules/keybindings/bindings_mob.dm index cacb382d6a..36b4775c34 100644 --- a/code/modules/keybindings/bindings_mob.dm +++ b/code/modules/keybindings/bindings_mob.dm @@ -3,24 +3,7 @@ // Or we can have NPC's send actual keypresses and detect that by seeing no client /mob/key_down(_key, client/user) - if(SSinput.typing_indicator_binds[_key]) - var/macroset = winget(user, "mainwindow", "macro") - var/list/L = SSinput.macro_set_reverse_lookups[macroset] - var/valid = FALSE - for(var/the_verb in L) - if(the_verb in SSinput.typing_indicator_verbs) - var/list/keys = L[the_verb] - valid = TRUE - if(length(keys) > 1) - for(var/i in 2 to length(keys)) - if(!client.keys_held[keys[i]]) - valid = FALSE - break - if(valid) - display_typing_indicator() switch(_key) - if("Escape") //escape breaks out of clientside verb text input without executing at all, meaning we can't hook the verb to do this for us. - clear_typing_indicator() if("Delete", "H") if(!pulling) to_chat(src, "You are not pulling anything.") diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index 95e504aece..9679417ed8 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -1,55 +1,43 @@ //Speech verbs. // the _keybind verbs uses "as text" versus "as text|null" to force a popup when pressed by a keybind. -/mob/verb/say_keybind(message as text) - set name = "say_keybind" +/mob/verb/say_typing_indicator() + set name = "SayWithIndicator" set hidden = TRUE set category = "IC" + display_typing_indicator() + var/message = input(usr, "", "Say") as text|null // If they don't type anything just drop the message. clear_typing_indicator() // clear it immediately! if(!length(message)) return - return do_sayverb(message) + return say_verb(message) -/mob/verb/say_verb(message as text|null) +/mob/verb/say_verb(message as text) set name = "Say" set category = "IC" - display_typing_indicator() - if(!length(message)) - // We don't use input because that can't be broken out of with ESC key. - winset(src, null, "command=\"say_keybind\"") - else - return do_sayverb(message) - -/mob/proc/do_sayverb(message) - clear_typing_indicator() // clear it immediately! if(!length(message)) return if(GLOB.say_disabled) //This is here to try to identify lag problems to_chat(usr, "Speech is currently admin-disabled.") return + clear_typing_indicator() // clear it immediately! say(message) -/mob/verb/me_keybind(message as message) - set name = "me_keybind" +/mob/verb/me_typing_indicator() + set name = "MeWithIndicator" set hidden = TRUE set category = "IC" + display_typing_indicator() + var/message = input(usr, "", "Me") as message|null // If they don't type anything just drop the message. clear_typing_indicator() // clear it immediately! if(!length(message)) return - return do_meverb(message) + return me_verb(message) -/mob/verb/me_verb(message as message|null) +/mob/verb/me_verb(message as message) set name = "Me" set category = "IC" - display_typing_indicator() - if(!length(message)) - // Do not use input because it can't be broken out of with ESC key. - winset(src, null, "command=\"me_keybind\"") - else - return do_meverb(message) - -/mob/proc/do_meverb(message) clear_typing_indicator() // clear it immediately! if(!length(message)) return diff --git a/interface/skin.dmf b/interface/skin.dmf index 5f8e1ad125..f27b0bcf48 100644 --- a/interface/skin.dmf +++ b/interface/skin.dmf @@ -1,5 +1,6 @@ macro "default" + menu "menu" elem name = "&File" @@ -268,14 +269,13 @@ window "statwindow" is-default = true saved-params = "" - window "preferences_window" +window "preferences_window" elem "preferences_window" type = MAIN pos = 372,0 size = 1280x1000 anchor1 = none anchor2 = none - background-color = none is-visible = false saved-params = "pos;size;is-minimized;is-maximized" statusbar = false @@ -285,7 +285,6 @@ window "statwindow" size = 960x1000 anchor1 = 0,0 anchor2 = 75,100 - background-color = none saved-params = "" elem "character_preview_map" type = MAP @@ -295,3 +294,4 @@ window "statwindow" anchor2 = 100,100 right-click = true saved-params = "zoom;letterbox;zoom-mode" + diff --git a/tgstation.dme b/tgstation.dme index 107a704c4b..0f54c8cb5d 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -3253,6 +3253,7 @@ #include "interface\interface.dm" #include "interface\menu.dm" #include "interface\stylesheet.dm" +#include "interface\skin.dmf" #include "modular_citadel\code\__HELPERS\list2list.dm" #include "modular_citadel\code\__HELPERS\lists.dm" #include "modular_citadel\code\__HELPERS\mobs.dm" From abb7f199dff94f741ec86b62ba19ba3193f077af Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Fri, 24 Apr 2020 23:39:08 -0700 Subject: [PATCH 013/103] tweaks --- code/_onclick/click.dm | 5 +---- code/controllers/subsystem/input.dm | 18 +++++++++--------- code/modules/mob/say.dm | 14 +++++++------- 3 files changed, 17 insertions(+), 20 deletions(-) diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index 99907af47a..738d72c6bf 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -69,9 +69,6 @@ return next_click = world.time + world.tick_lag - // Hide typing indicator if we click - clear_typing_indicator() - if(check_click_intercept(params,A)) return @@ -80,7 +77,7 @@ if(SEND_SIGNAL(src, COMSIG_MOB_CLICKON, A, params) & COMSIG_MOB_CANCEL_CLICKON) return - + var/list/modifiers = params2list(params) if(modifiers["shift"] && modifiers["middle"]) ShiftMiddleClickOn(A) diff --git a/code/controllers/subsystem/input.dm b/code/controllers/subsystem/input.dm index c6c03e2cbd..1f8a03b3e7 100644 --- a/code/controllers/subsystem/input.dm +++ b/code/controllers/subsystem/input.dm @@ -33,11 +33,11 @@ SUBSYSTEM_DEF(input) "Tab" = "\".winset \\\"input.focus=true?map.focus=true input.background-color=[COLOR_INPUT_DISABLED]:input.focus=true input.background-color=[COLOR_INPUT_ENABLED]\\\"\"", "O" = "ooc", "Ctrl+O" = "looc", - "T" = "Say", - "Ctrl+T" = "SayWithIndicator", + "T" = "say", + "Ctrl+T" = "say_indicator", "Y" = "whisper", - "M" = "Me", - "Ctrl+M" = "MeWithIndicator", + "M" = "me", + "Ctrl+M" = "me_indicator", "5" = "subtle", "Back" = "\".winset \\\"input.text=\\\"\\\"\\\"\"", // This makes it so backspace can remove default inputs "Any" = "\"KeyDown \[\[*\]\]\"", @@ -45,17 +45,17 @@ SUBSYSTEM_DEF(input) ), "old_default" = list( "Tab" = "\".winset \\\"mainwindow.macro=old_hotkeys map.focus=true input.background-color=[COLOR_INPUT_DISABLED]\\\"\"", - "Ctrl+T" = "Say", + "Ctrl+T" = "say", "Ctrl+O" = "ooc", ), "old_hotkeys" = list( "Tab" = "\".winset \\\"mainwindow.macro=old_default input.focus=true input.background-color=[COLOR_INPUT_ENABLED]\\\"\"", "O" = "ooc", "L" = "looc", - "T" = "Say", - "Ctrl+T" = "SayWithIndicator", - "M" = "Me", - "Ctrl+M" = "MeWithIndicator", + "T" = "say", + "Ctrl+T" = "say_indicator", + "M" = "me", + "Ctrl+M" = "me_indicator", "Back" = "\".winset \\\"input.text=\\\"\\\"\\\"\"", // This makes it so backspace can remove default inputs "Any" = "\"KeyDown \[\[*\]\]\"", "Any+UP" = "\"KeyUp \[\[*\]\]\"", diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index 9679417ed8..ac89fc2445 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -1,11 +1,11 @@ //Speech verbs. // the _keybind verbs uses "as text" versus "as text|null" to force a popup when pressed by a keybind. /mob/verb/say_typing_indicator() - set name = "SayWithIndicator" + set name = "say_indicator" set hidden = TRUE set category = "IC" display_typing_indicator() - var/message = input(usr, "", "Say") as text|null + var/message = input(usr, "", "say") as text|null // If they don't type anything just drop the message. clear_typing_indicator() // clear it immediately! if(!length(message)) @@ -13,7 +13,7 @@ return say_verb(message) /mob/verb/say_verb(message as text) - set name = "Say" + set name = "say" set category = "IC" if(!length(message)) return @@ -24,11 +24,11 @@ say(message) /mob/verb/me_typing_indicator() - set name = "MeWithIndicator" + set name = "me_indicator" set hidden = TRUE set category = "IC" display_typing_indicator() - var/message = input(usr, "", "Me") as message|null + var/message = input(usr, "", "me") as message|null // If they don't type anything just drop the message. clear_typing_indicator() // clear it immediately! if(!length(message)) @@ -36,9 +36,8 @@ return me_verb(message) /mob/verb/me_verb(message as message) - set name = "Me" + set name = "me" set category = "IC" - clear_typing_indicator() // clear it immediately! if(!length(message)) return if(GLOB.say_disabled) //This is here to try to identify lag problems @@ -46,6 +45,7 @@ return message = trim(copytext_char(sanitize(message), 1, MAX_MESSAGE_LEN)) + clear_typing_indicator() // clear it immediately! usr.emote("me",1,message,TRUE) From 47b97629db020ae1d85c321265226d12642e5c81 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Fri, 1 May 2020 04:30:44 -0700 Subject: [PATCH 014/103] Update mobs.dm --- code/__DEFINES/mobs.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 38eb3cc533..bcd00e174c 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -290,7 +290,7 @@ #define PULL_PRONE_SLOWDOWN 0.6 -#define TYPING_INDICATOR_TIMEOUT 10 SECONDS +#define TYPING_INDICATOR_TIMEOUT 5 MINUTES #define FIREMAN_CARRY_SLOWDOWN 0 #define PIGGYBACK_CARRY_SLOWDOWN 1 From 77848bd90f6f8b50b0370a82cc6b412319f06da3 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Fri, 8 May 2020 04:30:51 -0700 Subject: [PATCH 015/103] tgs folder --- code/modules/tgs/core/core.dm | 17 +- code/modules/tgs/core/datum.dm | 2 +- code/modules/tgs/core/tgs_version.dm | 14 +- code/modules/tgs/includes.dm | 34 +++ code/modules/tgs/v3210/api.dm | 8 +- code/modules/tgs/v3210/commands.dm | 32 +-- code/modules/tgs/v4/api.dm | 2 +- code/modules/tgs/v4/commands.dm | 30 +-- code/modules/tgs/v5/_defines.dm | 121 +++++++++ code/modules/tgs/v5/api.dm | 352 +++++++++++++++++++++++++++ code/modules/tgs/v5/commands.dm | 68 ++++++ code/modules/tgs/v5/undef.dm | 121 +++++++++ 12 files changed, 756 insertions(+), 45 deletions(-) create mode 100644 code/modules/tgs/v5/_defines.dm create mode 100644 code/modules/tgs/v5/api.dm create mode 100644 code/modules/tgs/v5/commands.dm create mode 100644 code/modules/tgs/v5/undef.dm diff --git a/code/modules/tgs/core/core.dm b/code/modules/tgs/core/core.dm index 70252cfb49..144f33926f 100644 --- a/code/modules/tgs/core/core.dm +++ b/code/modules/tgs/core/core.dm @@ -22,17 +22,19 @@ #ifndef TGS_V3_API TGS_ERROR_LOG("Detected V3 API but TGS_V3_API isn't defined!") #else - switch(version.major) + switch(version.minor) if(2) api_datum = /datum/tgs_api/v3210 #endif if(4) - switch(version.major) + switch(version.minor) if(0) api_datum = /datum/tgs_api/v4 + if(5) + api_datum = /datum/tgs_api/v5 var/datum/tgs_version/max_api_version = TgsMaximumAPIVersion(); - if(version.suite != null && version.major != null && version.minor != null && version.patch != null && version.deprefixed_parameter > max_api_version.deprefixed_parameter) + if(version.suite != null && version.minor != null && version.patch != null && version.deprecated_patch != null && version.deprefixed_parameter > max_api_version.deprefixed_parameter) TGS_ERROR_LOG("Detected unknown API version! Defaulting to latest. Update the DMAPI to fix this problem.") api_datum = /datum/tgs_api/latest @@ -51,10 +53,10 @@ TGS_ERROR_LOG("Failed to activate API!") /world/TgsMaximumAPIVersion() - return new /datum/tgs_version("4.0.x.x") + return new /datum/tgs_version("5.x.x") /world/TgsMinimumAPIVersion() - return new /datum/tgs_version("3.2.0.0") + return new /datum/tgs_version("3.2.x") /world/TgsInitializationComplete() var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) @@ -88,6 +90,11 @@ if(api) return api.version +/world/TgsApiVersion() + var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) + if(api) + return api.ApiVersion() + /world/TgsInstanceName() var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) if(api) diff --git a/code/modules/tgs/core/datum.dm b/code/modules/tgs/core/datum.dm index fb2508059a..3adecbb556 100644 --- a/code/modules/tgs/core/datum.dm +++ b/code/modules/tgs/core/datum.dm @@ -8,7 +8,7 @@ TGS_DEFINE_AND_SET_GLOBAL(tgs, null) src.version = version /datum/tgs_api/latest - parent_type = /datum/tgs_api/v4 + parent_type = /datum/tgs_api/v5 TGS_PROTECT_DATUM(/datum/tgs_api) diff --git a/code/modules/tgs/core/tgs_version.dm b/code/modules/tgs/core/tgs_version.dm index b97745611f..a5dae1241a 100644 --- a/code/modules/tgs/core/tgs_version.dm +++ b/code/modules/tgs/core/tgs_version.dm @@ -5,11 +5,11 @@ suite = text2num(version_bits[1]) if(version_bits.len > 1) - major = text2num(version_bits[2]) + minor = text2num(version_bits[2]) if(version_bits.len > 2) - minor = text2num(version_bits[3]) + patch = text2num(version_bits[3]) if(version_bits.len == 4) - patch = text2num(version_bits[4]) + deprecated_patch = text2num(version_bits[4]) /datum/tgs_version/proc/Valid(allow_wildcards = FALSE) if(suite == null) @@ -19,4 +19,10 @@ return !Wildcard() /datum/tgs_version/Wildcard() - return major == null || minor == null || patch == null + return minor == null || patch == null + +/datum/tgs_version/Equals(datum/tgs_version/other_version) + if(!istype(other_version)) + return FALSE + + return suite == other_version.suite && minor == other_version.minor && patch == other_version.patch && deprecated_patch == other_version.deprecated_patch diff --git a/code/modules/tgs/includes.dm b/code/modules/tgs/includes.dm index 247f1fda5d..b3c1728f34 100644 --- a/code/modules/tgs/includes.dm +++ b/code/modules/tgs/includes.dm @@ -2,9 +2,43 @@ #include "core\core.dm" #include "core\datum.dm" #include "core\tgs_version.dm" + #ifdef TGS_V3_API #include "v3210\api.dm" #include "v3210\commands.dm" #endif + #include "v4\api.dm" #include "v4\commands.dm" + +#include "v5\_defines.dm" +#include "v5\api.dm" +#include "v5\commands.dm" +#include "v5\undef.dm" + +/* +The MIT License + +Copyright (c) 2017 Jordan Brown + +Permission is hereby granted, free of charge, +to any person obtaining a copy of this software and +associated documentation files (the "Software"), to +deal in the Software without restriction, including +without limitation the rights to use, copy, modify, +merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom +the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ diff --git a/code/modules/tgs/v3210/api.dm b/code/modules/tgs/v3210/api.dm index c536995b04..5327b9276b 100644 --- a/code/modules/tgs/v3210/api.dm +++ b/code/modules/tgs/v3210/api.dm @@ -39,7 +39,7 @@ var/warned_custom_commands = FALSE /datum/tgs_api/v3210/ApiVersion() - return "3.2.1.0" + return new /datum/tgs_version("3.2.1.0") /datum/tgs_api/v3210/proc/trim_left(text) for (var/i = 1 to length(text)) @@ -76,7 +76,8 @@ TGS_ERROR_LOG("This API version is only supported on Windows. Not running on Windows. Aborting initialization!") return ListServiceCustomCommands(TRUE) - ExportService("[SERVICE_REQUEST_API_VERSION] [ApiVersion()]", TRUE) + var/datum/tgs_version/api_version = ApiVersion() + ExportService("[SERVICE_REQUEST_API_VERSION] [api_version.deprefixed_parameter]", TRUE) return TRUE //nothing to do for v3 @@ -166,7 +167,8 @@ /datum/tgs_api/v3210/Revision() if(!warned_revison) - TGS_ERROR_LOG("Use of TgsRevision on [ApiVersion()] origin_commit only points to master!") + var/datum/tgs_version/api_version = ApiVersion() + TGS_ERROR_LOG("Use of TgsRevision on [api_version.deprefixed_parameter] origin_commit only points to master!") warned_revison = TRUE var/datum/tgs_revision_information/ri = new ri.commit = commit diff --git a/code/modules/tgs/v3210/commands.dm b/code/modules/tgs/v3210/commands.dm index e5bc6f4895..5046631981 100644 --- a/code/modules/tgs/v3210/commands.dm +++ b/code/modules/tgs/v3210/commands.dm @@ -19,7 +19,7 @@ TGS_ERROR_LOG("Custom command [command_name] can't be used as it is empty or contains illegal characters!") warned_command_names[command_name] = TRUE continue - + if(command_name_types[command_name]) if(warnings_only) TGS_ERROR_LOG("Custom commands [command_name_types[command_name]] and [stc] have the same name, only [command_name_types[command_name]] will be available!") @@ -55,24 +55,24 @@ The MIT License Copyright (c) 2017 Jordan Brown -Permission is hereby granted, free of charge, -to any person obtaining a copy of this software and -associated documentation files (the "Software"), to -deal in the Software without restriction, including -without limitation the rights to use, copy, modify, -merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom -the Software is furnished to do so, +Permission is hereby granted, free of charge, +to any person obtaining a copy of this software and +associated documentation files (the "Software"), to +deal in the Software without restriction, including +without limitation the rights to use, copy, modify, +merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR -ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ diff --git a/code/modules/tgs/v4/api.dm b/code/modules/tgs/v4/api.dm index b61cddbeba..5c98a1a7a7 100644 --- a/code/modules/tgs/v4/api.dm +++ b/code/modules/tgs/v4/api.dm @@ -49,7 +49,7 @@ var/list/last_interop_response /datum/tgs_api/v4/ApiVersion() - return "4.0.0.0" + return new /datum/tgs_version("4.0.0.0") /datum/tgs_api/v4/OnWorldNew(datum/tgs_event_handler/event_handler, minimum_required_security_level) json_path = world.params[TGS4_PARAM_INFO_JSON] diff --git a/code/modules/tgs/v4/commands.dm b/code/modules/tgs/v4/commands.dm index af21a86fb6..1d9951bc04 100644 --- a/code/modules/tgs/v4/commands.dm +++ b/code/modules/tgs/v4/commands.dm @@ -46,24 +46,24 @@ The MIT License Copyright (c) 2017 Jordan Brown -Permission is hereby granted, free of charge, -to any person obtaining a copy of this software and -associated documentation files (the "Software"), to -deal in the Software without restriction, including -without limitation the rights to use, copy, modify, -merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom -the Software is furnished to do so, +Permission is hereby granted, free of charge, +to any person obtaining a copy of this software and +associated documentation files (the "Software"), to +deal in the Software without restriction, including +without limitation the rights to use, copy, modify, +merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR -ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ diff --git a/code/modules/tgs/v5/_defines.dm b/code/modules/tgs/v5/_defines.dm new file mode 100644 index 0000000000..1117a1df50 --- /dev/null +++ b/code/modules/tgs/v5/_defines.dm @@ -0,0 +1,121 @@ +#define DMAPI5_PARAM_SERVER_PORT "tgs_port" +#define DMAPI5_PARAM_ACCESS_IDENTIFIER "tgs_key" + +#define DMAPI5_BRIDGE_DATA "data" +#define DMAPI5_TOPIC_DATA "tgs_data" + +#define DMAPI5_BRIDGE_COMMAND_PORT_UPDATE 0 +#define DMAPI5_BRIDGE_COMMAND_STARTUP 1 +#define DMAPI5_BRIDGE_COMMAND_PRIME 2 +#define DMAPI5_BRIDGE_COMMAND_REBOOT 3 +#define DMAPI5_BRIDGE_COMMAND_KILL 4 +#define DMAPI5_BRIDGE_COMMAND_CHAT_SEND 5 + +#define DMAPI5_PARAMETER_ACCESS_IDENTIFIER "accessIdentifier" +#define DMAPI5_RESPONSE_ERROR_MESSAGE "errorMessage" + +#define DMAPI5_BRIDGE_PARAMETER_COMMAND_TYPE "commandType" +#define DMAPI5_BRIDGE_PARAMETER_CURRENT_PORT "currentPort" +#define DMAPI5_BRIDGE_PARAMETER_VERSION "version" +#define DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE "chatMessage" +#define DMAPI5_BRIDGE_PARAMETER_CUSTOM_COMMANDS "customCommands" +#define DMAPI5_BRIDGE_PARAMETER_MINIMUM_SECURITY_LEVEL "minimumSecurityLevel" + +#define DMAPI5_BRIDGE_RESPONSE_NEW_PORT "newPort" +#define DMAPI5_BRIDGE_RESPONSE_RUNTIME_INFORMATION "runtimeInformation" + +#define DMAPI5_CHAT_MESSAGE_TEXT "text" +#define DMAPI5_CHAT_MESSAGE_CHANNEL_IDS "channelIds" + +#define DMAPI5_RUNTIME_INFORMATION_ACCESS_IDENTIFIER "accessIdentifier" +#define DMAPI5_RUNTIME_INFORMATION_SERVER_VERSION "serverVersion" +#define DMAPI5_RUNTIME_INFORMATION_SERVER_PORT "serverPort" +#define DMAPI5_RUNTIME_INFORMATION_API_VALIDATE_ONLY "apiValidateOnly" +#define DMAPI5_RUNTIME_INFORMATION_INSTANCE_NAME "instanceName" +#define DMAPI5_RUNTIME_INFORMATION_REVISION "revision" +#define DMAPI5_RUNTIME_INFORMATION_TEST_MERGES "testMerges" +#define DMAPI5_RUNTIME_INFORMATION_SECURITY_LEVEL "securityLevel" + +#define DMAPI5_CHAT_UPDATE_CHANNELS "channels" + +#define DMAPI5_TEST_MERGE_TIME_MERGED "timeMerged" +#define DMAPI5_TEST_MERGE_REVISION "revision" +#define DMAPI5_TEST_MERGE_TITLE_AT_MERGE "titleAtMerge" +#define DMAPI5_TEST_MERGE_BODY_AT_MERGE "bodyAtMerge" +#define DMAPI5_TEST_MERGE_URL "url" +#define DMAPI5_TEST_MERGE_AUTHOR "author" +#define DMAPI5_TEST_MERGE_NUMBER "number" +#define DMAPI5_TEST_MERGE_PULL_REQUEST_REVISION "pullRequestRevision" +#define DMAPI5_TEST_MERGE_COMMENT "comment" + +#define DMAPI5_CHAT_COMMAND_NAME "name" +#define DMAPI5_CHAT_COMMAND_PARAMS "params" +#define DMAPI5_CHAT_COMMAND_USER "user" + +#define DMAPI5_EVENT_NOTIFICATION_TYPE "type" +#define DMAPI5_EVENT_NOTIFICATION_PARAMETERS "parameters" + +#define DMAPI5_TOPIC_COMMAND_CHAT_COMMAND 0 +#define DMAPI5_TOPIC_COMMAND_EVENT_NOTIFICATION 1 +#define DMAPI5_TOPIC_COMMAND_CHANGE_PORT 2 +#define DMAPI5_TOPIC_COMMAND_CHANGE_REBOOT_STATE 3 +#define DMAPI5_TOPIC_COMMAND_INSTANCE_RENAMED 4 +#define DMAPI5_TOPIC_COMMAND_CHAT_CHANNELS_UPDATE 4 +#define DMAPI5_TOPIC_COMMAND_SERVER_PORT_UPDATE 5 + +#define DMAPI5_TOPIC_PARAMETER_COMMAND_TYPE "commandType" +#define DMAPI5_TOPIC_PARAMETER_CHAT_COMMAND "chatCommand" +#define DMAPI5_TOPIC_PARAMETER_EVENT_NOTIFICATION "eventNotification" +#define DMAPI5_TOPIC_PARAMETER_NEW_PORT "newPort" +#define DMAPI5_TOPIC_PARAMETER_NEW_REBOOT_STATE "newRebootState" +#define DMAPI5_TOPIC_PARAMETER_NEW_INSTANCE_NAME "newInstanceName" +#define DMAPI5_TOPIC_PARAMETER_CHAT_UPDATE "chatUpdate" + +#define DMAPI5_TOPIC_RESPONSE_COMMAND_RESPONSE_MESSAGE "commandResponseMessage" +#define DMAPI5_TOPIC_RESPONSE_CHAT_RESPONSES "chatResponses" + +#define DMAPI5_REVISION_INFORMATION_COMMIT_SHA "commitSha" +#define DMAPI5_REVISION_INFORMATION_ORIGIN_COMMIT_SHA "originCommitSha" + +#define DMAPI5_CHAT_USER_ID "id" +#define DMAPI5_CHAT_USER_FRIENDLY_NAME "friendlyName" +#define DMAPI5_CHAT_USER_MENTION "mention" +#define DMAPI5_CHAT_USER_CHANNEL "channel" + +#define DMAPI5_CHAT_CHANNEL_ID "id" +#define DMAPI5_CHAT_CHANNEL_FRIENDLY_NAME "friendlyName" +#define DMAPI5_CHAT_CHANNEL_CONNECTION_NAME "connectionName" +#define DMAPI5_CHAT_CHANNEL_IS_ADMIN_CHANNEL "isAdminChannel" +#define DMAPI5_CHAT_CHANNEL_IS_PRIVATE_CHANNEL "isPrivateChannel" +#define DMAPI5_CHAT_CHANNEL_TAG "tag" + +#define DMAPI5_CUSTOM_CHAT_COMMAND_NAME "name" +#define DMAPI5_CUSTOM_CHAT_COMMAND_HELP_TEXT "helpText" +#define DMAPI5_CUSTOM_CHAT_COMMAND_ADMIN_ONLY "adminOnly" + +/* +The MIT License + +Copyright (c) 2020 Jordan Brown + +Permission is hereby granted, free of charge, +to any person obtaining a copy of this software and +associated documentation files (the "Software"), to +deal in the Software without restriction, including +without limitation the rights to use, copy, modify, +merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom +the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ diff --git a/code/modules/tgs/v5/api.dm b/code/modules/tgs/v5/api.dm new file mode 100644 index 0000000000..32f80c0ae4 --- /dev/null +++ b/code/modules/tgs/v5/api.dm @@ -0,0 +1,352 @@ +/datum/tgs_api/v5 + var/server_port + var/access_identifier + + var/instance_name + var/security_level + + var/reboot_mode = TGS_REBOOT_MODE_NORMAL + + var/list/intercepted_message_queue + + var/list/custom_commands + + var/list/test_merges + var/datum/tgs_revision_information/revision + var/list/chat_channels + + var/datum/tgs_event_handler/event_handler + +/datum/tgs_api/v5/ApiVersion() + return new /datum/tgs_version("5.0.0") + +/datum/tgs_api/v5/OnWorldNew(datum/tgs_event_handler/event_handler, minimum_required_security_level) + src.event_handler = event_handler + + server_port = world.params[DMAPI5_PARAM_SERVER_PORT] + access_identifier = world.params[DMAPI5_PARAM_ACCESS_IDENTIFIER] + + var/datum/tgs_version/api_version = ApiVersion() + var/list/bridge_response = Bridge(DMAPI5_BRIDGE_COMMAND_STARTUP, list(DMAPI5_BRIDGE_PARAMETER_MINIMUM_SECURITY_LEVEL = minimum_required_security_level, DMAPI5_BRIDGE_PARAMETER_VERSION = api_version.raw_parameter, DMAPI5_BRIDGE_PARAMETER_CUSTOM_COMMANDS = ListCustomCommands())) + if(!istype(bridge_response)) + TGS_ERROR_LOG("Failed initial bridge request!") + return FALSE + + var/list/runtime_information = bridge_response[DMAPI5_BRIDGE_RESPONSE_RUNTIME_INFORMATION] + if(!istype(runtime_information)) + TGS_ERROR_LOG("Failed to decode runtime information from bridge response: [json_encode(bridge_response)]!") + return FALSE + + if(runtime_information[DMAPI5_RUNTIME_INFORMATION_API_VALIDATE_ONLY]) + TGS_INFO_LOG("DMAPI validation, exiting...") + del(world) + + security_level = runtime_information[DMAPI5_RUNTIME_INFORMATION_SECURITY_LEVEL] + instance_name = runtime_information[DMAPI5_RUNTIME_INFORMATION_INSTANCE_NAME] + version = new /datum/tgs_version(runtime_information[DMAPI5_RUNTIME_INFORMATION_SERVER_VERSION]) + + var/list/revisionData = runtime_information[DMAPI5_RUNTIME_INFORMATION_REVISION] + if(istype(revisionData)) + revision = new + revision.commit = revisionData[DMAPI5_REVISION_INFORMATION_COMMIT_SHA] + revision.origin_commit = revisionData[DMAPI5_REVISION_INFORMATION_ORIGIN_COMMIT_SHA] + else + TGS_ERROR_LOG("Failed to decode [DMAPI5_RUNTIME_INFORMATION_REVISION] from runtime information!") + + test_merges = list() + var/list/test_merge_json = runtime_information[DMAPI5_RUNTIME_INFORMATION_TEST_MERGES] + if(istype(test_merge_json)) + for(var/entry in test_merge_json) + var/datum/tgs_revision_information/test_merge/tm = new + tm.number = entry[DMAPI5_TEST_MERGE_NUMBER] + + var/list/revInfo = entry[DMAPI5_TEST_MERGE_REVISION] + if(revInfo) + tm.commit = revisionData[DMAPI5_REVISION_INFORMATION_COMMIT_SHA] + tm.origin_commit = revisionData[DMAPI5_REVISION_INFORMATION_ORIGIN_COMMIT_SHA] + else + TGS_WARNING_LOG("Failed to decode [DMAPI5_TEST_MERGE_REVISION] from test merge #[tm.number]!") + + tm.time_merged = text2num(entry[DMAPI5_TEST_MERGE_TIME_MERGED]) + tm.title = entry[DMAPI5_TEST_MERGE_TITLE_AT_MERGE] + tm.body = entry[DMAPI5_TEST_MERGE_BODY_AT_MERGE] + tm.url = entry[DMAPI5_TEST_MERGE_URL] + tm.author = entry[DMAPI5_TEST_MERGE_AUTHOR] + tm.pull_request_commit = entry[DMAPI5_TEST_MERGE_PULL_REQUEST_REVISION] + tm.comment = entry[DMAPI5_TEST_MERGE_COMMENT] + + test_merges += tm + else + TGS_WARNING_LOG("Failed to decode [DMAPI5_RUNTIME_INFORMATION_TEST_MERGES] from runtime information!") + + chat_channels = list() + DecodeChannels(runtime_information) + + return TRUE + +/datum/tgs_api/v5/OnInitializationComplete() + Bridge(DMAPI5_BRIDGE_COMMAND_PRIME) + + var/tgs4_secret_sleep_offline_sauce = 29051994 + var/old_sleep_offline = world.sleep_offline + world.sleep_offline = tgs4_secret_sleep_offline_sauce + sleep(1) + if(world.sleep_offline == tgs4_secret_sleep_offline_sauce) //if not someone changed it + world.sleep_offline = old_sleep_offline + +/datum/tgs_api/v5/proc/TopicResponse(error_message = null) + var/list/response = list() + response[DMAPI5_RESPONSE_ERROR_MESSAGE] = error_message + + return json_encode(response) + +/datum/tgs_api/v5/OnTopic(T) + var/list/params = params2list(T) + var/json = params[DMAPI5_TOPIC_DATA] + if(!json) + return FALSE //continue world/Topic + + var/list/topic_parameters = json_decode(json) + if(!topic_parameters) + return TopicResponse("Invalid topic parameters json!"); + + var/their_sCK = topic_parameters[DMAPI5_PARAMETER_ACCESS_IDENTIFIER] + if(their_sCK != access_identifier) + return TopicResponse("Failed to decode [DMAPI5_PARAMETER_ACCESS_IDENTIFIER] from: [json]!"); + + var/command = topic_parameters[DMAPI5_TOPIC_PARAMETER_COMMAND_TYPE] + if(!isnum(command)) + return TopicResponse("Failed to decode [DMAPI5_TOPIC_PARAMETER_COMMAND_TYPE] from: [json]!") + + switch(command) + if(DMAPI5_TOPIC_COMMAND_CHAT_COMMAND) + var/result = HandleCustomCommand(topic_parameters[DMAPI5_TOPIC_PARAMETER_CHAT_COMMAND]) + if(!result) + result = TopicResponse("Error running chat command!") + return result + if(DMAPI5_TOPIC_COMMAND_EVENT_NOTIFICATION) + intercepted_message_queue = list() + var/list/event_notification = topic_parameters[DMAPI5_TOPIC_PARAMETER_EVENT_NOTIFICATION] + if(!istype(event_notification)) + return TopicResponse("Invalid [DMAPI5_TOPIC_PARAMETER_EVENT_NOTIFICATION]!") + + var/event_type = event_notification[DMAPI5_EVENT_NOTIFICATION_TYPE] + if(!isnum(event_type)) + return TopicResponse("Invalid or missing [DMAPI5_EVENT_NOTIFICATION_TYPE]!") + + var/list/event_parameters = event_notification[DMAPI5_EVENT_NOTIFICATION_PARAMETERS] + if(event_parameters && !istype(event_parameters)) + return TopicResponse("Invalid or missing [DMAPI5_EVENT_NOTIFICATION_PARAMETERS]!") + + var/list/event_call = list(event_type) + if(event_parameters) + event_call += event_parameters + + if(event_handler != null) + event_handler.HandleEvent(arglist(event_call)) + + var/list/response = list() + response[DMAPI5_TOPIC_RESPONSE_CHAT_RESPONSES] = intercepted_message_queue + intercepted_message_queue = null + return json_encode(response) + if(DMAPI5_TOPIC_COMMAND_CHANGE_PORT) + var/new_port = topic_parameters[DMAPI5_TOPIC_PARAMETER_NEW_PORT] + if (!isnum(new_port) || !(new_port > 0)) + return TopicResponse("Invalid or missing [DMAPI5_TOPIC_PARAMETER_NEW_PORT]]") + + if(event_handler != null) + event_handler.HandleEvent(TGS_EVENT_PORT_SWAP, new_port) + + //the topic still completes, miraculously + //I honestly didn't believe byond could do it without exploding + if(!world.OpenPort(new_port)) + return TopicResponse("Port change failed!") + + return TopicResponse() + if(DMAPI5_TOPIC_COMMAND_CHANGE_REBOOT_STATE) + var/new_reboot_mode = topic_parameters[DMAPI5_TOPIC_PARAMETER_NEW_REBOOT_STATE] + if(!isnum(new_reboot_mode)) + return TopicResponse("Invalid or missing [DMAPI5_TOPIC_PARAMETER_NEW_REBOOT_STATE]!") + + if(event_handler != null) + event_handler.HandleEvent(TGS_EVENT_REBOOT_MODE_CHANGE, reboot_mode, new_reboot_mode) + + reboot_mode = new_reboot_mode + return TopicResponse() + if(DMAPI5_TOPIC_COMMAND_INSTANCE_RENAMED) + var/new_instance_name = topic_parameters[DMAPI5_TOPIC_PARAMETER_NEW_INSTANCE_NAME] + if(!istext(new_instance_name)) + return TopicResponse("Invalid or missing [DMAPI5_TOPIC_PARAMETER_NEW_INSTANCE_NAME]!") + + if(event_handler != null) + event_handler.HandleEvent(TGS_EVENT_INSTANCE_RENAMED, new_instance_name) + + instance_name = new_instance_name + return TopicResponse() + if(DMAPI5_TOPIC_COMMAND_CHAT_CHANNELS_UPDATE) + var/list/chat_update_json = topic_parameters[DMAPI5_TOPIC_PARAMETER_CHAT_UPDATE] + if(!istype(chat_update_json)) + return TopicResponse("Invalid or missing [DMAPI5_TOPIC_PARAMETER_CHAT_UPDATE]!") + + DecodeChannels(chat_update_json) + return TopicResponse() + if(DMAPI5_TOPIC_COMMAND_SERVER_PORT_UPDATE) + var/new_port = topic_parameters[DMAPI5_TOPIC_PARAMETER_NEW_PORT] + if (!isnum(new_port) || !(new_port > 0)) + return TopicResponse("Invalid or missing [DMAPI5_TOPIC_PARAMETER_NEW_PORT]]") + + server_port = new_port + return TopicResponse() + + return TopicResponse("Unknown command: [command]") + +/datum/tgs_api/v5/proc/Bridge(command, list/data) + if(!data) + data = list() + + data[DMAPI5_BRIDGE_PARAMETER_COMMAND_TYPE] = command + data[DMAPI5_PARAMETER_ACCESS_IDENTIFIER] = access_identifier + + var/json = json_encode(data) + var/encoded_json = url_encode(json) + + // This is an infinite sleep until we get a response + var/export_response = world.Export("http://127.0.0.1:[server_port]/Bridge?[DMAPI5_BRIDGE_DATA]=[encoded_json]") + if(!export_response) + TGS_ERROR_LOG("Failed export request: [json]") + return + + var/response_json = file2text(export_response["CONTENT"]) + if(!response_json) + TGS_ERROR_LOG("Failed export request, missing content!") + return + + var/list/bridge_response = json_decode(response_json) + if(!bridge_response) + TGS_ERROR_LOG("Failed export request, bad json: [response_json]") + return + + var/error = bridge_response[DMAPI5_RESPONSE_ERROR_MESSAGE] + if(error) + TGS_ERROR_LOG("Failed export request, bad request: [error]") + return + + return bridge_response + +/datum/tgs_api/v5/OnReboot() + var/list/result = Bridge(DMAPI5_BRIDGE_COMMAND_REBOOT) + if(!result) + return + + //okay so the standard TGS4 proceedure is: right before rebooting change the port to whatever was sent to us in the above json's data parameter + + var/port = result[DMAPI5_BRIDGE_RESPONSE_NEW_PORT] + if(!isnum(port)) + return //this is valid, server may just want use to reboot + + if(port == 0) + //to byond 0 means any port and "none" means close vOv + port = "none" + + if(!world.OpenPort(port)) + TGS_ERROR_LOG("Unable to set port to [port]!") + +/datum/tgs_api/v5/InstanceName() + return instance_name + +/datum/tgs_api/v5/TestMerges() + return test_merges + +/datum/tgs_api/v5/EndProcess() + Bridge(DMAPI5_BRIDGE_COMMAND_KILL) + +/datum/tgs_api/v5/Revision() + return revision + +/datum/tgs_api/v5/ChatBroadcast(message, list/channels) + if(!length(channels)) + channels = ChatChannelInfo() + + var/list/ids = list() + for(var/I in channels) + var/datum/tgs_chat_channel/channel = I + ids += channel.id + + message = list(DMAPI5_CHAT_MESSAGE_TEXT = message, DMAPI5_CHAT_MESSAGE_CHANNEL_IDS = ids) + if(intercepted_message_queue) + intercepted_message_queue += list(message) + else + Bridge(DMAPI5_BRIDGE_COMMAND_CHAT_SEND, list(DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE = message)) + +/datum/tgs_api/v5/ChatTargetedBroadcast(message, admin_only) + var/list/channels = list() + for(var/I in ChatChannelInfo()) + var/datum/tgs_chat_channel/channel = I + if (!channel.is_private_channel && ((channel.is_admin_channel && admin_only) || (!channel.is_admin_channel && !admin_only))) + channels += channel.id + message = list(DMAPI5_CHAT_MESSAGE_TEXT = message, DMAPI5_CHAT_MESSAGE_CHANNEL_IDS = channels) + if(intercepted_message_queue) + intercepted_message_queue += list(message) + else + Bridge(DMAPI5_BRIDGE_COMMAND_CHAT_SEND, list(DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE = message)) + +/datum/tgs_api/v5/ChatPrivateMessage(message, datum/tgs_chat_user/user) + message = list(DMAPI5_CHAT_MESSAGE_TEXT = message, DMAPI5_CHAT_MESSAGE_CHANNEL_IDS = list(user.channel.id)) + if(intercepted_message_queue) + intercepted_message_queue += list(message) + else + Bridge(DMAPI5_BRIDGE_COMMAND_CHAT_SEND, list(DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE = message)) + +/datum/tgs_api/v5/ChatChannelInfo() + return chat_channels + +/datum/tgs_api/v5/proc/DecodeChannels(chat_update_json) + var/list/chat_channels_json = chat_update_json[DMAPI5_CHAT_UPDATE_CHANNELS] + if(istype(chat_channels_json)) + chat_channels.Cut() + for(var/channel_json in chat_channels_json) + var/datum/tgs_chat_channel/channel = DecodeChannel(channel_json) + if(channel) + chat_channels += channel + else + TGS_WARNING_LOG("Failed to decode [DMAPI5_CHAT_UPDATE_CHANNELS] from channel update!") + +/datum/tgs_api/v5/proc/DecodeChannel(channel_json) + var/datum/tgs_chat_channel/channel = new + channel.id = channel_json[DMAPI5_CHAT_CHANNEL_ID] + channel.friendly_name = channel_json[DMAPI5_CHAT_CHANNEL_FRIENDLY_NAME] + channel.connection_name = channel_json[DMAPI5_CHAT_CHANNEL_CONNECTION_NAME] + channel.is_admin_channel = channel_json[DMAPI5_CHAT_CHANNEL_IS_ADMIN_CHANNEL] + channel.is_private_channel = channel_json[DMAPI5_CHAT_CHANNEL_IS_PRIVATE_CHANNEL] + channel.custom_tag = channel_json[DMAPI5_CHAT_CHANNEL_TAG] + return channel + +/datum/tgs_api/v5/SecurityLevel() + return security_level + +/* +The MIT License + +Copyright (c) 2020 Jordan Brown + +Permission is hereby granted, free of charge, +to any person obtaining a copy of this software and +associated documentation files (the "Software"), to +deal in the Software without restriction, including +without limitation the rights to use, copy, modify, +merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom +the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ diff --git a/code/modules/tgs/v5/commands.dm b/code/modules/tgs/v5/commands.dm new file mode 100644 index 0000000000..2775157656 --- /dev/null +++ b/code/modules/tgs/v5/commands.dm @@ -0,0 +1,68 @@ +/datum/tgs_api/v5/proc/ListCustomCommands() + var/results = list() + custom_commands = list() + for(var/I in typesof(/datum/tgs_chat_command) - /datum/tgs_chat_command) + var/datum/tgs_chat_command/stc = new I + var/command_name = stc.name + if(!command_name || findtext(command_name, " ") || findtext(command_name, "'") || findtext(command_name, "\"")) + TGS_WARNING_LOG("Custom command [command_name] ([I]) can't be used as it is empty or contains illegal characters!") + continue + + if(results[command_name]) + var/datum/other = custom_commands[command_name] + TGS_WARNING_LOG("Custom commands [other.type] and [I] have the same name (\"[command_name]\"), only [other.type] will be available!") + continue + results += list(list(DMAPI5_CUSTOM_CHAT_COMMAND_NAME = command_name, DMAPI5_CUSTOM_CHAT_COMMAND_HELP_TEXT = stc.help_text, DMAPI5_CUSTOM_CHAT_COMMAND_ADMIN_ONLY = stc.admin_only)) + custom_commands[command_name] = stc + + return results + +/datum/tgs_api/v5/proc/HandleCustomCommand(list/command_json) + var/command = command_json[DMAPI5_CHAT_COMMAND_NAME] + var/user = command_json[DMAPI5_CHAT_COMMAND_USER] + var/params = command_json[DMAPI5_CHAT_COMMAND_PARAMS] + + var/datum/tgs_chat_user/u = new + u.id = user[DMAPI5_CHAT_USER_ID] + u.friendly_name = user[DMAPI5_CHAT_USER_FRIENDLY_NAME] + u.mention = user[DMAPI5_CHAT_USER_MENTION] + u.channel = DecodeChannel(user[DMAPI5_CHAT_USER_CHANNEL]) + + var/datum/tgs_chat_command/sc = custom_commands[command] + if(sc) + var/text_response = sc.Run(u, params) + var/list/topic_response = list() + if(!istext(text_response)) + TGS_ERROR_LOG("Custom command [command] should return a string! Got: \"[text_response]\"") + text_response = null + topic_response[DMAPI5_TOPIC_RESPONSE_COMMAND_RESPONSE_MESSAGE] = text_response + return json_encode(topic_response) + return TopicResponse("Unknown custom chat command: [command]!") + +/* + +The MIT License + +Copyright (c) 2020 Jordan Brown + +Permission is hereby granted, free of charge, +to any person obtaining a copy of this software and +associated documentation files (the "Software"), to +deal in the Software without restriction, including +without limitation the rights to use, copy, modify, +merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom +the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ diff --git a/code/modules/tgs/v5/undef.dm b/code/modules/tgs/v5/undef.dm new file mode 100644 index 0000000000..72d673b9b1 --- /dev/null +++ b/code/modules/tgs/v5/undef.dm @@ -0,0 +1,121 @@ +#undef DMAPI5_PARAM_SERVER_PORT +#undef DMAPI5_PARAM_ACCESS_IDENTIFIER + +#undef DMAPI5_BRIDGE_DATA +#undef DMAPI5_TOPIC_DATA + +#undef DMAPI5_BRIDGE_COMMAND_PORT_UPDATE +#undef DMAPI5_BRIDGE_COMMAND_STARTUP +#undef DMAPI5_BRIDGE_COMMAND_PRIME +#undef DMAPI5_BRIDGE_COMMAND_REBOOT +#undef DMAPI5_BRIDGE_COMMAND_KILL +#undef DMAPI5_BRIDGE_COMMAND_CHAT_SEND + +#undef DMAPI5_PARAMETER_ACCESS_IDENTIFIER +#undef DMAPI5_RESPONSE_ERROR_MESSAGE + +#undef DMAPI5_BRIDGE_PARAMETER_COMMAND_TYPE +#undef DMAPI5_BRIDGE_PARAMETER_CURRENT_PORT +#undef DMAPI5_BRIDGE_PARAMETER_VERSION +#undef DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE +#undef DMAPI5_BRIDGE_PARAMETER_CUSTOM_COMMANDS +#undef DMAPI5_BRIDGE_PARAMETER_MINIMUM_SECURITY_LEVEL + +#undef DMAPI5_BRIDGE_RESPONSE_NEW_PORT +#undef DMAPI5_BRIDGE_RESPONSE_RUNTIME_INFORMATION + +#undef DMAPI5_CHAT_MESSAGE_TEXT +#undef DMAPI5_CHAT_MESSAGE_CHANNEL_IDS + +#undef DMAPI5_RUNTIME_INFORMATION_ACCESS_IDENTIFIER +#undef DMAPI5_RUNTIME_INFORMATION_SERVER_VERSION +#undef DMAPI5_RUNTIME_INFORMATION_SERVER_PORT +#undef DMAPI5_RUNTIME_INFORMATION_API_VALIDATE_ONLY +#undef DMAPI5_RUNTIME_INFORMATION_INSTANCE_NAME +#undef DMAPI5_RUNTIME_INFORMATION_REVISION +#undef DMAPI5_RUNTIME_INFORMATION_TEST_MERGES +#undef DMAPI5_RUNTIME_INFORMATION_SECURITY_LEVEL + +#undef DMAPI5_CHAT_UPDATE_CHANNELS + +#undef DMAPI5_TEST_MERGE_TIME_MERGED +#undef DMAPI5_TEST_MERGE_REVISION +#undef DMAPI5_TEST_MERGE_TITLE_AT_MERGE +#undef DMAPI5_TEST_MERGE_BODY_AT_MERGE +#undef DMAPI5_TEST_MERGE_URL +#undef DMAPI5_TEST_MERGE_AUTHOR +#undef DMAPI5_TEST_MERGE_NUMBER +#undef DMAPI5_TEST_MERGE_PULL_REQUEST_REVISION +#undef DMAPI5_TEST_MERGE_COMMENT + +#undef DMAPI5_CHAT_COMMAND_NAME +#undef DMAPI5_CHAT_COMMAND_PARAMS +#undef DMAPI5_CHAT_COMMAND_USER + +#undef DMAPI5_EVENT_NOTIFICATION_TYPE +#undef DMAPI5_EVENT_NOTIFICATION_PARAMETERS + +#undef DMAPI5_TOPIC_COMMAND_CHAT_COMMAND +#undef DMAPI5_TOPIC_COMMAND_EVENT_NOTIFICATION +#undef DMAPI5_TOPIC_COMMAND_CHANGE_PORT +#undef DMAPI5_TOPIC_COMMAND_CHANGE_REBOOT_STATE +#undef DMAPI5_TOPIC_COMMAND_INSTANCE_RENAMED +#undef DMAPI5_TOPIC_COMMAND_CHAT_CHANNELS_UPDATE +#undef DMAPI5_TOPIC_COMMAND_SERVER_PORT_UPDATE + +#undef DMAPI5_TOPIC_PARAMETER_COMMAND_TYPE +#undef DMAPI5_TOPIC_PARAMETER_CHAT_COMMAND +#undef DMAPI5_TOPIC_PARAMETER_EVENT_NOTIFICATION +#undef DMAPI5_TOPIC_PARAMETER_NEW_PORT +#undef DMAPI5_TOPIC_PARAMETER_NEW_REBOOT_STATE +#undef DMAPI5_TOPIC_PARAMETER_NEW_INSTANCE_NAME +#undef DMAPI5_TOPIC_PARAMETER_CHAT_UPDATE + +#undef DMAPI5_TOPIC_RESPONSE_COMMAND_RESPONSE_MESSAGE +#undef DMAPI5_TOPIC_RESPONSE_CHAT_RESPONSES + +#undef DMAPI5_REVISION_INFORMATION_COMMIT_SHA +#undef DMAPI5_REVISION_INFORMATION_ORIGIN_COMMIT_SHA + +#undef DMAPI5_CHAT_USER_ID +#undef DMAPI5_CHAT_USER_FRIENDLY_NAME +#undef DMAPI5_CHAT_USER_MENTION +#undef DMAPI5_CHAT_USER_CHANNEL + +#undef DMAPI5_CHAT_CHANNEL_ID +#undef DMAPI5_CHAT_CHANNEL_FRIENDLY_NAME +#undef DMAPI5_CHAT_CHANNEL_CONNECTION_NAME +#undef DMAPI5_CHAT_CHANNEL_IS_ADMIN_CHANNEL +#undef DMAPI5_CHAT_CHANNEL_IS_PRIVATE_CHANNEL +#undef DMAPI5_CHAT_CHANNEL_TAG + +#undef DMAPI5_CUSTOM_CHAT_COMMAND_NAME +#undef DMAPI5_CUSTOM_CHAT_COMMAND_HELP_TEXT +#undef DMAPI5_CUSTOM_CHAT_COMMAND_ADMIN_ONLY + +/* +The MIT License + +Copyright (c) 2020 Jordan Brown + +Permission is hereby granted, free of charge, +to any person obtaining a copy of this software and +associated documentation files (the "Software"), to +deal in the Software without restriction, including +without limitation the rights to use, copy, modify, +merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom +the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ From ee97ac81328e5408f7d238a9a57bffd8d473aeb8 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Fri, 8 May 2020 04:32:57 -0700 Subject: [PATCH 016/103] ok --- code/__DEFINES/tgs.config.dm | 5 +++-- code/__DEFINES/tgs.dm | 39 +++++++++++++++++++++++++----------- 2 files changed, 30 insertions(+), 14 deletions(-) diff --git a/code/__DEFINES/tgs.config.dm b/code/__DEFINES/tgs.config.dm index 9f4f63a1fc..a2fcc7855a 100644 --- a/code/__DEFINES/tgs.config.dm +++ b/code/__DEFINES/tgs.config.dm @@ -4,8 +4,9 @@ #define TGS_READ_GLOBAL(Name) GLOB.##Name #define TGS_WRITE_GLOBAL(Name, Value) GLOB.##Name = ##Value #define TGS_WORLD_ANNOUNCE(message) to_chat(world, "[html_encode(##message)]") -#define TGS_INFO_LOG(message) log_world("TGS: Info: [##message]") -#define TGS_ERROR_LOG(message) log_world("TGS: Error: [##message]") +#define TGS_INFO_LOG(message) log_world("TGS Info: [##message]") +#define TGS_WARNING_LOG(message) log_world("TGS Warn: [##message]") +#define TGS_ERROR_LOG(message) log_world("TGS Error: [##message]") #define TGS_NOTIFY_ADMINS(event) message_admins(##event) #define TGS_CLIENT_COUNT GLOB.clients.len #define TGS_PROTECT_DATUM(Path) GENERAL_PROTECT_DATUM(##Path) diff --git a/code/__DEFINES/tgs.dm b/code/__DEFINES/tgs.dm index dcccfc9295..4e152ad3cf 100644 --- a/code/__DEFINES/tgs.dm +++ b/code/__DEFINES/tgs.dm @@ -1,5 +1,7 @@ //tgstation-server DMAPI +#define TGS_DMAPI_VERSION "5.0.0" + //All functions and datums outside this document are subject to change with any version and should not be relied on //CONFIGURATION @@ -17,7 +19,6 @@ //Required interfaces (fill in with your codebase equivalent): //create a global variable named `Name` and set it to `Value` -//These globals must not be modifiable from anywhere outside of the server tools #define TGS_DEFINE_AND_SET_GLOBAL(Name, Value) //Read the value in the global variable `Name` @@ -26,10 +27,10 @@ //Set the value in the global variable `Name` to `Value` #define TGS_WRITE_GLOBAL(Name, Value) -//Disallow ANYONE from reflecting a given `path`, security measure to prevent in-game priveledge escalation +//Disallow ANYONE from reflecting a given `path`, security measure to prevent in-game use of DD -> TGS capabilities #define TGS_PROTECT_DATUM(Path) -//display an announcement `message` from the server to all players +//Display an announcement `message` from the server to all players #define TGS_WORLD_ANNOUNCE(message) //Notify current in-game administrators of a string `event` @@ -38,6 +39,9 @@ //Write an info `message` to a server log #define TGS_INFO_LOG(message) +//Write an warning `message` to a server log +#define TGS_WARNING_LOG(message) + //Write an error `message` to a server log #define TGS_ERROR_LOG(message) @@ -48,10 +52,11 @@ //EVENT CODES -#define TGS_EVENT_PORT_SWAP -2 //before a port change is about to happen, extra parameter is new port -#define TGS_EVENT_REBOOT_MODE_CHANGE -1 //before a reboot mode change, extras parameters are the current and new reboot mode enums +#define TGS_EVENT_REBOOT_MODE_CHANGE -1 //Before a reboot mode change, extras parameters are the current and new reboot mode enums +#define TGS_EVENT_PORT_SWAP -2 //Before a port change is about to happen, extra parameters is new port +#define TGS_EVENT_INSTANCE_RENAMED -3 //Before the instance is renamed, extra prameter is the new name -//See the descriptions for these codes here: https://github.com/tgstation/tgstation-server/blob/master/src/Tgstation.Server.Host/Components/EventType.cs +//See the descriptions for the parameters of these codes here: https://github.com/tgstation/tgstation-server/blob/master/src/Tgstation.Server.Host/Components/EventType.cs #define TGS_EVENT_REPO_RESET_ORIGIN 0 #define TGS_EVENT_REPO_CHECKOUT 1 #define TGS_EVENT_REPO_FETCH 2 @@ -63,9 +68,9 @@ #define TGS_EVENT_COMPILE_START 8 #define TGS_EVENT_COMPILE_CANCELLED 9 #define TGS_EVENT_COMPILE_FAILURE 10 -#define TGS_EVENT_COMPILE_COMPLETE 11 +#define TGS_EVENT_COMPILE_COMPLETE 11 // Note, this event fires before the new .dmb is loaded into the watchdog. Consider using the TGS_EVENT_DEPLOYMENT_COMPLETE instead #define TGS_EVENT_INSTANCE_AUTO_UPDATE_START 12 -#define TGS_EVENT_REPO_MERGE_CONFLICT 13 +#define TGS_EVENT_DEPLOYMENT_COMPLETE 13 //OTHER ENUMS @@ -80,6 +85,7 @@ //REQUIRED HOOKS //Call this somewhere in /world/New() that is always run +//IMPORTANT: This function may sleep! Other TGS functions will not succeed until it completes //event_handler: optional user defined event handler. The default behaviour is to broadcast the event in english to all connected admin channels //minimum_required_security_level: The minimum required security level to run the game in which the DMAPI is integrated /world/proc/TgsNew(datum/tgs_event_handler/event_handler, minimum_required_security_level = TGS_SECURITY_ULTRASAFE) @@ -109,12 +115,12 @@ //represents a version of tgstation-server /datum/tgs_version - var/suite //The suite version, can be >=3 + var/suite //The suite/major version, can be >=3 //this group of variables can be null to represent a wild card - var/major //The major version var/minor //The minor version var/patch //The patch version + var/deprecated_patch //The legacy version var/raw_parameter //The unparsed parameter var/deprefixed_parameter //The version only bit of raw_parameter @@ -123,6 +129,10 @@ /datum/tgs_version/proc/Wildcard() return +//if the tgs_version equals some other_version +/datum/tgs_version/proc/Equals(datum/tgs_version/other_version) + return + //represents a merge of a GitHub pull request /datum/tgs_revision_information/test_merge var/number //pull request number @@ -179,7 +189,7 @@ return //Returns TRUE if the world was launched under the server tools and the API matches, FALSE otherwise -//No function below this succeeds if it returns FALSE +//No function below this succeeds if it returns FALSE or if TgsNew() has yet to be called /world/proc/TgsAvailable() return @@ -187,6 +197,11 @@ /world/proc/TgsVersion() return +//Gets the current /datum/tgs_version of the DMAPI being used +/world/proc/TgsApiVersion() + return + +//Gets the name of the TGS instance running the game /world/proc/TgsInstanceName() return @@ -255,4 +270,4 @@ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ \ No newline at end of file +*/ From 300331ccb73e05189da0a6e1e163f12aa6406d32 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Sun, 10 May 2020 02:11:48 +0200 Subject: [PATCH 017/103] Skill modifiers datum WIP. --- code/__DEFINES/dcs/signals.dm | 21 --- code/__DEFINES/skills/defines.dm | 27 ++- code/__DEFINES/skills/helpers.dm | 22 +++ code/__HELPERS/_lists.dm | 1 + code/_onclick/item_attack.dm | 10 +- code/controllers/subsystem/moods.dm | 4 - code/datums/components/mood.dm | 97 +++++----- code/datums/mind.dm | 2 +- code/datums/skills/_check_skills.dm | 2 +- code/datums/skills/_skill.dm | 20 +- code/datums/skills/_skill_holder.dm | 106 ++++++----- code/datums/skills/_skill_modifier.dm | 176 ++++++++++++++++++ code/datums/skills/modifiers/job.dm | 34 ++++ code/datums/skills/modifiers/mood.dm | 8 + code/datums/wires/_wires.dm | 6 +- code/game/objects/items.dm | 4 +- code/modules/admin/verbs/SDQL2/SDQL_2.dm | 2 - code/modules/jobs/job_types/_job.dm | 17 +- code/modules/jobs/job_types/ai.dm | 2 +- .../jobs/job_types/atmospheric_technician.dm | 3 +- code/modules/jobs/job_types/chemist.dm | 3 +- code/modules/jobs/job_types/chief_engineer.dm | 3 +- .../jobs/job_types/chief_medical_officer.dm | 3 +- code/modules/jobs/job_types/cyborg.dm | 2 +- code/modules/jobs/job_types/geneticist.dm | 2 +- code/modules/jobs/job_types/medical_doctor.dm | 3 +- code/modules/jobs/job_types/paramedic.dm | 3 +- code/modules/jobs/job_types/roboticist.dm | 4 +- .../jobs/job_types/station_engineer.dm | 3 +- code/modules/jobs/job_types/virologist.dm | 3 +- code/modules/surgery/surgery_step.dm | 4 +- tgstation.dme | 4 +- 32 files changed, 408 insertions(+), 193 deletions(-) delete mode 100644 code/controllers/subsystem/moods.dm create mode 100644 code/datums/skills/_skill_modifier.dm create mode 100644 code/datums/skills/modifiers/job.dm create mode 100644 code/datums/skills/modifiers/mood.dm diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index c74a8cdb05..8706e96562 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -185,27 +185,6 @@ #define COMSIG_MOB_SPELL_CAN_CAST "mob_spell_can_cast" //from base of /obj/effect/proc_holder/spell/can_cast(): (spell) -#define COMSIG_MOB_ACTION_SKILL_MOD "mob_action_skill_mod" //from base of /datum/skill_holder/action_skills_mod() : (proc args list, list/mod_values) - #define ACTION_SKILL_MOD_SKILL 1 //redundancy. - #define ACTION_SKILL_MOD_VALUE 2 - #define ACTION_SKILL_MOD_THRESHOLD 3 - #define ACTION_SKILL_MOD_IS_MULTI 4 - //other mod values, kept separate from the args - #define MOD_VALUES_SKILL_MOD 1 - -#define COMSIG_MOB_ITEM_ACTION_SKILLS_MOD "mob_item_action_skills_mod" //from base of /datum/skill_holder/item_action_skills_mod() : (proc args list, mod_values) - #define ITEM_SKILLS_MOD_ITEM 1 //redundancy - #define ITEM_SKILLS_MOD_VALUE 2 - #define ITEM_SKILLS_MOD_FLAGS 3 - #define ITEM_SKILLS_MOD_BAD_FLAGS 4 - #define ITEM_SKILLS_MOD_IS_MULTI 5 - //other mod values, kept separate from the args - #define MOD_VALUES_ITEM_SKILLS_SUM 1 - #define MOD_VALUES_ITEM_SKILLS_DIV 2 - #define MOD_VALUES_ITEM_SKILLS_CHECKED 3 - -#define COMSIG_MOB_SKILL_GET_AFFINITY "mob_skill_get_affinity" //from base of /datum/skill_holder/get_skill_affinity(): (skill_path, list/return_value) - // /mob/living signals #define COMSIG_LIVING_REGENERATE_LIMBS "living_regenerate_limbs" //from base of /mob/living/regenerate_limbs(): (noheal, excluded_limbs) #define COMSIG_LIVING_RESIST "living_resist" //from base of mob/living/resist() (/mob/living) diff --git a/code/__DEFINES/skills/defines.dm b/code/__DEFINES/skills/defines.dm index 73be86e128..9127b4e3dd 100644 --- a/code/__DEFINES/skills/defines.dm +++ b/code/__DEFINES/skills/defines.dm @@ -20,9 +20,7 @@ // Standard values for job starting skill affinities -#define STARTING_SKILL_AFFINITY_SURGERY_MEDICAL 1.2 - -#define STARTING_SKILL_AFFINITY_WIRING_ENGI_ROBO 1.2 +#define STARTING_SKILL_AFFINITY_DEF_JOB 1.2 // Standard values for skill gain (this is multiplied by affinity) @@ -75,3 +73,26 @@ #define DORF_SKILL_COMPETENT 3 #define DORF_SKILL_EXPERT 8 #define DORF_SKILL_MASTER 12 + +/// Skill modifier defines and flags. +#define MODIFIER_SKILL_VALUE (1<<0) +#define MODIFIER_SKILL_AFFINITY (1<<1) +#define MODIFIER_SKILL_LEVEL (1<<2) +///makes the skill modifier a multiplier, not an addendum. +#define MODIFIER_SKILL_MULT (1<<3) +///Sets the skill to the defined value if lower than that. Highly reccomended you don't use it with MODIFIER_SKILL_MULT. +#define MODIFIER_SKILL_VIRTUE (1<<4) +///Does the opposite of the above. combining both effectively results in the skill being locked to the specified value. +#define MODIFIER_SKILL_HANDICAP (1<<5) +///Makes it untransferred by mind.transfer_to() +#define MODIFIER_SKILL_BODYBOUND (1<<6) +///Adds the difference of the current value and the value stored at the time the modifier was added to the result. +#define MODIFIER_SKILL_ORIGIN_DIFF (1<<7) + +#define MODIFIER_TARGET_VALUE "value" +#define MODIFIER_TARGET_LEVEL "level" +#define MODIFIER_TARGET_AFFINITY "affinity" + +///Ascending priority defines. +#define MODIFIER_SKILL_PRIORITY_DEF 50 +#define MODIFIER_SKILL_PRIORITY_MAX 100 //max priority, meant for job/antag modifiers so they don't null out any debuff diff --git a/code/__DEFINES/skills/helpers.dm b/code/__DEFINES/skills/helpers.dm index 23669b3739..1a39dbd9e0 100644 --- a/code/__DEFINES/skills/helpers.dm +++ b/code/__DEFINES/skills/helpers.dm @@ -6,3 +6,25 @@ //More experience value getter macros #define GET_STANDARD_LVL(lvl) XP_LEVEL(STD_XP_LVL_UP, STD_XP_LVL_MULTI, lvl) #define GET_DORF_LVL(lvl) DORF_XP_LEVEL(DORF_XP_LVL_UP, DORF_XP_LVL_MULTI, lvl) + +#define IS_SKILL_VALUE_GREATER(path, existing, new_value) GLOB.skill_datums[path].is_value_greater(existing, new_value) + +#define SANITIZE_SKILL_VALUE(path, value) GLOB.skill_datums[path].sanitize_value(value) + +///Doesn't automatically round the value. +#define SANITIZE_SKILL_LEVEL(path, lvl) clamp(lvl, 0, GLOB.skill_datums[path].max_levels) + +/** + * A simple universal comsig for body bound skill modifiers. + * Technically they are still bound to the mind, but other signal procs will take care of adding and removing the modifier + * from/to new/old minds. + */ +#define ADD_SKILL_MODIFIER_BODY(mod, body) \ + mod.RegisterSignal(body, COMSIG_MOB_ON_NEW_MIND, /datum/skill_modifier.proc/on_mob_new_mind, TRUE) + +///Macro used when adding generic singleton skill modifiers. +#define ADD_SINGLETON_SKILL_MODIFIER(mind, path, id) \ + if(!GLOB.skill_modifiers[id]){\ + new path(id)\ + };\ + mind.add_skill_modifier(id ? "[path]&[id]" : path) \ No newline at end of file diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index ad977ec493..38c2439019 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -37,6 +37,7 @@ * TYPECONT: The typepath of the contents of the list * COMPARE: The object to compare against, usualy the same as INPUT * COMPARISON: The variable on the objects to compare + * COMPTYPE: How the current bin item to compare against COMPARE is fetched. By key or value. */ #define BINARY_INSERT(INPUT, LIST, TYPECONT, COMPARE, COMPARISON, COMPTYPE) \ do {\ diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index f0b38f994d..ccbfab6b43 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -118,11 +118,11 @@ bad_flag |= SKILL_COMBAT_MODE //blacklist combat skills. if(I.used_skills && user.mind) if(totitemdamage) - totitemdamage = user.mind.skill_holder.item_action_skills_mod(I, totitemdamage, I.skill_difficulty, SKILL_ATTACK_OBJ, bad_flag) + totitemdamage = user.mind.item_action_skills_mod(I, totitemdamage, I.skill_difficulty, SKILL_ATTACK_OBJ, bad_flag) for(var/skill in I.used_skills) if(!(I.used_skills[skill] & SKILL_TRAIN_ATTACK_OBJ)) continue - user.mind.skill_holder.auto_gain_experience(skill, I.skill_gain) + user.mind.auto_gain_experience(skill, I.skill_gain) if(totitemdamage) visible_message("[user] has hit [src] with [I]!", null, null, COMBAT_MESSAGE_RANGE) //only witnesses close by and the victim see a hit message. @@ -163,11 +163,11 @@ if(!user.mind || !I.used_skills) return if(.) - . = user.mind.skill_holder.item_action_skills_mod(I, ., I.skill_difficulty, SKILL_ATTACK_MOB, bad_flag) + . = user.mind.item_action_skills_mod(I, ., I.skill_difficulty, SKILL_ATTACK_MOB, bad_flag) for(var/skill in I.used_skills) if(!(I.used_skills[skill] & SKILL_TRAIN_ATTACK_MOB)) continue - user.mind.skill_holder.auto_gain_experience(skill, I.skill_gain) + user.mind.auto_gain_experience(skill, I.skill_gain) /mob/living/carbon/pre_attacked_by(obj/item/I, mob/living/user) . = ..() @@ -216,7 +216,7 @@ . *= STAM_COST_NO_COMBAT_MULT bad_flag |= SKILL_COMBAT_MODE if(used_skills && user.mind) - . = user.mind.skill_holder.item_action_skills_mod(src, ., skill_difficulty, flags, bad_flag, FALSE) + . = user.mind.item_action_skills_mod(src, ., skill_difficulty, flags, bad_flag, FALSE) /// How long this staggers for. 0 and negatives supported. /obj/item/proc/melee_stagger_duration(force_override) diff --git a/code/controllers/subsystem/moods.dm b/code/controllers/subsystem/moods.dm deleted file mode 100644 index f6b6ffcb40..0000000000 --- a/code/controllers/subsystem/moods.dm +++ /dev/null @@ -1,4 +0,0 @@ -PROCESSING_SUBSYSTEM_DEF(mood) - name = "Mood" - flags = SS_NO_INIT | SS_BACKGROUND - priority = 20 diff --git a/code/datums/components/mood.dm b/code/datums/components/mood.dm index 23a81716b8..6ce7842273 100644 --- a/code/datums/components/mood.dm +++ b/code/datums/components/mood.dm @@ -1,3 +1,4 @@ +#define ECSTATIC_SANITY_PEN -1 #define SLIGHT_INSANITY_PEN 1 #define MINOR_INSANITY_PEN 5 #define MAJOR_INSANITY_PEN 10 @@ -13,29 +14,39 @@ var/list/datum/mood_event/mood_events = list() var/insanity_effect = 0 //is the owner being punished for low mood? If so, how much? var/obj/screen/mood/screen_obj + var/datum/skill_modifier/bad_mood/malus + var/datum/skill_modifier/great_mood/bonus + var/static/malus_id = 0 + var/static/bonus_id = 0 /datum/component/mood/Initialize() if(!isliving(parent)) return COMPONENT_INCOMPATIBLE - START_PROCESSING(SSmood, src) + var/mob/living/owner = parent + if(owner.stat != DEAD) + START_PROCESSING(SSdcs, src) RegisterSignal(parent, COMSIG_ADD_MOOD_EVENT, .proc/add_event) RegisterSignal(parent, COMSIG_CLEAR_MOOD_EVENT, .proc/clear_event) RegisterSignal(parent, COMSIG_MODIFY_SANITY, .proc/modify_sanity) RegisterSignal(parent, COMSIG_LIVING_REVIVE, .proc/on_revive) RegisterSignal(parent, COMSIG_MOB_HUD_CREATED, .proc/modify_hud) - var/mob/living/owner = parent + RegisterSignal(parent, COMSIG_MOB_DEATH, .proc/stop_processing) + if(owner.hud_used) modify_hud() var/datum/hud/hud = owner.hud_used hud.show_hud(hud.hud_version) /datum/component/mood/Destroy() - STOP_PROCESSING(SSmood, src) + STOP_PROCESSING(SSdcs, src) unmodify_hud() return ..() +/datum/component/mood/proc/stop_processing() + STOP_PROCESSING(SSdcs, src) + /datum/component/mood/proc/print_mood(mob/user) var/msg = "*---------*\nYour current mood\n" msg += "My mental status: " //Long term @@ -127,7 +138,7 @@ else screen_obj.icon_state = "mood[mood_level]" -/datum/component/mood/process() //Called on SSmood process +/datum/component/mood/process() //Called on SSdcs process if(QDELETED(parent)) // workaround to an obnoxious sneaky periodical runtime. qdel(src) return @@ -167,7 +178,6 @@ else if(sanity > maximum && amount > sanity - 0.5) amount = sanity - 0.5 - var/old_sanity = sanity // Disturbed stops you from getting any more sane if(HAS_TRAIT(master, TRAIT_UNSTABLE)) sanity = min(amount,sanity) @@ -196,27 +206,41 @@ master.remove_movespeed_modifier(MOVESPEED_ID_SANITY) sanity_level = 2 if(SANITY_GREAT+1 to INFINITY) - setInsanityEffect(0) + setInsanityEffect(ECSTATIC_SANITY_PEN) //It's not a penalty but w/e master.remove_movespeed_modifier(MOVESPEED_ID_SANITY) sanity_level = 1 - if(old_sanity > 1 && sanity == 1) - RegisterSignal(master, COMSIG_MOB_SKILL_GET_AFFINITY, .proc/on_get_skill_affinity) - else if(old_sanity == 1 && sanity > 1) - UnregisterSignal(master, COMSIG_MOB_SKILL_GET_AFFINITY) - //update_mood_icon() /datum/component/mood/proc/setInsanityEffect(newval)//More code so that the previous proc works if(newval == insanity_effect) return - //var/mob/living/master = parent - //master.crit_threshold = (master.crit_threshold - insanity_effect) + newval - if(!insanity_effect && newval) - RegisterSignal(parent, COMSIG_MOB_ACTION_SKILL_MOD, .proc/on_mob_action_skill_mod) - RegisterSignal(parent, COMSIG_MOB_ITEM_ACTION_SKILLS_MOD, .proc/on_item_action_skills_mod) - else if(insanity_effect && !newval) - UnregisterSignal(parent, list(COMSIG_MOB_ACTION_SKILL_MOD, COMSIG_MOB_ITEM_ACTION_SKILLS_MOD)) + + var/mob/living/L = parent + var/apply_malus = newval >= SLIGHT_INSANITY_PEN + var/apply_bonus = !apply_malus && newval <= ECSTATIC_SANITY_PEN + if(apply_malus) + if(!malus) + malus = new(malus_id++) + var/debuff = 1 - (SANITY_DISTURBED - sanity) * MOOD_INSANITY_MALUS + malus.value_mod = malus.level_mod = debuff + if(!L.mind) + ADD_SKILL_MODIFIER_BODY(malus, L) + else + L.mind.add_skill_modifier(malus.identifier) + else if(malus) + QDEL_NULL(malus) + + if(apply_bonus) + if(!bonus) + bonus = new(bonus_id++) + if(!L.mind) + ADD_SKILL_MODIFIER_BODY(bonus, L) + else + L.mind.add_skill_modifier(bonus.identifier) + else if(bonus) + QDEL_NULL(bonus) + insanity_effect = newval /datum/component/mood/proc/modify_sanity(datum/source, amount, minimum = SANITY_INSANE, maximum = SANITY_AMAZING) @@ -294,46 +318,15 @@ if(0 to NUTRITION_LEVEL_STARVING) add_event(null, "nutrition", /datum/mood_event/starving) -///Called when parent is ahealed. +///Called when parent is revived. /datum/component/mood/proc/on_revive(datum/source, full_heal) + START_PROCESSING(SSdcs, src) if(!full_heal) return remove_temp_moods() setSanity(initial(sanity)) -/datum/component/mood/proc/on_mob_action_skill_mod(mob/source, list/skill_args, list/mod_values) - var/datum/skill/S = GLOB.skill_datums[skill_args[ACTION_SKILL_MOD_SKILL]] - if(!(S.skill_flags & SKILL_USE_MOOD)) - return - var/debuff = 1 - (SANITY_DISTURBED - sanity) * MOOD_INSANITY_MALUS - mod_values[MOD_VALUES_SKILL_MOD] *= skill_args[ACTION_SKILL_MOD_IS_MULTI] ? debuff : 1/debuff - -/datum/component/mood/proc/on_item_action_skills_mod(mob/source, list/skill_args, list/mod_values) - if(skill_args[ITEM_SKILLS_MOD_BAD_FLAGS] & SKILL_USE_MOOD) - return - var/divisor = mod_values[MOD_VALUES_ITEM_SKILLS_DIV] - if(!divisor) - return - var/obj/item/I = skill_args[ITEM_SKILLS_MOD_ITEM] - var/list/L = mod_values[MOD_VALUES_ITEM_SKILLS_CHECKED] - var/skills_len = length(L) - var/affected_skills = skills_len - for(var/k in L) - var/datum/skill/S = k - var/our_flags = I.used_skills[S.type]|S.skill_flags - if(!(our_flags & SKILL_USE_MOOD)) - affected_skills-- - if(!affected_skills) - return - var/debuff = 1 - (SANITY_DISTURBED - sanity) * MOOD_INSANITY_MALUS * (affected_skills/skills_len) - mod_values[MOD_VALUES_ITEM_SKILLS_SUM] *= skill_args[ITEM_SKILLS_MOD_IS_MULTI] ? debuff : 1/debuff - -/datum/component/mood/proc/on_get_skill_affinity(mob/source, skill_path, list/return_value) - var/datum/skill/S = GLOB.skill_datums[skill_path] - if(!S || !(S.skill_flags & SKILL_TRAIN_MOOD)) - return - return_value[1] *= SKILL_AFFINITY_MOOD_BONUS - +#undef ECSTATIC_SANITY_PEN #undef SLIGHT_INSANITY_PEN #undef MINOR_INSANITY_PEN #undef MAJOR_INSANITY_PEN diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 54fcbbc6aa..ee8762e9da 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -67,7 +67,7 @@ var/datum/skill_holder/skill_holder /datum/mind/New(var/key) - skill_holder = new(src) + skill_holder = new() src.key = key soulOwner = src martial_art = default_martial_art diff --git a/code/datums/skills/_check_skills.dm b/code/datums/skills/_check_skills.dm index d9dc6dad3d..a94c7c95ba 100644 --- a/code/datums/skills/_check_skills.dm +++ b/code/datums/skills/_check_skills.dm @@ -12,5 +12,5 @@ to_chat(usr, "How do you check the skills of [(usr == src)? "yourself when you are" : "something"] without the capability for skills? (PROBABLY A BUG, PRESS F1.)") return var/datum/browser/B = new(usr, "skilldisplay_[REF(src)]", "Skills of [src]") - B.set_content(mind.skill_holder.html_readout()) + B.set_content(mind.skill_html_readout()) B.open() diff --git a/code/datums/skills/_skill.dm b/code/datums/skills/_skill.dm index f52945536f..04ed7bdc59 100644 --- a/code/datums/skills/_skill.dm +++ b/code/datums/skills/_skill.dm @@ -9,19 +9,10 @@ GLOBAL_LIST_INIT_TYPED(skill_datums, /datum/skill, init_skill_datums()) S = new path .[S.type] = S -/proc/sanitize_skill_value(path, value) - var/datum/skill/S = GLOB.skill_datums[path] - // don't check, if we runtime let it happen. - return S.sanitize_value(value) - -/proc/is_skill_value_greater(path, existing, new_value) - var/datum/skill/S = GLOB.skill_datums[path] - // don't check, if we runtime let it happen. - return S.is_value_greater(existing, new_value) - /** * Skill datums */ + /datum/skill /// Our name var/name @@ -33,11 +24,13 @@ GLOBAL_LIST_INIT_TYPED(skill_datums, /datum/skill, init_skill_datums()) var/progression_type /// Abstract type var/abstract_type = /datum/skill - /// skill threshold used in generic skill modifiers calculations. + /// List of max levels. Only used in level skills, but present here for helper macros. + var/max_levels = INFINITY + /// skill threshold used in generic skill competency calculations. var/list/competency_thresholds = list(0, 0, 0) /// Multiplier of the difference of the holder skill value and the selected threshold. var/list/competency_mults = list(0, 0, 0) - /// In which way this skil can affect or be affected through actions. + /// In which way this skil can affect or be affected through actions and skill modifiers. var/skill_flags = SKILL_USE_MOOD|SKILL_TRAIN_MOOD /** @@ -114,9 +107,9 @@ GLOBAL_LIST_INIT_TYPED(skill_datums, /datum/skill, init_skill_datums()) /datum/skill/level abstract_type = /datum/skill/level progression_type = SKILL_PROGRESSION_LEVEL + max_levels = STD_MAX_LVL var/standard_xp_lvl_up = STD_XP_LVL_UP //the standard required to level up. def: 100 var/xp_lvl_multiplier = STD_XP_LVL_MULTI //standard required level up exp multiplier. def: 2 (100, 200, 400, 800 etc.) - var/max_levels = STD_MAX_LVL var/level_up_method = STANDARD_LEVEL_UP //how levels are calculated. var/list/levels = list() //level thresholds, if associative, these will be preceded by tiers such as "novice" or "trained" var/associative = FALSE //See above. @@ -182,7 +175,6 @@ GLOBAL_LIST_INIT_TYPED(skill_datums, /datum/skill, init_skill_datums()) if(next_lvl_xp > current_lvl_xp_sum) next_lvl_xp -= current_lvl_xp_sum - return "[associative ? current_lvl : "Lvl. [current_lvl]"] ([value - current_lvl_xp_sum]/[next_lvl_xp])[level == max_levels ? " \[MAX!\]" : ""]" /datum/skill/level/job diff --git a/code/datums/skills/_skill_holder.dm b/code/datums/skills/_skill_holder.dm index e252b4c9c6..0ce2c2b9db 100644 --- a/code/datums/skills/_skill_holder.dm +++ b/code/datums/skills/_skill_holder.dm @@ -1,8 +1,8 @@ /** * Skill holder datums + * All procs are tied to the mind, since they are always expected to have a skill holder anyway. */ /datum/skill_holder - var/datum/mind/owner /// Our list of skills and values. Lazylist. Associative. Keys are datum typepaths to the skill. var/list/skills /// Same as [skills] but affinities, which are multiplied to increase amount when gaining skills. @@ -10,66 +10,87 @@ /// Let's say we want to get a specific skill "level" without looping through a proc everytime. /// Only supported by skills with tiers or levels. var/list/skill_levels - -/datum/skill_holder/New(datum/mind/M) - . = ..() - owner = M + /// current skill modifiers lists, per value, affinity, level. + var/list/skill_value_mods + var/list/skill_affinity_mods + var/list/skill_level_mods + /// List of all current skill modifiers, so we don't add the same ones twice. + var/list/all_current_skill_modifiers + /// List of original values stored at the time a modifier with the MODIFIER_SKILL_ORIGIN_DIFF enabled was added. + var/list/original_values + var/list/original_affinities + var/list/original_levels /** * Grabs the value of a skill. */ -/datum/skill_holder/proc/get_skill_value(skill) +/datum/mind/proc/get_skill_value(skill, apply_modifiers = TRUE) if(!ispath(skill)) CRASH("Invalid get_skill_value call. Use typepaths.") //until a time when we somehow need text ids for dynamic skills, I'm enforcing this. - if(!skills) + if(!(skill_holder?.skills)) return null - return skills[skill] + else + . = skill_holder.skills[skill] + if(apply_modifiers && skill_holder.skill_value_mods) + var/L = LAZYACCESS(skill_holder.skill_value_mods, skill) + for(var/k in L) + var/datum/skill_modifier/M = GLOB.skill_modifiers[k] + . = M.apply_modifier(., skill, skill_holder, MODIFIER_TARGET_VALUE) /** * Grabs the level of a skill. Only supported by skills with tiers or levels. */ -/datum/skill_holder/proc/get_skill_level(skill) +/datum/mind/proc/get_skill_level(skill, apply_modifiers = TRUE, round = FALSE) if(!ispath(skill, /datum/skill)) CRASH("Invalid get_skill_value call. Use skill typepaths.") //until a time when we somehow need text ids for dynamic skills, I'm enforcing this. - if(!skill_levels) - return 0 - return skill_levels[skill] + if(!skill_holder.skill_levels) + . = 0 + else + . = skill_holder.skill_levels[skill] || 0 + if(apply_modifiers && skill_holder.skill_level_mods) + var/L = LAZYACCESS(skill_holder.skill_level_mods, skill) + for(var/k in L) + var/datum/skill_modifier/M = GLOB.skill_modifiers[k] + . = M.apply_modifier(., skill, skill_holder, MODIFIER_TARGET_LEVEL) + . = SANITIZE_SKILL_LEVEL(skill, round ? round(.) : .) /** * Grabs our affinity for a skill. !!This is a multiplier!! */ -/datum/skill_holder/proc/get_skill_affinity(skill) +/datum/mind/proc/get_skill_affinity(skill, apply_modifiers = TRUE) . = 1 if(!ispath(skill, /datum/skill)) CRASH("Invalid get_skill_affinity call. Use skill typepaths.") //until a time when we somehow need text ids for dynamic skills, I'm enforcing this. - var/affinity = LAZYACCESS(skill_affinities, skill) + var/affinity = LAZYACCESS(skill_holder.skill_affinities, skill) if(!isnull(affinity)) . = affinity - var/list/wrapped = list(.) - SEND_SIGNAL(owner.current, COMSIG_MOB_SKILL_GET_AFFINITY, skill, wrapped) - . = wrapped[1] + if(apply_modifiers && skill_holder.skill_affinity_mods) + var/L = LAZYACCESS(skill_holder.skill_affinity_mods, skill) + for(var/k in L) + var/datum/skill_modifier/M = GLOB.skill_modifiers[k] + . = M.apply_modifier(., skill, skill_holder, MODIFIER_TARGET_AFFINITY) /** * Sets the value of a skill. */ -/datum/skill_holder/proc/set_skill_value(skill, value, silent = FALSE) +/datum/mind/proc/set_skill_value(skill, value, silent = FALSE) if(!ispath(skill, /datum/skill)) CRASH("Invalid set_skill_value call. Use skill typepaths.") //until a time when we somehow need text ids for dynamic skills, I'm enforcing this. var/datum/skill/S = GLOB.skill_datums[skill] value = S.sanitize_value(value) if(!isnull(value)) - LAZYINITLIST(skills) - S.set_skill_value(src, value, owner, silent) + LAZYINITLIST(skill_holder.skills) + S.set_skill_value(skill_holder, value, src, silent) return TRUE return FALSE /** * Boosts a skill to a value if not aobve */ -/datum/skill_holder/proc/boost_skill_value_to(skill, value, silent = FALSE) - var/current = get_skill_value(skill) - if(!is_skill_value_greater(skill, current, value)) +/datum/mind/proc/boost_skill_value_to(skill, value, silent = FALSE, current) + current = current || get_skill_value(skill, FALSE) + if(!IS_SKILL_VALUE_GREATER(skill, current, value)) return FALSE set_skill_value(skill, value, silent) return TRUE @@ -78,20 +99,20 @@ * Automatic skill increase, multiplied by skill affinity if existing. * Only works if skill is numerical. */ -/datum/skill_holder/proc/auto_gain_experience(skill, value, maximum, silent = FALSE) +/datum/mind/proc/auto_gain_experience(skill, value, maximum, silent = FALSE) if(!ispath(skill, /datum/skill)) CRASH("Invalid set_skill_value call. Use skill typepaths.") var/datum/skill/S = GLOB.skill_datums[skill] if(S.progression_type != SKILL_PROGRESSION_NUMERICAL && S.progression_type != SKILL_PROGRESSION_LEVEL) CRASH("You cannot auto increment a non numerical(experience skill!") - var/current = get_skill_value(skill) + var/current = get_skill_value(skill, FALSE) var/affinity = get_skill_affinity(skill) var/target_value = current + (value * affinity) if(maximum) target_value = max(target_value, maximum) if(target_value == maximum) //no more experience to gain, early return. return - boost_skill_value_to(skill, target_value, silent) + boost_skill_value_to(skill, target_value, silent, current) /** * Generic value modifier proc that uses one skill. @@ -100,22 +121,17 @@ * * threshold : The difficulty of the action, in short. Refer to __DEFINES/skills/defines.dm for the defines. * * modifier_is_multiplier : wheter the modifier is a multiplier or a divisor. */ -/datum/skill_holder/proc/action_skills_mod(skill, value, threshold, modifier_is_multiplier = TRUE) +/datum/mind/proc/action_skill_mod(skill, value, threshold, modifier_is_multiplier = TRUE) var/mod var/datum/skill/S = GLOB.skill_datums[skill] if(!S) return switch(S.progression_type) if(SKILL_PROGRESSION_LEVEL) - mod = LAZYACCESS(skill_levels, S.type) + mod = get_skill_level(S.type) else - mod = LAZYACCESS(skills, S.type) + mod = get_skill_value(S.type) mod = (1+(mod-S.competency_thresholds[threshold])*S.competency_mults[threshold]) - - var/list/comsig_values = list(mod) - SEND_SIGNAL(owner.current, COMSIG_MOB_ACTION_SKILL_MOD, args, comsig_values) - mod = comsig_values[MOD_VALUES_SKILL_MOD] - . = modifier_is_multiplier ? value*mod : value/mod /** @@ -128,11 +144,10 @@ * * bad_flags : the opposite of the above, skills that must not be present to impact the value. * * modifier_is_multiplier : wheter the modifier is a multiplier or a divisor. */ -/datum/skill_holder/proc/item_action_skills_mod(obj/item/I, value, flags = NONE, bad_flags = NONE, modifier_is_multiplier = TRUE) +/datum/mind/proc/item_action_skills_mod(obj/item/I, value, flags = NONE, bad_flags = NONE, modifier_is_multiplier = TRUE) . = value var/sum = 0 var/divisor = 0 - var/list/checked_skills for(var/k in I.used_skills) var/datum/skill/S = GLOB.skill_datums[k] if(!S) @@ -143,17 +158,10 @@ var/mod switch(S.progression_type) if(SKILL_PROGRESSION_LEVEL) - mod = LAZYACCESS(skill_levels, S.type) + mod = get_skill_level(S.type) else - mod = LAZYACCESS(skills, S.type) + mod = get_skill_value(S.type) sum += 1+(mod - S.competency_thresholds[I.skill_difficulty])*S.competency_mults[I.skill_difficulty] - LAZYADD(checked_skills, S) - - var/list/comsig_values = list(sum, divisor, checked_skills) - SEND_SIGNAL(owner.current, COMSIG_MOB_ITEM_ACTION_SKILLS_MOD, args, comsig_values) - sum = comsig_values[MOD_VALUES_ITEM_SKILLS_SUM] - divisor = comsig_values[MOD_VALUES_ITEM_SKILLS_DIV] - if(divisor) . = modifier_is_multiplier ? value*(sum/divisor) : value/(sum/divisor) @@ -161,11 +169,13 @@ * Generates a HTML readout of our skills. * Port to tgui-next when? */ -/datum/skill_holder/proc/html_readout() +/datum/mind/proc/skill_html_readout() var/list/out = list("

Skills


") out += "" - for(var/path in skills) + for(var/path in skill_holder.skills) var/datum/skill/S = GLOB.skill_datums[path] - out += "" + var/skill_value = get_skill_value(path) + var/skill_level = get_skill_level(path, round = TRUE) + out += "" out += "
SkillValue
[S.name][S.standard_render_value(skills[path], LAZYACCESS(skill_levels, path) || 0)]
[S.name][S.standard_render_value(skill_value, skill_level)]
" return out.Join("") diff --git a/code/datums/skills/_skill_modifier.dm b/code/datums/skills/_skill_modifier.dm new file mode 100644 index 0000000000..b6ad27c070 --- /dev/null +++ b/code/datums/skills/_skill_modifier.dm @@ -0,0 +1,176 @@ +GLOBAL_LIST_EMPTY_TYPED(skill_modifiers, /datum/skill_modifier) +GLOBAL_LIST_EMPTY(potential_skills_per_mod) +GLOBAL_LIST_EMPTY(potential_mods_per_skill) + +/** + * Base skill modifier datum, used to modify a player skills without directly touching their values, levels and affinity + * and cause lots of edge cases. These are fairly simple overall... make a subtype though, don't use this one. + */ +/datum/skill_modifier + /// flags for this skill modifier. + var/modifier_flags = NONE + /// target skills, can be a specific skill typepath or a set of skill flags. + var/target_skills = ALL + /// The identifier key this skill modifier is associated with. + var/identifier + /// skill affinity modifier, can be a multiplier or addendum, depending on the modifier_flags flags. + var/affinity_mod = 1 + /// skill value modifier, see above. + var/value_mod = 1 + /// skill level modifier, see above. + var/level_mod = 1 + /// Priority of this skill modifier compared to other ones. + var/priority = MODIFIER_SKILL_PRIORITY_DEF + +/datum/skill_modifier/New(id) + identifier = type + if(id) + identifier = "[type]&[id]" + var/dupe = 0 + while(GLOB.skill_modifiers[identifier]) + identifier = "[type]&[id][++dupe]" + GLOB.skill_modifiers[identifier] = src + + if(ispath(target_skills)) + var/list/mod_L = GLOB.potential_mods_per_skill[target_skills] + if(!mod_L) + GLOB.potential_mods_per_skill[target_skills] = list(identifier = src) + else + BINARY_INSERT(identifier, mod_L, datum/skill_modifier, src, priority, COMPARE_VALUE) + mod_L[identifier] = src + GLOB.potential_skills_per_mod["[target_skills]"] = list(target_skills) + else //Should be a bitfield. + var/list/L = GLOB.potential_skills_per_mod["[target_skills]"] + if(!L) + L = list() + for(var/path in GLOB.skill_datums) + if(GLOB.skill_datums[path].skill_flags & target_skills) + L += path + GLOB.potential_skills_per_mod["[target_skills]"] = L + for(var/path in L) + var/list/mod_L = GLOB.potential_mods_per_skill[path] + if(!mod_L) + GLOB.potential_mods_per_skill[path] = list(identifier = src) + else + BINARY_INSERT(identifier, mod_L, datum/skill_modifier, src, priority, COMPARE_VALUE) + mod_L[identifier] = src + +/datum/skill_modifier/Destroy() + for(var/A in GLOB.potential_skills_per_mod["[target_skills]"]) + LAZYREMOVEASSOC(GLOB.potential_mods_per_skill, A, identifier) + GLOB.potential_skills_per_mod -= "[target_skills]" + GLOB.skill_modifiers -= src + return ..() + +#define ADD_MOD_STEP(L, P, O, G) \ + var/__L = L[P];\ + if(!__L){\ + L[P] = list(id)\ + } else {\ + L[P] = GLOB.potential_mods_per_skill[P] & (__L + id)\ + }\ + if(M.modifier_flags & MODIFIER_SKILL_ORIGIN_DIFF){\ + LAZYADDASSOC(O, id, P = G)\ + } + +/datum/mind/proc/add_skill_modifier(id) + if(skill_holder.all_current_skill_modifiers[id]) + return + var/datum/skill_modifier/M = GLOB.skill_modifiers[id] + if(!M) + CRASH("Invalid add_skill_modifier id: [id].") + if(M.modifier_flags & MODIFIER_SKILL_BODYBOUND && !current) + CRASH("Body-bound skill modifier [M] was tried to be added to a mob-less mind.") + + if(M.modifier_flags & MODIFIER_SKILL_VALUE) + LAZYINITLIST(skill_holder.skill_value_mods) + if(M.modifier_flags & MODIFIER_SKILL_AFFINITY) + LAZYINITLIST(skill_holder.skill_affinity_mods) + if(M.modifier_flags & MODIFIER_SKILL_LEVEL) + LAZYINITLIST(skill_holder.skill_level_mods) + for(var/path in GLOB.potential_skills_per_mod["[M.target_skills]"]) + if(M.modifier_flags & MODIFIER_SKILL_VALUE) + ADD_MOD_STEP(skill_holder.skill_value_mods, path, skill_holder.original_values, get_skill_value(path, FALSE)) + if(M.modifier_flags & MODIFIER_SKILL_AFFINITY) + ADD_MOD_STEP(skill_holder.skill_affinity_mods, path, skill_holder.original_affinities, get_skill_affinity(path, FALSE)) + if(M.modifier_flags & MODIFIER_SKILL_LEVEL) + ADD_MOD_STEP(skill_holder.skill_level_mods, path, skill_holder.original_levels, get_skill_level(path, FALSE)) + LAZYSET(skill_holder.all_current_skill_modifiers, id, TRUE) + + if(M.modifier_flags & MODIFIER_SKILL_BODYBOUND) + M.RegisterSignal(src, COMSIG_MIND_TRANSFER, /datum/skill_modifier.proc/on_mind_transfer) + ADD_SKILL_MODIFIER_BODY(M, current) + RegisterSignal(M, COMSIG_PARENT_QDELETING, .proc/on_skill_modifier_deletion) + +#undef ADD_MOD_STEP + +#define REMOVE_MOD_STEP(L, P, O)\ + LAZYREMOVEASSOC(L, P, id);\ + if(M.modifier_flags & MODIFIER_SKILL_ORIGIN_DIFF){\ + LAZYREMOVEASSOC(O, id, P)\ + } + +/datum/mind/proc/remove_skill_modifier(id, mind_transfer = FALSE) + if(!LAZYACCESS(skill_holder.all_current_skill_modifiers, id)) + return + var/datum/skill_modifier/M = GLOB.skill_modifiers[id] + if(!M) + CRASH("Invalid remove_skill_modifier id: [id].") + + if(!skill_holder.skill_value_mods && !skill_holder.skill_affinity_mods && !skill_holder.skill_level_mods) + return + for(var/path in GLOB.potential_skills_per_mod["[M.target_skills]"]) + if(M.modifier_flags & MODIFIER_SKILL_VALUE && skill_holder.skill_value_mods) + REMOVE_MOD_STEP(skill_holder.skill_value_mods, path, skill_holder.original_values) + if(M.modifier_flags & MODIFIER_SKILL_AFFINITY) + REMOVE_MOD_STEP(skill_holder.skill_affinity_mods, path, skill_holder.original_affinities) + if(M.modifier_flags & MODIFIER_SKILL_LEVEL) + REMOVE_MOD_STEP(skill_holder.skill_level_mods, path, skill_holder.original_levels) + LAZYREMOVE(skill_holder.all_current_skill_modifiers, id) + + if(!mind_transfer && M.modifier_flags & MODIFIER_SKILL_BODYBOUND) + M.UnregisterSignal(src, COMSIG_MIND_TRANSFER) + M.UnregisterSignal(current, list(COMSIG_MOB_ON_NEW_MIND)) + UnregisterSignal(M, COMSIG_PARENT_QDELETING) + +#undef REMOVE_MOD_STEP + +/datum/mind/proc/on_skill_modifier_deletion(datum/skill_modifier/source) + remove_skill_modifier(source.identifier) + +/datum/skill_modifier/proc/apply_modifier(value, skillpath, datum/skill_holder/H, method = MODIFIER_TARGET_VALUE) + . = value + var/mod = value_mod + switch(method) + if(MODIFIER_TARGET_LEVEL) + mod = level_mod + if(MODIFIER_TARGET_AFFINITY) + mod = affinity_mod + + if(modifier_flags & (MODIFIER_SKILL_VIRTUE|MODIFIER_SKILL_HANDICAP)) + if(modifier_flags & MODIFIER_SKILL_VIRTUE) + . = max(., mod) + if(modifier_flags & MODIFIER_SKILL_HANDICAP) + . = min(., mod) + else if(modifier_flags & MODIFIER_SKILL_MULT) + . *= mod + else + . += mod + + if(modifier_flags & MODIFIER_SKILL_ORIGIN_DIFF) + var/list/to_access = H.original_values + switch(method) + if(MODIFIER_TARGET_LEVEL) + to_access = H.original_levels + if(MODIFIER_TARGET_AFFINITY) + to_access = H.original_affinities + . += value - LAZYACCESS(to_access[identifier], skillpath) + +///Body bound modifier signal procs. +/datum/skill_modifier/proc/on_mind_transfer(datum/mind/source, mob/new_character, mob/old_character) + source.remove_skill_modifier(identifier, TRUE) + UnregisterSignal(source, COMSIG_MIND_TRANSFER) + +/datum/skill_modifier/proc/on_mob_new_mind(mob/source) + source.mind.add_skill_modifier(identifier) + RegisterSignal(source.mind, COMSIG_MIND_TRANSFER, /datum/skill_modifier.proc/on_mind_transfer) diff --git a/code/datums/skills/modifiers/job.dm b/code/datums/skills/modifiers/job.dm new file mode 100644 index 0000000000..45475fb9db --- /dev/null +++ b/code/datums/skills/modifiers/job.dm @@ -0,0 +1,34 @@ +/// Jobbie level skill modifiers. + +/datum/skill_modifier/job + modifier_flags = MODIFIER_SKILL_VALUE|MODIFIER_SKILL_LEVEL|MODIFIER_SKILL_VIRTUE|MODIFIER_SKILL_ORIGIN_DIFF + priority = MODIFIER_SKILL_PRIORITY_MAX + +/datum/skill_modifier/job + level_mod = JOB_SKILL_TRAINED + +/datum/skill_modifier/job/surgery + target_skills = /datum/skill/numerical/surgery + value_mod = STARTING_SKILL_SURGERY_MEDICAL + +/datum/skill_modifier/job/affinity + modifier_flags = MODIFIER_SKILL_AFFINITY|MODIFIER_SKILL_VIRTUE + affinity_mod = STARTING_SKILL_AFFINITY_DEF_JOB + +/datum/skill_modifier/job/affinity/surgery + target_skills = /datum/skill/numerical/surgery + +/datum/skill_modifier/job/affinity/wiring + target_skills = /datum/skill/level/job/wiring + +/// Level skill modifiers below. +/datum/skill_modifier/job/level/New(id) + if(level_mod) + value_mod = GET_STANDARD_LVL(level_mod) + ..() + +/datum/skill_modifier/job/level/wiring + target_skills = /datum/skill/level/job/wiring + +/datum/skill_modifier/job/level/wiring/basic + level_mod = JOB_SKILL_BASIC diff --git a/code/datums/skills/modifiers/mood.dm b/code/datums/skills/modifiers/mood.dm new file mode 100644 index 0000000000..2ab74bdbbb --- /dev/null +++ b/code/datums/skills/modifiers/mood.dm @@ -0,0 +1,8 @@ +/datum/skill_modifier/bad_mood + modifier_flags = MODIFIER_SKILL_VALUE|MODIFIER_SKILL_LEVEL|MODIFIER_SKILL_MULT|MODIFIER_SKILL_BODYBOUND + target_skills = SKILL_USE_MOOD + +/datum/skill_modifier/great_mood + modifier_flags = MODIFIER_SKILL_AFFINITY|MODIFIER_SKILL_MULT|MODIFIER_SKILL_BODYBOUND + target_skills = SKILL_TRAIN_MOOD + affinity_mod = 1.2 diff --git a/code/datums/wires/_wires.dm b/code/datums/wires/_wires.dm index d2f719c50c..e020afa47a 100644 --- a/code/datums/wires/_wires.dm +++ b/code/datums/wires/_wires.dm @@ -138,7 +138,7 @@ if(current_users[user]) return FALSE if(req_skill && user?.mind) - var/level_diff = req_skill - user.mind.skill_holder.get_skill_level(/datum/skill/level/job/wiring) + var/level_diff = req_skill - user.mind.get_skill_level(/datum/skill/level/job/wiring) if(level_diff > 0) LAZYSET(current_users, user, TRUE) to_chat(user, "You begin cutting [holder]'s [color] wire...") @@ -167,7 +167,7 @@ if(current_users[user]) return FALSE if(req_skill && user?.mind) - var/level_diff = req_skill - user.mind.skill_holder.get_skill_level(/datum/skill/level/job/wiring) + var/level_diff = req_skill - user.mind.get_skill_level(/datum/skill/level/job/wiring) if(level_diff > 0) LAZYSET(current_users, user, TRUE) to_chat(user, "You begin pulsing [holder]'s [color] wire...") @@ -255,7 +255,7 @@ var/reveal_wires = FALSE // Admin ghost can see a purpose of each wire. - if(IsAdminGhost(user) || user.mind.skill_holder.get_skill_level(/datum/skill/level/job/wiring) >= req_knowledge) + if(IsAdminGhost(user) || user.mind.get_skill_level(/datum/skill/level/job/wiring) >= req_knowledge) reveal_wires = TRUE // Same for anyone with an abductor multitool. diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 949ed050f5..dde56e8278 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -802,7 +802,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) if(delay) if(user.mind && used_skills) - delay = user.mind.skill_holder.item_action_skills_mod(src, delay, skill_difficulty, SKILL_USE_TOOL, NONE, FALSE) + delay = user.mind.item_action_skills_mod(src, delay, skill_difficulty, SKILL_USE_TOOL, NONE, FALSE) // Create a callback with checks that would be called every tick by do_after. var/datum/callback/tool_check = CALLBACK(src, .proc/tool_check_callback, user, amount, extra_checks) @@ -832,7 +832,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) for(var/skill in used_skills) if(!(used_skills[skill] & SKILL_TRAINING_TOOL)) continue - user.mind.skill_holder.auto_gain_experience(skill, skill_gain*skill_gain_mult, GET_STANDARD_LVL(max_level)) + user.mind.auto_gain_experience(skill, skill_gain*skill_gain_mult, GET_STANDARD_LVL(max_level)) return TRUE diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2.dm b/code/modules/admin/verbs/SDQL2/SDQL_2.dm index 26736ddff1..df54df5c7d 100644 --- a/code/modules/admin/verbs/SDQL2/SDQL_2.dm +++ b/code/modules/admin/verbs/SDQL2/SDQL_2.dm @@ -1025,8 +1025,6 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null v = SSnpcpool if("SSmobs") v = SSmobs - if("SSmood") - v = SSmood if("SSquirks") v = SSquirks if("SSwet_floors") diff --git a/code/modules/jobs/job_types/_job.dm b/code/modules/jobs/job_types/_job.dm index e10f009cec..426e5136c9 100644 --- a/code/modules/jobs/job_types/_job.dm +++ b/code/modules/jobs/job_types/_job.dm @@ -66,10 +66,8 @@ // How much threat this job is worth in dynamic. Is subtracted if the player's not an antag, added if they are. var/threat = 0 - /// Starting skill levels. - var/list/starting_skills - /// Skill affinities to set - var/list/skill_affinities + /// Starting skill modifiers. + var/list/starting_modifiers //Only override this proc //H is usually a human unless an /equip override transformed it @@ -171,15 +169,10 @@ to_chat(M, "Prefix your message with :h to speak on your department's radio. To see other prefixes, look closely at your headset.") /datum/job/proc/standard_assign_skills(datum/mind/M) - if(!starting_skills) + if(!starting_modifiers) return - for(var/skill in starting_skills) - M.skill_holder.boost_skill_value_to(skill, starting_skills[skill], TRUE) //silent - // do wipe affinities though - M.skill_holder.skill_affinities = list() - for(var/skill in skill_affinities) - M.skill_holder.skill_affinities[skill] = skill_affinities[skill] - UNSETEMPTY(M.skill_holder.skill_affinities) //if we didn't set any. + for(var/mod in starting_modifiers) + ADD_SINGLETON_SKILL_MODIFIER(M, mod, null) /datum/outfit/job name = "Standard Gear" diff --git a/code/modules/jobs/job_types/ai.dm b/code/modules/jobs/job_types/ai.dm index 1395b90b39..a7401791ab 100644 --- a/code/modules/jobs/job_types/ai.dm +++ b/code/modules/jobs/job_types/ai.dm @@ -17,7 +17,7 @@ var/do_special_check = TRUE threat = 5 - starting_skills = list(/datum/skill/level/job/wiring = GET_STANDARD_LVL(JOB_SKILL_BASIC)) + starting_modifiers = list(/datum/skill_modifier/job/level/wiring/basic) /datum/job/ai/equip(mob/living/carbon/human/H, visualsOnly, announce, latejoin, datum/outfit/outfit_override, client/preference_source = null) if(visualsOnly) diff --git a/code/modules/jobs/job_types/atmospheric_technician.dm b/code/modules/jobs/job_types/atmospheric_technician.dm index 42c6afaed8..fc104809c3 100644 --- a/code/modules/jobs/job_types/atmospheric_technician.dm +++ b/code/modules/jobs/job_types/atmospheric_technician.dm @@ -18,8 +18,7 @@ minimal_access = list(ACCESS_ATMOSPHERICS, ACCESS_MAINT_TUNNELS, ACCESS_EXTERNAL_AIRLOCKS, ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_EMERGENCY_STORAGE, ACCESS_CONSTRUCTION, ACCESS_MINERAL_STOREROOM) - starting_skills = list(/datum/skill/level/job/wiring = GET_STANDARD_LVL(JOB_SKILL_BASIC)) - skill_affinities = list(/datum/skill/level/job/wiring = STARTING_SKILL_AFFINITY_WIRING_ENGI_ROBO) + starting_modifiers = list(/datum/skill_modifier/job/level/wiring/basic, /datum/skill_modifier/job/affinity/wiring) display_order = JOB_DISPLAY_ORDER_ATMOSPHERIC_TECHNICIAN threat = 0.5 diff --git a/code/modules/jobs/job_types/chemist.dm b/code/modules/jobs/job_types/chemist.dm index 571785526b..f3144ff027 100644 --- a/code/modules/jobs/job_types/chemist.dm +++ b/code/modules/jobs/job_types/chemist.dm @@ -19,8 +19,7 @@ display_order = JOB_DISPLAY_ORDER_CHEMIST threat = 1.5 - starting_skills = list(/datum/skill/numerical/surgery = STARTING_SKILL_SURGERY_MEDICAL) - skill_affinities = list(/datum/skill/numerical/surgery = STARTING_SKILL_AFFINITY_SURGERY_MEDICAL) + starting_modifiers = list(/datum/skill_modifier/job/surgery, /datum/skill_modifier/job/affinity/surgery) /datum/outfit/job/chemist name = "Chemist" diff --git a/code/modules/jobs/job_types/chief_engineer.dm b/code/modules/jobs/job_types/chief_engineer.dm index bd4732f3c3..c40b3ab821 100644 --- a/code/modules/jobs/job_types/chief_engineer.dm +++ b/code/modules/jobs/job_types/chief_engineer.dm @@ -27,8 +27,7 @@ ACCESS_HEADS, ACCESS_CONSTRUCTION, ACCESS_SEC_DOORS, ACCESS_MINISAT, ACCESS_CE, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_TCOMSAT, ACCESS_MINERAL_STOREROOM) - starting_skills = list(/datum/skill/level/job/wiring = GET_STANDARD_LVL(JOB_SKILL_TRAINED)) - skill_affinities = list(/datum/skill/level/job/wiring = STARTING_SKILL_AFFINITY_WIRING_ENGI_ROBO) + starting_modifiers = list(/datum/skill_modifier/job/level/wiring, /datum/skill_modifier/job/affinity/wiring) display_order = JOB_DISPLAY_ORDER_CHIEF_ENGINEER blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/paraplegic, /datum/quirk/insanity) diff --git a/code/modules/jobs/job_types/chief_medical_officer.dm b/code/modules/jobs/job_types/chief_medical_officer.dm index 478c33551d..2f115d0166 100644 --- a/code/modules/jobs/job_types/chief_medical_officer.dm +++ b/code/modules/jobs/job_types/chief_medical_officer.dm @@ -29,8 +29,7 @@ blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/insanity) threat = 2 - starting_skills = list(/datum/skill/numerical/surgery = STARTING_SKILL_SURGERY_MEDICAL) - skill_affinities = list(/datum/skill/numerical/surgery = STARTING_SKILL_AFFINITY_SURGERY_MEDICAL) + starting_modifiers = list(/datum/skill_modifier/job/surgery, /datum/skill_modifier/job/affinity/surgery) /datum/outfit/job/cmo name = "Chief Medical Officer" diff --git a/code/modules/jobs/job_types/cyborg.dm b/code/modules/jobs/job_types/cyborg.dm index d88d888aec..4f74542b2a 100644 --- a/code/modules/jobs/job_types/cyborg.dm +++ b/code/modules/jobs/job_types/cyborg.dm @@ -12,7 +12,7 @@ exp_requirements = 120 exp_type = EXP_TYPE_CREW - starting_skills = list(/datum/skill/level/job/wiring = GET_STANDARD_LVL(JOB_SKILL_BASIC)) + starting_modifiers = list(/datum/skill_modifier/job/level/wiring/basic) display_order = JOB_DISPLAY_ORDER_CYBORG diff --git a/code/modules/jobs/job_types/geneticist.dm b/code/modules/jobs/job_types/geneticist.dm index 4fb989f6e8..f14032348b 100644 --- a/code/modules/jobs/job_types/geneticist.dm +++ b/code/modules/jobs/job_types/geneticist.dm @@ -19,7 +19,7 @@ display_order = JOB_DISPLAY_ORDER_GENETICIST threat = 1.5 - starting_skills = list(/datum/skill/numerical/surgery = STARTING_SKILL_SURGERY_MEDICAL) + starting_modifiers = list(/datum/skill_modifier/job/surgery, /datum/skill_modifier/job/affinity/surgery) /datum/outfit/job/geneticist name = "Geneticist" diff --git a/code/modules/jobs/job_types/medical_doctor.dm b/code/modules/jobs/job_types/medical_doctor.dm index 0e8b2e645b..d77a56d933 100644 --- a/code/modules/jobs/job_types/medical_doctor.dm +++ b/code/modules/jobs/job_types/medical_doctor.dm @@ -17,8 +17,7 @@ display_order = JOB_DISPLAY_ORDER_MEDICAL_DOCTOR threat = 0.5 - starting_skills = list(/datum/skill/numerical/surgery = STARTING_SKILL_SURGERY_MEDICAL) - skill_affinities = list(/datum/skill/numerical/surgery = STARTING_SKILL_AFFINITY_SURGERY_MEDICAL) + starting_modifiers = list(/datum/skill_modifier/job/surgery, /datum/skill_modifier/job/affinity/surgery) /datum/outfit/job/doctor name = "Medical Doctor" diff --git a/code/modules/jobs/job_types/paramedic.dm b/code/modules/jobs/job_types/paramedic.dm index e8098daddc..e35fa34cb4 100644 --- a/code/modules/jobs/job_types/paramedic.dm +++ b/code/modules/jobs/job_types/paramedic.dm @@ -19,8 +19,7 @@ threat = 0.5 - starting_skills = list(/datum/skill/numerical/surgery = STARTING_SKILL_SURGERY_MEDICAL) - skill_affinities = list(/datum/skill/numerical/surgery = STARTING_SKILL_AFFINITY_SURGERY_MEDICAL) + starting_modifiers = list(/datum/skill_modifier/job/surgery, /datum/skill_modifier/job/affinity/surgery) /datum/outfit/job/paramedic name = "Paramedic" diff --git a/code/modules/jobs/job_types/roboticist.dm b/code/modules/jobs/job_types/roboticist.dm index d9e891f057..c6684bb7b1 100644 --- a/code/modules/jobs/job_types/roboticist.dm +++ b/code/modules/jobs/job_types/roboticist.dm @@ -16,9 +16,7 @@ access = list(ACCESS_ROBOTICS, ACCESS_TOX, ACCESS_TOX_STORAGE, ACCESS_TECH_STORAGE, ACCESS_MORGUE, ACCESS_RESEARCH, ACCESS_MINERAL_STOREROOM, ACCESS_XENOBIOLOGY, ACCESS_GENETICS) minimal_access = list(ACCESS_ROBOTICS, ACCESS_TECH_STORAGE, ACCESS_MORGUE, ACCESS_RESEARCH, ACCESS_MINERAL_STOREROOM) - starting_skills = list(/datum/skill/level/job/wiring = GET_STANDARD_LVL(JOB_SKILL_TRAINED)) - skill_affinities = list(/datum/skill/level/job/wiring = STARTING_SKILL_AFFINITY_WIRING_ENGI_ROBO) - + starting_modifiers = list(/datum/skill_modifier/job/level/wiring, /datum/skill_modifier/job/affinity/wiring) display_order = JOB_DISPLAY_ORDER_ROBOTICIST threat = 1 diff --git a/code/modules/jobs/job_types/station_engineer.dm b/code/modules/jobs/job_types/station_engineer.dm index c5280d72db..cc974b5086 100644 --- a/code/modules/jobs/job_types/station_engineer.dm +++ b/code/modules/jobs/job_types/station_engineer.dm @@ -18,8 +18,7 @@ minimal_access = list(ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_TECH_STORAGE, ACCESS_MAINT_TUNNELS, ACCESS_EXTERNAL_AIRLOCKS, ACCESS_CONSTRUCTION, ACCESS_TCOMSAT, ACCESS_MINERAL_STOREROOM) - starting_skills = list(/datum/skill/level/job/wiring = GET_STANDARD_LVL(JOB_SKILL_TRAINED)) - skill_affinities = list(/datum/skill/level/job/wiring = STARTING_SKILL_AFFINITY_WIRING_ENGI_ROBO) + starting_modifiers = list(/datum/skill_modifier/job/level/wiring, /datum/skill_modifier/job/affinity/wiring) display_order = JOB_DISPLAY_ORDER_STATION_ENGINEER diff --git a/code/modules/jobs/job_types/virologist.dm b/code/modules/jobs/job_types/virologist.dm index 78f0ba4272..177d8e2b76 100644 --- a/code/modules/jobs/job_types/virologist.dm +++ b/code/modules/jobs/job_types/virologist.dm @@ -20,8 +20,7 @@ threat = 1.5 - starting_skills = list(/datum/skill/numerical/surgery = STARTING_SKILL_SURGERY_MEDICAL) - skill_affinities = list(/datum/skill/numerical/surgery = STARTING_SKILL_AFFINITY_SURGERY_MEDICAL) + starting_modifiers = list(/datum/skill_modifier/job/surgery, /datum/skill_modifier/job/affinity/surgery) /datum/outfit/job/virologist name = "Virologist" diff --git a/code/modules/surgery/surgery_step.dm b/code/modules/surgery/surgery_step.dm index f574b0aea3..57661901ae 100644 --- a/code/modules/surgery/surgery_step.dm +++ b/code/modules/surgery/surgery_step.dm @@ -59,7 +59,7 @@ if(tool) speed_mod = tool.toolspeed if(user.mind) - speed_mod = user.mind.skill_holder.action_skills_mod(/datum/skill/numerical/surgery, speed_mod, THRESHOLD_COMPETENT, FALSE) + speed_mod = user.mind.action_skill_mod(/datum/skill/numerical/surgery, speed_mod, THRESHOLD_COMPETENT, FALSE) if(do_after(user, time * speed_mod, target = target)) var/prob_chance = 100 if(implement_type) //this means it isn't a require hand or any item step. @@ -68,7 +68,7 @@ if((prob(prob_chance) || (iscyborg(user) && !silicons_obey_prob)) && chem_check(target) && !try_to_fail) if(success(user, target, target_zone, tool, surgery)) - user.mind?.skill_holder.auto_gain_experience(/datum/skill/numerical/surgery, SKILL_GAIN_SURGERY_PER_STEP) + user.mind?.auto_gain_experience(/datum/skill/numerical/surgery, SKILL_GAIN_SURGERY_PER_STEP) advance = TRUE else if(failure(user, target, target_zone, tool, surgery)) diff --git a/tgstation.dme b/tgstation.dme index dc02385b48..c05877a983 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -289,7 +289,6 @@ #include "code\controllers\subsystem\minimaps.dm" #include "code\controllers\subsystem\minor_mapping.dm" #include "code\controllers\subsystem\mobs.dm" -#include "code\controllers\subsystem\moods.dm" #include "code\controllers\subsystem\nightshift.dm" #include "code\controllers\subsystem\npcpool.dm" #include "code\controllers\subsystem\overlays.dm" @@ -583,8 +582,11 @@ #include "code\datums\skills\_check_skills.dm" #include "code\datums\skills\_skill.dm" #include "code\datums\skills\_skill_holder.dm" +#include "code\datums\skills\_skill_modifier.dm" #include "code\datums\skills\engineering.dm" #include "code\datums\skills\medical.dm" +#include "code\datums\skills\modifiers\job.dm" +#include "code\datums\skills\modifiers\mood.dm" #include "code\datums\status_effects\buffs.dm" #include "code\datums\status_effects\debuffs.dm" #include "code\datums\status_effects\gas.dm" From 9b9bdffd0fba72eb7d3b138761d899fbbdaf5d90 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Sun, 10 May 2020 02:36:45 +0200 Subject: [PATCH 018/103] No return. --- code/datums/skills/_skill_holder.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/datums/skills/_skill_holder.dm b/code/datums/skills/_skill_holder.dm index 0ce2c2b9db..af261b4edb 100644 --- a/code/datums/skills/_skill_holder.dm +++ b/code/datums/skills/_skill_holder.dm @@ -27,10 +27,10 @@ /datum/mind/proc/get_skill_value(skill, apply_modifiers = TRUE) if(!ispath(skill)) CRASH("Invalid get_skill_value call. Use typepaths.") //until a time when we somehow need text ids for dynamic skills, I'm enforcing this. - if(!(skill_holder?.skills)) - return null + if(!skill_holder.skills) + . = 0 else - . = skill_holder.skills[skill] + . = skill_holder.skills[skill] || 0 if(apply_modifiers && skill_holder.skill_value_mods) var/L = LAZYACCESS(skill_holder.skill_value_mods, skill) for(var/k in L) From 7779258b504a7d5d25825835fc549843f857da54 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Sun, 10 May 2020 18:54:05 +0200 Subject: [PATCH 019/103] Tests, bug fixes and improvements. --- code/__DEFINES/skills/helpers.dm | 26 ++++++++++++++++++++++---- code/datums/components/mood.dm | 12 ++---------- code/datums/skills/_skill.dm | 3 ++- code/datums/skills/_skill_holder.dm | 4 ++-- code/datums/skills/_skill_modifier.dm | 24 ++++++++++++------------ 5 files changed, 40 insertions(+), 29 deletions(-) diff --git a/code/__DEFINES/skills/helpers.dm b/code/__DEFINES/skills/helpers.dm index 1a39dbd9e0..9f1fbbf0e2 100644 --- a/code/__DEFINES/skills/helpers.dm +++ b/code/__DEFINES/skills/helpers.dm @@ -14,17 +14,35 @@ ///Doesn't automatically round the value. #define SANITIZE_SKILL_LEVEL(path, lvl) clamp(lvl, 0, GLOB.skill_datums[path].max_levels) +/// Simple generic identifier macro. +#define GET_SKILL_MOD_ID(path, id) (id ? "[path]&[id]" : path) + /** * A simple universal comsig for body bound skill modifiers. * Technically they are still bound to the mind, but other signal procs will take care of adding and removing the modifier * from/to new/old minds. */ -#define ADD_SKILL_MODIFIER_BODY(mod, body) \ - mod.RegisterSignal(body, COMSIG_MOB_ON_NEW_MIND, /datum/skill_modifier.proc/on_mob_new_mind, TRUE) +#define ADD_SKILL_MODIFIER_BODY(path, id, body, prototype) \ + prototype = GLOB.skill_modifiers[GET_SKILL_MOD_ID(path, id)] || new path(id);\ + if(body.mind){\ + body.mind.add_skill_modifier(prototype.identifier)\ + } else {\ + prototype.RegisterSignal(body, COMSIG_MOB_ON_NEW_MIND, /datum/skill_modifier.proc/on_mob_new_mind, TRUE)\ + } + +/// Same as above but to remove the skill modifier. +#define REMOVE_SKILL_MODIFIER_BODY(path, id, body) \ + if(GLOB.skill_modifiers[GET_SKILL_MOD_ID(path, id)]){\ + if(body.mind){\ + body.mind.remove_skill_modifier(GET_SKILL_MOD_ID(path, id))\ + } else {\ + GLOB.skill_modifiers[GET_SKILL_MOD_ID(path, id)].UnregisterSignal(body, COMSIG_MOB_ON_NEW_MIND)\ + }\ + } ///Macro used when adding generic singleton skill modifiers. #define ADD_SINGLETON_SKILL_MODIFIER(mind, path, id) \ - if(!GLOB.skill_modifiers[id]){\ + if(!GLOB.skill_modifiers[GET_SKILL_MOD_ID(path, id)]){\ new path(id)\ };\ - mind.add_skill_modifier(id ? "[path]&[id]" : path) \ No newline at end of file + mind.add_skill_modifier(GET_SKILL_MOD_ID(path, id)) \ No newline at end of file diff --git a/code/datums/components/mood.dm b/code/datums/components/mood.dm index 6ce7842273..0cf209b10d 100644 --- a/code/datums/components/mood.dm +++ b/code/datums/components/mood.dm @@ -221,23 +221,15 @@ var/apply_bonus = !apply_malus && newval <= ECSTATIC_SANITY_PEN if(apply_malus) if(!malus) - malus = new(malus_id++) + ADD_SKILL_MODIFIER_BODY(/datum/skill_modifier/bad_mood, malus_id++, L, malus) var/debuff = 1 - (SANITY_DISTURBED - sanity) * MOOD_INSANITY_MALUS malus.value_mod = malus.level_mod = debuff - if(!L.mind) - ADD_SKILL_MODIFIER_BODY(malus, L) - else - L.mind.add_skill_modifier(malus.identifier) else if(malus) QDEL_NULL(malus) if(apply_bonus) if(!bonus) - bonus = new(bonus_id++) - if(!L.mind) - ADD_SKILL_MODIFIER_BODY(bonus, L) - else - L.mind.add_skill_modifier(bonus.identifier) + ADD_SKILL_MODIFIER_BODY(/datum/skill_modifier/great_mood, bonus_id++, L, bonus) else if(bonus) QDEL_NULL(bonus) diff --git a/code/datums/skills/_skill.dm b/code/datums/skills/_skill.dm index 04ed7bdc59..41ef52e317 100644 --- a/code/datums/skills/_skill.dm +++ b/code/datums/skills/_skill.dm @@ -170,7 +170,7 @@ GLOBAL_LIST_INIT_TYPED(skill_datums, /datum/skill, init_skill_datums()) var/current_lvl_xp_sum = 0 if(level) current_lvl_xp_sum = associative ? levels[levels[level]] : levels[level] - var/next_index = max(max_levels, level+1) + var/next_index = min(max_levels, level+1) var/next_lvl_xp = associative ? levels[levels[next_index]] : levels[next_index] if(next_lvl_xp > current_lvl_xp_sum) next_lvl_xp -= current_lvl_xp_sum @@ -178,6 +178,7 @@ GLOBAL_LIST_INIT_TYPED(skill_datums, /datum/skill, init_skill_datums()) return "[associative ? current_lvl : "Lvl. [current_lvl]"] ([value - current_lvl_xp_sum]/[next_lvl_xp])[level == max_levels ? " \[MAX!\]" : ""]" /datum/skill/level/job + abstract_type = /datum/skill/level/job levels = list("Basic", "Trained", "Experienced", "Master") competency_thresholds = list(JOB_SKILL_TRAINED, JOB_SKILL_EXPERT, JOB_SKILL_MASTER) competency_mults = list(0.15, 0.1, 0.1) diff --git a/code/datums/skills/_skill_holder.dm b/code/datums/skills/_skill_holder.dm index af261b4edb..ecc7bb0878 100644 --- a/code/datums/skills/_skill_holder.dm +++ b/code/datums/skills/_skill_holder.dm @@ -109,7 +109,7 @@ var/affinity = get_skill_affinity(skill) var/target_value = current + (value * affinity) if(maximum) - target_value = max(target_value, maximum) + target_value = min(target_value, maximum) if(target_value == maximum) //no more experience to gain, early return. return boost_skill_value_to(skill, target_value, silent, current) @@ -172,7 +172,7 @@ /datum/mind/proc/skill_html_readout() var/list/out = list("

Skills


") out += "" - for(var/path in skill_holder.skills) + for(var/path in skill_holder.skills|skill_holder.skill_value_mods|skill_holder.skill_level_mods) var/datum/skill/S = GLOB.skill_datums[path] var/skill_value = get_skill_value(path) var/skill_level = get_skill_level(path, round = TRUE) diff --git a/code/datums/skills/_skill_modifier.dm b/code/datums/skills/_skill_modifier.dm index b6ad27c070..e704e13dea 100644 --- a/code/datums/skills/_skill_modifier.dm +++ b/code/datums/skills/_skill_modifier.dm @@ -23,21 +23,21 @@ GLOBAL_LIST_EMPTY(potential_mods_per_skill) var/priority = MODIFIER_SKILL_PRIORITY_DEF /datum/skill_modifier/New(id) - identifier = type + identifier = GET_SKILL_MOD_ID(type, id) if(id) - identifier = "[type]&[id]" + var/former_id = identifier var/dupe = 0 while(GLOB.skill_modifiers[identifier]) - identifier = "[type]&[id][++dupe]" + identifier = "[former_id][++dupe]" GLOB.skill_modifiers[identifier] = src if(ispath(target_skills)) var/list/mod_L = GLOB.potential_mods_per_skill[target_skills] if(!mod_L) - GLOB.potential_mods_per_skill[target_skills] = list(identifier = src) + mod_L = GLOB.potential_mods_per_skill[target_skills] = list() else BINARY_INSERT(identifier, mod_L, datum/skill_modifier, src, priority, COMPARE_VALUE) - mod_L[identifier] = src + mod_L[identifier] = src GLOB.potential_skills_per_mod["[target_skills]"] = list(target_skills) else //Should be a bitfield. var/list/L = GLOB.potential_skills_per_mod["[target_skills]"] @@ -50,10 +50,10 @@ GLOBAL_LIST_EMPTY(potential_mods_per_skill) for(var/path in L) var/list/mod_L = GLOB.potential_mods_per_skill[path] if(!mod_L) - GLOB.potential_mods_per_skill[path] = list(identifier = src) + mod_L = GLOB.potential_mods_per_skill[target_skills] = list() else BINARY_INSERT(identifier, mod_L, datum/skill_modifier, src, priority, COMPARE_VALUE) - mod_L[identifier] = src + mod_L[identifier] = src /datum/skill_modifier/Destroy() for(var/A in GLOB.potential_skills_per_mod["[target_skills]"]) @@ -70,11 +70,11 @@ GLOBAL_LIST_EMPTY(potential_mods_per_skill) L[P] = GLOB.potential_mods_per_skill[P] & (__L + id)\ }\ if(M.modifier_flags & MODIFIER_SKILL_ORIGIN_DIFF){\ - LAZYADDASSOC(O, id, P = G)\ + LAZYADDASSOC(O, id, "[P]" = G)\ } /datum/mind/proc/add_skill_modifier(id) - if(skill_holder.all_current_skill_modifiers[id]) + if(LAZYACCESS(skill_holder.all_current_skill_modifiers, id)) return var/datum/skill_modifier/M = GLOB.skill_modifiers[id] if(!M) @@ -99,7 +99,7 @@ GLOBAL_LIST_EMPTY(potential_mods_per_skill) if(M.modifier_flags & MODIFIER_SKILL_BODYBOUND) M.RegisterSignal(src, COMSIG_MIND_TRANSFER, /datum/skill_modifier.proc/on_mind_transfer) - ADD_SKILL_MODIFIER_BODY(M, current) + M.RegisterSignal(current, COMSIG_MOB_ON_NEW_MIND, /datum/skill_modifier.proc/on_mob_new_mind, TRUE) RegisterSignal(M, COMSIG_PARENT_QDELETING, .proc/on_skill_modifier_deletion) #undef ADD_MOD_STEP @@ -107,7 +107,7 @@ GLOBAL_LIST_EMPTY(potential_mods_per_skill) #define REMOVE_MOD_STEP(L, P, O)\ LAZYREMOVEASSOC(L, P, id);\ if(M.modifier_flags & MODIFIER_SKILL_ORIGIN_DIFF){\ - LAZYREMOVEASSOC(O, id, P)\ + LAZYREMOVEASSOC(O, id, "[P]")\ } /datum/mind/proc/remove_skill_modifier(id, mind_transfer = FALSE) @@ -164,7 +164,7 @@ GLOBAL_LIST_EMPTY(potential_mods_per_skill) to_access = H.original_levels if(MODIFIER_TARGET_AFFINITY) to_access = H.original_affinities - . += value - LAZYACCESS(to_access[identifier], skillpath) + . += value - LAZYACCESS(to_access[identifier], "[skillpath]") ///Body bound modifier signal procs. /datum/skill_modifier/proc/on_mind_transfer(datum/mind/source, mob/new_character, mob/old_character) From 13643e6dc8130a02d3b739875238c43830bb3d27 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Sun, 10 May 2020 19:07:18 +0200 Subject: [PATCH 020/103] Some precise adjustments. --- code/datums/skills/modifiers/job.dm | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/code/datums/skills/modifiers/job.dm b/code/datums/skills/modifiers/job.dm index 45475fb9db..7d79ae89b3 100644 --- a/code/datums/skills/modifiers/job.dm +++ b/code/datums/skills/modifiers/job.dm @@ -1,12 +1,9 @@ -/// Jobbie level skill modifiers. +/// Jobbie skill modifiers. /datum/skill_modifier/job - modifier_flags = MODIFIER_SKILL_VALUE|MODIFIER_SKILL_LEVEL|MODIFIER_SKILL_VIRTUE|MODIFIER_SKILL_ORIGIN_DIFF + modifier_flags = MODIFIER_SKILL_VALUE|MODIFIER_SKILL_VIRTUE|MODIFIER_SKILL_ORIGIN_DIFF priority = MODIFIER_SKILL_PRIORITY_MAX -/datum/skill_modifier/job - level_mod = JOB_SKILL_TRAINED - /datum/skill_modifier/job/surgery target_skills = /datum/skill/numerical/surgery value_mod = STARTING_SKILL_SURGERY_MEDICAL @@ -22,6 +19,10 @@ target_skills = /datum/skill/level/job/wiring /// Level skill modifiers below. +/datum/skill_modifier/job/level + modifier_flags = MODIFIER_SKILL_VALUE|MODIFIER_SKILL_LEVEL|MODIFIER_SKILL_VIRTUE|MODIFIER_SKILL_ORIGIN_DIFF + level_mod = JOB_SKILL_TRAINED + /datum/skill_modifier/job/level/New(id) if(level_mod) value_mod = GET_STANDARD_LVL(level_mod) From 2b598c692c4f5f1e9f44c32c5ce5a077e995f51f Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 10 May 2020 15:01:30 -0700 Subject: [PATCH 021/103] ok --- code/__HELPERS/unsorted.dm | 7 ++++++- code/datums/tgs_event_handler.dm | 20 ++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 code/datums/tgs_event_handler.dm diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 13ac820778..830e933518 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1571,8 +1571,13 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) //empty string - use TgsTargetBroadcast with admin_only = FALSE //other string - use TgsChatBroadcast with the tag that matches config_setting, only works with TGS4, if using TGS3 the above method is used /proc/send2chat(message, config_setting) - if(config_setting == null || !world.TgsAvailable()) + if(config_setting == null) return + + UNTIL(GLOB.tgs_initialized) + if(!world.TgsAvailable()) + return + var/datum/tgs_version/version = world.TgsVersion() if(config_setting == "" || version.suite == 3) world.TgsTargetedChatBroadcast(message, FALSE) diff --git a/code/datums/tgs_event_handler.dm b/code/datums/tgs_event_handler.dm new file mode 100644 index 0000000000..a3324121bf --- /dev/null +++ b/code/datums/tgs_event_handler.dm @@ -0,0 +1,20 @@ +/datum/tgs_event_handler/impl/HandleEvent(event_code, ...) + switch(event_code) + if(TGS_EVENT_REBOOT_MODE_CHANGE) + var/list/reboot_mode_lookup = list ("[TGS_REBOOT_MODE_NORMAL]" = "be normal", "[TGS_REBOOT_MODE_SHUTDOWN]" = "shutdown the server", "[TGS_REBOOT_MODE_RESTART]" = "hard restart the server") + var old_reboot_mode = args[2] + var new_reboot_mode = args[3] + message_admins("TGS: Reboot will no longer [reboot_mode_lookup["[old_reboot_mode]"]], it will instead [reboot_mode_lookup["[new_reboot_mode]"]]") + if(TGS_EVENT_PORT_SWAP) + message_admins("TGS: Changing port from [world.port] to [args[2]]") + if(TGS_EVENT_INSTANCE_RENAMED) + message_admins("TGS: Instance renamed to from [world.TgsInstanceName()] to [args[2]]") + if(TGS_EVENT_COMPILE_START) + message_admins("TGS: Deployment started, new game version incoming...") + if(TGS_EVENT_COMPILE_CANCELLED) + message_admins("TGS: Deployment cancelled!") + if(TGS_EVENT_COMPILE_FAILURE) + message_admins("TGS: Deployment failed!") + if(TGS_EVENT_DEPLOYMENT_COMPLETE) + message_admins("TGS: Deployment complete!") + to_chat(world, "Server updated, changes will be applied on the next round...") From 452b360450c991ba787b9c2991faf0da66da8c5d Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 10 May 2020 15:05:46 -0700 Subject: [PATCH 022/103] ok --- code/datums/helper_datums/getrev.dm | 18 +++++++++++------- code/game/world.dm | 15 ++++++++++++--- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/code/datums/helper_datums/getrev.dm b/code/datums/helper_datums/getrev.dm index 0b0fed407c..91b8e32566 100644 --- a/code/datums/helper_datums/getrev.dm +++ b/code/datums/helper_datums/getrev.dm @@ -5,16 +5,18 @@ var/list/testmerge = list() /datum/getrev/New() + commit = rustg_git_revparse("HEAD") + if(commit) + date = rustg_git_commit_date(commit) + originmastercommit = rustg_git_revparse("origin/master") + +/datum/getrev/proc/load_tgs_info() testmerge = world.TgsTestMerges() var/datum/tgs_revision_information/revinfo = world.TgsRevision() if(revinfo) commit = revinfo.commit originmastercommit = revinfo.origin_commit - else - commit = rustg_git_revparse("HEAD") - if(commit) - date = rustg_git_commit_date(commit) - originmastercommit = rustg_git_revparse("origin/master") + date = rustg_git_commit_date(commit) // goes to DD log and config_error.txt log_world(get_log_message()) @@ -77,7 +79,9 @@ msg += "No commit information" if(world.TgsAvailable()) var/datum/tgs_version/version = world.TgsVersion() - msg += "Server tools version: [version.raw_parameter]" + msg += "TGS version: [version.raw_parameter]" + var/datum/tgs_version/api_version = world.TgsApiVersion() + msg += "DMAPI version: [api_version.raw_parameter]" // Game mode odds msg += "
Current Informational Settings:" @@ -121,4 +125,4 @@ if(probabilities[ctag] > 0) var/percentage = round(probabilities[ctag] / sum * 100, 0.1) msg += "[ctag] [percentage]%" - to_chat(src, msg.Join("
")) \ No newline at end of file + to_chat(src, msg.Join("
")) diff --git a/code/game/world.dm b/code/game/world.dm index 10431e4af9..45ed035e58 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -23,10 +23,11 @@ GLOBAL_LIST(topic_status_cache) make_datum_references_lists() //initialises global lists for referencing frequently used datums (so that we only ever do it once) - TgsNew(minimum_required_security_level = TGS_SECURITY_TRUSTED) GLOB.revdata = new + InitTgs() + config.Load(params[OVERRIDE_CONFIG_DIRECTORY_PARAMETER]) //SetupLogs depends on the RoundID, so lets check @@ -37,6 +38,9 @@ GLOBAL_LIST(topic_status_cache) #ifndef USE_CUSTOM_ERROR_HANDLER world.log = file("[GLOB.log_directory]/dd.log") +#else + if (TgsAvailable()) + world.log = file("[GLOB.log_directory]/dd.log") //not all runtimes trigger world/Error, so this is the only way to ensure we can see all of them. #endif load_admins() @@ -62,6 +66,10 @@ GLOBAL_LIST(topic_status_cache) if(TEST_RUN_PARAMETER in params) HandleTestRun() +/world/proc/InitTgs() + TgsNew(new /datum/tgs_event_handler/impl, TGS_SECURITY_TRUSTED) + GLOB.revdata.load_tgs_info() + /world/proc/HandleTestRun() //trigger things to run the whole process Master.sleep_offline_after_initializations = FALSE @@ -223,16 +231,17 @@ GLOBAL_LIST(topic_status_cache) qdel(src) //shut it down /world/Reboot(reason = 0, fast_track = FALSE) - TgsReboot() if (reason || fast_track) //special reboot, do none of the normal stuff if (usr) log_admin("[key_name(usr)] Has requested an immediate world restart via client side debugging tools") message_admins("[key_name_admin(usr)] Has requested an immediate world restart via client side debugging tools") - to_chat(world, "Rebooting World immediately due to host request") + to_chat(world, "Rebooting World immediately due to host request.") else to_chat(world, "Rebooting world...") Master.Shutdown() //run SS shutdowns + TgsReboot() + if(TEST_RUN_PARAMETER in params) FinishTestRun() return From 5aea034d881280eeef65d4268d5e856271fb1e04 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 10 May 2020 15:12:13 -0700 Subject: [PATCH 023/103] k --- code/__HELPERS/unsorted.dm | 2 +- code/game/world.dm | 9 ++++++--- tgstation.dme | 1 + 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 830e933518..e6663be5b9 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1573,7 +1573,7 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) /proc/send2chat(message, config_setting) if(config_setting == null) return - + UNTIL(GLOB.tgs_initialized) if(!world.TgsAvailable()) return diff --git a/code/game/world.dm b/code/game/world.dm index 45ed035e58..bd56ffdbf4 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -1,6 +1,7 @@ #define RESTART_COUNTER_PATH "data/round_counter.txt" GLOBAL_VAR(restart_counter) +GLOBAL_VAR_INIT(tgs_initialized, FALSE) GLOBAL_VAR(topic_status_lastcache) GLOBAL_LIST(topic_status_cache) @@ -38,9 +39,6 @@ GLOBAL_LIST(topic_status_cache) #ifndef USE_CUSTOM_ERROR_HANDLER world.log = file("[GLOB.log_directory]/dd.log") -#else - if (TgsAvailable()) - world.log = file("[GLOB.log_directory]/dd.log") //not all runtimes trigger world/Error, so this is the only way to ensure we can see all of them. #endif load_admins() @@ -69,6 +67,11 @@ GLOBAL_LIST(topic_status_cache) /world/proc/InitTgs() TgsNew(new /datum/tgs_event_handler/impl, TGS_SECURITY_TRUSTED) GLOB.revdata.load_tgs_info() +#ifdef USE_CUSTOM_ERROR_HANDLER + if (TgsAvailable()) + world.log = file("[GLOB.log_directory]/dd.log") //not all runtimes trigger world/Error, so this is the only way to ensure we can see all of them. +#endif + GLOB.tgs_initialized = TRUE /world/proc/HandleTestRun() //trigger things to run the whole process diff --git a/tgstation.dme b/tgstation.dme index d61a1c4ef9..34cf0e354a 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -366,6 +366,7 @@ #include "code\datums\shuttles.dm" #include "code\datums\soullink.dm" #include "code\datums\spawners_menu.dm" +#include "code\datums\tgs_event_handler.dm" #include "code\datums\verbs.dm" #include "code\datums\weakrefs.dm" #include "code\datums\world_topic.dm" From dfae071015d4563b39d242ef6acdb238d93fbc21 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Mon, 11 May 2020 19:05:58 +0200 Subject: [PATCH 024/103] Final adjustments. --- code/__DEFINES/skills/helpers.dm | 6 +++--- code/datums/skills/_skill_holder.dm | 2 +- code/datums/skills/_skill_modifier.dm | 16 ++++++++++++---- code/datums/wires/_wires.dm | 4 ++-- 4 files changed, 18 insertions(+), 10 deletions(-) diff --git a/code/__DEFINES/skills/helpers.dm b/code/__DEFINES/skills/helpers.dm index 9f1fbbf0e2..dde412fd7d 100644 --- a/code/__DEFINES/skills/helpers.dm +++ b/code/__DEFINES/skills/helpers.dm @@ -23,7 +23,7 @@ * from/to new/old minds. */ #define ADD_SKILL_MODIFIER_BODY(path, id, body, prototype) \ - prototype = GLOB.skill_modifiers[GET_SKILL_MOD_ID(path, id)] || new path(id);\ + prototype = GLOB.skill_modifiers[GET_SKILL_MOD_ID(path, id)] || new path(id, TRUE);\ if(body.mind){\ body.mind.add_skill_modifier(prototype.identifier)\ } else {\ @@ -43,6 +43,6 @@ ///Macro used when adding generic singleton skill modifiers. #define ADD_SINGLETON_SKILL_MODIFIER(mind, path, id) \ if(!GLOB.skill_modifiers[GET_SKILL_MOD_ID(path, id)]){\ - new path(id)\ + new path(id, TRUE)\ };\ - mind.add_skill_modifier(GET_SKILL_MOD_ID(path, id)) \ No newline at end of file + mind.add_skill_modifier(GET_SKILL_MOD_ID(path, id)) diff --git a/code/datums/skills/_skill_holder.dm b/code/datums/skills/_skill_holder.dm index ecc7bb0878..500b49a1ff 100644 --- a/code/datums/skills/_skill_holder.dm +++ b/code/datums/skills/_skill_holder.dm @@ -52,7 +52,7 @@ for(var/k in L) var/datum/skill_modifier/M = GLOB.skill_modifiers[k] . = M.apply_modifier(., skill, skill_holder, MODIFIER_TARGET_LEVEL) - . = SANITIZE_SKILL_LEVEL(skill, round ? round(.) : .) + . = SANITIZE_SKILL_LEVEL(skill, round ? round(., 1) : .) /** * Grabs our affinity for a skill. !!This is a multiplier!! diff --git a/code/datums/skills/_skill_modifier.dm b/code/datums/skills/_skill_modifier.dm index e704e13dea..a2c9552871 100644 --- a/code/datums/skills/_skill_modifier.dm +++ b/code/datums/skills/_skill_modifier.dm @@ -10,7 +10,7 @@ GLOBAL_LIST_EMPTY(potential_mods_per_skill) /// flags for this skill modifier. var/modifier_flags = NONE /// target skills, can be a specific skill typepath or a set of skill flags. - var/target_skills = ALL + var/target_skills = NONE /// The identifier key this skill modifier is associated with. var/identifier /// skill affinity modifier, can be a multiplier or addendum, depending on the modifier_flags flags. @@ -22,15 +22,21 @@ GLOBAL_LIST_EMPTY(potential_mods_per_skill) /// Priority of this skill modifier compared to other ones. var/priority = MODIFIER_SKILL_PRIORITY_DEF -/datum/skill_modifier/New(id) +/datum/skill_modifier/New(id, register = FALSE) identifier = GET_SKILL_MOD_ID(type, id) if(id) var/former_id = identifier var/dupe = 0 while(GLOB.skill_modifiers[identifier]) identifier = "[former_id][++dupe]" - GLOB.skill_modifiers[identifier] = src + if(register) + register() + +/datum/skill_modifier/proc/register() + if(GLOB.skill_modifiers[identifier]) + CRASH("Skill modifier identifier \"[identifier]\" already taken.") + GLOB.skill_modifiers[identifier] = src if(ispath(target_skills)) var/list/mod_L = GLOB.potential_mods_per_skill[target_skills] if(!mod_L) @@ -147,11 +153,13 @@ GLOBAL_LIST_EMPTY(potential_mods_per_skill) if(MODIFIER_TARGET_AFFINITY) mod = affinity_mod + var/diff = 0 if(modifier_flags & (MODIFIER_SKILL_VIRTUE|MODIFIER_SKILL_HANDICAP)) if(modifier_flags & MODIFIER_SKILL_VIRTUE) . = max(., mod) if(modifier_flags & MODIFIER_SKILL_HANDICAP) . = min(., mod) + diff = . - mod else if(modifier_flags & MODIFIER_SKILL_MULT) . *= mod else @@ -164,7 +172,7 @@ GLOBAL_LIST_EMPTY(potential_mods_per_skill) to_access = H.original_levels if(MODIFIER_TARGET_AFFINITY) to_access = H.original_affinities - . += value - LAZYACCESS(to_access[identifier], "[skillpath]") + . += value - diff - LAZYACCESS(to_access[identifier], "[skillpath]") ///Body bound modifier signal procs. /datum/skill_modifier/proc/on_mind_transfer(datum/mind/source, mob/new_character, mob/old_character) diff --git a/code/datums/wires/_wires.dm b/code/datums/wires/_wires.dm index e020afa47a..9df144b184 100644 --- a/code/datums/wires/_wires.dm +++ b/code/datums/wires/_wires.dm @@ -138,7 +138,7 @@ if(current_users[user]) return FALSE if(req_skill && user?.mind) - var/level_diff = req_skill - user.mind.get_skill_level(/datum/skill/level/job/wiring) + var/level_diff = req_skill - user.mind.get_skill_level(/datum/skill/level/job/wiring, round = TRUE) if(level_diff > 0) LAZYSET(current_users, user, TRUE) to_chat(user, "You begin cutting [holder]'s [color] wire...") @@ -167,7 +167,7 @@ if(current_users[user]) return FALSE if(req_skill && user?.mind) - var/level_diff = req_skill - user.mind.get_skill_level(/datum/skill/level/job/wiring) + var/level_diff = req_skill - user.mind.get_skill_level(/datum/skill/level/job/wiring, round = TRUE) if(level_diff > 0) LAZYSET(current_users, user, TRUE) to_chat(user, "You begin pulsing [holder]'s [color] wire...") From bd1976323693adea51efc8b55c55be311579ad80 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Tue, 12 May 2020 00:18:27 +0200 Subject: [PATCH 025/103] Update lighting.dm --- code/modules/power/lighting.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 181df7b07c..fd6ecef31f 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -314,7 +314,7 @@ . = ..() SSvis_overlays.remove_vis_overlay(src, managed_vis_overlays) if(on && status == LIGHT_OK) - SSvis_overlays.add_vis_overlay(src, overlayicon, base_state, EMISSIVE_LAYER, EMISSIVE_PLANE, dir, clamp(light_power*250, 30, 200)) + SSvis_overlays.add_vis_overlay(src, overlayicon, base_state, EMISSIVE_UNBLOCKABLE_LAYER, EMISSIVE_UNBLOCKABLE_PLANE, dir, clamp(light_power*250, 30, 200)) // update the icon_state and luminosity of the light depending on its state From bc148ad39f9f7c38ab1574f52bcdfe234f1bbf57 Mon Sep 17 00:00:00 2001 From: MrJWhit <48370570+MrJWhit@users.noreply.github.com> Date: Tue, 12 May 2020 01:52:47 -0400 Subject: [PATCH 026/103] Space diner location --- code/game/area/areas/ruins/space.dm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/code/game/area/areas/ruins/space.dm b/code/game/area/areas/ruins/space.dm index 59c195ded1..a9f48af64e 100644 --- a/code/game/area/areas/ruins/space.dm +++ b/code/game/area/areas/ruins/space.dm @@ -129,7 +129,26 @@ icon_state = "crew_quarters" +//Ruin of Space Diner +/area/ruin/space/diner + name = "Space Diner" + +/area/ruin/space/diner/interior + name = "Space Diner" + icon_state = "maintbar" + has_gravity = STANDARD_GRAVITY + blob_allowed = FALSE //Nope, no winning in the diner as a blob. Gotta eat the main station. + +/area/ruin/space/diner/solars + requires_power = FALSE + dynamic_lighting = DYNAMIC_LIGHTING_IFSTARLIGHT + valid_territory = FALSE + blob_allowed = FALSE + flags_1 = NONE + ambientsounds = ENGINEERING + name = "Space Diner Solar Array" + icon_state = "yellow" //Ruin of Derelict Oupost From e9a432d438b5209a731c5b9d56a8d6e56c15a6b9 Mon Sep 17 00:00:00 2001 From: The0bserver Date: Tue, 12 May 2020 04:07:26 -0400 Subject: [PATCH 027/103] Initial Commit: Hey Drake? Where's the cell for electroplating? --- .../components/crafting/recipes/recipes_misc.dm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/code/datums/components/crafting/recipes/recipes_misc.dm b/code/datums/components/crafting/recipes/recipes_misc.dm index 14ab751d2b..250e7b6f68 100644 --- a/code/datums/components/crafting/recipes/recipes_misc.dm +++ b/code/datums/components/crafting/recipes/recipes_misc.dm @@ -157,7 +157,7 @@ /datum/crafting_recipe/goldenbox name = "Gold Plated Toolbox" result = /obj/item/storage/toolbox/gold_fake - tools = list(/obj/item/stock_parts/cell/upgraded/plus) + tools = list(/obj/item/stock_parts/cell/high) reqs = list(/obj/item/stack/sheet/cardboard = 1, //so we dont null items in crafting /obj/item/stack/cable_coil = 10, /obj/item/stack/sheet/mineral/gold = 1, @@ -184,7 +184,7 @@ /datum/crafting_recipe/bronze_driver name = "Bronze Plated Screwdriver" - tools = list(/obj/item/stock_parts/cell/upgraded/plus) + tools = list(/obj/item/stock_parts/cell/high) result = /obj/item/screwdriver/bronze reqs = list(/obj/item/screwdriver = 1, /obj/item/stack/cable_coil = 10, @@ -196,7 +196,7 @@ /datum/crafting_recipe/bronze_welder name = "Bronze Plated Welding Tool" - tools = list(/obj/item/stock_parts/cell/upgraded/plus) + tools = list(/obj/item/stock_parts/cell/high) result = /obj/item/weldingtool/bronze reqs = list(/obj/item/weldingtool = 1, /obj/item/stack/cable_coil = 10, @@ -208,7 +208,7 @@ /datum/crafting_recipe/bronze_wirecutters name = "Bronze Plated Wirecutters" - tools = list(/obj/item/stock_parts/cell/upgraded/plus) + tools = list(/obj/item/stock_parts/cell/high) result = /obj/item/wirecutters/bronze reqs = list(/obj/item/wirecutters = 1, /obj/item/stack/cable_coil = 10, @@ -220,7 +220,7 @@ /datum/crafting_recipe/bronze_crowbar name = "Bronze Plated Crowbar" - tools = list(/obj/item/stock_parts/cell/upgraded/plus) + tools = list(/obj/item/stock_parts/cell/high) result = /obj/item/crowbar/bronze reqs = list(/obj/item/crowbar = 1, /obj/item/stack/cable_coil = 10, @@ -232,7 +232,7 @@ /datum/crafting_recipe/bronze_wrench name = "Bronze Plated Wrench" - tools = list(/obj/item/stock_parts/cell/upgraded/plus) + tools = list(/obj/item/stock_parts/cell/high) result = /obj/item/wrench/bronze reqs = list(/obj/item/wrench = 1, /obj/item/stack/cable_coil = 10, From 88e499a39a4fa90ac2c4e680f9ae3f6d928a940e Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Wed, 13 May 2020 03:31:16 +0200 Subject: [PATCH 028/103] Some quick economy fixes and improvements. --- code/game/objects/items/cards_ids.dm | 7 +++---- .../uplink/uplink_items/uplink_devices.dm | 4 ++-- code/modules/vending/_vending.dm | 8 +++++--- tgui-next/packages/tgui/interfaces/Vending.js | 18 ++++++++++++++---- tgui-next/packages/tgui/public/tgui.bundle.js | 2 +- 5 files changed, 25 insertions(+), 14 deletions(-) diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm index 8a5723e894..46a013efdc 100644 --- a/code/game/objects/items/cards_ids.dm +++ b/code/game/objects/items/cards_ids.dm @@ -317,14 +317,13 @@ return if(!alt_click_can_use_id(user)) return - if(registered_account.adjust_money(-amount_to_remove)) + amount_to_remove = min(amount_to_remove, registered_account.account_balance) + if(amount_to_remove && registered_account.adjust_money(-amount_to_remove)) var/obj/item/holochip/holochip = new (user.drop_location(), amount_to_remove) user.put_in_hands(holochip) to_chat(user, "You withdraw [amount_to_remove] credits into a holochip.") return - else - var/difference = amount_to_remove - registered_account.account_balance - registered_account.bank_card_talk("ERROR: The linked account requires [difference] more credit\s to perform that withdrawal.", TRUE) + registered_account.bank_card_talk("ERROR: The linked account has no sufficient credits to perform a withdrawal.", TRUE) /obj/item/card/id/examine(mob/user) . = ..() diff --git a/code/modules/uplink/uplink_items/uplink_devices.dm b/code/modules/uplink/uplink_items/uplink_devices.dm index d4fa226a90..ddf5b6c276 100644 --- a/code/modules/uplink/uplink_items/uplink_devices.dm +++ b/code/modules/uplink/uplink_items/uplink_devices.dm @@ -272,7 +272,6 @@ include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) restricted = TRUE -/* for now /datum/uplink_item/device_tools/suspiciousphone name = "Protocol CRAB-17 Phone" desc = "The Protocol CRAB-17 Phone, a phone borrowed from an unknown third party, it can be used to crash the space market, funneling the losses of the crew to your bank account.\ @@ -280,4 +279,5 @@ item = /obj/item/suspiciousphone cost = 7 restricted = TRUE -*/ + limited_stock = 1 + diff --git a/code/modules/vending/_vending.dm b/code/modules/vending/_vending.dm index 06a3f6ae1d..ebc5f54017 100644 --- a/code/modules/vending/_vending.dm +++ b/code/modules/vending/_vending.dm @@ -299,6 +299,7 @@ GLOBAL_LIST_EMPTY(vending_products) R.amount = amount R.max_amount = amount R.custom_price = initial(temp.custom_price) + R.custom_premium_price = initial(temp.custom_premium_price) recordlist += R /** * Refill a vending machine from a refill canister @@ -577,12 +578,13 @@ GLOBAL_LIST_EMPTY(vending_products) if(cost_mult != 1) .["cost_mult"] = cost_mult if(cost_mult < 1) - .["cost_text"] = " [(1 - cost_mult) * 100]% OFF" + .["cost_text"] = " ([(1 - cost_mult) * 100]% OFF)" else - .["cost_text"] = " [(cost_mult - 1) * 100]% EXTRA" + .["cost_text"] = " ([(cost_mult - 1) * 100]% EXTRA)" .["stock"] = list() for (var/datum/data/vending_product/R in product_records + coin_records + hidden_records) .["stock"][R.name] = R.amount + . .["extended_inventory"] = extended_inventory /obj/machinery/vending/ui_act(action, params) @@ -635,7 +637,7 @@ GLOBAL_LIST_EMPTY(vending_products) return var/datum/bank_account/account = C.registered_account if(coin_records.Find(R) || hidden_records.Find(R)) - price_to_use = R.custom_premium_price ? R.custom_premium_price : extra_price + price_to_use = R.custom_premium_price || extra_price else price_to_use = round(price_to_use * get_best_discount(C)) if(price_to_use && !account.adjust_money(-price_to_use)) diff --git a/tgui-next/packages/tgui/interfaces/Vending.js b/tgui-next/packages/tgui/interfaces/Vending.js index 5e84f26a75..79105a77b5 100644 --- a/tgui-next/packages/tgui/interfaces/Vending.js +++ b/tgui-next/packages/tgui/interfaces/Vending.js @@ -47,7 +47,18 @@ export const Vending = props => {
SkillValue
{inventory.map((product => { - const suffix = ' cr' + data.cost_text; + const free = ( + !data.onstation + || product.price === 0 + || ( + data.cost_mult === 0 + && !product.premium + ) + ); + const suffix = (!product.premium + ? ' cr' + data.cost_text + : ' cr' + ); return ( @@ -91,15 +102,14 @@ export const Vending = props => { disabled={( data.stock[product.namename] === 0 || ( - data.cost_mult !== 0 + !free && ( !data.user || product.price > data.user.cash ) ) )} - content={(data.onstation - && product.price !== 0) + content={!free ? Math.round(product.price * data.cost_mult) + suffix : 'FREE'} onClick={() => act(ref, 'vend', { diff --git a/tgui-next/packages/tgui/public/tgui.bundle.js b/tgui-next/packages/tgui/public/tgui.bundle.js index 6065f95969..fb44126214 100644 --- a/tgui-next/packages/tgui/public/tgui.bundle.js +++ b/tgui-next/packages/tgui/public/tgui.bundle.js @@ -1,3 +1,3 @@ !function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=165)}([function(e,t,n){"use strict";var o=n(5),r=n(20).f,a=n(26),i=n(22),c=n(89),l=n(122),u=n(61);e.exports=function(e,t){var n,d,s,p,m,f=e.target,h=e.global,C=e.stat;if(n=h?o:C?o[f]||c(f,{}):(o[f]||{}).prototype)for(d in t){if(p=t[d],s=e.noTargetGet?(m=r(n,d))&&m.value:n[d],!u(h?d:f+(C?".":"#")+d,e.forced)&&s!==undefined){if(typeof p==typeof s)continue;l(p,s)}(e.sham||s&&s.sham)&&a(p,"sham",!0),i(n,d,p,e)}}},function(e,t,n){"use strict";t.__esModule=!0;var o=n(387);Object.keys(o).forEach((function(e){"default"!==e&&"__esModule"!==e&&(t[e]=o[e])}))},function(e,t,n){"use strict";t.__esModule=!0,t.Chart=t.Tooltip=t.Toast=t.TitleBar=t.Tabs=t.Table=t.Section=t.ProgressBar=t.NumberInput=t.NoticeBox=t.LabeledList=t.Input=t.Icon=t.Grid=t.Flex=t.Dropdown=t.Dimmer=t.Collapsible=t.ColorBox=t.Button=t.Box=t.BlockQuote=t.AnimatedNumber=void 0;var o=n(158);t.AnimatedNumber=o.AnimatedNumber;var r=n(392);t.BlockQuote=r.BlockQuote;var a=n(19);t.Box=a.Box;var i=n(114);t.Button=i.Button;var c=n(394);t.ColorBox=c.ColorBox;var l=n(395);t.Collapsible=l.Collapsible;var u=n(396);t.Dimmer=u.Dimmer;var d=n(397);t.Dropdown=d.Dropdown;var s=n(398);t.Flex=s.Flex;var p=n(161);t.Grid=p.Grid;var m=n(87);t.Icon=m.Icon;var f=n(160);t.Input=f.Input;var h=n(163);t.LabeledList=h.LabeledList;var C=n(399);t.NoticeBox=C.NoticeBox;var g=n(400);t.NumberInput=g.NumberInput;var b=n(401);t.ProgressBar=b.ProgressBar;var N=n(402);t.Section=N.Section;var v=n(162);t.Table=v.Table;var V=n(403);t.Tabs=V.Tabs;var y=n(404);t.TitleBar=y.TitleBar;var _=n(117);t.Toast=_.Toast;var x=n(159);t.Tooltip=x.Tooltip;var k=n(405);t.Chart=k.Chart},function(e,t,n){"use strict";t.__esModule=!0,t.useBackend=t.backendReducer=t.backendUpdate=void 0;var o=n(37),r=n(16);t.backendUpdate=function(e){return{type:"backendUpdate",payload:e}};t.backendReducer=function(e,t){var n=t.type,r=t.payload;if("backendUpdate"===n){var a=Object.assign({},e.config,{},r.config),i=Object.assign({},e.data,{},r.static_data,{},r.data),c=a.status!==o.UI_DISABLED,l=a.status===o.UI_INTERACTIVE;return Object.assign({},e,{config:a,data:i,visible:c,interactive:l})}return e};t.useBackend=function(e){var t=e.state,n=(e.dispatch,t.config.ref);return Object.assign({},t,{act:function(e,t){return void 0===t&&(t={}),(0,r.act)(n,e,t)}})}},function(e,t,n){"use strict";e.exports=function(e){try{return!!e()}catch(t){return!0}}},function(e,t,n){"use strict";(function(t){var n=function(e){return e&&e.Math==Math&&e};e.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof t&&t)||Function("return this")()}).call(this,n(118))},function(e,t,n){"use strict";e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){"use strict";var o,r=n(9),a=n(5),i=n(6),c=n(15),l=n(74),u=n(26),d=n(22),s=n(13).f,p=n(36),m=n(53),f=n(11),h=n(58),C=a.DataView,g=C&&C.prototype,b=a.Int8Array,N=b&&b.prototype,v=a.Uint8ClampedArray,V=v&&v.prototype,y=b&&p(b),_=N&&p(N),x=Object.prototype,k=x.isPrototypeOf,L=f("toStringTag"),w=h("TYPED_ARRAY_TAG"),B=!(!a.ArrayBuffer||!C),S=B&&!!m&&"Opera"!==l(a.opera),I=!1,T={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},A=function(e){var t=l(e);return"DataView"===t||c(T,t)},P=function(e){return i(e)&&c(T,l(e))};for(o in T)a[o]||(S=!1);if((!S||"function"!=typeof y||y===Function.prototype)&&(y=function(){throw TypeError("Incorrect invocation")},S))for(o in T)a[o]&&m(a[o],y);if((!S||!_||_===x)&&(_=y.prototype,S))for(o in T)a[o]&&m(a[o].prototype,_);if(S&&p(V)!==_&&m(V,_),r&&!c(_,L))for(o in I=!0,s(_,L,{get:function(){return i(this)?this[w]:undefined}}),T)a[o]&&u(a[o],w,o);B&&m&&p(g)!==x&&m(g,x),e.exports={NATIVE_ARRAY_BUFFER:B,NATIVE_ARRAY_BUFFER_VIEWS:S,TYPED_ARRAY_TAG:I&&w,aTypedArray:function(e){if(P(e))return e;throw TypeError("Target is not a typed array")},aTypedArrayConstructor:function(e){if(m){if(k.call(y,e))return e}else for(var t in T)if(c(T,o)){var n=a[t];if(n&&(e===n||k.call(n,e)))return e}throw TypeError("Target is not a typed array constructor")},exportTypedArrayMethod:function(e,t,n){if(r){if(n)for(var o in T){var i=a[o];i&&c(i.prototype,e)&&delete i.prototype[e]}_[e]&&!n||d(_,e,n?t:S&&N[e]||t)}},exportTypedArrayStaticMethod:function(e,t,n){var o,i;if(r){if(m){if(n)for(o in T)(i=a[o])&&c(i,e)&&delete i[e];if(y[e]&&!n)return;try{return d(y,e,n?t:S&&b[e]||t)}catch(l){}}for(o in T)!(i=a[o])||i[e]&&!n||d(i,e,t)}},isView:A,isTypedArray:P,TypedArray:y,TypedArrayPrototype:_}},function(e,t,n){"use strict";var o=n(6);e.exports=function(e){if(!o(e))throw TypeError(String(e)+" is not an object");return e}},function(e,t,n){"use strict";var o=n(4);e.exports=!o((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},function(e,t,n){"use strict";var o=n(30),r=Math.min;e.exports=function(e){return e>0?r(o(e),9007199254740991):0}},function(e,t,n){"use strict";var o=n(5),r=n(91),a=n(15),i=n(58),c=n(95),l=n(125),u=r("wks"),d=o.Symbol,s=l?d:i;e.exports=function(e){return a(u,e)||(c&&a(d,e)?u[e]=d[e]:u[e]=s("Symbol."+e)),u[e]}},function(e,t,n){"use strict";t.__esModule=!0,t.isFalsy=t.pureComponentHooks=t.shallowDiffers=t.normalizeChildren=t.classes=void 0;t.classes=function(e){for(var t="",n=0;n_;_++)if((p||_ in v)&&(b=V(g=v[_],_,N),e))if(t)k[_]=b;else if(b)switch(e){case 3:return!0;case 5:return g;case 6:return _;case 2:l.call(k,g)}else if(d)return!1;return s?-1:u||d?d:k}};e.exports={forEach:u(0),map:u(1),filter:u(2),some:u(3),every:u(4),find:u(5),findIndex:u(6)}},function(e,t,n){"use strict";t.__esModule=!0,t.toFixed=t.round=t.clamp=void 0;t.clamp=function(e,t,n){return void 0===t&&(t=0),void 0===n&&(n=1),Math.max(t,Math.min(e,n))};t.round=function(e){return Math.round(e)};t.toFixed=function(e,t){return void 0===t&&(t=0),Number(e).toFixed(t)}},function(e,t,n){"use strict";t.__esModule=!0,t.Box=t.computeBoxProps=t.unit=void 0;var o=n(1),r=n(12),a=n(393),i=n(37);function c(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var l=function(e){return"string"==typeof e?e:"number"==typeof e?6*e+"px":void 0};t.unit=l;var u=function(e){return"string"==typeof e&&i.CSS_COLORS.includes(e)},d=function(e){return function(t,n){(0,r.isFalsy)(n)||(t[e]=n)}},s=function(e){return function(t,n){(0,r.isFalsy)(n)||(t[e]=l(n))}},p=function(e,t){return function(n,o){(0,r.isFalsy)(o)||(n[e]=t)}},m=function(e,t){return function(n,o){if(!(0,r.isFalsy)(o))for(var a=0;a0&&(t.style=l),t};t.computeBoxProps=C;var g=function(e){var t=e.as,n=void 0===t?"div":t,i=e.className,l=e.content,d=e.children,s=c(e,["as","className","content","children"]),p=e.textColor||e.color,m=e.backgroundColor;if("function"==typeof d)return d(C(e));var f=C(s);return(0,o.createVNode)(a.VNodeFlags.HtmlElement,n,(0,r.classes)([i,u(p)&&"color-"+p,u(m)&&"color-bg-"+m]),l||d,a.ChildFlags.UnknownChildren,f)};t.Box=g,g.defaultHooks=r.pureComponentHooks;var b=function(e){var t=e.children,n=c(e,["children"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,g,Object.assign({position:"relative"},n,{children:(0,o.createComponentVNode)(2,g,{fillPositionedParent:!0,children:t})})))};b.defaultHooks=r.pureComponentHooks,g.Forced=b},function(e,t,n){"use strict";var o=n(9),r=n(71),a=n(46),i=n(25),c=n(33),l=n(15),u=n(119),d=Object.getOwnPropertyDescriptor;t.f=o?d:function(e,t){if(e=i(e),t=c(t,!0),u)try{return d(e,t)}catch(n){}if(l(e,t))return a(!r.f.call(e,t),e[t])}},function(e,t,n){"use strict";e.exports=function(e){if(e==undefined)throw TypeError("Can't call method on "+e);return e}},function(e,t,n){"use strict";var o=n(5),r=n(26),a=n(15),i=n(89),c=n(90),l=n(34),u=l.get,d=l.enforce,s=String(String).split("String");(e.exports=function(e,t,n,c){var l=!!c&&!!c.unsafe,u=!!c&&!!c.enumerable,p=!!c&&!!c.noTargetGet;"function"==typeof n&&("string"!=typeof t||a(n,"name")||r(n,"name",t),d(n).source=s.join("string"==typeof t?t:"")),e!==o?(l?!p&&e[t]&&(u=!0):delete e[t],u?e[t]=n:r(e,t,n)):u?e[t]=n:i(t,n)})(Function.prototype,"toString",(function(){return"function"==typeof this&&u(this).source||c(this)}))},function(e,t,n){"use strict";t.__esModule=!0,t.buildQueryString=t.decodeHtmlEntities=t.toTitleCase=t.capitalize=t.testGlobPattern=t.multiline=void 0;t.multiline=function o(e){if(Array.isArray(e))return o(e.join(""));var t,n=e.split("\n"),r=n,a=Array.isArray(r),i=0;for(r=a?r:r[Symbol.iterator]();;){var c;if(a){if(i>=r.length)break;c=r[i++]}else{if((i=r.next()).done)break;c=i.value}for(var l=c,u=0;u",apos:"'"};return e.replace(/
/gi,"\n").replace(/<\/?[a-z0-9-_]+[^>]*>/gi,"").replace(/&(nbsp|amp|quot|lt|gt|apos);/g,(function(e,n){return t[n]})).replace(/&#?([0-9]+);/gi,(function(e,t){var n=parseInt(t,10);return String.fromCharCode(n)})).replace(/&#x?([0-9a-f]+);/gi,(function(e,t){var n=parseInt(t,16);return String.fromCharCode(n)}))};t.buildQueryString=function(e){return Object.keys(e).map((function(t){return encodeURIComponent(t)+"="+encodeURIComponent(e[t])})).join("&")}},function(e,t,n){"use strict";t.__esModule=!0,t.zipWith=t.zip=t.reduce=t.sortBy=t.map=t.toArray=void 0;t.toArray=function(e){if(Array.isArray(e))return e;if("object"==typeof e){var t=Object.prototype.hasOwnProperty,n=[];for(var o in e)t.call(e,o)&&n.push(e[o]);return n}return[]};var o=function(e){return function(t){if(null===t&&t===undefined)return t;if(Array.isArray(t)){for(var n=[],o=0;oc)return 1}return 0};t.sortBy=function(){for(var e=arguments.length,t=new Array(e),n=0;n"+i+""}},function(e,t,n){"use strict";var o=n(4);e.exports=function(e){return o((function(){var t=""[e]('"');return t!==t.toLowerCase()||t.split('"').length>3}))}},function(e,t,n){"use strict";var o=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:o)(e)}},function(e,t,n){"use strict";e.exports=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e}},function(e,t,n){"use strict";var o={}.toString;e.exports=function(e){return o.call(e).slice(8,-1)}},function(e,t,n){"use strict";var o=n(6);e.exports=function(e,t){if(!o(e))return e;var n,r;if(t&&"function"==typeof(n=e.toString)&&!o(r=n.call(e)))return r;if("function"==typeof(n=e.valueOf)&&!o(r=n.call(e)))return r;if(!t&&"function"==typeof(n=e.toString)&&!o(r=n.call(e)))return r;throw TypeError("Can't convert object to primitive value")}},function(e,t,n){"use strict";var o,r,a,i=n(121),c=n(5),l=n(6),u=n(26),d=n(15),s=n(72),p=n(59),m=c.WeakMap;if(i){var f=new m,h=f.get,C=f.has,g=f.set;o=function(e,t){return g.call(f,e,t),t},r=function(e){return h.call(f,e)||{}},a=function(e){return C.call(f,e)}}else{var b=s("state");p[b]=!0,o=function(e,t){return u(e,b,t),t},r=function(e){return d(e,b)?e[b]:{}},a=function(e){return d(e,b)}}e.exports={set:o,get:r,has:a,enforce:function(e){return a(e)?r(e):o(e,{})},getterFor:function(e){return function(t){var n;if(!l(t)||(n=r(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}}}},function(e,t,n){"use strict";var o=n(123),r=n(5),a=function(e){return"function"==typeof e?e:undefined};e.exports=function(e,t){return arguments.length<2?a(o[e])||a(r[e]):o[e]&&o[e][t]||r[e]&&r[e][t]}},function(e,t,n){"use strict";var o=n(15),r=n(14),a=n(72),i=n(102),c=a("IE_PROTO"),l=Object.prototype;e.exports=i?Object.getPrototypeOf:function(e){return e=r(e),o(e,c)?e[c]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?l:null}},function(e,t,n){"use strict";t.__esModule=!0,t.getGasColor=t.getGasLabel=t.RADIO_CHANNELS=t.CSS_COLORS=t.COLORS=t.UI_CLOSE=t.UI_DISABLED=t.UI_UPDATE=t.UI_INTERACTIVE=void 0;t.UI_INTERACTIVE=2;t.UI_UPDATE=1;t.UI_DISABLED=0;t.UI_CLOSE=-1;t.COLORS={department:{captain:"#c06616",security:"#e74c3c",medbay:"#3498db",science:"#9b59b6",engineering:"#f1c40f",cargo:"#f39c12",centcom:"#00c100",other:"#c38312"},damageType:{oxy:"#3498db",toxin:"#2ecc71",burn:"#e67e22",brute:"#e74c3c"}};t.CSS_COLORS=["black","white","red","orange","yellow","olive","green","teal","blue","violet","purple","pink","brown","grey","good","average","bad","label"];t.RADIO_CHANNELS=[{name:"Syndicate",freq:1213,color:"#a52a2a"},{name:"Red Team",freq:1215,color:"#ff4444"},{name:"Blue Team",freq:1217,color:"#3434fd"},{name:"CentCom",freq:1337,color:"#2681a5"},{name:"Supply",freq:1347,color:"#b88646"},{name:"Service",freq:1349,color:"#6ca729"},{name:"Science",freq:1351,color:"#c68cfa"},{name:"Command",freq:1353,color:"#5177ff"},{name:"Medical",freq:1355,color:"#57b8f0"},{name:"Engineering",freq:1357,color:"#f37746"},{name:"Security",freq:1359,color:"#dd3535"},{name:"AI Private",freq:1447,color:"#d65d95"},{name:"Common",freq:1459,color:"#1ecc43"}];var o=[{id:"o2",name:"Oxygen",label:"O\u2082",color:"blue"},{id:"n2",name:"Nitrogen",label:"N\u2082",color:"red"},{id:"co2",name:"Carbon Dioxide",label:"CO\u2082",color:"grey"},{id:"plasma",name:"Plasma",label:"Plasma",color:"pink"},{id:"water_vapor",name:"Water Vapor",label:"H\u2082O",color:"grey"},{id:"nob",name:"Hyper-noblium",label:"Hyper-nob",color:"teal"},{id:"n2o",name:"Nitrous Oxide",label:"N\u2082O",color:"red"},{id:"no2",name:"Nitryl",label:"NO\u2082",color:"brown"},{id:"tritium",name:"Tritium",label:"Tritium",color:"green"},{id:"bz",name:"BZ",label:"BZ",color:"purple"},{id:"stim",name:"Stimulum",label:"Stimulum",color:"purple"},{id:"pluox",name:"Pluoxium",label:"Pluoxium",color:"blue"},{id:"miasma",name:"Miasma",label:"Miasma",color:"olive"}];t.getGasLabel=function(e,t){var n=String(e).toLowerCase(),r=o.find((function(e){return e.id===n||e.name.toLowerCase()===n}));return r&&r.label||t||e};t.getGasColor=function(e){var t=String(e).toLowerCase(),n=o.find((function(e){return e.id===t||e.name.toLowerCase()===t}));return n&&n.color}},function(e,t,n){"use strict";e.exports=!1},function(e,t,n){"use strict";var o=n(4);e.exports=function(e,t){var n=[][e];return!n||!o((function(){n.call(null,t||function(){throw 1},1)}))}},function(e,t,n){"use strict";var o=n(0),r=n(5),a=n(9),i=n(113),c=n(7),l=n(77),u=n(55),d=n(46),s=n(26),p=n(10),m=n(137),f=n(151),h=n(33),C=n(15),g=n(74),b=n(6),N=n(42),v=n(53),V=n(47).f,y=n(152),_=n(17).forEach,x=n(54),k=n(13),L=n(20),w=n(34),B=n(79),S=w.get,I=w.set,T=k.f,A=L.f,P=Math.round,E=r.RangeError,M=l.ArrayBuffer,O=l.DataView,R=c.NATIVE_ARRAY_BUFFER_VIEWS,F=c.TYPED_ARRAY_TAG,D=c.TypedArray,j=c.TypedArrayPrototype,z=c.aTypedArrayConstructor,H=c.isTypedArray,G=function(e,t){for(var n=0,o=t.length,r=new(z(e))(o);o>n;)r[n]=t[n++];return r},U=function(e,t){T(e,t,{get:function(){return S(this)[t]}})},K=function(e){var t;return e instanceof M||"ArrayBuffer"==(t=g(e))||"SharedArrayBuffer"==t},Y=function(e,t){return H(e)&&"symbol"!=typeof t&&t in e&&String(+t)==String(t)},q=function(e,t){return Y(e,t=h(t,!0))?d(2,e[t]):A(e,t)},W=function(e,t,n){return!(Y(e,t=h(t,!0))&&b(n)&&C(n,"value"))||C(n,"get")||C(n,"set")||n.configurable||C(n,"writable")&&!n.writable||C(n,"enumerable")&&!n.enumerable?T(e,t,n):(e[t]=n.value,e)};a?(R||(L.f=q,k.f=W,U(j,"buffer"),U(j,"byteOffset"),U(j,"byteLength"),U(j,"length")),o({target:"Object",stat:!0,forced:!R},{getOwnPropertyDescriptor:q,defineProperty:W}),e.exports=function(e,t,n){var a=e.match(/\d+$/)[0]/8,c=e+(n?"Clamped":"")+"Array",l="get"+e,d="set"+e,h=r[c],C=h,g=C&&C.prototype,k={},L=function(e,t){var n=S(e);return n.view[l](t*a+n.byteOffset,!0)},w=function(e,t,o){var r=S(e);n&&(o=(o=P(o))<0?0:o>255?255:255&o),r.view[d](t*a+r.byteOffset,o,!0)},A=function(e,t){T(e,t,{get:function(){return L(this,t)},set:function(e){return w(this,t,e)},enumerable:!0})};R?i&&(C=t((function(e,t,n,o){return u(e,C,c),B(b(t)?K(t)?o!==undefined?new h(t,f(n,a),o):n!==undefined?new h(t,f(n,a)):new h(t):H(t)?G(C,t):y.call(C,t):new h(m(t)),e,C)})),v&&v(C,D),_(V(h),(function(e){e in C||s(C,e,h[e])})),C.prototype=g):(C=t((function(e,t,n,o){u(e,C,c);var r,i,l,d=0,s=0;if(b(t)){if(!K(t))return H(t)?G(C,t):y.call(C,t);r=t,s=f(n,a);var h=t.byteLength;if(o===undefined){if(h%a)throw E("Wrong length");if((i=h-s)<0)throw E("Wrong length")}else if((i=p(o)*a)+s>h)throw E("Wrong length");l=i/a}else l=m(t),r=new M(i=l*a);for(I(e,{buffer:r,byteOffset:s,byteLength:i,length:l,view:new O(r)});ddocument.F=Object<\/script>"),e.close(),p=e.F;n--;)delete p[d][a[n]];return p()};e.exports=Object.create||function(e,t){var n;return null!==e?(s[d]=o(e),n=new s,s[d]=null,n[u]=e):n=p(),t===undefined?n:r(n,t)},i[u]=!0},function(e,t,n){"use strict";var o=n(13).f,r=n(15),a=n(11)("toStringTag");e.exports=function(e,t,n){e&&!r(e=n?e:e.prototype,a)&&o(e,a,{configurable:!0,value:t})}},function(e,t,n){"use strict";var o=n(11),r=n(42),a=n(26),i=o("unscopables"),c=Array.prototype;c[i]==undefined&&a(c,i,r(null)),e.exports=function(e){c[i][e]=!0}},function(e,t,n){"use strict";var o=n(8),r=n(31),a=n(11)("species");e.exports=function(e,t){var n,i=o(e).constructor;return i===undefined||(n=o(i)[a])==undefined?t:r(n)}},function(e,t,n){"use strict";e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){"use strict";var o=n(124),r=n(93).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return o(e,r)}},function(e,t,n){"use strict";var o=n(31);e.exports=function(e,t,n){if(o(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,o){return e.call(t,n,o)};case 3:return function(n,o,r){return e.call(t,n,o,r)}}return function(){return e.apply(t,arguments)}}},function(e,t,n){"use strict";var o=n(33),r=n(13),a=n(46);e.exports=function(e,t,n){var i=o(t);i in e?r.f(e,i,a(0,n)):e[i]=n}},function(e,t,n){"use strict";var o=n(59),r=n(6),a=n(15),i=n(13).f,c=n(58),l=n(67),u=c("meta"),d=0,s=Object.isExtensible||function(){return!0},p=function(e){i(e,u,{value:{objectID:"O"+ ++d,weakData:{}}})},m=e.exports={REQUIRED:!1,fastKey:function(e,t){if(!r(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!a(e,u)){if(!s(e))return"F";if(!t)return"E";p(e)}return e[u].objectID},getWeakData:function(e,t){if(!a(e,u)){if(!s(e))return!0;if(!t)return!1;p(e)}return e[u].weakData},onFreeze:function(e){return l&&m.REQUIRED&&s(e)&&!a(e,u)&&p(e),e}};o[u]=!0},function(e,t,n){"use strict";t.__esModule=!0,t.createLogger=void 0;n(154);var o=n(16),r=0,a=1,i=2,c=3,l=4,u=function(e,t){for(var n=arguments.length,r=new Array(n>2?n-2:0),a=2;a=i){var c=[t].concat(r).map((function(e){return"string"==typeof e?e:e instanceof Error?e.stack||String(e):JSON.stringify(e)})).filter((function(e){return e})).join(" ")+"\nUser Agent: "+navigator.userAgent;(0,o.act)(window.__ref__,"tgui:log",{log:c})}};t.createLogger=function(e){return{debug:function(){for(var t=arguments.length,n=new Array(t),o=0;od;)if((c=l[d++])!=c)return!0}else for(;u>d;d++)if((e||d in l)&&l[d]===n)return e||d||0;return!e&&-1}};e.exports={includes:i(!0),indexOf:i(!1)}},function(e,t,n){"use strict";var o=n(4),r=/#|\.prototype\./,a=function(e,t){var n=c[i(e)];return n==u||n!=l&&("function"==typeof t?o(t):!!t)},i=a.normalize=function(e){return String(e).replace(r,".").toLowerCase()},c=a.data={},l=a.NATIVE="N",u=a.POLYFILL="P";e.exports=a},function(e,t,n){"use strict";var o=n(124),r=n(93);e.exports=Object.keys||function(e){return o(e,r)}},function(e,t,n){"use strict";var o=n(6),r=n(52),a=n(11)("species");e.exports=function(e,t){var n;return r(e)&&("function"!=typeof(n=e.constructor)||n!==Array&&!r(n.prototype)?o(n)&&null===(n=n[a])&&(n=undefined):n=undefined),new(n===undefined?Array:n)(0===t?0:t)}},function(e,t,n){"use strict";var o=n(4),r=n(11),a=n(96),i=r("species");e.exports=function(e){return a>=51||!o((function(){var t=[];return(t.constructor={})[i]=function(){return{foo:1}},1!==t[e](Boolean).foo}))}},function(e,t,n){"use strict";e.exports={}},function(e,t,n){"use strict";var o=n(22);e.exports=function(e,t,n){for(var r in t)o(e,r,t[r],n);return e}},function(e,t,n){"use strict";var o=n(4);e.exports=!o((function(){return Object.isExtensible(Object.preventExtensions({}))}))},function(e,t,n){"use strict";var o=n(8),r=n(98),a=n(10),i=n(48),c=n(99),l=n(132),u=function(e,t){this.stopped=e,this.result=t};(e.exports=function(e,t,n,d,s){var p,m,f,h,C,g,b,N=i(t,n,d?2:1);if(s)p=e;else{if("function"!=typeof(m=c(e)))throw TypeError("Target is not iterable");if(r(m)){for(f=0,h=a(e.length);h>f;f++)if((C=d?N(o(b=e[f])[0],b[1]):N(e[f]))&&C instanceof u)return C;return new u(!1)}p=m.call(e)}for(g=p.next;!(b=g.call(p)).done;)if("object"==typeof(C=l(p,N,b.value,d))&&C&&C instanceof u)return C;return new u(!1)}).stop=function(e){return new u(!0,e)}},function(e,t,n){"use strict";t.__esModule=!0,t.InterfaceLockNoticeBox=void 0;var o=n(1),r=n(2);t.InterfaceLockNoticeBox=function(e){var t=e.siliconUser,n=e.locked,a=e.onLockStatusChange,i=e.accessText;return t?(0,o.createComponentVNode)(2,r.NoticeBox,{children:(0,o.createComponentVNode)(2,r.Flex,{align:"center",children:[(0,o.createComponentVNode)(2,r.Flex.Item,{children:"Interface lock status:"}),(0,o.createComponentVNode)(2,r.Flex.Item,{grow:1}),(0,o.createComponentVNode)(2,r.Flex.Item,{children:(0,o.createComponentVNode)(2,r.Button,{m:0,color:"gray",icon:n?"lock":"unlock",content:n?"Locked":"Unlocked",onClick:function(){a&&a(!n)}})})]})}):(0,o.createComponentVNode)(2,r.NoticeBox,{children:["Swipe ",i||"an ID card"," ","to ",n?"unlock":"lock"," this interface."]})}},function(e,t,n){"use strict";t.__esModule=!0,t.compose=t.flow=void 0;t.flow=function o(){for(var e=arguments.length,t=new Array(e),n=0;n1?r-1:0),i=1;i=c.length)break;d=c[u++]}else{if((u=c.next()).done)break;d=u.value}var s=d;Array.isArray(s)?n=o.apply(void 0,s).apply(void 0,[n].concat(a)):s&&(n=s.apply(void 0,[n].concat(a)))}return n}};t.compose=function(){for(var e=arguments.length,t=new Array(e),n=0;n1?o-1:0),a=1;a=0:s>p;p+=m)p in d&&(l=n(l,d[p],p,u));return l}};e.exports={left:c(!1),right:c(!0)}},function(e,t,n){"use strict";var o=n(5),r=n(9),a=n(7).NATIVE_ARRAY_BUFFER,i=n(26),c=n(66),l=n(4),u=n(55),d=n(30),s=n(10),p=n(137),m=n(218),f=n(47).f,h=n(13).f,C=n(97),g=n(43),b=n(34),N=b.get,v=b.set,V="ArrayBuffer",y="DataView",_="Wrong length",x=o[V],k=x,L=o[y],w=o.RangeError,B=m.pack,S=m.unpack,I=function(e){return[255&e]},T=function(e){return[255&e,e>>8&255]},A=function(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]},P=function(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]},E=function(e){return B(e,23,4)},M=function(e){return B(e,52,8)},O=function(e,t){h(e.prototype,t,{get:function(){return N(this)[t]}})},R=function(e,t,n,o){var r=p(n),a=N(e);if(r+t>a.byteLength)throw w("Wrong index");var i=N(a.buffer).bytes,c=r+a.byteOffset,l=i.slice(c,c+t);return o?l:l.reverse()},F=function(e,t,n,o,r,a){var i=p(n),c=N(e);if(i+t>c.byteLength)throw w("Wrong index");for(var l=N(c.buffer).bytes,u=i+c.byteOffset,d=o(+r),s=0;sH;)(D=z[H++])in k||i(k,D,x[D]);j.constructor=k}var G=new L(new k(2)),U=L.prototype.setInt8;G.setInt8(0,2147483648),G.setInt8(1,2147483649),!G.getInt8(0)&&G.getInt8(1)||c(L.prototype,{setInt8:function(e,t){U.call(this,e,t<<24>>24)},setUint8:function(e,t){U.call(this,e,t<<24>>24)}},{unsafe:!0})}else k=function(e){u(this,k,V);var t=p(e);v(this,{bytes:C.call(new Array(t),0),byteLength:t}),r||(this.byteLength=t)},L=function(e,t,n){u(this,L,y),u(e,k,y);var o=N(e).byteLength,a=d(t);if(a<0||a>o)throw w("Wrong offset");if(a+(n=n===undefined?o-a:s(n))>o)throw w(_);v(this,{buffer:e,byteLength:n,byteOffset:a}),r||(this.buffer=e,this.byteLength=n,this.byteOffset=a)},r&&(O(k,"byteLength"),O(L,"buffer"),O(L,"byteLength"),O(L,"byteOffset")),c(L.prototype,{getInt8:function(e){return R(this,1,e)[0]<<24>>24},getUint8:function(e){return R(this,1,e)[0]},getInt16:function(e){var t=R(this,2,e,arguments.length>1?arguments[1]:undefined);return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=R(this,2,e,arguments.length>1?arguments[1]:undefined);return t[1]<<8|t[0]},getInt32:function(e){return P(R(this,4,e,arguments.length>1?arguments[1]:undefined))},getUint32:function(e){return P(R(this,4,e,arguments.length>1?arguments[1]:undefined))>>>0},getFloat32:function(e){return S(R(this,4,e,arguments.length>1?arguments[1]:undefined),23)},getFloat64:function(e){return S(R(this,8,e,arguments.length>1?arguments[1]:undefined),52)},setInt8:function(e,t){F(this,1,e,I,t)},setUint8:function(e,t){F(this,1,e,I,t)},setInt16:function(e,t){F(this,2,e,T,t,arguments.length>2?arguments[2]:undefined)},setUint16:function(e,t){F(this,2,e,T,t,arguments.length>2?arguments[2]:undefined)},setInt32:function(e,t){F(this,4,e,A,t,arguments.length>2?arguments[2]:undefined)},setUint32:function(e,t){F(this,4,e,A,t,arguments.length>2?arguments[2]:undefined)},setFloat32:function(e,t){F(this,4,e,E,t,arguments.length>2?arguments[2]:undefined)},setFloat64:function(e,t){F(this,8,e,M,t,arguments.length>2?arguments[2]:undefined)}});g(k,V),g(L,y),e.exports={ArrayBuffer:k,DataView:L}},function(e,t,n){"use strict";var o=n(0),r=n(5),a=n(61),i=n(22),c=n(50),l=n(68),u=n(55),d=n(6),s=n(4),p=n(75),m=n(43),f=n(79);e.exports=function(e,t,n){var h=-1!==e.indexOf("Map"),C=-1!==e.indexOf("Weak"),g=h?"set":"add",b=r[e],N=b&&b.prototype,v=b,V={},y=function(e){var t=N[e];i(N,e,"add"==e?function(e){return t.call(this,0===e?0:e),this}:"delete"==e?function(e){return!(C&&!d(e))&&t.call(this,0===e?0:e)}:"get"==e?function(e){return C&&!d(e)?undefined:t.call(this,0===e?0:e)}:"has"==e?function(e){return!(C&&!d(e))&&t.call(this,0===e?0:e)}:function(e,n){return t.call(this,0===e?0:e,n),this})};if(a(e,"function"!=typeof b||!(C||N.forEach&&!s((function(){(new b).entries().next()})))))v=n.getConstructor(t,e,h,g),c.REQUIRED=!0;else if(a(e,!0)){var _=new v,x=_[g](C?{}:-0,1)!=_,k=s((function(){_.has(1)})),L=p((function(e){new b(e)})),w=!C&&s((function(){for(var e=new b,t=5;t--;)e[g](t,t);return!e.has(-0)}));L||((v=t((function(t,n){u(t,v,e);var o=f(new b,t,v);return n!=undefined&&l(n,o[g],o,h),o}))).prototype=N,N.constructor=v),(k||w)&&(y("delete"),y("has"),h&&y("get")),(w||x)&&y(g),C&&N.clear&&delete N.clear}return V[e]=v,o({global:!0,forced:v!=b},V),m(v,e),C||n.setStrong(v,e,h),v}},function(e,t,n){"use strict";var o=n(6),r=n(53);e.exports=function(e,t,n){var a,i;return r&&"function"==typeof(a=t.constructor)&&a!==n&&o(i=a.prototype)&&i!==n.prototype&&r(e,i),e}},function(e,t,n){"use strict";var o=Math.expm1,r=Math.exp;e.exports=!o||o(10)>22025.465794806718||o(10)<22025.465794806718||-2e-17!=o(-2e-17)?function(e){return 0==(e=+e)?e:e>-1e-6&&e<1e-6?e+e*e/2:r(e)-1}:o},function(e,t,n){"use strict";e.exports="\t\n\x0B\f\r \xa0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff"},function(e,t,n){"use strict";var o=n(38),r=n(5),a=n(4);e.exports=o||!a((function(){var e=Math.random();__defineSetter__.call(null,e,(function(){})),delete r[e]}))},function(e,t,n){"use strict";var o=n(8);e.exports=function(){var e=o(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t}},function(e,t,n){"use strict";var o,r,a=n(83),i=RegExp.prototype.exec,c=String.prototype.replace,l=i,u=(o=/a/,r=/b*/g,i.call(o,"a"),i.call(r,"a"),0!==o.lastIndex||0!==r.lastIndex),d=/()??/.exec("")[1]!==undefined;(u||d)&&(l=function(e){var t,n,o,r,l=this;return d&&(n=new RegExp("^"+l.source+"$(?!\\s)",a.call(l))),u&&(t=l.lastIndex),o=i.call(l,e),u&&o&&(l.lastIndex=l.global?o.index+o[0].length:t),d&&o&&o.length>1&&c.call(o[0],n,(function(){for(r=1;r")})),d=!a((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,s){var p=i(e),m=!a((function(){var t={};return t[p]=function(){return 7},7!=""[e](t)})),f=m&&!a((function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[l]=function(){return n},n.flags="",n[p]=/./[p]),n.exec=function(){return t=!0,null},n[p](""),!t}));if(!m||!f||"replace"===e&&!u||"split"===e&&!d){var h=/./[p],C=n(p,""[e],(function(e,t,n,o,r){return t.exec===c?m&&!r?{done:!0,value:h.call(t,n,o)}:{done:!0,value:e.call(n,t,o)}:{done:!1}})),g=C[0],b=C[1];r(String.prototype,e,g),r(RegExp.prototype,p,2==t?function(e,t){return b.call(e,this,t)}:function(e){return b.call(e,this)}),s&&o(RegExp.prototype[p],"sham",!0)}}},function(e,t,n){"use strict";var o=n(32),r=n(84);e.exports=function(e,t){var n=e.exec;if("function"==typeof n){var a=n.call(e,t);if("object"!=typeof a)throw TypeError("RegExp exec method returned something other than an Object or null");return a}if("RegExp"!==o(e))throw TypeError("RegExp#exec called on incompatible receiver");return r.call(e,t)}},function(e,t,n){"use strict";t.__esModule=!0,t.Icon=void 0;var o=n(1),r=n(12),a=n(19);var i=/-o$/,c=function(e){var t=e.name,n=e.size,c=e.spin,l=e.className,u=e.style,d=void 0===u?{}:u,s=e.rotation,p=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["name","size","spin","className","style","rotation"]);n&&(d["font-size"]=100*n+"%"),"number"==typeof s&&(d.transform="rotate("+s+"deg)");var m=i.test(t),f=t.replace(i,"");return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({as:"i",className:(0,r.classes)([l,m?"far":"fas","fa-"+f,c&&"fa-spin"]),style:d},p)))};t.Icon=c,c.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";var o=n(5),r=n(6),a=o.document,i=r(a)&&r(a.createElement);e.exports=function(e){return i?a.createElement(e):{}}},function(e,t,n){"use strict";var o=n(5),r=n(26);e.exports=function(e,t){try{r(o,e,t)}catch(n){o[e]=t}return t}},function(e,t,n){"use strict";var o=n(120),r=Function.toString;"function"!=typeof o.inspectSource&&(o.inspectSource=function(e){return r.call(e)}),e.exports=o.inspectSource},function(e,t,n){"use strict";var o=n(38),r=n(120);(e.exports=function(e,t){return r[e]||(r[e]=t!==undefined?t:{})})("versions",[]).push({version:"3.4.8",mode:o?"pure":"global",copyright:"\xa9 2019 Denis Pushkarev (zloirock.ru)"})},function(e,t,n){"use strict";var o=n(35),r=n(47),a=n(94),i=n(8);e.exports=o("Reflect","ownKeys")||function(e){var t=r.f(i(e)),n=a.f;return n?t.concat(n(e)):t}},function(e,t,n){"use strict";e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},function(e,t,n){"use strict";t.f=Object.getOwnPropertySymbols},function(e,t,n){"use strict";var o=n(4);e.exports=!!Object.getOwnPropertySymbols&&!o((function(){return!String(Symbol())}))},function(e,t,n){"use strict";var o,r,a=n(5),i=n(73),c=a.process,l=c&&c.versions,u=l&&l.v8;u?r=(o=u.split("."))[0]+o[1]:i&&(!(o=i.match(/Edge\/(\d+)/))||o[1]>=74)&&(o=i.match(/Chrome\/(\d+)/))&&(r=o[1]),e.exports=r&&+r},function(e,t,n){"use strict";var o=n(14),r=n(41),a=n(10);e.exports=function(e){for(var t=o(this),n=a(t.length),i=arguments.length,c=r(i>1?arguments[1]:undefined,n),l=i>2?arguments[2]:undefined,u=l===undefined?n:r(l,n);u>c;)t[c++]=e;return t}},function(e,t,n){"use strict";var o=n(11),r=n(65),a=o("iterator"),i=Array.prototype;e.exports=function(e){return e!==undefined&&(r.Array===e||i[a]===e)}},function(e,t,n){"use strict";var o=n(74),r=n(65),a=n(11)("iterator");e.exports=function(e){if(e!=undefined)return e[a]||e["@@iterator"]||r[o(e)]}},function(e,t,n){"use strict";var o={};o[n(11)("toStringTag")]="z",e.exports="[object z]"===String(o)},function(e,t,n){"use strict";var o=n(0),r=n(203),a=n(36),i=n(53),c=n(43),l=n(26),u=n(22),d=n(11),s=n(38),p=n(65),m=n(134),f=m.IteratorPrototype,h=m.BUGGY_SAFARI_ITERATORS,C=d("iterator"),g=function(){return this};e.exports=function(e,t,n,d,m,b,N){r(n,t,d);var v,V,y,_=function(e){if(e===m&&B)return B;if(!h&&e in L)return L[e];switch(e){case"keys":case"values":case"entries":return function(){return new n(this,e)}}return function(){return new n(this)}},x=t+" Iterator",k=!1,L=e.prototype,w=L[C]||L["@@iterator"]||m&&L[m],B=!h&&w||_(m),S="Array"==t&&L.entries||w;if(S&&(v=a(S.call(new e)),f!==Object.prototype&&v.next&&(s||a(v)===f||(i?i(v,f):"function"!=typeof v[C]&&l(v,C,g)),c(v,x,!0,!0),s&&(p[x]=g))),"values"==m&&w&&"values"!==w.name&&(k=!0,B=function(){return w.call(this)}),s&&!N||L[C]===B||l(L,C,B),p[t]=B,m)if(V={values:_("values"),keys:b?B:_("keys"),entries:_("entries")},N)for(y in V)!h&&!k&&y in L||u(L,y,V[y]);else o({target:t,proto:!0,forced:h||k},V);return V}},function(e,t,n){"use strict";var o=n(4);e.exports=!o((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype}))},function(e,t,n){"use strict";var o=n(10),r=n(104),a=n(21),i=Math.ceil,c=function(e){return function(t,n,c){var l,u,d=String(a(t)),s=d.length,p=c===undefined?" ":String(c),m=o(n);return m<=s||""==p?d:(l=m-s,(u=r.call(p,i(l/p.length))).length>l&&(u=u.slice(0,l)),e?d+u:u+d)}};e.exports={start:c(!1),end:c(!0)}},function(e,t,n){"use strict";var o=n(30),r=n(21);e.exports="".repeat||function(e){var t=String(r(this)),n="",a=o(e);if(a<0||a==Infinity)throw RangeError("Wrong number of repetitions");for(;a>0;(a>>>=1)&&(t+=t))1&a&&(n+=t);return n}},function(e,t,n){"use strict";e.exports=Math.sign||function(e){return 0==(e=+e)||e!=e?e:e<0?-1:1}},function(e,t,n){"use strict";var o,r,a,i=n(5),c=n(4),l=n(32),u=n(48),d=n(127),s=n(88),p=n(146),m=i.location,f=i.setImmediate,h=i.clearImmediate,C=i.process,g=i.MessageChannel,b=i.Dispatch,N=0,v={},V=function(e){if(v.hasOwnProperty(e)){var t=v[e];delete v[e],t()}},y=function(e){return function(){V(e)}},_=function(e){V(e.data)},x=function(e){i.postMessage(e+"",m.protocol+"//"+m.host)};f&&h||(f=function(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++]);return v[++N]=function(){("function"==typeof e?e:Function(e)).apply(undefined,t)},o(N),N},h=function(e){delete v[e]},"process"==l(C)?o=function(e){C.nextTick(y(e))}:b&&b.now?o=function(e){b.now(y(e))}:g&&!p?(a=(r=new g).port2,r.port1.onmessage=_,o=u(a.postMessage,a,1)):!i.addEventListener||"function"!=typeof postMessage||i.importScripts||c(x)?o="onreadystatechange"in s("script")?function(e){d.appendChild(s("script")).onreadystatechange=function(){d.removeChild(this),V(e)}}:function(e){setTimeout(y(e),0)}:(o=x,i.addEventListener("message",_,!1))),e.exports={set:f,clear:h}},function(e,t,n){"use strict";var o=n(6),r=n(32),a=n(11)("match");e.exports=function(e){var t;return o(e)&&((t=e[a])!==undefined?!!t:"RegExp"==r(e))}},function(e,t,n){"use strict";var o=n(30),r=n(21),a=function(e){return function(t,n){var a,i,c=String(r(t)),l=o(n),u=c.length;return l<0||l>=u?e?"":undefined:(a=c.charCodeAt(l))<55296||a>56319||l+1===u||(i=c.charCodeAt(l+1))<56320||i>57343?e?c.charAt(l):a:e?c.slice(l,l+2):i-56320+(a-55296<<10)+65536}};e.exports={codeAt:a(!1),charAt:a(!0)}},function(e,t,n){"use strict";var o=n(107);e.exports=function(e){if(o(e))throw TypeError("The method doesn't accept regular expressions");return e}},function(e,t,n){"use strict";var o=n(11)("match");e.exports=function(e){var t=/./;try{"/./"[e](t)}catch(n){try{return t[o]=!1,"/./"[e](t)}catch(r){}}return!1}},function(e,t,n){"use strict";var o=n(108).charAt;e.exports=function(e,t,n){return t+(n?o(e,t).length:1)}},function(e,t,n){"use strict";var o=n(4),r=n(81);e.exports=function(e){return o((function(){return!!r[e]()||"\u200b\x85\u180e"!="\u200b\x85\u180e"[e]()||r[e].name!==e}))}},function(e,t,n){"use strict";var o=n(5),r=n(4),a=n(75),i=n(7).NATIVE_ARRAY_BUFFER_VIEWS,c=o.ArrayBuffer,l=o.Int8Array;e.exports=!i||!r((function(){l(1)}))||!r((function(){new l(-1)}))||!a((function(e){new l,new l(null),new l(1.5),new l(e)}),!0)||r((function(){return 1!==new l(new c(2),1,undefined).length}))},function(e,t,n){"use strict";t.__esModule=!0,t.ButtonInput=t.ButtonConfirm=t.ButtonCheckbox=t.Button=void 0;var o=n(1),r=n(12),a=n(16),i=n(115),c=n(51),l=n(116),u=n(19),d=n(87),s=n(159);n(160),n(161);function p(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function m(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var f=(0,c.createLogger)("Button"),h=function(e){var t=e.className,n=e.fluid,c=e.icon,p=e.color,h=e.disabled,C=e.selected,g=e.tooltip,b=e.tooltipPosition,N=e.ellipsis,v=e.content,V=e.iconRotation,y=e.iconSpin,_=e.children,x=e.onclick,k=e.onClick,L=m(e,["className","fluid","icon","color","disabled","selected","tooltip","tooltipPosition","ellipsis","content","iconRotation","iconSpin","children","onclick","onClick"]),w=!(!v&&!_);return x&&f.warn("Lowercase 'onclick' is not supported on Button and lowercase prop names are discouraged in general. Please use a camelCase'onClick' instead and read: https://infernojs.org/docs/guides/event-handling"),(0,o.normalizeProps)((0,o.createComponentVNode)(2,u.Box,Object.assign({as:"span",className:(0,r.classes)(["Button",n&&"Button--fluid",h&&"Button--disabled",C&&"Button--selected",w&&"Button--hasContent",N&&"Button--ellipsis",p&&"string"==typeof p?"Button--color--"+p:"Button--color--default",t]),tabIndex:!h&&"0",unselectable:a.tridentVersion<=4,onclick:function(e){(0,l.refocusLayout)(),!h&&k&&k(e)},onKeyDown:function(e){var t=window.event?e.which:e.keyCode;return t===i.KEY_SPACE||t===i.KEY_ENTER?(e.preventDefault(),void(!h&&k&&k(e))):t===i.KEY_ESCAPE?(e.preventDefault(),void(0,l.refocusLayout)()):void 0}},L,{children:[c&&(0,o.createComponentVNode)(2,d.Icon,{name:c,rotation:V,spin:y}),v,_,g&&(0,o.createComponentVNode)(2,s.Tooltip,{content:g,position:b})]})))};t.Button=h,h.defaultHooks=r.pureComponentHooks;var C=function(e){var t=e.checked,n=m(e,["checked"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,h,Object.assign({color:"transparent",icon:t?"check-square-o":"square-o",selected:t},n)))};t.ButtonCheckbox=C,h.Checkbox=C;var g=function(e){function t(){var t;return(t=e.call(this)||this).state={clickedOnce:!1},t.handleClick=function(){t.state.clickedOnce&&t.setClickedOnce(!1)},t}p(t,e);var n=t.prototype;return n.setClickedOnce=function(e){var t=this;this.setState({clickedOnce:e}),e?setTimeout((function(){return window.addEventListener("click",t.handleClick)})):window.removeEventListener("click",this.handleClick)},n.render=function(){var e=this,t=this.props,n=t.confirmMessage,r=void 0===n?"Confirm?":n,a=t.confirmColor,i=void 0===a?"bad":a,c=t.color,l=t.content,u=t.onClick,d=m(t,["confirmMessage","confirmColor","color","content","onClick"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,h,Object.assign({content:this.state.clickedOnce?r:l,color:this.state.clickedOnce?i:c,onClick:function(){return e.state.clickedOnce?u():e.setClickedOnce(!0)}},d)))},t}(o.Component);t.ButtonConfirm=g,h.Confirm=g;var b=function(e){function t(){var t;return(t=e.call(this)||this).inputRef=(0,o.createRef)(),t.state={inInput:!1},t}p(t,e);var n=t.prototype;return n.setInInput=function(e){if(this.setState({inInput:e}),this.inputRef){var t=this.inputRef.current;if(e){t.value=this.props.currentValue||"";try{t.focus(),t.select()}catch(n){}}}},n.commitResult=function(e){if(this.inputRef){var t=this.inputRef.current;if(""!==t.value)return void this.props.onCommit(e,t.value);if(!this.props.defaultValue)return;this.props.onCommit(e,this.props.defaultValue)}},n.render=function(){var e=this,t=this.props,n=t.fluid,a=t.content,c=t.color,l=void 0===c?"default":c,d=(t.placeholder,t.maxLength,m(t,["fluid","content","color","placeholder","maxLength"]));return(0,o.normalizeProps)((0,o.createComponentVNode)(2,u.Box,Object.assign({className:(0,r.classes)(["Button",n&&"Button--fluid","Button--color--"+l])},d,{onClick:function(){return e.setInInput(!0)},children:[(0,o.createVNode)(1,"div",null,a,0),(0,o.createVNode)(64,"input","NumberInput__input",null,1,{style:{display:this.state.inInput?undefined:"none","text-align":"left"},onBlur:function(t){e.state.inInput&&(e.setInInput(!1),e.commitResult(t))},onKeyDown:function(t){if(t.keyCode===i.KEY_ENTER)return e.setInInput(!1),void e.commitResult(t);t.keyCode===i.KEY_ESCAPE&&e.setInInput(!1)}},null,this.inputRef)]})))},t}(o.Component);t.ButtonInput=b,h.Input=b},function(e,t,n){"use strict";t.__esModule=!0,t.hotKeyReducer=t.hotKeyMiddleware=t.releaseHeldKeys=t.KEY_MINUS=t.KEY_EQUAL=t.KEY_Z=t.KEY_Y=t.KEY_X=t.KEY_W=t.KEY_V=t.KEY_U=t.KEY_T=t.KEY_S=t.KEY_R=t.KEY_Q=t.KEY_P=t.KEY_O=t.KEY_N=t.KEY_M=t.KEY_L=t.KEY_K=t.KEY_J=t.KEY_I=t.KEY_H=t.KEY_G=t.KEY_F=t.KEY_E=t.KEY_D=t.KEY_C=t.KEY_B=t.KEY_A=t.KEY_9=t.KEY_8=t.KEY_7=t.KEY_6=t.KEY_5=t.KEY_4=t.KEY_3=t.KEY_2=t.KEY_1=t.KEY_0=t.KEY_SPACE=t.KEY_ESCAPE=t.KEY_ALT=t.KEY_CTRL=t.KEY_SHIFT=t.KEY_ENTER=t.KEY_TAB=t.KEY_BACKSPACE=void 0;var o=n(51),r=n(16),a=(0,o.createLogger)("hotkeys");t.KEY_BACKSPACE=8;t.KEY_TAB=9;t.KEY_ENTER=13;t.KEY_SHIFT=16;t.KEY_CTRL=17;t.KEY_ALT=18;t.KEY_ESCAPE=27;t.KEY_SPACE=32;t.KEY_0=48;t.KEY_1=49;t.KEY_2=50;t.KEY_3=51;t.KEY_4=52;t.KEY_5=53;t.KEY_6=54;t.KEY_7=55;t.KEY_8=56;t.KEY_9=57;t.KEY_A=65;t.KEY_B=66;t.KEY_C=67;t.KEY_D=68;t.KEY_E=69;t.KEY_F=70;t.KEY_G=71;t.KEY_H=72;t.KEY_I=73;t.KEY_J=74;t.KEY_K=75;t.KEY_L=76;t.KEY_M=77;t.KEY_N=78;t.KEY_O=79;t.KEY_P=80;t.KEY_Q=81;t.KEY_R=82;t.KEY_S=83;t.KEY_T=84;t.KEY_U=85;t.KEY_V=86;t.KEY_W=87;t.KEY_X=88;t.KEY_Y=89;t.KEY_Z=90;t.KEY_EQUAL=187;t.KEY_MINUS=189;var i=[17,18,16],c=[27,13,32,9,17,16],l={},u=function(e,t,n,o){var r="";return e&&(r+="Ctrl+"),t&&(r+="Alt+"),n&&(r+="Shift+"),r+=o>=48&&o<=90?String.fromCharCode(o):"["+o+"]"},d=function(e){var t=window.event?e.which:e.keyCode,n=e.ctrlKey,o=e.altKey,r=e.shiftKey;return{keyCode:t,ctrlKey:n,altKey:o,shiftKey:r,hasModifierKeys:n||o||r,keyString:u(n,o,r,t)}},s=function(){for(var e=0,t=Object.keys(l);e4&&function(e,t){if(!e.defaultPrevented){var n=e.target&&e.target.localName;if("input"!==n&&"textarea"!==n){var o=d(e),i=o.keyCode,u=o.ctrlKey,s=o.shiftKey;u||s||c.includes(i)||("keydown"!==t||l[i]?"keyup"===t&&l[i]&&(a.debug("passthrough",t,o),(0,r.callByond)("",{__keyup:i})):(a.debug("passthrough",t,o),(0,r.callByond)("",{__keydown:i})))}}}(e,t),function(e,t,n){if("keyup"===t){var o=d(e),r=o.ctrlKey,c=o.altKey,l=o.keyCode,u=o.hasModifierKeys,s=o.keyString;u&&!i.includes(l)&&(a.log(s),r&&c&&8===l&&setTimeout((function(){throw new Error("OOPSIE WOOPSIE!! UwU We made a fucky wucky!! A wittle fucko boingo! The code monkeys at our headquarters are working VEWY HAWD to fix this!")})),n({type:"hotKey",payload:o}))}}(e,t,n)},document.addEventListener("keydown",(function(e){var n=window.event?e.which:e.keyCode;t(e,"keydown"),l[n]=!0})),document.addEventListener("keyup",(function(e){var n=window.event?e.which:e.keyCode;t(e,"keyup"),l[n]=!1})),r.tridentVersion>4&&function(e){var t;document.addEventListener("focusout",(function(){t=setTimeout(e)})),document.addEventListener("focusin",(function(){clearTimeout(t)})),window.addEventListener("beforeunload",e)}((function(){s()})),function(e){return function(t){return e(t)}}};t.hotKeyReducer=function(e,t){var n=t.type,o=t.payload;if("hotKey"===n){var r=o.ctrlKey,a=o.altKey,i=o.keyCode;return r&&a&&187===i?Object.assign({},e,{showKitchenSink:!e.showKitchenSink}):e}return e}},function(e,t,n){"use strict";t.__esModule=!0,t.refocusLayout=void 0;var o=n(16);t.refocusLayout=function(){if(!(o.tridentVersion<=4)){var e=document.getElementById("Layout__content");e&&e.focus()}}},function(e,t,n){"use strict";t.__esModule=!0,t.toastReducer=t.showToast=t.Toast=void 0;var o,r=n(1),a=n(12),i=function(e){var t=e.content,n=e.children;return(0,r.createVNode)(1,"div","Layout__toast",[t,n],0)};t.Toast=i,i.defaultHooks=a.pureComponentHooks;t.showToast=function(e,t){o&&clearTimeout(o),o=setTimeout((function(){o=undefined,e({type:"hideToast"})}),5e3),e({type:"showToast",payload:{text:t}})};t.toastReducer=function(e,t){var n=t.type,o=t.payload;if("showToast"===n){var r=o.text;return Object.assign({},e,{toastText:r})}return"hideToast"===n?Object.assign({},e,{toastText:null}):e}},function(e,t,n){"use strict";var o;o=function(){return this}();try{o=o||new Function("return this")()}catch(r){"object"==typeof window&&(o=window)}e.exports=o},function(e,t,n){"use strict";var o=n(9),r=n(4),a=n(88);e.exports=!o&&!r((function(){return 7!=Object.defineProperty(a("div"),"a",{get:function(){return 7}}).a}))},function(e,t,n){"use strict";var o=n(5),r=n(89),a=o["__core-js_shared__"]||r("__core-js_shared__",{});e.exports=a},function(e,t,n){"use strict";var o=n(5),r=n(90),a=o.WeakMap;e.exports="function"==typeof a&&/native code/.test(r(a))},function(e,t,n){"use strict";var o=n(15),r=n(92),a=n(20),i=n(13);e.exports=function(e,t){for(var n=r(t),c=i.f,l=a.f,u=0;ul;)o(c,n=t[l++])&&(~a(u,n)||u.push(n));return u}},function(e,t,n){"use strict";var o=n(95);e.exports=o&&!Symbol.sham&&"symbol"==typeof Symbol()},function(e,t,n){"use strict";var o=n(9),r=n(13),a=n(8),i=n(62);e.exports=o?Object.defineProperties:function(e,t){a(e);for(var n,o=i(t),c=o.length,l=0;c>l;)r.f(e,n=o[l++],t[n]);return e}},function(e,t,n){"use strict";var o=n(35);e.exports=o("document","documentElement")},function(e,t,n){"use strict";var o=n(25),r=n(47).f,a={}.toString,i="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],c=function(e){try{return r(e)}catch(t){return i.slice()}};e.exports.f=function(e){return i&&"[object Window]"==a.call(e)?c(e):r(o(e))}},function(e,t,n){"use strict";var o=n(11);t.f=o},function(e,t,n){"use strict";var o=n(14),r=n(41),a=n(10),i=Math.min;e.exports=[].copyWithin||function(e,t){var n=o(this),c=a(n.length),l=r(e,c),u=r(t,c),d=arguments.length>2?arguments[2]:undefined,s=i((d===undefined?c:r(d,c))-u,c-l),p=1;for(u0;)u in n?n[l]=n[u]:delete n[l],l+=p,u+=p;return n}},function(e,t,n){"use strict";var o=n(52),r=n(10),a=n(48);e.exports=function i(e,t,n,c,l,u,d,s){for(var p,m=l,f=0,h=!!d&&a(d,s,3);f0&&o(p))m=i(e,t,p,r(p.length),m,u-1)-1;else{if(m>=9007199254740991)throw TypeError("Exceed the acceptable array length");e[m]=p}m++}f++}return m}},function(e,t,n){"use strict";var o=n(8);e.exports=function(e,t,n,r){try{return r?t(o(n)[0],n[1]):t(n)}catch(i){var a=e["return"];throw a!==undefined&&o(a.call(e)),i}}},function(e,t,n){"use strict";var o=n(25),r=n(44),a=n(65),i=n(34),c=n(101),l=i.set,u=i.getterFor("Array Iterator");e.exports=c(Array,"Array",(function(e,t){l(this,{type:"Array Iterator",target:o(e),index:0,kind:t})}),(function(){var e=u(this),t=e.target,n=e.kind,o=e.index++;return!t||o>=t.length?(e.target=undefined,{value:undefined,done:!0}):"keys"==n?{value:o,done:!1}:"values"==n?{value:t[o],done:!1}:{value:[o,t[o]],done:!1}}),"values"),a.Arguments=a.Array,r("keys"),r("values"),r("entries")},function(e,t,n){"use strict";var o,r,a,i=n(36),c=n(26),l=n(15),u=n(11),d=n(38),s=u("iterator"),p=!1;[].keys&&("next"in(a=[].keys())?(r=i(i(a)))!==Object.prototype&&(o=r):p=!0),o==undefined&&(o={}),d||l(o,s)||c(o,s,(function(){return this})),e.exports={IteratorPrototype:o,BUGGY_SAFARI_ITERATORS:p}},function(e,t,n){"use strict";var o=n(6);e.exports=function(e){if(!o(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e}},function(e,t,n){"use strict";var o=n(25),r=n(30),a=n(10),i=n(39),c=Math.min,l=[].lastIndexOf,u=!!l&&1/[1].lastIndexOf(1,-0)<0,d=i("lastIndexOf");e.exports=u||d?function(e){if(u)return l.apply(this,arguments)||0;var t=o(this),n=a(t.length),i=n-1;for(arguments.length>1&&(i=c(i,r(arguments[1]))),i<0&&(i=n+i);i>=0;i--)if(i in t&&t[i]===e)return i||0;return-1}:l},function(e,t,n){"use strict";var o=n(30),r=n(10);e.exports=function(e){if(e===undefined)return 0;var t=o(e),n=r(t);if(t!==n)throw RangeError("Wrong length or index");return n}},function(e,t,n){"use strict";var o=n(31),r=n(6),a=[].slice,i={},c=function(e,t,n){if(!(t in i)){for(var o=[],r=0;r1?arguments[1]:undefined,3);t=t?t.next:n.first;)for(o(t.value,t.key,this);t&&t.removed;)t=t.previous},has:function(e){return!!g(this,e)}}),a(d.prototype,n?{get:function(e){var t=g(this,e);return t&&t.value},set:function(e,t){return C(this,0===e?0:e,t)}}:{add:function(e){return C(this,e=0===e?0:e,e)}}),s&&o(d.prototype,"size",{get:function(){return m(this).size}}),d},setStrong:function(e,t,n){var o=t+" Iterator",r=h(t),a=h(o);u(e,t,(function(e,t){f(this,{type:o,target:e,state:r(e),kind:t,last:undefined})}),(function(){for(var e=a(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),d(t)}}},function(e,t,n){"use strict";var o=Math.log;e.exports=Math.log1p||function(e){return(e=+e)>-1e-8&&e<1e-8?e-e*e/2:o(1+e)}},function(e,t,n){"use strict";var o=n(6),r=Math.floor;e.exports=function(e){return!o(e)&&isFinite(e)&&r(e)===e}},function(e,t,n){"use strict";var o=n(5),r=n(56).trim,a=n(81),i=o.parseInt,c=/^[+-]?0[Xx]/,l=8!==i(a+"08")||22!==i(a+"0x16");e.exports=l?function(e,t){var n=r(String(e));return i(n,t>>>0||(c.test(n)?16:10))}:i},function(e,t,n){"use strict";var o=n(9),r=n(62),a=n(25),i=n(71).f,c=function(e){return function(t){for(var n,c=a(t),l=r(c),u=l.length,d=0,s=[];u>d;)n=l[d++],o&&!i.call(c,n)||s.push(e?[n,c[n]]:c[n]);return s}};e.exports={entries:c(!0),values:c(!1)}},function(e,t,n){"use strict";e.exports=Object.is||function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}},function(e,t,n){"use strict";var o=n(5);e.exports=o.Promise},function(e,t,n){"use strict";var o=n(73);e.exports=/(iphone|ipod|ipad).*applewebkit/i.test(o)},function(e,t,n){"use strict";var o,r,a,i,c,l,u,d,s=n(5),p=n(20).f,m=n(32),f=n(106).set,h=n(146),C=s.MutationObserver||s.WebKitMutationObserver,g=s.process,b=s.Promise,N="process"==m(g),v=p(s,"queueMicrotask"),V=v&&v.value;V||(o=function(){var e,t;for(N&&(e=g.domain)&&e.exit();r;){t=r.fn,r=r.next;try{t()}catch(n){throw r?i():a=undefined,n}}a=undefined,e&&e.enter()},N?i=function(){g.nextTick(o)}:C&&!h?(c=!0,l=document.createTextNode(""),new C(o).observe(l,{characterData:!0}),i=function(){l.data=c=!c}):b&&b.resolve?(u=b.resolve(undefined),d=u.then,i=function(){d.call(u,o)}):i=function(){f.call(s,o)}),e.exports=V||function(e){var t={fn:e,next:undefined};a&&(a.next=t),r||(r=t,i()),a=t}},function(e,t,n){"use strict";var o=n(8),r=n(6),a=n(149);e.exports=function(e,t){if(o(e),r(t)&&t.constructor===e)return t;var n=a.f(e);return(0,n.resolve)(t),n.promise}},function(e,t,n){"use strict";var o=n(31),r=function(e){var t,n;this.promise=new e((function(e,o){if(t!==undefined||n!==undefined)throw TypeError("Bad Promise constructor");t=e,n=o})),this.resolve=o(t),this.reject=o(n)};e.exports.f=function(e){return new r(e)}},function(e,t,n){"use strict";var o=n(73);e.exports=/Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(o)},function(e,t,n){"use strict";var o=n(348);e.exports=function(e,t){var n=o(e);if(n%t)throw RangeError("Wrong offset");return n}},function(e,t,n){"use strict";var o=n(14),r=n(10),a=n(99),i=n(98),c=n(48),l=n(7).aTypedArrayConstructor;e.exports=function(e){var t,n,u,d,s,p,m=o(e),f=arguments.length,h=f>1?arguments[1]:undefined,C=h!==undefined,g=a(m);if(g!=undefined&&!i(g))for(p=(s=g.call(m)).next,m=[];!(d=p.call(s)).done;)m.push(d.value);for(C&&f>2&&(h=c(h,arguments[2],2)),n=r(m.length),u=new(l(this))(n),t=0;n>t;t++)u[t]=C?h(m[t],t):m[t];return u}},function(e,t,n){"use strict";var o=n(66),r=n(50).getWeakData,a=n(8),i=n(6),c=n(55),l=n(68),u=n(17),d=n(15),s=n(34),p=s.set,m=s.getterFor,f=u.find,h=u.findIndex,C=0,g=function(e){return e.frozen||(e.frozen=new b)},b=function(){this.entries=[]},N=function(e,t){return f(e.entries,(function(e){return e[0]===t}))};b.prototype={get:function(e){var t=N(this,e);if(t)return t[1]},has:function(e){return!!N(this,e)},set:function(e,t){var n=N(this,e);n?n[1]=t:this.entries.push([e,t])},"delete":function(e){var t=h(this.entries,(function(t){return t[0]===e}));return~t&&this.entries.splice(t,1),!!~t}},e.exports={getConstructor:function(e,t,n,u){var s=e((function(e,o){c(e,s,t),p(e,{type:t,id:C++,frozen:undefined}),o!=undefined&&l(o,e[u],e,n)})),f=m(t),h=function(e,t,n){var o=f(e),i=r(a(t),!0);return!0===i?g(o).set(t,n):i[o.id]=n,e};return o(s.prototype,{"delete":function(e){var t=f(this);if(!i(e))return!1;var n=r(e);return!0===n?g(t)["delete"](e):n&&d(n,t.id)&&delete n[t.id]},has:function(e){var t=f(this);if(!i(e))return!1;var n=r(e);return!0===n?g(t).has(e):n&&d(n,t.id)}}),o(s.prototype,n?{get:function(e){var t=f(this);if(i(e)){var n=r(e);return!0===n?g(t).get(e):n?n[t.id]:undefined}},set:function(e,t){return h(this,e,t)}}:{add:function(e){return h(this,e,!0)}}),s}}},function(e,t,n){"use strict";t.__esModule=!0,t.setupHotReloading=t.sendLogEntry=void 0;t.sendLogEntry=function(e,t){};t.setupHotReloading=function(){0}},function(e,t,n){"use strict";t.__esModule=!0,t.resizeStartHandler=t.dragStartHandler=t.setupDrag=void 0;var o,r,a,i,c,l=n(156),u=n(16),d=(0,n(51).createLogger)("drag"),s=!1,p=!1,m=[0,0],f=function(e){return(0,u.winget)(e,"pos").then((function(e){return[e.x,e.y]}))},h=function(e,t){return(0,u.winset)(e,"pos",t[0]+","+t[1])},C=function(e){var t,n,r,a;return regeneratorRuntime.async((function(i){for(;;)switch(i.prev=i.next){case 0:return d.log("setting up"),o=e.config.window,i.next=4,regeneratorRuntime.awrap(f(o));case 4:t=i.sent,m=[t[0]-window.screenLeft,t[1]-window.screenTop],n=g(t),r=n[0],a=n[1],r&&h(o,a),d.debug("current state",{ref:o,screenOffset:m});case 9:case"end":return i.stop()}}))};t.setupDrag=C;var g=function(e){var t=e[0],n=e[1],o=!1;return t<0?(t=0,o=!0):t+window.innerWidth>window.screen.availWidth&&(t=window.screen.availWidth-window.innerWidth,o=!0),n<0?(n=0,o=!0):n+window.innerHeight>window.screen.availHeight&&(n=window.screen.availHeight-window.innerHeight,o=!0),[o,[t,n]]};t.dragStartHandler=function(e){d.log("drag start"),s=!0,r=[window.screenLeft-e.screenX,window.screenTop-e.screenY],document.addEventListener("mousemove",N),document.addEventListener("mouseup",b),N(e)};var b=function y(e){d.log("drag end"),N(e),document.removeEventListener("mousemove",N),document.removeEventListener("mouseup",y),s=!1},N=function(e){s&&(e.preventDefault(),h(o,(0,l.vecAdd)([e.screenX,e.screenY],m,r)))};t.resizeStartHandler=function(e,t){return function(n){a=[e,t],d.log("resize start",a),p=!0,r=[window.screenLeft-n.screenX,window.screenTop-n.screenY],i=[window.innerWidth,window.innerHeight],document.addEventListener("mousemove",V),document.addEventListener("mouseup",v),V(n)}};var v=function _(e){d.log("resize end",c),V(e),document.removeEventListener("mousemove",V),document.removeEventListener("mouseup",_),p=!1},V=function(e){p&&(e.preventDefault(),(c=(0,l.vecAdd)(i,(0,l.vecMultiply)(a,(0,l.vecAdd)([e.screenX,e.screenY],(0,l.vecInverse)([window.screenLeft,window.screenTop]),r,[1,1]))))[0]=Math.max(c[0],250),c[1]=Math.max(c[1],120),function(e,t){(0,u.winset)(e,"size",t[0]+","+t[1])}(o,c))}},function(e,t,n){"use strict";t.__esModule=!0,t.vecNormalize=t.vecLength=t.vecInverse=t.vecScale=t.vecDivide=t.vecMultiply=t.vecSubtract=t.vecAdd=t.vecCreate=void 0;var o=n(24);t.vecCreate=function(){for(var e=arguments.length,t=new Array(e),n=0;n35;return(0,o.createVNode)(1,"div",(0,r.classes)(["Tooltip",i&&"Tooltip--long",a&&"Tooltip--"+a]),null,1,{"data-tooltip":t})}},function(e,t,n){"use strict";t.__esModule=!0,t.Input=void 0;var o=n(1),r=n(12),a=n(19);function i(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var c=function(e){return(0,r.isFalsy)(e)?"":e},l=function(e){var t,n;function l(){var t;return(t=e.call(this)||this).inputRef=(0,o.createRef)(),t.state={editing:!1},t.handleInput=function(e){var n=t.state.editing,o=t.props.onInput;n||t.setEditing(!0),o&&o(e,e.target.value)},t.handleFocus=function(e){t.state.editing||t.setEditing(!0)},t.handleBlur=function(e){var n=t.state.editing,o=t.props.onChange;n&&(t.setEditing(!1),o&&o(e,e.target.value))},t.handleKeyDown=function(e){var n=t.props,o=n.onInput,r=n.onChange,a=n.onEnter;return 13===e.keyCode?(t.setEditing(!1),r&&r(e,e.target.value),o&&o(e,e.target.value),a&&a(e,e.target.value),void(t.props.selfClear?e.target.value="":e.target.blur())):27===e.keyCode?(t.setEditing(!1),e.target.value=c(t.props.value),void e.target.blur()):void 0},t}n=e,(t=l).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var u=l.prototype;return u.componentDidMount=function(){var e=this.props.value,t=this.inputRef.current;t&&(t.value=c(e))},u.componentDidUpdate=function(e,t){var n=this.state.editing,o=e.value,r=this.props.value,a=this.inputRef.current;a&&!n&&o!==r&&(a.value=c(r))},u.setEditing=function(e){this.setState({editing:e})},u.render=function(){var e=this.props,t=(e.selfClear,e.onInput,e.onChange,e.onEnter,e.value,e.maxLength),n=e.placeholder,c=i(e,["selfClear","onInput","onChange","onEnter","value","maxLength","placeholder"]),l=c.className,u=c.fluid,d=i(c,["className","fluid"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({className:(0,r.classes)(["Input",u&&"Input--fluid",l])},d,{children:[(0,o.createVNode)(1,"div","Input__baseline",".",16),(0,o.createVNode)(64,"input","Input__input",null,1,{placeholder:n,onInput:this.handleInput,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeyDown:this.handleKeyDown,maxLength:t},null,this.inputRef)]})))},l}(o.Component);t.Input=l},function(e,t,n){"use strict";t.__esModule=!0,t.GridColumn=t.Grid=void 0;var o=n(1),r=n(162),a=n(12);function i(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var c=function(e){var t=e.children,n=i(e,["children"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,r.Table,Object.assign({},n,{children:(0,o.createComponentVNode)(2,r.Table.Row,{children:t})})))};t.Grid=c,c.defaultHooks=a.pureComponentHooks;var l=function(e){var t=e.size,n=void 0===t?1:t,a=e.style,c=i(e,["size","style"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,r.Table.Cell,Object.assign({style:Object.assign({width:n+"%"},a)},c)))};t.GridColumn=l,c.defaultHooks=a.pureComponentHooks,c.Column=l},function(e,t,n){"use strict";t.__esModule=!0,t.TableCell=t.TableRow=t.Table=void 0;var o=n(1),r=n(12),a=n(19);function i(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var c=function(e){var t=e.collapsing,n=e.className,c=e.content,l=e.children,u=i(e,["collapsing","className","content","children"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({as:"table",className:(0,r.classes)(["Table",t&&"Table--collapsing",n])},u,{children:(0,o.createVNode)(1,"tbody",null,[c,l],0)})))};t.Table=c,c.defaultHooks=r.pureComponentHooks;var l=function(e){var t=e.className,n=e.header,c=i(e,["className","header"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({as:"tr",className:(0,r.classes)(["Table__row",n&&"Table__row--header",t])},c)))};t.TableRow=l,l.defaultHooks=r.pureComponentHooks;var u=function(e){var t=e.className,n=e.collapsing,c=e.header,l=i(e,["className","collapsing","header"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({as:"td",className:(0,r.classes)(["Table__cell",n&&"Table__cell--collapsing",c&&"Table__cell--header",t])},l)))};t.TableCell=u,u.defaultHooks=r.pureComponentHooks,c.Row=l,c.Cell=u},function(e,t,n){"use strict";t.__esModule=!0,t.LabeledListDivider=t.LabeledListItem=t.LabeledList=void 0;var o=n(1),r=n(12),a=n(19),i=function(e){var t=e.children;return(0,o.createVNode)(1,"table","LabeledList",t,0)};t.LabeledList=i,i.defaultHooks=r.pureComponentHooks;var c=function(e){var t=e.className,n=e.label,i=e.labelColor,c=void 0===i?"label":i,l=e.color,u=e.buttons,d=e.content,s=e.children;return(0,o.createVNode)(1,"tr",(0,r.classes)(["LabeledList__row",t]),[(0,o.createComponentVNode)(2,a.Box,{as:"td",color:c,className:(0,r.classes)(["LabeledList__cell","LabeledList__label"]),content:n+":"}),(0,o.createComponentVNode)(2,a.Box,{as:"td",color:l,className:(0,r.classes)(["LabeledList__cell","LabeledList__content"]),colSpan:u?undefined:2,children:[d,s]}),u&&(0,o.createVNode)(1,"td","LabeledList__cell LabeledList__buttons",u,0)],0)};t.LabeledListItem=c,c.defaultHooks=r.pureComponentHooks;var l=function(e){var t=e.size,n=void 0===t?1:t;return(0,o.createVNode)(1,"tr","LabeledList__row",(0,o.createVNode)(1,"td",null,null,1,{style:{"padding-bottom":(0,a.unit)(n)}}),2)};t.LabeledListDivider=l,l.defaultHooks=r.pureComponentHooks,i.Item=c,i.Divider=l},function(e,t,n){"use strict";t.__esModule=!0,t.BeakerContents=void 0;var o=n(1),r=n(2);t.BeakerContents=function(e){var t=e.beakerLoaded,n=e.beakerContents;return(0,o.createComponentVNode)(2,r.Box,{children:[!t&&(0,o.createComponentVNode)(2,r.Box,{color:"label",children:"No beaker loaded."})||0===n.length&&(0,o.createComponentVNode)(2,r.Box,{color:"label",children:"Beaker is empty."}),n.map((function(e){return(0,o.createComponentVNode)(2,r.Box,{color:"label",children:[e.volume," units of ",e.name,", Purity: ",e.purity]},e.name)}))]})}},function(e,t,n){n(166),n(167),n(168),n(169),n(170),n(171),e.exports=n(172)},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){"use strict";n(173),n(174),n(175),n(176),n(177),n(178),n(179),n(180),n(181),n(182),n(183),n(184),n(185),n(186),n(187),n(188),n(189),n(190),n(191),n(192),n(193),n(194),n(195),n(196),n(198),n(200),n(201),n(202),n(133),n(204),n(205),n(206),n(207),n(208),n(209),n(210),n(211),n(212),n(213),n(214),n(215),n(216),n(217),n(219),n(220),n(221),n(222),n(223),n(225),n(226),n(228),n(229),n(230),n(231),n(232),n(233),n(234),n(235),n(236),n(237),n(238),n(239),n(240),n(241),n(243),n(244),n(245),n(246),n(247),n(248),n(249),n(250),n(251),n(252),n(253),n(254),n(255),n(257),n(258),n(259),n(260),n(261),n(262),n(264),n(265),n(267),n(269),n(270),n(271),n(272),n(273),n(274),n(275),n(276),n(277),n(278),n(279),n(280),n(281),n(282),n(283),n(284),n(285),n(286),n(287),n(288),n(289),n(290),n(291),n(293),n(294),n(295),n(298),n(299),n(300),n(301),n(302),n(303),n(304),n(305),n(306),n(307),n(308),n(309),n(310),n(311),n(312),n(313),n(314),n(315),n(316),n(317),n(318),n(319),n(320),n(321),n(322),n(323),n(324),n(325),n(326),n(327),n(328),n(329),n(330),n(331),n(332),n(333),n(334),n(335),n(336),n(337),n(338),n(339),n(340),n(341),n(342),n(343),n(344),n(345),n(346),n(347),n(349),n(350),n(351),n(352),n(353),n(354),n(355),n(356),n(357),n(358),n(359),n(360),n(361),n(362),n(363),n(364),n(365),n(366),n(367),n(368),n(369),n(370),n(371),n(372),n(373),n(374),n(375),n(376),n(377),n(378),n(379),n(380),n(381),n(382),n(383),n(384),n(385),n(386);var o=n(1);n(388),n(389);var r=n(390),a=(n(154),n(3)),i=n(16),c=n(155),l=n(51),u=n(157),d=n(507),s=(0,l.createLogger)(),p=(0,d.createStore)(),m=document.getElementById("react-root"),f=!0,h=!1,C=function(){for(p.subscribe((function(){!function(){if(!h){0;try{var e=p.getState();if(f){if(s.log("initial render",e),!(0,u.getRoute)(e)){if(s.info("loading old tgui"),h=!0,window.update=window.initialize=function(){},i.tridentVersion<=4)return void setTimeout((function(){location.href="tgui-fallback.html?ref="+window.__ref__}),10);document.getElementById("data").textContent=JSON.stringify(e),(0,r.loadCSS)("v4shim.css"),(0,r.loadCSS)("tgui.css");var t=document.getElementsByTagName("head")[0],a=document.createElement("script");return a.type="text/javascript",a.src="tgui.js",void t.appendChild(a)}(0,c.setupDrag)(e)}var l=n(509).Layout,d=(0,o.createComponentVNode)(2,l,{state:e,dispatch:p.dispatch});(0,o.render)(d,m)}catch(C){s.error("rendering error",C)}f&&(f=!1)}}()})),window.update=window.initialize=function(e){var t=function(e){var t=function(e,t){return"object"==typeof t&&null!==t&&t.__number__?parseFloat(t.__number__):t};i.tridentVersion<=4&&(t=undefined);try{return JSON.parse(e,t)}catch(o){s.log(o),s.log("What we got:",e);var n=o&&o.message;throw new Error("JSON parsing error: "+n)}}(e);p.dispatch((0,a.backendUpdate)(t))};;){var e=window.__updateQueue__.shift();if(!e)break;window.update(e)}(0,r.loadCSS)("font-awesome.css")};i.tridentVersion<=4&&"loading"===document.readyState?document.addEventListener("DOMContentLoaded",C):C()},function(e,t,n){"use strict";var o=n(0),r=n(5),a=n(35),i=n(38),c=n(9),l=n(95),u=n(125),d=n(4),s=n(15),p=n(52),m=n(6),f=n(8),h=n(14),C=n(25),g=n(33),b=n(46),N=n(42),v=n(62),V=n(47),y=n(128),_=n(94),x=n(20),k=n(13),L=n(71),w=n(26),B=n(22),S=n(91),I=n(72),T=n(59),A=n(58),P=n(11),E=n(129),M=n(27),O=n(43),R=n(34),F=n(17).forEach,D=I("hidden"),j=P("toPrimitive"),z=R.set,H=R.getterFor("Symbol"),G=Object.prototype,U=r.Symbol,K=a("JSON","stringify"),Y=x.f,q=k.f,W=y.f,$=L.f,Q=S("symbols"),X=S("op-symbols"),J=S("string-to-symbol-registry"),Z=S("symbol-to-string-registry"),ee=S("wks"),te=r.QObject,ne=!te||!te.prototype||!te.prototype.findChild,oe=c&&d((function(){return 7!=N(q({},"a",{get:function(){return q(this,"a",{value:7}).a}})).a}))?function(e,t,n){var o=Y(G,t);o&&delete G[t],q(e,t,n),o&&e!==G&&q(G,t,o)}:q,re=function(e,t){var n=Q[e]=N(U.prototype);return z(n,{type:"Symbol",tag:e,description:t}),c||(n.description=t),n},ae=l&&"symbol"==typeof U.iterator?function(e){return"symbol"==typeof e}:function(e){return Object(e)instanceof U},ie=function(e,t,n){e===G&&ie(X,t,n),f(e);var o=g(t,!0);return f(n),s(Q,o)?(n.enumerable?(s(e,D)&&e[D][o]&&(e[D][o]=!1),n=N(n,{enumerable:b(0,!1)})):(s(e,D)||q(e,D,b(1,{})),e[D][o]=!0),oe(e,o,n)):q(e,o,n)},ce=function(e,t){f(e);var n=C(t),o=v(n).concat(pe(n));return F(o,(function(t){c&&!ue.call(n,t)||ie(e,t,n[t])})),e},le=function(e,t){return t===undefined?N(e):ce(N(e),t)},ue=function(e){var t=g(e,!0),n=$.call(this,t);return!(this===G&&s(Q,t)&&!s(X,t))&&(!(n||!s(this,t)||!s(Q,t)||s(this,D)&&this[D][t])||n)},de=function(e,t){var n=C(e),o=g(t,!0);if(n!==G||!s(Q,o)||s(X,o)){var r=Y(n,o);return!r||!s(Q,o)||s(n,D)&&n[D][o]||(r.enumerable=!0),r}},se=function(e){var t=W(C(e)),n=[];return F(t,(function(e){s(Q,e)||s(T,e)||n.push(e)})),n},pe=function(e){var t=e===G,n=W(t?X:C(e)),o=[];return F(n,(function(e){!s(Q,e)||t&&!s(G,e)||o.push(Q[e])})),o};(l||(B((U=function(){if(this instanceof U)throw TypeError("Symbol is not a constructor");var e=arguments.length&&arguments[0]!==undefined?String(arguments[0]):undefined,t=A(e),n=function o(e){this===G&&o.call(X,e),s(this,D)&&s(this[D],t)&&(this[D][t]=!1),oe(this,t,b(1,e))};return c&&ne&&oe(G,t,{configurable:!0,set:n}),re(t,e)}).prototype,"toString",(function(){return H(this).tag})),L.f=ue,k.f=ie,x.f=de,V.f=y.f=se,_.f=pe,c&&(q(U.prototype,"description",{configurable:!0,get:function(){return H(this).description}}),i||B(G,"propertyIsEnumerable",ue,{unsafe:!0}))),u||(E.f=function(e){return re(P(e),e)}),o({global:!0,wrap:!0,forced:!l,sham:!l},{Symbol:U}),F(v(ee),(function(e){M(e)})),o({target:"Symbol",stat:!0,forced:!l},{"for":function(e){var t=String(e);if(s(J,t))return J[t];var n=U(t);return J[t]=n,Z[n]=t,n},keyFor:function(e){if(!ae(e))throw TypeError(e+" is not a symbol");if(s(Z,e))return Z[e]},useSetter:function(){ne=!0},useSimple:function(){ne=!1}}),o({target:"Object",stat:!0,forced:!l,sham:!c},{create:le,defineProperty:ie,defineProperties:ce,getOwnPropertyDescriptor:de}),o({target:"Object",stat:!0,forced:!l},{getOwnPropertyNames:se,getOwnPropertySymbols:pe}),o({target:"Object",stat:!0,forced:d((function(){_.f(1)}))},{getOwnPropertySymbols:function(e){return _.f(h(e))}}),K)&&o({target:"JSON",stat:!0,forced:!l||d((function(){var e=U();return"[null]"!=K([e])||"{}"!=K({a:e})||"{}"!=K(Object(e))}))},{stringify:function(e,t,n){for(var o,r=[e],a=1;arguments.length>a;)r.push(arguments[a++]);if(o=t,(m(t)||e!==undefined)&&!ae(e))return p(t)||(t=function(e,t){if("function"==typeof o&&(t=o.call(this,e,t)),!ae(t))return t}),r[1]=t,K.apply(null,r)}});U.prototype[j]||w(U.prototype,j,U.prototype.valueOf),O(U,"Symbol"),T[D]=!0},function(e,t,n){"use strict";var o=n(0),r=n(9),a=n(5),i=n(15),c=n(6),l=n(13).f,u=n(122),d=a.Symbol;if(r&&"function"==typeof d&&(!("description"in d.prototype)||d().description!==undefined)){var s={},p=function(){var e=arguments.length<1||arguments[0]===undefined?undefined:String(arguments[0]),t=this instanceof p?new d(e):e===undefined?d():d(e);return""===e&&(s[t]=!0),t};u(p,d);var m=p.prototype=d.prototype;m.constructor=p;var f=m.toString,h="Symbol(test)"==String(d("test")),C=/^Symbol\((.*)\)[^)]+$/;l(m,"description",{configurable:!0,get:function(){var e=c(this)?this.valueOf():this,t=f.call(e);if(i(s,e))return"";var n=h?t.slice(7,-1):t.replace(C,"$1");return""===n?undefined:n}}),o({global:!0,forced:!0},{Symbol:p})}},function(e,t,n){"use strict";n(27)("asyncIterator")},function(e,t,n){"use strict";n(27)("hasInstance")},function(e,t,n){"use strict";n(27)("isConcatSpreadable")},function(e,t,n){"use strict";n(27)("iterator")},function(e,t,n){"use strict";n(27)("match")},function(e,t,n){"use strict";n(27)("replace")},function(e,t,n){"use strict";n(27)("search")},function(e,t,n){"use strict";n(27)("species")},function(e,t,n){"use strict";n(27)("split")},function(e,t,n){"use strict";n(27)("toPrimitive")},function(e,t,n){"use strict";n(27)("toStringTag")},function(e,t,n){"use strict";n(27)("unscopables")},function(e,t,n){"use strict";var o=n(0),r=n(4),a=n(52),i=n(6),c=n(14),l=n(10),u=n(49),d=n(63),s=n(64),p=n(11),m=n(96),f=p("isConcatSpreadable"),h=9007199254740991,C="Maximum allowed index exceeded",g=m>=51||!r((function(){var e=[];return e[f]=!1,e.concat()[0]!==e})),b=s("concat"),N=function(e){if(!i(e))return!1;var t=e[f];return t!==undefined?!!t:a(e)};o({target:"Array",proto:!0,forced:!g||!b},{concat:function(e){var t,n,o,r,a,i=c(this),s=d(i,0),p=0;for(t=-1,o=arguments.length;th)throw TypeError(C);for(n=0;n=h)throw TypeError(C);u(s,p++,a)}return s.length=p,s}})},function(e,t,n){"use strict";var o=n(0),r=n(130),a=n(44);o({target:"Array",proto:!0},{copyWithin:r}),a("copyWithin")},function(e,t,n){"use strict";var o=n(0),r=n(17).every;o({target:"Array",proto:!0,forced:n(39)("every")},{every:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(0),r=n(97),a=n(44);o({target:"Array",proto:!0},{fill:r}),a("fill")},function(e,t,n){"use strict";var o=n(0),r=n(17).filter,a=n(4),i=n(64)("filter"),c=i&&!a((function(){[].filter.call({length:-1,0:1},(function(e){throw e}))}));o({target:"Array",proto:!0,forced:!i||!c},{filter:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(0),r=n(17).find,a=n(44),i=!0;"find"in[]&&Array(1).find((function(){i=!1})),o({target:"Array",proto:!0,forced:i},{find:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}}),a("find")},function(e,t,n){"use strict";var o=n(0),r=n(17).findIndex,a=n(44),i=!0;"findIndex"in[]&&Array(1).findIndex((function(){i=!1})),o({target:"Array",proto:!0,forced:i},{findIndex:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}}),a("findIndex")},function(e,t,n){"use strict";var o=n(0),r=n(131),a=n(14),i=n(10),c=n(30),l=n(63);o({target:"Array",proto:!0},{flat:function(){var e=arguments.length?arguments[0]:undefined,t=a(this),n=i(t.length),o=l(t,0);return o.length=r(o,t,t,n,0,e===undefined?1:c(e)),o}})},function(e,t,n){"use strict";var o=n(0),r=n(131),a=n(14),i=n(10),c=n(31),l=n(63);o({target:"Array",proto:!0},{flatMap:function(e){var t,n=a(this),o=i(n.length);return c(e),(t=l(n,0)).length=r(t,n,n,o,0,1,e,arguments.length>1?arguments[1]:undefined),t}})},function(e,t,n){"use strict";var o=n(0),r=n(197);o({target:"Array",proto:!0,forced:[].forEach!=r},{forEach:r})},function(e,t,n){"use strict";var o=n(17).forEach,r=n(39);e.exports=r("forEach")?function(e){return o(this,e,arguments.length>1?arguments[1]:undefined)}:[].forEach},function(e,t,n){"use strict";var o=n(0),r=n(199);o({target:"Array",stat:!0,forced:!n(75)((function(e){Array.from(e)}))},{from:r})},function(e,t,n){"use strict";var o=n(48),r=n(14),a=n(132),i=n(98),c=n(10),l=n(49),u=n(99);e.exports=function(e){var t,n,d,s,p,m=r(e),f="function"==typeof this?this:Array,h=arguments.length,C=h>1?arguments[1]:undefined,g=C!==undefined,b=0,N=u(m);if(g&&(C=o(C,h>2?arguments[2]:undefined,2)),N==undefined||f==Array&&i(N))for(n=new f(t=c(m.length));t>b;b++)l(n,b,g?C(m[b],b):m[b]);else for(p=(s=N.call(m)).next,n=new f;!(d=p.call(s)).done;b++)l(n,b,g?a(s,C,[d.value,b],!0):d.value);return n.length=b,n}},function(e,t,n){"use strict";var o=n(0),r=n(60).includes,a=n(44);o({target:"Array",proto:!0},{includes:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}}),a("includes")},function(e,t,n){"use strict";var o=n(0),r=n(60).indexOf,a=n(39),i=[].indexOf,c=!!i&&1/[1].indexOf(1,-0)<0,l=a("indexOf");o({target:"Array",proto:!0,forced:c||l},{indexOf:function(e){return c?i.apply(this,arguments)||0:r(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";n(0)({target:"Array",stat:!0},{isArray:n(52)})},function(e,t,n){"use strict";var o=n(134).IteratorPrototype,r=n(42),a=n(46),i=n(43),c=n(65),l=function(){return this};e.exports=function(e,t,n){var u=t+" Iterator";return e.prototype=r(o,{next:a(1,n)}),i(e,u,!1,!0),c[u]=l,e}},function(e,t,n){"use strict";var o=n(0),r=n(57),a=n(25),i=n(39),c=[].join,l=r!=Object,u=i("join",",");o({target:"Array",proto:!0,forced:l||u},{join:function(e){return c.call(a(this),e===undefined?",":e)}})},function(e,t,n){"use strict";var o=n(0),r=n(136);o({target:"Array",proto:!0,forced:r!==[].lastIndexOf},{lastIndexOf:r})},function(e,t,n){"use strict";var o=n(0),r=n(17).map,a=n(4),i=n(64)("map"),c=i&&!a((function(){[].map.call({length:-1,0:1},(function(e){throw e}))}));o({target:"Array",proto:!0,forced:!i||!c},{map:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(0),r=n(4),a=n(49);o({target:"Array",stat:!0,forced:r((function(){function e(){}return!(Array.of.call(e)instanceof e)}))},{of:function(){for(var e=0,t=arguments.length,n=new("function"==typeof this?this:Array)(t);t>e;)a(n,e,arguments[e++]);return n.length=t,n}})},function(e,t,n){"use strict";var o=n(0),r=n(76).left;o({target:"Array",proto:!0,forced:n(39)("reduce")},{reduce:function(e){return r(this,e,arguments.length,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(0),r=n(76).right;o({target:"Array",proto:!0,forced:n(39)("reduceRight")},{reduceRight:function(e){return r(this,e,arguments.length,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(0),r=n(6),a=n(52),i=n(41),c=n(10),l=n(25),u=n(49),d=n(64),s=n(11)("species"),p=[].slice,m=Math.max;o({target:"Array",proto:!0,forced:!d("slice")},{slice:function(e,t){var n,o,d,f=l(this),h=c(f.length),C=i(e,h),g=i(t===undefined?h:t,h);if(a(f)&&("function"!=typeof(n=f.constructor)||n!==Array&&!a(n.prototype)?r(n)&&null===(n=n[s])&&(n=undefined):n=undefined,n===Array||n===undefined))return p.call(f,C,g);for(o=new(n===undefined?Array:n)(m(g-C,0)),d=0;C1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(0),r=n(31),a=n(14),i=n(4),c=n(39),l=[],u=l.sort,d=i((function(){l.sort(undefined)})),s=i((function(){l.sort(null)})),p=c("sort");o({target:"Array",proto:!0,forced:d||!s||p},{sort:function(e){return e===undefined?u.call(a(this)):u.call(a(this),r(e))}})},function(e,t,n){"use strict";n(54)("Array")},function(e,t,n){"use strict";var o=n(0),r=n(41),a=n(30),i=n(10),c=n(14),l=n(63),u=n(49),d=n(64),s=Math.max,p=Math.min,m=9007199254740991,f="Maximum allowed length exceeded";o({target:"Array",proto:!0,forced:!d("splice")},{splice:function(e,t){var n,o,d,h,C,g,b=c(this),N=i(b.length),v=r(e,N),V=arguments.length;if(0===V?n=o=0:1===V?(n=0,o=N-v):(n=V-2,o=p(s(a(t),0),N-v)),N+n-o>m)throw TypeError(f);for(d=l(b,o),h=0;hN-o+n;h--)delete b[h-1]}else if(n>o)for(h=N-o;h>v;h--)g=h+n-1,(C=h+o-1)in b?b[g]=b[C]:delete b[g];for(h=0;h>1,h=23===t?r(2,-24)-r(2,-77):0,C=e<0||0===e&&1/e<0?1:0,g=0;for((e=o(e))!=e||e===1/0?(u=e!=e?1:0,l=m):(l=a(i(e)/c),e*(d=r(2,-l))<1&&(l--,d*=2),(e+=l+f>=1?h/d:h*r(2,1-f))*d>=2&&(l++,d/=2),l+f>=m?(u=0,l=m):l+f>=1?(u=(e*d-1)*r(2,t),l+=f):(u=e*r(2,f-1)*r(2,t),l=0));t>=8;s[g++]=255&u,u/=256,t-=8);for(l=l<0;s[g++]=255&l,l/=256,p-=8);return s[--g]|=128*C,s},unpack:function(e,t){var n,o=e.length,a=8*o-t-1,i=(1<>1,l=a-7,u=o-1,d=e[u--],s=127&d;for(d>>=7;l>0;s=256*s+e[u],u--,l-=8);for(n=s&(1<<-l)-1,s>>=-l,l+=t;l>0;n=256*n+e[u],u--,l-=8);if(0===s)s=1-c;else{if(s===i)return n?NaN:d?-1/0:1/0;n+=r(2,t),s-=c}return(d?-1:1)*n*r(2,s-t)}}},function(e,t,n){"use strict";var o=n(0),r=n(7);o({target:"ArrayBuffer",stat:!0,forced:!r.NATIVE_ARRAY_BUFFER_VIEWS},{isView:r.isView})},function(e,t,n){"use strict";var o=n(0),r=n(4),a=n(77),i=n(8),c=n(41),l=n(10),u=n(45),d=a.ArrayBuffer,s=a.DataView,p=d.prototype.slice;o({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:r((function(){return!new d(2).slice(1,undefined).byteLength}))},{slice:function(e,t){if(p!==undefined&&t===undefined)return p.call(i(this),e);for(var n=i(this).byteLength,o=c(e,n),r=c(t===undefined?n:t,n),a=new(u(this,d))(l(r-o)),m=new s(this),f=new s(a),h=0;o9999?"+":"";return n+r(a(e),n?6:4,0)+"-"+r(this.getUTCMonth()+1,2,0)+"-"+r(this.getUTCDate(),2,0)+"T"+r(this.getUTCHours(),2,0)+":"+r(this.getUTCMinutes(),2,0)+":"+r(this.getUTCSeconds(),2,0)+"."+r(t,3,0)+"Z"}:l},function(e,t,n){"use strict";var o=n(0),r=n(4),a=n(14),i=n(33);o({target:"Date",proto:!0,forced:r((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}))},{toJSON:function(e){var t=a(this),n=i(t);return"number"!=typeof n||isFinite(n)?t.toISOString():null}})},function(e,t,n){"use strict";var o=n(26),r=n(227),a=n(11)("toPrimitive"),i=Date.prototype;a in i||o(i,a,r)},function(e,t,n){"use strict";var o=n(8),r=n(33);e.exports=function(e){if("string"!==e&&"number"!==e&&"default"!==e)throw TypeError("Incorrect hint");return r(o(this),"number"!==e)}},function(e,t,n){"use strict";var o=n(22),r=Date.prototype,a="Invalid Date",i=r.toString,c=r.getTime;new Date(NaN)+""!=a&&o(r,"toString",(function(){var e=c.call(this);return e==e?i.call(this):a}))},function(e,t,n){"use strict";n(0)({target:"Function",proto:!0},{bind:n(138)})},function(e,t,n){"use strict";var o=n(6),r=n(13),a=n(36),i=n(11)("hasInstance"),c=Function.prototype;i in c||r.f(c,i,{value:function(e){if("function"!=typeof this||!o(e))return!1;if(!o(this.prototype))return e instanceof this;for(;e=a(e);)if(this.prototype===e)return!0;return!1}})},function(e,t,n){"use strict";var o=n(9),r=n(13).f,a=Function.prototype,i=a.toString,c=/^\s*function ([^ (]*)/;!o||"name"in a||r(a,"name",{configurable:!0,get:function(){try{return i.call(this).match(c)[1]}catch(e){return""}}})},function(e,t,n){"use strict";var o=n(5);n(43)(o.JSON,"JSON",!0)},function(e,t,n){"use strict";var o=n(78),r=n(139);e.exports=o("Map",(function(e){return function(){return e(this,arguments.length?arguments[0]:undefined)}}),r)},function(e,t,n){"use strict";var o=n(0),r=n(140),a=Math.acosh,i=Math.log,c=Math.sqrt,l=Math.LN2;o({target:"Math",stat:!0,forced:!a||710!=Math.floor(a(Number.MAX_VALUE))||a(Infinity)!=Infinity},{acosh:function(e){return(e=+e)<1?NaN:e>94906265.62425156?i(e)+l:r(e-1+c(e-1)*c(e+1))}})},function(e,t,n){"use strict";var o=n(0),r=Math.asinh,a=Math.log,i=Math.sqrt;o({target:"Math",stat:!0,forced:!(r&&1/r(0)>0)},{asinh:function c(e){return isFinite(e=+e)&&0!=e?e<0?-c(-e):a(e+i(e*e+1)):e}})},function(e,t,n){"use strict";var o=n(0),r=Math.atanh,a=Math.log;o({target:"Math",stat:!0,forced:!(r&&1/r(-0)<0)},{atanh:function(e){return 0==(e=+e)?e:a((1+e)/(1-e))/2}})},function(e,t,n){"use strict";var o=n(0),r=n(105),a=Math.abs,i=Math.pow;o({target:"Math",stat:!0},{cbrt:function(e){return r(e=+e)*i(a(e),1/3)}})},function(e,t,n){"use strict";var o=n(0),r=Math.floor,a=Math.log,i=Math.LOG2E;o({target:"Math",stat:!0},{clz32:function(e){return(e>>>=0)?31-r(a(e+.5)*i):32}})},function(e,t,n){"use strict";var o=n(0),r=n(80),a=Math.cosh,i=Math.abs,c=Math.E;o({target:"Math",stat:!0,forced:!a||a(710)===Infinity},{cosh:function(e){var t=r(i(e)-1)+1;return(t+1/(t*c*c))*(c/2)}})},function(e,t,n){"use strict";var o=n(0),r=n(80);o({target:"Math",stat:!0,forced:r!=Math.expm1},{expm1:r})},function(e,t,n){"use strict";n(0)({target:"Math",stat:!0},{fround:n(242)})},function(e,t,n){"use strict";var o=n(105),r=Math.abs,a=Math.pow,i=a(2,-52),c=a(2,-23),l=a(2,127)*(2-c),u=a(2,-126),d=function(e){return e+1/i-1/i};e.exports=Math.fround||function(e){var t,n,a=r(e),s=o(e);return al||n!=n?s*Infinity:s*n}},function(e,t,n){"use strict";var o=n(0),r=Math.hypot,a=Math.abs,i=Math.sqrt;o({target:"Math",stat:!0,forced:!!r&&r(Infinity,NaN)!==Infinity},{hypot:function(e,t){for(var n,o,r=0,c=0,l=arguments.length,u=0;c0?(o=n/u)*o:n;return u===Infinity?Infinity:u*i(r)}})},function(e,t,n){"use strict";var o=n(0),r=n(4),a=Math.imul;o({target:"Math",stat:!0,forced:r((function(){return-5!=a(4294967295,5)||2!=a.length}))},{imul:function(e,t){var n=+e,o=+t,r=65535&n,a=65535&o;return 0|r*a+((65535&n>>>16)*a+r*(65535&o>>>16)<<16>>>0)}})},function(e,t,n){"use strict";var o=n(0),r=Math.log,a=Math.LOG10E;o({target:"Math",stat:!0},{log10:function(e){return r(e)*a}})},function(e,t,n){"use strict";n(0)({target:"Math",stat:!0},{log1p:n(140)})},function(e,t,n){"use strict";var o=n(0),r=Math.log,a=Math.LN2;o({target:"Math",stat:!0},{log2:function(e){return r(e)/a}})},function(e,t,n){"use strict";n(0)({target:"Math",stat:!0},{sign:n(105)})},function(e,t,n){"use strict";var o=n(0),r=n(4),a=n(80),i=Math.abs,c=Math.exp,l=Math.E;o({target:"Math",stat:!0,forced:r((function(){return-2e-17!=Math.sinh(-2e-17)}))},{sinh:function(e){return i(e=+e)<1?(a(e)-a(-e))/2:(c(e-1)-c(-e-1))*(l/2)}})},function(e,t,n){"use strict";var o=n(0),r=n(80),a=Math.exp;o({target:"Math",stat:!0},{tanh:function(e){var t=r(e=+e),n=r(-e);return t==Infinity?1:n==Infinity?-1:(t-n)/(a(e)+a(-e))}})},function(e,t,n){"use strict";n(43)(Math,"Math",!0)},function(e,t,n){"use strict";var o=n(0),r=Math.ceil,a=Math.floor;o({target:"Math",stat:!0},{trunc:function(e){return(e>0?a:r)(e)}})},function(e,t,n){"use strict";var o=n(9),r=n(5),a=n(61),i=n(22),c=n(15),l=n(32),u=n(79),d=n(33),s=n(4),p=n(42),m=n(47).f,f=n(20).f,h=n(13).f,C=n(56).trim,g="Number",b=r[g],N=b.prototype,v=l(p(N))==g,V=function(e){var t,n,o,r,a,i,c,l,u=d(e,!1);if("string"==typeof u&&u.length>2)if(43===(t=(u=C(u)).charCodeAt(0))||45===t){if(88===(n=u.charCodeAt(2))||120===n)return NaN}else if(48===t){switch(u.charCodeAt(1)){case 66:case 98:o=2,r=49;break;case 79:case 111:o=8,r=55;break;default:return+u}for(i=(a=u.slice(2)).length,c=0;cr)return NaN;return parseInt(a,o)}return+u};if(a(g,!b(" 0o1")||!b("0b1")||b("+0x1"))){for(var y,_=function(e){var t=arguments.length<1?0:e,n=this;return n instanceof _&&(v?s((function(){N.valueOf.call(n)})):l(n)!=g)?u(new b(V(t)),n,_):V(t)},x=o?m(b):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),k=0;x.length>k;k++)c(b,y=x[k])&&!c(_,y)&&h(_,y,f(b,y));_.prototype=N,N.constructor=_,i(r,g,_)}},function(e,t,n){"use strict";n(0)({target:"Number",stat:!0},{EPSILON:Math.pow(2,-52)})},function(e,t,n){"use strict";n(0)({target:"Number",stat:!0},{isFinite:n(256)})},function(e,t,n){"use strict";var o=n(5).isFinite;e.exports=Number.isFinite||function(e){return"number"==typeof e&&o(e)}},function(e,t,n){"use strict";n(0)({target:"Number",stat:!0},{isInteger:n(141)})},function(e,t,n){"use strict";n(0)({target:"Number",stat:!0},{isNaN:function(e){return e!=e}})},function(e,t,n){"use strict";var o=n(0),r=n(141),a=Math.abs;o({target:"Number",stat:!0},{isSafeInteger:function(e){return r(e)&&a(e)<=9007199254740991}})},function(e,t,n){"use strict";n(0)({target:"Number",stat:!0},{MAX_SAFE_INTEGER:9007199254740991})},function(e,t,n){"use strict";n(0)({target:"Number",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991})},function(e,t,n){"use strict";var o=n(0),r=n(263);o({target:"Number",stat:!0,forced:Number.parseFloat!=r},{parseFloat:r})},function(e,t,n){"use strict";var o=n(5),r=n(56).trim,a=n(81),i=o.parseFloat,c=1/i(a+"-0")!=-Infinity;e.exports=c?function(e){var t=r(String(e)),n=i(t);return 0===n&&"-"==t.charAt(0)?-0:n}:i},function(e,t,n){"use strict";var o=n(0),r=n(142);o({target:"Number",stat:!0,forced:Number.parseInt!=r},{parseInt:r})},function(e,t,n){"use strict";var o=n(0),r=n(30),a=n(266),i=n(104),c=n(4),l=1..toFixed,u=Math.floor,d=function p(e,t,n){return 0===t?n:t%2==1?p(e,t-1,n*e):p(e*e,t/2,n)},s=function(e){for(var t=0,n=e;n>=4096;)t+=12,n/=4096;for(;n>=2;)t+=1,n/=2;return t};o({target:"Number",proto:!0,forced:l&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!c((function(){l.call({})}))},{toFixed:function(e){var t,n,o,c,l=a(this),p=r(e),m=[0,0,0,0,0,0],f="",h="0",C=function(e,t){for(var n=-1,o=t;++n<6;)o+=e*m[n],m[n]=o%1e7,o=u(o/1e7)},g=function(e){for(var t=6,n=0;--t>=0;)n+=m[t],m[t]=u(n/e),n=n%e*1e7},b=function(){for(var e=6,t="";--e>=0;)if(""!==t||0===e||0!==m[e]){var n=String(m[e]);t=""===t?n:t+i.call("0",7-n.length)+n}return t};if(p<0||p>20)throw RangeError("Incorrect fraction digits");if(l!=l)return"NaN";if(l<=-1e21||l>=1e21)return String(l);if(l<0&&(f="-",l=-l),l>1e-21)if(n=(t=s(l*d(2,69,1))-69)<0?l*d(2,-t,1):l/d(2,t,1),n*=4503599627370496,(t=52-t)>0){for(C(0,n),o=p;o>=7;)C(1e7,0),o-=7;for(C(d(10,o,1),0),o=t-1;o>=23;)g(1<<23),o-=23;g(1<0?f+((c=h.length)<=p?"0."+i.call("0",p-c)+h:h.slice(0,c-p)+"."+h.slice(c-p)):f+h}})},function(e,t,n){"use strict";var o=n(32);e.exports=function(e){if("number"!=typeof e&&"Number"!=o(e))throw TypeError("Incorrect invocation");return+e}},function(e,t,n){"use strict";var o=n(0),r=n(268);o({target:"Object",stat:!0,forced:Object.assign!==r},{assign:r})},function(e,t,n){"use strict";var o=n(9),r=n(4),a=n(62),i=n(94),c=n(71),l=n(14),u=n(57),d=Object.assign,s=Object.defineProperty;e.exports=!d||r((function(){if(o&&1!==d({b:1},d(s({},"a",{enumerable:!0,get:function(){s(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},t={},n=Symbol();return e[n]=7,"abcdefghijklmnopqrst".split("").forEach((function(e){t[e]=e})),7!=d({},e)[n]||"abcdefghijklmnopqrst"!=a(d({},t)).join("")}))?function(e,t){for(var n=l(e),r=arguments.length,d=1,s=i.f,p=c.f;r>d;)for(var m,f=u(arguments[d++]),h=s?a(f).concat(s(f)):a(f),C=h.length,g=0;C>g;)m=h[g++],o&&!p.call(f,m)||(n[m]=f[m]);return n}:d},function(e,t,n){"use strict";n(0)({target:"Object",stat:!0,sham:!n(9)},{create:n(42)})},function(e,t,n){"use strict";var o=n(0),r=n(9),a=n(82),i=n(14),c=n(31),l=n(13);r&&o({target:"Object",proto:!0,forced:a},{__defineGetter__:function(e,t){l.f(i(this),e,{get:c(t),enumerable:!0,configurable:!0})}})},function(e,t,n){"use strict";var o=n(0),r=n(9);o({target:"Object",stat:!0,forced:!r,sham:!r},{defineProperties:n(126)})},function(e,t,n){"use strict";var o=n(0),r=n(9);o({target:"Object",stat:!0,forced:!r,sham:!r},{defineProperty:n(13).f})},function(e,t,n){"use strict";var o=n(0),r=n(9),a=n(82),i=n(14),c=n(31),l=n(13);r&&o({target:"Object",proto:!0,forced:a},{__defineSetter__:function(e,t){l.f(i(this),e,{set:c(t),enumerable:!0,configurable:!0})}})},function(e,t,n){"use strict";var o=n(0),r=n(143).entries;o({target:"Object",stat:!0},{entries:function(e){return r(e)}})},function(e,t,n){"use strict";var o=n(0),r=n(67),a=n(4),i=n(6),c=n(50).onFreeze,l=Object.freeze;o({target:"Object",stat:!0,forced:a((function(){l(1)})),sham:!r},{freeze:function(e){return l&&i(e)?l(c(e)):e}})},function(e,t,n){"use strict";var o=n(0),r=n(68),a=n(49);o({target:"Object",stat:!0},{fromEntries:function(e){var t={};return r(e,(function(e,n){a(t,e,n)}),undefined,!0),t}})},function(e,t,n){"use strict";var o=n(0),r=n(4),a=n(25),i=n(20).f,c=n(9),l=r((function(){i(1)}));o({target:"Object",stat:!0,forced:!c||l,sham:!c},{getOwnPropertyDescriptor:function(e,t){return i(a(e),t)}})},function(e,t,n){"use strict";var o=n(0),r=n(9),a=n(92),i=n(25),c=n(20),l=n(49);o({target:"Object",stat:!0,sham:!r},{getOwnPropertyDescriptors:function(e){for(var t,n,o=i(e),r=c.f,u=a(o),d={},s=0;u.length>s;)(n=r(o,t=u[s++]))!==undefined&&l(d,t,n);return d}})},function(e,t,n){"use strict";var o=n(0),r=n(4),a=n(128).f;o({target:"Object",stat:!0,forced:r((function(){return!Object.getOwnPropertyNames(1)}))},{getOwnPropertyNames:a})},function(e,t,n){"use strict";var o=n(0),r=n(4),a=n(14),i=n(36),c=n(102);o({target:"Object",stat:!0,forced:r((function(){i(1)})),sham:!c},{getPrototypeOf:function(e){return i(a(e))}})},function(e,t,n){"use strict";n(0)({target:"Object",stat:!0},{is:n(144)})},function(e,t,n){"use strict";var o=n(0),r=n(4),a=n(6),i=Object.isExtensible;o({target:"Object",stat:!0,forced:r((function(){i(1)}))},{isExtensible:function(e){return!!a(e)&&(!i||i(e))}})},function(e,t,n){"use strict";var o=n(0),r=n(4),a=n(6),i=Object.isFrozen;o({target:"Object",stat:!0,forced:r((function(){i(1)}))},{isFrozen:function(e){return!a(e)||!!i&&i(e)}})},function(e,t,n){"use strict";var o=n(0),r=n(4),a=n(6),i=Object.isSealed;o({target:"Object",stat:!0,forced:r((function(){i(1)}))},{isSealed:function(e){return!a(e)||!!i&&i(e)}})},function(e,t,n){"use strict";var o=n(0),r=n(14),a=n(62);o({target:"Object",stat:!0,forced:n(4)((function(){a(1)}))},{keys:function(e){return a(r(e))}})},function(e,t,n){"use strict";var o=n(0),r=n(9),a=n(82),i=n(14),c=n(33),l=n(36),u=n(20).f;r&&o({target:"Object",proto:!0,forced:a},{__lookupGetter__:function(e){var t,n=i(this),o=c(e,!0);do{if(t=u(n,o))return t.get}while(n=l(n))}})},function(e,t,n){"use strict";var o=n(0),r=n(9),a=n(82),i=n(14),c=n(33),l=n(36),u=n(20).f;r&&o({target:"Object",proto:!0,forced:a},{__lookupSetter__:function(e){var t,n=i(this),o=c(e,!0);do{if(t=u(n,o))return t.set}while(n=l(n))}})},function(e,t,n){"use strict";var o=n(0),r=n(6),a=n(50).onFreeze,i=n(67),c=n(4),l=Object.preventExtensions;o({target:"Object",stat:!0,forced:c((function(){l(1)})),sham:!i},{preventExtensions:function(e){return l&&r(e)?l(a(e)):e}})},function(e,t,n){"use strict";var o=n(0),r=n(6),a=n(50).onFreeze,i=n(67),c=n(4),l=Object.seal;o({target:"Object",stat:!0,forced:c((function(){l(1)})),sham:!i},{seal:function(e){return l&&r(e)?l(a(e)):e}})},function(e,t,n){"use strict";n(0)({target:"Object",stat:!0},{setPrototypeOf:n(53)})},function(e,t,n){"use strict";var o=n(100),r=n(22),a=n(292);o||r(Object.prototype,"toString",a,{unsafe:!0})},function(e,t,n){"use strict";var o=n(100),r=n(74);e.exports=o?{}.toString:function(){return"[object "+r(this)+"]"}},function(e,t,n){"use strict";var o=n(0),r=n(143).values;o({target:"Object",stat:!0},{values:function(e){return r(e)}})},function(e,t,n){"use strict";var o=n(0),r=n(142);o({global:!0,forced:parseInt!=r},{parseInt:r})},function(e,t,n){"use strict";var o,r,a,i,c=n(0),l=n(38),u=n(5),d=n(35),s=n(145),p=n(22),m=n(66),f=n(43),h=n(54),C=n(6),g=n(31),b=n(55),N=n(32),v=n(90),V=n(68),y=n(75),_=n(45),x=n(106).set,k=n(147),L=n(148),w=n(296),B=n(149),S=n(297),I=n(34),T=n(61),A=n(11),P=n(96),E=A("species"),M="Promise",O=I.get,R=I.set,F=I.getterFor(M),D=s,j=u.TypeError,z=u.document,H=u.process,G=d("fetch"),U=B.f,K=U,Y="process"==N(H),q=!!(z&&z.createEvent&&u.dispatchEvent),W=0,$=T(M,(function(){if(!(v(D)!==String(D))){if(66===P)return!0;if(!Y&&"function"!=typeof PromiseRejectionEvent)return!0}if(l&&!D.prototype["finally"])return!0;if(P>=51&&/native code/.test(D))return!1;var e=D.resolve(1),t=function(e){e((function(){}),(function(){}))};return(e.constructor={})[E]=t,!(e.then((function(){}))instanceof t)})),Q=$||!y((function(e){D.all(e)["catch"]((function(){}))})),X=function(e){var t;return!(!C(e)||"function"!=typeof(t=e.then))&&t},J=function(e,t,n){if(!t.notified){t.notified=!0;var o=t.reactions;k((function(){for(var r=t.value,a=1==t.state,i=0;o.length>i;){var c,l,u,d=o[i++],s=a?d.ok:d.fail,p=d.resolve,m=d.reject,f=d.domain;try{s?(a||(2===t.rejection&&ne(e,t),t.rejection=1),!0===s?c=r:(f&&f.enter(),c=s(r),f&&(f.exit(),u=!0)),c===d.promise?m(j("Promise-chain cycle")):(l=X(c))?l.call(c,p,m):p(c)):m(r)}catch(h){f&&!u&&f.exit(),m(h)}}t.reactions=[],t.notified=!1,n&&!t.rejection&&ee(e,t)}))}},Z=function(e,t,n){var o,r;q?((o=z.createEvent("Event")).promise=t,o.reason=n,o.initEvent(e,!1,!0),u.dispatchEvent(o)):o={promise:t,reason:n},(r=u["on"+e])?r(o):"unhandledrejection"===e&&w("Unhandled promise rejection",n)},ee=function(e,t){x.call(u,(function(){var n,o=t.value;if(te(t)&&(n=S((function(){Y?H.emit("unhandledRejection",o,e):Z("unhandledrejection",e,o)})),t.rejection=Y||te(t)?2:1,n.error))throw n.value}))},te=function(e){return 1!==e.rejection&&!e.parent},ne=function(e,t){x.call(u,(function(){Y?H.emit("rejectionHandled",e):Z("rejectionhandled",e,t.value)}))},oe=function(e,t,n,o){return function(r){e(t,n,r,o)}},re=function(e,t,n,o){t.done||(t.done=!0,o&&(t=o),t.value=n,t.state=2,J(e,t,!0))},ae=function ie(e,t,n,o){if(!t.done){t.done=!0,o&&(t=o);try{if(e===n)throw j("Promise can't be resolved itself");var r=X(n);r?k((function(){var o={done:!1};try{r.call(n,oe(ie,e,o,t),oe(re,e,o,t))}catch(a){re(e,o,a,t)}})):(t.value=n,t.state=1,J(e,t,!1))}catch(a){re(e,{done:!1},a,t)}}};$&&(D=function(e){b(this,D,M),g(e),o.call(this);var t=O(this);try{e(oe(ae,this,t),oe(re,this,t))}catch(n){re(this,t,n)}},(o=function(e){R(this,{type:M,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:W,value:undefined})}).prototype=m(D.prototype,{then:function(e,t){var n=F(this),o=U(_(this,D));return o.ok="function"!=typeof e||e,o.fail="function"==typeof t&&t,o.domain=Y?H.domain:undefined,n.parent=!0,n.reactions.push(o),n.state!=W&&J(this,n,!1),o.promise},"catch":function(e){return this.then(undefined,e)}}),r=function(){var e=new o,t=O(e);this.promise=e,this.resolve=oe(ae,e,t),this.reject=oe(re,e,t)},B.f=U=function(e){return e===D||e===a?new r(e):K(e)},l||"function"!=typeof s||(i=s.prototype.then,p(s.prototype,"then",(function(e,t){var n=this;return new D((function(e,t){i.call(n,e,t)})).then(e,t)}),{unsafe:!0}),"function"==typeof G&&c({global:!0,enumerable:!0,forced:!0},{fetch:function(e){return L(D,G.apply(u,arguments))}}))),c({global:!0,wrap:!0,forced:$},{Promise:D}),f(D,M,!1,!0),h(M),a=d(M),c({target:M,stat:!0,forced:$},{reject:function(e){var t=U(this);return t.reject.call(undefined,e),t.promise}}),c({target:M,stat:!0,forced:l||$},{resolve:function(e){return L(l&&this===a?D:this,e)}}),c({target:M,stat:!0,forced:Q},{all:function(e){var t=this,n=U(t),o=n.resolve,r=n.reject,a=S((function(){var n=g(t.resolve),a=[],i=0,c=1;V(e,(function(e){var l=i++,u=!1;a.push(undefined),c++,n.call(t,e).then((function(e){u||(u=!0,a[l]=e,--c||o(a))}),r)})),--c||o(a)}));return a.error&&r(a.value),n.promise},race:function(e){var t=this,n=U(t),o=n.reject,r=S((function(){var r=g(t.resolve);V(e,(function(e){r.call(t,e).then(n.resolve,o)}))}));return r.error&&o(r.value),n.promise}})},function(e,t,n){"use strict";var o=n(5);e.exports=function(e,t){var n=o.console;n&&n.error&&(1===arguments.length?n.error(e):n.error(e,t))}},function(e,t,n){"use strict";e.exports=function(e){try{return{error:!1,value:e()}}catch(t){return{error:!0,value:t}}}},function(e,t,n){"use strict";var o=n(0),r=n(38),a=n(145),i=n(4),c=n(35),l=n(45),u=n(148),d=n(22);o({target:"Promise",proto:!0,real:!0,forced:!!a&&i((function(){a.prototype["finally"].call({then:function(){}},(function(){}))}))},{"finally":function(e){var t=l(this,c("Promise")),n="function"==typeof e;return this.then(n?function(n){return u(t,e()).then((function(){return n}))}:e,n?function(n){return u(t,e()).then((function(){throw n}))}:e)}}),r||"function"!=typeof a||a.prototype["finally"]||d(a.prototype,"finally",c("Promise").prototype["finally"])},function(e,t,n){"use strict";var o=n(0),r=n(35),a=n(31),i=n(8),c=n(4),l=r("Reflect","apply"),u=Function.apply;o({target:"Reflect",stat:!0,forced:!c((function(){l((function(){}))}))},{apply:function(e,t,n){return a(e),i(n),l?l(e,t,n):u.call(e,t,n)}})},function(e,t,n){"use strict";var o=n(0),r=n(35),a=n(31),i=n(8),c=n(6),l=n(42),u=n(138),d=n(4),s=r("Reflect","construct"),p=d((function(){function e(){}return!(s((function(){}),[],e)instanceof e)})),m=!d((function(){s((function(){}))})),f=p||m;o({target:"Reflect",stat:!0,forced:f,sham:f},{construct:function(e,t){a(e),i(t);var n=arguments.length<3?e:a(arguments[2]);if(m&&!p)return s(e,t,n);if(e==n){switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3])}var o=[null];return o.push.apply(o,t),new(u.apply(e,o))}var r=n.prototype,d=l(c(r)?r:Object.prototype),f=Function.apply.call(e,d,t);return c(f)?f:d}})},function(e,t,n){"use strict";var o=n(0),r=n(9),a=n(8),i=n(33),c=n(13);o({target:"Reflect",stat:!0,forced:n(4)((function(){Reflect.defineProperty(c.f({},1,{value:1}),1,{value:2})})),sham:!r},{defineProperty:function(e,t,n){a(e);var o=i(t,!0);a(n);try{return c.f(e,o,n),!0}catch(r){return!1}}})},function(e,t,n){"use strict";var o=n(0),r=n(8),a=n(20).f;o({target:"Reflect",stat:!0},{deleteProperty:function(e,t){var n=a(r(e),t);return!(n&&!n.configurable)&&delete e[t]}})},function(e,t,n){"use strict";var o=n(0),r=n(6),a=n(8),i=n(15),c=n(20),l=n(36);o({target:"Reflect",stat:!0},{get:function u(e,t){var n,o,d=arguments.length<3?e:arguments[2];return a(e)===d?e[t]:(n=c.f(e,t))?i(n,"value")?n.value:n.get===undefined?undefined:n.get.call(d):r(o=l(e))?u(o,t,d):void 0}})},function(e,t,n){"use strict";var o=n(0),r=n(9),a=n(8),i=n(20);o({target:"Reflect",stat:!0,sham:!r},{getOwnPropertyDescriptor:function(e,t){return i.f(a(e),t)}})},function(e,t,n){"use strict";var o=n(0),r=n(8),a=n(36);o({target:"Reflect",stat:!0,sham:!n(102)},{getPrototypeOf:function(e){return a(r(e))}})},function(e,t,n){"use strict";n(0)({target:"Reflect",stat:!0},{has:function(e,t){return t in e}})},function(e,t,n){"use strict";var o=n(0),r=n(8),a=Object.isExtensible;o({target:"Reflect",stat:!0},{isExtensible:function(e){return r(e),!a||a(e)}})},function(e,t,n){"use strict";n(0)({target:"Reflect",stat:!0},{ownKeys:n(92)})},function(e,t,n){"use strict";var o=n(0),r=n(35),a=n(8);o({target:"Reflect",stat:!0,sham:!n(67)},{preventExtensions:function(e){a(e);try{var t=r("Object","preventExtensions");return t&&t(e),!0}catch(n){return!1}}})},function(e,t,n){"use strict";var o=n(0),r=n(8),a=n(6),i=n(15),c=n(4),l=n(13),u=n(20),d=n(36),s=n(46);o({target:"Reflect",stat:!0,forced:c((function(){var e=l.f({},"a",{configurable:!0});return!1!==Reflect.set(d(e),"a",1,e)}))},{set:function p(e,t,n){var o,c,m=arguments.length<4?e:arguments[3],f=u.f(r(e),t);if(!f){if(a(c=d(e)))return p(c,t,n,m);f=s(0)}if(i(f,"value")){if(!1===f.writable||!a(m))return!1;if(o=u.f(m,t)){if(o.get||o.set||!1===o.writable)return!1;o.value=n,l.f(m,t,o)}else l.f(m,t,s(0,n));return!0}return f.set!==undefined&&(f.set.call(m,n),!0)}})},function(e,t,n){"use strict";var o=n(0),r=n(8),a=n(135),i=n(53);i&&o({target:"Reflect",stat:!0},{setPrototypeOf:function(e,t){r(e),a(t);try{return i(e,t),!0}catch(n){return!1}}})},function(e,t,n){"use strict";var o=n(9),r=n(5),a=n(61),i=n(79),c=n(13).f,l=n(47).f,u=n(107),d=n(83),s=n(22),p=n(4),m=n(54),f=n(11)("match"),h=r.RegExp,C=h.prototype,g=/a/g,b=/a/g,N=new h(g)!==g;if(o&&a("RegExp",!N||p((function(){return b[f]=!1,h(g)!=g||h(b)==b||"/a/i"!=h(g,"i")})))){for(var v=function(e,t){var n=this instanceof v,o=u(e),r=t===undefined;return!n&&o&&e.constructor===v&&r?e:i(N?new h(o&&!r?e.source:e,t):h((o=e instanceof v)?e.source:e,o&&r?d.call(e):t),n?this:C,v)},V=function(e){e in v||c(v,e,{configurable:!0,get:function(){return h[e]},set:function(t){h[e]=t}})},y=l(h),_=0;y.length>_;)V(y[_++]);C.constructor=v,v.prototype=C,s(r,"RegExp",v)}m("RegExp")},function(e,t,n){"use strict";var o=n(0),r=n(84);o({target:"RegExp",proto:!0,forced:/./.exec!==r},{exec:r})},function(e,t,n){"use strict";var o=n(9),r=n(13),a=n(83);o&&"g"!=/./g.flags&&r.f(RegExp.prototype,"flags",{configurable:!0,get:a})},function(e,t,n){"use strict";var o=n(22),r=n(8),a=n(4),i=n(83),c=RegExp.prototype,l=c.toString,u=a((function(){return"/a/b"!=l.call({source:"a",flags:"b"})})),d="toString"!=l.name;(u||d)&&o(RegExp.prototype,"toString",(function(){var e=r(this),t=String(e.source),n=e.flags;return"/"+t+"/"+String(n===undefined&&e instanceof RegExp&&!("flags"in c)?i.call(e):n)}),{unsafe:!0})},function(e,t,n){"use strict";var o=n(78),r=n(139);e.exports=o("Set",(function(e){return function(){return e(this,arguments.length?arguments[0]:undefined)}}),r)},function(e,t,n){"use strict";var o=n(0),r=n(108).codeAt;o({target:"String",proto:!0},{codePointAt:function(e){return r(this,e)}})},function(e,t,n){"use strict";var o,r=n(0),a=n(20).f,i=n(10),c=n(109),l=n(21),u=n(110),d=n(38),s="".endsWith,p=Math.min,m=u("endsWith");r({target:"String",proto:!0,forced:!!(d||m||(o=a(String.prototype,"endsWith"),!o||o.writable))&&!m},{endsWith:function(e){var t=String(l(this));c(e);var n=arguments.length>1?arguments[1]:undefined,o=i(t.length),r=n===undefined?o:p(i(n),o),a=String(e);return s?s.call(t,a,r):t.slice(r-a.length,r)===a}})},function(e,t,n){"use strict";var o=n(0),r=n(41),a=String.fromCharCode,i=String.fromCodePoint;o({target:"String",stat:!0,forced:!!i&&1!=i.length},{fromCodePoint:function(e){for(var t,n=[],o=arguments.length,i=0;o>i;){if(t=+arguments[i++],r(t,1114111)!==t)throw RangeError(t+" is not a valid code point");n.push(t<65536?a(t):a(55296+((t-=65536)>>10),t%1024+56320))}return n.join("")}})},function(e,t,n){"use strict";var o=n(0),r=n(109),a=n(21);o({target:"String",proto:!0,forced:!n(110)("includes")},{includes:function(e){return!!~String(a(this)).indexOf(r(e),arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(108).charAt,r=n(34),a=n(101),i=r.set,c=r.getterFor("String Iterator");a(String,"String",(function(e){i(this,{type:"String Iterator",string:String(e),index:0})}),(function(){var e,t=c(this),n=t.string,r=t.index;return r>=n.length?{value:undefined,done:!0}:(e=o(n,r),t.index+=e.length,{value:e,done:!1})}))},function(e,t,n){"use strict";var o=n(85),r=n(8),a=n(10),i=n(21),c=n(111),l=n(86);o("match",1,(function(e,t,n){return[function(t){var n=i(this),o=t==undefined?undefined:t[e];return o!==undefined?o.call(t,n):new RegExp(t)[e](String(n))},function(e){var o=n(t,e,this);if(o.done)return o.value;var i=r(e),u=String(this);if(!i.global)return l(i,u);var d=i.unicode;i.lastIndex=0;for(var s,p=[],m=0;null!==(s=l(i,u));){var f=String(s[0]);p[m]=f,""===f&&(i.lastIndex=c(u,a(i.lastIndex),d)),m++}return 0===m?null:p}]}))},function(e,t,n){"use strict";var o=n(0),r=n(103).end;o({target:"String",proto:!0,forced:n(150)},{padEnd:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(0),r=n(103).start;o({target:"String",proto:!0,forced:n(150)},{padStart:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(0),r=n(25),a=n(10);o({target:"String",stat:!0},{raw:function(e){for(var t=r(e.raw),n=a(t.length),o=arguments.length,i=[],c=0;n>c;)i.push(String(t[c++])),c]*>)/g,h=/\$([$&'`]|\d\d?)/g;o("replace",2,(function(e,t,n){return[function(n,o){var r=l(this),a=n==undefined?undefined:n[e];return a!==undefined?a.call(n,r,o):t.call(String(r),n,o)},function(e,a){var l=n(t,e,this,a);if(l.done)return l.value;var m=r(e),f=String(this),h="function"==typeof a;h||(a=String(a));var C=m.global;if(C){var g=m.unicode;m.lastIndex=0}for(var b=[];;){var N=d(m,f);if(null===N)break;if(b.push(N),!C)break;""===String(N[0])&&(m.lastIndex=u(f,i(m.lastIndex),g))}for(var v,V="",y=0,_=0;_=y&&(V+=f.slice(y,k)+I,y=k+x.length)}return V+f.slice(y)}];function o(e,n,o,r,i,c){var l=o+e.length,u=r.length,d=h;return i!==undefined&&(i=a(i),d=f),t.call(c,d,(function(t,a){var c;switch(a.charAt(0)){case"$":return"$";case"&":return e;case"`":return n.slice(0,o);case"'":return n.slice(l);case"<":c=i[a.slice(1,-1)];break;default:var d=+a;if(0===d)return t;if(d>u){var s=m(d/10);return 0===s?t:s<=u?r[s-1]===undefined?a.charAt(1):r[s-1]+a.charAt(1):t}c=r[d-1]}return c===undefined?"":c}))}}))},function(e,t,n){"use strict";var o=n(85),r=n(8),a=n(21),i=n(144),c=n(86);o("search",1,(function(e,t,n){return[function(t){var n=a(this),o=t==undefined?undefined:t[e];return o!==undefined?o.call(t,n):new RegExp(t)[e](String(n))},function(e){var o=n(t,e,this);if(o.done)return o.value;var a=r(e),l=String(this),u=a.lastIndex;i(u,0)||(a.lastIndex=0);var d=c(a,l);return i(a.lastIndex,u)||(a.lastIndex=u),null===d?-1:d.index}]}))},function(e,t,n){"use strict";var o=n(85),r=n(107),a=n(8),i=n(21),c=n(45),l=n(111),u=n(10),d=n(86),s=n(84),p=n(4),m=[].push,f=Math.min,h=!p((function(){return!RegExp(4294967295,"y")}));o("split",2,(function(e,t,n){var o;return o="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(e,n){var o=String(i(this)),a=n===undefined?4294967295:n>>>0;if(0===a)return[];if(e===undefined)return[o];if(!r(e))return t.call(o,e,a);for(var c,l,u,d=[],p=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),f=0,h=new RegExp(e.source,p+"g");(c=s.call(h,o))&&!((l=h.lastIndex)>f&&(d.push(o.slice(f,c.index)),c.length>1&&c.index=a));)h.lastIndex===c.index&&h.lastIndex++;return f===o.length?!u&&h.test("")||d.push(""):d.push(o.slice(f)),d.length>a?d.slice(0,a):d}:"0".split(undefined,0).length?function(e,n){return e===undefined&&0===n?[]:t.call(this,e,n)}:t,[function(t,n){var r=i(this),a=t==undefined?undefined:t[e];return a!==undefined?a.call(t,r,n):o.call(String(r),t,n)},function(e,r){var i=n(o,e,this,r,o!==t);if(i.done)return i.value;var s=a(e),p=String(this),m=c(s,RegExp),C=s.unicode,g=(s.ignoreCase?"i":"")+(s.multiline?"m":"")+(s.unicode?"u":"")+(h?"y":"g"),b=new m(h?s:"^(?:"+s.source+")",g),N=r===undefined?4294967295:r>>>0;if(0===N)return[];if(0===p.length)return null===d(b,p)?[p]:[];for(var v=0,V=0,y=[];V1?arguments[1]:undefined,t.length)),o=String(e);return s?s.call(t,o,n):t.slice(n,n+o.length)===o}})},function(e,t,n){"use strict";var o=n(0),r=n(56).trim;o({target:"String",proto:!0,forced:n(112)("trim")},{trim:function(){return r(this)}})},function(e,t,n){"use strict";var o=n(0),r=n(56).end,a=n(112)("trimEnd"),i=a?function(){return r(this)}:"".trimEnd;o({target:"String",proto:!0,forced:a},{trimEnd:i,trimRight:i})},function(e,t,n){"use strict";var o=n(0),r=n(56).start,a=n(112)("trimStart"),i=a?function(){return r(this)}:"".trimStart;o({target:"String",proto:!0,forced:a},{trimStart:i,trimLeft:i})},function(e,t,n){"use strict";var o=n(0),r=n(28);o({target:"String",proto:!0,forced:n(29)("anchor")},{anchor:function(e){return r(this,"a","name",e)}})},function(e,t,n){"use strict";var o=n(0),r=n(28);o({target:"String",proto:!0,forced:n(29)("big")},{big:function(){return r(this,"big","","")}})},function(e,t,n){"use strict";var o=n(0),r=n(28);o({target:"String",proto:!0,forced:n(29)("blink")},{blink:function(){return r(this,"blink","","")}})},function(e,t,n){"use strict";var o=n(0),r=n(28);o({target:"String",proto:!0,forced:n(29)("bold")},{bold:function(){return r(this,"b","","")}})},function(e,t,n){"use strict";var o=n(0),r=n(28);o({target:"String",proto:!0,forced:n(29)("fixed")},{fixed:function(){return r(this,"tt","","")}})},function(e,t,n){"use strict";var o=n(0),r=n(28);o({target:"String",proto:!0,forced:n(29)("fontcolor")},{fontcolor:function(e){return r(this,"font","color",e)}})},function(e,t,n){"use strict";var o=n(0),r=n(28);o({target:"String",proto:!0,forced:n(29)("fontsize")},{fontsize:function(e){return r(this,"font","size",e)}})},function(e,t,n){"use strict";var o=n(0),r=n(28);o({target:"String",proto:!0,forced:n(29)("italics")},{italics:function(){return r(this,"i","","")}})},function(e,t,n){"use strict";var o=n(0),r=n(28);o({target:"String",proto:!0,forced:n(29)("link")},{link:function(e){return r(this,"a","href",e)}})},function(e,t,n){"use strict";var o=n(0),r=n(28);o({target:"String",proto:!0,forced:n(29)("small")},{small:function(){return r(this,"small","","")}})},function(e,t,n){"use strict";var o=n(0),r=n(28);o({target:"String",proto:!0,forced:n(29)("strike")},{strike:function(){return r(this,"strike","","")}})},function(e,t,n){"use strict";var o=n(0),r=n(28);o({target:"String",proto:!0,forced:n(29)("sub")},{sub:function(){return r(this,"sub","","")}})},function(e,t,n){"use strict";var o=n(0),r=n(28);o({target:"String",proto:!0,forced:n(29)("sup")},{sup:function(){return r(this,"sup","","")}})},function(e,t,n){"use strict";n(40)("Float32",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";var o=n(30);e.exports=function(e){var t=o(e);if(t<0)throw RangeError("The argument can't be less than 0");return t}},function(e,t,n){"use strict";n(40)("Float64",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";n(40)("Int8",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";n(40)("Int16",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";n(40)("Int32",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";n(40)("Uint8",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";n(40)("Uint8",(function(e){return function(t,n,o){return e(this,t,n,o)}}),!0)},function(e,t,n){"use strict";n(40)("Uint16",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";n(40)("Uint32",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";var o=n(7),r=n(130),a=o.aTypedArray;(0,o.exportTypedArrayMethod)("copyWithin",(function(e,t){return r.call(a(this),e,t,arguments.length>2?arguments[2]:undefined)}))},function(e,t,n){"use strict";var o=n(7),r=n(17).every,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("every",(function(e){return r(a(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(7),r=n(97),a=o.aTypedArray;(0,o.exportTypedArrayMethod)("fill",(function(e){return r.apply(a(this),arguments)}))},function(e,t,n){"use strict";var o=n(7),r=n(17).filter,a=n(45),i=o.aTypedArray,c=o.aTypedArrayConstructor;(0,o.exportTypedArrayMethod)("filter",(function(e){for(var t=r(i(this),e,arguments.length>1?arguments[1]:undefined),n=a(this,this.constructor),o=0,l=t.length,u=new(c(n))(l);l>o;)u[o]=t[o++];return u}))},function(e,t,n){"use strict";var o=n(7),r=n(17).find,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("find",(function(e){return r(a(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(7),r=n(17).findIndex,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("findIndex",(function(e){return r(a(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(7),r=n(17).forEach,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("forEach",(function(e){r(a(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(113);(0,n(7).exportTypedArrayStaticMethod)("from",n(152),o)},function(e,t,n){"use strict";var o=n(7),r=n(60).includes,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("includes",(function(e){return r(a(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(7),r=n(60).indexOf,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("indexOf",(function(e){return r(a(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(5),r=n(7),a=n(133),i=n(11)("iterator"),c=o.Uint8Array,l=a.values,u=a.keys,d=a.entries,s=r.aTypedArray,p=r.exportTypedArrayMethod,m=c&&c.prototype[i],f=!!m&&("values"==m.name||m.name==undefined),h=function(){return l.call(s(this))};p("entries",(function(){return d.call(s(this))})),p("keys",(function(){return u.call(s(this))})),p("values",h,!f),p(i,h,!f)},function(e,t,n){"use strict";var o=n(7),r=o.aTypedArray,a=o.exportTypedArrayMethod,i=[].join;a("join",(function(e){return i.apply(r(this),arguments)}))},function(e,t,n){"use strict";var o=n(7),r=n(136),a=o.aTypedArray;(0,o.exportTypedArrayMethod)("lastIndexOf",(function(e){return r.apply(a(this),arguments)}))},function(e,t,n){"use strict";var o=n(7),r=n(17).map,a=n(45),i=o.aTypedArray,c=o.aTypedArrayConstructor;(0,o.exportTypedArrayMethod)("map",(function(e){return r(i(this),e,arguments.length>1?arguments[1]:undefined,(function(e,t){return new(c(a(e,e.constructor)))(t)}))}))},function(e,t,n){"use strict";var o=n(7),r=n(113),a=o.aTypedArrayConstructor;(0,o.exportTypedArrayStaticMethod)("of",(function(){for(var e=0,t=arguments.length,n=new(a(this))(t);t>e;)n[e]=arguments[e++];return n}),r)},function(e,t,n){"use strict";var o=n(7),r=n(76).left,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("reduce",(function(e){return r(a(this),e,arguments.length,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(7),r=n(76).right,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("reduceRight",(function(e){return r(a(this),e,arguments.length,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(7),r=o.aTypedArray,a=o.exportTypedArrayMethod,i=Math.floor;a("reverse",(function(){for(var e,t=r(this).length,n=i(t/2),o=0;o1?arguments[1]:undefined,1),n=this.length,o=i(e),c=r(o.length),u=0;if(c+t>n)throw RangeError("Wrong length");for(;ua;)d[a]=n[a++];return d}),a((function(){new Int8Array(1).slice()})))},function(e,t,n){"use strict";var o=n(7),r=n(17).some,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("some",(function(e){return r(a(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(7),r=o.aTypedArray,a=o.exportTypedArrayMethod,i=[].sort;a("sort",(function(e){return i.call(r(this),e)}))},function(e,t,n){"use strict";var o=n(7),r=n(10),a=n(41),i=n(45),c=o.aTypedArray;(0,o.exportTypedArrayMethod)("subarray",(function(e,t){var n=c(this),o=n.length,l=a(e,o);return new(i(n,n.constructor))(n.buffer,n.byteOffset+l*n.BYTES_PER_ELEMENT,r((t===undefined?o:a(t,o))-l))}))},function(e,t,n){"use strict";var o=n(5),r=n(7),a=n(4),i=o.Int8Array,c=r.aTypedArray,l=r.exportTypedArrayMethod,u=[].toLocaleString,d=[].slice,s=!!i&&a((function(){u.call(new i(1))}));l("toLocaleString",(function(){return u.apply(s?d.call(c(this)):c(this),arguments)}),a((function(){return[1,2].toLocaleString()!=new i([1,2]).toLocaleString()}))||!a((function(){i.prototype.toLocaleString.call([1,2])})))},function(e,t,n){"use strict";var o=n(7).exportTypedArrayMethod,r=n(4),a=n(5).Uint8Array,i=a&&a.prototype||{},c=[].toString,l=[].join;r((function(){c.call({})}))&&(c=function(){return l.call(this)});var u=i.toString!=c;o("toString",c,u)},function(e,t,n){"use strict";var o,r=n(5),a=n(66),i=n(50),c=n(78),l=n(153),u=n(6),d=n(34).enforce,s=n(121),p=!r.ActiveXObject&&"ActiveXObject"in r,m=Object.isExtensible,f=function(e){return function(){return e(this,arguments.length?arguments[0]:undefined)}},h=e.exports=c("WeakMap",f,l);if(s&&p){o=l.getConstructor(f,"WeakMap",!0),i.REQUIRED=!0;var C=h.prototype,g=C["delete"],b=C.has,N=C.get,v=C.set;a(C,{"delete":function(e){if(u(e)&&!m(e)){var t=d(this);return t.frozen||(t.frozen=new o),g.call(this,e)||t.frozen["delete"](e)}return g.call(this,e)},has:function(e){if(u(e)&&!m(e)){var t=d(this);return t.frozen||(t.frozen=new o),b.call(this,e)||t.frozen.has(e)}return b.call(this,e)},get:function(e){if(u(e)&&!m(e)){var t=d(this);return t.frozen||(t.frozen=new o),b.call(this,e)?N.call(this,e):t.frozen.get(e)}return N.call(this,e)},set:function(e,t){if(u(e)&&!m(e)){var n=d(this);n.frozen||(n.frozen=new o),b.call(this,e)?v.call(this,e,t):n.frozen.set(e,t)}else v.call(this,e,t);return this}})}},function(e,t,n){"use strict";n(78)("WeakSet",(function(e){return function(){return e(this,arguments.length?arguments[0]:undefined)}}),n(153))},function(e,t,n){"use strict";var o=n(0),r=n(5),a=n(106);o({global:!0,bind:!0,enumerable:!0,forced:!r.setImmediate||!r.clearImmediate},{setImmediate:a.set,clearImmediate:a.clear})},function(e,t,n){"use strict";var o=n(0),r=n(5),a=n(147),i=n(32),c=r.process,l="process"==i(c);o({global:!0,enumerable:!0,noTargetGet:!0},{queueMicrotask:function(e){var t=l&&c.domain;a(t?t.bind(e):e)}})},function(e,t,n){"use strict";var o=n(0),r=n(5),a=n(73),i=[].slice,c=function(e){return function(t,n){var o=arguments.length>2,r=o?i.call(arguments,2):undefined;return e(o?function(){("function"==typeof t?t:Function(t)).apply(this,r)}:t,n)}};o({global:!0,bind:!0,forced:/MSIE .\./.test(a)},{setTimeout:c(r.setTimeout),setInterval:c(r.setInterval)})},function(e,t,n){"use strict";t.__esModule=!0,t._CI=Ie,t._HI=D,t._M=Te,t._MCCC=Me,t._ME=Pe,t._MFCC=Oe,t._MP=Be,t._MR=ve,t.__render=ze,t.createComponentVNode=function(e,t,n,o,r){var i=new T(1,null,null,e=function(e,t){if(12&e)return e;if(t.prototype&&t.prototype.render)return 4;if(t.render)return 32776;return 8}(e,t),o,function(e,t,n){var o=(32768&e?t.render:t).defaultProps;if(a(o))return n;if(a(n))return d(o,null);return B(n,o)}(e,t,n),function(e,t,n){if(4&e)return n;var o=(32768&e?t.render:t).defaultHooks;if(a(o))return n;if(a(n))return o;return B(n,o)}(e,t,r),t);k.createVNode&&k.createVNode(i);return i},t.createFragment=E,t.createPortal=function(e,t){var n=D(e);return A(1024,1024,null,n,0,null,n.key,t)},t.createRef=function(){return{current:null}},t.createRenderer=function(e){return function(t,n,o,r){e||(e=t),He(n,e,o,r)}},t.createTextVNode=P,t.createVNode=A,t.directClone=M,t.findDOMfromVNode=v,t.forwardRef=function(e){return{render:e}},t.getFlagsForElementVnode=function(e){switch(e){case"svg":return 32;case"input":return 64;case"select":return 256;case"textarea":return 128;case m:return 8192;default:return 1}},t.linkEvent=function(e,t){if(c(t))return{data:e,event:t};return null},t.normalizeProps=function(e){var t=e.props;if(t){var n=e.flags;481&n&&(void 0!==t.children&&a(e.children)&&F(e,t.children),void 0!==t.className&&(e.className=t.className||null,t.className=undefined)),void 0!==t.key&&(e.key=t.key,t.key=undefined),void 0!==t.ref&&(e.ref=8&n?d(e.ref,t.ref):t.ref,t.ref=undefined)}return e},t.render=He,t.rerender=We,t.version=t.options=t.Fragment=t.EMPTY_OBJ=t.Component=void 0;var o=Array.isArray;function r(e){var t=typeof e;return"string"===t||"number"===t}function a(e){return null==e}function i(e){return null===e||!1===e||!0===e||void 0===e}function c(e){return"function"==typeof e}function l(e){return"string"==typeof e}function u(e){return null===e}function d(e,t){var n={};if(e)for(var o in e)n[o]=e[o];if(t)for(var r in t)n[r]=t[r];return n}function s(e){return!u(e)&&"object"==typeof e}var p={};t.EMPTY_OBJ=p;var m="$F";function f(e){return e.substr(2).toLowerCase()}function h(e,t){e.appendChild(t)}function C(e,t,n){u(n)?h(e,t):e.insertBefore(t,n)}function g(e,t){e.removeChild(t)}function b(e){for(var t;(t=e.shift())!==undefined;)t()}function N(e,t,n){var o=e.children;return 4&n?o.$LI:8192&n?2===e.childFlags?o:o[t?0:o.length-1]:o}function v(e,t){for(var n;e;){if(2033&(n=e.flags))return e.dom;e=N(e,t,n)}return null}function V(e,t){do{var n=e.flags;if(2033&n)return void g(t,e.dom);var o=e.children;if(4&n&&(e=o.$LI),8&n&&(e=o),8192&n){if(2!==e.childFlags){for(var r=0,a=o.length;r0,f=u(p),h=l(p)&&p[0]===I;m||f||h?(n=n||t.slice(0,d),(m||h)&&(s=M(s)),(f||h)&&(s.key=I+d),n.push(s)):n&&n.push(s),s.flags|=65536}}a=0===(n=n||t).length?1:8}else(n=t).flags|=65536,81920&t.flags&&(n=M(t)),a=2;return e.children=n,e.childFlags=a,e}function D(e){return i(e)||r(e)?P(e,null):o(e)?E(e,0,null):16384&e.flags?M(e):e}var j="http://www.w3.org/1999/xlink",z="http://www.w3.org/XML/1998/namespace",H={"xlink:actuate":j,"xlink:arcrole":j,"xlink:href":j,"xlink:role":j,"xlink:show":j,"xlink:title":j,"xlink:type":j,"xml:base":z,"xml:lang":z,"xml:space":z};function G(e){return{onClick:e,onDblClick:e,onFocusIn:e,onFocusOut:e,onKeyDown:e,onKeyPress:e,onKeyUp:e,onMouseDown:e,onMouseMove:e,onMouseUp:e,onTouchEnd:e,onTouchMove:e,onTouchStart:e}}var U=G(0),K=G(null),Y=G(!0);function q(e,t){var n=t.$EV;return n||(n=t.$EV=G(null)),n[e]||1==++U[e]&&(K[e]=function(e){var t="onClick"===e||"onDblClick"===e?function(e){return function(t){0===t.button?$(t,!0,e,Z(t)):t.stopPropagation()}}(e):function(e){return function(t){$(t,!1,e,Z(t))}}(e);return document.addEventListener(f(e),t),t}(e)),n}function W(e,t){var n=t.$EV;n&&n[e]&&(0==--U[e]&&(document.removeEventListener(f(e),K[e]),K[e]=null),n[e]=null)}function $(e,t,n,o){var r=function(e){return c(e.composedPath)?e.composedPath()[0]:e.target}(e);do{if(t&&r.disabled)return;var a=r.$EV;if(a){var i=a[n];if(i&&(o.dom=r,i.event?i.event(i.data,e):i(e),e.cancelBubble))return}r=r.parentNode}while(!u(r))}function Q(){this.cancelBubble=!0,this.immediatePropagationStopped||this.stopImmediatePropagation()}function X(){return this.defaultPrevented}function J(){return this.cancelBubble}function Z(e){var t={dom:document};return e.isDefaultPrevented=X,e.isPropagationStopped=J,e.stopPropagation=Q,Object.defineProperty(e,"currentTarget",{configurable:!0,get:function(){return t.dom}}),t}function ee(e,t,n){if(e[t]){var o=e[t];o.event?o.event(o.data,n):o(n)}else{var r=t.toLowerCase();e[r]&&e[r](n)}}function te(e,t){var n=function(n){var o=this.$V;if(o){var r=o.props||p,a=o.dom;if(l(e))ee(r,e,n);else for(var i=0;i-1&&t.options[i]&&(c=t.options[i].value),n&&a(c)&&(c=e.defaultValue),le(o,c)}}var se,pe,me=te("onInput",he),fe=te("onChange");function he(e,t,n){var o=e.value,r=t.value;if(a(o)){if(n){var i=e.defaultValue;a(i)||i===r||(t.defaultValue=i,t.value=i)}}else r!==o&&(t.defaultValue=o,t.value=o)}function Ce(e,t,n,o,r,a){64&e?ce(o,n):256&e?de(o,n,r,t):128&e&&he(o,n,r),a&&(n.$V=t)}function ge(e,t,n){64&e?function(e,t){oe(t.type)?(ne(e,"change",ae),ne(e,"click",ie)):ne(e,"input",re)}(t,n):256&e?function(e){ne(e,"change",ue)}(t):128&e&&function(e,t){ne(e,"input",me),t.onChange&&ne(e,"change",fe)}(t,n)}function be(e){return e.type&&oe(e.type)?!a(e.checked):!a(e.value)}function Ne(e){e&&!S(e,null)&&e.current&&(e.current=null)}function ve(e,t,n){e&&(c(e)||void 0!==e.current)&&n.push((function(){S(e,t)||void 0===e.current||(e.current=t)}))}function Ve(e,t){ye(e),V(e,t)}function ye(e){var t,n=e.flags,o=e.children;if(481&n){t=e.ref;var r=e.props;Ne(t);var i=e.childFlags;if(!u(r))for(var l=Object.keys(r),d=0,s=l.length;d0;for(var c in i&&(a=be(n))&&ge(t,o,n),n)we(c,null,n[c],o,r,a,null);i&&Ce(t,e,o,n,!0,a)}function Se(e,t,n){var o=D(e.render(t,e.state,n)),r=n;return c(e.getChildContext)&&(r=d(n,e.getChildContext())),e.$CX=r,o}function Ie(e,t,n,o,r,a){var i=new t(n,o),l=i.$N=Boolean(t.getDerivedStateFromProps||i.getSnapshotBeforeUpdate);if(i.$SVG=r,i.$L=a,e.children=i,i.$BS=!1,i.context=o,i.props===p&&(i.props=n),l)i.state=_(i,n,i.state);else if(c(i.componentWillMount)){i.$BR=!0,i.componentWillMount();var d=i.$PS;if(!u(d)){var s=i.state;if(u(s))i.state=d;else for(var m in d)s[m]=d[m];i.$PS=null}i.$BR=!1}return i.$LI=Se(i,n,o),i}function Te(e,t,n,o,r,a){var i=e.flags|=16384;481&i?Pe(e,t,n,o,r,a):4&i?function(e,t,n,o,r,a){var i=Ie(e,e.type,e.props||p,n,o,a);Te(i.$LI,t,i.$CX,o,r,a),Me(e.ref,i,a)}(e,t,n,o,r,a):8&i?(!function(e,t,n,o,r,a){Te(e.children=D(function(e,t){return 32768&e.flags?e.type.render(e.props||p,e.ref,t):e.type(e.props||p,t)}(e,n)),t,n,o,r,a)}(e,t,n,o,r,a),Oe(e,a)):512&i||16&i?Ae(e,t,r):8192&i?function(e,t,n,o,r,a){var i=e.children,c=e.childFlags;12&c&&0===i.length&&(c=e.childFlags=2,i=e.children=O());2===c?Te(i,n,r,o,r,a):Ee(i,n,t,o,r,a)}(e,n,t,o,r,a):1024&i&&function(e,t,n,o,r){Te(e.children,e.ref,t,!1,null,r);var a=O();Ae(a,n,o),e.dom=a.dom}(e,n,t,r,a)}function Ae(e,t,n){var o=e.dom=document.createTextNode(e.children);u(t)||C(t,o,n)}function Pe(e,t,n,o,r,i){var c=e.flags,l=e.props,d=e.className,s=e.children,p=e.childFlags,m=e.dom=function(e,t){return t?document.createElementNS("http://www.w3.org/2000/svg",e):document.createElement(e)}(e.type,o=o||(32&c)>0);if(a(d)||""===d||(o?m.setAttribute("class",d):m.className=d),16===p)L(m,s);else if(1!==p){var f=o&&"foreignObject"!==e.type;2===p?(16384&s.flags&&(e.children=s=M(s)),Te(s,m,n,f,null,i)):8!==p&&4!==p||Ee(s,m,n,f,null,i)}u(t)||C(t,m,r),u(l)||Be(e,c,l,m,o),ve(e.ref,m,i)}function Ee(e,t,n,o,r,a){for(var i=0;i0,u!==d){var f=u||p;if((c=d||p)!==p)for(var h in(s=(448&r)>0)&&(m=be(c)),c){var C=f[h],g=c[h];C!==g&&we(h,C,g,l,o,m,e)}if(f!==p)for(var b in f)a(c[b])&&!a(f[b])&&we(b,f[b],null,l,o,m,e)}var N=t.children,v=t.className;e.className!==v&&(a(v)?l.removeAttribute("class"):o?l.setAttribute("class",v):l.className=v);4096&r?function(e,t){e.textContent!==t&&(e.textContent=t)}(l,N):Fe(e.childFlags,t.childFlags,e.children,N,l,n,o&&"foreignObject"!==t.type,null,e,i);s&&Ce(r,t,l,c,!1,m);var V=t.ref,y=e.ref;y!==V&&(Ne(y),ve(V,l,i))}(e,t,o,r,m,s):4&m?function(e,t,n,o,r,a,i){var l=t.children=e.children;if(u(l))return;l.$L=i;var s=t.props||p,m=t.ref,f=e.ref,h=l.state;if(!l.$N){if(c(l.componentWillReceiveProps)){if(l.$BR=!0,l.componentWillReceiveProps(s,o),l.$UN)return;l.$BR=!1}u(l.$PS)||(h=d(h,l.$PS),l.$PS=null)}De(l,h,s,n,o,r,!1,a,i),f!==m&&(Ne(f),ve(m,l,i))}(e,t,n,o,r,l,s):8&m?function(e,t,n,o,r,i,l){var u=!0,d=t.props||p,s=t.ref,m=e.props,f=!a(s),h=e.children;f&&c(s.onComponentShouldUpdate)&&(u=s.onComponentShouldUpdate(m,d));if(!1!==u){f&&c(s.onComponentWillUpdate)&&s.onComponentWillUpdate(m,d);var C=t.type,g=D(32768&t.flags?C.render(d,s,o):C(d,o));Re(h,g,n,o,r,i,l),t.children=g,f&&c(s.onComponentDidUpdate)&&s.onComponentDidUpdate(m,d)}else t.children=h}(e,t,n,o,r,l,s):16&m?function(e,t){var n=t.children,o=t.dom=e.dom;n!==e.children&&(o.nodeValue=n)}(e,t):512&m?t.dom=e.dom:8192&m?function(e,t,n,o,r,a){var i=e.children,c=t.children,l=e.childFlags,u=t.childFlags,d=null;12&u&&0===c.length&&(u=t.childFlags=2,c=t.children=O());var s=0!=(2&u);if(12&l){var p=i.length;(8&l&&8&u||s||!s&&c.length>p)&&(d=v(i[p-1],!1).nextSibling)}Fe(l,u,i,c,n,o,r,d,e,a)}(e,t,n,o,r,s):function(e,t,n,o){var r=e.ref,a=t.ref,c=t.children;if(Fe(e.childFlags,t.childFlags,e.children,c,r,n,!1,null,e,o),t.dom=e.dom,r!==a&&!i(c)){var l=c.dom;g(r,l),h(a,l)}}(e,t,o,s)}function Fe(e,t,n,o,r,a,i,c,l,u){switch(e){case 2:switch(t){case 2:Re(n,o,r,a,i,c,u);break;case 1:Ve(n,r);break;case 16:ye(n),L(r,o);break;default:!function(e,t,n,o,r,a){ye(e),Ee(t,n,o,r,v(e,!0),a),V(e,n)}(n,o,r,a,i,u)}break;case 1:switch(t){case 2:Te(o,r,a,i,c,u);break;case 1:break;case 16:L(r,o);break;default:Ee(o,r,a,i,c,u)}break;case 16:switch(t){case 16:!function(e,t,n){e!==t&&(""!==e?n.firstChild.nodeValue=t:L(n,t))}(n,o,r);break;case 2:xe(r),Te(o,r,a,i,c,u);break;case 1:xe(r);break;default:xe(r),Ee(o,r,a,i,c,u)}break;default:switch(t){case 16:_e(n),L(r,o);break;case 2:ke(r,l,n),Te(o,r,a,i,c,u);break;case 1:ke(r,l,n);break;default:var d=0|n.length,s=0|o.length;0===d?s>0&&Ee(o,r,a,i,c,u):0===s?ke(r,l,n):8===t&&8===e?function(e,t,n,o,r,a,i,c,l,u){var d,s,p=a-1,m=i-1,f=0,h=e[f],C=t[f];e:{for(;h.key===C.key;){if(16384&C.flags&&(t[f]=C=M(C)),Re(h,C,n,o,r,c,u),e[f]=C,++f>p||f>m)break e;h=e[f],C=t[f]}for(h=e[p],C=t[m];h.key===C.key;){if(16384&C.flags&&(t[m]=C=M(C)),Re(h,C,n,o,r,c,u),e[p]=C,p--,m--,f>p||f>m)break e;h=e[p],C=t[m]}}if(f>p){if(f<=m)for(s=(d=m+1)m)for(;f<=p;)Ve(e[f++],n);else!function(e,t,n,o,r,a,i,c,l,u,d,s,p){var m,f,h,C=0,g=c,b=c,N=a-c+1,V=i-c+1,_=new Int32Array(V+1),x=N===o,k=!1,L=0,w=0;if(r<4||(N|V)<32)for(C=g;C<=a;++C)if(m=e[C],wc?k=!0:L=c,16384&f.flags&&(t[c]=f=M(f)),Re(m,f,l,n,u,d,p),++w;break}!x&&c>i&&Ve(m,l)}else x||Ve(m,l);else{var B={};for(C=b;C<=i;++C)B[t[C].key]=C;for(C=g;C<=a;++C)if(m=e[C],wg;)Ve(e[g++],l);_[c-b]=C+1,L>c?k=!0:L=c,16384&(f=t[c]).flags&&(t[c]=f=M(f)),Re(m,f,l,n,u,d,p),++w}else x||Ve(m,l);else x||Ve(m,l)}if(x)ke(l,s,e),Ee(t,l,n,u,d,p);else if(k){var S=function(e){var t=0,n=0,o=0,r=0,a=0,i=0,c=0,l=e.length;l>je&&(je=l,se=new Int32Array(l),pe=new Int32Array(l));for(;n>1]]0&&(pe[n]=se[a-1]),se[a]=n)}a=r+1;var u=new Int32Array(a);i=se[a-1];for(;a-- >0;)u[a]=i,i=pe[i],se[a]=0;return u}(_);for(c=S.length-1,C=V-1;C>=0;C--)0===_[C]?(16384&(f=t[L=C+b]).flags&&(t[L]=f=M(f)),Te(f,l,n,u,(h=L+1)=0;C--)0===_[C]&&(16384&(f=t[L=C+b]).flags&&(t[L]=f=M(f)),Te(f,l,n,u,(h=L+1)i?i:a,p=0;pi)for(p=s;p0&&b(r),x.v=!1,c(n)&&n(),c(k.renderComplete)&&k.renderComplete(i,t)}function He(e,t,n,o){void 0===n&&(n=null),void 0===o&&(o=p),ze(e,t,n,o)}"undefined"!=typeof document&&window.Node&&(Node.prototype.$EV=null,Node.prototype.$V=null);var Ge=[],Ue="undefined"!=typeof Promise?Promise.resolve().then.bind(Promise.resolve()):function(e){window.setTimeout(e,0)},Ke=!1;function Ye(e,t,n,o){var r=e.$PS;if(c(t)&&(t=t(r?d(e.state,r):e.state,e.props,e.context)),a(r))e.$PS=t;else for(var i in t)r[i]=t[i];if(e.$BR)c(n)&&e.$L.push(n.bind(e));else{if(!x.v&&0===Ge.length)return void $e(e,o,n);if(-1===Ge.indexOf(e)&&Ge.push(e),Ke||(Ke=!0,Ue(We)),c(n)){var l=e.$QU;l||(l=e.$QU=[]),l.push(n)}}}function qe(e){for(var t=e.$QU,n=0,o=t.length;n0&&b(r),x.v=!1}else e.state=e.$PS,e.$PS=null;c(n)&&n.call(e)}}var Qe=function(e,t){this.state=null,this.$BR=!1,this.$BS=!0,this.$PS=null,this.$LI=null,this.$UN=!1,this.$CX=null,this.$QU=null,this.$N=!1,this.$L=null,this.$SVG=!1,this.props=e||p,this.context=t||p};t.Component=Qe,Qe.prototype.forceUpdate=function(e){this.$UN||Ye(this,{},e,!0)},Qe.prototype.setState=function(e,t){this.$UN||this.$BS||Ye(this,e,t,!1)},Qe.prototype.render=function(e,t,n){return null};t.version="7.3.3"},function(e,t,n){"use strict";var o=function(e){var t,n=Object.prototype,o=n.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",i=r.asyncIterator||"@@asyncIterator",c=r.toStringTag||"@@toStringTag";function l(e,t,n,o){var r=t&&t.prototype instanceof h?t:h,a=Object.create(r.prototype),i=new w(o||[]);return a._invoke=function(e,t,n){var o=d;return function(r,a){if(o===p)throw new Error("Generator is already running");if(o===m){if("throw"===r)throw a;return S()}for(n.method=r,n.arg=a;;){var i=n.delegate;if(i){var c=x(i,n);if(c){if(c===f)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===d)throw o=m,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=p;var l=u(e,t,n);if("normal"===l.type){if(o=n.done?m:s,l.arg===f)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(o=m,n.method="throw",n.arg=l.arg)}}}(e,n,i),a}function u(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(o){return{type:"throw",arg:o}}}e.wrap=l;var d="suspendedStart",s="suspendedYield",p="executing",m="completed",f={};function h(){}function C(){}function g(){}var b={};b[a]=function(){return this};var N=Object.getPrototypeOf,v=N&&N(N(B([])));v&&v!==n&&o.call(v,a)&&(b=v);var V=g.prototype=h.prototype=Object.create(b);function y(e){["next","throw","return"].forEach((function(t){e[t]=function(e){return this._invoke(t,e)}}))}function _(e){var t;this._invoke=function(n,r){function a(){return new Promise((function(t,a){!function i(t,n,r,a){var c=u(e[t],e,n);if("throw"!==c.type){var l=c.arg,d=l.value;return d&&"object"==typeof d&&o.call(d,"__await")?Promise.resolve(d.__await).then((function(e){i("next",e,r,a)}),(function(e){i("throw",e,r,a)})):Promise.resolve(d).then((function(e){l.value=e,r(l)}),(function(e){return i("throw",e,r,a)}))}a(c.arg)}(n,r,t,a)}))}return t=t?t.then(a,a):a()}}function x(e,n){var o=e.iterator[n.method];if(o===t){if(n.delegate=null,"throw"===n.method){if(e.iterator["return"]&&(n.method="return",n.arg=t,x(e,n),"throw"===n.method))return f;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return f}var r=u(o,e.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,f;var a=r.arg;return a?a.done?(n[e.resultName]=a.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,f):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,f)}function k(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function L(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function w(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(k,this),this.reset(!0)}function B(e){if(e){var n=e[a];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,i=function n(){for(;++r=0;--a){var i=this.tryEntries[a],c=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var l=o.call(i,"catchLoc"),u=o.call(i,"finallyLoc");if(l&&u){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&o.call(r,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),L(n),f}},"catch":function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var o=n.completion;if("throw"===o.type){var r=o.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,o){return this.delegate={iterator:B(e),resultName:n,nextLoc:o},"next"===this.method&&(this.arg=t),f}},e}(e.exports);try{regeneratorRuntime=o}catch(r){Function("r","regeneratorRuntime = r")(o)}},function(e,t,n){"use strict";window.Int32Array||(window.Int32Array=Array)},function(e,t,n){"use strict";(function(e){ /*! loadCSS. [c]2017 Filament Group, Inc. MIT License */ -var n;n=void 0!==e?e:void 0,t.loadCSS=function(e,t,o,r){var a,i=n.document,c=i.createElement("link");if(t)a=t;else{var l=(i.body||i.getElementsByTagName("head")[0]).childNodes;a=l[l.length-1]}var u=i.styleSheets;if(r)for(var d in r)r.hasOwnProperty(d)&&c.setAttribute(d,r[d]);c.rel="stylesheet",c.href=e,c.media="only x",function m(e){if(i.body)return e();setTimeout((function(){m(e)}))}((function(){a.parentNode.insertBefore(c,t?a:a.nextSibling)}));var s=function f(e){for(var t=c.href,n=u.length;n--;)if(u[n].href===t)return e();setTimeout((function(){f(e)}))};function p(){c.addEventListener&&c.removeEventListener("load",p),c.media=o||"all"}return c.addEventListener&&c.addEventListener("load",p),c.onloadcssdefined=s,s(p),c}}).call(this,n(118))},function(e,t,n){"use strict";t.__esModule=!0,t.Achievements=t.Score=t.Achievement=void 0;var o=n(1),r=n(3),a=n(2),i=function(e){var t=e.name,n=e.desc,r=e.icon_class,i=e.value;return(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td",null,(0,o.createComponentVNode)(2,a.Box,{className:r}),2,{style:{padding:"6px"}}),(0,o.createVNode)(1,"td",null,[(0,o.createVNode)(1,"h1",null,t,0),n,(0,o.createComponentVNode)(2,a.Box,{color:i?"good":"bad",content:i?"Unlocked":"Locked"})],0,{style:{"vertical-align":"top"}})],4,null,t)};t.Achievement=i;var c=function(e){var t=e.name,n=e.desc,r=e.icon_class,i=e.value;return(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td",null,(0,o.createComponentVNode)(2,a.Box,{className:r}),2,{style:{padding:"6px"}}),(0,o.createVNode)(1,"td",null,[(0,o.createVNode)(1,"h1",null,t,0),n,(0,o.createComponentVNode)(2,a.Box,{color:i>0?"good":"bad",content:i>0?"Earned "+i+" times":"Locked"})],0,{style:{"vertical-align":"top"}})],4,null,t)};t.Score=c;t.Achievements=function(e){var t=(0,r.useBackend)(e).data;return(0,o.createComponentVNode)(2,a.Tabs,{children:[t.categories.map((function(e){return(0,o.createComponentVNode)(2,a.Tabs.Tab,{label:e,children:(0,o.createComponentVNode)(2,a.Box,{as:"Table",children:t.achievements.filter((function(t){return t.category===e})).map((function(e){return e.score?(0,o.createComponentVNode)(2,c,{name:e.name,desc:e.desc,icon_class:e.icon_class,value:e.value},e.name):(0,o.createComponentVNode)(2,i,{name:e.name,desc:e.desc,icon_class:e.icon_class,value:e.value},e.name)}))})},e)})),(0,o.createComponentVNode)(2,a.Tabs.Tab,{label:"High Scores",children:(0,o.createComponentVNode)(2,a.Tabs,{vertical:!0,children:t.highscore.map((function(e){return(0,o.createComponentVNode)(2,a.Tabs.Tab,{label:e.name,children:(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,a.Table.Cell,{color:"label",textAlign:"center",children:"#"}),(0,o.createComponentVNode)(2,a.Table.Cell,{color:"label",textAlign:"center",children:"Key"}),(0,o.createComponentVNode)(2,a.Table.Cell,{color:"label",textAlign:"center",children:"Score"})]}),Object.keys(e.scores).map((function(n,r){return(0,o.createComponentVNode)(2,a.Table.Row,{className:"candystripe",m:2,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{color:"label",textAlign:"center",children:r+1}),(0,o.createComponentVNode)(2,a.Table.Cell,{color:n===t.user_ckey&&"green",textAlign:"center",children:[0===r&&(0,o.createComponentVNode)(2,a.Icon,{name:"crown",color:"gold",mr:2}),n,0===r&&(0,o.createComponentVNode)(2,a.Icon,{name:"crown",color:"gold",ml:2})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:e.scores[n]})]},n)}))]})},e.name)}))})})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.BlockQuote=void 0;var o=n(1),r=n(12),a=n(19);t.BlockQuote=function(e){var t=e.className,n=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["className"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({className:(0,r.classes)(["BlockQuote",t])},n)))}},function(e,t,n){"use strict";var o,r;t.__esModule=!0,t.VNodeFlags=t.ChildFlags=void 0,t.VNodeFlags=o,function(e){e[e.HtmlElement=1]="HtmlElement",e[e.ComponentUnknown=2]="ComponentUnknown",e[e.ComponentClass=4]="ComponentClass",e[e.ComponentFunction=8]="ComponentFunction",e[e.Text=16]="Text",e[e.SvgElement=32]="SvgElement",e[e.InputElement=64]="InputElement",e[e.TextareaElement=128]="TextareaElement",e[e.SelectElement=256]="SelectElement",e[e.Void=512]="Void",e[e.Portal=1024]="Portal",e[e.ReCreate=2048]="ReCreate",e[e.ContentEditable=4096]="ContentEditable",e[e.Fragment=8192]="Fragment",e[e.InUse=16384]="InUse",e[e.ForwardRef=32768]="ForwardRef",e[e.Normalized=65536]="Normalized",e[e.ForwardRefComponent=32776]="ForwardRefComponent",e[e.FormElement=448]="FormElement",e[e.Element=481]="Element",e[e.Component=14]="Component",e[e.DOMRef=2033]="DOMRef",e[e.InUseOrNormalized=81920]="InUseOrNormalized",e[e.ClearInUse=-16385]="ClearInUse",e[e.ComponentKnown=12]="ComponentKnown"}(o||(t.VNodeFlags=o={})),t.ChildFlags=r,function(e){e[e.UnknownChildren=0]="UnknownChildren",e[e.HasInvalidChildren=1]="HasInvalidChildren",e[e.HasVNodeChildren=2]="HasVNodeChildren",e[e.HasNonKeyedChildren=4]="HasNonKeyedChildren",e[e.HasKeyedChildren=8]="HasKeyedChildren",e[e.HasTextChildren=16]="HasTextChildren",e[e.MultipleChildren=12]="MultipleChildren"}(r||(t.ChildFlags=r={}))},function(e,t,n){"use strict";t.__esModule=!0,t.ColorBox=void 0;var o=n(1),r=n(12),a=n(19);var i=function(e){var t=e.color,n=e.content,i=e.className,c=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["color","content","className"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({className:(0,r.classes)(["ColorBox",i]),color:n?null:"transparent",backgroundColor:t,content:n||"."},c)))};t.ColorBox=i,i.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.Collapsible=void 0;var o=n(1),r=n(19),a=n(114);var i=function(e){var t,n;function i(t){var n;n=e.call(this,t)||this;var o=t.open;return n.state={open:o||!1},n}return n=e,(t=i).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,i.prototype.render=function(){var e=this,t=this.props,n=this.state.open,i=t.children,c=t.color,l=void 0===c?"default":c,u=t.title,d=t.buttons,s=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(t,["children","color","title","buttons"]);return(0,o.createComponentVNode)(2,r.Box,{mb:1,children:[(0,o.createVNode)(1,"div","Table",[(0,o.createVNode)(1,"div","Table__cell",(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Button,Object.assign({fluid:!0,color:l,icon:n?"chevron-down":"chevron-right",onClick:function(){return e.setState({open:!n})}},s,{children:u}))),2),d&&(0,o.createVNode)(1,"div","Table__cell Table__cell--collapsing",d,0)],0),n&&(0,o.createComponentVNode)(2,r.Box,{mt:1,children:i})]})},i}(o.Component);t.Collapsible=i},function(e,t,n){"use strict";t.__esModule=!0,t.Dimmer=void 0;var o=n(1),r=n(19);t.Dimmer=function(e){var t=e.style,n=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["style"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,r.Box,Object.assign({style:Object.assign({position:"absolute",top:0,bottom:0,left:0,right:0,"background-color":"rgba(0, 0, 0, 0.75)","z-index":1},t)},n)))}},function(e,t,n){"use strict";t.__esModule=!0,t.Dropdown=void 0;var o=n(1),r=n(12),a=n(19),i=n(87);function c(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var l=function(e){var t,n;function l(t){var n;return(n=e.call(this,t)||this).state={selected:t.selected,open:!1},n.handleClick=function(){n.state.open&&n.setOpen(!1)},n}n=e,(t=l).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var u=l.prototype;return u.componentWillUnmount=function(){window.removeEventListener("click",this.handleClick)},u.setOpen=function(e){var t=this;this.setState({open:e}),e?(setTimeout((function(){return window.addEventListener("click",t.handleClick)})),this.menuRef.focus()):window.removeEventListener("click",this.handleClick)},u.setSelected=function(e){this.setState({selected:e}),this.setOpen(!1),this.props.onSelected(e)},u.buildMenu=function(){var e=this,t=this.props.options,n=(void 0===t?[]:t).map((function(t){return(0,o.createVNode)(1,"div","Dropdown__menuentry",t,0,{onClick:function(n){e.setSelected(t)}},t)}));return n.length?n:"No Options Found"},u.render=function(){var e=this,t=this.props,n=t.color,l=void 0===n?"default":n,u=t.over,d=t.width,s=(t.onClick,t.selected,c(t,["color","over","width","onClick","selected"])),p=s.className,m=c(s,["className"]),f=u?!this.state.open:this.state.open,h=this.state.open?(0,o.createVNode)(1,"div",(0,r.classes)(["Dropdown__menu",u&&"Dropdown__over"]),this.buildMenu(),0,{tabIndex:"-1",style:{width:d}},null,(function(t){e.menuRef=t})):null;return(0,o.createVNode)(1,"div","Dropdown",[(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({width:d,className:(0,r.classes)(["Dropdown__control","Button","Button--color--"+l,p])},m,{onClick:function(t){e.setOpen(!e.state.open)},children:[(0,o.createVNode)(1,"span","Dropdown__selected-text",this.state.selected,0),(0,o.createVNode)(1,"span","Dropdown__arrow-button",(0,o.createComponentVNode)(2,i.Icon,{name:f?"chevron-up":"chevron-down"}),2)]}))),h],0)},l}(o.Component);t.Dropdown=l},function(e,t,n){"use strict";t.__esModule=!0,t.FlexItem=t.computeFlexItemProps=t.Flex=t.computeFlexProps=void 0;var o=n(1),r=n(12),a=n(19);function i(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var c=function(e){var t=e.className,n=e.direction,o=e.wrap,a=e.align,c=e.justify,l=e.spacing,u=void 0===l?0:l,d=i(e,["className","direction","wrap","align","justify","spacing"]);return Object.assign({className:(0,r.classes)(["Flex",u>0&&"Flex--spacing--"+u,t]),style:Object.assign({},d.style,{"flex-direction":n,"flex-wrap":o,"align-items":a,"justify-content":c})},d)};t.computeFlexProps=c;var l=function(e){return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({},c(e))))};t.Flex=l,l.defaultHooks=r.pureComponentHooks;var u=function(e){var t=e.className,n=e.grow,o=e.order,a=e.align,c=i(e,["className","grow","order","align"]);return Object.assign({className:(0,r.classes)(["Flex__item",t]),style:Object.assign({},c.style,{"flex-grow":n,order:o,"align-self":a})},c)};t.computeFlexItemProps=u;var d=function(e){return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({},u(e))))};t.FlexItem=d,d.defaultHooks=r.pureComponentHooks,l.Item=d},function(e,t,n){"use strict";t.__esModule=!0,t.NoticeBox=void 0;var o=n(1),r=n(12),a=n(19);var i=function(e){var t=e.className,n=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["className"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({className:(0,r.classes)(["NoticeBox",t])},n)))};t.NoticeBox=i,i.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.NumberInput=void 0;var o=n(1),r=n(18),a=n(12),i=n(16),c=n(158),l=n(19);var u=function(e){var t,n;function u(t){var n;n=e.call(this,t)||this;var a=t.value;return n.inputRef=(0,o.createRef)(),n.state={value:a,dragging:!1,editing:!1,internalValue:null,origin:null,suppressingFlicker:!1},n.flickerTimer=null,n.suppressFlicker=function(){var e=n.props.suppressFlicker;e>0&&(n.setState({suppressingFlicker:!0}),clearTimeout(n.flickerTimer),n.flickerTimer=setTimeout((function(){return n.setState({suppressingFlicker:!1})}),e))},n.handleDragStart=function(e){var t=n.props.value;n.state.editing||(document.body.style["pointer-events"]="none",n.ref=e.target,n.setState({dragging:!1,origin:e.screenY,value:t,internalValue:t}),n.timer=setTimeout((function(){n.setState({dragging:!0})}),250),n.dragInterval=setInterval((function(){var t=n.state,o=t.dragging,r=t.value,a=n.props.onDrag;o&&a&&a(e,r)}),500),document.addEventListener("mousemove",n.handleDragMove),document.addEventListener("mouseup",n.handleDragEnd))},n.handleDragMove=function(e){var t=n.props,o=t.minValue,a=t.maxValue,i=t.step,c=t.stepPixelSize;n.setState((function(t){var n=Object.assign({},t),l=n.origin-e.screenY;if(t.dragging){var u=Number.isFinite(o)?o%i:0;n.internalValue=(0,r.clamp)(n.internalValue+l*i/c,o-i,a+i),n.value=(0,r.clamp)(n.internalValue-n.internalValue%i+u,o,a),n.origin=e.screenY}else Math.abs(l)>4&&(n.dragging=!0);return n}))},n.handleDragEnd=function(e){var t=n.props,o=t.onChange,r=t.onDrag,a=n.state,i=a.dragging,c=a.value,l=a.internalValue;if(document.body.style["pointer-events"]="auto",clearTimeout(n.timer),clearInterval(n.dragInterval),n.setState({dragging:!1,editing:!i,origin:null}),document.removeEventListener("mousemove",n.handleDragMove),document.removeEventListener("mouseup",n.handleDragEnd),i)n.suppressFlicker(),o&&o(e,c),r&&r(e,c);else if(n.inputRef){var u=n.inputRef.current;u.value=l;try{u.focus(),u.select()}catch(d){}}},n}return n=e,(t=u).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,u.prototype.render=function(){var e=this,t=this.state,n=t.dragging,u=t.editing,d=t.value,s=t.suppressingFlicker,p=this.props,m=p.className,f=p.fluid,h=p.animated,C=p.value,g=p.unit,b=p.minValue,N=p.maxValue,v=p.height,V=p.width,y=p.lineHeight,_=p.fontSize,x=p.format,k=p.onChange,L=p.onDrag,w=C;(n||s)&&(w=d);var B=function(e){return(0,o.createVNode)(1,"div","NumberInput__content",e+(g?" "+g:""),0,{unselectable:i.tridentVersion<=4})},S=h&&!n&&!s&&(0,o.createComponentVNode)(2,c.AnimatedNumber,{value:w,format:x,children:B})||B(x?x(w):w);return(0,o.createComponentVNode)(2,l.Box,{className:(0,a.classes)(["NumberInput",f&&"NumberInput--fluid",m]),minWidth:V,minHeight:v,lineHeight:y,fontSize:_,onMouseDown:this.handleDragStart,children:[(0,o.createVNode)(1,"div","NumberInput__barContainer",(0,o.createVNode)(1,"div","NumberInput__bar",null,1,{style:{height:(0,r.clamp)((w-b)/(N-b)*100,0,100)+"%"}}),2),S,(0,o.createVNode)(64,"input","NumberInput__input",null,1,{style:{display:u?undefined:"none",height:v,"line-height":y,"font-size":_},onBlur:function(t){if(u){var n=(0,r.clamp)(t.target.value,b,N);e.setState({editing:!1,value:n}),e.suppressFlicker(),k&&k(t,n),L&&L(t,n)}},onKeyDown:function(t){if(13===t.keyCode){var n=(0,r.clamp)(t.target.value,b,N);return e.setState({editing:!1,value:n}),e.suppressFlicker(),k&&k(t,n),void(L&&L(t,n))}27!==t.keyCode||e.setState({editing:!1})}},null,this.inputRef)]})},u}(o.Component);t.NumberInput=u,u.defaultHooks=a.pureComponentHooks,u.defaultProps={minValue:-Infinity,maxValue:+Infinity,step:1,stepPixelSize:1,suppressFlicker:50}},function(e,t,n){"use strict";t.__esModule=!0,t.ProgressBar=void 0;var o=n(1),r=n(12),a=n(18),i=function(e){var t=e.value,n=e.minValue,i=void 0===n?0:n,c=e.maxValue,l=void 0===c?1:c,u=e.ranges,d=void 0===u?{}:u,s=e.content,p=e.children,m=(t-i)/(l-i),f=s!==undefined||p!==undefined,h=e.color;if(!h)for(var C=0,g=Object.keys(d);C=N[0]&&t<=N[1]){h=b;break}}return h||(h="default"),(0,o.createVNode)(1,"div",(0,r.classes)(["ProgressBar","ProgressBar--color--"+h]),[(0,o.createVNode)(1,"div","ProgressBar__fill",null,1,{style:{width:100*(0,a.clamp)(m,0,1)+"%"}}),(0,o.createVNode)(1,"div","ProgressBar__content",[f&&s,f&&p,!f&&(0,a.toFixed)(100*m)+"%"],0)],4)};t.ProgressBar=i,i.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.Section=void 0;var o=n(1),r=n(12),a=n(19);var i=function(e){var t=e.className,n=e.title,i=e.level,c=void 0===i?1:i,l=e.buttons,u=e.content,d=e.children,s=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["className","title","level","buttons","content","children"]),p=!(0,r.isFalsy)(n)||!(0,r.isFalsy)(l),m=!(0,r.isFalsy)(u)||!(0,r.isFalsy)(d);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({className:(0,r.classes)(["Section","Section--level--"+c,t])},s,{children:[p&&(0,o.createVNode)(1,"div","Section__title",[(0,o.createVNode)(1,"span","Section__titleText",n,0),(0,o.createVNode)(1,"div","Section__buttons",l,0)],4),m&&(0,o.createVNode)(1,"div","Section__content",[u,d],0)]})))};t.Section=i,i.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.Tab=t.Tabs=void 0;var o=n(1),r=n(12),a=n(19),i=n(114);function c(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var l=function(e){var t=e,n=Array.isArray(t),o=0;for(t=n?t:t[Symbol.iterator]();;){var r;if(n){if(o>=t.length)break;r=t[o++]}else{if((o=t.next()).done)break;r=o.value}var a=r;if(!a.props||"Tab"!==a.props.__type__){var i=JSON.stringify(a,null,2);throw new Error(" only accepts children of type .This is what we received: "+i)}}},u=function(e){var t,n;function u(t){var n;return(n=e.call(this,t)||this).state={activeTabKey:null},n}n=e,(t=u).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var d=u.prototype;return d.getActiveTab=function(){var e=this.state,t=this.props,n=(0,r.normalizeChildren)(t.children);l(n);var o=t.activeTab||e.activeTabKey,a=n.find((function(e){return(e.key||e.props.label)===o}));return a||(a=n[0],o=a&&(a.key||a.props.label)),{tabs:n,activeTab:a,activeTabKey:o}},d.render=function(){var e=this,t=this.props,n=t.className,l=t.vertical,u=(t.children,c(t,["className","vertical","children"])),d=this.getActiveTab(),s=d.tabs,p=d.activeTab,m=d.activeTabKey,f=null;return p&&(f=p.props.content||p.props.children),"function"==typeof f&&(f=f(m)),(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({className:(0,r.classes)(["Tabs",l&&"Tabs--vertical",n])},u,{children:[(0,o.createVNode)(1,"div","Tabs__tabBox",s.map((function(t){var n=t.props,a=n.className,l=n.label,u=(n.content,n.children,n.onClick),d=n.highlight,s=c(n,["className","label","content","children","onClick","highlight"]),p=t.key||t.props.label,f=t.active||p===m;return(0,o.normalizeProps)((0,o.createComponentVNode)(2,i.Button,Object.assign({className:(0,r.classes)(["Tabs__tab",f&&"Tabs__tab--active",d&&!f&&"color-yellow",a]),selected:f,color:"transparent",onClick:function(n){e.setState({activeTabKey:p}),u&&u(n,t)}},s,{children:l}),p))})),0),(0,o.createVNode)(1,"div","Tabs__content",f||null,0)]})))},u}(o.Component);t.Tabs=u;var d=function(e){return null};t.Tab=d,d.defaultProps={__type__:"Tab"},u.Tab=d},function(e,t,n){"use strict";t.__esModule=!0,t.TitleBar=void 0;var o=n(1),r=n(12),a=n(23),i=n(16),c=n(37),l=n(87),u=function(e){switch(e){case c.UI_INTERACTIVE:return"good";case c.UI_UPDATE:return"average";case c.UI_DISABLED:default:return"bad"}},d=function(e){var t=e.className,n=e.title,c=e.status,d=e.fancy,s=e.onDragStart,p=e.onClose;return(0,o.createVNode)(1,"div",(0,r.classes)(["TitleBar",t]),[(0,o.createComponentVNode)(2,l.Icon,{className:"TitleBar__statusIcon",color:u(c),name:"eye"}),(0,o.createVNode)(1,"div","TitleBar__title",n===n.toLowerCase()?(0,a.toTitleCase)(n):n,0),(0,o.createVNode)(1,"div","TitleBar__dragZone",null,1,{onMousedown:function(e){return d&&s(e)}}),!!d&&(0,o.createVNode)(1,"div","TitleBar__close TitleBar__clickable",i.tridentVersion<=4?"x":"\xd7",0,{onclick:p})],0)};t.TitleBar=d,d.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.Chart=void 0;var o=n(1),r=n(24),a=n(19),i=n(12),c=n(16);var l=function(e,t,n,o){if(0===e.length)return[];var a=(0,r.zipWith)(Math.min).apply(void 0,e),i=(0,r.zipWith)(Math.max).apply(void 0,e);return n!==undefined&&(a[0]=n[0],i[0]=n[1]),o!==undefined&&(a[1]=o[0],i[1]=o[1]),(0,r.map)((function(e){return(0,r.zipWith)((function(e,t,n,o){return(e-t)/(n-t)*o}))(e,a,i,t)}))(e)},u=function(e){for(var t="",n=0;n=0||(r[n]=e[n]);return r}(t,["data","rangeX","rangeY","fillColor","strokeColor","strokeWidth"]),g=this.state.viewBox,b=l(r,g,i,c);if(b.length>0){var N=b[0],v=b[b.length-1];b.push([g[0]+h,v[1]]),b.push([g[0]+h,-h]),b.push([-h,-h]),b.push([-h,N[1]])}var V=u(b);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({position:"relative"},C,{children:function(t){return(0,o.normalizeProps)((0,o.createVNode)(1,"div",null,(0,o.createVNode)(32,"svg",null,(0,o.createVNode)(32,"polyline",null,null,1,{transform:"scale(1, -1) translate(0, -"+g[1]+")",fill:s,stroke:m,"stroke-width":h,points:V}),2,{viewBox:"0 0 "+g[0]+" "+g[1],preserveAspectRatio:"none",style:{position:"absolute",top:0,left:0,right:0,bottom:0,overflow:"hidden"}}),2,Object.assign({},t),null,e.ref))}})))},r}(o.Component);d.defaultHooks=i.pureComponentHooks;var s={Line:c.tridentVersion<=4?function(e){return null}:d};t.Chart=s},function(e,t,n){"use strict";t.__esModule=!0,t.AiAirlock=void 0;var o=n(1),r=n(3),a=n(2);t.AiAirlock=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c={2:{color:"good",localStatusText:"Offline"},1:{color:"average",localStatusText:"Caution"},0:{color:"bad",localStatusText:"Optimal"}},l=c[i.power.main]||c[0],u=c[i.power.backup]||c[0],d=c[i.shock]||c[0];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Power Status",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Main",color:l.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",disabled:!i.power.main,content:"Disrupt",onClick:function(){return n("disrupt-main")}}),children:[i.power.main?"Online":"Offline"," ",i.wires.main_1&&i.wires.main_2?i.power.main_timeleft>0&&"["+i.power.main_timeleft+"s]":"[Wires have been cut!]"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Backup",color:u.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",disabled:!i.power.backup,content:"Disrupt",onClick:function(){return n("disrupt-backup")}}),children:[i.power.backup?"Online":"Offline"," ",i.wires.backup_1&&i.wires.backup_2?i.power.backup_timeleft>0&&"["+i.power.backup_timeleft+"s]":"[Wires have been cut!]"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Electrify",color:d.color,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"wrench",disabled:!(i.wires.shock&&0===i.shock),content:"Restore",onClick:function(){return n("shock-restore")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"bolt",disabled:!i.wires.shock,content:"Temporary",onClick:function(){return n("shock-temp")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"bolt",disabled:!i.wires.shock,content:"Permanent",onClick:function(){return n("shock-perm")}})],4),children:[2===i.shock?"Safe":"Electrified"," ",(i.wires.shock?i.shock_timeleft>0&&"["+i.shock_timeleft+"s]":"[Wires have been cut!]")||-1===i.shock_timeleft&&"[Permanent]"]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Access and Door Control",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"ID Scan",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.id_scanner?"power-off":"times",content:i.id_scanner?"Enabled":"Disabled",selected:i.id_scanner,disabled:!i.wires.id_scanner,onClick:function(){return n("idscan-toggle")}}),children:!i.wires.id_scanner&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Emergency Access",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.emergency?"power-off":"times",content:i.emergency?"Enabled":"Disabled",selected:i.emergency,onClick:function(){return n("emergency-toggle")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Bolts",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.locked?"lock":"unlock",content:i.locked?"Lowered":"Raised",selected:i.locked,disabled:!i.wires.bolts,onClick:function(){return n("bolt-toggle")}}),children:!i.wires.bolts&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Bolt Lights",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.lights?"power-off":"times",content:i.lights?"Enabled":"Disabled",selected:i.lights,disabled:!i.wires.lights,onClick:function(){return n("light-toggle")}}),children:!i.wires.lights&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Force Sensors",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.safe?"power-off":"times",content:i.safe?"Enabled":"Disabled",selected:i.safe,disabled:!i.wires.safe,onClick:function(){return n("safe-toggle")}}),children:!i.wires.safe&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Timing Safety",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.speed?"power-off":"times",content:i.speed?"Enabled":"Disabled",selected:i.speed,disabled:!i.wires.timing,onClick:function(){return n("speed-toggle")}}),children:!i.wires.timing&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Control",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.opened?"sign-out-alt":"sign-in-alt",content:i.opened?"Open":"Closed",selected:i.opened,disabled:i.locked||i.welded,onClick:function(){return n("open-close")}}),children:!(!i.locked&&!i.welded)&&(0,o.createVNode)(1,"span",null,[(0,o.createTextVNode)("[Door is "),i.locked?"bolted":"",i.locked&&i.welded?" and ":"",i.welded?"welded":"",(0,o.createTextVNode)("!]")],0)})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.AirAlarm=void 0;var o=n(1),r=n(18),a=n(23),i=n(3),c=n(2),l=n(37),u=n(69);t.AirAlarm=function(e){var t=e.state,n=(0,i.useBackend)(e),r=n.act,a=n.data,c=a.locked&&!a.siliconUser;return(0,o.createFragment)([(0,o.createComponentVNode)(2,u.InterfaceLockNoticeBox,{siliconUser:a.siliconUser,locked:a.locked,onLockStatusChange:function(){return r("lock")}}),(0,o.createComponentVNode)(2,d,{state:t}),!c&&(0,o.createComponentVNode)(2,p,{state:t})],0)};var d=function(e){var t=(0,i.useBackend)(e).data,n=(t.environment_data||[]).filter((function(e){return e.value>=.01})),a={0:{color:"good",localStatusText:"Optimal"},1:{color:"average",localStatusText:"Caution"},2:{color:"bad",localStatusText:"Danger (Internals Required)"}},l=a[t.danger_level]||a[0];return(0,o.createComponentVNode)(2,c.Section,{title:"Air Status",children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[n.length>0&&(0,o.createFragment)([n.map((function(e){var t=a[e.danger_level]||a[0];return(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:e.name,color:t.color,children:[(0,r.toFixed)(e.value,2),e.unit]},e.name)})),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Local status",color:l.color,children:l.localStatusText}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Area status",color:t.atmos_alarm||t.fire_alarm?"bad":"good",children:(t.atmos_alarm?"Atmosphere Alarm":t.fire_alarm&&"Fire Alarm")||"Nominal"})],0)||(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Warning",color:"bad",children:"Cannot obtain air sample for analysis."}),!!t.emagged&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Warning",color:"bad",children:"Safety measures offline. Device may exhibit abnormal behavior."})]})})},s={home:{title:"Air Controls",component:function(){return m}},vents:{title:"Vent Controls",component:function(){return f}},scrubbers:{title:"Scrubber Controls",component:function(){return C}},modes:{title:"Operating Mode",component:function(){return b}},thresholds:{title:"Alarm Thresholds",component:function(){return N}}},p=function(e){var t=e.state,n=(0,i.useBackend)(e),r=n.act,a=n.config,l=s[a.screen]||s.home,u=l.component();return(0,o.createComponentVNode)(2,c.Section,{title:l.title,buttons:"home"!==a.screen&&(0,o.createComponentVNode)(2,c.Button,{icon:"arrow-left",content:"Back",onClick:function(){return r("tgui:view",{screen:"home"})}}),children:(0,o.createComponentVNode)(2,u,{state:t})})},m=function(e){var t=(0,i.useBackend)(e),n=t.act,r=t.data,a=r.mode,l=r.atmos_alarm;return(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:l?"exclamation-triangle":"exclamation",color:l&&"caution",content:"Area Atmosphere Alarm",onClick:function(){return n(l?"reset":"alarm")}}),(0,o.createComponentVNode)(2,c.Box,{mt:1}),(0,o.createComponentVNode)(2,c.Button,{icon:3===a?"exclamation-triangle":"exclamation",color:3===a&&"danger",content:"Panic Siphon",onClick:function(){return n("mode",{mode:3===a?1:3})}}),(0,o.createComponentVNode)(2,c.Box,{mt:2}),(0,o.createComponentVNode)(2,c.Button,{icon:"sign-out-alt",content:"Vent Controls",onClick:function(){return n("tgui:view",{screen:"vents"})}}),(0,o.createComponentVNode)(2,c.Box,{mt:1}),(0,o.createComponentVNode)(2,c.Button,{icon:"filter",content:"Scrubber Controls",onClick:function(){return n("tgui:view",{screen:"scrubbers"})}}),(0,o.createComponentVNode)(2,c.Box,{mt:1}),(0,o.createComponentVNode)(2,c.Button,{icon:"cog",content:"Operating Mode",onClick:function(){return n("tgui:view",{screen:"modes"})}}),(0,o.createComponentVNode)(2,c.Box,{mt:1}),(0,o.createComponentVNode)(2,c.Button,{icon:"chart-bar",content:"Alarm Thresholds",onClick:function(){return n("tgui:view",{screen:"thresholds"})}})],4)},f=function(e){var t=e.state,n=(0,i.useBackend)(e).data.vents;return n&&0!==n.length?n.map((function(e){return(0,o.normalizeProps)((0,o.createComponentVNode)(2,h,Object.assign({state:t},e),e.id_tag))})):"Nothing to show"},h=function(e){var t=e.id_tag,n=e.long_name,r=e.power,l=e.checks,u=e.excheck,d=e.incheck,s=e.direction,p=e.external,m=e.internal,f=e.extdefault,h=e.intdefault,C=(0,i.useBackend)(e).act;return(0,o.createComponentVNode)(2,c.Section,{level:2,title:(0,a.decodeHtmlEntities)(n),buttons:(0,o.createComponentVNode)(2,c.Button,{icon:r?"power-off":"times",selected:r,content:r?"On":"Off",onClick:function(){return C("power",{id_tag:t,val:Number(!r)})}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Mode",children:"release"===s?"Pressurizing":"Releasing"}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Pressure Regulator",children:[(0,o.createComponentVNode)(2,c.Button,{icon:"sign-in-alt",content:"Internal",selected:d,onClick:function(){return C("incheck",{id_tag:t,val:l})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"sign-out-alt",content:"External",selected:u,onClick:function(){return C("excheck",{id_tag:t,val:l})}})]}),!!d&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Internal Target",children:[(0,o.createComponentVNode)(2,c.NumberInput,{value:Math.round(m),unit:"kPa",width:"75px",minValue:0,step:10,maxValue:5066,onChange:function(e,n){return C("set_internal_pressure",{id_tag:t,value:n})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"undo",disabled:h,content:"Reset",onClick:function(){return C("reset_internal_pressure",{id_tag:t})}})]}),!!u&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"External Target",children:[(0,o.createComponentVNode)(2,c.NumberInput,{value:Math.round(p),unit:"kPa",width:"75px",minValue:0,step:10,maxValue:5066,onChange:function(e,n){return C("set_external_pressure",{id_tag:t,value:n})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"undo",disabled:f,content:"Reset",onClick:function(){return C("reset_external_pressure",{id_tag:t})}})]})]})})},C=function(e){var t=e.state,n=(0,i.useBackend)(e).data.scrubbers;return n&&0!==n.length?n.map((function(e){return(0,o.normalizeProps)((0,o.createComponentVNode)(2,g,Object.assign({state:t},e),e.id_tag))})):"Nothing to show"},g=function(e){var t=e.long_name,n=e.power,r=e.scrubbing,u=e.id_tag,d=e.widenet,s=e.filter_types,p=(0,i.useBackend)(e).act;return(0,o.createComponentVNode)(2,c.Section,{level:2,title:(0,a.decodeHtmlEntities)(t),buttons:(0,o.createComponentVNode)(2,c.Button,{icon:n?"power-off":"times",content:n?"On":"Off",selected:n,onClick:function(){return p("power",{id_tag:u,val:Number(!n)})}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Mode",children:[(0,o.createComponentVNode)(2,c.Button,{icon:r?"filter":"sign-in-alt",color:r||"danger",content:r?"Scrubbing":"Siphoning",onClick:function(){return p("scrubbing",{id_tag:u,val:Number(!r)})}}),(0,o.createComponentVNode)(2,c.Button,{icon:d?"expand":"compress",selected:d,content:d?"Expanded range":"Normal range",onClick:function(){return p("widenet",{id_tag:u,val:Number(!d)})}})]}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Filters",children:r&&s.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{icon:e.enabled?"check-square-o":"square-o",content:(0,l.getGasLabel)(e.gas_id,e.gas_name),title:e.gas_name,selected:e.enabled,onClick:function(){return p("toggle_filter",{id_tag:u,val:e.gas_id})}},e.gas_id)}))||"N/A"})]})})},b=function(e){var t=(0,i.useBackend)(e),n=t.act,r=t.data.modes;return r&&0!==r.length?r.map((function(e){return(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:e.selected?"check-square-o":"square-o",selected:e.selected,color:e.selected&&e.danger&&"danger",content:e.name,onClick:function(){return n("mode",{mode:e.mode})}}),(0,o.createComponentVNode)(2,c.Box,{mt:1})],4,e.mode)})):"Nothing to show"},N=function(e){var t=(0,i.useBackend)(e),n=t.act,a=t.data.thresholds;return(0,o.createVNode)(1,"table","LabeledList",[(0,o.createVNode)(1,"thead",null,(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td"),(0,o.createVNode)(1,"td","color-bad","min2",16),(0,o.createVNode)(1,"td","color-average","min1",16),(0,o.createVNode)(1,"td","color-average","max1",16),(0,o.createVNode)(1,"td","color-bad","max2",16)],4),2),(0,o.createVNode)(1,"tbody",null,a.map((function(e){return(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td","LabeledList__label",e.name,0),e.settings.map((function(e){return(0,o.createVNode)(1,"td",null,(0,o.createComponentVNode)(2,c.Button,{content:(0,r.toFixed)(e.selected,2),onClick:function(){return n("threshold",{env:e.env,"var":e.val})}}),2,null,e.val)}))],0,null,e.name)})),0)],4,{style:{width:"100%"}})}},function(e,t,n){"use strict";t.__esModule=!0,t.AirlockElectronics=void 0;var o=n(1),r=n(3),a=n(2);t.AirlockElectronics=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.regions||[],l={0:{icon:"times-circle"},1:{icon:"stop-circle"},2:{icon:"check-circle"}};return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Main",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Access Required",children:(0,o.createComponentVNode)(2,a.Button,{icon:i.oneAccess?"unlock":"lock",content:i.oneAccess?"One":"All",onClick:function(){return n("one_access")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mass Modify",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"check-double",content:"Grant All",onClick:function(){return n("grant_all")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"undo",content:"Clear All",onClick:function(){return n("clear_all")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Unrestricted Access",children:[(0,o.createComponentVNode)(2,a.Button,{icon:1&i.unres_direction?"check-square-o":"square-o",content:"North",selected:1&i.unres_direction,onClick:function(){return n("direc_set",{unres_direction:"1"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:2&i.unres_direction?"check-square-o":"square-o",content:"East",selected:2&i.unres_direction,onClick:function(){return n("direc_set",{unres_direction:"2"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:4&i.unres_direction?"check-square-o":"square-o",content:"South",selected:4&i.unres_direction,onClick:function(){return n("direc_set",{unres_direction:"4"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:8&i.unres_direction?"check-square-o":"square-o",content:"West",selected:8&i.unres_direction,onClick:function(){return n("direc_set",{unres_direction:"8"})}})]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Access",children:(0,o.createComponentVNode)(2,a.Box,{height:"261px",children:(0,o.createComponentVNode)(2,a.Tabs,{vertical:!0,children:c.map((function(e){var t=e.name,r=e.accesses||[],i=l[function(e){var t=!1,n=!1;return e.forEach((function(e){e.req?t=!0:n=!0})),!t&&n?0:t&&n?1:2}(r)].icon;return(0,o.createComponentVNode)(2,a.Tabs.Tab,{icon:i,label:t,children:function(){return r.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{icon:e.req?"check-square-o":"square-o",content:e.name,selected:e.req,onClick:function(){return n("set",{access:e.id})}})},e.id)}))}},t)}))})})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.Apc=void 0;var o=n(1),r=n(3),a=n(2),i=n(69);t.Apc=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data,l=c.locked&&!c.siliconUser,u={2:{color:"good",externalPowerText:"External Power",chargingText:"Fully Charged"},1:{color:"average",externalPowerText:"Low External Power",chargingText:"Charging"},0:{color:"bad",externalPowerText:"No External Power",chargingText:"Not Charging"}},d={1:{icon:"terminal",content:"Override Programming",action:"hack"},2:{icon:"caret-square-down",content:"Shunt Core Process",action:"occupy"},3:{icon:"caret-square-left",content:"Return to Main Core",action:"deoccupy"},4:{icon:"caret-square-down",content:"Shunt Core Process",action:"occupy"}},s=u[c.externalPower]||u[0],p=u[c.chargingStatus]||u[0],m=c.powerChannels||[],f=d[c.malfStatus]||d[0],h=c.powerCellStatus/100;return c.failTime>0?(0,o.createComponentVNode)(2,a.NoticeBox,{children:[(0,o.createVNode)(1,"b",null,(0,o.createVNode)(1,"h3",null,"SYSTEM FAILURE",16),2),(0,o.createVNode)(1,"i",null,"I/O regulators malfunction detected! Waiting for system reboot...",16),(0,o.createVNode)(1,"br"),"Automatic reboot in ",c.failTime," seconds...",(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Reboot Now",onClick:function(){return n("reboot")}})]}):(0,o.createFragment)([(0,o.createComponentVNode)(2,i.InterfaceLockNoticeBox,{siliconUser:c.siliconUser,locked:c.locked,onLockStatusChange:function(){return n("lock")}}),(0,o.createComponentVNode)(2,a.Section,{title:"Power Status",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Main Breaker",color:s.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:c.isOperating?"power-off":"times",content:c.isOperating?"On":"Off",selected:c.isOperating&&!l,disabled:l,onClick:function(){return n("breaker")}}),children:["[ ",s.externalPowerText," ]"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power Cell",children:(0,o.createComponentVNode)(2,a.ProgressBar,{color:"good",value:h})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge Mode",color:p.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:c.chargeMode?"sync":"close",content:c.chargeMode?"Auto":"Off",disabled:l,onClick:function(){return n("charge")}}),children:["[ ",p.chargingText," ]"]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Power Channels",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[m.map((function(e){var t=e.topicParams;return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.title,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{inline:!0,mx:2,color:e.status>=2?"good":"bad",children:e.status>=2?"On":"Off"}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Auto",selected:!l&&(1===e.status||3===e.status),disabled:l,onClick:function(){return n("channel",t.auto)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",content:"On",selected:!l&&2===e.status,disabled:l,onClick:function(){return n("channel",t.on)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Off",selected:!l&&0===e.status,disabled:l,onClick:function(){return n("channel",t.off)}})],4),children:e.powerLoad},e.title)})),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Total Load",children:(0,o.createVNode)(1,"b",null,c.totalLoad,0)})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Misc",buttons:!!c.siliconUser&&(0,o.createFragment)([!!c.malfStatus&&(0,o.createComponentVNode)(2,a.Button,{icon:f.icon,content:f.content,color:"bad",onClick:function(){return n(f.action)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:"Overload",onClick:function(){return n("overload")}})],0),children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cover Lock",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:c.coverLocked?"lock":"unlock",content:c.coverLocked?"Engaged":"Disengaged",disabled:l,onClick:function(){return n("cover")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Emergency Lighting",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:c.emergencyLights?"Enabled":"Disabled",disabled:l,onClick:function(){return n("emergency_lighting")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Night Shift Lighting",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:c.nightshiftLights?"Enabled":"Disabled",disabled:l,onClick:function(){return n("toggle_nightshift")}})})]}),c.hijackable&&(0,o.createComponentVNode)(2,a.Section,{title:"Hijacking",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"unlock",content:"Hijack",disabled:c.hijacker,onClick:function(){return n("hijack")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"lock",content:"Lockdown",disabled:!c.lockdownavail,onClick:function(){return n("lockdown")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:"Drain",disabled:!c.drainavail,onClick:function(){return n("drain")}})],4)})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosAlertConsole=void 0;var o=n(1),r=n(3),a=n(2);t.AtmosAlertConsole=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.priority||[],l=i.minor||[];return(0,o.createComponentVNode)(2,a.Section,{title:"Alarms",children:(0,o.createVNode)(1,"ul",null,[c.length>0?c.map((function(e){return(0,o.createVNode)(1,"li",null,(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:e,color:"bad",onClick:function(){return n("clear",{zone:e})}}),2,null,e)})):(0,o.createVNode)(1,"li","color-good","No Priority Alerts",16),l.length>0?l.map((function(e){return(0,o.createVNode)(1,"li",null,(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:e,color:"average",onClick:function(){return n("clear",{zone:e})}}),2,null,e)})):(0,o.createVNode)(1,"li","color-good","No Minor Alerts",16)],0)})}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosControlConsole=void 0;var o=n(1),r=n(24),a=n(18),i=n(3),c=n(2);t.AtmosControlConsole=function(e){var t=(0,i.useBackend)(e),n=t.act,l=t.data,u=l.sensors||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Section,{title:!!l.tank&&u[0].long_name,children:u.map((function(e){var t=e.gases||{};return(0,o.createComponentVNode)(2,c.Section,{title:!l.tank&&e.long_name,level:2,children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Pressure",children:(0,a.toFixed)(e.pressure,2)+" kPa"}),!!e.temperature&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Temperature",children:(0,a.toFixed)(e.temperature,2)+" K"}),(0,r.map)((function(e,t){return(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:t,children:(0,a.toFixed)(e,2)+"%"})}))(t)]})},e.id_tag)}))}),l.tank&&(0,o.createComponentVNode)(2,c.Section,{title:"Controls",buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"undo",content:"Reconnect",onClick:function(){return n("reconnect")}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Input Injector",children:(0,o.createComponentVNode)(2,c.Button,{icon:l.inputting?"power-off":"times",content:l.inputting?"Injecting":"Off",selected:l.inputting,onClick:function(){return n("input")}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Input Rate",children:(0,o.createComponentVNode)(2,c.NumberInput,{value:l.inputRate,unit:"L/s",width:"63px",minValue:0,maxValue:200,suppressFlicker:2e3,onChange:function(e,t){return n("rate",{rate:t})}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Output Regulator",children:(0,o.createComponentVNode)(2,c.Button,{icon:l.outputting?"power-off":"times",content:l.outputting?"Open":"Closed",selected:l.outputting,onClick:function(){return n("output")}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Output Pressure",children:(0,o.createComponentVNode)(2,c.NumberInput,{value:parseFloat(l.outputPressure),unit:"kPa",width:"75px",minValue:0,maxValue:4500,step:10,suppressFlicker:2e3,onChange:function(e,t){return n("pressure",{pressure:t})}})})]})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosFilter=void 0;var o=n(1),r=n(3),a=n(2),i=n(37);t.AtmosFilter=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data,l=c.filter_types||[];return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:c.on?"power-off":"times",content:c.on?"On":"Off",selected:c.on,onClick:function(){return n("power")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Transfer Rate",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(c.rate),width:"63px",unit:"L/s",minValue:0,maxValue:200,onDrag:function(e,t){return n("rate",{rate:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:c.rate===c.max_rate,onClick:function(){return n("rate",{rate:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Filter",children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{selected:e.selected,content:(0,i.getGasLabel)(e.id,e.name),onClick:function(){return n("filter",{mode:e.id})}},e.id)}))})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosMixer=void 0;var o=n(1),r=n(3),a=n(2);t.AtmosMixer=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:i.on?"power-off":"times",content:i.on?"On":"Off",selected:i.on,onClick:function(){return n("power")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Output Pressure",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(i.set_pressure),unit:"kPa",width:"75px",minValue:0,maxValue:4500,step:10,onChange:function(e,t){return n("pressure",{pressure:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:i.set_pressure===i.max_pressure,onClick:function(){return n("pressure",{pressure:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Node 1",children:(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:i.node1_concentration,unit:"%",width:"60px",minValue:0,maxValue:100,stepPixelSize:2,onDrag:function(e,t){return n("node1",{concentration:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Node 2",children:(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:i.node2_concentration,unit:"%",width:"60px",minValue:0,maxValue:100,stepPixelSize:2,onDrag:function(e,t){return n("node2",{concentration:t})}})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosPump=void 0;var o=n(1),r=n(3),a=n(2);t.AtmosPump=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:i.on?"power-off":"times",content:i.on?"On":"Off",selected:i.on,onClick:function(){return n("power")}})}),i.max_rate?(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Transfer Rate",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(i.rate),width:"63px",unit:"L/s",minValue:0,maxValue:200,onChange:function(e,t){return n("rate",{rate:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:i.rate===i.max_rate,onClick:function(){return n("rate",{rate:"max"})}})]}):(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Output Pressure",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(i.pressure),unit:"kPa",width:"75px",minValue:0,maxValue:4500,step:10,onChange:function(e,t){return n("pressure",{pressure:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:i.pressure===i.max_pressure,onClick:function(){return n("pressure",{pressure:"max"})}})]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.BankMachine=void 0;var o=n(1),r=n(3),a=n(2);t.BankMachine=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.current_balance,l=i.siphoning,u=i.station_name;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:u+" Vault",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Balance",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:l?"times":"sync",content:l?"Stop Siphoning":"Siphon Credits",selected:l,onClick:function(){return n(l?"halt":"siphon")}}),children:c+" cr"})})}),(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"Authorized personnel only"})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.BluespaceArtillery=void 0;var o=n(1),r=n(3),a=n(2);t.BluespaceArtillery=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.notice,l=i.connected,u=i.unlocked,d=i.target;return(0,o.createFragment)([!!c&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:c}),l?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Target",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"crosshairs",disabled:!u,onClick:function(){return n("recalibrate")}}),children:(0,o.createComponentVNode)(2,a.Box,{color:d?"average":"bad",fontSize:"25px",children:d||"No Target Set"})}),(0,o.createComponentVNode)(2,a.Section,{children:u?(0,o.createComponentVNode)(2,a.Box,{style:{margin:"auto"},children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"FIRE",color:"bad",disabled:!d,fontSize:"30px",textAlign:"center",lineHeight:"46px",onClick:function(){return n("fire")}})}):(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{color:"bad",fontSize:"18px",children:"Bluespace artillery is currently locked."}),(0,o.createComponentVNode)(2,a.Box,{mt:1,children:"Awaiting authorization via keycard reader from at minimum two station heads."})],4)})],4):(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Maintenance",children:(0,o.createComponentVNode)(2,a.Button,{icon:"wrench",content:"Complete Deployment",onClick:function(){return n("build")}})})})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.Bepis=void 0;var o=n(1),r=(n(23),n(16)),a=n(2);t.Bepis=function(e){var t=e.state,n=t.config,i=t.data,c=n.ref,l=i.amount;return(0,o.createComponentVNode)(2,a.Section,{title:"Business Exploration Protocol Incubation Sink",children:[(0,o.createComponentVNode)(2,a.Section,{title:"Information",backgroundColor:"#450F44",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",content:i.manual_power?"Off":"On",selected:!i.manual_power,onClick:function(){return(0,r.act)(c,"toggle_power")}}),children:"All you need to know about the B.E.P.I.S. and you! The B.E.P.I.S. performs hundreds of tests a second using electrical and financial resources to invent new products, or discover new technologies otherwise overlooked for being too risky or too niche to produce!"}),(0,o.createComponentVNode)(2,a.Section,{title:"Payer's Account",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"redo-alt",content:"Reset Account",onClick:function(){return(0,r.act)(c,"account_reset")}}),children:["Console is currently being operated by ",i.account_owner?i.account_owner:"no one","."]}),(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{size:1.5,children:[(0,o.createComponentVNode)(2,a.Section,{title:"Stored Data and Statistics",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deposited Credits",children:i.stored_cash}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Investment Variability",children:[i.accuracy_percentage,"%"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Innovation Bonus",children:i.positive_cash_offset}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Risk Offset",color:"bad",children:i.negative_cash_offset}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deposit Amount",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:l,unit:"Credits",minValue:100,maxValue:3e4,step:100,stepPixelSize:2,onChange:function(e,t){return(0,r.act)(c,"amount",{amount:t})}})})]})}),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"donate",content:"Deposit Credits",disabled:1===i.manual_power||1===i.silicon_check,onClick:function(){return(0,r.act)(c,"deposit_cash")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Withdraw Credits",disabled:1===i.manual_power,onClick:function(){return(0,r.act)(c,"withdraw_cash")}})]})]}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Market Data and Analysis",children:[(0,o.createComponentVNode)(2,a.Box,{children:["Average technology cost: ",i.mean_value]}),i.error_name&&(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Previous Failure Reason: Deposited cash value too low. Please insert more money for future success."}),(0,o.createComponentVNode)(2,a.Box,{m:1}),(0,o.createComponentVNode)(2,a.Button,{icon:"microscope",disabled:1===i.manual_power,onClick:function(){return(0,r.act)(c,"begin_experiment")},content:"Begin Testing"})]})})]})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.BorgPanel=void 0;var o=n(1),r=n(3),a=n(2);t.BorgPanel=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.borg||{},l=i.cell||{},u=l.charge/l.maxcharge,d=i.channels||[],s=i.modules||[],p=i.upgrades||[],m=i.ais||[],f=i.laws||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:c.name,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"pencil-alt",content:"Rename",onClick:function(){return n("rename")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:[(0,o.createComponentVNode)(2,a.Button,{icon:c.emagged?"check-square-o":"square-o",content:"Emagged",selected:c.emagged,onClick:function(){return n("toggle_emagged")}}),(0,o.createComponentVNode)(2,a.Button,{icon:c.lockdown?"check-square-o":"square-o",content:"Locked Down",selected:c.lockdown,onClick:function(){return n("toggle_lockdown")}}),(0,o.createComponentVNode)(2,a.Button,{icon:c.scrambledcodes?"check-square-o":"square-o",content:"Scrambled Codes",selected:c.scrambledcodes,onClick:function(){return n("toggle_scrambledcodes")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge",children:[l.missing?(0,o.createVNode)(1,"span","color-bad","No cell installed",16):(0,o.createComponentVNode)(2,a.ProgressBar,{value:u,content:l.charge+" / "+l.maxcharge}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Button,{icon:"pencil-alt",content:"Set",onClick:function(){return n("set_charge")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Change",onClick:function(){return n("change_cell")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"trash",content:"Remove",color:"bad",onClick:function(){return n("remove_cell")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Radio Channels",children:d.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:e.installed?"check-square-o":"square-o",content:e.name,selected:e.installed,onClick:function(){return n("toggle_radio",{channel:e.name})}},e.name)}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Module",children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:c.active_module===e.type?"check-square-o":"square-o",content:e.name,selected:c.active_module===e.type,onClick:function(){return n("setmodule",{module:e.type})}},e.type)}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Upgrades",children:p.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:e.installed?"check-square-o":"square-o",content:e.name,selected:e.installed,onClick:function(){return n("toggle_upgrade",{upgrade:e.type})}},e.type)}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Master AI",children:m.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:e.connected?"check-square-o":"square-o",content:e.name,selected:e.connected,onClick:function(){return n("slavetoai",{slavetoai:e.ref})}},e.ref)}))})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Laws",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:c.lawupdate?"check-square-o":"square-o",content:"Lawsync",selected:c.lawupdate,onClick:function(){return n("toggle_lawupdate")}}),children:f.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:e},e)}))})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.BrigTimer=void 0;var o=n(1),r=n(3),a=n(2);t.BrigTimer=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{title:"Cell Timer",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"clock-o",content:i.timing?"Stop":"Start",selected:i.timing,onClick:function(){return n(i.timing?"stop":"start")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:i.flash_charging?"Recharging":"Flash",disabled:i.flash_charging,onClick:function(){return n("flash")}})],4),children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",onClick:function(){return n("time",{adjust:-600})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",onClick:function(){return n("time",{adjust:-100})}})," ",String(i.minutes).padStart(2,"0"),":",String(i.seconds).padStart(2,"0")," ",(0,o.createComponentVNode)(2,a.Button,{icon:"forward",onClick:function(){return n("time",{adjust:100})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",onClick:function(){return n("time",{adjust:600})}}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Button,{icon:"hourglass-start",content:"Short",onClick:function(){return n("preset",{preset:"short"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"hourglass-start",content:"Medium",onClick:function(){return n("preset",{preset:"medium"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"hourglass-start",content:"Long",onClick:function(){return n("preset",{preset:"long"})}})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.Canister=void 0;var o=n(1),r=n(3),a=n(2);t.Canister=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.NoticeBox,{children:["The regulator ",i.hasHoldingTank?"is":"is not"," connected to a tank."]}),(0,o.createComponentVNode)(2,a.Section,{title:"Canister",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"pencil-alt",content:"Relabel",onClick:function(){return n("relabel")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i.tankPressure})," kPa"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Port",color:i.portConnected?"good":"average",content:i.portConnected?"Connected":"Not Connected"}),!!i.isPrototype&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Access",children:(0,o.createComponentVNode)(2,a.Button,{icon:i.restricted?"lock":"unlock",color:"caution",content:i.restricted?"Restricted to Engineering":"Public",onClick:function(){return n("restricted")}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Valve",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Release Pressure",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.releasePressure/(i.maxReleasePressure-i.minReleasePressure),children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i.releasePressure})," kPa"]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure Regulator",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"undo",disabled:i.releasePressure===i.defaultReleasePressure,content:"Reset",onClick:function(){return n("pressure",{pressure:"reset"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"minus",disabled:i.releasePressure<=i.minReleasePressure,content:"Min",onClick:function(){return n("pressure",{pressure:"min"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"pencil-alt",content:"Set",onClick:function(){return n("pressure",{pressure:"input"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",disabled:i.releasePressure>=i.maxReleasePressure,content:"Max",onClick:function(){return n("pressure",{pressure:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Valve",children:(0,o.createComponentVNode)(2,a.Button,{icon:i.valveOpen?"unlock":"lock",color:i.valveOpen?i.hasHoldingTank?"caution":"danger":null,content:i.valveOpen?"Open":"Closed",onClick:function(){return n("valve")}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Holding Tank",buttons:!!i.hasHoldingTank&&(0,o.createComponentVNode)(2,a.Button,{icon:"eject",color:i.valveOpen&&"danger",content:"Eject",onClick:function(){return n("eject")}}),children:[!!i.hasHoldingTank&&(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Label",children:i.holdingTank.name}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i.holdingTank.tankPressure})," kPa"]})]}),!i.hasHoldingTank&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"No Holding Tank"})]})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.CargoExpress=t.Cargo=void 0;var o=n(1),r=n(24),a=n(16),i=n(2),c=n(69);t.Cargo=function(e){var t=e.state,n=t.config,r=t.data,c=n.ref,s=r.supplies||{},p=r.requests||[],m=r.cart||[],f=m.reduce((function(e,t){return e+t.cost}),0),h=!r.requestonly&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Box,{inline:!0,mx:1,children:[0===m.length&&"Cart is empty",1===m.length&&"1 item",m.length>=2&&m.length+" items"," ",f>0&&"("+f+" cr)"]}),(0,o.createComponentVNode)(2,i.Button,{icon:"times",color:"transparent",content:"Clear",onClick:function(){return(0,a.act)(c,"clear")}})],4);return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{title:"Cargo",buttons:(0,o.createComponentVNode)(2,i.Box,{inline:!0,bold:!0,children:[(0,o.createComponentVNode)(2,i.AnimatedNumber,{value:Math.round(r.points)})," credits"]}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Shuttle",children:r.docked&&!r.requestonly&&(0,o.createComponentVNode)(2,i.Button,{content:r.location,onClick:function(){return(0,a.act)(c,"send")}})||r.location}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"CentCom Message",children:r.message}),r.loan&&!r.requestonly?(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Loan",children:r.loan_dispatched?(0,o.createComponentVNode)(2,i.Box,{color:"bad",children:"Loaned to Centcom"}):(0,o.createComponentVNode)(2,i.Button,{content:"Loan Shuttle",disabled:!(r.away&&r.docked),onClick:function(){return(0,a.act)(c,"loan")}})}):""]})}),(0,o.createComponentVNode)(2,i.Tabs,{mt:2,children:[(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:"Catalog",icon:"list",lineHeight:"23px",children:function(){return(0,o.createComponentVNode)(2,i.Section,{title:"Catalog",buttons:(0,o.createFragment)([h,(0,o.createComponentVNode)(2,i.Button,{ml:1,icon:r.self_paid?"check-square-o":"square-o",content:"Buy Privately",selected:r.self_paid,onClick:function(){return(0,a.act)(c,"toggleprivate")}})],0),children:(0,o.createComponentVNode)(2,l,{state:t,supplies:s})})}},"catalog"),(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:"Requests ("+p.length+")",icon:"envelope",highlight:p.length>0,lineHeight:"23px",children:function(){return(0,o.createComponentVNode)(2,i.Section,{title:"Active Requests",buttons:!r.requestonly&&(0,o.createComponentVNode)(2,i.Button,{icon:"times",content:"Clear",color:"transparent",onClick:function(){return(0,a.act)(c,"denyall")}}),children:(0,o.createComponentVNode)(2,u,{state:t,requests:p})})}},"requests"),!r.requestonly&&(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:"Checkout ("+m.length+")",icon:"shopping-cart",highlight:m.length>0,lineHeight:"23px",children:function(){return(0,o.createComponentVNode)(2,i.Section,{title:"Current Cart",buttons:h,children:(0,o.createComponentVNode)(2,d,{state:t,cart:m})})}},"cart")]})],4)};var l=function(e){var t=e.state,n=e.supplies,c=t.config,l=t.data,u=c.ref,d=function(e){var t=n[e].packs;return(0,o.createVNode)(1,"table","LabeledList",t.map((function(e){return(0,o.createVNode)(1,"tr","LabeledList__row candystripe",[(0,o.createVNode)(1,"td","LabeledList__cell LabeledList__label",[e.name,(0,o.createTextVNode)(":")],0),(0,o.createVNode)(1,"td","LabeledList__cell",!!e.access&&(0,o.createFragment)([(0,o.createTextVNode)("Restrictions Apply")],4),0),(0,o.createVNode)(1,"td","LabeledList__cell LabeledList__buttons",(0,o.createComponentVNode)(2,i.Button,{fluid:!0,content:(l.self_paid?Math.round(1.1*e.cost):e.cost)+" credits",tooltip:e.desc,tooltipPosition:"left",onClick:function(){return(0,a.act)(u,"add",{id:e.id})}}),2)],4,null,e.name)})),0)};return(0,o.createComponentVNode)(2,i.Tabs,{vertical:!0,children:(0,r.map)((function(e){var t=e.name;return(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:t,children:d},t)}))(n)})},u=function(e){var t=e.state,n=e.requests,r=t.config,c=t.data,l=r.ref;return 0===n.length?(0,o.createComponentVNode)(2,i.Box,{color:"good",children:"No Requests"}):(0,o.createVNode)(1,"table","LabeledList",n.map((function(e){return(0,o.createFragment)([(0,o.createVNode)(1,"tr","LabeledList__row candystripe",[(0,o.createVNode)(1,"td","LabeledList__cell LabeledList__label",[(0,o.createTextVNode)("#"),e.id,(0,o.createTextVNode)(":")],0),(0,o.createVNode)(1,"td","LabeledList__cell LabeledList__content",e.object,0),(0,o.createVNode)(1,"td","LabeledList__cell",[(0,o.createTextVNode)("By "),(0,o.createVNode)(1,"b",null,e.orderer,0)],4),(0,o.createVNode)(1,"td","LabeledList__cell",(0,o.createVNode)(1,"i",null,e.reason,0),2),(0,o.createVNode)(1,"td","LabeledList__cell LabeledList__buttons",[e.cost,(0,o.createTextVNode)(" credits"),(0,o.createTextVNode)(" "),!c.requestonly&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Button,{icon:"check",color:"good",onClick:function(){return(0,a.act)(l,"approve",{id:e.id})}}),(0,o.createComponentVNode)(2,i.Button,{icon:"times",color:"bad",onClick:function(){return(0,a.act)(l,"deny",{id:e.id})}})],4)],0)],4)],4,e.id)})),0)},d=function(e){var t=e.state,n=e.cart,r=t.config,c=t.data,l=r.ref;return(0,o.createFragment)([0===n.length&&"Nothing in cart",n.length>0&&(0,o.createComponentVNode)(2,i.LabeledList,{children:n.map((function(e){return(0,o.createComponentVNode)(2,i.LabeledList.Item,{className:"candystripe",label:"#"+e.id,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Box,{inline:!0,mx:2,children:[!!e.paid&&(0,o.createVNode)(1,"b",null,"[Paid Privately]",16)," ",e.cost," credits"]}),(0,o.createComponentVNode)(2,i.Button,{icon:"minus",onClick:function(){return(0,a.act)(l,"remove",{id:e.id})}})],4),children:e.object},e.id)}))}),n.length>0&&!c.requestonly&&(0,o.createComponentVNode)(2,i.Box,{mt:2,children:1===c.away&&1===c.docked&&(0,o.createComponentVNode)(2,i.Button,{color:"green",style:{"line-height":"28px",padding:"0 12px"},content:"Confirm the order",onClick:function(){return(0,a.act)(l,"send")}})||(0,o.createComponentVNode)(2,i.Box,{opacity:.5,children:["Shuttle in ",c.location,"."]})})],0)};t.CargoExpress=function(e){var t=e.state,n=t.config,r=t.data,u=n.ref,d=r.supplies||{};return(0,o.createFragment)([(0,o.createComponentVNode)(2,c.InterfaceLockNoticeBox,{siliconUser:r.siliconUser,locked:r.locked,onLockStatusChange:function(){return(0,a.act)(u,"lock")},accessText:"a QM-level ID card"}),!r.locked&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{title:"Cargo Express",buttons:(0,o.createComponentVNode)(2,i.Box,{inline:!0,bold:!0,children:[(0,o.createComponentVNode)(2,i.AnimatedNumber,{value:Math.round(r.points)})," credits"]}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Landing Location",children:[(0,o.createComponentVNode)(2,i.Button,{content:"Cargo Bay",selected:!r.usingBeacon,onClick:function(){return(0,a.act)(u,"LZCargo")}}),(0,o.createComponentVNode)(2,i.Button,{selected:r.usingBeacon,disabled:!r.hasBeacon,onClick:function(){return(0,a.act)(u,"LZBeacon")},children:[r.beaconzone," (",r.beaconName,")"]}),(0,o.createComponentVNode)(2,i.Button,{content:r.printMsg,disabled:!r.canBuyBeacon,onClick:function(){return(0,a.act)(u,"printBeacon")}})]}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Notice",children:r.message})]})}),(0,o.createComponentVNode)(2,l,{state:t,supplies:d})],4)],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.CellularEmporium=void 0;var o=n(1),r=n(3),a=n(2);t.CellularEmporium=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.abilities;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Genetic Points",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"undo",content:"Readapt",disabled:!i.can_readapt,onClick:function(){return n("readapt")}}),children:i.genetic_points_remaining})})}),(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:c.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{className:"candystripe",label:e.name,buttons:(0,o.createFragment)([e.dna_cost," ",(0,o.createComponentVNode)(2,a.Button,{content:e.owned?"Evolved":"Evolve",selected:e.owned,onClick:function(){return n("evolve",{name:e.name})}})],0),children:[e.desc,(0,o.createComponentVNode)(2,a.Box,{color:"good",children:e.helptext})]},e.name)}))})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.CentcomPodLauncher=void 0;var o=n(1),r=(n(23),n(3)),a=n(2);t.CentcomPodLauncher=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.NoticeBox,{children:"To use this, simply spawn the atoms you want in one of the five Centcom Supplypod Bays. Items in the bay will then be launched inside your supplypod, one turf-full at a time! You can optionally use the following buttons to configure how the supplypod acts."}),(0,o.createComponentVNode)(2,a.Section,{title:"Centcom Pod Customization (To be used against Helen Weinstein)",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Supply Bay",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Bay #1",selected:1===i.bayNumber,onClick:function(){return n("bay1")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Bay #2",selected:2===i.bayNumber,onClick:function(){return n("bay2")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Bay #3",selected:3===i.bayNumber,onClick:function(){return n("bay3")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Bay #4",selected:4===i.bayNumber,onClick:function(){return n("bay4")}}),(0,o.createComponentVNode)(2,a.Button,{content:"ERT Bay",selected:5===i.bayNumber,tooltip:"This bay is located on the western edge of CentCom. Its the\nglass room directly west of where ERT spawn, and south of the\nCentCom ferry. Useful for launching ERT/Deathsquads/etc. onto\nthe station via drop pods.",onClick:function(){return n("bay5")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Teleport to",children:[(0,o.createComponentVNode)(2,a.Button,{content:i.bay,onClick:function(){return n("teleportCentcom")}}),(0,o.createComponentVNode)(2,a.Button,{content:i.oldArea?i.oldArea:"Where you were",disabled:!i.oldArea,onClick:function(){return n("teleportBack")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Clone Mode",children:(0,o.createComponentVNode)(2,a.Button,{content:"Launch Clones",selected:i.launchClone,tooltip:"Choosing this will create a duplicate of the item to be\nlaunched in Centcom, allowing you to send one type of item\nmultiple times. Either way, the atoms are forceMoved into\nthe supplypod after it lands (but before it opens).",onClick:function(){return n("launchClone")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Launch style",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Ordered",selected:1===i.launchChoice,tooltip:'Instead of launching everything in the bay at once, this\nwill "scan" things (one turf-full at a time) in order, left\nto right and top to bottom. undoing will reset the "scanner"\nto the top-leftmost position.',onClick:function(){return n("launchOrdered")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Random",selected:2===i.launchChoice,tooltip:"Instead of launching everything in the bay at once, this\nwill launch one random turf of items at a time.",onClick:function(){return n("launchRandom")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Explosion",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Custom Size",selected:1===i.explosionChoice,tooltip:"This will cause an explosion of whatever size you like\n(including flame range) to occur as soon as the supplypod\nlands. Dont worry, supply-pods are explosion-proof!",onClick:function(){return n("explosionCustom")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Adminbus",selected:2===i.explosionChoice,tooltip:"This will cause a maxcap explosion (dependent on server\nconfig) to occur as soon as the supplypod lands. Dont worry,\nsupply-pods are explosion-proof!",onClick:function(){return n("explosionBus")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Damage",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Custom Damage",selected:1===i.damageChoice,tooltip:"Anyone caught under the pod when it lands will be dealt\nthis amount of brute damage. Sucks to be them!",onClick:function(){return n("damageCustom")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Gib",selected:2===i.damageChoice,tooltip:"This will attempt to gib any mob caught under the pod when\nit lands, as well as dealing a nice 5000 brute damage. Ya\nknow, just to be sure!",onClick:function(){return n("damageGib")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Effects",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Stun",selected:i.effectStun,tooltip:"Anyone who is on the turf when the supplypod is launched\nwill be stunned until the supplypod lands. They cant get\naway that easy!",onClick:function(){return n("effectStun")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Delimb",selected:i.effectLimb,tooltip:"This will cause anyone caught under the pod to lose a limb,\nexcluding their head.",onClick:function(){return n("effectLimb")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Yeet Organs",selected:i.effectOrgans,tooltip:"This will cause anyone caught under the pod to lose all\ntheir limbs and organs in a spectacular fashion.",onClick:function(){return n("effectOrgans")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Movement",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Bluespace",selected:i.effectBluespace,tooltip:"Gives the supplypod an advanced Bluespace Recyling Device.\nAfter opening, the supplypod will be warped directly to the\nsurface of a nearby NT-designated trash planet (/r/ss13).",onClick:function(){return n("effectBluespace")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Stealth",selected:i.effectStealth,tooltip:'This hides the red target icon from appearing when you\nlaunch the supplypod. Combos well with the "Invisible"\nstyle. Sneak attack, go!',onClick:function(){return n("effectStealth")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Quiet",selected:i.effectQuiet,tooltip:"This will keep the supplypod from making any sounds, except\nfor those specifically set by admins in the Sound section.",onClick:function(){return n("effectQuiet")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Reverse Mode",selected:i.effectReverse,tooltip:"This pod will not send any items. Instead, after landing,\nthe supplypod will close (similar to a normal closet closing),\nand then launch back to the right centcom bay to drop off any\nnew contents.",onClick:function(){return n("effectReverse")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Missile Mode",selected:i.effectMissile,tooltip:"This pod will not send any items. Instead, it will immediately\ndelete after landing (Similar visually to setting openDelay\n& departDelay to 0, but this looks nicer). Useful if you just\nwanna fuck some shit up. Combos well with the Missile style.",onClick:function(){return n("effectMissile")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Any Descent Angle",selected:i.effectCircle,tooltip:"This will make the supplypod come in from any angle. Im not\nsure why this feature exists, but here it is.",onClick:function(){return n("effectCircle")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Machine Gun Mode",selected:i.effectBurst,tooltip:"This will make each click launch 5 supplypods inaccuratly\naround the target turf (a 3x3 area). Combos well with the\nMissile Mode if you dont want shit lying everywhere after.",onClick:function(){return n("effectBurst")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Specific Target",selected:i.effectTarget,tooltip:"This will make the supplypod target a specific atom, instead\nof the mouses position. Smiting does this automatically!",onClick:function(){return n("effectTarget")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name/Desc",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Custom Name/Desc",selected:i.effectName,tooltip:"Allows you to add a custom name and description.",onClick:function(){return n("effectName")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Alert Ghosts",selected:i.effectAnnounce,tooltip:"Alerts ghosts when a pod is launched. Useful if some dumb\nshit is aboutta come outta the pod.",onClick:function(){return n("effectAnnounce")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Sound",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Custom Falling Sound",selected:i.fallingSound,tooltip:"Choose a sound to play as the pod falls. Note that for this\nto work right you should know the exact length of the sound,\nin seconds.",onClick:function(){return n("fallSound")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Landing Sound",selected:i.landingSound,tooltip:"Choose a sound to play when the pod lands.",onClick:function(){return n("landingSound")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Opening Sound",selected:i.openingSound,tooltip:"Choose a sound to play when the pod opens.",onClick:function(){return n("openingSound")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Leaving Sound",selected:i.leavingSound,tooltip:"Choose a sound to play when the pod departs (whether that be\ndelection in the case of a bluespace pod, or leaving for\ncentcom for a reversing pod).",onClick:function(){return n("leavingSound")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Admin Sound Volume",selected:i.soundVolume,tooltip:"Choose the volume for the sound to play at. Default values\nare between 1 and 100, but hey, do whatever. Im a tooltip,\nnot a cop.",onClick:function(){return n("soundVolume")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Timers",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Custom Falling Duration",selected:4!==i.fallDuration,tooltip:"Set how long the animation for the pod falling lasts. Create\ndramatic, slow falling pods!",onClick:function(){return n("fallDuration")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Landing Time",selected:20!==i.landingDelay,tooltip:"Choose the amount of time it takes for the supplypod to hit\nthe station. By default this value is 0.5 seconds.",onClick:function(){return n("landingDelay")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Opening Time",selected:30!==i.openingDelay,tooltip:"Choose the amount of time it takes for the supplypod to open\nafter landing. Useful for giving whatevers inside the pod a\nnice dramatic entrance! By default this value is 3 seconds.",onClick:function(){return n("openingDelay")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Leaving Time",selected:30!==i.departureDelay,tooltip:"Choose the amount of time it takes for the supplypod to leave\nafter landing. By default this value is 3 seconds.",onClick:function(){return n("departureDelay")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Style",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.styleChoice,tooltip:"Same color scheme as the normal station-used supplypods",onClick:function(){return n("styleStandard")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:2===i.styleChoice,tooltip:"The same as the stations upgraded blue-and-white\nBluespace Supplypods",onClick:function(){return n("styleBluespace")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Syndicate",selected:4===i.styleChoice,tooltip:"A menacing black and blood-red. Great for sending meme-ops\nin style!",onClick:function(){return n("styleSyndie")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Deathsquad",selected:5===i.styleChoice,tooltip:"A menacing black and dark blue. Great for sending deathsquads\nin style!",onClick:function(){return n("styleBlue")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Cult Pod",selected:6===i.styleChoice,tooltip:"A blood and rune covered cult pod!",onClick:function(){return n("styleCult")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Missile",selected:7===i.styleChoice,tooltip:"A large missile. Combos well with a missile mode, so the\nmissile doesnt stick around after landing.",onClick:function(){return n("styleMissile")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Syndicate Missile",selected:8===i.styleChoice,tooltip:"A large blood-red missile. Combos well with missile mode,\nso the missile doesnt stick around after landing.",onClick:function(){return n("styleSMissile")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Supply Crate",selected:9===i.styleChoice,tooltip:"A large, dark-green military supply crate.",onClick:function(){return n("styleBox")}}),(0,o.createComponentVNode)(2,a.Button,{content:"HONK",selected:10===i.styleChoice,tooltip:"A colorful, clown inspired look.",onClick:function(){return n("styleHONK")}}),(0,o.createComponentVNode)(2,a.Button,{content:"~Fruit",selected:11===i.styleChoice,tooltip:"For when an orange is angry",onClick:function(){return n("styleFruit")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Invisible",selected:12===i.styleChoice,tooltip:'Makes the supplypod invisible! Useful for when you want to\nuse this feature with a gateway or something. Combos well\nwith the "Stealth" and "Quiet Landing" effects.',onClick:function(){return n("styleInvisible")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Gondola",selected:13===i.styleChoice,tooltip:"This gondola can control when he wants to deliver his supplies\nif he has a smart enough mind, so offer up his body to ghosts\nfor maximum enjoyment. (Make sure to turn off bluespace and\nset a arbitrarily high open-time if you do!",onClick:function(){return n("styleGondola")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Show Contents (See Through Pod)",selected:14===i.styleChoice,tooltip:"By selecting this, the pod will instead look like whatevers\ninside it (as if it were the contents falling by themselves,\nwithout a pod). Useful for launching mechs at the station\nand standing tall as they soar in from the heavens.",onClick:function(){return n("styleSeeThrough")}})]})]})}),(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:i.numObjects+" turfs in "+i.bay,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"undo Pody Bay",tooltip:"Manually undoes the possible things to launch in the\npod bay.",onClick:function(){return n("undo")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Enter Launch Mode",selected:i.giveLauncher,tooltip:"THE CODEX ASTARTES CALLS THIS MANEUVER: STEEL RAIN",onClick:function(){return n("giveLauncher")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Clear Selected Bay",color:"bad",tooltip:"This will delete all objs and mobs from the selected bay.",tooltipPosition:"left",onClick:function(){return n("clearBay")}})],4)})})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemAcclimator=void 0;var o=n(1),r=n(3),a=n(2);t.ChemAcclimator=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Acclimator",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Temperature",children:[i.chem_temp," K"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Temperature",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.target_temperature,unit:"K",width:"59px",minValue:0,maxValue:1e3,step:5,stepPixelSize:2,onChange:function(e,t){return n("set_target_temperature",{temperature:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Acceptable Temp. Difference",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.allowed_temperature_difference,unit:"K",width:"59px",minValue:1,maxValue:i.target_temperature,stepPixelSize:2,onChange:function(e,t){n("set_allowed_temperature_difference",{temperature:t})}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Status",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",content:i.enabled?"On":"Off",selected:i.enabled,onClick:function(){return n("toggle_power")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Volume",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.max_volume,unit:"u",width:"50px",minValue:i.reagent_volume,maxValue:200,step:2,stepPixelSize:2,onChange:function(e,t){return n("change_volume",{volume:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Operation",children:i.acclimate_state}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current State",children:i.emptying?"Emptying":"Filling"})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemDebugSynthesizer=void 0;var o=n(1),r=n(3),a=n(2);t.ChemDebugSynthesizer=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.amount,l=i.beakerCurrentVolume,u=i.beakerMaxVolume,d=i.isBeakerLoaded,s=i.beakerContents,p=void 0===s?[]:s;return(0,o.createComponentVNode)(2,a.Section,{title:"Recipient",buttons:d?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return n("ejectBeaker")}}),(0,o.createComponentVNode)(2,a.NumberInput,{value:c,unit:"u",minValue:1,maxValue:u,step:1,stepPixelSize:2,onChange:function(e,t){return n("amount",{amount:t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",content:"Input",onClick:function(){return n("input")}})],4):(0,o.createComponentVNode)(2,a.Button,{icon:"plus",content:"Create Beaker",onClick:function(){return n("makecup")}}),children:d?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:l})," / "+u+" u"]}),p.length>0?(0,o.createComponentVNode)(2,a.LabeledList,{children:p.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,children:[e.volume," u"]},e.name)}))}):(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Recipient Empty"})],0):(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"No Recipient"})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemDispenser=void 0;var o=n(1),r=n(18),a=n(23),i=n(3),c=n(2);t.ChemDispenser=function(e){var t=(0,i.useBackend)(e),n=t.act,l=t.data,u=!!l.recordingRecipe,d=Object.keys(l.recipes).map((function(e){return{name:e,contents:l.recipes[e]}})),s=l.beakerTransferAmounts||[],p=u&&Object.keys(l.recordingRecipe).map((function(e){return{id:e,name:(0,a.toTitleCase)(e.replace(/_/," ")),volume:l.recordingRecipe[e]}}))||l.beakerContents||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Section,{title:"Status",buttons:u&&(0,o.createComponentVNode)(2,c.Box,{inline:!0,mx:1,color:"red",children:[(0,o.createComponentVNode)(2,c.Icon,{name:"circle",mr:1}),"Recording"]}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Energy",children:(0,o.createComponentVNode)(2,c.ProgressBar,{value:l.energy/l.maxEnergy,content:(0,r.toFixed)(l.energy)+" units"})})})}),(0,o.createComponentVNode)(2,c.Section,{title:"Recipes",buttons:(0,o.createFragment)([!u&&(0,o.createComponentVNode)(2,c.Box,{inline:!0,mx:1,children:(0,o.createComponentVNode)(2,c.Button,{color:"transparent",content:"Clear recipes",onClick:function(){return n("clear_recipes")}})}),!u&&(0,o.createComponentVNode)(2,c.Button,{icon:"circle",disabled:!l.isBeakerLoaded,content:"Record",onClick:function(){return n("record_recipe")}}),u&&(0,o.createComponentVNode)(2,c.Button,{icon:"ban",color:"transparent",content:"Discard",onClick:function(){return n("cancel_recording")}}),u&&(0,o.createComponentVNode)(2,c.Button,{icon:"save",color:"green",content:"Save",onClick:function(){return n("save_recording")}})],0),children:(0,o.createComponentVNode)(2,c.Box,{mr:-1,children:[d.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{icon:"tint",width:"129.5px",lineHeight:"21px",content:e.name,onClick:function(){return n("dispense_recipe",{recipe:e.name})}},e.name)})),0===d.length&&(0,o.createComponentVNode)(2,c.Box,{color:"light-gray",children:"No recipes."})]})}),(0,o.createComponentVNode)(2,c.Section,{title:"Dispense",buttons:s.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{icon:"plus",selected:e===l.amount,content:e,onClick:function(){return n("amount",{target:e})}},e)})),children:(0,o.createComponentVNode)(2,c.Box,{mr:-1,children:l.chemicals.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{icon:"tint",width:"129.5px",lineHeight:"21px",content:e.title,onClick:function(){return n("dispense",{reagent:e.id})}},e.id)}))})}),(0,o.createComponentVNode)(2,c.Section,{title:"Beaker",buttons:s.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{icon:"minus",disabled:u,content:e,onClick:function(){return n("remove",{amount:e})}},e)})),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Beaker",buttons:!!l.isBeakerLoaded&&(0,o.createComponentVNode)(2,c.Button,{icon:"eject",content:"Eject",disabled:!l.isBeakerLoaded,onClick:function(){return n("eject")}}),children:(u?"Virtual beaker":l.isBeakerLoaded&&(0,o.createFragment)([(0,o.createComponentVNode)(2,c.AnimatedNumber,{initial:0,value:l.beakerCurrentVolume}),(0,o.createTextVNode)("/"),l.beakerMaxVolume,(0,o.createTextVNode)(" units, "),l.beakerCurrentpH,(0,o.createTextVNode)(" pH")],0))||"No beaker"}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Contents",children:[(0,o.createComponentVNode)(2,c.Box,{color:"label",children:l.isBeakerLoaded||u?0===p.length&&"Nothing":"N/A"}),p.map((function(e){return(0,o.createComponentVNode)(2,c.Box,{color:"label",children:[(0,o.createComponentVNode)(2,c.AnimatedNumber,{initial:0,value:e.volume})," ","units of ",e.name]},e.name)}))]})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemFilter=t.ChemFilterPane=void 0;var o=n(1),r=n(3),a=n(2);var i=function(e){var t=(0,r.useBackend)(e).act,n=e.title,i=e.list,c=e.reagentName,l=e.onReagentInput,u=n.toLowerCase();return(0,o.createComponentVNode)(2,a.Section,{title:n,minHeight:40,ml:.5,mr:.5,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Input,{placeholder:"Reagent",width:"140px",onInput:function(e,t){return l(t)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",onClick:function(){return t("add",{which:u,name:c})}})],4),children:i.map((function(e){return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"minus",content:e,onClick:function(){return t("remove",{which:u,reagent:e})}})],4,e)}))})};t.ChemFilterPane=i;var c=function(e){var t,n;function r(){var t;return(t=e.call(this)||this).state={leftReagentName:"",rightReagentName:""},t}n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var c=r.prototype;return c.setLeftReagentName=function(e){this.setState({leftReagentName:e})},c.setRightReagentName=function(e){this.setState({rightReagentName:e})},c.render=function(){var e=this,t=this.props.state,n=t.data,r=n.left,c=void 0===r?[]:r,l=n.right,u=void 0===l?[]:l;return(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,i,{title:"Left",list:c,reagentName:this.state.leftReagentName,onReagentInput:function(t){return e.setLeftReagentName(t)},state:t})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,i,{title:"Right",list:u,reagentName:this.state.rightReagentName,onReagentInput:function(t){return e.setRightReagentName(t)},state:t})})]})},r}(o.Component);t.ChemFilter=c},function(e,t,n){"use strict";t.__esModule=!0,t.ChemHeater=void 0;var o=n(1),r=n(18),a=n(3),i=n(2),c=n(164);t.ChemHeater=function(e){var t=(0,a.useBackend)(e),n=t.act,l=t.data,u=l.targetTemp,d=l.isActive,s=l.isBeakerLoaded,p=l.currentTemp,m=l.currentpH,f=l.beakerCurrentVolume,h=l.beakerMaxVolume,C=l.beakerContents,g=void 0===C?[]:C;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{title:"Thermostat",buttons:(0,o.createComponentVNode)(2,i.Button,{icon:d?"power-off":"times",selected:d,content:d?"On":"Off",onClick:function(){return n("power")}}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Target",children:(0,o.createComponentVNode)(2,i.NumberInput,{width:"65px",unit:"K",step:2,stepPixelSize:1,value:(0,r.round)(u),minValue:0,maxValue:1e3,onDrag:function(e,t){return n("temperature",{target:t})}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Temperature",children:(0,o.createComponentVNode)(2,i.Box,{width:"60px",textAlign:"right",children:s&&(0,o.createComponentVNode)(2,i.AnimatedNumber,{value:p,format:function(e){return(0,r.toFixed)(e)+" K"}})||"\u2014"})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"pH",children:(0,o.createComponentVNode)(2,i.Box,{width:"60px",textAlign:"right",children:s&&(0,o.createComponentVNode)(2,i.AnimatedNumber,{value:m,format:function(e){return(0,r.toFixed)(e)+" pH"}})||"-"})})]})}),(0,o.createComponentVNode)(2,i.Section,{title:"Beaker",buttons:!!s&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:"label",mr:2,children:[f," / ",h," units"]}),(0,o.createComponentVNode)(2,i.Button,{icon:"eject",content:"Eject",onClick:function(){return n("eject")}})],4),children:(0,o.createComponentVNode)(2,c.BeakerContents,{beakerLoaded:s,beakerContents:g})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemMaster=void 0;var o=n(1),r=n(16),a=n(2);t.ChemMaster=function(e){var t=e.state,n=t.config,l=t.data,d=n.ref,s=(l.screen,l.beakerContents),p=void 0===s?[]:s,m=l.bufferContents,f=void 0===m?[]:m,h=l.beakerCurrentVolume,C=l.beakerMaxVolume,g=l.isBeakerLoaded,b=l.isPillBottleLoaded,N=l.pillBottleCurrentAmount,v=l.pillBottleMaxAmount;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Beaker",buttons:!!l.isBeakerLoaded&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"label",mr:2,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:h,initial:0})," / "+C+" units"]}),(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return(0,r.act)(d,"eject")}})],4),children:[!g&&(0,o.createComponentVNode)(2,a.Box,{color:"label",mt:"3px",mb:"5px",children:"No beaker loaded."}),!!g&&0===p.length&&(0,o.createComponentVNode)(2,a.Box,{color:"label",mt:"3px",mb:"5px",children:"Beaker is empty."}),(0,o.createComponentVNode)(2,i,{children:p.map((function(e){return(0,o.createComponentVNode)(2,c,{state:t,chemical:e,transferTo:"buffer"},e.id)}))})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Buffer",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"label",mr:1,children:"Mode:"}),(0,o.createComponentVNode)(2,a.Button,{color:l.mode?"good":"bad",icon:l.mode?"exchange-alt":"times",content:l.mode?"Transfer":"Destroy",onClick:function(){return(0,r.act)(d,"toggleMode")}})],4),children:[0===f.length&&(0,o.createComponentVNode)(2,a.Box,{color:"label",mt:"3px",mb:"5px",children:"Buffer is empty."}),(0,o.createComponentVNode)(2,i,{children:f.map((function(e){return(0,o.createComponentVNode)(2,c,{state:t,chemical:e,transferTo:"beaker"},e.id)}))})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Packaging",children:(0,o.createComponentVNode)(2,u,{state:t})}),!!b&&(0,o.createComponentVNode)(2,a.Section,{title:"Pill Bottle",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"label",mr:2,children:[N," / ",v," pills"]}),(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return(0,r.act)(d,"ejectPillBottle")}})],4)})],0)};var i=a.Table,c=function(e){var t=e.state,n=e.chemical,i=e.transferTo,c=t.config.ref;return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{color:"label",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:n.volume,initial:0})," units of "+n.name]}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:[(0,o.createComponentVNode)(2,a.Button,{content:"1",onClick:function(){return(0,r.act)(c,"transfer",{id:n.id,amount:1,to:i})}}),(0,o.createComponentVNode)(2,a.Button,{content:"5",onClick:function(){return(0,r.act)(c,"transfer",{id:n.id,amount:5,to:i})}}),(0,o.createComponentVNode)(2,a.Button,{content:"10",onClick:function(){return(0,r.act)(c,"transfer",{id:n.id,amount:10,to:i})}}),(0,o.createComponentVNode)(2,a.Button,{content:"All",onClick:function(){return(0,r.act)(c,"transfer",{id:n.id,amount:1e3,to:i})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"ellipsis-h",title:"Custom amount",onClick:function(){return(0,r.act)(c,"transfer",{id:n.id,amount:-1,to:i})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"question",title:"Analyze",onClick:function(){return(0,r.act)(c,"analyze",{id:n.id})}})]})]},n.id)},l=function(e){var t=e.label,n=e.amountUnit,r=e.amount,i=e.onChangeAmount,c=e.onCreate,l=e.sideNote;return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:t,children:[(0,o.createComponentVNode)(2,a.NumberInput,{width:14,unit:n,step:1,stepPixelSize:15,value:r,minValue:1,maxValue:10,onChange:i}),(0,o.createComponentVNode)(2,a.Button,{ml:1,content:"Create",onClick:c}),(0,o.createComponentVNode)(2,a.Box,{inline:!0,ml:1,color:"label",content:l})]})},u=function(e){var t,n;function i(){var t;return(t=e.call(this)||this).state={pillAmount:1,patchAmount:1,bottleAmount:1,packAmount:1,vialAmount:1,dartAmount:1},t}return n=e,(t=i).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,i.prototype.render=function(){var e=this,t=(this.state,this.props),n=t.state.config.ref,i=this.state,c=i.pillAmount,u=i.patchAmount,d=i.bottleAmount,s=i.packAmount,p=i.vialAmount,m=i.dartAmount,f=t.state.data,h=f.condi,C=f.chosenPillStyle,g=f.pillStyles,b=void 0===g?[]:g;return(0,o.createComponentVNode)(2,a.LabeledList,{children:[!h&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pill type",children:b.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{width:5,selected:e.id===C,textAlign:"center",color:"transparent",onClick:function(){return(0,r.act)(n,"pillStyle",{id:e.id})},children:(0,o.createComponentVNode)(2,a.Box,{mx:-1,className:e.className})},e.id)}))}),!h&&(0,o.createComponentVNode)(2,l,{label:"Pills",amount:c,amountUnit:"pills",sideNote:"max 50u",onChangeAmount:function(t,n){return e.setState({pillAmount:n})},onCreate:function(){return(0,r.act)(n,"create",{type:"pill",amount:c,volume:"auto"})}}),!h&&(0,o.createComponentVNode)(2,l,{label:"Patches",amount:u,amountUnit:"patches",sideNote:"max 40u",onChangeAmount:function(t,n){return e.setState({patchAmount:n})},onCreate:function(){return(0,r.act)(n,"create",{type:"patch",amount:u,volume:"auto"})}}),!h&&(0,o.createComponentVNode)(2,l,{label:"Bottles",amount:d,amountUnit:"bottles",sideNote:"max 30u",onChangeAmount:function(t,n){return e.setState({bottleAmount:n})},onCreate:function(){return(0,r.act)(n,"create",{type:"bottle",amount:d,volume:"auto"})}}),!h&&(0,o.createComponentVNode)(2,l,{label:"Hypovials",amount:p,amountUnit:"vials",sideNote:"max 60u",onChangeAmount:function(t,n){return e.setState({vialAmount:n})},onCreate:function(){return(0,r.act)(n,"create",{type:"hypoVial",amount:p,volume:"auto"})}}),!h&&(0,o.createComponentVNode)(2,l,{label:"Smartdarts",amount:m,amountUnit:"darts",sideNote:"max 20u",onChangeAmount:function(t,n){return e.setState({dartAmount:n})},onCreate:function(){return(0,r.act)(n,"create",{type:"smartDart",amount:m,volume:"auto"})}}),!!h&&(0,o.createComponentVNode)(2,l,{label:"Packs",amount:s,amountUnit:"packs",sideNote:"max 10u",onChangeAmount:function(t,n){return e.setState({packAmount:n})},onCreate:function(){return(0,r.act)(n,"create",{type:"condimentPack",amount:s,volume:"auto"})}}),!!h&&(0,o.createComponentVNode)(2,l,{label:"Bottles",amount:d,amountUnit:"bottles",sideNote:"max 50u",onChangeAmount:function(t,n){return e.setState({bottleAmount:n})},onCreate:function(){return(0,r.act)(n,"create",{type:"condimentBottle",amount:d,volume:"auto"})}})]})},i}(o.Component)},function(e,t,n){"use strict";t.__esModule=!0,t.ChemPress=void 0;var o=n(1),r=n(3),a=n(2);t.ChemPress=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.pill_size,l=i.pill_name,u=i.pill_style,d=i.pill_styles,s=void 0===d?[]:d;return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pill Volume",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:c,unit:"u",width:"43px",minValue:5,maxValue:50,step:1,stepPixelSize:2,onChange:function(e,t){return n("change_pill_size",{volume:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pill Name",children:(0,o.createComponentVNode)(2,a.Input,{value:l,onChange:function(e,t){return n("change_pill_name",{name:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pill Style",children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{width:5,selected:e.id===u,textAlign:"center",color:"transparent",onClick:function(){return n("change_pill_style",{id:e.id})},children:(0,o.createComponentVNode)(2,a.Box,{mx:-1,className:e.class_name})},e.id)}))})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemReactionChamber=void 0;var o=n(1),r=n(16),a=n(2),i=n(24),c=n(12);var l=function(e){var t,n;function l(){var t;return(t=e.call(this)||this).state={reagentName:"",reagentQuantity:1},t}n=e,(t=l).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var u=l.prototype;return u.setReagentName=function(e){this.setState({reagentName:e})},u.setReagentQuantity=function(e){this.setState({reagentQuantity:e})},u.render=function(){var e=this,t=this.props.state,n=t.config,l=t.data,u=n.ref,d=l.emptying,s=l.reagents||[];return(0,o.createComponentVNode)(2,a.Section,{title:"Reagents",buttons:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,color:d?"bad":"good",children:d?"Emptying":"Filling"}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createVNode)(1,"tr","LabledList__row",[(0,o.createVNode)(1,"td","LabeledList__cell",(0,o.createComponentVNode)(2,a.Input,{fluid:!0,value:"",placeholder:"Reagent Name",onInput:function(t,n){return e.setReagentName(n)}}),2,{colSpan:"2"}),(0,o.createVNode)(1,"td",(0,c.classes)(["LabeledList__buttons","LabeledList__cell"]),[(0,o.createComponentVNode)(2,a.NumberInput,{value:this.state.reagentQuantity,minValue:1,maxValue:100,step:1,stepPixelSize:3,width:"39px",onDrag:function(t,n){return e.setReagentQuantity(n)}}),(0,o.createComponentVNode)(2,a.Box,{inline:!0,mr:1}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",onClick:function(){return(0,r.act)(u,"add",{chem:e.state.reagentName,amount:e.state.reagentQuantity})}})],4)],4),(0,i.map)((function(e,t){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:t,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"minus",color:"bad",onClick:function(){return(0,r.act)(u,"remove",{chem:t})}}),children:e},t)}))(s)]})})},l}(o.Component);t.ChemReactionChamber=l},function(e,t,n){"use strict";t.__esModule=!0,t.ChemSplitter=void 0;var o=n(1),r=n(18),a=n(3),i=n(2);t.ChemSplitter=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.straight,u=c.side,d=c.max_transfer;return(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Straight",children:(0,o.createComponentVNode)(2,i.NumberInput,{value:l,unit:"u",width:"55px",minValue:1,maxValue:d,format:function(e){return(0,r.toFixed)(e,2)},step:.05,stepPixelSize:4,onChange:function(e,t){return n("set_amount",{target:"straight",amount:t})}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Side",children:(0,o.createComponentVNode)(2,i.NumberInput,{value:u,unit:"u",width:"55px",minValue:1,maxValue:d,format:function(e){return(0,r.toFixed)(e,2)},step:.05,stepPixelSize:4,onChange:function(e,t){return n("set_amount",{target:"side",amount:t})}})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemSynthesizer=void 0;var o=n(1),r=n(18),a=n(3),i=n(2);t.ChemSynthesizer=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.amount,u=c.current_reagent,d=c.chemicals,s=void 0===d?[]:d,p=c.possible_amounts,m=void 0===p?[]:p;return(0,o.createComponentVNode)(2,i.Section,{children:[(0,o.createComponentVNode)(2,i.Box,{children:m.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{icon:"plus",content:(0,r.toFixed)(e,0),selected:e===l,onClick:function(){return n("amount",{target:e})}},(0,r.toFixed)(e,0))}))}),(0,o.createComponentVNode)(2,i.Box,{mt:1,children:s.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{icon:"tint",content:e.title,width:"129px",selected:e.id===u,onClick:function(){return n("select",{reagent:e.id})}},e.id)}))})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.CodexGigas=void 0;var o=n(1),r=n(3),a=n(2);t.CodexGigas=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{children:[i.name,(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Prefix",children:["Dark","Hellish","Fallen","Fiery","Sinful","Blood","Fluffy"].map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,disabled:1!==i.currentSection,onClick:function(){return n(e+" ")}},e.toLowerCase())}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Title",children:["Lord","Prelate","Count","Viscount","Vizier","Elder","Adept"].map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,disabled:i.currentSection>2,onClick:function(){return n(e+" ")}},e.toLowerCase())}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:["hal","ve","odr","neit","ci","quon","mya","folth","wren","geyr","hil","niet","twou","phi","coa"].map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,disabled:i.currentSection>4,onClick:function(){return n(e)}},e.toLowerCase())}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Suffix",children:["the Red","the Soulless","the Master","the Lord of all things","Jr."].map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,disabled:4!==i.currentSection,onClick:function(){return n(" "+e)}},e.toLowerCase())}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Submit",children:(0,o.createComponentVNode)(2,a.Button,{content:"Search",disabled:i.currentSection<4,onClick:function(){return n("search")}})})]})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.ComputerFabricator=void 0;var o=n(1),r=(n(23),n(3)),a=n(2);t.ComputerFabricator=function(e){var t=e.state,n=(0,r.useBackend)(e),c=n.act,l=n.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{italic:!0,fontSize:"20px",children:"Your perfect device, only three steps away..."}),0!==l.state&&(0,o.createComponentVNode)(2,a.Button,{fluid:!0,mb:1,icon:"circle",content:"Clear Order",onClick:function(){return c("clean_order")}}),(0,o.createComponentVNode)(2,i,{state:t})],0)};var i=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return 0===i.state?(0,o.createComponentVNode)(2,a.Section,{title:"Step 1",minHeight:51,children:[(0,o.createComponentVNode)(2,a.Box,{mt:5,bold:!0,textAlign:"center",fontSize:"40px",children:"Choose your Device"}),(0,o.createComponentVNode)(2,a.Box,{mt:3,children:(0,o.createComponentVNode)(2,a.Grid,{width:"100%",children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"laptop",content:"Laptop",textAlign:"center",fontSize:"30px",lineHeight:"50px",onClick:function(){return n("pick_device",{pick:"1"})}})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"tablet-alt",content:"Tablet",textAlign:"center",fontSize:"30px",lineHeight:"50px",onClick:function(){return n("pick_device",{pick:"2"})}})})]})})]}):1===i.state?(0,o.createComponentVNode)(2,a.Section,{title:"Step 2: Customize your device",minHeight:47,buttons:(0,o.createComponentVNode)(2,a.Box,{bold:!0,color:"good",children:[i.totalprice," cr"]}),children:[(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Battery:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"Allows your device to operate without external utility power\nsource. Advanced batteries increase battery life.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_battery,onClick:function(){return n("hw_battery",{battery:"1"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Upgraded",selected:2===i.hw_battery,onClick:function(){return n("hw_battery",{battery:"2"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:3===i.hw_battery,onClick:function(){return n("hw_battery",{battery:"3"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Hard Drive:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"Stores file on your device. Advanced drives can store more\nfiles, but use more power, shortening battery life.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_disk,onClick:function(){return n("hw_disk",{disk:"1"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Upgraded",selected:2===i.hw_disk,onClick:function(){return n("hw_disk",{disk:"2"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:3===i.hw_disk,onClick:function(){return n("hw_disk",{disk:"3"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Network Card:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"Allows your device to wirelessly connect to stationwide NTNet\nnetwork. Basic cards are limited to on-station use, while\nadvanced cards can operate anywhere near the station, which\nincludes asteroid outposts",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"None",selected:0===i.hw_netcard,onClick:function(){return n("hw_netcard",{netcard:"0"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_netcard,onClick:function(){return n("hw_netcard",{netcard:"1"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:2===i.hw_netcard,onClick:function(){return n("hw_netcard",{netcard:"2"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Nano Printer:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"A device that allows for various paperwork manipulations,\nsuch as, scanning of documents or printing new ones.\nThis device was certified EcoFriendlyPlus and is capable of\nrecycling existing paper for printing purposes.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"None",selected:0===i.hw_nanoprint,onClick:function(){return n("hw_nanoprint",{print:"0"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_nanoprint,onClick:function(){return n("hw_nanoprint",{print:"1"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Card Reader:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"Adds a slot that allows you to manipulate RFID cards.\nPlease note that this is not necessary to allow the device\nto read your identification, it is just necessary to\nmanipulate other cards.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"None",selected:0===i.hw_card,onClick:function(){return n("hw_card",{card:"0"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_card,onClick:function(){return n("hw_card",{card:"1"})}})})]}),2!==i.devtype&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Processor Unit:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"A component critical for your device's functionality.\nIt allows you to run programs from your hard drive.\nAdvanced CPUs use more power, but allow you to run\nmore programs on background at once.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_cpu,onClick:function(){return n("hw_cpu",{cpu:"1"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:2===i.hw_cpu,onClick:function(){return n("hw_cpu",{cpu:"2"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Tesla Relay:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"An advanced wireless power relay that allows your device\nto connect to nearby area power controller to provide\nalternative power source. This component is currently\nunavailable on tablet computers due to size restrictions.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"None",selected:0===i.hw_tesla,onClick:function(){return n("hw_tesla",{tesla:"0"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_tesla,onClick:function(){return n("hw_tesla",{tesla:"1"})}})})]})],4)]}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,mt:3,content:"Confirm Order",color:"good",textAlign:"center",fontSize:"18px",lineHeight:"26px",onClick:function(){return n("confirm_order")}})]}):2===i.state?(0,o.createComponentVNode)(2,a.Section,{title:"Step 3: Payment",minHeight:47,children:[(0,o.createComponentVNode)(2,a.Box,{italic:!0,textAlign:"center",fontSize:"20px",children:"Your device is ready for fabrication..."}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,mt:2,textAlign:"center",fontSize:"16px",children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,children:"Please insert the required"})," ",(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"good",children:[i.totalprice," cr"]})]}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,mt:1,textAlign:"center",fontSize:"18px",children:"Current:"}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,mt:.5,textAlign:"center",fontSize:"18px",color:i.credits>=i.totalprice?"good":"bad",children:[i.credits," cr"]}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Purchase",disabled:i.credits=10&&e<20?i.COLORS.department.security:e>=20&&e<30?i.COLORS.department.medbay:e>=30&&e<40?i.COLORS.department.science:e>=40&&e<50?i.COLORS.department.engineering:e>=50&&e<60?i.COLORS.department.cargo:e>=200&&e<230?i.COLORS.department.centcom:i.COLORS.department.other},u=function(e){var t=e.type,n=e.value;return(0,o.createComponentVNode)(2,a.Box,{inline:!0,width:4,color:i.COLORS.damageType[t],textAlign:"center",children:n})};t.CrewConsole=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,d=i.sensors||[];return(0,o.createComponentVNode)(2,a.Section,{minHeight:90,children:(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Name"}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,collapsing:!0}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,collapsing:!0,textAlign:"center",children:"Vitals"}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Position"}),!!i.link_allowed&&(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,collapsing:!0,children:"Tracking"})]}),d.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:(f=e.ijob,f%10==0),color:l(e.ijob),children:[e.name," (",e.assignment,")"]}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,textAlign:"center",children:(0,o.createComponentVNode)(2,a.ColorBox,{color:(t=e.oxydam,r=e.toxdam,d=e.burndam,s=e.brutedam,p=t+r+d+s,m=Math.min(Math.max(Math.ceil(p/25),0),5),c[m])})}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,textAlign:"center",children:null!==e.oxydam?(0,o.createComponentVNode)(2,a.Box,{inline:!0,children:[(0,o.createComponentVNode)(2,u,{type:"oxy",value:e.oxydam}),"/",(0,o.createComponentVNode)(2,u,{type:"toxin",value:e.toxdam}),"/",(0,o.createComponentVNode)(2,u,{type:"burn",value:e.burndam}),"/",(0,o.createComponentVNode)(2,u,{type:"brute",value:e.brutedam})]}):e.life_status?"Alive":"Dead"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:null!==e.pos_x?e.area:"N/A"}),!!i.link_allowed&&(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:(0,o.createComponentVNode)(2,a.Button,{content:"Track",disabled:!e.can_track,onClick:function(){return n("select_person",{name:e.name})}})})]},e.name);var t,r,d,s,p,m,f}))]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Cryo=void 0;var o=n(1),r=n(3),a=n(2),i=n(164);t.Cryo=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Occupant",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Occupant",content:c.occupant.name?c.occupant.name:"No Occupant"}),!!c.hasOccupant&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"State",content:c.occupant.stat,color:c.occupant.statstate}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Temperature",color:c.occupant.temperaturestatus,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:c.occupant.bodyTemperature})," K"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:c.occupant.health/c.occupant.maxHealth,color:c.occupant.health>0?"good":"average",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:c.occupant.health})})}),[{label:"Brute",type:"bruteLoss"},{label:"Respiratory",type:"oxyLoss"},{label:"Toxin",type:"toxLoss"},{label:"Burn",type:"fireLoss"}].map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.label,children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:c.occupant[e.type]/100,children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:c.occupant[e.type]})})},e.id)}))],0)]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Cell",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",content:(0,o.createComponentVNode)(2,a.Button,{icon:c.isOperating?"power-off":"times",disabled:c.isOpen,onClick:function(){return n("power")},color:c.isOperating&&"green",children:c.isOperating?"On":"Off"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Temperature",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:c.cellTemperature})," K"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door",children:[(0,o.createComponentVNode)(2,a.Button,{icon:c.isOpen?"unlock":"lock",onClick:function(){return n("door")},content:c.isOpen?"Open":"Closed"}),(0,o.createComponentVNode)(2,a.Button,{icon:c.autoEject?"sign-out-alt":"sign-in-alt",onClick:function(){return n("autoeject")},content:c.autoEject?"Auto":"Manual"})]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Beaker",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",disabled:!c.isBeakerLoaded,onClick:function(){return n("ejectbeaker")},content:"Eject"}),children:(0,o.createComponentVNode)(2,i.BeakerContents,{beakerLoaded:c.isBeakerLoaded,beakerContents:c.beakerContents})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.PersonalCrafting=void 0;var o=n(1),r=n(24),a=n(3),i=n(2),c=function(e){var t=e.craftables,n=void 0===t?[]:t,r=(0,a.useBackend)(e),c=r.act,l=r.data,u=l.craftability,d=void 0===u?{}:u,s=l.display_compact,p=l.display_craftable_only;return n.map((function(e){return p&&!d[e.ref]?null:s?(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:e.name,className:"candystripe",buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"cog",content:"Craft",disabled:!d[e.ref],tooltip:e.tool_text&&"Tools needed: "+e.tool_text,tooltipPosition:"left",onClick:function(){return c("make",{recipe:e.ref})}}),children:e.req_text},e.name):(0,o.createComponentVNode)(2,i.Section,{title:e.name,level:2,buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"cog",content:"Craft",disabled:!d[e.ref],onClick:function(){return c("make",{recipe:e.ref})}}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[!!e.req_text&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Required",children:e.req_text}),!!e.catalyst_text&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Catalyst",children:e.catalyst_text}),!!e.tool_text&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Tools",children:e.tool_text})]})},e.name)}))};t.PersonalCrafting=function(e){var t=e.state,n=(0,a.useBackend)(e),l=n.act,u=n.data,d=u.busy,s=u.display_craftable_only,p=u.display_compact,m=(0,r.map)((function(e,t){return{category:t,subcategory:e,hasSubcats:"has_subcats"in e,firstSubcatName:Object.keys(e).find((function(e){return"has_subcats"!==e}))}}))(u.crafting_recipes||{}),f=!!d&&(0,o.createComponentVNode)(2,i.Dimmer,{fontSize:"40px",textAlign:"center",children:(0,o.createComponentVNode)(2,i.Box,{mt:30,children:[(0,o.createComponentVNode)(2,i.Icon,{name:"cog",spin:1})," Crafting..."]})});return(0,o.createFragment)([f,(0,o.createComponentVNode)(2,i.Section,{title:"Personal Crafting",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Button,{icon:p?"check-square-o":"square-o",content:"Compact",selected:p,onClick:function(){return l("toggle_compact")}}),(0,o.createComponentVNode)(2,i.Button,{icon:s?"check-square-o":"square-o",content:"Craftable Only",selected:s,onClick:function(){return l("toggle_recipes")}})],4),children:(0,o.createComponentVNode)(2,i.Tabs,{children:m.map((function(e){return(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:e.category,onClick:function(){return l("set_category",{category:e.category,subcategory:e.firstSubcatName})},children:function(){return!e.hasSubcats&&(0,o.createComponentVNode)(2,c,{craftables:e.subcategory,state:t})||(0,o.createComponentVNode)(2,i.Tabs,{vertical:!0,children:(0,r.map)((function(e,n){if("has_subcats"!==n)return(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:n,onClick:function(){return l("set_category",{subcategory:n})},children:function(){return(0,o.createComponentVNode)(2,c,{craftables:e,state:t})}})}))(e.subcategory)})}},e.category)}))})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.DecalPainter=void 0;var o=n(1),r=n(3),a=n(2);t.DecalPainter=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.decal_list||[],l=i.color_list||[],u=i.dir_list||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Decal Type",children:c.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.name,selected:e.decal===i.decal_style,onClick:function(){return n("select decal",{decals:e.decal})}},e.decal)}))}),(0,o.createComponentVNode)(2,a.Section,{title:"Decal Color",children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:"red"===e.colors?"Red":"white"===e.colors?"White":"Yellow",selected:e.colors===i.decal_color,onClick:function(){return n("select color",{colors:e.colors})}},e.colors)}))}),(0,o.createComponentVNode)(2,a.Section,{title:"Decal Direction",children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:1===e.dirs?"North":2===e.dirs?"South":4===e.dirs?"East":"West",selected:e.dirs===i.decal_direction,onClick:function(){return n("selected direction",{dirs:e.dirs})}},e.dirs)}))})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.DisposalUnit=void 0;var o=n(1),r=n(3),a=n(2);t.DisposalUnit=function(e){var t,n,i=(0,r.useBackend)(e),c=i.act,l=i.data;return l.full_pressure?(t="good",n="Ready"):l.panel_open?(t="bad",n="Power Disabled"):l.pressure_charging?(t="average",n="Pressurizing"):(t="bad",n="Off"),(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"State",color:t,children:n}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:l.per,color:"good"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Handle",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.flush?"toggle-on":"toggle-off",disabled:l.isai||l.panel_open,content:l.flush?"Disengage":"Engage",onClick:function(){return c(l.flush?"handle-0":"handle-1")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Eject",children:(0,o.createComponentVNode)(2,a.Button,{icon:"sign-out-alt",disabled:l.isai,content:"Eject Contents",onClick:function(){return c("eject")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",disabled:l.panel_open,selected:l.pressure_charging,onClick:function(){return c(l.pressure_charging?"pump-0":"pump-1")}})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.DnaVault=void 0;var o=n(1),r=n(3),a=n(2);t.DnaVault=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.completed,l=i.used,u=i.choiceA,d=i.choiceB,s=i.dna,p=i.dna_max,m=i.plants,f=i.plants_max,h=i.animals,C=i.animals_max;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"DNA Vault Database",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Human DNA",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:s/p,content:s+" / "+p+" Samples"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Plant DNA",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:m/f,content:m+" / "+f+" Samples"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Animal DNA",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:h/h,content:h+" / "+C+" Samples"})})]})}),!(!c||l)&&(0,o.createComponentVNode)(2,a.Section,{title:"Personal Gene Therapy",children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",mb:1,children:"Applicable Gene Therapy Treatments"}),(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:u,textAlign:"center",onClick:function(){return n("gene",{choice:u})}})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:d,textAlign:"center",onClick:function(){return n("gene",{choice:d})}})})]})]})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.EightBallVote=void 0;var o=n(1),r=n(3),a=n(2),i=n(23);t.EightBallVote=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data,l=c.question,u=c.shaking,d=c.answers,s=void 0===d?[]:d;return u?(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",fontSize:"16px",m:1,children:['"',l,'"']}),(0,o.createComponentVNode)(2,a.Grid,{children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:(0,i.toTitleCase)(e.answer),selected:e.selected,fontSize:"16px",lineHeight:"24px",textAlign:"center",mb:1,onClick:function(){return n("vote",{answer:e.answer})}}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",fontSize:"30px",children:e.amount})]},e.answer)}))})]}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No question is currently being asked."})}},function(e,t,n){"use strict";t.__esModule=!0,t.EmergencyShuttleConsole=void 0;var o=n(1),r=n(2),a=n(3);t.EmergencyShuttleConsole=function(e){var t=(0,a.useBackend)(e),n=t.act,i=t.data,c=i.timer_str,l=i.enabled,u=i.emagged,d=i.engines_started,s=i.authorizations_remaining,p=i.authorizations,m=void 0===p?[]:p;return(0,o.createComponentVNode)(2,r.Section,{children:[(0,o.createComponentVNode)(2,r.Box,{bold:!0,fontSize:"40px",textAlign:"center",fontFamily:"monospace",children:c}),(0,o.createComponentVNode)(2,r.Box,{textAlign:"center",fontSize:"16px",mb:1,children:[(0,o.createComponentVNode)(2,r.Box,{inline:!0,bold:!0,children:"ENGINES:"}),(0,o.createComponentVNode)(2,r.Box,{inline:!0,color:d?"good":"average",ml:1,children:d?"Online":"Idle"})]}),(0,o.createComponentVNode)(2,r.Section,{title:"Early Launch Authorization",level:2,buttons:(0,o.createComponentVNode)(2,r.Button,{icon:"times",content:"Repeal All",color:"bad",disabled:!l,onClick:function(){return n("abort")}}),children:[(0,o.createComponentVNode)(2,r.Grid,{children:[(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.Button,{fluid:!0,icon:"exclamation-triangle",color:"good",content:"AUTHORIZE",disabled:!l,onClick:function(){return n("authorize")}})}),(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.Button,{fluid:!0,icon:"minus",content:"REPEAL",disabled:!l,onClick:function(){return n("repeal")}})})]}),(0,o.createComponentVNode)(2,r.Section,{title:"Authorizations",level:3,minHeight:"150px",buttons:(0,o.createComponentVNode)(2,r.Box,{inline:!0,bold:!0,color:u?"bad":"good",children:u?"ERROR":"Remaining: "+s}),children:[m.length>0?m.map((function(e){return(0,o.createComponentVNode)(2,r.Box,{bold:!0,fontSize:"16px",className:"candystripe",children:[e.name," (",e.job,")"]},e.name)})):(0,o.createComponentVNode)(2,r.Box,{bold:!0,textAlign:"center",fontSize:"16px",color:"average",children:"No Active Authorizations"}),m.map((function(e){return(0,o.createComponentVNode)(2,r.Box,{bold:!0,fontSize:"16px",className:"candystripe",children:[e.name," (",e.job,")"]},e.name)}))]})]})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.EngravedMessage=void 0;var o=n(1),r=n(23),a=n(3),i=n(2);t.EngravedMessage=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.admin_mode,u=c.creator_key,d=c.creator_name,s=c.has_liked,p=c.has_disliked,m=c.hidden_message,f=c.is_creator,h=c.num_likes,C=c.num_dislikes,g=c.realdate;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{children:[(0,o.createComponentVNode)(2,i.Box,{bold:!0,textAlign:"center",fontSize:"20px",mb:2,children:(0,r.decodeHtmlEntities)(m)}),(0,o.createComponentVNode)(2,i.Grid,{children:[(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.Button,{fluid:!0,icon:"arrow-up",content:" "+h,disabled:f,selected:s,textAlign:"center",fontSize:"16px",lineHeight:"24px",onClick:function(){return n("like")}})}),(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.Button,{fluid:!0,icon:"circle",disabled:f,selected:!p&&!s,textAlign:"center",fontSize:"16px",lineHeight:"24px",onClick:function(){return n("neutral")}})}),(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.Button,{fluid:!0,icon:"arrow-down",content:" "+C,disabled:f,selected:p,textAlign:"center",fontSize:"16px",lineHeight:"24px",onClick:function(){return n("dislike")}})})]})]}),(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Created On",children:g})})}),(0,o.createComponentVNode)(2,i.Section),!!l&&(0,o.createComponentVNode)(2,i.Section,{title:"Admin Panel",buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"times",content:"Delete",color:"bad",onClick:function(){return n("delete")}}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Creator Ckey",children:u}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Creator Character Name",children:d})]})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.Gps=void 0;var o=n(1),r=n(24),a=n(70),i=n(18),c=n(156),l=n(3),u=n(2),d=function(e){return(0,r.map)(parseFloat)(e.split(", "))};t.Gps=function(e){var t=(0,l.useBackend)(e),n=t.act,s=t.data,p=s.currentArea,m=s.currentCoords,f=s.globalmode,h=s.power,C=s.tag,g=s.updating,b=(0,a.flow)([(0,r.map)((function(e,t){var n=e.dist&&Math.round((0,c.vecLength)((0,c.vecSubtract)(d(m),d(e.coords))));return Object.assign({},e,{dist:n,index:t})})),(0,r.sortBy)((function(e){return e.dist===undefined}),(function(e){return e.entrytag}))])(s.signals||[]);return(0,o.createFragment)([(0,o.createComponentVNode)(2,u.Section,{title:"Control",buttons:(0,o.createComponentVNode)(2,u.Button,{icon:"power-off",content:h?"On":"Off",selected:h,onClick:function(){return n("power")}}),children:(0,o.createComponentVNode)(2,u.LabeledList,{children:[(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Tag",children:(0,o.createComponentVNode)(2,u.Button,{icon:"pencil-alt",content:C,onClick:function(){return n("rename")}})}),(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Scan Mode",children:(0,o.createComponentVNode)(2,u.Button,{icon:g?"unlock":"lock",content:g?"AUTO":"MANUAL",color:!g&&"bad",onClick:function(){return n("updating")}})}),(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Range",children:(0,o.createComponentVNode)(2,u.Button,{icon:"sync",content:f?"MAXIMUM":"LOCAL",selected:!f,onClick:function(){return n("globalmode")}})})]})}),!!h&&(0,o.createFragment)([(0,o.createComponentVNode)(2,u.Section,{title:"Current Location",children:(0,o.createComponentVNode)(2,u.Box,{fontSize:"18px",children:[p," (",m,")"]})}),(0,o.createComponentVNode)(2,u.Section,{title:"Detected Signals",children:(0,o.createComponentVNode)(2,u.Table,{children:[(0,o.createComponentVNode)(2,u.Table.Row,{bold:!0,children:[(0,o.createComponentVNode)(2,u.Table.Cell,{content:"Name"}),(0,o.createComponentVNode)(2,u.Table.Cell,{collapsing:!0,content:"Direction"}),(0,o.createComponentVNode)(2,u.Table.Cell,{collapsing:!0,content:"Coordinates"})]}),b.map((function(e){return(0,o.createComponentVNode)(2,u.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,u.Table.Cell,{bold:!0,color:"label",children:e.entrytag}),(0,o.createComponentVNode)(2,u.Table.Cell,{collapsing:!0,opacity:e.dist!==undefined&&(0,i.clamp)(1.2/Math.log(Math.E+e.dist/20),.4,1),children:[e.degrees!==undefined&&(0,o.createComponentVNode)(2,u.Icon,{mr:1,size:1.2,name:"arrow-up",rotation:e.degrees}),e.dist!==undefined&&e.dist+"m"]}),(0,o.createComponentVNode)(2,u.Table.Cell,{collapsing:!0,children:e.coords})]},e.entrytag+e.coords+e.index)}))]})})],4)],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.GravityGenerator=void 0;var o=n(1),r=n(3),a=n(2);t.GravityGenerator=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.breaker,l=i.charge_count,u=i.charging_state,d=i.on,s=i.operational;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{children:!s&&(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"No data available"})||(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Breaker",children:(0,o.createComponentVNode)(2,a.Button,{icon:c?"power-off":"times",content:c?"On":"Off",selected:c,disabled:!s,onClick:function(){return n("gentoggle")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Gravity Charge",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:l/100,ranges:{good:[.7,Infinity],average:[.3,.7],bad:[-Infinity,.3]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge Mode",children:[0===u&&(d&&(0,o.createComponentVNode)(2,a.Box,{color:"good",children:"Fully Charged"})||(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Not Charging"})),1===u&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"Charging"}),2===u&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"Discharging"})]})]})}),s&&0!==u&&(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"WARNING - Radiation detected"}),s&&0===u&&(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"No radiation detected"})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.GulagTeleporterConsole=void 0;var o=n(1),r=n(3),a=n(2);t.GulagTeleporterConsole=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.teleporter,l=i.teleporter_lock,u=i.teleporter_state_open,d=i.teleporter_location,s=i.beacon,p=i.beacon_location,m=i.id,f=i.id_name,h=i.can_teleport,C=i.goal,g=void 0===C?0:C,b=i.prisoner,N=void 0===b?{}:b;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Teleporter Console",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:u?"Open":"Closed",disabled:l,selected:u,onClick:function(){return n("toggle_open")}}),(0,o.createComponentVNode)(2,a.Button,{icon:l?"lock":"unlock",content:l?"Locked":"Unlocked",selected:l,disabled:u,onClick:function(){return n("teleporter_lock")}})],4),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Teleporter Unit",color:c?"good":"bad",buttons:!c&&(0,o.createComponentVNode)(2,a.Button,{content:"Reconnect",onClick:function(){return n("scan_teleporter")}}),children:c?d:"Not Connected"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Receiver Beacon",color:s?"good":"bad",buttons:!s&&(0,o.createComponentVNode)(2,a.Button,{content:"Reconnect",onClick:function(){return n("scan_beacon")}}),children:s?p:"Not Connected"})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Prisoner Details",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Prisoner ID",children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:m?f:"No ID",onClick:function(){return n("handle_id")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Point Goal",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:g,width:"48px",minValue:1,maxValue:1e3,onChange:function(e,t){return n("set_goal",{value:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Occupant",children:N.name?N.name:"No Occupant"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Criminal Status",children:N.crimstat?N.crimstat:"No Status"})]})}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Process Prisoner",disabled:!h,textAlign:"center",color:"bad",onClick:function(){return n("teleport")}})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.GulagItemReclaimer=void 0;var o=n(1),r=n(3),a=n(2);t.GulagItemReclaimer=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.mobs||[];return(0,o.createComponentVNode)(2,a.Section,{title:"Stored Items",children:(0,o.createComponentVNode)(2,a.Table,{children:c.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.name}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"right",children:(0,o.createComponentVNode)(2,a.Button,{content:"Retrieve Items",disabled:!i.can_reclaim,onClick:function(){return n("release_items",{mobref:e.mob})}})})]},e.mob)}))})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Holodeck=void 0;var o=n(1),r=n(3),a=n(2);t.Holodeck=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.can_toggle_safety,l=i.default_programs,u=void 0===l?[]:l,d=i.emag_programs,s=void 0===d?[]:d,p=i.emagged,m=i.program;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Default Programs",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:p?"unlock":"lock",content:"Safeties",color:"bad",disabled:!c,selected:!p,onClick:function(){return n("safety")}}),children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.name.substring(11),textAlign:"center",selected:e.type===m,onClick:function(){return n("load_program",{type:e.type})}},e.type)}))}),!!p&&(0,o.createComponentVNode)(2,a.Section,{title:"Dangerous Programs",children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.name.substring(11),color:"bad",textAlign:"center",selected:e.type===m,onClick:function(){return n("load_program",{type:e.type})}},e.type)}))})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.ImplantChair=void 0;var o=n(1),r=n(3),a=n(2);t.ImplantChair=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Occupant Information",textAlign:"center",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:i.occupant.name?i.occupant.name:"No Occupant"}),!!i.occupied&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:0===i.occupant.stat?"good":1===i.occupant.stat?"average":"bad",children:0===i.occupant.stat?"Conscious":1===i.occupant.stat?"Unconcious":"Dead"})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Operations",textAlign:"center",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door",children:(0,o.createComponentVNode)(2,a.Button,{icon:i.open?"unlock":"lock",color:i.open?"default":"red",content:i.open?"Open":"Closed",onClick:function(){return n("door")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Implant Occupant",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"code-branch",content:i.ready?i.special_name||"Implant":"Recharging",onClick:function(){return n("implant")}}),0===i.ready&&(0,o.createComponentVNode)(2,a.Icon,{name:"cog",color:"orange",spin:!0})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Implants Remaining",children:[i.ready_implants,1===i.replenishing&&(0,o.createComponentVNode)(2,a.Icon,{name:"sync",color:"red",spin:!0})]})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.Intellicard=void 0;var o=n(1),r=n(3),a=n(2);t.Intellicard=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=u||d,l=i.name,u=i.isDead,d=i.isBraindead,s=i.health,p=i.wireless,m=i.radio,f=i.wiping,h=i.laws,C=void 0===h?[]:h;return(0,o.createComponentVNode)(2,a.Section,{title:l||"Empty Card",buttons:!!l&&(0,o.createComponentVNode)(2,a.Button,{icon:"trash",content:f?"Stop Wiping":"Wipe",disabled:u,onClick:function(){return n("wipe")}}),children:!!l&&(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:c?"bad":"good",children:c?"Offline":"Operation"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Software Integrity",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:s,minValue:0,maxValue:100,ranges:{good:[70,Infinity],average:[50,70],bad:[-Infinity,50]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Settings",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"signal",content:"Wireless Activity",selected:p,onClick:function(){return n("wireless")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"microphone",content:"Subspace Radio",selected:m,onClick:function(){return n("radio")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Laws",children:C.map((function(e){return(0,o.createComponentVNode)(2,a.BlockQuote,{children:e},e)}))})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.KeycardAuth=void 0;var o=n(1),r=n(3),a=n(2);t.KeycardAuth=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Box,{children:1===i.waiting&&(0,o.createVNode)(1,"span",null,"Waiting for another device to confirm your request...",16)}),(0,o.createComponentVNode)(2,a.Box,{children:0===i.waiting&&(0,o.createFragment)([!!i.auth_required&&(0,o.createComponentVNode)(2,a.Button,{icon:"check-square",color:"red",textAlign:"center",lineHeight:"60px",fluid:!0,onClick:function(){return n("auth_swipe")},content:"Authorize"}),0===i.auth_required&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"exclamation-triangle",fluid:!0,onClick:function(){return n("red_alert")},content:"Red Alert"}),(0,o.createComponentVNode)(2,a.Button,{icon:"wrench",fluid:!0,onClick:function(){return n("emergency_maint")},content:"Emergency Maintenance Access"}),(0,o.createComponentVNode)(2,a.Button,{icon:"meteor",fluid:!0,onClick:function(){return n("bsa_unlock")},content:"Bluespace Artillery Unlock"})],4)],0)})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.LaborClaimConsole=void 0;var o=n(1),r=n(23),a=n(3),i=n(2);t.LaborClaimConsole=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.can_go_home,u=c.id_points,d=c.ores,s=c.status_info,p=c.unclaimed_points;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Status",children:s}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Shuttle controls",children:(0,o.createComponentVNode)(2,i.Button,{content:"Move shuttle",disabled:!l,onClick:function(){return n("move_shuttle")}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Points",children:u}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Unclaimed points",buttons:(0,o.createComponentVNode)(2,i.Button,{content:"Claim points",disabled:!p,onClick:function(){return n("claim_points")}}),children:p})]})}),(0,o.createComponentVNode)(2,i.Section,{title:"Material values",children:(0,o.createComponentVNode)(2,i.Table,{children:[(0,o.createComponentVNode)(2,i.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:"Material"}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:"Value"})]}),d.map((function(e){return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:(0,r.toTitleCase)(e.ore)}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,i.Box,{color:"label",inline:!0,children:e.value})})]},e.ore)}))]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.LanguageMenu=void 0;var o=n(1),r=n(3),a=n(2);t.LanguageMenu=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.admin_mode,l=i.is_living,u=i.omnitongue,d=i.languages,s=void 0===d?[]:d,p=i.unknown_languages,m=void 0===p?[]:p;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Known Languages",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:s.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,buttons:(0,o.createFragment)([!!l&&(0,o.createComponentVNode)(2,a.Button,{content:e.is_default?"Default Language":"Select as Default",disabled:!e.can_speak,selected:e.is_default,onClick:function(){return n("select_default",{language_name:e.name})}}),!!c&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"Grant",onClick:function(){return n("grant_language",{language_name:e.name})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Remove",onClick:function(){return n("remove_language",{language_name:e.name})}})],4)],0),children:[e.desc," ","Key: ,",e.key," ",e.can_understand?"Can understand.":"Cannot understand."," ",e.can_speak?"Can speak.":"Cannot speak."]},e.name)}))})}),!!c&&(0,o.createComponentVNode)(2,a.Section,{title:"Unknown Languages",buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Omnitongue "+(u?"Enabled":"Disabled"),selected:u,onClick:function(){return n("toggle_omnitongue")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:m.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Grant",onClick:function(){return n("grant_language",{language_name:e.name})}}),children:[e.desc," ","Key: ,",e.key," ",e.can_understand?"Can understand.":"Cannot understand."," ",e.can_speak?"Can speak.":"Cannot speak."]},e.name)}))})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.LaunchpadConsole=t.LaunchpadRemote=t.LaunchpadControl=t.LaunchpadButtonPad=void 0;var o=n(1),r=n(3),a=n(2),i=function(e){var t=(0,r.useBackend)(e).act;return(0,o.createComponentVNode)(2,a.Grid,{width:"1px",children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-left",iconRotation:45,mb:1,onClick:function(){return t("move_pos",{x:-1,y:1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-left",mb:1,onClick:function(){return t("move_pos",{x:-1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-down",iconRotation:45,mb:1,onClick:function(){return t("move_pos",{x:-1,y:-1})}})]}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-up",mb:1,onClick:function(){return t("move_pos",{y:1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"R",mb:1,onClick:function(){return t("set_pos",{x:0,y:0})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-down",mb:1,onClick:function(){return t("move_pos",{y:-1})}})]}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-up",iconRotation:45,mb:1,onClick:function(){return t("move_pos",{x:1,y:1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-right",mb:1,onClick:function(){return t("move_pos",{x:1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-right",iconRotation:45,mb:1,onClick:function(){return t("move_pos",{x:1,y:-1})}})]})]})};t.LaunchpadButtonPad=i;var c=function(e){var t=e.topLevel,n=(0,r.useBackend)(e),c=n.act,l=n.data,u=l.x,d=l.y,s=l.pad_name,p=l.range;return(0,o.createComponentVNode)(2,a.Section,{title:(0,o.createComponentVNode)(2,a.Input,{value:s,width:"170px",onChange:function(e,t){return c("rename",{name:t})}}),level:t?1:2,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Remove",color:"bad",onClick:function(){return c("remove")}}),children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Controls",level:2,children:(0,o.createComponentVNode)(2,i,{state:e.state})})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Target",level:2,children:(0,o.createComponentVNode)(2,a.Box,{fontSize:"26px",children:[(0,o.createComponentVNode)(2,a.Box,{mb:1,children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:"X:"}),(0,o.createComponentVNode)(2,a.NumberInput,{value:u,minValue:-p,maxValue:p,lineHeight:"30px",fontSize:"26px",width:"90px",height:"30px",stepPixelSize:10,onChange:function(e,t){return c("set_pos",{x:t})}})]}),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:"Y:"}),(0,o.createComponentVNode)(2,a.NumberInput,{value:d,minValue:-p,maxValue:p,stepPixelSize:10,lineHeight:"30px",fontSize:"26px",width:"90px",height:"30px",onChange:function(e,t){return c("set_pos",{y:t})}})]})]})})})]}),(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"upload",content:"Launch",textAlign:"center",onClick:function(){return c("launch")}})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"download",content:"Pull",textAlign:"center",onClick:function(){return c("pull")}})})]})]})};t.LaunchpadControl=c;t.LaunchpadRemote=function(e){var t=(0,r.useBackend)(e).data,n=t.has_pad,i=t.pad_closed;return n?i?(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Launchpad Closed"}):(0,o.createComponentVNode)(2,c,{topLevel:!0,state:e.state}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No Launchpad Connected"})};t.LaunchpadConsole=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,l=i.launchpads,u=void 0===l?[]:l,d=i.selected_id;return u.length<=0?(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No Pads Connected"}):(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{size:.6,children:(0,o.createComponentVNode)(2,a.Box,{style:{"border-right":"2px solid rgba(255, 255, 255, 0.1)"},minHeight:"190px",mr:1,children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.name,selected:d===e.id,color:"transparent",onClick:function(){return n("select_pad",{id:e.id})}},e.name)}))})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:d?(0,o.createComponentVNode)(2,c,{state:e.state}):(0,o.createComponentVNode)(2,a.Box,{children:"Please select a pad"})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.MechBayPowerConsole=void 0;var o=n(1),r=n(3),a=n(2);t.MechBayPowerConsole=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data.recharge_port,c=i&&i.mech,l=c&&c.cell;return(0,o.createComponentVNode)(2,a.Section,{title:"Mech status",textAlign:"center",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Sync",onClick:function(){return n("reconnect")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Integrity",children:!i&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No power port detected. Please re-sync."})||!c&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No mech detected."})||(0,o.createComponentVNode)(2,a.ProgressBar,{value:c.health/c.maxhealth,ranges:{good:[.7,Infinity],average:[.3,.7],bad:[-Infinity,.3]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:!i&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No power port detected. Please re-sync."})||!c&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No mech detected."})||!l&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No cell is installed."})||(0,o.createComponentVNode)(2,a.ProgressBar,{value:l.charge/l.maxcharge,ranges:{good:[.7,Infinity],average:[.3,.7],bad:[-Infinity,.3]},children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:l.charge})," / "+l.maxcharge]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NaniteChamberControl=void 0;var o=n(1),r=n(3),a=n(2);t.NaniteChamberControl=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.status_msg,l=i.locked,u=i.occupant_name,d=i.has_nanites,s=i.nanite_volume,p=i.regen_rate,m=i.safety_threshold,f=i.cloud_id,h=i.scan_level;if(c)return(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:c});var C=i.mob_programs||[];return(0,o.createComponentVNode)(2,a.Section,{title:"Chamber: "+u,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:l?"lock":"lock-open",content:l?"Locked":"Unlocked",color:l?"bad":"default",onClick:function(){return n("toggle_lock")}}),children:d?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Status",level:2,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"exclamation-triangle",content:"Destroy Nanites",color:"bad",onClick:function(){return n("remove_nanites")}}),children:(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Nanite Volume",children:s}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Growth Rate",children:p})]})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Safety Threshold",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:m,minValue:0,maxValue:500,width:"39px",onChange:function(e,t){return n("set_safety",{value:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cloud ID",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:f,minValue:0,maxValue:100,step:1,stepPixelSize:3,width:"39px",onChange:function(e,t){return n("set_cloud",{value:t})}})})]})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Programs",level:2,children:C.map((function(e){var t=e.extra_settings||[],n=e.rules||[];return(0,o.createComponentVNode)(2,a.Collapsible,{title:e.name,children:(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:e.desc}),h>=2&&(0,o.createComponentVNode)(2,a.Grid.Column,{size:.6,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Activation Status",children:(0,o.createComponentVNode)(2,a.Box,{color:e.activated?"good":"bad",children:e.activated?"Active":"Inactive"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Nanites Consumed",children:[e.use_rate,"/s"]})]})})]}),h>=2&&(0,o.createComponentVNode)(2,a.Grid,{children:[!!e.can_trigger&&(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Triggers",level:2,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cost",children:e.trigger_cost}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cooldown",children:e.trigger_cooldown}),!!e.timer_trigger_delay&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Delay",children:[e.timer_trigger_delay," s"]}),!!e.timer_trigger&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Repeat Timer",children:[e.timer_trigger," s"]})]})})}),!(!e.timer_restart&&!e.timer_shutdown)&&(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[e.timer_restart&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Restart Timer",children:[e.timer_restart," s"]}),e.timer_shutdown&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Shutdown Timer",children:[e.timer_shutdown," s"]})]})})})]}),h>=3&&!!e.has_extra_settings&&(0,o.createComponentVNode)(2,a.Section,{title:"Extra Settings",level:2,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:t.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,children:e.value},e.name)}))})}),h>=4&&(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Codes",level:2,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[!!e.activation_code&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Activation",children:e.activation_code}),!!e.deactivation_code&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deactivation",children:e.deactivation_code}),!!e.kill_code&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Kill",children:e.kill_code}),!!e.can_trigger&&!!e.trigger_code&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger",children:e.trigger_code})]})})}),e.has_rules&&(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Rules",level:2,children:n.map((function(e){return(0,o.createFragment)([e.display,(0,o.createVNode)(1,"br")],0,e.display)}))})})]})]})},e.name)}))})],4):(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{bold:!0,color:"bad",textAlign:"center",fontSize:"30px",mb:1,children:"No Nanites Detected"}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,icon:"syringe",content:" Implant Nanites",color:"green",textAlign:"center",fontSize:"30px",lineHeight:"50px",onClick:function(){return n("nanite_injection")}})],4)})}},function(e,t,n){"use strict";t.__esModule=!0,t.NaniteCloudControl=t.NaniteCloudBackupDetails=t.NaniteCloudBackupList=t.NaniteInfoBox=t.NaniteDiskBox=void 0;var o=n(1),r=n(3),a=n(2),i=function(e){var t=e.state.data,n=t.has_disk,r=t.has_program,i=t.disk;return n?r?(0,o.createComponentVNode)(2,c,{program:i}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Inserted disk has no program"}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No disk inserted"})};t.NaniteDiskBox=i;var c=function(e){var t=e.program,n=t.name,r=t.desc,i=t.activated,c=t.use_rate,l=t.can_trigger,u=t.trigger_cost,d=t.trigger_cooldown,s=t.activation_code,p=t.deactivation_code,m=t.kill_code,f=t.trigger_code,h=t.timer_restart,C=t.timer_shutdown,g=t.timer_trigger,b=t.timer_trigger_delay,N=t.extra_settings||[];return(0,o.createComponentVNode)(2,a.Section,{title:n,level:2,buttons:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,color:i?"good":"bad",children:i?"Activated":"Deactivated"}),children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{mr:1,children:r}),(0,o.createComponentVNode)(2,a.Grid.Column,{size:.5,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Use Rate",children:c}),!!l&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cost",children:u}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cooldown",children:d})],4)]})})]}),(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Codes",level:3,mr:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Activation",children:s}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deactivation",children:p}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Kill",children:m}),!!l&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger",children:f})]})})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Delays",level:3,mr:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Restart",children:[h," s"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Shutdown",children:[C," s"]}),!!l&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger",children:[g," s"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Delay",children:[b," s"]})],4)]})})})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Extra Settings",level:3,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:N.map((function(e){var t={number:(0,o.createFragment)([e.value,e.unit],0),text:e.value,type:e.value,boolean:e.value?e.true_text:e.false_text};return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,children:t[e.type]},e.name)}))})})]})};t.NaniteInfoBox=c;var l=function(e){var t=(0,r.useBackend)(e),n=t.act;return(t.data.cloud_backups||[]).map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Backup #"+e.cloud_id,textAlign:"center",onClick:function(){return n("set_view",{view:e.cloud_id})}},e.cloud_id)}))};t.NaniteCloudBackupList=l;var u=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,l=i.current_view,u=i.disk,d=i.has_program,s=i.cloud_backup,p=u&&u.can_rule||!1;if(!s)return(0,o.createComponentVNode)(2,a.NoticeBox,{children:"ERROR: Backup not found"});var m=i.cloud_programs||[];return(0,o.createComponentVNode)(2,a.Section,{title:"Backup #"+l,level:2,buttons:!!d&&(0,o.createComponentVNode)(2,a.Button,{icon:"upload",content:"Upload From Disk",color:"good",onClick:function(){return n("upload_program")}}),children:m.map((function(e){var t=e.rules||[];return(0,o.createComponentVNode)(2,a.Collapsible,{title:e.name,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"minus-circle",color:"bad",onClick:function(){return n("remove_program",{program_id:e.id})}}),children:(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,c,{program:e}),!!p&&(0,o.createComponentVNode)(2,a.Section,{mt:-2,title:"Rules",level:2,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"plus",content:"Add Rule from Disk",color:"good",onClick:function(){return n("add_rule",{program_id:e.id})}}),children:e.has_rules?t.map((function(t){return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"minus-circle",color:"bad",onClick:function(){return n("remove_rule",{program_id:e.id,rule_id:t.id})}}),t.display],0,t.display)})):(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"No Active Rules"})})]})},e.name)}))})};t.NaniteCloudBackupDetails=u;t.NaniteCloudControl=function(e){var t=e.state,n=(0,r.useBackend)(e),c=n.act,d=n.data,s=d.has_disk,p=d.current_view,m=d.new_backup_id;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Program Disk",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",disabled:!s,onClick:function(){return c("eject")}}),children:(0,o.createComponentVNode)(2,i,{state:t})}),(0,o.createComponentVNode)(2,a.Section,{title:"Cloud Storage",buttons:p?(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-left",content:"Return",onClick:function(){return c("set_view",{view:0})}}):(0,o.createFragment)(["New Backup: ",(0,o.createComponentVNode)(2,a.NumberInput,{value:m,minValue:1,maxValue:100,stepPixelSize:4,width:"39px",onChange:function(e,t){return c("update_new_backup_value",{value:t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",onClick:function(){return c("create_backup")}})],0),children:d.current_view?(0,o.createComponentVNode)(2,u,{state:t}):(0,o.createComponentVNode)(2,l,{state:t})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.NaniteProgramHub=void 0;var o=n(1),r=n(24),a=n(3),i=n(2);t.NaniteProgramHub=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.detail_view,u=c.disk,d=c.has_disk,s=c.has_program,p=c.programs,m=void 0===p?{}:p;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{title:"Program Disk",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Button,{icon:"eject",content:"Eject",onClick:function(){return n("eject")}}),(0,o.createComponentVNode)(2,i.Button,{icon:"minus-circle",content:"Delete Program",onClick:function(){return n("clear")}})],4),children:d?s?(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Program Name",children:u.name}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Description",children:u.desc})]}):(0,o.createComponentVNode)(2,i.NoticeBox,{children:"No Program Installed"}):(0,o.createComponentVNode)(2,i.NoticeBox,{children:"Insert Disk"})}),(0,o.createComponentVNode)(2,i.Section,{title:"Programs",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Button,{icon:l?"info":"list",content:l?"Detailed":"Compact",onClick:function(){return n("toggle_details")}}),(0,o.createComponentVNode)(2,i.Button,{icon:"sync",content:"Sync Research",onClick:function(){return n("refresh")}})],4),children:null!==m?(0,o.createComponentVNode)(2,i.Tabs,{vertical:!0,children:(0,r.map)((function(e,t){var r=e||[],a=t.substring(0,t.length-8);return(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:a,children:l?r.map((function(e){return(0,o.createComponentVNode)(2,i.Section,{title:e.name,level:2,buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"download",content:"Download",disabled:!d,onClick:function(){return n("download",{program_id:e.id})}}),children:e.desc},e.id)})):(0,o.createComponentVNode)(2,i.LabeledList,{children:r.map((function(e){return(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:e.name,buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"download",content:"Download",disabled:!d,onClick:function(){return n("download",{program_id:e.id})}})},e.id)}))})},t)}))(m)}):(0,o.createComponentVNode)(2,i.NoticeBox,{children:"No nanite programs are currently researched."})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.NaniteProgrammer=t.NaniteExtraBoolean=t.NaniteExtraType=t.NaniteExtraText=t.NaniteExtraNumber=t.NaniteExtraEntry=t.NaniteDelays=t.NaniteCodes=void 0;var o=n(1),r=n(3),a=n(2),i=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{title:"Codes",level:3,mr:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Activation",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.activation_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return n("set_code",{target_code:"activation",code:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deactivation",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.deactivation_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return n("set_code",{target_code:"deactivation",code:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Kill",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.kill_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return n("set_code",{target_code:"kill",code:t})}})}),!!i.can_trigger&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.trigger_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return n("set_code",{target_code:"trigger",code:t})}})})]})})};t.NaniteCodes=i;var c=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{title:"Delays",level:3,ml:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Restart Timer",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.timer_restart,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return n("set_restart_timer",{delay:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Shutdown Timer",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.timer_shutdown,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return n("set_shutdown_timer",{delay:t})}})}),!!i.can_trigger&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Repeat Timer",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.timer_trigger,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return n("set_trigger_timer",{delay:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Delay",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.timer_trigger_delay,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return n("set_timer_trigger_delay",{delay:t})}})})],4)]})})};t.NaniteDelays=c;var l=function(e){var t=e.act,n=e.extra_setting,r=n.name,i=n.type,c={number:(0,o.createComponentVNode)(2,u,{act:t,extra_setting:n}),text:(0,o.createComponentVNode)(2,d,{act:t,extra_setting:n}),type:(0,o.createComponentVNode)(2,s,{act:t,extra_setting:n}),boolean:(0,o.createComponentVNode)(2,p,{act:t,extra_setting:n})};return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:r,children:c[i]})};t.NaniteExtraEntry=l;var u=function(e){var t=e.act,n=e.extra_setting,r=n.name,i=n.value,c=n.min,l=n.max,u=n.unit;return(0,o.createComponentVNode)(2,a.NumberInput,{value:i,width:"64px",minValue:c,maxValue:l,unit:u,onChange:function(e,n){return t("set_extra_setting",{target_setting:r,value:n})}})};t.NaniteExtraNumber=u;var d=function(e){var t=e.act,n=e.extra_setting,r=n.name,i=n.value;return(0,o.createComponentVNode)(2,a.Input,{value:i,width:"200px",onInput:function(e,n){return t("set_extra_setting",{target_setting:r,value:n})}})};t.NaniteExtraText=d;var s=function(e){var t=e.act,n=e.extra_setting,r=n.name,i=n.value,c=n.types;return(0,o.createComponentVNode)(2,a.Dropdown,{over:!0,selected:i,width:"150px",options:c,onSelected:function(e){return t("set_extra_setting",{target_setting:r,value:e})}})};t.NaniteExtraType=s;var p=function(e){var t=e.act,n=e.extra_setting,r=n.name,i=n.value,c=n.true_text,l=n.false_text;return(0,o.createComponentVNode)(2,a.Button.Checkbox,{content:i?c:l,checked:i,onClick:function(){return t("set_extra_setting",{target_setting:r})}})};t.NaniteExtraBoolean=p;t.NaniteProgrammer=function(e){var t=(0,r.useBackend)(e),n=t.act,u=t.data,d=u.has_disk,s=u.has_program,p=u.name,m=u.desc,f=u.use_rate,h=u.can_trigger,C=u.trigger_cost,g=u.trigger_cooldown,b=u.activated,N=u.has_extra_settings,v=u.extra_settings,V=void 0===v?{}:v;return d?s?(0,o.createComponentVNode)(2,a.Section,{title:p,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return n("eject")}}),children:[(0,o.createComponentVNode)(2,a.Section,{title:"Info",level:2,children:(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:m}),(0,o.createComponentVNode)(2,a.Grid.Column,{size:.7,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Use Rate",children:f}),!!h&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cost",children:C}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cooldown",children:g})],4)]})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Settings",level:2,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:b?"power-off":"times",content:b?"Active":"Inactive",selected:b,color:"bad",bold:!0,onClick:function(){return n("toggle_active")}}),children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,i,{state:e.state})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,c,{state:e.state})})]}),!!N&&(0,o.createComponentVNode)(2,a.Section,{title:"Special",level:3,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:V.map((function(e){return(0,o.createComponentVNode)(2,l,{act:n,extra_setting:e},e.name)}))})})]})]}):(0,o.createComponentVNode)(2,a.Section,{title:"Blank Disk",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return n("eject")}})}):(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"Insert a nanite program disk"})}},function(e,t,n){"use strict";t.__esModule=!0,t.NaniteRemote=void 0;var o=n(1),r=n(3),a=n(2);t.NaniteRemote=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.code,l=i.locked,u=i.mode,d=i.program_name,s=i.relay_code,p=i.comms,m=i.message,f=i.saved_settings,h=void 0===f?[]:f;return l?(0,o.createComponentVNode)(2,a.NoticeBox,{children:"This interface is locked."}):(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Nanite Control",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lock",content:"Lock Interface",onClick:function(){return n("lock")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:[(0,o.createComponentVNode)(2,a.Input,{value:d,maxLength:14,width:"130px",onChange:function(e,t){return n("update_name",{name:t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"save",content:"Save",onClick:function(){return n("save")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:p?"Comm Code":"Signal Code",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:c,minValue:0,maxValue:9999,width:"47px",step:1,stepPixelSize:2,onChange:function(e,t){return n("set_code",{code:t})}})}),!!p&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Message",children:(0,o.createComponentVNode)(2,a.Input,{value:m,width:"270px",onChange:function(e,t){return n("set_message",{value:t})}})}),"Relay"===u&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Relay Code",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:s,minValue:0,maxValue:9999,width:"47px",step:1,stepPixelSize:2,onChange:function(e,t){return n("set_relay_code",{code:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Signal Mode",children:["Off","Local","Targeted","Area","Relay"].map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,selected:u===e,onClick:function(){return n("select_mode",{mode:e})}},e)}))})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Saved Settings",children:h.length>0?(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{width:"35%",children:"Name"}),(0,o.createComponentVNode)(2,a.Table.Cell,{width:"20%",children:"Mode"}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:"Code"}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:"Relay"})]}),h.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,color:"label",children:[e.name,":"]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.mode}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.code}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Relay"===e.mode&&e.relay_code}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"right",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"upload",color:"good",onClick:function(){return n("load",{save_id:e.id})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"minus",color:"bad",onClick:function(){return n("remove_save",{save_id:e.id})}})]})]},e.id)}))]}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No settings currently saved"})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.Mule=void 0;var o=n(1),r=n(3),a=n(2),i=n(69);t.Mule=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data,l=c.locked&&!c.siliconUser,u=c.siliconUser,d=c.on,s=c.cell,p=c.cellPercent,m=c.load,f=c.mode,h=c.modeStatus,C=c.haspai,g=c.autoReturn,b=c.autoPickup,N=c.reportDelivery,v=c.destination,V=c.home,y=c.id,_=c.destinations,x=void 0===_?[]:_;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.InterfaceLockNoticeBox,{siliconUser:u,locked:l}),(0,o.createComponentVNode)(2,a.Section,{title:"Status",minHeight:"110px",buttons:!l&&(0,o.createComponentVNode)(2,a.Button,{icon:d?"power-off":"times",content:d?"On":"Off",selected:d,onClick:function(){return n("power")}}),children:[(0,o.createComponentVNode)(2,a.ProgressBar,{value:s?p/100:0,color:s?"good":"bad"}),(0,o.createComponentVNode)(2,a.Grid,{mt:1,children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mode",color:h,children:f})})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Load",color:m?"good":"average",children:m||"None"})})})]})]}),!l&&(0,o.createComponentVNode)(2,a.Section,{title:"Controls",buttons:(0,o.createFragment)([!!m&&(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Unload",onClick:function(){return n("unload")}}),!!C&&(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject PAI",onClick:function(){return n("ejectpai")}})],0),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"ID",children:(0,o.createComponentVNode)(2,a.Input,{value:y,onChange:function(e,t){return n("setid",{value:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Destination",children:[(0,o.createComponentVNode)(2,a.Dropdown,{over:!0,selected:v||"None",options:x,width:"150px",onSelected:function(e){return n("destination",{value:e})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"stop",content:"Stop",onClick:function(){return n("stop")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"play",content:"Go",onClick:function(){return n("go")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Home",children:[(0,o.createComponentVNode)(2,a.Dropdown,{over:!0,selected:V,options:x,width:"150px",onSelected:function(e){return n("destination",{value:e})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"home",content:"Go Home",onClick:function(){return n("home")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Settings",children:[(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:g,content:"Auto-Return",onClick:function(){return n("autored")}}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:b,content:"Auto-Pickup",onClick:function(){return n("autopick")}}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:N,content:"Report Delivery",onClick:function(){return n("report")}})]})]})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.NotificationPreferences=void 0;var o=n(1),r=n(3),a=n(2);t.NotificationPreferences=function(e){var t=(0,r.useBackend)(e),n=t.act,i=(t.data.ignore||[]).sort((function(e,t){var n=e.desc.toLowerCase(),o=t.desc.toLowerCase();return no?1:0}));return(0,o.createComponentVNode)(2,a.Section,{title:"Ghost Role Notifications",children:i.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:e.enabled?"times":"check",content:e.desc,color:e.enabled?"bad":"good",onClick:function(){return n("toggle_ignore",{key:e.key})}},e.key)}))})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtnetRelay=void 0;var o=n(1),r=n(3),a=n(2);t.NtnetRelay=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.enabled,l=i.dos_capacity,u=i.dos_overload,d=i.dos_crashed;return(0,o.createComponentVNode)(2,a.Section,{title:"Network Buffer",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",selected:c,content:c?"ENABLED":"DISABLED",onClick:function(){return n("toggle")}}),children:d?(0,o.createComponentVNode)(2,a.Box,{fontFamily:"monospace",children:[(0,o.createComponentVNode)(2,a.Box,{fontSize:"20px",children:"NETWORK BUFFER OVERFLOW"}),(0,o.createComponentVNode)(2,a.Box,{fontSize:"16px",children:"OVERLOAD RECOVERY MODE"}),(0,o.createComponentVNode)(2,a.Box,{children:"This system is suffering temporary outage due to overflow of traffic buffers. Until buffered traffic is processed, all further requests will be dropped. Frequent occurences of this error may indicate insufficient hardware capacity of your network. Please contact your network planning department for instructions on how to resolve this issue."}),(0,o.createComponentVNode)(2,a.Box,{fontSize:"20px",color:"bad",children:"ADMINISTRATOR OVERRIDE"}),(0,o.createComponentVNode)(2,a.Box,{fontSize:"16px",color:"bad",children:"CAUTION - DATA LOSS MAY OCCUR"}),(0,o.createComponentVNode)(2,a.Button,{icon:"signal",content:"PURGE BUFFER",mt:1,color:"bad",onClick:function(){return n("restart")}})]}):(0,o.createComponentVNode)(2,a.ProgressBar,{value:u,minValue:0,maxValue:l,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:u})," GQ"," / ",l," GQ"]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosArcade=void 0;var o=n(1),r=n(3),a=n(2);t.NtosArcade=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{title:"Outbomb Cuban Pete Ultra",textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{size:2,children:[(0,o.createComponentVNode)(2,a.Box,{m:1}),(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Player Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.PlayerHitpoints,minValue:0,maxValue:30,ranges:{olive:[31,Infinity],good:[20,31],average:[10,20],bad:[-Infinity,10]},children:[i.PlayerHitpoints,"HP"]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Player Magic",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.PlayerMP,minValue:0,maxValue:10,ranges:{purple:[11,Infinity],violet:[3,11],bad:[-Infinity,3]},children:[i.PlayerMP,"MP"]})})]}),(0,o.createComponentVNode)(2,a.Box,{my:1,mx:4}),(0,o.createComponentVNode)(2,a.Section,{backgroundColor:1===i.PauseState?"#1b3622":"#471915",children:i.Status})]}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.Hitpoints/45,minValue:0,maxValue:45,ranges:{good:[30,Infinity],average:[5,30],bad:[-Infinity,5]},children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i.Hitpoints}),"HP"]}),(0,o.createComponentVNode)(2,a.Box,{m:1}),(0,o.createComponentVNode)(2,a.Section,{inline:!0,width:26,textAlign:"center",children:(0,o.createVNode)(1,"img",null,null,1,{src:i.BossID})})]})]}),(0,o.createComponentVNode)(2,a.Box,{my:1,mx:4}),(0,o.createComponentVNode)(2,a.Button,{icon:"fist-raised",tooltip:"Go in for the kill!",tooltipPosition:"top",disabled:0===i.GameActive||1===i.PauseState,onClick:function(){return n("Attack")},content:"Attack!"}),(0,o.createComponentVNode)(2,a.Button,{icon:"band-aid",tooltip:"Heal yourself!",tooltipPosition:"top",disabled:0===i.GameActive||1===i.PauseState,onClick:function(){return n("Heal")},content:"Heal!"}),(0,o.createComponentVNode)(2,a.Button,{icon:"magic",tooltip:"Recharge your magic!",tooltipPosition:"top",disabled:0===i.GameActive||1===i.PauseState,onClick:function(){return n("Recharge_Power")},content:"Recharge!"})]}),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"sync-alt",tooltip:"One more game couldn't hurt.",tooltipPosition:"top",disabled:1===i.GameActive,onClick:function(){return n("Start_Game")},content:"Begin Game"}),(0,o.createComponentVNode)(2,a.Button,{icon:"ticket-alt",tooltip:"Claim at your local Arcade Computer for Prizes!",tooltipPosition:"top",disabled:1===i.GameActive,onClick:function(){return n("Dispense_Tickets")},content:"Claim Tickets"})]}),(0,o.createComponentVNode)(2,a.Box,{color:i.TicketCount>=1?"good":"normal",children:["Earned Tickets: ",i.TicketCount]})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosConfiguration=void 0;var o=n(1),r=n(3),a=n(2);t.NtosConfiguration=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.power_usage,l=i.battery_exists,u=i.battery,d=void 0===u?{}:u,s=i.disk_size,p=i.disk_used,m=i.hardware,f=void 0===m?[]:m;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Power Supply",buttons:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:["Power Draw: ",c,"W"]}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Battery Status",color:!l&&"average",children:l?(0,o.createComponentVNode)(2,a.ProgressBar,{value:d.charge,minValue:0,maxValue:d.max,ranges:{good:[d.max/2,Infinity],average:[d.max/4,d.max/2],bad:[-Infinity,d.max/4]},children:[d.charge," / ",d.max]}):"Not Available"})})}),(0,o.createComponentVNode)(2,a.Section,{title:"File System",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:p,minValue:0,maxValue:s,color:"good",children:[p," GQ / ",s," GQ"]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Hardware Components",children:f.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,level:2,buttons:(0,o.createFragment)([!e.critical&&(0,o.createComponentVNode)(2,a.Button.Checkbox,{content:"Enabled",checked:e.enabled,mr:1,onClick:function(){return n("PC_toggle_component",{name:e.name})}}),(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:["Power Usage: ",e.powerusage,"W"]})],0),children:e.desc},e.name)}))})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosMain=void 0;var o=n(1),r=n(3),a=n(2),i={compconfig:"cog",ntndownloader:"download",filemanager:"folder",smmonitor:"radiation",alarmmonitor:"bell",cardmod:"id-card",arcade:"gamepad",ntnrc_client:"comment-alt",nttransfer:"exchange-alt",powermonitor:"plug"};t.NtosMain=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data,l=c.programs,u=void 0===l?[]:l,d=c.has_light,s=c.light_on,p=c.comp_light_color;return(0,o.createFragment)([!!d&&(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Button,{width:"144px",icon:"lightbulb",selected:s,onClick:function(){return n("PC_toggle_light")},children:["Flashlight: ",s?"ON":"OFF"]}),(0,o.createComponentVNode)(2,a.Button,{ml:1,onClick:function(){return n("PC_light_color")},children:["Color:",(0,o.createComponentVNode)(2,a.ColorBox,{ml:1,color:p})]})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Programs",children:(0,o.createComponentVNode)(2,a.Table,{children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,lineHeight:"24px",color:"transparent",icon:i[e.name]||"window-maximize-o",content:e.desc,onClick:function(){return n("PC_runprogram",{name:e.name})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,width:3,children:!!e.running&&(0,o.createComponentVNode)(2,a.Button,{lineHeight:"24px",color:"transparent",icon:"times",tooltip:"Close program",tooltipPosition:"left",onClick:function(){return n("PC_killprogram",{name:e.name})}})})]},e.name)}))})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosNetChat=void 0;var o=n(1),r=n(3),a=n(2);(0,n(51).createLogger)("ntos chat");t.NtosNetChat=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.can_admin,l=i.adminmode,u=i.authed,d=i.username,s=i.active_channel,p=i.is_operator,m=i.all_channels,f=void 0===m?[]:m,h=i.clients,C=void 0===h?[]:h,g=i.messages,b=void 0===g?[]:g,N=null!==s,v=u||l;return(0,o.createComponentVNode)(2,a.Section,{height:"600px",children:(0,o.createComponentVNode)(2,a.Table,{height:"580px",children:(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{verticalAlign:"top",style:{width:"200px"},children:[(0,o.createComponentVNode)(2,a.Box,{height:"537px",overflowY:"scroll",children:[(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"New Channel...",onCommit:function(e,t){return n("PRG_newchannel",{new_channel_name:t})}}),f.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.chan,selected:e.id===s,color:"transparent",onClick:function(){return n("PRG_joinchannel",{id:e.id})}},e.chan)}))]}),(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,mt:1,content:d+"...",currentValue:d,onCommit:function(e,t){return n("PRG_changename",{new_name:t})}}),!!c&&(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:"ADMIN MODE: "+(l?"ON":"OFF"),color:l?"bad":"good",onClick:function(){return n("PRG_toggleadmin")}})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:[(0,o.createComponentVNode)(2,a.Box,{height:"560px",overflowY:"scroll",children:N&&(v?b.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:e.msg},e.msg)})):(0,o.createComponentVNode)(2,a.Box,{textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"exclamation-triangle",mt:4,fontSize:"40px"}),(0,o.createComponentVNode)(2,a.Box,{mt:1,bold:!0,fontSize:"18px",children:"THIS CHANNEL IS PASSWORD PROTECTED"}),(0,o.createComponentVNode)(2,a.Box,{mt:1,children:"INPUT PASSWORD TO ACCESS"})]}))}),(0,o.createComponentVNode)(2,a.Input,{fluid:!0,selfClear:!0,mt:1,onEnter:function(e,t){return n("PRG_speak",{message:t})}})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{verticalAlign:"top",style:{width:"150px"},children:[(0,o.createComponentVNode)(2,a.Box,{height:"477px",overflowY:"scroll",children:C.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:e.name},e.name)}))}),N&&v&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"Save log...",defaultValue:"new_log",onCommit:function(e,t){return n("PRG_savelog",{log_name:t})}}),(0,o.createComponentVNode)(2,a.Button.Confirm,{fluid:!0,content:"Leave Channel",onClick:function(){return n("PRG_leavechannel")}})],4),!!p&&u&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button.Confirm,{fluid:!0,content:"Delete Channel",onClick:function(){return n("PRG_deletechannel")}}),(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"Rename Channel...",onCommit:function(e,t){return n("PRG_renamechannel",{new_name:t})}}),(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"Set Password...",onCommit:function(e,t){return n("PRG_setpassword",{new_password:t})}})],4)]})]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosNetDownloader=void 0;var o=n(1),r=n(3),a=n(2);t.NtosNetDownloader=function(e){var t=e.state,n=(0,r.useBackend)(e),c=n.act,l=n.data,u=l.disk_size,d=l.disk_used,s=l.downloadable_programs,p=void 0===s?[]:s,m=l.error,f=l.hacked_programs,h=void 0===f?[]:f,C=l.hackedavailable;return(0,o.createFragment)([!!m&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:[(0,o.createComponentVNode)(2,a.Box,{mb:1,children:m}),(0,o.createComponentVNode)(2,a.Button,{content:"Reset",onClick:function(){return c("PRG_reseterror")}})]}),(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Disk usage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:d,minValue:0,maxValue:u,children:d+" GQ / "+u+" GQ"})})})}),(0,o.createComponentVNode)(2,a.Section,{children:p.map((function(e){return(0,o.createComponentVNode)(2,i,{state:t,program:e},e.filename)}))}),!!C&&(0,o.createComponentVNode)(2,a.Section,{title:"UNKNOWN Software Repository",children:[(0,o.createComponentVNode)(2,a.NoticeBox,{mb:1,children:"Please note that Nanotrasen does not recommend download of software from non-official servers."}),h.map((function(e){return(0,o.createComponentVNode)(2,i,{state:t,program:e},e.filename)}))]})],0)};var i=function(e){var t=e.program,n=(0,r.useBackend)(e),i=n.act,c=n.data,l=c.disk_size,u=c.disk_used,d=c.downloadcompletion,s=c.downloading,p=c.downloadname,m=c.downloadsize,f=l-u;return(0,o.createComponentVNode)(2,a.Box,{mb:3,children:[(0,o.createComponentVNode)(2,a.Flex,{align:"baseline",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{bold:!0,grow:1,children:t.filedesc}),(0,o.createComponentVNode)(2,a.Flex.Item,{color:"label",nowrap:!0,children:[t.size," GQ"]}),(0,o.createComponentVNode)(2,a.Flex.Item,{ml:2,width:"94px",textAlign:"center",children:t.filename===p&&(0,o.createComponentVNode)(2,a.ProgressBar,{color:"green",minValue:0,maxValue:m,value:d})||(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"download",content:"Download",disabled:s||t.size>f,onClick:function(){return i("PRG_downloadfile",{filename:t.filename})}})})]}),"Compatible"!==t.compatibility&&(0,o.createComponentVNode)(2,a.Box,{mt:1,italic:!0,fontSize:"12px",position:"relative",children:[(0,o.createComponentVNode)(2,a.Icon,{mx:1,color:"red",name:"times"}),"Incompatible!"]}),t.size>f&&(0,o.createComponentVNode)(2,a.Box,{mt:1,italic:!0,fontSize:"12px",position:"relative",children:[(0,o.createComponentVNode)(2,a.Icon,{mx:1,color:"red",name:"times"}),"Not enough disk space!"]}),(0,o.createComponentVNode)(2,a.Box,{mt:1,italic:!0,color:"label",fontSize:"12px",children:t.fileinfo})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosSupermatterMonitor=void 0;var o=n(1),r=n(24),a=n(70),i=n(18),c=n(3),l=n(2),u=n(37),d=function(e){return Math.log2(16+Math.max(0,e))-4};t.NtosSupermatterMonitor=function(e){var t=e.state,n=(0,c.useBackend)(e),p=n.act,m=n.data,f=m.active,h=m.SM_integrity,C=m.SM_power,g=m.SM_ambienttemp,b=m.SM_ambientpressure;if(!f)return(0,o.createComponentVNode)(2,s,{state:t});var N=(0,a.flow)([function(e){return e.filter((function(e){return e.amount>=.01}))},(0,r.sortBy)((function(e){return-e.amount}))])(m.gases||[]),v=Math.max.apply(Math,[1].concat(N.map((function(e){return e.amount}))));return(0,o.createComponentVNode)(2,l.Flex,{spacing:1,children:[(0,o.createComponentVNode)(2,l.Flex.Item,{width:"270px",children:(0,o.createComponentVNode)(2,l.Section,{title:"Metrics",children:(0,o.createComponentVNode)(2,l.LabeledList,{children:[(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Integrity",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:h/100,ranges:{good:[.9,Infinity],average:[.5,.9],bad:[-Infinity,.5]}})}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Relative EER",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:C,minValue:0,maxValue:5e3,ranges:{good:[-Infinity,5e3],average:[5e3,7e3],bad:[7e3,Infinity]},children:(0,i.toFixed)(C)+" MeV/cm3"})}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Temperature",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:d(g),minValue:0,maxValue:d(1e4),ranges:{teal:[-Infinity,d(80)],good:[d(80),d(373)],average:[d(373),d(1e3)],bad:[d(1e3),Infinity]},children:(0,i.toFixed)(g)+" K"})}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Pressure",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:d(b),minValue:0,maxValue:d(5e4),ranges:{good:[d(1),d(300)],average:[-Infinity,d(1e3)],bad:[d(1e3),+Infinity]},children:(0,i.toFixed)(b)+" kPa"})})]})})}),(0,o.createComponentVNode)(2,l.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,l.Section,{title:"Gases",buttons:(0,o.createComponentVNode)(2,l.Button,{icon:"arrow-left",content:"Back",onClick:function(){return p("PRG_clear")}}),children:(0,o.createComponentVNode)(2,l.Box.Forced,{height:24*N.length+"px",children:(0,o.createComponentVNode)(2,l.LabeledList,{children:N.map((function(e){return(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:(0,u.getGasLabel)(e.name),children:(0,o.createComponentVNode)(2,l.ProgressBar,{color:(0,u.getGasColor)(e.name),value:e.amount,minValue:0,maxValue:v,children:(0,i.toFixed)(e.amount,2)+"%"})},e.name)}))})})})})]})};var s=function(e){var t=(0,c.useBackend)(e),n=t.act,r=t.data.supermatters,a=void 0===r?[]:r;return(0,o.createComponentVNode)(2,l.Section,{title:"Detected Supermatters",buttons:(0,o.createComponentVNode)(2,l.Button,{icon:"sync",content:"Refresh",onClick:function(){return n("PRG_refresh")}}),children:(0,o.createComponentVNode)(2,l.Table,{children:a.map((function(e){return(0,o.createComponentVNode)(2,l.Table.Row,{children:[(0,o.createComponentVNode)(2,l.Table.Cell,{children:e.uid+". "+e.area_name}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,color:"label",children:"Integrity:"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,width:"120px",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:e.integrity/100,ranges:{good:[.9,Infinity],average:[.5,.9],bad:[-Infinity,.5]}})}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,children:(0,o.createComponentVNode)(2,l.Button,{content:"Details",onClick:function(){return n("PRG_set",{target:e.uid})}})})]},e.uid)}))})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosWrapper=void 0;var o=n(1),r=n(3),a=n(2),i=n(116);t.NtosWrapper=function(e){var t=e.children,n=(0,r.useBackend)(e),c=n.act,l=n.data,u=l.PC_batteryicon,d=l.PC_showbatteryicon,s=l.PC_batterypercent,p=l.PC_ntneticon,m=l.PC_apclinkicon,f=l.PC_stationtime,h=l.PC_programheaders,C=void 0===h?[]:h,g=l.PC_showexitprogram;return(0,o.createVNode)(1,"div","NtosWrapper",[(0,o.createVNode)(1,"div","NtosWrapper__header NtosHeader",[(0,o.createVNode)(1,"div","NtosHeader__left",[(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:2,children:f}),(0,o.createComponentVNode)(2,a.Box,{inline:!0,italic:!0,mr:2,opacity:.33,children:"NtOS"})],4),(0,o.createVNode)(1,"div","NtosHeader__right",[C.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{inline:!0,mr:1,children:(0,o.createVNode)(1,"img","NtosHeader__icon",null,1,{src:e.icon})},e.icon)})),(0,o.createComponentVNode)(2,a.Box,{inline:!0,children:p&&(0,o.createVNode)(1,"img","NtosHeader__icon",null,1,{src:p})}),!!d&&u&&(0,o.createComponentVNode)(2,a.Box,{inline:!0,mr:1,children:[u&&(0,o.createVNode)(1,"img","NtosHeader__icon",null,1,{src:u}),s&&s]}),m&&(0,o.createComponentVNode)(2,a.Box,{inline:!0,mr:1,children:(0,o.createVNode)(1,"img","NtosHeader__icon",null,1,{src:m})}),!!g&&(0,o.createComponentVNode)(2,a.Button,{width:"26px",lineHeight:"22px",textAlign:"center",color:"transparent",icon:"window-minimize-o",tooltip:"Minimize",tooltipPosition:"bottom",onClick:function(){return c("PC_minimize")}}),!!g&&(0,o.createComponentVNode)(2,a.Button,{mr:"-3px",width:"26px",lineHeight:"22px",textAlign:"center",color:"transparent",icon:"window-close-o",tooltip:"Close",tooltipPosition:"bottom-left",onClick:function(){return c("PC_exit")}}),!g&&(0,o.createComponentVNode)(2,a.Button,{mr:"-3px",width:"26px",lineHeight:"22px",textAlign:"center",color:"transparent",icon:"power-off",tooltip:"Power off",tooltipPosition:"bottom-left",onClick:function(){return c("PC_shutdown")}})],0)],4,{onMouseDown:function(){(0,i.refocusLayout)()}}),(0,o.createVNode)(1,"div","NtosWrapper__content",t,0)],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.NuclearBomb=void 0;var o=n(1),r=n(12),a=n(3),i=n(2),c=function(e){var t=(0,a.useBackend)(e).act;return(0,o.createComponentVNode)(2,i.Box,{width:"185px",children:(0,o.createComponentVNode)(2,i.Grid,{width:"1px",children:[["1","4","7","C"],["2","5","8","0"],["3","6","9","E"]].map((function(e){return(0,o.createComponentVNode)(2,i.Grid.Column,{children:e.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{fluid:!0,bold:!0,mb:1,content:e,textAlign:"center",fontSize:"40px",lineHeight:"50px",width:"55px",className:(0,r.classes)(["NuclearBomb__Button","NuclearBomb__Button--keypad","NuclearBomb__Button--"+e]),onClick:function(){return t("keypad",{digit:e})}},e)}))},e[0])}))})})};t.NuclearBomb=function(e){var t=e.state,n=(0,a.useBackend)(e),r=n.act,l=n.data,u=(l.anchored,l.disk_present,l.status1),d=l.status2;return(0,o.createComponentVNode)(2,i.Box,{m:1,children:[(0,o.createComponentVNode)(2,i.Box,{mb:1,className:"NuclearBomb__displayBox",children:u}),(0,o.createComponentVNode)(2,i.Flex,{mb:1.5,children:[(0,o.createComponentVNode)(2,i.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,i.Box,{className:"NuclearBomb__displayBox",children:d})}),(0,o.createComponentVNode)(2,i.Flex.Item,{children:(0,o.createComponentVNode)(2,i.Button,{icon:"eject",fontSize:"24px",lineHeight:"23px",textAlign:"center",width:"43px",ml:1,mr:"3px",mt:"3px",className:"NuclearBomb__Button NuclearBomb__Button--keypad",onClick:function(){return r("eject_disk")}})})]}),(0,o.createComponentVNode)(2,i.Flex,{ml:"3px",children:[(0,o.createComponentVNode)(2,i.Flex.Item,{children:(0,o.createComponentVNode)(2,c,{state:t})}),(0,o.createComponentVNode)(2,i.Flex.Item,{ml:1,width:"129px",children:(0,o.createComponentVNode)(2,i.Box,{children:[(0,o.createComponentVNode)(2,i.Button,{fluid:!0,bold:!0,content:"ARM",textAlign:"center",fontSize:"28px",lineHeight:"32px",mb:1,className:"NuclearBomb__Button NuclearBomb__Button--C",onClick:function(){return r("arm")}}),(0,o.createComponentVNode)(2,i.Button,{fluid:!0,bold:!0,content:"ANCHOR",textAlign:"center",fontSize:"28px",lineHeight:"32px",className:"NuclearBomb__Button NuclearBomb__Button--E",onClick:function(){return r("anchor")}}),(0,o.createComponentVNode)(2,i.Box,{textAlign:"center",color:"#9C9987",fontSize:"80px",children:(0,o.createComponentVNode)(2,i.Icon,{name:"radiation"})}),(0,o.createComponentVNode)(2,i.Box,{height:"80px",className:"NuclearBomb__NTIcon"})]})})]})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.OperatingComputer=void 0;var o=n(1),r=n(3),a=n(2);t.OperatingComputer=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.table,l=i.surgeries,u=void 0===l?[]:l,d=i.procedures,s=void 0===d?[]:d,p=i.patient,m=void 0===p?{}:p;return(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{label:"Patient State",children:[!c&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No Table Detected"}),(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Patient State",level:2,children:m?(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"State",color:m.statstate,children:m.stat}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Blood Type",children:m.blood_type}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:m.health,minValue:m.minHealth,maxValue:m.maxHealth,color:m.health>=0?"good":"average",content:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:m.health})})}),[{label:"Brute",type:"bruteLoss"},{label:"Burn",type:"fireLoss"},{label:"Toxin",type:"toxLoss"},{label:"Respiratory",type:"oxyLoss"}].map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.label,children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:m[e.type]/m.maxHealth,color:"bad",content:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:m[e.type]})})},e.type)}))]}):"No Patient Detected"}),(0,o.createComponentVNode)(2,a.Section,{title:"Initiated Procedures",level:2,children:s.length?s.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,level:3,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Next Step",children:[e.next_step,e.chems_needed&&(0,o.createFragment)([(0,o.createVNode)(1,"b",null,"Required Chemicals:",16),(0,o.createVNode)(1,"br"),e.chems_needed],0)]}),!!i.alternative_step&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Alternative Step",children:[e.alternative_step,e.alt_chems_needed&&(0,o.createFragment)([(0,o.createVNode)(1,"b",null,"Required Chemicals:",16),(0,o.createVNode)(1,"br"),e.alt_chems_needed],0)]})]})},e.name)})):"No Active Procedures"})]})]},"state"),(0,o.createComponentVNode)(2,a.Tabs.Tab,{label:"Surgery Procedures",children:(0,o.createComponentVNode)(2,a.Section,{title:"Advanced Surgery Procedures",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"download",content:"Sync Research Database",onClick:function(){return n("sync")}}),u.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,level:2,children:e.desc},e.name)}))]})},"procedures")]})}},function(e,t,n){"use strict";t.__esModule=!0,t.OreBox=void 0;var o=n(1),r=n(23),a=n(16),i=n(2);t.OreBox=function(e){var t=e.state,n=t.config,c=t.data,l=n.ref,u=c.materials;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{title:"Ores",buttons:(0,o.createComponentVNode)(2,i.Button,{content:"Empty",onClick:function(){return(0,a.act)(l,"removeall")}}),children:(0,o.createComponentVNode)(2,i.Table,{children:[(0,o.createComponentVNode)(2,i.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:"Ore"}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:"Amount"})]}),u.map((function(e){return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:(0,r.toTitleCase)(e.name)}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,i.Box,{color:"label",inline:!0,children:e.amount})})]},e.type)}))]})}),(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.Box,{children:["All ores will be placed in here when you are wearing a mining stachel on your belt or in a pocket while dragging the ore box.",(0,o.createVNode)(1,"br"),"Gibtonite is not accepted."]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.OreRedemptionMachine=void 0;var o=n(1),r=n(23),a=n(3),i=n(2);t.OreRedemptionMachine=function(e){var t=(0,a.useBackend)(e),n=t.act,r=t.data,l=r.unclaimedPoints,u=r.materials,d=r.alloys,s=r.diskDesigns,p=r.hasDisk;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{children:[(0,o.createComponentVNode)(2,i.BlockQuote,{mb:1,children:["This machine only accepts ore.",(0,o.createVNode)(1,"br"),"Gibtonite and Slag are not accepted."]}),(0,o.createComponentVNode)(2,i.Box,{children:[(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:"label",mr:1,children:"Unclaimed points:"}),l,(0,o.createComponentVNode)(2,i.Button,{ml:2,content:"Claim",disabled:0===l,onClick:function(){return n("Claim")}})]})]}),(0,o.createComponentVNode)(2,i.Section,{children:p&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Box,{mb:1,children:(0,o.createComponentVNode)(2,i.Button,{icon:"eject",content:"Eject design disk",onClick:function(){return n("diskEject")}})}),(0,o.createComponentVNode)(2,i.Table,{children:s.map((function(e){return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:["File ",e.index,": ",e.name]}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,children:(0,o.createComponentVNode)(2,i.Button,{disabled:!e.canupload,content:"Upload",onClick:function(){return n("diskUpload",{design:e.index})}})})]},e.index)}))})],4)||(0,o.createComponentVNode)(2,i.Button,{icon:"save",content:"Insert design disk",onClick:function(){return n("diskInsert")}})}),(0,o.createComponentVNode)(2,i.Section,{title:"Materials",children:(0,o.createComponentVNode)(2,i.Table,{children:u.map((function(e){return(0,o.createComponentVNode)(2,c,{material:e,onRelease:function(t){return n("Release",{id:e.id,sheets:t})}},e.id)}))})}),(0,o.createComponentVNode)(2,i.Section,{title:"Alloys",children:(0,o.createComponentVNode)(2,i.Table,{children:d.map((function(e){return(0,o.createComponentVNode)(2,c,{material:e,onRelease:function(t){return n("Smelt",{id:e.id,sheets:t})}},e.id)}))})})],4)};var c=function(e){var t,n;function a(){var t;return(t=e.call(this)||this).state={amount:1},t}return n=e,(t=a).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,a.prototype.render=function(){var e=this,t=this.state.amount,n=this.props,a=n.material,c=n.onRelease,l=Math.floor(a.amount);return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:(0,r.toTitleCase)(a.name).replace("Alloy","")}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,i.Box,{mr:2,color:"label",inline:!0,children:a.value&&a.value+" cr"})}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,i.Box,{mr:2,color:"label",inline:!0,children:[l," sheets"]})}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,children:[(0,o.createComponentVNode)(2,i.NumberInput,{width:"32px",step:1,stepPixelSize:5,minValue:1,maxValue:50,value:t,onChange:function(t,n){return e.setState({amount:n})}}),(0,o.createComponentVNode)(2,i.Button,{disabled:l<1,content:"Release",onClick:function(){return c(t)}})]})]})},a}(o.Component)},function(e,t,n){"use strict";t.__esModule=!0,t.Pandemic=t.PandemicAntibodyDisplay=t.PandemicSymptomDisplay=t.PandemicDiseaseDisplay=t.PandemicBeakerDisplay=void 0;var o=n(1),r=n(24),a=n(3),i=n(2),c=function(e){var t=(0,a.useBackend)(e),n=t.act,r=t.data,c=r.has_beaker,l=r.beaker_empty,u=r.has_blood,d=r.blood,s=!c||l;return(0,o.createComponentVNode)(2,i.Section,{title:"Beaker",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Button,{icon:"times",content:"Empty and Eject",color:"bad",disabled:s,onClick:function(){return n("empty_eject_beaker")}}),(0,o.createComponentVNode)(2,i.Button,{icon:"trash",content:"Empty",disabled:s,onClick:function(){return n("empty_beaker")}}),(0,o.createComponentVNode)(2,i.Button,{icon:"eject",content:"Eject",disabled:!c,onClick:function(){return n("eject_beaker")}})],4),children:c?l?(0,o.createComponentVNode)(2,i.Box,{color:"bad",children:"Beaker is empty"}):u?(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Blood DNA",children:d&&d.dna||"Unknown"}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Blood Type",children:d&&d.type||"Unknown"})]}):(0,o.createComponentVNode)(2,i.Box,{color:"bad",children:"No blood detected"}):(0,o.createComponentVNode)(2,i.NoticeBox,{children:"No beaker loaded"})})};t.PandemicBeakerDisplay=c;var l=function(e){var t=(0,a.useBackend)(e),n=t.act,r=t.data,c=r.is_ready;return(r.viruses||[]).map((function(e){var t=e.symptoms||[];return(0,o.createComponentVNode)(2,i.Section,{title:e.can_rename?(0,o.createComponentVNode)(2,i.Input,{value:e.name,onChange:function(t,o){return n("rename_disease",{index:e.index,name:o})}}):e.name,buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"flask",content:"Create culture bottle",disabled:!c,onClick:function(){return n("create_culture_bottle",{index:e.index})}}),children:[(0,o.createComponentVNode)(2,i.Grid,{children:[(0,o.createComponentVNode)(2,i.Grid.Column,{children:e.description}),(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Agent",children:e.agent}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Spread",children:e.spread}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Possible Cure",children:e.cure})]})})]}),!!e.is_adv&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{title:"Statistics",level:2,children:(0,o.createComponentVNode)(2,i.Grid,{children:[(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Resistance",children:e.resistance}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Stealth",children:e.stealth})]})}),(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Stage speed",children:e.stage_speed}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Transmissibility",children:e.transmission})]})})]})}),(0,o.createComponentVNode)(2,i.Section,{title:"Symptoms",level:2,children:t.map((function(e){return(0,o.createComponentVNode)(2,i.Collapsible,{title:e.name,children:(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,u,{symptom:e})})},e.name)}))})],4)]},e.name)}))};t.PandemicDiseaseDisplay=l;var u=function(e){var t=e.symptom,n=t.name,a=t.desc,c=t.stealth,l=t.resistance,u=t.stage_speed,d=t.transmission,s=t.level,p=t.neutered,m=(0,r.map)((function(e,t){return{desc:e,label:t}}))(t.threshold_desc||{});return(0,o.createComponentVNode)(2,i.Section,{title:n,level:2,buttons:!!p&&(0,o.createComponentVNode)(2,i.Box,{bold:!0,color:"bad",children:"Neutered"}),children:[(0,o.createComponentVNode)(2,i.Grid,{children:[(0,o.createComponentVNode)(2,i.Grid.Column,{size:2,children:a}),(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Level",children:s}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Resistance",children:l}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Stealth",children:c}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Stage Speed",children:u}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Transmission",children:d})]})})]}),m.length>0&&(0,o.createComponentVNode)(2,i.Section,{title:"Thresholds",level:3,children:(0,o.createComponentVNode)(2,i.LabeledList,{children:m.map((function(e){return(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:e.label,children:e.desc},e.label)}))})})]})};t.PandemicSymptomDisplay=u;var d=function(e){var t=(0,a.useBackend)(e),n=t.act,r=t.data,c=r.resistances||[];return(0,o.createComponentVNode)(2,i.Section,{title:"Antibodies",children:c.length>0?(0,o.createComponentVNode)(2,i.LabeledList,{children:c.map((function(e){return(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:e.name,children:(0,o.createComponentVNode)(2,i.Button,{icon:"eye-dropper",content:"Create vaccine bottle",disabled:!r.is_ready,onClick:function(){return n("create_vaccine_bottle",{index:e.id})}})},e.name)}))}):(0,o.createComponentVNode)(2,i.Box,{bold:!0,color:"bad",mt:1,children:"No antibodies detected."})})};t.PandemicAntibodyDisplay=d;t.Pandemic=function(e){var t=(0,a.useBackend)(e).data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,c,{state:e.state}),!!t.has_blood&&(0,o.createFragment)([(0,o.createComponentVNode)(2,l,{state:e.state}),(0,o.createComponentVNode)(2,d,{state:e.state})],4)],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.PortableGenerator=void 0;var o=n(1),r=n(3),a=n(2);t.PortableGenerator=function(e){var t,n=(0,r.useBackend)(e),i=n.act,c=n.data;return t=c.stack_percent>50?"good":c.stack_percent>15?"average":"bad",(0,o.createFragment)([!c.anchored&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Generator not anchored."}),(0,o.createComponentVNode)(2,a.Section,{title:"Status",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power switch",children:(0,o.createComponentVNode)(2,a.Button,{icon:c.active?"power-off":"times",onClick:function(){return i("toggle_power")},disabled:!c.ready_to_boot,children:c.active?"On":"Off"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:c.sheet_name+" sheets",children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:t,children:c.sheets}),c.sheets>=1&&(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"eject",disabled:c.active,onClick:function(){return i("eject")},children:"Eject"})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current sheet level",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:c.stack_percent/100,ranges:{good:[.1,Infinity],average:[.01,.1],bad:[-Infinity,.01]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Heat level",children:c.current_heat<100?(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"good",children:"Nominal"}):c.current_heat<200?(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"average",children:"Caution"}):(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"bad",children:"DANGER"})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Output",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current output",children:c.power_output}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Adjust output",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"minus",onClick:function(){return i("lower_power")},children:c.power_generated}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",onClick:function(){return i("higher_power")},children:c.power_generated})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power available",children:(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:!c.connected&&"bad",children:c.connected?c.power_available:"Unconnected"})})]})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.PortableScrubber=t.PortablePump=t.PortableBasicInfo=void 0;var o=n(1),r=n(3),a=n(2),i=n(37),c=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.connected,l=i.holding,u=i.on,d=i.pressure;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Status",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:u?"power-off":"times",content:u?"On":"Off",selected:u,onClick:function(){return n("power")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:d})," kPa"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Port",color:c?"good":"average",children:c?"Connected":"Not Connected"})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Holding Tank",minHeight:"82px",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",disabled:!l,onClick:function(){return n("eject")}}),children:l?(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Label",children:l.name}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:l.pressure})," kPa"]})]}):(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"No holding tank"})})],4)};t.PortableBasicInfo=c;t.PortablePump=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,l=i.direction,u=(i.holding,i.target_pressure),d=i.default_pressure,s=i.min_pressure,p=i.max_pressure;return(0,o.createFragment)([(0,o.createComponentVNode)(2,c,{state:e.state}),(0,o.createComponentVNode)(2,a.Section,{title:"Pump",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:l?"sign-in-alt":"sign-out-alt",content:l?"In":"Out",selected:l,onClick:function(){return n("direction")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Output",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:u,unit:"kPa",width:"75px",minValue:s,maxValue:p,step:10,onChange:function(e,t){return n("pressure",{pressure:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Presets",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"minus",disabled:u===s,onClick:function(){return n("pressure",{pressure:"min"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",disabled:u===d,onClick:function(){return n("pressure",{pressure:"reset"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",disabled:u===p,onClick:function(){return n("pressure",{pressure:"max"})}})]})]})})],4)};t.PortableScrubber=function(e){var t=(0,r.useBackend)(e),n=t.act,l=t.data.filter_types||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,c,{state:e.state}),(0,o.createComponentVNode)(2,a.Section,{title:"Filters",children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:e.enabled?"check-square-o":"square-o",content:(0,i.getGasLabel)(e.gas_id,e.gas_name),selected:e.enabled,onClick:function(){return n("toggle_filter",{val:e.gas_id})}},e.id)}))})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.PowerMonitor=void 0;var o=n(1),r=n(24),a=n(70),i=n(18),c=n(12),l=n(2);var u=5e5,d=function(e){var t=String(e.split(" ")[1]).toLowerCase();return["w","kw","mw","gw"].indexOf(t)},s=function(e){var t,n;function c(){var t;return(t=e.call(this)||this).state={sortByField:null},t}return n=e,(t=c).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,c.prototype.render=function(){var e=this,t=this.props.state.data,n=t.history,c=this.state.sortByField,s=n.supply[n.supply.length-1]||0,f=n.demand[n.demand.length-1]||0,h=n.supply.map((function(e,t){return[t,e]})),C=n.demand.map((function(e,t){return[t,e]})),g=Math.max.apply(Math,[u].concat(n.supply,n.demand)),b=(0,a.flow)([(0,r.map)((function(e,t){return Object.assign({},e,{id:e.name+t})})),"name"===c&&(0,r.sortBy)((function(e){return e.name})),"charge"===c&&(0,r.sortBy)((function(e){return-e.charge})),"draw"===c&&(0,r.sortBy)((function(e){return-d(e.load)}),(function(e){return-parseFloat(e.load)}))])(t.areas);return(0,o.createFragment)([(0,o.createComponentVNode)(2,l.Flex,{spacing:1,children:[(0,o.createComponentVNode)(2,l.Flex.Item,{width:"200px",children:(0,o.createComponentVNode)(2,l.Section,{children:(0,o.createComponentVNode)(2,l.LabeledList,{children:[(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Supply",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:s,minValue:0,maxValue:g,color:"teal",content:(0,i.toFixed)(s/1e3)+" kW"})}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Draw",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:f,minValue:0,maxValue:g,color:"pink",content:(0,i.toFixed)(f/1e3)+" kW"})})]})})}),(0,o.createComponentVNode)(2,l.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,l.Section,{position:"relative",height:"100%",children:[(0,o.createComponentVNode)(2,l.Chart.Line,{fillPositionedParent:!0,data:h,rangeX:[0,h.length-1],rangeY:[0,g],strokeColor:"rgba(0, 181, 173, 1)",fillColor:"rgba(0, 181, 173, 0.25)"}),(0,o.createComponentVNode)(2,l.Chart.Line,{fillPositionedParent:!0,data:C,rangeX:[0,C.length-1],rangeY:[0,g],strokeColor:"rgba(224, 57, 151, 1)",fillColor:"rgba(224, 57, 151, 0.25)"})]})})]}),(0,o.createComponentVNode)(2,l.Section,{children:[(0,o.createComponentVNode)(2,l.Box,{mb:1,children:[(0,o.createComponentVNode)(2,l.Box,{inline:!0,mr:2,color:"label",children:"Sort by:"}),(0,o.createComponentVNode)(2,l.Button.Checkbox,{checked:"name"===c,content:"Name",onClick:function(){return e.setState({sortByField:"name"!==c&&"name"})}}),(0,o.createComponentVNode)(2,l.Button.Checkbox,{checked:"charge"===c,content:"Charge",onClick:function(){return e.setState({sortByField:"charge"!==c&&"charge"})}}),(0,o.createComponentVNode)(2,l.Button.Checkbox,{checked:"draw"===c,content:"Draw",onClick:function(){return e.setState({sortByField:"draw"!==c&&"draw"})}})]}),(0,o.createComponentVNode)(2,l.Table,{children:[(0,o.createComponentVNode)(2,l.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Area"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,children:"Charge"}),(0,o.createComponentVNode)(2,l.Table.Cell,{textAlign:"right",children:"Draw"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,title:"Equipment",children:"Eqp"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,title:"Lighting",children:"Lgt"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,title:"Environment",children:"Env"})]}),b.map((function(e,t){return(0,o.createVNode)(1,"tr","Table__row candystripe",[(0,o.createVNode)(1,"td",null,e.name,0),(0,o.createVNode)(1,"td","Table__cell text-right text-nowrap",(0,o.createComponentVNode)(2,p,{charging:e.charging,charge:e.charge}),2),(0,o.createVNode)(1,"td","Table__cell text-right text-nowrap",e.load,0),(0,o.createVNode)(1,"td","Table__cell text-center text-nowrap",(0,o.createComponentVNode)(2,m,{status:e.eqp}),2),(0,o.createVNode)(1,"td","Table__cell text-center text-nowrap",(0,o.createComponentVNode)(2,m,{status:e.lgt}),2),(0,o.createVNode)(1,"td","Table__cell text-center text-nowrap",(0,o.createComponentVNode)(2,m,{status:e.env}),2)],4,null,e.id)}))]})]})],4)},c}(o.Component);t.PowerMonitor=s;var p=function(e){var t=e.charging,n=e.charge;return(0,o.createFragment)([(0,o.createComponentVNode)(2,l.Icon,{width:"18px",textAlign:"center",name:0===t&&(n>50?"battery-half":"battery-quarter")||1===t&&"bolt"||2===t&&"battery-full",color:0===t&&(n>50?"yellow":"red")||1===t&&"yellow"||2===t&&"green"}),(0,o.createComponentVNode)(2,l.Box,{inline:!0,width:"36px",textAlign:"right",children:(0,i.toFixed)(n)+"%"})],4)};p.defaultHooks=c.pureComponentHooks;var m=function(e){var t=e.status,n=Boolean(2&t),r=Boolean(1&t),a=(n?"On":"Off")+" ["+(r?"auto":"manual")+"]";return(0,o.createComponentVNode)(2,l.ColorBox,{color:n?"good":"bad",content:r?undefined:"M",title:a})};m.defaultHooks=c.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.Radio=void 0;var o=n(1),r=n(24),a=n(18),i=n(3),c=n(2),l=n(37);t.Radio=function(e){var t=(0,i.useBackend)(e),n=t.act,u=t.data,d=u.freqlock,s=u.frequency,p=u.minFrequency,m=u.maxFrequency,f=u.listening,h=u.broadcasting,C=u.command,g=u.useCommand,b=u.subspace,N=u.subspaceSwitchable,v=l.RADIO_CHANNELS.find((function(e){return e.freq===s})),V=(0,r.map)((function(e,t){return{name:t,status:!!e}}))(u.channels);return(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Frequency",children:[d&&(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:"light-gray",children:(0,a.toFixed)(s/10,1)+" kHz"})||(0,o.createComponentVNode)(2,c.NumberInput,{animate:!0,unit:"kHz",step:.2,stepPixelSize:10,minValue:p/10,maxValue:m/10,value:s/10,format:function(e){return(0,a.toFixed)(e,1)},onDrag:function(e,t){return n("frequency",{adjust:t-s/10})}}),v&&(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:v.color,ml:2,children:["[",v.name,"]"]})]}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Audio",children:[(0,o.createComponentVNode)(2,c.Button,{textAlign:"center",width:"37px",icon:f?"volume-up":"volume-mute",selected:f,onClick:function(){return n("listen")}}),(0,o.createComponentVNode)(2,c.Button,{textAlign:"center",width:"37px",icon:h?"microphone":"microphone-slash",selected:h,onClick:function(){return n("broadcast")}}),!!C&&(0,o.createComponentVNode)(2,c.Button,{ml:1,icon:"bullhorn",selected:g,content:"High volume "+(g?"ON":"OFF"),onClick:function(){return n("command")}}),!!N&&(0,o.createComponentVNode)(2,c.Button,{ml:1,icon:"bullhorn",selected:b,content:"Subspace Tx "+(b?"ON":"OFF"),onClick:function(){return n("subspace")}})]}),!!b&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Channels",children:[0===V.length&&(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:"bad",children:"No encryption keys installed."}),V.map((function(e){return(0,o.createComponentVNode)(2,c.Box,{children:(0,o.createComponentVNode)(2,c.Button,{icon:e.status?"check-square-o":"square-o",selected:e.status,content:e.name,onClick:function(){return n("channel",{channel:e.name})}})},e.name)}))]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.RapidPipeDispenser=void 0;var o=n(1),r=n(12),a=n(3),i=n(2),c=["Atmospherics","Disposals","Transit Tubes"],l={Atmospherics:"wrench",Disposals:"trash-alt","Transit Tubes":"bus",Pipes:"grip-lines","Disposal Pipes":"grip-lines",Devices:"microchip","Heat Exchange":"thermometer-half","Station Equipment":"microchip"},u={grey:"#bbbbbb",amethyst:"#a365ff",blue:"#4466ff",brown:"#b26438",cyan:"#48eae8",dark:"#808080",green:"#1edd00",orange:"#ffa030",purple:"#b535ea",red:"#ff3333",violet:"#6e00f6",yellow:"#ffce26"},d=[{name:"Dispense",bitmask:1},{name:"Connect",bitmask:2},{name:"Destroy",bitmask:4},{name:"Paint",bitmask:8}];t.RapidPipeDispenser=function(e){var t=(0,a.useBackend)(e),n=t.act,s=t.data,p=s.category,m=s.categories,f=void 0===m?[]:m,h=s.selected_color,C=s.piping_layer,g=s.mode,b=s.preview_rows.flatMap((function(e){return e.previews}));return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Category",children:c.map((function(e,t){return(0,o.createComponentVNode)(2,i.Button,{selected:p===t,icon:l[e],color:"transparent",content:e,onClick:function(){return n("category",{category:t})}},e)}))}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Modes",children:d.map((function(e){return(0,o.createComponentVNode)(2,i.Button.Checkbox,{checked:g&e.bitmask,content:e.name,onClick:function(){return n("mode",{mode:e.bitmask})}},e.bitmask)}))}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Color",children:[(0,o.createComponentVNode)(2,i.Box,{inline:!0,width:"64px",color:u[h],content:h}),Object.keys(u).map((function(e){return(0,o.createComponentVNode)(2,i.ColorBox,{ml:1,color:u[e],onClick:function(){return n("color",{paint_color:e})}},e)}))]})]})}),(0,o.createComponentVNode)(2,i.Flex,{m:-.5,children:[(0,o.createComponentVNode)(2,i.Flex.Item,{m:.5,children:(0,o.createComponentVNode)(2,i.Section,{children:[0===p&&(0,o.createComponentVNode)(2,i.Box,{mb:1,children:[1,2,3].map((function(e){return(0,o.createComponentVNode)(2,i.Button.Checkbox,{fluid:!0,checked:e===C,content:"Layer "+e,onClick:function(){return n("piping_layer",{piping_layer:e})}},e)}))}),(0,o.createComponentVNode)(2,i.Box,{width:"108px",children:b.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{title:e.dir_name,selected:e.selected,style:{width:"48px",height:"48px",padding:0},onClick:function(){return n("setdir",{dir:e.dir,flipped:e.flipped})},children:(0,o.createComponentVNode)(2,i.Box,{className:(0,r.classes)(["pipes32x32",e.dir+"-"+e.icon_state]),style:{transform:"scale(1.5) translate(17%, 17%)"}})},e.dir)}))})]})}),(0,o.createComponentVNode)(2,i.Flex.Item,{m:.5,grow:1,children:(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.Tabs,{children:f.map((function(e){return(0,o.createComponentVNode)(2,i.Tabs.Tab,{fluid:!0,icon:l[e.cat_name],label:e.cat_name,children:function(){return e.recipes.map((function(t){return(0,o.createComponentVNode)(2,i.Button.Checkbox,{fluid:!0,ellipsis:!0,checked:t.selected,content:t.pipe_name,title:t.pipe_name,onClick:function(){return n("pipe_type",{pipe_type:t.pipe_index,category:e.cat_name})}},t.pipe_index)}))}},e.cat_name)}))})})})]})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.SatelliteControl=void 0;var o=n(1),r=n(3),a=n(2),i=n(163);t.SatelliteControl=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data,l=c.satellites||[];return(0,o.createFragment)([c.meteor_shield&&(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,i.LabeledListItem,{label:"Coverage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:c.meteor_shield_coverage/c.meteor_shield_coverage_max,content:100*c.meteor_shield_coverage/c.meteor_shield_coverage_max+"%",ranges:{good:[1,Infinity],average:[.3,1],bad:[-Infinity,.3]}})})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Satellite Controls",children:(0,o.createComponentVNode)(2,a.Box,{mr:-1,children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:e.active,content:"#"+e.id+" "+e.mode,onClick:function(){return n("toggle",{id:e.id})}},e.id)}))})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.ScannerGate=void 0;var o=n(1),r=n(3),a=n(2),i=n(69),c=["Positive","Harmless","Minor","Medium","Harmful","Dangerous","BIOHAZARD"],l=[{name:"Human",value:"human"},{name:"Lizardperson",value:"lizard"},{name:"Flyperson",value:"fly"},{name:"Felinid",value:"felinid"},{name:"Plasmaman",value:"plasma"},{name:"Mothperson",value:"moth"},{name:"Jellyperson",value:"jelly"},{name:"Podperson",value:"pod"},{name:"Golem",value:"golem"},{name:"Zombie",value:"zombie"}],u=[{name:"Starving",value:150},{name:"Obese",value:600}];t.ScannerGate=function(e){var t=e.state,n=(0,r.useBackend)(e),a=n.act,c=n.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.InterfaceLockNoticeBox,{locked:c.locked,onLockedStatusChange:function(){return a("toggle_lock")}}),!c.locked&&(0,o.createComponentVNode)(2,s,{state:t})],0)};var d={Off:{title:"Scanner Mode: Off",component:function(){return p}},Wanted:{title:"Scanner Mode: Wanted",component:function(){return m}},Guns:{title:"Scanner Mode: Guns",component:function(){return f}},Mindshield:{title:"Scanner Mode: Mindshield",component:function(){return h}},Disease:{title:"Scanner Mode: Disease",component:function(){return C}},Species:{title:"Scanner Mode: Species",component:function(){return g}},Nutrition:{title:"Scanner Mode: Nutrition",component:function(){return b}},Nanites:{title:"Scanner Mode: Nanites",component:function(){return N}}},s=function(e){var t=e.state,n=(0,r.useBackend)(e),i=n.act,c=n.data.scan_mode,l=d[c]||d.off,u=l.component();return(0,o.createComponentVNode)(2,a.Section,{title:l.title,buttons:"Off"!==c&&(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-left",content:"back",onClick:function(){return i("set_mode",{new_mode:"Off"})}}),children:(0,o.createComponentVNode)(2,u,{state:t})})},p=function(e){var t=(0,r.useBackend)(e).act;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:"Select a scanning mode below."}),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{content:"Wanted",onClick:function(){return t("set_mode",{new_mode:"Wanted"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Guns",onClick:function(){return t("set_mode",{new_mode:"Guns"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Mindshield",onClick:function(){return t("set_mode",{new_mode:"Mindshield"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Disease",onClick:function(){return t("set_mode",{new_mode:"Disease"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Species",onClick:function(){return t("set_mode",{new_mode:"Species"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Nutrition",onClick:function(){return t("set_mode",{new_mode:"Nutrition"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Nanites",onClick:function(){return t("set_mode",{new_mode:"Nanites"})}})]})],4)},m=function(e){var t=e.state,n=(0,r.useBackend)(e).data.reverse;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",n?"does not have":"has"," ","any warrants for their arrest."]}),(0,o.createComponentVNode)(2,v,{state:t})],4)},f=function(e){var t=e.state,n=(0,r.useBackend)(e).data.reverse;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",n?"does not have":"has"," ","any guns."]}),(0,o.createComponentVNode)(2,v,{state:t})],4)},h=function(e){var t=e.state,n=(0,r.useBackend)(e).data.reverse;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",n?"does not have":"has"," ","a mindshield."]}),(0,o.createComponentVNode)(2,v,{state:t})],4)},C=function(e){var t=e.state,n=(0,r.useBackend)(e),i=n.act,l=n.data,u=l.reverse,d=l.disease_threshold;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",u?"does not have":"has"," ","a disease equal or worse than ",d,"."]}),(0,o.createComponentVNode)(2,a.Box,{mb:2,children:c.map((function(e){return(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:e===d,content:e,onClick:function(){return i("set_disease_threshold",{new_threshold:e})}},e)}))}),(0,o.createComponentVNode)(2,v,{state:t})],4)},g=function(e){var t=e.state,n=(0,r.useBackend)(e),i=n.act,c=n.data,u=c.reverse,d=c.target_species,s=l.find((function(e){return e.value===d}));return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned is ",u?"not":""," ","of the ",s.name," species.","zombie"===d&&" All zombie types will be detected, including dormant zombies."]}),(0,o.createComponentVNode)(2,a.Box,{mb:2,children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:e.value===d,content:e.name,onClick:function(){return i("set_target_species",{new_species:e.value})}},e.value)}))}),(0,o.createComponentVNode)(2,v,{state:t})],4)},b=function(e){var t=e.state,n=(0,r.useBackend)(e),i=n.act,c=n.data,l=c.reverse,d=c.target_nutrition,s=u.find((function(e){return e.value===d}));return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",l?"does not have":"has"," ","the ",s.name," nutrition level."]}),(0,o.createComponentVNode)(2,a.Box,{mb:2,children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:e.value===d,content:e.name,onClick:function(){return i("set_target_nutrition",{new_nutrition:e.name})}},e.name)}))}),(0,o.createComponentVNode)(2,v,{state:t})],4)},N=function(e){var t=e.state,n=(0,r.useBackend)(e),i=n.act,c=n.data,l=c.reverse,u=c.nanite_cloud;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",l?"does not have":"has"," ","nanite cloud ",u,"."]}),(0,o.createComponentVNode)(2,a.Box,{mb:2,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cloud ID",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:u,width:"65px",minValue:1,maxValue:100,stepPixelSize:2,onChange:function(e,t){return i("set_nanite_cloud",{new_cloud:t})}})})})}),(0,o.createComponentVNode)(2,v,{state:t})],4)},v=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data.reverse;return(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Scanning Mode",children:(0,o.createComponentVNode)(2,a.Button,{content:i?"Inverted":"Default",icon:i?"random":"long-arrow-alt-right",onClick:function(){return n("toggle_reverse")},color:i?"bad":"good"})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ShuttleManipulator=void 0;var o=n(1),r=n(24),a=n(3),i=n(2);t.ShuttleManipulator=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.shuttles||[],u=c.templates||{},d=c.selected||{},s=c.existing_shuttle||{};return(0,o.createComponentVNode)(2,i.Tabs,{children:[(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:"Status",children:function(){return(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.Table,{children:l.map((function(e){return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:(0,o.createComponentVNode)(2,i.Button,{content:"JMP",onClick:function(){return n("jump_to",{type:"mobile",id:e.id})}},e.id)}),(0,o.createComponentVNode)(2,i.Table.Cell,{children:(0,o.createComponentVNode)(2,i.Button,{content:"Fly",disabled:!e.can_fly,onClick:function(){return n("fly",{id:e.id})}},e.id)}),(0,o.createComponentVNode)(2,i.Table.Cell,{children:e.name}),(0,o.createComponentVNode)(2,i.Table.Cell,{children:e.id}),(0,o.createComponentVNode)(2,i.Table.Cell,{children:e.status}),(0,o.createComponentVNode)(2,i.Table.Cell,{children:[e.mode,!!e.timer&&(0,o.createFragment)([(0,o.createTextVNode)("("),e.timeleft,(0,o.createTextVNode)(")"),(0,o.createComponentVNode)(2,i.Button,{content:"Fast Travel",disabled:!e.can_fast_travel,onClick:function(){return n("fast_travel",{id:e.id})}},e.id)],0)]})]},e.id)}))})})}},"status"),(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:"Templates",children:function(){return(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.Tabs,{children:(0,r.map)((function(e,t){var r=e.templates||[];return(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:e.port_id,children:r.map((function(e){var t=e.shuttle_id===d.shuttle_id;return(0,o.createComponentVNode)(2,i.Section,{title:e.name,level:2,buttons:(0,o.createComponentVNode)(2,i.Button,{content:t?"Selected":"Select",selected:t,onClick:function(){return n("select_template",{shuttle_id:e.shuttle_id})}}),children:(!!e.description||!!e.admin_notes)&&(0,o.createComponentVNode)(2,i.LabeledList,{children:[!!e.description&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Description",children:e.description}),!!e.admin_notes&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Admin Notes",children:e.admin_notes})]})},e.shuttle_id)}))},t)}))(u)})})}},"templates"),(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:"Modification",children:(0,o.createComponentVNode)(2,i.Section,{children:d?(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{level:2,title:d.name,children:(!!d.description||!!d.admin_notes)&&(0,o.createComponentVNode)(2,i.LabeledList,{children:[!!d.description&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Description",children:d.description}),!!d.admin_notes&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Admin Notes",children:d.admin_notes})]})}),s?(0,o.createComponentVNode)(2,i.Section,{level:2,title:"Existing Shuttle: "+s.name,children:(0,o.createComponentVNode)(2,i.LabeledList,{children:(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Status",buttons:(0,o.createComponentVNode)(2,i.Button,{content:"Jump To",onClick:function(){return n("jump_to",{type:"mobile",id:s.id})}}),children:[s.status,!!s.timer&&(0,o.createFragment)([(0,o.createTextVNode)("("),s.timeleft,(0,o.createTextVNode)(")")],0)]})})}):(0,o.createComponentVNode)(2,i.Section,{level:2,title:"Existing Shuttle: None"}),(0,o.createComponentVNode)(2,i.Section,{level:2,title:"Status",children:[(0,o.createComponentVNode)(2,i.Button,{content:"Preview",onClick:function(){return n("preview",{shuttle_id:d.shuttle_id})}}),(0,o.createComponentVNode)(2,i.Button,{content:"Load",color:"bad",onClick:function(){return n("load",{shuttle_id:d.shuttle_id})}})]})],0):"No shuttle selected"})},"modification")]})}},function(e,t,n){"use strict";t.__esModule=!0,t.Sleeper=void 0;var o=n(1),r=n(3),a=n(2);t.Sleeper=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.occupied,l=i.open,u=i.occupant,d=void 0===u?[]:u,s=(i.chems||[]).sort((function(e,t){var n=e.name.toLowerCase(),o=t.name.toLowerCase();return no?1:0})),p=(i.synthchems||[]).sort((function(e,t){var n=e.name.toLowerCase(),o=t.name.toLowerCase();return no?1:0}));return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:d.name?d.name:"No Occupant",minHeight:"210px",buttons:!!d.stat&&(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,color:d.statstate,children:d.stat}),children:!!c&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.ProgressBar,{value:d.health,minValue:d.minHealth,maxValue:d.maxHealth,ranges:{good:[50,Infinity],average:[0,50],bad:[-Infinity,0]}}),(0,o.createComponentVNode)(2,a.Box,{mt:1}),(0,o.createComponentVNode)(2,a.LabeledList,{children:[[{label:"Brute",type:"bruteLoss"},{label:"Burn",type:"fireLoss"},{label:"Toxin",type:"toxLoss"},{label:"Oxygen",type:"oxyLoss"}].map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.label,children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:d[e.type],minValue:0,maxValue:d.maxHealth,color:"bad"})},e.type)})),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Blood",children:[(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.blood_levels/100,color:"bad",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i.blood_levels})}),i.blood_status]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cells",color:d.cloneLoss?"bad":"good",children:d.cloneLoss?"Damaged":"Healthy"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Brain",color:d.brainLoss?"bad":"good",children:d.brainLoss?"Abnormal":"Healthy"})]})],4)}),(0,o.createComponentVNode)(2,a.Section,{title:"Chemical Analysis",children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Chemical Contents",children:i.chemical_list.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{color:"good",children:[e.volume," units of ",e.name]},e.id)}))})}),(0,o.createComponentVNode)(2,a.Section,{title:"Inject Chemicals",minHeight:"105px",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:l?"door-open":"door-closed",content:l?"Open":"Closed",onClick:function(){return n("door")}}),children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:"flask",content:e.name,disabled:!(c&&e.allowed),width:"140px",onClick:function(){return n("inject",{chem:e.id})}},e.name)}))}),(0,o.createComponentVNode)(2,a.Section,{title:"Synthesize Chemicals",children:p.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.name,width:"140px",onClick:function(){return n("synth",{chem:e.id})}},e.name)}))}),(0,o.createComponentVNode)(2,a.Section,{title:"Purge Chemicals",children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.name,disabled:!e.allowed,width:"140px",onClick:function(){return n("purge",{chem:e.id})}},e.name)}))})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.SlimeBodySwapper=t.BodyEntry=void 0;var o=n(1),r=n(3),a=n(2),i=function(e){var t=e.body,n=e.swapFunc;return(0,o.createComponentVNode)(2,a.Section,{title:(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:t.htmlcolor,children:t.name}),level:2,buttons:(0,o.createComponentVNode)(2,a.Button,{content:{owner:"You Are Here",stranger:"Occupied",available:"Swap"}[t.occupied],selected:"owner"===t.occupied,color:"stranger"===t.occupied&&"bad",onClick:function(){return n()}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",bold:!0,color:{Dead:"bad",Unconscious:"average",Conscious:"good"}[t.status],children:t.status}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Jelly",children:t.exoticblood}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Location",children:t.area})]})})};t.BodyEntry=i;t.SlimeBodySwapper=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data.bodies,l=void 0===c?[]:c;return(0,o.createComponentVNode)(2,a.Section,{children:l.map((function(e){return(0,o.createComponentVNode)(2,i,{body:e,swapFunc:function(){return n("swap",{ref:e.ref})}},e.name)}))})}},function(e,t,n){"use strict";t.__esModule=!0,t.Signaler=void 0;var o=n(1),r=n(2),a=n(3),i=n(18);t.Signaler=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.code,u=c.frequency,d=c.minFrequency,s=c.maxFrequency;return(0,o.createComponentVNode)(2,r.Section,{children:[(0,o.createComponentVNode)(2,r.Grid,{children:[(0,o.createComponentVNode)(2,r.Grid.Column,{size:1.4,color:"label",children:"Frequency:"}),(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.NumberInput,{animate:!0,unit:"kHz",step:.2,stepPixelSize:6,minValue:d/10,maxValue:s/10,value:u/10,format:function(e){return(0,i.toFixed)(e,1)},width:13,onDrag:function(e,t){return n("freq",{freq:t})}})}),(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.Button,{ml:1.3,icon:"sync",content:"Reset",onClick:function(){return n("reset",{reset:"freq"})}})})]}),(0,o.createComponentVNode)(2,r.Grid,{mt:.6,children:[(0,o.createComponentVNode)(2,r.Grid.Column,{size:1.4,color:"label",children:"Code:"}),(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.NumberInput,{animate:!0,step:1,stepPixelSize:6,minValue:1,maxValue:100,value:l,width:13,onDrag:function(e,t){return n("code",{code:t})}})}),(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.Button,{ml:1.3,icon:"sync",content:"Reset",onClick:function(){return n("reset",{reset:"code"})}})})]}),(0,o.createComponentVNode)(2,r.Grid,{mt:.8,children:(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.Button,{mb:-.1,fluid:!0,icon:"arrow-up",content:"Send Signal",textAlign:"center",onClick:function(){return n("signal")}})})})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.SmartVend=void 0;var o=n(1),r=n(24),a=n(3),i=n(2);t.SmartVend=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data;return(0,o.createComponentVNode)(2,i.Section,{title:"Storage",buttons:!!c.isdryer&&(0,o.createComponentVNode)(2,i.Button,{icon:c.drying?"stop":"tint",onClick:function(){return n("Dry")},children:c.drying?"Stop drying":"Dry"}),children:0===c.contents.length&&(0,o.createComponentVNode)(2,i.NoticeBox,{children:["Unfortunately, this ",c.name," is empty."]})||(0,o.createComponentVNode)(2,i.Table,{children:[(0,o.createComponentVNode)(2,i.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:"Item"}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"center",children:c.verb?c.verb:"Dispense"})]}),(0,r.map)((function(e,t){return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:e.name}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:e.amount}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,children:[(0,o.createComponentVNode)(2,i.Button,{content:"One",disabled:e.amount<1,onClick:function(){return n("Release",{name:e.name,amount:1})}}),(0,o.createComponentVNode)(2,i.Button,{content:"Many",disabled:e.amount<=1,onClick:function(){return n("Release",{name:e.name})}})]})]},t)}))(c.contents)]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Smes=void 0;var o=n(1),r=n(3),a=n(2);t.Smes=function(e){var t,n,i=(0,r.useBackend)(e),c=i.act,l=i.data;return t=l.capacityPercent>=100?"good":l.inputting?"average":"bad",n=l.outputting?"good":l.charge>0?"average":"bad",(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Stored Energy",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:.01*l.capacityPercent,ranges:{good:[.5,Infinity],average:[.15,.5],bad:[-Infinity,.15]}})}),(0,o.createComponentVNode)(2,a.Section,{title:"Input",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge Mode",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:l.inputAttempt?"sync-alt":"times",selected:l.inputAttempt,onClick:function(){return c("tryinput")},children:l.inputAttempt?"Auto":"Off"}),children:(0,o.createComponentVNode)(2,a.Box,{color:t,children:l.capacityPercent>=100?"Fully Charged":l.inputting?"Charging":"Not Charging"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Input",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:l.inputLevel/l.inputLevelMax,content:l.inputLevel_text})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Adjust Input",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",disabled:0===l.inputLevel,onClick:function(){return c("input",{target:"min"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:0===l.inputLevel,onClick:function(){return c("input",{adjust:-1e4})}}),(0,o.createComponentVNode)(2,a.NumberInput,{value:Math.round(l.inputLevel/1e3),unit:"kW",width:"65px",minValue:0,maxValue:l.inputLevelMax/1e3,onChange:function(e,t){return c("input",{target:1e3*t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:l.inputLevel===l.inputLevelMax,onClick:function(){return c("input",{adjust:1e4})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",disabled:l.inputLevel===l.inputLevelMax,onClick:function(){return c("input",{target:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Available",children:l.inputAvailable})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Output",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Output Mode",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:l.outputAttempt?"power-off":"times",selected:l.outputAttempt,onClick:function(){return c("tryoutput")},children:l.outputAttempt?"On":"Off"}),children:(0,o.createComponentVNode)(2,a.Box,{color:n,children:l.outputting?"Sending":l.charge>0?"Not Sending":"No Charge"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Output",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:l.outputLevel/l.outputLevelMax,content:l.outputLevel_text})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Adjust Output",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",disabled:0===l.outputLevel,onClick:function(){return c("output",{target:"min"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:0===l.outputLevel,onClick:function(){return c("output",{adjust:-1e4})}}),(0,o.createComponentVNode)(2,a.NumberInput,{value:Math.round(l.outputLevel/1e3),unit:"kW",width:"65px",minValue:0,maxValue:l.outputLevelMax/1e3,onChange:function(e,t){return c("output",{target:1e3*t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:l.outputLevel===l.outputLevelMax,onClick:function(){return c("output",{adjust:1e4})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",disabled:l.outputLevel===l.outputLevelMax,onClick:function(){return c("output",{target:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Outputting",children:l.outputUsed})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.SmokeMachine=void 0;var o=n(1),r=n(3),a=n(2);t.SmokeMachine=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.TankContents,l=(i.isTankLoaded,i.TankCurrentVolume),u=i.TankMaxVolume,d=i.active,s=i.setting,p=(i.screen,i.maxSetting),m=void 0===p?[]:p;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Dispersal Tank",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d?"power-off":"times",selected:d,content:d?"On":"Off",onClick:function(){return n("power")}}),children:[(0,o.createComponentVNode)(2,a.ProgressBar,{value:l/u,ranges:{bad:[-Infinity,.3]},children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{initial:0,value:l||0})," / "+u]}),(0,o.createComponentVNode)(2,a.Box,{mt:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Range",children:[1,2,3,4,5].map((function(e){return(0,o.createComponentVNode)(2,a.Button,{selected:s===e,icon:"plus",content:3*e,disabled:m0?"good":"bad",children:m})]})}),(0,o.createComponentVNode)(2,a.Grid.Column,{size:1.5,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power output",children:(0,o.createComponentVNode)(2,a.ProgressBar,{ranges:{good:[.66,Infinity],average:[.33,.66],bad:[-Infinity,.33]},minValue:0,maxValue:1,value:l,content:c+" W"})})})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Controls",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Tracking",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Off",selected:0===p,onClick:function(){return n("tracking",{mode:0})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"clock-o",content:"Timed",selected:1===p,onClick:function(){return n("tracking",{mode:1})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Auto",selected:2===p,disabled:!f,onClick:function(){return n("tracking",{mode:2})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Azimuth",children:[(0===p||1===p)&&(0,o.createComponentVNode)(2,a.NumberInput,{width:"52px",unit:"\xb0",step:1,stepPixelSize:2,minValue:-360,maxValue:720,value:u,onDrag:function(e,t){return n("azimuth",{value:t})}}),1===p&&(0,o.createComponentVNode)(2,a.NumberInput,{width:"80px",unit:"\xb0/m",step:.01,stepPixelSize:1,minValue:-s-.01,maxValue:s+.01,value:d,format:function(e){return(Math.sign(e)>0?"+":"-")+Math.abs(e)},onDrag:function(e,t){return n("azimuth_rate",{value:t})}}),2===p&&(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"label",mt:"3px",children:[u+" \xb0"," (auto)"]})]})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.SpaceHeater=void 0;var o=n(1),r=n(3),a=n(2);t.SpaceHeater=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Power",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject Cell",disabled:!i.hasPowercell||!i.open,onClick:function(){return n("eject")}}),(0,o.createComponentVNode)(2,a.Button,{icon:i.on?"power-off":"times",content:i.on?"On":"Off",selected:i.on,disabled:!i.hasPowercell,onClick:function(){return n("power")}})],4),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cell",color:!i.hasPowercell&&"bad",children:i.hasPowercell&&(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.powerLevel/100,content:i.powerLevel+"%",ranges:{good:[.6,Infinity],average:[.3,.6],bad:[-Infinity,.3]}})||"None"})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Thermostat",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Temperature",children:(0,o.createComponentVNode)(2,a.Box,{fontSize:"18px",color:Math.abs(i.targetTemp-i.currentTemp)>50?"bad":Math.abs(i.targetTemp-i.currentTemp)>20?"average":"good",children:[i.currentTemp,"\xb0C"]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Temperature",children:i.open&&(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(i.targetTemp),width:"65px",unit:"\xb0C",minValue:i.minTemp,maxValue:i.maxTemp,onChange:function(e,t){return n("target",{target:t})}})||i.targetTemp+"\xb0C"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mode",children:i.open?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"thermometer-half",content:"Auto",selected:"auto"===i.mode,onClick:function(){return n("mode",{mode:"auto"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fire-alt",content:"Heat",selected:"heat"===i.mode,onClick:function(){return n("mode",{mode:"heat"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fan",content:"Cool",selected:"cool"===i.mode,onClick:function(){return n("mode",{mode:"cool"})}})],4):"Auto"}),(0,o.createComponentVNode)(2,a.LabeledList.Divider)]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.SpawnersMenu=void 0;var o=n(1),r=n(3),a=n(2);t.SpawnersMenu=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data.spawners||[];return(0,o.createComponentVNode)(2,a.Section,{children:i.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name+" ("+e.amount_left+" left)",level:2,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"Jump",onClick:function(){return n("jump",{name:e.name})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Spawn",onClick:function(){return n("spawn",{name:e.name})}})],4),children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,mb:1,fontSize:"20px",children:e.short_desc}),(0,o.createComponentVNode)(2,a.Box,{children:e.flavor_text}),!!e.important_info&&(0,o.createComponentVNode)(2,a.Box,{mt:1,bold:!0,color:"bad",fontSize:"26px",children:e.important_info})]},e.name)}))})}},function(e,t,n){"use strict";t.__esModule=!0,t.StationAlertConsole=void 0;var o=n(1),r=n(3),a=n(2);t.StationAlertConsole=function(e){var t=(0,r.useBackend)(e).data.alarms||[],n=t.Fire||[],i=t.Atmosphere||[],c=t.Power||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Fire Alarms",children:(0,o.createVNode)(1,"ul",null,[0===n.length&&(0,o.createVNode)(1,"li","color-good","Systems Nominal",16),n.map((function(e){return(0,o.createVNode)(1,"li","color-average",e,0,null,e)}))],0)}),(0,o.createComponentVNode)(2,a.Section,{title:"Atmospherics Alarms",children:(0,o.createVNode)(1,"ul",null,[0===i.length&&(0,o.createVNode)(1,"li","color-good","Systems Nominal",16),i.map((function(e){return(0,o.createVNode)(1,"li","color-average",e,0,null,e)}))],0)}),(0,o.createComponentVNode)(2,a.Section,{title:"Power Alarms",children:(0,o.createVNode)(1,"ul",null,[0===c.length&&(0,o.createVNode)(1,"li","color-good","Systems Nominal",16),c.map((function(e){return(0,o.createVNode)(1,"li","color-average",e,0,null,e)}))],0)})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.SuitStorageUnit=void 0;var o=n(1),r=n(3),a=n(2);t.SuitStorageUnit=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.locked,l=i.open,u=i.safeties,d=i.uv_active,s=i.occupied,p=i.suit,m=i.helmet,f=i.mask,h=i.storage;return(0,o.createFragment)([!(!s||!u)&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Biological entity detected in suit chamber. Please remove before continuing with operation."}),d&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Contents are currently being decontaminated. Please wait."})||(0,o.createComponentVNode)(2,a.Section,{title:"Storage",minHeight:"260px",buttons:(0,o.createFragment)([!l&&(0,o.createComponentVNode)(2,a.Button,{icon:c?"unlock":"lock",content:c?"Unlock":"Lock",onClick:function(){return n("lock")}}),!c&&(0,o.createComponentVNode)(2,a.Button,{icon:l?"sign-out-alt":"sign-in-alt",content:l?"Close":"Open",onClick:function(){return n("door")}})],0),children:c&&(0,o.createComponentVNode)(2,a.Box,{mt:6,bold:!0,textAlign:"center",fontSize:"40px",children:[(0,o.createComponentVNode)(2,a.Box,{children:"Unit Locked"}),(0,o.createComponentVNode)(2,a.Icon,{name:"lock"})]})||l&&(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Helmet",children:(0,o.createComponentVNode)(2,a.Button,{icon:m?"square":"square-o",content:m||"Empty",disabled:!m,onClick:function(){return n("dispense",{item:"helmet"})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Suit",children:(0,o.createComponentVNode)(2,a.Button,{icon:p?"square":"square-o",content:p||"Empty",disabled:!p,onClick:function(){return n("dispense",{item:"suit"})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mask",children:(0,o.createComponentVNode)(2,a.Button,{icon:f?"square":"square-o",content:f||"Empty",disabled:!f,onClick:function(){return n("dispense",{item:"mask"})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Storage",children:(0,o.createComponentVNode)(2,a.Button,{icon:h?"square":"square-o",content:h||"Empty",disabled:!h,onClick:function(){return n("dispense",{item:"storage"})}})})]})||(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"recycle",content:"Decontaminate",disabled:s&&u,textAlign:"center",onClick:function(){return n("uv")}})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.Tank=void 0;var o=n(1),r=n(3),a=n(2);t.Tank=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.tankPressure/1013,content:i.tankPressure+" kPa",ranges:{good:[.35,Infinity],average:[.15,.35],bad:[-Infinity,.15]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure Regulator",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",disabled:i.ReleasePressure===i.minReleasePressure,onClick:function(){return n("pressure",{pressure:"min"})}}),(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(i.releasePressure),width:"65px",unit:"kPa",minValue:i.minReleasePressure,maxValue:i.maxReleasePressure,onChange:function(e,t){return n("pressure",{pressure:t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",disabled:i.ReleasePressure===i.maxReleasePressure,onClick:function(){return n("pressure",{pressure:"max"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"undo",content:"",disabled:i.ReleasePressure===i.defaultReleasePressure,onClick:function(){return n("pressure",{pressure:"reset"})}})]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.TankDispenser=void 0;var o=n(1),r=n(3),a=n(2);t.TankDispenser=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Plasma",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.plasma?"square":"square-o",content:"Dispense",disabled:!i.plasma,onClick:function(){return n("plasma")}}),children:i.plasma}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Oxygen",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.oxygen?"square":"square-o",content:"Dispense",disabled:!i.oxygen,onClick:function(){return n("oxygen")}}),children:i.oxygen})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Teleporter=void 0;var o=n(1),r=n(3),a=n(2);t.Teleporter=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.calibrated,l=i.calibrating,u=i.power_station,d=i.regime_set,s=i.teleporter_hub,p=i.target;return(0,o.createComponentVNode)(2,a.Section,{children:!u&&(0,o.createComponentVNode)(2,a.Box,{color:"bad",textAlign:"center",children:"No power station linked."})||!s&&(0,o.createComponentVNode)(2,a.Box,{color:"bad",textAlign:"center",children:"No hub linked."})||(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Regime",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"tools",content:"Change Regime",onClick:function(){return n("regimeset")}}),children:d}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Target",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"tools",content:"Set Target",onClick:function(){return n("settarget")}}),children:p}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Calibration",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"tools",content:"Calibrate Hub",onClick:function(){return n("calibrate")}}),children:l&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"In Progress"})||c&&(0,o.createComponentVNode)(2,a.Box,{color:"good",children:"Optimal"})||(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Sub-Optimal"})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ThermoMachine=void 0;var o=n(1),r=n(18),a=n(3),i=n(2);t.ThermoMachine=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{title:"Status",children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Temperature",children:[(0,o.createComponentVNode)(2,i.AnimatedNumber,{value:c.temperature,format:function(e){return(0,r.toFixed)(e,2)}})," K"]}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Pressure",children:[(0,o.createComponentVNode)(2,i.AnimatedNumber,{value:c.pressure,format:function(e){return(0,r.toFixed)(e,2)}})," kPa"]})]})}),(0,o.createComponentVNode)(2,i.Section,{title:"Controls",buttons:(0,o.createComponentVNode)(2,i.Button,{icon:c.on?"power-off":"times",content:c.on?"On":"Off",selected:c.on,onClick:function(){return n("power")}}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Target Temperature",children:(0,o.createComponentVNode)(2,i.NumberInput,{animated:!0,value:Math.round(c.target),unit:"K",width:"62px",minValue:Math.round(c.min),maxValue:Math.round(c.max),step:5,stepPixelSize:3,onDrag:function(e,t){return n("target",{target:t})}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Presets",children:[(0,o.createComponentVNode)(2,i.Button,{icon:"fast-backward",disabled:c.target===c.min,title:"Minimum temperature",onClick:function(){return n("target",{target:c.min})}}),(0,o.createComponentVNode)(2,i.Button,{icon:"sync",disabled:c.target===c.initial,title:"Room Temperature",onClick:function(){return n("target",{target:c.initial})}}),(0,o.createComponentVNode)(2,i.Button,{icon:"fast-forward",disabled:c.target===c.max,title:"Maximum Temperature",onClick:function(){return n("target",{target:c.max})}})]})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.TurbineComputer=void 0;var o=n(1),r=n(3),a=n(2);t.TurbineComputer=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=Boolean(i.compressor&&!i.compressor_broke&&i.turbine&&!i.turbine_broke);return(0,o.createComponentVNode)(2,a.Section,{title:"Status",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:i.online?"power-off":"times",content:i.online?"Online":"Offline",selected:i.online,disabled:!c,onClick:function(){return n("toggle_power")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Reconnect",onClick:function(){return n("reconnect")}})],4),children:!c&&(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Compressor Status",color:!i.compressor||i.compressor_broke?"bad":"good",children:i.compressor_broke?i.compressor?"Offline":"Missing":"Online"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Turbine Status",color:!i.turbine||i.turbine_broke?"bad":"good",children:i.turbine_broke?i.turbine?"Offline":"Missing":"Online"})]})||(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Turbine Speed",children:[i.rpm," RPM"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Internal Temp",children:[i.temp," K"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Generated Power",children:i.power})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Uplink=void 0;var o=n(1),r=n(23),a=n(16),i=n(2);var c=function(e){var t,n;function r(){var t;return(t=e.call(this)||this).state={hoveredItem:{},currentSearch:""},t}n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var c=r.prototype;return c.setHoveredItem=function(e){this.setState({hoveredItem:e})},c.setSearchText=function(e){this.setState({currentSearch:e})},c.render=function(){var e=this,t=this.props.state,n=t.config,r=t.data,c=n.ref,u=r.compact_mode,d=r.lockable,s=r.telecrystals,p=r.categories,m=void 0===p?[]:p,f=this.state,h=f.hoveredItem,C=f.currentSearch;return(0,o.createComponentVNode)(2,i.Section,{title:(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:s>0?"good":"bad",children:[s," TC"]}),buttons:(0,o.createFragment)([(0,o.createTextVNode)("Search"),(0,o.createComponentVNode)(2,i.Input,{value:C,onInput:function(t,n){return e.setSearchText(n)},ml:1,mr:1}),(0,o.createComponentVNode)(2,i.Button,{icon:u?"list":"info",content:u?"Compact":"Detailed",onClick:function(){return(0,a.act)(c,"compact_toggle")}}),!!d&&(0,o.createComponentVNode)(2,i.Button,{icon:"lock",content:"Lock",onClick:function(){return(0,a.act)(c,"lock")}})],0),children:C.length>0?(0,o.createVNode)(1,"table","Table",(0,o.createComponentVNode)(2,l,{compact:!0,items:m.flatMap((function(e){return e.items||[]})).filter((function(e){var t=C.toLowerCase();return String(e.name+e.desc).toLowerCase().includes(t)})),hoveredItem:h,onBuyMouseOver:function(t){return e.setHoveredItem(t)},onBuyMouseOut:function(t){return e.setHoveredItem({})},onBuy:function(e){return(0,a.act)(c,"buy",{item:e.name})}}),2):(0,o.createComponentVNode)(2,i.Tabs,{vertical:!0,children:m.map((function(t){var n=t.name,r=t.items;if(null!==r)return(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:n+" ("+r.length+")",children:function(){return(0,o.createComponentVNode)(2,l,{compact:u,items:r,hoveredItem:h,telecrystals:s,onBuyMouseOver:function(t){return e.setHoveredItem(t)},onBuyMouseOut:function(t){return e.setHoveredItem({})},onBuy:function(e){return(0,a.act)(c,"buy",{item:e.name})}})}},n)}))})})},r}(o.Component);t.Uplink=c;var l=function(e){var t=e.items,n=e.hoveredItem,a=e.telecrystals,c=e.compact,l=e.onBuy,u=e.onBuyMouseOver,d=e.onBuyMouseOut,s=n&&n.cost||0;return c?(0,o.createComponentVNode)(2,i.Table,{children:t.map((function(e){var t=n&&n.name!==e.name,c=a-sl.user.cash),content:l.onstation&&0!==e.price?Math.round(e.price*l.cost_mult)+t:"FREE",onClick:function(){return(0,r.act)(u,"vend",{ref:e.ref})}})})]},e.name)}))})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.Wires=void 0;var o=n(1),r=n(3),a=n(2);t.Wires=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.wires||[],l=i.status||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:c.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{className:"candystripe",label:e.color,labelColor:e.color,color:e.color,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:e.cut?"Mend":"Cut",onClick:function(){return n("cut",{wire:e.color})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Pulse",onClick:function(){return n("pulse",{wire:e.color})}}),(0,o.createComponentVNode)(2,a.Button,{content:e.attached?"Detach":"Attach",onClick:function(){return n("attach",{wire:e.color})}})],4),children:!!e.wire&&(0,o.createVNode)(1,"i",null,[(0,o.createTextVNode)("("),e.wire,(0,o.createTextVNode)(")")],0)},e.color)}))})}),!!l.length&&(0,o.createComponentVNode)(2,a.Section,{children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:e},e)}))})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosRelief=void 0;var o=n(1),r=n(3),a=n(2);t.AtmosRelief=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Open Pressure",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(i.open_pressure),unit:"kPa",width:"75px",minValue:0,maxValue:4500,step:10,onChange:function(e,t){return n("open_pressure",{open_pressure:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:i.open_pressure===i.max_pressure,onClick:function(){return n("open_pressure",{open_pressure:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Close Pressure",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(i.close_pressure),unit:"kPa",width:"75px",minValue:0,maxValue:i.open_pressure,step:10,onChange:function(e,t){return n("close_pressure",{close_pressure:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:i.close_pressure===i.open_pressure,onClick:function(){return n("close_pressure",{close_pressure:"max"})}})]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.createStore=void 0;var o=n(70),r=n(508),a=n(3),i=n(117),c=n(115);(0,n(51).createLogger)("store");t.createStore=function(){var e=(0,o.flow)([function(e,t){return void 0===e&&(e={}),e},a.backendReducer,i.toastReducer,c.hotKeyReducer]),t=[c.hotKeyMiddleware];return(0,r.createStore)(e,r.applyMiddleware.apply(void 0,t))}},function(e,t,n){"use strict";t.__esModule=!0,t.applyMiddleware=t.createStore=void 0;var o=n(70);t.createStore=function r(e,t){if(t)return t(r)(e);var n,o=[],a=function(t){n=e(n,t),o.forEach((function(e){return e()}))};return a({type:"@@INIT"}),{dispatch:a,subscribe:function(e){o.push(e)},getState:function(){return n}}};t.applyMiddleware=function(){for(var e=arguments.length,t=new Array(e),n=0;n1?r-1:0),i=1;i1?t-1:0),o=1;o0?"good":"bad",content:i>0?"Earned "+i+" times":"Locked"})],0,{style:{"vertical-align":"top"}})],4,null,t)};t.Score=c;t.Achievements=function(e){var t=(0,r.useBackend)(e).data;return(0,o.createComponentVNode)(2,a.Tabs,{children:[t.categories.map((function(e){return(0,o.createComponentVNode)(2,a.Tabs.Tab,{label:e,children:(0,o.createComponentVNode)(2,a.Box,{as:"Table",children:t.achievements.filter((function(t){return t.category===e})).map((function(e){return e.score?(0,o.createComponentVNode)(2,c,{name:e.name,desc:e.desc,icon_class:e.icon_class,value:e.value},e.name):(0,o.createComponentVNode)(2,i,{name:e.name,desc:e.desc,icon_class:e.icon_class,value:e.value},e.name)}))})},e)})),(0,o.createComponentVNode)(2,a.Tabs.Tab,{label:"High Scores",children:(0,o.createComponentVNode)(2,a.Tabs,{vertical:!0,children:t.highscore.map((function(e){return(0,o.createComponentVNode)(2,a.Tabs.Tab,{label:e.name,children:(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,a.Table.Cell,{color:"label",textAlign:"center",children:"#"}),(0,o.createComponentVNode)(2,a.Table.Cell,{color:"label",textAlign:"center",children:"Key"}),(0,o.createComponentVNode)(2,a.Table.Cell,{color:"label",textAlign:"center",children:"Score"})]}),Object.keys(e.scores).map((function(n,r){return(0,o.createComponentVNode)(2,a.Table.Row,{className:"candystripe",m:2,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{color:"label",textAlign:"center",children:r+1}),(0,o.createComponentVNode)(2,a.Table.Cell,{color:n===t.user_ckey&&"green",textAlign:"center",children:[0===r&&(0,o.createComponentVNode)(2,a.Icon,{name:"crown",color:"gold",mr:2}),n,0===r&&(0,o.createComponentVNode)(2,a.Icon,{name:"crown",color:"gold",ml:2})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:e.scores[n]})]},n)}))]})},e.name)}))})})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.BlockQuote=void 0;var o=n(1),r=n(12),a=n(19);t.BlockQuote=function(e){var t=e.className,n=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["className"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({className:(0,r.classes)(["BlockQuote",t])},n)))}},function(e,t,n){"use strict";var o,r;t.__esModule=!0,t.VNodeFlags=t.ChildFlags=void 0,t.VNodeFlags=o,function(e){e[e.HtmlElement=1]="HtmlElement",e[e.ComponentUnknown=2]="ComponentUnknown",e[e.ComponentClass=4]="ComponentClass",e[e.ComponentFunction=8]="ComponentFunction",e[e.Text=16]="Text",e[e.SvgElement=32]="SvgElement",e[e.InputElement=64]="InputElement",e[e.TextareaElement=128]="TextareaElement",e[e.SelectElement=256]="SelectElement",e[e.Void=512]="Void",e[e.Portal=1024]="Portal",e[e.ReCreate=2048]="ReCreate",e[e.ContentEditable=4096]="ContentEditable",e[e.Fragment=8192]="Fragment",e[e.InUse=16384]="InUse",e[e.ForwardRef=32768]="ForwardRef",e[e.Normalized=65536]="Normalized",e[e.ForwardRefComponent=32776]="ForwardRefComponent",e[e.FormElement=448]="FormElement",e[e.Element=481]="Element",e[e.Component=14]="Component",e[e.DOMRef=2033]="DOMRef",e[e.InUseOrNormalized=81920]="InUseOrNormalized",e[e.ClearInUse=-16385]="ClearInUse",e[e.ComponentKnown=12]="ComponentKnown"}(o||(t.VNodeFlags=o={})),t.ChildFlags=r,function(e){e[e.UnknownChildren=0]="UnknownChildren",e[e.HasInvalidChildren=1]="HasInvalidChildren",e[e.HasVNodeChildren=2]="HasVNodeChildren",e[e.HasNonKeyedChildren=4]="HasNonKeyedChildren",e[e.HasKeyedChildren=8]="HasKeyedChildren",e[e.HasTextChildren=16]="HasTextChildren",e[e.MultipleChildren=12]="MultipleChildren"}(r||(t.ChildFlags=r={}))},function(e,t,n){"use strict";t.__esModule=!0,t.ColorBox=void 0;var o=n(1),r=n(12),a=n(19);var i=function(e){var t=e.color,n=e.content,i=e.className,c=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["color","content","className"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({className:(0,r.classes)(["ColorBox",i]),color:n?null:"transparent",backgroundColor:t,content:n||"."},c)))};t.ColorBox=i,i.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.Collapsible=void 0;var o=n(1),r=n(19),a=n(114);var i=function(e){var t,n;function i(t){var n;n=e.call(this,t)||this;var o=t.open;return n.state={open:o||!1},n}return n=e,(t=i).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,i.prototype.render=function(){var e=this,t=this.props,n=this.state.open,i=t.children,c=t.color,l=void 0===c?"default":c,u=t.title,d=t.buttons,s=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(t,["children","color","title","buttons"]);return(0,o.createComponentVNode)(2,r.Box,{mb:1,children:[(0,o.createVNode)(1,"div","Table",[(0,o.createVNode)(1,"div","Table__cell",(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Button,Object.assign({fluid:!0,color:l,icon:n?"chevron-down":"chevron-right",onClick:function(){return e.setState({open:!n})}},s,{children:u}))),2),d&&(0,o.createVNode)(1,"div","Table__cell Table__cell--collapsing",d,0)],0),n&&(0,o.createComponentVNode)(2,r.Box,{mt:1,children:i})]})},i}(o.Component);t.Collapsible=i},function(e,t,n){"use strict";t.__esModule=!0,t.Dimmer=void 0;var o=n(1),r=n(19);t.Dimmer=function(e){var t=e.style,n=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["style"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,r.Box,Object.assign({style:Object.assign({position:"absolute",top:0,bottom:0,left:0,right:0,"background-color":"rgba(0, 0, 0, 0.75)","z-index":1},t)},n)))}},function(e,t,n){"use strict";t.__esModule=!0,t.Dropdown=void 0;var o=n(1),r=n(12),a=n(19),i=n(87);function c(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var l=function(e){var t,n;function l(t){var n;return(n=e.call(this,t)||this).state={selected:t.selected,open:!1},n.handleClick=function(){n.state.open&&n.setOpen(!1)},n}n=e,(t=l).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var u=l.prototype;return u.componentWillUnmount=function(){window.removeEventListener("click",this.handleClick)},u.setOpen=function(e){var t=this;this.setState({open:e}),e?(setTimeout((function(){return window.addEventListener("click",t.handleClick)})),this.menuRef.focus()):window.removeEventListener("click",this.handleClick)},u.setSelected=function(e){this.setState({selected:e}),this.setOpen(!1),this.props.onSelected(e)},u.buildMenu=function(){var e=this,t=this.props.options,n=(void 0===t?[]:t).map((function(t){return(0,o.createVNode)(1,"div","Dropdown__menuentry",t,0,{onClick:function(n){e.setSelected(t)}},t)}));return n.length?n:"No Options Found"},u.render=function(){var e=this,t=this.props,n=t.color,l=void 0===n?"default":n,u=t.over,d=t.width,s=(t.onClick,t.selected,c(t,["color","over","width","onClick","selected"])),p=s.className,m=c(s,["className"]),f=u?!this.state.open:this.state.open,h=this.state.open?(0,o.createVNode)(1,"div",(0,r.classes)(["Dropdown__menu",u&&"Dropdown__over"]),this.buildMenu(),0,{tabIndex:"-1",style:{width:d}},null,(function(t){e.menuRef=t})):null;return(0,o.createVNode)(1,"div","Dropdown",[(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({width:d,className:(0,r.classes)(["Dropdown__control","Button","Button--color--"+l,p])},m,{onClick:function(t){e.setOpen(!e.state.open)},children:[(0,o.createVNode)(1,"span","Dropdown__selected-text",this.state.selected,0),(0,o.createVNode)(1,"span","Dropdown__arrow-button",(0,o.createComponentVNode)(2,i.Icon,{name:f?"chevron-up":"chevron-down"}),2)]}))),h],0)},l}(o.Component);t.Dropdown=l},function(e,t,n){"use strict";t.__esModule=!0,t.FlexItem=t.computeFlexItemProps=t.Flex=t.computeFlexProps=void 0;var o=n(1),r=n(12),a=n(19);function i(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var c=function(e){var t=e.className,n=e.direction,o=e.wrap,a=e.align,c=e.justify,l=e.spacing,u=void 0===l?0:l,d=i(e,["className","direction","wrap","align","justify","spacing"]);return Object.assign({className:(0,r.classes)(["Flex",u>0&&"Flex--spacing--"+u,t]),style:Object.assign({},d.style,{"flex-direction":n,"flex-wrap":o,"align-items":a,"justify-content":c})},d)};t.computeFlexProps=c;var l=function(e){return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({},c(e))))};t.Flex=l,l.defaultHooks=r.pureComponentHooks;var u=function(e){var t=e.className,n=e.grow,o=e.order,a=e.align,c=i(e,["className","grow","order","align"]);return Object.assign({className:(0,r.classes)(["Flex__item",t]),style:Object.assign({},c.style,{"flex-grow":n,order:o,"align-self":a})},c)};t.computeFlexItemProps=u;var d=function(e){return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({},u(e))))};t.FlexItem=d,d.defaultHooks=r.pureComponentHooks,l.Item=d},function(e,t,n){"use strict";t.__esModule=!0,t.NoticeBox=void 0;var o=n(1),r=n(12),a=n(19);var i=function(e){var t=e.className,n=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["className"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({className:(0,r.classes)(["NoticeBox",t])},n)))};t.NoticeBox=i,i.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.NumberInput=void 0;var o=n(1),r=n(18),a=n(12),i=n(16),c=n(158),l=n(19);var u=function(e){var t,n;function u(t){var n;n=e.call(this,t)||this;var a=t.value;return n.inputRef=(0,o.createRef)(),n.state={value:a,dragging:!1,editing:!1,internalValue:null,origin:null,suppressingFlicker:!1},n.flickerTimer=null,n.suppressFlicker=function(){var e=n.props.suppressFlicker;e>0&&(n.setState({suppressingFlicker:!0}),clearTimeout(n.flickerTimer),n.flickerTimer=setTimeout((function(){return n.setState({suppressingFlicker:!1})}),e))},n.handleDragStart=function(e){var t=n.props.value;n.state.editing||(document.body.style["pointer-events"]="none",n.ref=e.target,n.setState({dragging:!1,origin:e.screenY,value:t,internalValue:t}),n.timer=setTimeout((function(){n.setState({dragging:!0})}),250),n.dragInterval=setInterval((function(){var t=n.state,o=t.dragging,r=t.value,a=n.props.onDrag;o&&a&&a(e,r)}),500),document.addEventListener("mousemove",n.handleDragMove),document.addEventListener("mouseup",n.handleDragEnd))},n.handleDragMove=function(e){var t=n.props,o=t.minValue,a=t.maxValue,i=t.step,c=t.stepPixelSize;n.setState((function(t){var n=Object.assign({},t),l=n.origin-e.screenY;if(t.dragging){var u=Number.isFinite(o)?o%i:0;n.internalValue=(0,r.clamp)(n.internalValue+l*i/c,o-i,a+i),n.value=(0,r.clamp)(n.internalValue-n.internalValue%i+u,o,a),n.origin=e.screenY}else Math.abs(l)>4&&(n.dragging=!0);return n}))},n.handleDragEnd=function(e){var t=n.props,o=t.onChange,r=t.onDrag,a=n.state,i=a.dragging,c=a.value,l=a.internalValue;if(document.body.style["pointer-events"]="auto",clearTimeout(n.timer),clearInterval(n.dragInterval),n.setState({dragging:!1,editing:!i,origin:null}),document.removeEventListener("mousemove",n.handleDragMove),document.removeEventListener("mouseup",n.handleDragEnd),i)n.suppressFlicker(),o&&o(e,c),r&&r(e,c);else if(n.inputRef){var u=n.inputRef.current;u.value=l;try{u.focus(),u.select()}catch(d){}}},n}return n=e,(t=u).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,u.prototype.render=function(){var e=this,t=this.state,n=t.dragging,u=t.editing,d=t.value,s=t.suppressingFlicker,p=this.props,m=p.className,f=p.fluid,h=p.animated,C=p.value,g=p.unit,b=p.minValue,N=p.maxValue,v=p.height,V=p.width,y=p.lineHeight,_=p.fontSize,x=p.format,k=p.onChange,L=p.onDrag,w=C;(n||s)&&(w=d);var B=function(e){return(0,o.createVNode)(1,"div","NumberInput__content",e+(g?" "+g:""),0,{unselectable:i.tridentVersion<=4})},S=h&&!n&&!s&&(0,o.createComponentVNode)(2,c.AnimatedNumber,{value:w,format:x,children:B})||B(x?x(w):w);return(0,o.createComponentVNode)(2,l.Box,{className:(0,a.classes)(["NumberInput",f&&"NumberInput--fluid",m]),minWidth:V,minHeight:v,lineHeight:y,fontSize:_,onMouseDown:this.handleDragStart,children:[(0,o.createVNode)(1,"div","NumberInput__barContainer",(0,o.createVNode)(1,"div","NumberInput__bar",null,1,{style:{height:(0,r.clamp)((w-b)/(N-b)*100,0,100)+"%"}}),2),S,(0,o.createVNode)(64,"input","NumberInput__input",null,1,{style:{display:u?undefined:"none",height:v,"line-height":y,"font-size":_},onBlur:function(t){if(u){var n=(0,r.clamp)(t.target.value,b,N);e.setState({editing:!1,value:n}),e.suppressFlicker(),k&&k(t,n),L&&L(t,n)}},onKeyDown:function(t){if(13===t.keyCode){var n=(0,r.clamp)(t.target.value,b,N);return e.setState({editing:!1,value:n}),e.suppressFlicker(),k&&k(t,n),void(L&&L(t,n))}27!==t.keyCode||e.setState({editing:!1})}},null,this.inputRef)]})},u}(o.Component);t.NumberInput=u,u.defaultHooks=a.pureComponentHooks,u.defaultProps={minValue:-Infinity,maxValue:+Infinity,step:1,stepPixelSize:1,suppressFlicker:50}},function(e,t,n){"use strict";t.__esModule=!0,t.ProgressBar=void 0;var o=n(1),r=n(12),a=n(18),i=function(e){var t=e.value,n=e.minValue,i=void 0===n?0:n,c=e.maxValue,l=void 0===c?1:c,u=e.ranges,d=void 0===u?{}:u,s=e.content,p=e.children,m=(t-i)/(l-i),f=s!==undefined||p!==undefined,h=e.color;if(!h)for(var C=0,g=Object.keys(d);C=N[0]&&t<=N[1]){h=b;break}}return h||(h="default"),(0,o.createVNode)(1,"div",(0,r.classes)(["ProgressBar","ProgressBar--color--"+h]),[(0,o.createVNode)(1,"div","ProgressBar__fill",null,1,{style:{width:100*(0,a.clamp)(m,0,1)+"%"}}),(0,o.createVNode)(1,"div","ProgressBar__content",[f&&s,f&&p,!f&&(0,a.toFixed)(100*m)+"%"],0)],4)};t.ProgressBar=i,i.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.Section=void 0;var o=n(1),r=n(12),a=n(19);var i=function(e){var t=e.className,n=e.title,i=e.level,c=void 0===i?1:i,l=e.buttons,u=e.content,d=e.children,s=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["className","title","level","buttons","content","children"]),p=!(0,r.isFalsy)(n)||!(0,r.isFalsy)(l),m=!(0,r.isFalsy)(u)||!(0,r.isFalsy)(d);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({className:(0,r.classes)(["Section","Section--level--"+c,t])},s,{children:[p&&(0,o.createVNode)(1,"div","Section__title",[(0,o.createVNode)(1,"span","Section__titleText",n,0),(0,o.createVNode)(1,"div","Section__buttons",l,0)],4),m&&(0,o.createVNode)(1,"div","Section__content",[u,d],0)]})))};t.Section=i,i.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.Tab=t.Tabs=void 0;var o=n(1),r=n(12),a=n(19),i=n(114);function c(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var l=function(e){var t=e,n=Array.isArray(t),o=0;for(t=n?t:t[Symbol.iterator]();;){var r;if(n){if(o>=t.length)break;r=t[o++]}else{if((o=t.next()).done)break;r=o.value}var a=r;if(!a.props||"Tab"!==a.props.__type__){var i=JSON.stringify(a,null,2);throw new Error(" only accepts children of type .This is what we received: "+i)}}},u=function(e){var t,n;function u(t){var n;return(n=e.call(this,t)||this).state={activeTabKey:null},n}n=e,(t=u).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var d=u.prototype;return d.getActiveTab=function(){var e=this.state,t=this.props,n=(0,r.normalizeChildren)(t.children);l(n);var o=t.activeTab||e.activeTabKey,a=n.find((function(e){return(e.key||e.props.label)===o}));return a||(a=n[0],o=a&&(a.key||a.props.label)),{tabs:n,activeTab:a,activeTabKey:o}},d.render=function(){var e=this,t=this.props,n=t.className,l=t.vertical,u=(t.children,c(t,["className","vertical","children"])),d=this.getActiveTab(),s=d.tabs,p=d.activeTab,m=d.activeTabKey,f=null;return p&&(f=p.props.content||p.props.children),"function"==typeof f&&(f=f(m)),(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({className:(0,r.classes)(["Tabs",l&&"Tabs--vertical",n])},u,{children:[(0,o.createVNode)(1,"div","Tabs__tabBox",s.map((function(t){var n=t.props,a=n.className,l=n.label,u=(n.content,n.children,n.onClick),d=n.highlight,s=c(n,["className","label","content","children","onClick","highlight"]),p=t.key||t.props.label,f=t.active||p===m;return(0,o.normalizeProps)((0,o.createComponentVNode)(2,i.Button,Object.assign({className:(0,r.classes)(["Tabs__tab",f&&"Tabs__tab--active",d&&!f&&"color-yellow",a]),selected:f,color:"transparent",onClick:function(n){e.setState({activeTabKey:p}),u&&u(n,t)}},s,{children:l}),p))})),0),(0,o.createVNode)(1,"div","Tabs__content",f||null,0)]})))},u}(o.Component);t.Tabs=u;var d=function(e){return null};t.Tab=d,d.defaultProps={__type__:"Tab"},u.Tab=d},function(e,t,n){"use strict";t.__esModule=!0,t.TitleBar=void 0;var o=n(1),r=n(12),a=n(23),i=n(16),c=n(37),l=n(87),u=function(e){switch(e){case c.UI_INTERACTIVE:return"good";case c.UI_UPDATE:return"average";case c.UI_DISABLED:default:return"bad"}},d=function(e){var t=e.className,n=e.title,c=e.status,d=e.fancy,s=e.onDragStart,p=e.onClose;return(0,o.createVNode)(1,"div",(0,r.classes)(["TitleBar",t]),[(0,o.createComponentVNode)(2,l.Icon,{className:"TitleBar__statusIcon",color:u(c),name:"eye"}),(0,o.createVNode)(1,"div","TitleBar__title",n===n.toLowerCase()?(0,a.toTitleCase)(n):n,0),(0,o.createVNode)(1,"div","TitleBar__dragZone",null,1,{onMousedown:function(e){return d&&s(e)}}),!!d&&(0,o.createVNode)(1,"div","TitleBar__close TitleBar__clickable",i.tridentVersion<=4?"x":"\xd7",0,{onclick:p})],0)};t.TitleBar=d,d.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.Chart=void 0;var o=n(1),r=n(24),a=n(19),i=n(12),c=n(16);var l=function(e,t,n,o){if(0===e.length)return[];var a=(0,r.zipWith)(Math.min).apply(void 0,e),i=(0,r.zipWith)(Math.max).apply(void 0,e);return n!==undefined&&(a[0]=n[0],i[0]=n[1]),o!==undefined&&(a[1]=o[0],i[1]=o[1]),(0,r.map)((function(e){return(0,r.zipWith)((function(e,t,n,o){return(e-t)/(n-t)*o}))(e,a,i,t)}))(e)},u=function(e){for(var t="",n=0;n=0||(r[n]=e[n]);return r}(t,["data","rangeX","rangeY","fillColor","strokeColor","strokeWidth"]),g=this.state.viewBox,b=l(r,g,i,c);if(b.length>0){var N=b[0],v=b[b.length-1];b.push([g[0]+h,v[1]]),b.push([g[0]+h,-h]),b.push([-h,-h]),b.push([-h,N[1]])}var V=u(b);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({position:"relative"},C,{children:function(t){return(0,o.normalizeProps)((0,o.createVNode)(1,"div",null,(0,o.createVNode)(32,"svg",null,(0,o.createVNode)(32,"polyline",null,null,1,{transform:"scale(1, -1) translate(0, -"+g[1]+")",fill:s,stroke:m,"stroke-width":h,points:V}),2,{viewBox:"0 0 "+g[0]+" "+g[1],preserveAspectRatio:"none",style:{position:"absolute",top:0,left:0,right:0,bottom:0,overflow:"hidden"}}),2,Object.assign({},t),null,e.ref))}})))},r}(o.Component);d.defaultHooks=i.pureComponentHooks;var s={Line:c.tridentVersion<=4?function(e){return null}:d};t.Chart=s},function(e,t,n){"use strict";t.__esModule=!0,t.AiAirlock=void 0;var o=n(1),r=n(3),a=n(2);t.AiAirlock=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c={2:{color:"good",localStatusText:"Offline"},1:{color:"average",localStatusText:"Caution"},0:{color:"bad",localStatusText:"Optimal"}},l=c[i.power.main]||c[0],u=c[i.power.backup]||c[0],d=c[i.shock]||c[0];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Power Status",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Main",color:l.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",disabled:!i.power.main,content:"Disrupt",onClick:function(){return n("disrupt-main")}}),children:[i.power.main?"Online":"Offline"," ",i.wires.main_1&&i.wires.main_2?i.power.main_timeleft>0&&"["+i.power.main_timeleft+"s]":"[Wires have been cut!]"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Backup",color:u.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",disabled:!i.power.backup,content:"Disrupt",onClick:function(){return n("disrupt-backup")}}),children:[i.power.backup?"Online":"Offline"," ",i.wires.backup_1&&i.wires.backup_2?i.power.backup_timeleft>0&&"["+i.power.backup_timeleft+"s]":"[Wires have been cut!]"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Electrify",color:d.color,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"wrench",disabled:!(i.wires.shock&&0===i.shock),content:"Restore",onClick:function(){return n("shock-restore")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"bolt",disabled:!i.wires.shock,content:"Temporary",onClick:function(){return n("shock-temp")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"bolt",disabled:!i.wires.shock,content:"Permanent",onClick:function(){return n("shock-perm")}})],4),children:[2===i.shock?"Safe":"Electrified"," ",(i.wires.shock?i.shock_timeleft>0&&"["+i.shock_timeleft+"s]":"[Wires have been cut!]")||-1===i.shock_timeleft&&"[Permanent]"]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Access and Door Control",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"ID Scan",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.id_scanner?"power-off":"times",content:i.id_scanner?"Enabled":"Disabled",selected:i.id_scanner,disabled:!i.wires.id_scanner,onClick:function(){return n("idscan-toggle")}}),children:!i.wires.id_scanner&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Emergency Access",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.emergency?"power-off":"times",content:i.emergency?"Enabled":"Disabled",selected:i.emergency,onClick:function(){return n("emergency-toggle")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Bolts",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.locked?"lock":"unlock",content:i.locked?"Lowered":"Raised",selected:i.locked,disabled:!i.wires.bolts,onClick:function(){return n("bolt-toggle")}}),children:!i.wires.bolts&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Bolt Lights",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.lights?"power-off":"times",content:i.lights?"Enabled":"Disabled",selected:i.lights,disabled:!i.wires.lights,onClick:function(){return n("light-toggle")}}),children:!i.wires.lights&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Force Sensors",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.safe?"power-off":"times",content:i.safe?"Enabled":"Disabled",selected:i.safe,disabled:!i.wires.safe,onClick:function(){return n("safe-toggle")}}),children:!i.wires.safe&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Timing Safety",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.speed?"power-off":"times",content:i.speed?"Enabled":"Disabled",selected:i.speed,disabled:!i.wires.timing,onClick:function(){return n("speed-toggle")}}),children:!i.wires.timing&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Control",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.opened?"sign-out-alt":"sign-in-alt",content:i.opened?"Open":"Closed",selected:i.opened,disabled:i.locked||i.welded,onClick:function(){return n("open-close")}}),children:!(!i.locked&&!i.welded)&&(0,o.createVNode)(1,"span",null,[(0,o.createTextVNode)("[Door is "),i.locked?"bolted":"",i.locked&&i.welded?" and ":"",i.welded?"welded":"",(0,o.createTextVNode)("!]")],0)})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.AirAlarm=void 0;var o=n(1),r=n(18),a=n(23),i=n(3),c=n(2),l=n(37),u=n(69);t.AirAlarm=function(e){var t=e.state,n=(0,i.useBackend)(e),r=n.act,a=n.data,c=a.locked&&!a.siliconUser;return(0,o.createFragment)([(0,o.createComponentVNode)(2,u.InterfaceLockNoticeBox,{siliconUser:a.siliconUser,locked:a.locked,onLockStatusChange:function(){return r("lock")}}),(0,o.createComponentVNode)(2,d,{state:t}),!c&&(0,o.createComponentVNode)(2,p,{state:t})],0)};var d=function(e){var t=(0,i.useBackend)(e).data,n=(t.environment_data||[]).filter((function(e){return e.value>=.01})),a={0:{color:"good",localStatusText:"Optimal"},1:{color:"average",localStatusText:"Caution"},2:{color:"bad",localStatusText:"Danger (Internals Required)"}},l=a[t.danger_level]||a[0];return(0,o.createComponentVNode)(2,c.Section,{title:"Air Status",children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[n.length>0&&(0,o.createFragment)([n.map((function(e){var t=a[e.danger_level]||a[0];return(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:e.name,color:t.color,children:[(0,r.toFixed)(e.value,2),e.unit]},e.name)})),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Local status",color:l.color,children:l.localStatusText}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Area status",color:t.atmos_alarm||t.fire_alarm?"bad":"good",children:(t.atmos_alarm?"Atmosphere Alarm":t.fire_alarm&&"Fire Alarm")||"Nominal"})],0)||(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Warning",color:"bad",children:"Cannot obtain air sample for analysis."}),!!t.emagged&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Warning",color:"bad",children:"Safety measures offline. Device may exhibit abnormal behavior."})]})})},s={home:{title:"Air Controls",component:function(){return m}},vents:{title:"Vent Controls",component:function(){return f}},scrubbers:{title:"Scrubber Controls",component:function(){return C}},modes:{title:"Operating Mode",component:function(){return b}},thresholds:{title:"Alarm Thresholds",component:function(){return N}}},p=function(e){var t=e.state,n=(0,i.useBackend)(e),r=n.act,a=n.config,l=s[a.screen]||s.home,u=l.component();return(0,o.createComponentVNode)(2,c.Section,{title:l.title,buttons:"home"!==a.screen&&(0,o.createComponentVNode)(2,c.Button,{icon:"arrow-left",content:"Back",onClick:function(){return r("tgui:view",{screen:"home"})}}),children:(0,o.createComponentVNode)(2,u,{state:t})})},m=function(e){var t=(0,i.useBackend)(e),n=t.act,r=t.data,a=r.mode,l=r.atmos_alarm;return(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:l?"exclamation-triangle":"exclamation",color:l&&"caution",content:"Area Atmosphere Alarm",onClick:function(){return n(l?"reset":"alarm")}}),(0,o.createComponentVNode)(2,c.Box,{mt:1}),(0,o.createComponentVNode)(2,c.Button,{icon:3===a?"exclamation-triangle":"exclamation",color:3===a&&"danger",content:"Panic Siphon",onClick:function(){return n("mode",{mode:3===a?1:3})}}),(0,o.createComponentVNode)(2,c.Box,{mt:2}),(0,o.createComponentVNode)(2,c.Button,{icon:"sign-out-alt",content:"Vent Controls",onClick:function(){return n("tgui:view",{screen:"vents"})}}),(0,o.createComponentVNode)(2,c.Box,{mt:1}),(0,o.createComponentVNode)(2,c.Button,{icon:"filter",content:"Scrubber Controls",onClick:function(){return n("tgui:view",{screen:"scrubbers"})}}),(0,o.createComponentVNode)(2,c.Box,{mt:1}),(0,o.createComponentVNode)(2,c.Button,{icon:"cog",content:"Operating Mode",onClick:function(){return n("tgui:view",{screen:"modes"})}}),(0,o.createComponentVNode)(2,c.Box,{mt:1}),(0,o.createComponentVNode)(2,c.Button,{icon:"chart-bar",content:"Alarm Thresholds",onClick:function(){return n("tgui:view",{screen:"thresholds"})}})],4)},f=function(e){var t=e.state,n=(0,i.useBackend)(e).data.vents;return n&&0!==n.length?n.map((function(e){return(0,o.normalizeProps)((0,o.createComponentVNode)(2,h,Object.assign({state:t},e),e.id_tag))})):"Nothing to show"},h=function(e){var t=e.id_tag,n=e.long_name,r=e.power,l=e.checks,u=e.excheck,d=e.incheck,s=e.direction,p=e.external,m=e.internal,f=e.extdefault,h=e.intdefault,C=(0,i.useBackend)(e).act;return(0,o.createComponentVNode)(2,c.Section,{level:2,title:(0,a.decodeHtmlEntities)(n),buttons:(0,o.createComponentVNode)(2,c.Button,{icon:r?"power-off":"times",selected:r,content:r?"On":"Off",onClick:function(){return C("power",{id_tag:t,val:Number(!r)})}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Mode",children:"release"===s?"Pressurizing":"Releasing"}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Pressure Regulator",children:[(0,o.createComponentVNode)(2,c.Button,{icon:"sign-in-alt",content:"Internal",selected:d,onClick:function(){return C("incheck",{id_tag:t,val:l})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"sign-out-alt",content:"External",selected:u,onClick:function(){return C("excheck",{id_tag:t,val:l})}})]}),!!d&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Internal Target",children:[(0,o.createComponentVNode)(2,c.NumberInput,{value:Math.round(m),unit:"kPa",width:"75px",minValue:0,step:10,maxValue:5066,onChange:function(e,n){return C("set_internal_pressure",{id_tag:t,value:n})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"undo",disabled:h,content:"Reset",onClick:function(){return C("reset_internal_pressure",{id_tag:t})}})]}),!!u&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"External Target",children:[(0,o.createComponentVNode)(2,c.NumberInput,{value:Math.round(p),unit:"kPa",width:"75px",minValue:0,step:10,maxValue:5066,onChange:function(e,n){return C("set_external_pressure",{id_tag:t,value:n})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"undo",disabled:f,content:"Reset",onClick:function(){return C("reset_external_pressure",{id_tag:t})}})]})]})})},C=function(e){var t=e.state,n=(0,i.useBackend)(e).data.scrubbers;return n&&0!==n.length?n.map((function(e){return(0,o.normalizeProps)((0,o.createComponentVNode)(2,g,Object.assign({state:t},e),e.id_tag))})):"Nothing to show"},g=function(e){var t=e.long_name,n=e.power,r=e.scrubbing,u=e.id_tag,d=e.widenet,s=e.filter_types,p=(0,i.useBackend)(e).act;return(0,o.createComponentVNode)(2,c.Section,{level:2,title:(0,a.decodeHtmlEntities)(t),buttons:(0,o.createComponentVNode)(2,c.Button,{icon:n?"power-off":"times",content:n?"On":"Off",selected:n,onClick:function(){return p("power",{id_tag:u,val:Number(!n)})}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Mode",children:[(0,o.createComponentVNode)(2,c.Button,{icon:r?"filter":"sign-in-alt",color:r||"danger",content:r?"Scrubbing":"Siphoning",onClick:function(){return p("scrubbing",{id_tag:u,val:Number(!r)})}}),(0,o.createComponentVNode)(2,c.Button,{icon:d?"expand":"compress",selected:d,content:d?"Expanded range":"Normal range",onClick:function(){return p("widenet",{id_tag:u,val:Number(!d)})}})]}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Filters",children:r&&s.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{icon:e.enabled?"check-square-o":"square-o",content:(0,l.getGasLabel)(e.gas_id,e.gas_name),title:e.gas_name,selected:e.enabled,onClick:function(){return p("toggle_filter",{id_tag:u,val:e.gas_id})}},e.gas_id)}))||"N/A"})]})})},b=function(e){var t=(0,i.useBackend)(e),n=t.act,r=t.data.modes;return r&&0!==r.length?r.map((function(e){return(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:e.selected?"check-square-o":"square-o",selected:e.selected,color:e.selected&&e.danger&&"danger",content:e.name,onClick:function(){return n("mode",{mode:e.mode})}}),(0,o.createComponentVNode)(2,c.Box,{mt:1})],4,e.mode)})):"Nothing to show"},N=function(e){var t=(0,i.useBackend)(e),n=t.act,a=t.data.thresholds;return(0,o.createVNode)(1,"table","LabeledList",[(0,o.createVNode)(1,"thead",null,(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td"),(0,o.createVNode)(1,"td","color-bad","min2",16),(0,o.createVNode)(1,"td","color-average","min1",16),(0,o.createVNode)(1,"td","color-average","max1",16),(0,o.createVNode)(1,"td","color-bad","max2",16)],4),2),(0,o.createVNode)(1,"tbody",null,a.map((function(e){return(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td","LabeledList__label",e.name,0),e.settings.map((function(e){return(0,o.createVNode)(1,"td",null,(0,o.createComponentVNode)(2,c.Button,{content:(0,r.toFixed)(e.selected,2),onClick:function(){return n("threshold",{env:e.env,"var":e.val})}}),2,null,e.val)}))],0,null,e.name)})),0)],4,{style:{width:"100%"}})}},function(e,t,n){"use strict";t.__esModule=!0,t.AirlockElectronics=void 0;var o=n(1),r=n(3),a=n(2);t.AirlockElectronics=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.regions||[],l={0:{icon:"times-circle"},1:{icon:"stop-circle"},2:{icon:"check-circle"}};return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Main",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Access Required",children:(0,o.createComponentVNode)(2,a.Button,{icon:i.oneAccess?"unlock":"lock",content:i.oneAccess?"One":"All",onClick:function(){return n("one_access")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mass Modify",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"check-double",content:"Grant All",onClick:function(){return n("grant_all")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"undo",content:"Clear All",onClick:function(){return n("clear_all")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Unrestricted Access",children:[(0,o.createComponentVNode)(2,a.Button,{icon:1&i.unres_direction?"check-square-o":"square-o",content:"North",selected:1&i.unres_direction,onClick:function(){return n("direc_set",{unres_direction:"1"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:2&i.unres_direction?"check-square-o":"square-o",content:"East",selected:2&i.unres_direction,onClick:function(){return n("direc_set",{unres_direction:"2"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:4&i.unres_direction?"check-square-o":"square-o",content:"South",selected:4&i.unres_direction,onClick:function(){return n("direc_set",{unres_direction:"4"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:8&i.unres_direction?"check-square-o":"square-o",content:"West",selected:8&i.unres_direction,onClick:function(){return n("direc_set",{unres_direction:"8"})}})]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Access",children:(0,o.createComponentVNode)(2,a.Box,{height:"261px",children:(0,o.createComponentVNode)(2,a.Tabs,{vertical:!0,children:c.map((function(e){var t=e.name,r=e.accesses||[],i=l[function(e){var t=!1,n=!1;return e.forEach((function(e){e.req?t=!0:n=!0})),!t&&n?0:t&&n?1:2}(r)].icon;return(0,o.createComponentVNode)(2,a.Tabs.Tab,{icon:i,label:t,children:function(){return r.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{icon:e.req?"check-square-o":"square-o",content:e.name,selected:e.req,onClick:function(){return n("set",{access:e.id})}})},e.id)}))}},t)}))})})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.Apc=void 0;var o=n(1),r=n(3),a=n(2),i=n(69);t.Apc=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data,l=c.locked&&!c.siliconUser,u={2:{color:"good",externalPowerText:"External Power",chargingText:"Fully Charged"},1:{color:"average",externalPowerText:"Low External Power",chargingText:"Charging"},0:{color:"bad",externalPowerText:"No External Power",chargingText:"Not Charging"}},d={1:{icon:"terminal",content:"Override Programming",action:"hack"},2:{icon:"caret-square-down",content:"Shunt Core Process",action:"occupy"},3:{icon:"caret-square-left",content:"Return to Main Core",action:"deoccupy"},4:{icon:"caret-square-down",content:"Shunt Core Process",action:"occupy"}},s=u[c.externalPower]||u[0],p=u[c.chargingStatus]||u[0],m=c.powerChannels||[],f=d[c.malfStatus]||d[0],h=c.powerCellStatus/100;return c.failTime>0?(0,o.createComponentVNode)(2,a.NoticeBox,{children:[(0,o.createVNode)(1,"b",null,(0,o.createVNode)(1,"h3",null,"SYSTEM FAILURE",16),2),(0,o.createVNode)(1,"i",null,"I/O regulators malfunction detected! Waiting for system reboot...",16),(0,o.createVNode)(1,"br"),"Automatic reboot in ",c.failTime," seconds...",(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Reboot Now",onClick:function(){return n("reboot")}})]}):(0,o.createFragment)([(0,o.createComponentVNode)(2,i.InterfaceLockNoticeBox,{siliconUser:c.siliconUser,locked:c.locked,onLockStatusChange:function(){return n("lock")}}),(0,o.createComponentVNode)(2,a.Section,{title:"Power Status",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Main Breaker",color:s.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:c.isOperating?"power-off":"times",content:c.isOperating?"On":"Off",selected:c.isOperating&&!l,disabled:l,onClick:function(){return n("breaker")}}),children:["[ ",s.externalPowerText," ]"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power Cell",children:(0,o.createComponentVNode)(2,a.ProgressBar,{color:"good",value:h})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge Mode",color:p.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:c.chargeMode?"sync":"close",content:c.chargeMode?"Auto":"Off",disabled:l,onClick:function(){return n("charge")}}),children:["[ ",p.chargingText," ]"]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Power Channels",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[m.map((function(e){var t=e.topicParams;return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.title,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{inline:!0,mx:2,color:e.status>=2?"good":"bad",children:e.status>=2?"On":"Off"}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Auto",selected:!l&&(1===e.status||3===e.status),disabled:l,onClick:function(){return n("channel",t.auto)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",content:"On",selected:!l&&2===e.status,disabled:l,onClick:function(){return n("channel",t.on)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Off",selected:!l&&0===e.status,disabled:l,onClick:function(){return n("channel",t.off)}})],4),children:e.powerLoad},e.title)})),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Total Load",children:(0,o.createVNode)(1,"b",null,c.totalLoad,0)})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Misc",buttons:!!c.siliconUser&&(0,o.createFragment)([!!c.malfStatus&&(0,o.createComponentVNode)(2,a.Button,{icon:f.icon,content:f.content,color:"bad",onClick:function(){return n(f.action)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:"Overload",onClick:function(){return n("overload")}})],0),children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cover Lock",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:c.coverLocked?"lock":"unlock",content:c.coverLocked?"Engaged":"Disengaged",disabled:l,onClick:function(){return n("cover")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Emergency Lighting",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:c.emergencyLights?"Enabled":"Disabled",disabled:l,onClick:function(){return n("emergency_lighting")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Night Shift Lighting",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:c.nightshiftLights?"Enabled":"Disabled",disabled:l,onClick:function(){return n("toggle_nightshift")}})})]}),c.hijackable&&(0,o.createComponentVNode)(2,a.Section,{title:"Hijacking",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"unlock",content:"Hijack",disabled:c.hijacker,onClick:function(){return n("hijack")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"lock",content:"Lockdown",disabled:!c.lockdownavail,onClick:function(){return n("lockdown")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:"Drain",disabled:!c.drainavail,onClick:function(){return n("drain")}})],4)})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosAlertConsole=void 0;var o=n(1),r=n(3),a=n(2);t.AtmosAlertConsole=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.priority||[],l=i.minor||[];return(0,o.createComponentVNode)(2,a.Section,{title:"Alarms",children:(0,o.createVNode)(1,"ul",null,[c.length>0?c.map((function(e){return(0,o.createVNode)(1,"li",null,(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:e,color:"bad",onClick:function(){return n("clear",{zone:e})}}),2,null,e)})):(0,o.createVNode)(1,"li","color-good","No Priority Alerts",16),l.length>0?l.map((function(e){return(0,o.createVNode)(1,"li",null,(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:e,color:"average",onClick:function(){return n("clear",{zone:e})}}),2,null,e)})):(0,o.createVNode)(1,"li","color-good","No Minor Alerts",16)],0)})}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosControlConsole=void 0;var o=n(1),r=n(24),a=n(18),i=n(3),c=n(2);t.AtmosControlConsole=function(e){var t=(0,i.useBackend)(e),n=t.act,l=t.data,u=l.sensors||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Section,{title:!!l.tank&&u[0].long_name,children:u.map((function(e){var t=e.gases||{};return(0,o.createComponentVNode)(2,c.Section,{title:!l.tank&&e.long_name,level:2,children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Pressure",children:(0,a.toFixed)(e.pressure,2)+" kPa"}),!!e.temperature&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Temperature",children:(0,a.toFixed)(e.temperature,2)+" K"}),(0,r.map)((function(e,t){return(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:t,children:(0,a.toFixed)(e,2)+"%"})}))(t)]})},e.id_tag)}))}),l.tank&&(0,o.createComponentVNode)(2,c.Section,{title:"Controls",buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"undo",content:"Reconnect",onClick:function(){return n("reconnect")}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Input Injector",children:(0,o.createComponentVNode)(2,c.Button,{icon:l.inputting?"power-off":"times",content:l.inputting?"Injecting":"Off",selected:l.inputting,onClick:function(){return n("input")}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Input Rate",children:(0,o.createComponentVNode)(2,c.NumberInput,{value:l.inputRate,unit:"L/s",width:"63px",minValue:0,maxValue:200,suppressFlicker:2e3,onChange:function(e,t){return n("rate",{rate:t})}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Output Regulator",children:(0,o.createComponentVNode)(2,c.Button,{icon:l.outputting?"power-off":"times",content:l.outputting?"Open":"Closed",selected:l.outputting,onClick:function(){return n("output")}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Output Pressure",children:(0,o.createComponentVNode)(2,c.NumberInput,{value:parseFloat(l.outputPressure),unit:"kPa",width:"75px",minValue:0,maxValue:4500,step:10,suppressFlicker:2e3,onChange:function(e,t){return n("pressure",{pressure:t})}})})]})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosFilter=void 0;var o=n(1),r=n(3),a=n(2),i=n(37);t.AtmosFilter=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data,l=c.filter_types||[];return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:c.on?"power-off":"times",content:c.on?"On":"Off",selected:c.on,onClick:function(){return n("power")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Transfer Rate",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(c.rate),width:"63px",unit:"L/s",minValue:0,maxValue:200,onDrag:function(e,t){return n("rate",{rate:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:c.rate===c.max_rate,onClick:function(){return n("rate",{rate:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Filter",children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{selected:e.selected,content:(0,i.getGasLabel)(e.id,e.name),onClick:function(){return n("filter",{mode:e.id})}},e.id)}))})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosMixer=void 0;var o=n(1),r=n(3),a=n(2);t.AtmosMixer=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:i.on?"power-off":"times",content:i.on?"On":"Off",selected:i.on,onClick:function(){return n("power")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Output Pressure",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(i.set_pressure),unit:"kPa",width:"75px",minValue:0,maxValue:4500,step:10,onChange:function(e,t){return n("pressure",{pressure:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:i.set_pressure===i.max_pressure,onClick:function(){return n("pressure",{pressure:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Node 1",children:(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:i.node1_concentration,unit:"%",width:"60px",minValue:0,maxValue:100,stepPixelSize:2,onDrag:function(e,t){return n("node1",{concentration:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Node 2",children:(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:i.node2_concentration,unit:"%",width:"60px",minValue:0,maxValue:100,stepPixelSize:2,onDrag:function(e,t){return n("node2",{concentration:t})}})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosPump=void 0;var o=n(1),r=n(3),a=n(2);t.AtmosPump=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:i.on?"power-off":"times",content:i.on?"On":"Off",selected:i.on,onClick:function(){return n("power")}})}),i.max_rate?(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Transfer Rate",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(i.rate),width:"63px",unit:"L/s",minValue:0,maxValue:200,onChange:function(e,t){return n("rate",{rate:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:i.rate===i.max_rate,onClick:function(){return n("rate",{rate:"max"})}})]}):(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Output Pressure",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(i.pressure),unit:"kPa",width:"75px",minValue:0,maxValue:4500,step:10,onChange:function(e,t){return n("pressure",{pressure:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:i.pressure===i.max_pressure,onClick:function(){return n("pressure",{pressure:"max"})}})]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.BankMachine=void 0;var o=n(1),r=n(3),a=n(2);t.BankMachine=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.current_balance,l=i.siphoning,u=i.station_name;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:u+" Vault",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Balance",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:l?"times":"sync",content:l?"Stop Siphoning":"Siphon Credits",selected:l,onClick:function(){return n(l?"halt":"siphon")}}),children:c+" cr"})})}),(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"Authorized personnel only"})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.BluespaceArtillery=void 0;var o=n(1),r=n(3),a=n(2);t.BluespaceArtillery=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.notice,l=i.connected,u=i.unlocked,d=i.target;return(0,o.createFragment)([!!c&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:c}),l?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Target",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"crosshairs",disabled:!u,onClick:function(){return n("recalibrate")}}),children:(0,o.createComponentVNode)(2,a.Box,{color:d?"average":"bad",fontSize:"25px",children:d||"No Target Set"})}),(0,o.createComponentVNode)(2,a.Section,{children:u?(0,o.createComponentVNode)(2,a.Box,{style:{margin:"auto"},children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"FIRE",color:"bad",disabled:!d,fontSize:"30px",textAlign:"center",lineHeight:"46px",onClick:function(){return n("fire")}})}):(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{color:"bad",fontSize:"18px",children:"Bluespace artillery is currently locked."}),(0,o.createComponentVNode)(2,a.Box,{mt:1,children:"Awaiting authorization via keycard reader from at minimum two station heads."})],4)})],4):(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Maintenance",children:(0,o.createComponentVNode)(2,a.Button,{icon:"wrench",content:"Complete Deployment",onClick:function(){return n("build")}})})})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.Bepis=void 0;var o=n(1),r=(n(23),n(16)),a=n(2);t.Bepis=function(e){var t=e.state,n=t.config,i=t.data,c=n.ref,l=i.amount;return(0,o.createComponentVNode)(2,a.Section,{title:"Business Exploration Protocol Incubation Sink",children:[(0,o.createComponentVNode)(2,a.Section,{title:"Information",backgroundColor:"#450F44",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",content:i.manual_power?"Off":"On",selected:!i.manual_power,onClick:function(){return(0,r.act)(c,"toggle_power")}}),children:"All you need to know about the B.E.P.I.S. and you! The B.E.P.I.S. performs hundreds of tests a second using electrical and financial resources to invent new products, or discover new technologies otherwise overlooked for being too risky or too niche to produce!"}),(0,o.createComponentVNode)(2,a.Section,{title:"Payer's Account",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"redo-alt",content:"Reset Account",onClick:function(){return(0,r.act)(c,"account_reset")}}),children:["Console is currently being operated by ",i.account_owner?i.account_owner:"no one","."]}),(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{size:1.5,children:[(0,o.createComponentVNode)(2,a.Section,{title:"Stored Data and Statistics",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deposited Credits",children:i.stored_cash}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Investment Variability",children:[i.accuracy_percentage,"%"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Innovation Bonus",children:i.positive_cash_offset}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Risk Offset",color:"bad",children:i.negative_cash_offset}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deposit Amount",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:l,unit:"Credits",minValue:100,maxValue:3e4,step:100,stepPixelSize:2,onChange:function(e,t){return(0,r.act)(c,"amount",{amount:t})}})})]})}),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"donate",content:"Deposit Credits",disabled:1===i.manual_power||1===i.silicon_check,onClick:function(){return(0,r.act)(c,"deposit_cash")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Withdraw Credits",disabled:1===i.manual_power,onClick:function(){return(0,r.act)(c,"withdraw_cash")}})]})]}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Market Data and Analysis",children:[(0,o.createComponentVNode)(2,a.Box,{children:["Average technology cost: ",i.mean_value]}),i.error_name&&(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Previous Failure Reason: Deposited cash value too low. Please insert more money for future success."}),(0,o.createComponentVNode)(2,a.Box,{m:1}),(0,o.createComponentVNode)(2,a.Button,{icon:"microscope",disabled:1===i.manual_power,onClick:function(){return(0,r.act)(c,"begin_experiment")},content:"Begin Testing"})]})})]})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.BorgPanel=void 0;var o=n(1),r=n(3),a=n(2);t.BorgPanel=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.borg||{},l=i.cell||{},u=l.charge/l.maxcharge,d=i.channels||[],s=i.modules||[],p=i.upgrades||[],m=i.ais||[],f=i.laws||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:c.name,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"pencil-alt",content:"Rename",onClick:function(){return n("rename")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:[(0,o.createComponentVNode)(2,a.Button,{icon:c.emagged?"check-square-o":"square-o",content:"Emagged",selected:c.emagged,onClick:function(){return n("toggle_emagged")}}),(0,o.createComponentVNode)(2,a.Button,{icon:c.lockdown?"check-square-o":"square-o",content:"Locked Down",selected:c.lockdown,onClick:function(){return n("toggle_lockdown")}}),(0,o.createComponentVNode)(2,a.Button,{icon:c.scrambledcodes?"check-square-o":"square-o",content:"Scrambled Codes",selected:c.scrambledcodes,onClick:function(){return n("toggle_scrambledcodes")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge",children:[l.missing?(0,o.createVNode)(1,"span","color-bad","No cell installed",16):(0,o.createComponentVNode)(2,a.ProgressBar,{value:u,content:l.charge+" / "+l.maxcharge}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Button,{icon:"pencil-alt",content:"Set",onClick:function(){return n("set_charge")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Change",onClick:function(){return n("change_cell")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"trash",content:"Remove",color:"bad",onClick:function(){return n("remove_cell")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Radio Channels",children:d.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:e.installed?"check-square-o":"square-o",content:e.name,selected:e.installed,onClick:function(){return n("toggle_radio",{channel:e.name})}},e.name)}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Module",children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:c.active_module===e.type?"check-square-o":"square-o",content:e.name,selected:c.active_module===e.type,onClick:function(){return n("setmodule",{module:e.type})}},e.type)}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Upgrades",children:p.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:e.installed?"check-square-o":"square-o",content:e.name,selected:e.installed,onClick:function(){return n("toggle_upgrade",{upgrade:e.type})}},e.type)}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Master AI",children:m.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:e.connected?"check-square-o":"square-o",content:e.name,selected:e.connected,onClick:function(){return n("slavetoai",{slavetoai:e.ref})}},e.ref)}))})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Laws",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:c.lawupdate?"check-square-o":"square-o",content:"Lawsync",selected:c.lawupdate,onClick:function(){return n("toggle_lawupdate")}}),children:f.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:e},e)}))})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.BrigTimer=void 0;var o=n(1),r=n(3),a=n(2);t.BrigTimer=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{title:"Cell Timer",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"clock-o",content:i.timing?"Stop":"Start",selected:i.timing,onClick:function(){return n(i.timing?"stop":"start")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:i.flash_charging?"Recharging":"Flash",disabled:i.flash_charging,onClick:function(){return n("flash")}})],4),children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",onClick:function(){return n("time",{adjust:-600})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",onClick:function(){return n("time",{adjust:-100})}})," ",String(i.minutes).padStart(2,"0"),":",String(i.seconds).padStart(2,"0")," ",(0,o.createComponentVNode)(2,a.Button,{icon:"forward",onClick:function(){return n("time",{adjust:100})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",onClick:function(){return n("time",{adjust:600})}}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Button,{icon:"hourglass-start",content:"Short",onClick:function(){return n("preset",{preset:"short"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"hourglass-start",content:"Medium",onClick:function(){return n("preset",{preset:"medium"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"hourglass-start",content:"Long",onClick:function(){return n("preset",{preset:"long"})}})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.Canister=void 0;var o=n(1),r=n(3),a=n(2);t.Canister=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.NoticeBox,{children:["The regulator ",i.hasHoldingTank?"is":"is not"," connected to a tank."]}),(0,o.createComponentVNode)(2,a.Section,{title:"Canister",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"pencil-alt",content:"Relabel",onClick:function(){return n("relabel")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i.tankPressure})," kPa"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Port",color:i.portConnected?"good":"average",content:i.portConnected?"Connected":"Not Connected"}),!!i.isPrototype&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Access",children:(0,o.createComponentVNode)(2,a.Button,{icon:i.restricted?"lock":"unlock",color:"caution",content:i.restricted?"Restricted to Engineering":"Public",onClick:function(){return n("restricted")}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Valve",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Release Pressure",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.releasePressure/(i.maxReleasePressure-i.minReleasePressure),children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i.releasePressure})," kPa"]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure Regulator",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"undo",disabled:i.releasePressure===i.defaultReleasePressure,content:"Reset",onClick:function(){return n("pressure",{pressure:"reset"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"minus",disabled:i.releasePressure<=i.minReleasePressure,content:"Min",onClick:function(){return n("pressure",{pressure:"min"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"pencil-alt",content:"Set",onClick:function(){return n("pressure",{pressure:"input"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",disabled:i.releasePressure>=i.maxReleasePressure,content:"Max",onClick:function(){return n("pressure",{pressure:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Valve",children:(0,o.createComponentVNode)(2,a.Button,{icon:i.valveOpen?"unlock":"lock",color:i.valveOpen?i.hasHoldingTank?"caution":"danger":null,content:i.valveOpen?"Open":"Closed",onClick:function(){return n("valve")}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Holding Tank",buttons:!!i.hasHoldingTank&&(0,o.createComponentVNode)(2,a.Button,{icon:"eject",color:i.valveOpen&&"danger",content:"Eject",onClick:function(){return n("eject")}}),children:[!!i.hasHoldingTank&&(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Label",children:i.holdingTank.name}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i.holdingTank.tankPressure})," kPa"]})]}),!i.hasHoldingTank&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"No Holding Tank"})]})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.CargoExpress=t.Cargo=void 0;var o=n(1),r=n(24),a=n(16),i=n(2),c=n(69);t.Cargo=function(e){var t=e.state,n=t.config,r=t.data,c=n.ref,s=r.supplies||{},p=r.requests||[],m=r.cart||[],f=m.reduce((function(e,t){return e+t.cost}),0),h=!r.requestonly&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Box,{inline:!0,mx:1,children:[0===m.length&&"Cart is empty",1===m.length&&"1 item",m.length>=2&&m.length+" items"," ",f>0&&"("+f+" cr)"]}),(0,o.createComponentVNode)(2,i.Button,{icon:"times",color:"transparent",content:"Clear",onClick:function(){return(0,a.act)(c,"clear")}})],4);return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{title:"Cargo",buttons:(0,o.createComponentVNode)(2,i.Box,{inline:!0,bold:!0,children:[(0,o.createComponentVNode)(2,i.AnimatedNumber,{value:Math.round(r.points)})," credits"]}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Shuttle",children:r.docked&&!r.requestonly&&(0,o.createComponentVNode)(2,i.Button,{content:r.location,onClick:function(){return(0,a.act)(c,"send")}})||r.location}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"CentCom Message",children:r.message}),r.loan&&!r.requestonly?(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Loan",children:r.loan_dispatched?(0,o.createComponentVNode)(2,i.Box,{color:"bad",children:"Loaned to Centcom"}):(0,o.createComponentVNode)(2,i.Button,{content:"Loan Shuttle",disabled:!(r.away&&r.docked),onClick:function(){return(0,a.act)(c,"loan")}})}):""]})}),(0,o.createComponentVNode)(2,i.Tabs,{mt:2,children:[(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:"Catalog",icon:"list",lineHeight:"23px",children:function(){return(0,o.createComponentVNode)(2,i.Section,{title:"Catalog",buttons:(0,o.createFragment)([h,(0,o.createComponentVNode)(2,i.Button,{ml:1,icon:r.self_paid?"check-square-o":"square-o",content:"Buy Privately",selected:r.self_paid,onClick:function(){return(0,a.act)(c,"toggleprivate")}})],0),children:(0,o.createComponentVNode)(2,l,{state:t,supplies:s})})}},"catalog"),(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:"Requests ("+p.length+")",icon:"envelope",highlight:p.length>0,lineHeight:"23px",children:function(){return(0,o.createComponentVNode)(2,i.Section,{title:"Active Requests",buttons:!r.requestonly&&(0,o.createComponentVNode)(2,i.Button,{icon:"times",content:"Clear",color:"transparent",onClick:function(){return(0,a.act)(c,"denyall")}}),children:(0,o.createComponentVNode)(2,u,{state:t,requests:p})})}},"requests"),!r.requestonly&&(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:"Checkout ("+m.length+")",icon:"shopping-cart",highlight:m.length>0,lineHeight:"23px",children:function(){return(0,o.createComponentVNode)(2,i.Section,{title:"Current Cart",buttons:h,children:(0,o.createComponentVNode)(2,d,{state:t,cart:m})})}},"cart")]})],4)};var l=function(e){var t=e.state,n=e.supplies,c=t.config,l=t.data,u=c.ref,d=function(e){var t=n[e].packs;return(0,o.createVNode)(1,"table","LabeledList",t.map((function(e){return(0,o.createVNode)(1,"tr","LabeledList__row candystripe",[(0,o.createVNode)(1,"td","LabeledList__cell LabeledList__label",[e.name,(0,o.createTextVNode)(":")],0),(0,o.createVNode)(1,"td","LabeledList__cell",!!e.access&&(0,o.createFragment)([(0,o.createTextVNode)("Restrictions Apply")],4),0),(0,o.createVNode)(1,"td","LabeledList__cell LabeledList__buttons",(0,o.createComponentVNode)(2,i.Button,{fluid:!0,content:(l.self_paid?Math.round(1.1*e.cost):e.cost)+" credits",tooltip:e.desc,tooltipPosition:"left",onClick:function(){return(0,a.act)(u,"add",{id:e.id})}}),2)],4,null,e.name)})),0)};return(0,o.createComponentVNode)(2,i.Tabs,{vertical:!0,children:(0,r.map)((function(e){var t=e.name;return(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:t,children:d},t)}))(n)})},u=function(e){var t=e.state,n=e.requests,r=t.config,c=t.data,l=r.ref;return 0===n.length?(0,o.createComponentVNode)(2,i.Box,{color:"good",children:"No Requests"}):(0,o.createVNode)(1,"table","LabeledList",n.map((function(e){return(0,o.createFragment)([(0,o.createVNode)(1,"tr","LabeledList__row candystripe",[(0,o.createVNode)(1,"td","LabeledList__cell LabeledList__label",[(0,o.createTextVNode)("#"),e.id,(0,o.createTextVNode)(":")],0),(0,o.createVNode)(1,"td","LabeledList__cell LabeledList__content",e.object,0),(0,o.createVNode)(1,"td","LabeledList__cell",[(0,o.createTextVNode)("By "),(0,o.createVNode)(1,"b",null,e.orderer,0)],4),(0,o.createVNode)(1,"td","LabeledList__cell",(0,o.createVNode)(1,"i",null,e.reason,0),2),(0,o.createVNode)(1,"td","LabeledList__cell LabeledList__buttons",[e.cost,(0,o.createTextVNode)(" credits"),(0,o.createTextVNode)(" "),!c.requestonly&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Button,{icon:"check",color:"good",onClick:function(){return(0,a.act)(l,"approve",{id:e.id})}}),(0,o.createComponentVNode)(2,i.Button,{icon:"times",color:"bad",onClick:function(){return(0,a.act)(l,"deny",{id:e.id})}})],4)],0)],4)],4,e.id)})),0)},d=function(e){var t=e.state,n=e.cart,r=t.config,c=t.data,l=r.ref;return(0,o.createFragment)([0===n.length&&"Nothing in cart",n.length>0&&(0,o.createComponentVNode)(2,i.LabeledList,{children:n.map((function(e){return(0,o.createComponentVNode)(2,i.LabeledList.Item,{className:"candystripe",label:"#"+e.id,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Box,{inline:!0,mx:2,children:[!!e.paid&&(0,o.createVNode)(1,"b",null,"[Paid Privately]",16)," ",e.cost," credits"]}),(0,o.createComponentVNode)(2,i.Button,{icon:"minus",onClick:function(){return(0,a.act)(l,"remove",{id:e.id})}})],4),children:e.object},e.id)}))}),n.length>0&&!c.requestonly&&(0,o.createComponentVNode)(2,i.Box,{mt:2,children:1===c.away&&1===c.docked&&(0,o.createComponentVNode)(2,i.Button,{color:"green",style:{"line-height":"28px",padding:"0 12px"},content:"Confirm the order",onClick:function(){return(0,a.act)(l,"send")}})||(0,o.createComponentVNode)(2,i.Box,{opacity:.5,children:["Shuttle in ",c.location,"."]})})],0)};t.CargoExpress=function(e){var t=e.state,n=t.config,r=t.data,u=n.ref,d=r.supplies||{};return(0,o.createFragment)([(0,o.createComponentVNode)(2,c.InterfaceLockNoticeBox,{siliconUser:r.siliconUser,locked:r.locked,onLockStatusChange:function(){return(0,a.act)(u,"lock")},accessText:"a QM-level ID card"}),!r.locked&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{title:"Cargo Express",buttons:(0,o.createComponentVNode)(2,i.Box,{inline:!0,bold:!0,children:[(0,o.createComponentVNode)(2,i.AnimatedNumber,{value:Math.round(r.points)})," credits"]}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Landing Location",children:[(0,o.createComponentVNode)(2,i.Button,{content:"Cargo Bay",selected:!r.usingBeacon,onClick:function(){return(0,a.act)(u,"LZCargo")}}),(0,o.createComponentVNode)(2,i.Button,{selected:r.usingBeacon,disabled:!r.hasBeacon,onClick:function(){return(0,a.act)(u,"LZBeacon")},children:[r.beaconzone," (",r.beaconName,")"]}),(0,o.createComponentVNode)(2,i.Button,{content:r.printMsg,disabled:!r.canBuyBeacon,onClick:function(){return(0,a.act)(u,"printBeacon")}})]}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Notice",children:r.message})]})}),(0,o.createComponentVNode)(2,l,{state:t,supplies:d})],4)],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.CellularEmporium=void 0;var o=n(1),r=n(3),a=n(2);t.CellularEmporium=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.abilities;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Genetic Points",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"undo",content:"Readapt",disabled:!i.can_readapt,onClick:function(){return n("readapt")}}),children:i.genetic_points_remaining})})}),(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:c.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{className:"candystripe",label:e.name,buttons:(0,o.createFragment)([e.dna_cost," ",(0,o.createComponentVNode)(2,a.Button,{content:e.owned?"Evolved":"Evolve",selected:e.owned,onClick:function(){return n("evolve",{name:e.name})}})],0),children:[e.desc,(0,o.createComponentVNode)(2,a.Box,{color:"good",children:e.helptext})]},e.name)}))})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.CentcomPodLauncher=void 0;var o=n(1),r=(n(23),n(3)),a=n(2);t.CentcomPodLauncher=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.NoticeBox,{children:"To use this, simply spawn the atoms you want in one of the five Centcom Supplypod Bays. Items in the bay will then be launched inside your supplypod, one turf-full at a time! You can optionally use the following buttons to configure how the supplypod acts."}),(0,o.createComponentVNode)(2,a.Section,{title:"Centcom Pod Customization (To be used against Helen Weinstein)",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Supply Bay",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Bay #1",selected:1===i.bayNumber,onClick:function(){return n("bay1")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Bay #2",selected:2===i.bayNumber,onClick:function(){return n("bay2")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Bay #3",selected:3===i.bayNumber,onClick:function(){return n("bay3")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Bay #4",selected:4===i.bayNumber,onClick:function(){return n("bay4")}}),(0,o.createComponentVNode)(2,a.Button,{content:"ERT Bay",selected:5===i.bayNumber,tooltip:"This bay is located on the western edge of CentCom. Its the\nglass room directly west of where ERT spawn, and south of the\nCentCom ferry. Useful for launching ERT/Deathsquads/etc. onto\nthe station via drop pods.",onClick:function(){return n("bay5")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Teleport to",children:[(0,o.createComponentVNode)(2,a.Button,{content:i.bay,onClick:function(){return n("teleportCentcom")}}),(0,o.createComponentVNode)(2,a.Button,{content:i.oldArea?i.oldArea:"Where you were",disabled:!i.oldArea,onClick:function(){return n("teleportBack")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Clone Mode",children:(0,o.createComponentVNode)(2,a.Button,{content:"Launch Clones",selected:i.launchClone,tooltip:"Choosing this will create a duplicate of the item to be\nlaunched in Centcom, allowing you to send one type of item\nmultiple times. Either way, the atoms are forceMoved into\nthe supplypod after it lands (but before it opens).",onClick:function(){return n("launchClone")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Launch style",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Ordered",selected:1===i.launchChoice,tooltip:'Instead of launching everything in the bay at once, this\nwill "scan" things (one turf-full at a time) in order, left\nto right and top to bottom. undoing will reset the "scanner"\nto the top-leftmost position.',onClick:function(){return n("launchOrdered")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Random",selected:2===i.launchChoice,tooltip:"Instead of launching everything in the bay at once, this\nwill launch one random turf of items at a time.",onClick:function(){return n("launchRandom")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Explosion",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Custom Size",selected:1===i.explosionChoice,tooltip:"This will cause an explosion of whatever size you like\n(including flame range) to occur as soon as the supplypod\nlands. Dont worry, supply-pods are explosion-proof!",onClick:function(){return n("explosionCustom")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Adminbus",selected:2===i.explosionChoice,tooltip:"This will cause a maxcap explosion (dependent on server\nconfig) to occur as soon as the supplypod lands. Dont worry,\nsupply-pods are explosion-proof!",onClick:function(){return n("explosionBus")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Damage",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Custom Damage",selected:1===i.damageChoice,tooltip:"Anyone caught under the pod when it lands will be dealt\nthis amount of brute damage. Sucks to be them!",onClick:function(){return n("damageCustom")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Gib",selected:2===i.damageChoice,tooltip:"This will attempt to gib any mob caught under the pod when\nit lands, as well as dealing a nice 5000 brute damage. Ya\nknow, just to be sure!",onClick:function(){return n("damageGib")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Effects",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Stun",selected:i.effectStun,tooltip:"Anyone who is on the turf when the supplypod is launched\nwill be stunned until the supplypod lands. They cant get\naway that easy!",onClick:function(){return n("effectStun")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Delimb",selected:i.effectLimb,tooltip:"This will cause anyone caught under the pod to lose a limb,\nexcluding their head.",onClick:function(){return n("effectLimb")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Yeet Organs",selected:i.effectOrgans,tooltip:"This will cause anyone caught under the pod to lose all\ntheir limbs and organs in a spectacular fashion.",onClick:function(){return n("effectOrgans")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Movement",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Bluespace",selected:i.effectBluespace,tooltip:"Gives the supplypod an advanced Bluespace Recyling Device.\nAfter opening, the supplypod will be warped directly to the\nsurface of a nearby NT-designated trash planet (/r/ss13).",onClick:function(){return n("effectBluespace")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Stealth",selected:i.effectStealth,tooltip:'This hides the red target icon from appearing when you\nlaunch the supplypod. Combos well with the "Invisible"\nstyle. Sneak attack, go!',onClick:function(){return n("effectStealth")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Quiet",selected:i.effectQuiet,tooltip:"This will keep the supplypod from making any sounds, except\nfor those specifically set by admins in the Sound section.",onClick:function(){return n("effectQuiet")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Reverse Mode",selected:i.effectReverse,tooltip:"This pod will not send any items. Instead, after landing,\nthe supplypod will close (similar to a normal closet closing),\nand then launch back to the right centcom bay to drop off any\nnew contents.",onClick:function(){return n("effectReverse")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Missile Mode",selected:i.effectMissile,tooltip:"This pod will not send any items. Instead, it will immediately\ndelete after landing (Similar visually to setting openDelay\n& departDelay to 0, but this looks nicer). Useful if you just\nwanna fuck some shit up. Combos well with the Missile style.",onClick:function(){return n("effectMissile")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Any Descent Angle",selected:i.effectCircle,tooltip:"This will make the supplypod come in from any angle. Im not\nsure why this feature exists, but here it is.",onClick:function(){return n("effectCircle")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Machine Gun Mode",selected:i.effectBurst,tooltip:"This will make each click launch 5 supplypods inaccuratly\naround the target turf (a 3x3 area). Combos well with the\nMissile Mode if you dont want shit lying everywhere after.",onClick:function(){return n("effectBurst")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Specific Target",selected:i.effectTarget,tooltip:"This will make the supplypod target a specific atom, instead\nof the mouses position. Smiting does this automatically!",onClick:function(){return n("effectTarget")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name/Desc",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Custom Name/Desc",selected:i.effectName,tooltip:"Allows you to add a custom name and description.",onClick:function(){return n("effectName")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Alert Ghosts",selected:i.effectAnnounce,tooltip:"Alerts ghosts when a pod is launched. Useful if some dumb\nshit is aboutta come outta the pod.",onClick:function(){return n("effectAnnounce")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Sound",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Custom Falling Sound",selected:i.fallingSound,tooltip:"Choose a sound to play as the pod falls. Note that for this\nto work right you should know the exact length of the sound,\nin seconds.",onClick:function(){return n("fallSound")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Landing Sound",selected:i.landingSound,tooltip:"Choose a sound to play when the pod lands.",onClick:function(){return n("landingSound")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Opening Sound",selected:i.openingSound,tooltip:"Choose a sound to play when the pod opens.",onClick:function(){return n("openingSound")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Leaving Sound",selected:i.leavingSound,tooltip:"Choose a sound to play when the pod departs (whether that be\ndelection in the case of a bluespace pod, or leaving for\ncentcom for a reversing pod).",onClick:function(){return n("leavingSound")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Admin Sound Volume",selected:i.soundVolume,tooltip:"Choose the volume for the sound to play at. Default values\nare between 1 and 100, but hey, do whatever. Im a tooltip,\nnot a cop.",onClick:function(){return n("soundVolume")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Timers",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Custom Falling Duration",selected:4!==i.fallDuration,tooltip:"Set how long the animation for the pod falling lasts. Create\ndramatic, slow falling pods!",onClick:function(){return n("fallDuration")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Landing Time",selected:20!==i.landingDelay,tooltip:"Choose the amount of time it takes for the supplypod to hit\nthe station. By default this value is 0.5 seconds.",onClick:function(){return n("landingDelay")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Opening Time",selected:30!==i.openingDelay,tooltip:"Choose the amount of time it takes for the supplypod to open\nafter landing. Useful for giving whatevers inside the pod a\nnice dramatic entrance! By default this value is 3 seconds.",onClick:function(){return n("openingDelay")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Leaving Time",selected:30!==i.departureDelay,tooltip:"Choose the amount of time it takes for the supplypod to leave\nafter landing. By default this value is 3 seconds.",onClick:function(){return n("departureDelay")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Style",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.styleChoice,tooltip:"Same color scheme as the normal station-used supplypods",onClick:function(){return n("styleStandard")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:2===i.styleChoice,tooltip:"The same as the stations upgraded blue-and-white\nBluespace Supplypods",onClick:function(){return n("styleBluespace")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Syndicate",selected:4===i.styleChoice,tooltip:"A menacing black and blood-red. Great for sending meme-ops\nin style!",onClick:function(){return n("styleSyndie")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Deathsquad",selected:5===i.styleChoice,tooltip:"A menacing black and dark blue. Great for sending deathsquads\nin style!",onClick:function(){return n("styleBlue")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Cult Pod",selected:6===i.styleChoice,tooltip:"A blood and rune covered cult pod!",onClick:function(){return n("styleCult")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Missile",selected:7===i.styleChoice,tooltip:"A large missile. Combos well with a missile mode, so the\nmissile doesnt stick around after landing.",onClick:function(){return n("styleMissile")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Syndicate Missile",selected:8===i.styleChoice,tooltip:"A large blood-red missile. Combos well with missile mode,\nso the missile doesnt stick around after landing.",onClick:function(){return n("styleSMissile")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Supply Crate",selected:9===i.styleChoice,tooltip:"A large, dark-green military supply crate.",onClick:function(){return n("styleBox")}}),(0,o.createComponentVNode)(2,a.Button,{content:"HONK",selected:10===i.styleChoice,tooltip:"A colorful, clown inspired look.",onClick:function(){return n("styleHONK")}}),(0,o.createComponentVNode)(2,a.Button,{content:"~Fruit",selected:11===i.styleChoice,tooltip:"For when an orange is angry",onClick:function(){return n("styleFruit")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Invisible",selected:12===i.styleChoice,tooltip:'Makes the supplypod invisible! Useful for when you want to\nuse this feature with a gateway or something. Combos well\nwith the "Stealth" and "Quiet Landing" effects.',onClick:function(){return n("styleInvisible")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Gondola",selected:13===i.styleChoice,tooltip:"This gondola can control when he wants to deliver his supplies\nif he has a smart enough mind, so offer up his body to ghosts\nfor maximum enjoyment. (Make sure to turn off bluespace and\nset a arbitrarily high open-time if you do!",onClick:function(){return n("styleGondola")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Show Contents (See Through Pod)",selected:14===i.styleChoice,tooltip:"By selecting this, the pod will instead look like whatevers\ninside it (as if it were the contents falling by themselves,\nwithout a pod). Useful for launching mechs at the station\nand standing tall as they soar in from the heavens.",onClick:function(){return n("styleSeeThrough")}})]})]})}),(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:i.numObjects+" turfs in "+i.bay,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"undo Pody Bay",tooltip:"Manually undoes the possible things to launch in the\npod bay.",onClick:function(){return n("undo")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Enter Launch Mode",selected:i.giveLauncher,tooltip:"THE CODEX ASTARTES CALLS THIS MANEUVER: STEEL RAIN",onClick:function(){return n("giveLauncher")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Clear Selected Bay",color:"bad",tooltip:"This will delete all objs and mobs from the selected bay.",tooltipPosition:"left",onClick:function(){return n("clearBay")}})],4)})})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemAcclimator=void 0;var o=n(1),r=n(3),a=n(2);t.ChemAcclimator=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Acclimator",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Temperature",children:[i.chem_temp," K"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Temperature",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.target_temperature,unit:"K",width:"59px",minValue:0,maxValue:1e3,step:5,stepPixelSize:2,onChange:function(e,t){return n("set_target_temperature",{temperature:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Acceptable Temp. Difference",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.allowed_temperature_difference,unit:"K",width:"59px",minValue:1,maxValue:i.target_temperature,stepPixelSize:2,onChange:function(e,t){n("set_allowed_temperature_difference",{temperature:t})}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Status",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",content:i.enabled?"On":"Off",selected:i.enabled,onClick:function(){return n("toggle_power")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Volume",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.max_volume,unit:"u",width:"50px",minValue:i.reagent_volume,maxValue:200,step:2,stepPixelSize:2,onChange:function(e,t){return n("change_volume",{volume:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Operation",children:i.acclimate_state}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current State",children:i.emptying?"Emptying":"Filling"})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemDebugSynthesizer=void 0;var o=n(1),r=n(3),a=n(2);t.ChemDebugSynthesizer=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.amount,l=i.beakerCurrentVolume,u=i.beakerMaxVolume,d=i.isBeakerLoaded,s=i.beakerContents,p=void 0===s?[]:s;return(0,o.createComponentVNode)(2,a.Section,{title:"Recipient",buttons:d?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return n("ejectBeaker")}}),(0,o.createComponentVNode)(2,a.NumberInput,{value:c,unit:"u",minValue:1,maxValue:u,step:1,stepPixelSize:2,onChange:function(e,t){return n("amount",{amount:t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",content:"Input",onClick:function(){return n("input")}})],4):(0,o.createComponentVNode)(2,a.Button,{icon:"plus",content:"Create Beaker",onClick:function(){return n("makecup")}}),children:d?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:l})," / "+u+" u"]}),p.length>0?(0,o.createComponentVNode)(2,a.LabeledList,{children:p.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,children:[e.volume," u"]},e.name)}))}):(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Recipient Empty"})],0):(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"No Recipient"})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemDispenser=void 0;var o=n(1),r=n(18),a=n(23),i=n(3),c=n(2);t.ChemDispenser=function(e){var t=(0,i.useBackend)(e),n=t.act,l=t.data,u=!!l.recordingRecipe,d=Object.keys(l.recipes).map((function(e){return{name:e,contents:l.recipes[e]}})),s=l.beakerTransferAmounts||[],p=u&&Object.keys(l.recordingRecipe).map((function(e){return{id:e,name:(0,a.toTitleCase)(e.replace(/_/," ")),volume:l.recordingRecipe[e]}}))||l.beakerContents||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Section,{title:"Status",buttons:u&&(0,o.createComponentVNode)(2,c.Box,{inline:!0,mx:1,color:"red",children:[(0,o.createComponentVNode)(2,c.Icon,{name:"circle",mr:1}),"Recording"]}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Energy",children:(0,o.createComponentVNode)(2,c.ProgressBar,{value:l.energy/l.maxEnergy,content:(0,r.toFixed)(l.energy)+" units"})})})}),(0,o.createComponentVNode)(2,c.Section,{title:"Recipes",buttons:(0,o.createFragment)([!u&&(0,o.createComponentVNode)(2,c.Box,{inline:!0,mx:1,children:(0,o.createComponentVNode)(2,c.Button,{color:"transparent",content:"Clear recipes",onClick:function(){return n("clear_recipes")}})}),!u&&(0,o.createComponentVNode)(2,c.Button,{icon:"circle",disabled:!l.isBeakerLoaded,content:"Record",onClick:function(){return n("record_recipe")}}),u&&(0,o.createComponentVNode)(2,c.Button,{icon:"ban",color:"transparent",content:"Discard",onClick:function(){return n("cancel_recording")}}),u&&(0,o.createComponentVNode)(2,c.Button,{icon:"save",color:"green",content:"Save",onClick:function(){return n("save_recording")}})],0),children:(0,o.createComponentVNode)(2,c.Box,{mr:-1,children:[d.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{icon:"tint",width:"129.5px",lineHeight:"21px",content:e.name,onClick:function(){return n("dispense_recipe",{recipe:e.name})}},e.name)})),0===d.length&&(0,o.createComponentVNode)(2,c.Box,{color:"light-gray",children:"No recipes."})]})}),(0,o.createComponentVNode)(2,c.Section,{title:"Dispense",buttons:s.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{icon:"plus",selected:e===l.amount,content:e,onClick:function(){return n("amount",{target:e})}},e)})),children:(0,o.createComponentVNode)(2,c.Box,{mr:-1,children:l.chemicals.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{icon:"tint",width:"129.5px",lineHeight:"21px",content:e.title,onClick:function(){return n("dispense",{reagent:e.id})}},e.id)}))})}),(0,o.createComponentVNode)(2,c.Section,{title:"Beaker",buttons:s.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{icon:"minus",disabled:u,content:e,onClick:function(){return n("remove",{amount:e})}},e)})),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Beaker",buttons:!!l.isBeakerLoaded&&(0,o.createComponentVNode)(2,c.Button,{icon:"eject",content:"Eject",disabled:!l.isBeakerLoaded,onClick:function(){return n("eject")}}),children:(u?"Virtual beaker":l.isBeakerLoaded&&(0,o.createFragment)([(0,o.createComponentVNode)(2,c.AnimatedNumber,{initial:0,value:l.beakerCurrentVolume}),(0,o.createTextVNode)("/"),l.beakerMaxVolume,(0,o.createTextVNode)(" units, "),l.beakerCurrentpH,(0,o.createTextVNode)(" pH")],0))||"No beaker"}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Contents",children:[(0,o.createComponentVNode)(2,c.Box,{color:"label",children:l.isBeakerLoaded||u?0===p.length&&"Nothing":"N/A"}),p.map((function(e){return(0,o.createComponentVNode)(2,c.Box,{color:"label",children:[(0,o.createComponentVNode)(2,c.AnimatedNumber,{initial:0,value:e.volume})," ","units of ",e.name]},e.name)}))]})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemFilter=t.ChemFilterPane=void 0;var o=n(1),r=n(3),a=n(2);var i=function(e){var t=(0,r.useBackend)(e).act,n=e.title,i=e.list,c=e.reagentName,l=e.onReagentInput,u=n.toLowerCase();return(0,o.createComponentVNode)(2,a.Section,{title:n,minHeight:40,ml:.5,mr:.5,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Input,{placeholder:"Reagent",width:"140px",onInput:function(e,t){return l(t)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",onClick:function(){return t("add",{which:u,name:c})}})],4),children:i.map((function(e){return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"minus",content:e,onClick:function(){return t("remove",{which:u,reagent:e})}})],4,e)}))})};t.ChemFilterPane=i;var c=function(e){var t,n;function r(){var t;return(t=e.call(this)||this).state={leftReagentName:"",rightReagentName:""},t}n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var c=r.prototype;return c.setLeftReagentName=function(e){this.setState({leftReagentName:e})},c.setRightReagentName=function(e){this.setState({rightReagentName:e})},c.render=function(){var e=this,t=this.props.state,n=t.data,r=n.left,c=void 0===r?[]:r,l=n.right,u=void 0===l?[]:l;return(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,i,{title:"Left",list:c,reagentName:this.state.leftReagentName,onReagentInput:function(t){return e.setLeftReagentName(t)},state:t})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,i,{title:"Right",list:u,reagentName:this.state.rightReagentName,onReagentInput:function(t){return e.setRightReagentName(t)},state:t})})]})},r}(o.Component);t.ChemFilter=c},function(e,t,n){"use strict";t.__esModule=!0,t.ChemHeater=void 0;var o=n(1),r=n(18),a=n(3),i=n(2),c=n(164);t.ChemHeater=function(e){var t=(0,a.useBackend)(e),n=t.act,l=t.data,u=l.targetTemp,d=l.isActive,s=l.isBeakerLoaded,p=l.currentTemp,m=l.currentpH,f=l.beakerCurrentVolume,h=l.beakerMaxVolume,C=l.beakerContents,g=void 0===C?[]:C;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{title:"Thermostat",buttons:(0,o.createComponentVNode)(2,i.Button,{icon:d?"power-off":"times",selected:d,content:d?"On":"Off",onClick:function(){return n("power")}}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Target",children:(0,o.createComponentVNode)(2,i.NumberInput,{width:"65px",unit:"K",step:2,stepPixelSize:1,value:(0,r.round)(u),minValue:0,maxValue:1e3,onDrag:function(e,t){return n("temperature",{target:t})}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Temperature",children:(0,o.createComponentVNode)(2,i.Box,{width:"60px",textAlign:"right",children:s&&(0,o.createComponentVNode)(2,i.AnimatedNumber,{value:p,format:function(e){return(0,r.toFixed)(e)+" K"}})||"\u2014"})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"pH",children:(0,o.createComponentVNode)(2,i.Box,{width:"60px",textAlign:"right",children:s&&(0,o.createComponentVNode)(2,i.AnimatedNumber,{value:m,format:function(e){return(0,r.toFixed)(e)+" pH"}})||"-"})})]})}),(0,o.createComponentVNode)(2,i.Section,{title:"Beaker",buttons:!!s&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:"label",mr:2,children:[f," / ",h," units"]}),(0,o.createComponentVNode)(2,i.Button,{icon:"eject",content:"Eject",onClick:function(){return n("eject")}})],4),children:(0,o.createComponentVNode)(2,c.BeakerContents,{beakerLoaded:s,beakerContents:g})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemMaster=void 0;var o=n(1),r=n(16),a=n(2);t.ChemMaster=function(e){var t=e.state,n=t.config,l=t.data,d=n.ref,s=(l.screen,l.beakerContents),p=void 0===s?[]:s,m=l.bufferContents,f=void 0===m?[]:m,h=l.beakerCurrentVolume,C=l.beakerMaxVolume,g=l.isBeakerLoaded,b=l.isPillBottleLoaded,N=l.pillBottleCurrentAmount,v=l.pillBottleMaxAmount;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Beaker",buttons:!!l.isBeakerLoaded&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"label",mr:2,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:h,initial:0})," / "+C+" units"]}),(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return(0,r.act)(d,"eject")}})],4),children:[!g&&(0,o.createComponentVNode)(2,a.Box,{color:"label",mt:"3px",mb:"5px",children:"No beaker loaded."}),!!g&&0===p.length&&(0,o.createComponentVNode)(2,a.Box,{color:"label",mt:"3px",mb:"5px",children:"Beaker is empty."}),(0,o.createComponentVNode)(2,i,{children:p.map((function(e){return(0,o.createComponentVNode)(2,c,{state:t,chemical:e,transferTo:"buffer"},e.id)}))})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Buffer",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"label",mr:1,children:"Mode:"}),(0,o.createComponentVNode)(2,a.Button,{color:l.mode?"good":"bad",icon:l.mode?"exchange-alt":"times",content:l.mode?"Transfer":"Destroy",onClick:function(){return(0,r.act)(d,"toggleMode")}})],4),children:[0===f.length&&(0,o.createComponentVNode)(2,a.Box,{color:"label",mt:"3px",mb:"5px",children:"Buffer is empty."}),(0,o.createComponentVNode)(2,i,{children:f.map((function(e){return(0,o.createComponentVNode)(2,c,{state:t,chemical:e,transferTo:"beaker"},e.id)}))})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Packaging",children:(0,o.createComponentVNode)(2,u,{state:t})}),!!b&&(0,o.createComponentVNode)(2,a.Section,{title:"Pill Bottle",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"label",mr:2,children:[N," / ",v," pills"]}),(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return(0,r.act)(d,"ejectPillBottle")}})],4)})],0)};var i=a.Table,c=function(e){var t=e.state,n=e.chemical,i=e.transferTo,c=t.config.ref;return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{color:"label",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:n.volume,initial:0})," units of "+n.name]}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:[(0,o.createComponentVNode)(2,a.Button,{content:"1",onClick:function(){return(0,r.act)(c,"transfer",{id:n.id,amount:1,to:i})}}),(0,o.createComponentVNode)(2,a.Button,{content:"5",onClick:function(){return(0,r.act)(c,"transfer",{id:n.id,amount:5,to:i})}}),(0,o.createComponentVNode)(2,a.Button,{content:"10",onClick:function(){return(0,r.act)(c,"transfer",{id:n.id,amount:10,to:i})}}),(0,o.createComponentVNode)(2,a.Button,{content:"All",onClick:function(){return(0,r.act)(c,"transfer",{id:n.id,amount:1e3,to:i})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"ellipsis-h",title:"Custom amount",onClick:function(){return(0,r.act)(c,"transfer",{id:n.id,amount:-1,to:i})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"question",title:"Analyze",onClick:function(){return(0,r.act)(c,"analyze",{id:n.id})}})]})]},n.id)},l=function(e){var t=e.label,n=e.amountUnit,r=e.amount,i=e.onChangeAmount,c=e.onCreate,l=e.sideNote;return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:t,children:[(0,o.createComponentVNode)(2,a.NumberInput,{width:14,unit:n,step:1,stepPixelSize:15,value:r,minValue:1,maxValue:10,onChange:i}),(0,o.createComponentVNode)(2,a.Button,{ml:1,content:"Create",onClick:c}),(0,o.createComponentVNode)(2,a.Box,{inline:!0,ml:1,color:"label",content:l})]})},u=function(e){var t,n;function i(){var t;return(t=e.call(this)||this).state={pillAmount:1,patchAmount:1,bottleAmount:1,packAmount:1,vialAmount:1,dartAmount:1},t}return n=e,(t=i).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,i.prototype.render=function(){var e=this,t=(this.state,this.props),n=t.state.config.ref,i=this.state,c=i.pillAmount,u=i.patchAmount,d=i.bottleAmount,s=i.packAmount,p=i.vialAmount,m=i.dartAmount,f=t.state.data,h=f.condi,C=f.chosenPillStyle,g=f.pillStyles,b=void 0===g?[]:g;return(0,o.createComponentVNode)(2,a.LabeledList,{children:[!h&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pill type",children:b.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{width:5,selected:e.id===C,textAlign:"center",color:"transparent",onClick:function(){return(0,r.act)(n,"pillStyle",{id:e.id})},children:(0,o.createComponentVNode)(2,a.Box,{mx:-1,className:e.className})},e.id)}))}),!h&&(0,o.createComponentVNode)(2,l,{label:"Pills",amount:c,amountUnit:"pills",sideNote:"max 50u",onChangeAmount:function(t,n){return e.setState({pillAmount:n})},onCreate:function(){return(0,r.act)(n,"create",{type:"pill",amount:c,volume:"auto"})}}),!h&&(0,o.createComponentVNode)(2,l,{label:"Patches",amount:u,amountUnit:"patches",sideNote:"max 40u",onChangeAmount:function(t,n){return e.setState({patchAmount:n})},onCreate:function(){return(0,r.act)(n,"create",{type:"patch",amount:u,volume:"auto"})}}),!h&&(0,o.createComponentVNode)(2,l,{label:"Bottles",amount:d,amountUnit:"bottles",sideNote:"max 30u",onChangeAmount:function(t,n){return e.setState({bottleAmount:n})},onCreate:function(){return(0,r.act)(n,"create",{type:"bottle",amount:d,volume:"auto"})}}),!h&&(0,o.createComponentVNode)(2,l,{label:"Hypovials",amount:p,amountUnit:"vials",sideNote:"max 60u",onChangeAmount:function(t,n){return e.setState({vialAmount:n})},onCreate:function(){return(0,r.act)(n,"create",{type:"hypoVial",amount:p,volume:"auto"})}}),!h&&(0,o.createComponentVNode)(2,l,{label:"Smartdarts",amount:m,amountUnit:"darts",sideNote:"max 20u",onChangeAmount:function(t,n){return e.setState({dartAmount:n})},onCreate:function(){return(0,r.act)(n,"create",{type:"smartDart",amount:m,volume:"auto"})}}),!!h&&(0,o.createComponentVNode)(2,l,{label:"Packs",amount:s,amountUnit:"packs",sideNote:"max 10u",onChangeAmount:function(t,n){return e.setState({packAmount:n})},onCreate:function(){return(0,r.act)(n,"create",{type:"condimentPack",amount:s,volume:"auto"})}}),!!h&&(0,o.createComponentVNode)(2,l,{label:"Bottles",amount:d,amountUnit:"bottles",sideNote:"max 50u",onChangeAmount:function(t,n){return e.setState({bottleAmount:n})},onCreate:function(){return(0,r.act)(n,"create",{type:"condimentBottle",amount:d,volume:"auto"})}})]})},i}(o.Component)},function(e,t,n){"use strict";t.__esModule=!0,t.ChemPress=void 0;var o=n(1),r=n(3),a=n(2);t.ChemPress=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.pill_size,l=i.pill_name,u=i.pill_style,d=i.pill_styles,s=void 0===d?[]:d;return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pill Volume",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:c,unit:"u",width:"43px",minValue:5,maxValue:50,step:1,stepPixelSize:2,onChange:function(e,t){return n("change_pill_size",{volume:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pill Name",children:(0,o.createComponentVNode)(2,a.Input,{value:l,onChange:function(e,t){return n("change_pill_name",{name:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pill Style",children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{width:5,selected:e.id===u,textAlign:"center",color:"transparent",onClick:function(){return n("change_pill_style",{id:e.id})},children:(0,o.createComponentVNode)(2,a.Box,{mx:-1,className:e.class_name})},e.id)}))})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemReactionChamber=void 0;var o=n(1),r=n(16),a=n(2),i=n(24),c=n(12);var l=function(e){var t,n;function l(){var t;return(t=e.call(this)||this).state={reagentName:"",reagentQuantity:1},t}n=e,(t=l).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var u=l.prototype;return u.setReagentName=function(e){this.setState({reagentName:e})},u.setReagentQuantity=function(e){this.setState({reagentQuantity:e})},u.render=function(){var e=this,t=this.props.state,n=t.config,l=t.data,u=n.ref,d=l.emptying,s=l.reagents||[];return(0,o.createComponentVNode)(2,a.Section,{title:"Reagents",buttons:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,color:d?"bad":"good",children:d?"Emptying":"Filling"}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createVNode)(1,"tr","LabledList__row",[(0,o.createVNode)(1,"td","LabeledList__cell",(0,o.createComponentVNode)(2,a.Input,{fluid:!0,value:"",placeholder:"Reagent Name",onInput:function(t,n){return e.setReagentName(n)}}),2,{colSpan:"2"}),(0,o.createVNode)(1,"td",(0,c.classes)(["LabeledList__buttons","LabeledList__cell"]),[(0,o.createComponentVNode)(2,a.NumberInput,{value:this.state.reagentQuantity,minValue:1,maxValue:100,step:1,stepPixelSize:3,width:"39px",onDrag:function(t,n){return e.setReagentQuantity(n)}}),(0,o.createComponentVNode)(2,a.Box,{inline:!0,mr:1}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",onClick:function(){return(0,r.act)(u,"add",{chem:e.state.reagentName,amount:e.state.reagentQuantity})}})],4)],4),(0,i.map)((function(e,t){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:t,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"minus",color:"bad",onClick:function(){return(0,r.act)(u,"remove",{chem:t})}}),children:e},t)}))(s)]})})},l}(o.Component);t.ChemReactionChamber=l},function(e,t,n){"use strict";t.__esModule=!0,t.ChemSplitter=void 0;var o=n(1),r=n(18),a=n(3),i=n(2);t.ChemSplitter=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.straight,u=c.side,d=c.max_transfer;return(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Straight",children:(0,o.createComponentVNode)(2,i.NumberInput,{value:l,unit:"u",width:"55px",minValue:1,maxValue:d,format:function(e){return(0,r.toFixed)(e,2)},step:.05,stepPixelSize:4,onChange:function(e,t){return n("set_amount",{target:"straight",amount:t})}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Side",children:(0,o.createComponentVNode)(2,i.NumberInput,{value:u,unit:"u",width:"55px",minValue:1,maxValue:d,format:function(e){return(0,r.toFixed)(e,2)},step:.05,stepPixelSize:4,onChange:function(e,t){return n("set_amount",{target:"side",amount:t})}})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemSynthesizer=void 0;var o=n(1),r=n(18),a=n(3),i=n(2);t.ChemSynthesizer=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.amount,u=c.current_reagent,d=c.chemicals,s=void 0===d?[]:d,p=c.possible_amounts,m=void 0===p?[]:p;return(0,o.createComponentVNode)(2,i.Section,{children:[(0,o.createComponentVNode)(2,i.Box,{children:m.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{icon:"plus",content:(0,r.toFixed)(e,0),selected:e===l,onClick:function(){return n("amount",{target:e})}},(0,r.toFixed)(e,0))}))}),(0,o.createComponentVNode)(2,i.Box,{mt:1,children:s.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{icon:"tint",content:e.title,width:"129px",selected:e.id===u,onClick:function(){return n("select",{reagent:e.id})}},e.id)}))})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.CodexGigas=void 0;var o=n(1),r=n(3),a=n(2);t.CodexGigas=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{children:[i.name,(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Prefix",children:["Dark","Hellish","Fallen","Fiery","Sinful","Blood","Fluffy"].map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,disabled:1!==i.currentSection,onClick:function(){return n(e+" ")}},e.toLowerCase())}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Title",children:["Lord","Prelate","Count","Viscount","Vizier","Elder","Adept"].map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,disabled:i.currentSection>2,onClick:function(){return n(e+" ")}},e.toLowerCase())}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:["hal","ve","odr","neit","ci","quon","mya","folth","wren","geyr","hil","niet","twou","phi","coa"].map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,disabled:i.currentSection>4,onClick:function(){return n(e)}},e.toLowerCase())}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Suffix",children:["the Red","the Soulless","the Master","the Lord of all things","Jr."].map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,disabled:4!==i.currentSection,onClick:function(){return n(" "+e)}},e.toLowerCase())}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Submit",children:(0,o.createComponentVNode)(2,a.Button,{content:"Search",disabled:i.currentSection<4,onClick:function(){return n("search")}})})]})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.ComputerFabricator=void 0;var o=n(1),r=(n(23),n(3)),a=n(2);t.ComputerFabricator=function(e){var t=e.state,n=(0,r.useBackend)(e),c=n.act,l=n.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{italic:!0,fontSize:"20px",children:"Your perfect device, only three steps away..."}),0!==l.state&&(0,o.createComponentVNode)(2,a.Button,{fluid:!0,mb:1,icon:"circle",content:"Clear Order",onClick:function(){return c("clean_order")}}),(0,o.createComponentVNode)(2,i,{state:t})],0)};var i=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return 0===i.state?(0,o.createComponentVNode)(2,a.Section,{title:"Step 1",minHeight:51,children:[(0,o.createComponentVNode)(2,a.Box,{mt:5,bold:!0,textAlign:"center",fontSize:"40px",children:"Choose your Device"}),(0,o.createComponentVNode)(2,a.Box,{mt:3,children:(0,o.createComponentVNode)(2,a.Grid,{width:"100%",children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"laptop",content:"Laptop",textAlign:"center",fontSize:"30px",lineHeight:"50px",onClick:function(){return n("pick_device",{pick:"1"})}})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"tablet-alt",content:"Tablet",textAlign:"center",fontSize:"30px",lineHeight:"50px",onClick:function(){return n("pick_device",{pick:"2"})}})})]})})]}):1===i.state?(0,o.createComponentVNode)(2,a.Section,{title:"Step 2: Customize your device",minHeight:47,buttons:(0,o.createComponentVNode)(2,a.Box,{bold:!0,color:"good",children:[i.totalprice," cr"]}),children:[(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Battery:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"Allows your device to operate without external utility power\nsource. Advanced batteries increase battery life.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_battery,onClick:function(){return n("hw_battery",{battery:"1"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Upgraded",selected:2===i.hw_battery,onClick:function(){return n("hw_battery",{battery:"2"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:3===i.hw_battery,onClick:function(){return n("hw_battery",{battery:"3"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Hard Drive:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"Stores file on your device. Advanced drives can store more\nfiles, but use more power, shortening battery life.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_disk,onClick:function(){return n("hw_disk",{disk:"1"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Upgraded",selected:2===i.hw_disk,onClick:function(){return n("hw_disk",{disk:"2"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:3===i.hw_disk,onClick:function(){return n("hw_disk",{disk:"3"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Network Card:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"Allows your device to wirelessly connect to stationwide NTNet\nnetwork. Basic cards are limited to on-station use, while\nadvanced cards can operate anywhere near the station, which\nincludes asteroid outposts",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"None",selected:0===i.hw_netcard,onClick:function(){return n("hw_netcard",{netcard:"0"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_netcard,onClick:function(){return n("hw_netcard",{netcard:"1"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:2===i.hw_netcard,onClick:function(){return n("hw_netcard",{netcard:"2"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Nano Printer:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"A device that allows for various paperwork manipulations,\nsuch as, scanning of documents or printing new ones.\nThis device was certified EcoFriendlyPlus and is capable of\nrecycling existing paper for printing purposes.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"None",selected:0===i.hw_nanoprint,onClick:function(){return n("hw_nanoprint",{print:"0"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_nanoprint,onClick:function(){return n("hw_nanoprint",{print:"1"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Card Reader:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"Adds a slot that allows you to manipulate RFID cards.\nPlease note that this is not necessary to allow the device\nto read your identification, it is just necessary to\nmanipulate other cards.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"None",selected:0===i.hw_card,onClick:function(){return n("hw_card",{card:"0"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_card,onClick:function(){return n("hw_card",{card:"1"})}})})]}),2!==i.devtype&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Processor Unit:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"A component critical for your device's functionality.\nIt allows you to run programs from your hard drive.\nAdvanced CPUs use more power, but allow you to run\nmore programs on background at once.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_cpu,onClick:function(){return n("hw_cpu",{cpu:"1"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:2===i.hw_cpu,onClick:function(){return n("hw_cpu",{cpu:"2"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Tesla Relay:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"An advanced wireless power relay that allows your device\nto connect to nearby area power controller to provide\nalternative power source. This component is currently\nunavailable on tablet computers due to size restrictions.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"None",selected:0===i.hw_tesla,onClick:function(){return n("hw_tesla",{tesla:"0"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_tesla,onClick:function(){return n("hw_tesla",{tesla:"1"})}})})]})],4)]}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,mt:3,content:"Confirm Order",color:"good",textAlign:"center",fontSize:"18px",lineHeight:"26px",onClick:function(){return n("confirm_order")}})]}):2===i.state?(0,o.createComponentVNode)(2,a.Section,{title:"Step 3: Payment",minHeight:47,children:[(0,o.createComponentVNode)(2,a.Box,{italic:!0,textAlign:"center",fontSize:"20px",children:"Your device is ready for fabrication..."}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,mt:2,textAlign:"center",fontSize:"16px",children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,children:"Please insert the required"})," ",(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"good",children:[i.totalprice," cr"]})]}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,mt:1,textAlign:"center",fontSize:"18px",children:"Current:"}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,mt:.5,textAlign:"center",fontSize:"18px",color:i.credits>=i.totalprice?"good":"bad",children:[i.credits," cr"]}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Purchase",disabled:i.credits=10&&e<20?i.COLORS.department.security:e>=20&&e<30?i.COLORS.department.medbay:e>=30&&e<40?i.COLORS.department.science:e>=40&&e<50?i.COLORS.department.engineering:e>=50&&e<60?i.COLORS.department.cargo:e>=200&&e<230?i.COLORS.department.centcom:i.COLORS.department.other},u=function(e){var t=e.type,n=e.value;return(0,o.createComponentVNode)(2,a.Box,{inline:!0,width:4,color:i.COLORS.damageType[t],textAlign:"center",children:n})};t.CrewConsole=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,d=i.sensors||[];return(0,o.createComponentVNode)(2,a.Section,{minHeight:90,children:(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Name"}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,collapsing:!0}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,collapsing:!0,textAlign:"center",children:"Vitals"}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Position"}),!!i.link_allowed&&(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,collapsing:!0,children:"Tracking"})]}),d.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:(f=e.ijob,f%10==0),color:l(e.ijob),children:[e.name," (",e.assignment,")"]}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,textAlign:"center",children:(0,o.createComponentVNode)(2,a.ColorBox,{color:(t=e.oxydam,r=e.toxdam,d=e.burndam,s=e.brutedam,p=t+r+d+s,m=Math.min(Math.max(Math.ceil(p/25),0),5),c[m])})}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,textAlign:"center",children:null!==e.oxydam?(0,o.createComponentVNode)(2,a.Box,{inline:!0,children:[(0,o.createComponentVNode)(2,u,{type:"oxy",value:e.oxydam}),"/",(0,o.createComponentVNode)(2,u,{type:"toxin",value:e.toxdam}),"/",(0,o.createComponentVNode)(2,u,{type:"burn",value:e.burndam}),"/",(0,o.createComponentVNode)(2,u,{type:"brute",value:e.brutedam})]}):e.life_status?"Alive":"Dead"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:null!==e.pos_x?e.area:"N/A"}),!!i.link_allowed&&(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:(0,o.createComponentVNode)(2,a.Button,{content:"Track",disabled:!e.can_track,onClick:function(){return n("select_person",{name:e.name})}})})]},e.name);var t,r,d,s,p,m,f}))]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Cryo=void 0;var o=n(1),r=n(3),a=n(2),i=n(164);t.Cryo=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Occupant",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Occupant",content:c.occupant.name?c.occupant.name:"No Occupant"}),!!c.hasOccupant&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"State",content:c.occupant.stat,color:c.occupant.statstate}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Temperature",color:c.occupant.temperaturestatus,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:c.occupant.bodyTemperature})," K"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:c.occupant.health/c.occupant.maxHealth,color:c.occupant.health>0?"good":"average",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:c.occupant.health})})}),[{label:"Brute",type:"bruteLoss"},{label:"Respiratory",type:"oxyLoss"},{label:"Toxin",type:"toxLoss"},{label:"Burn",type:"fireLoss"}].map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.label,children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:c.occupant[e.type]/100,children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:c.occupant[e.type]})})},e.id)}))],0)]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Cell",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",content:(0,o.createComponentVNode)(2,a.Button,{icon:c.isOperating?"power-off":"times",disabled:c.isOpen,onClick:function(){return n("power")},color:c.isOperating&&"green",children:c.isOperating?"On":"Off"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Temperature",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:c.cellTemperature})," K"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door",children:[(0,o.createComponentVNode)(2,a.Button,{icon:c.isOpen?"unlock":"lock",onClick:function(){return n("door")},content:c.isOpen?"Open":"Closed"}),(0,o.createComponentVNode)(2,a.Button,{icon:c.autoEject?"sign-out-alt":"sign-in-alt",onClick:function(){return n("autoeject")},content:c.autoEject?"Auto":"Manual"})]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Beaker",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",disabled:!c.isBeakerLoaded,onClick:function(){return n("ejectbeaker")},content:"Eject"}),children:(0,o.createComponentVNode)(2,i.BeakerContents,{beakerLoaded:c.isBeakerLoaded,beakerContents:c.beakerContents})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.PersonalCrafting=void 0;var o=n(1),r=n(24),a=n(3),i=n(2),c=function(e){var t=e.craftables,n=void 0===t?[]:t,r=(0,a.useBackend)(e),c=r.act,l=r.data,u=l.craftability,d=void 0===u?{}:u,s=l.display_compact,p=l.display_craftable_only;return n.map((function(e){return p&&!d[e.ref]?null:s?(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:e.name,className:"candystripe",buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"cog",content:"Craft",disabled:!d[e.ref],tooltip:e.tool_text&&"Tools needed: "+e.tool_text,tooltipPosition:"left",onClick:function(){return c("make",{recipe:e.ref})}}),children:e.req_text},e.name):(0,o.createComponentVNode)(2,i.Section,{title:e.name,level:2,buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"cog",content:"Craft",disabled:!d[e.ref],onClick:function(){return c("make",{recipe:e.ref})}}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[!!e.req_text&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Required",children:e.req_text}),!!e.catalyst_text&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Catalyst",children:e.catalyst_text}),!!e.tool_text&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Tools",children:e.tool_text})]})},e.name)}))};t.PersonalCrafting=function(e){var t=e.state,n=(0,a.useBackend)(e),l=n.act,u=n.data,d=u.busy,s=u.display_craftable_only,p=u.display_compact,m=(0,r.map)((function(e,t){return{category:t,subcategory:e,hasSubcats:"has_subcats"in e,firstSubcatName:Object.keys(e).find((function(e){return"has_subcats"!==e}))}}))(u.crafting_recipes||{}),f=!!d&&(0,o.createComponentVNode)(2,i.Dimmer,{fontSize:"40px",textAlign:"center",children:(0,o.createComponentVNode)(2,i.Box,{mt:30,children:[(0,o.createComponentVNode)(2,i.Icon,{name:"cog",spin:1})," Crafting..."]})});return(0,o.createFragment)([f,(0,o.createComponentVNode)(2,i.Section,{title:"Personal Crafting",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Button,{icon:p?"check-square-o":"square-o",content:"Compact",selected:p,onClick:function(){return l("toggle_compact")}}),(0,o.createComponentVNode)(2,i.Button,{icon:s?"check-square-o":"square-o",content:"Craftable Only",selected:s,onClick:function(){return l("toggle_recipes")}})],4),children:(0,o.createComponentVNode)(2,i.Tabs,{children:m.map((function(e){return(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:e.category,onClick:function(){return l("set_category",{category:e.category,subcategory:e.firstSubcatName})},children:function(){return!e.hasSubcats&&(0,o.createComponentVNode)(2,c,{craftables:e.subcategory,state:t})||(0,o.createComponentVNode)(2,i.Tabs,{vertical:!0,children:(0,r.map)((function(e,n){if("has_subcats"!==n)return(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:n,onClick:function(){return l("set_category",{subcategory:n})},children:function(){return(0,o.createComponentVNode)(2,c,{craftables:e,state:t})}})}))(e.subcategory)})}},e.category)}))})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.DecalPainter=void 0;var o=n(1),r=n(3),a=n(2);t.DecalPainter=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.decal_list||[],l=i.color_list||[],u=i.dir_list||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Decal Type",children:c.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.name,selected:e.decal===i.decal_style,onClick:function(){return n("select decal",{decals:e.decal})}},e.decal)}))}),(0,o.createComponentVNode)(2,a.Section,{title:"Decal Color",children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:"red"===e.colors?"Red":"white"===e.colors?"White":"Yellow",selected:e.colors===i.decal_color,onClick:function(){return n("select color",{colors:e.colors})}},e.colors)}))}),(0,o.createComponentVNode)(2,a.Section,{title:"Decal Direction",children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:1===e.dirs?"North":2===e.dirs?"South":4===e.dirs?"East":"West",selected:e.dirs===i.decal_direction,onClick:function(){return n("selected direction",{dirs:e.dirs})}},e.dirs)}))})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.DisposalUnit=void 0;var o=n(1),r=n(3),a=n(2);t.DisposalUnit=function(e){var t,n,i=(0,r.useBackend)(e),c=i.act,l=i.data;return l.full_pressure?(t="good",n="Ready"):l.panel_open?(t="bad",n="Power Disabled"):l.pressure_charging?(t="average",n="Pressurizing"):(t="bad",n="Off"),(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"State",color:t,children:n}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:l.per,color:"good"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Handle",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.flush?"toggle-on":"toggle-off",disabled:l.isai||l.panel_open,content:l.flush?"Disengage":"Engage",onClick:function(){return c(l.flush?"handle-0":"handle-1")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Eject",children:(0,o.createComponentVNode)(2,a.Button,{icon:"sign-out-alt",disabled:l.isai,content:"Eject Contents",onClick:function(){return c("eject")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",disabled:l.panel_open,selected:l.pressure_charging,onClick:function(){return c(l.pressure_charging?"pump-0":"pump-1")}})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.DnaVault=void 0;var o=n(1),r=n(3),a=n(2);t.DnaVault=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.completed,l=i.used,u=i.choiceA,d=i.choiceB,s=i.dna,p=i.dna_max,m=i.plants,f=i.plants_max,h=i.animals,C=i.animals_max;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"DNA Vault Database",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Human DNA",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:s/p,content:s+" / "+p+" Samples"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Plant DNA",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:m/f,content:m+" / "+f+" Samples"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Animal DNA",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:h/h,content:h+" / "+C+" Samples"})})]})}),!(!c||l)&&(0,o.createComponentVNode)(2,a.Section,{title:"Personal Gene Therapy",children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",mb:1,children:"Applicable Gene Therapy Treatments"}),(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:u,textAlign:"center",onClick:function(){return n("gene",{choice:u})}})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:d,textAlign:"center",onClick:function(){return n("gene",{choice:d})}})})]})]})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.EightBallVote=void 0;var o=n(1),r=n(3),a=n(2),i=n(23);t.EightBallVote=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data,l=c.question,u=c.shaking,d=c.answers,s=void 0===d?[]:d;return u?(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",fontSize:"16px",m:1,children:['"',l,'"']}),(0,o.createComponentVNode)(2,a.Grid,{children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:(0,i.toTitleCase)(e.answer),selected:e.selected,fontSize:"16px",lineHeight:"24px",textAlign:"center",mb:1,onClick:function(){return n("vote",{answer:e.answer})}}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",fontSize:"30px",children:e.amount})]},e.answer)}))})]}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No question is currently being asked."})}},function(e,t,n){"use strict";t.__esModule=!0,t.EmergencyShuttleConsole=void 0;var o=n(1),r=n(2),a=n(3);t.EmergencyShuttleConsole=function(e){var t=(0,a.useBackend)(e),n=t.act,i=t.data,c=i.timer_str,l=i.enabled,u=i.emagged,d=i.engines_started,s=i.authorizations_remaining,p=i.authorizations,m=void 0===p?[]:p;return(0,o.createComponentVNode)(2,r.Section,{children:[(0,o.createComponentVNode)(2,r.Box,{bold:!0,fontSize:"40px",textAlign:"center",fontFamily:"monospace",children:c}),(0,o.createComponentVNode)(2,r.Box,{textAlign:"center",fontSize:"16px",mb:1,children:[(0,o.createComponentVNode)(2,r.Box,{inline:!0,bold:!0,children:"ENGINES:"}),(0,o.createComponentVNode)(2,r.Box,{inline:!0,color:d?"good":"average",ml:1,children:d?"Online":"Idle"})]}),(0,o.createComponentVNode)(2,r.Section,{title:"Early Launch Authorization",level:2,buttons:(0,o.createComponentVNode)(2,r.Button,{icon:"times",content:"Repeal All",color:"bad",disabled:!l,onClick:function(){return n("abort")}}),children:[(0,o.createComponentVNode)(2,r.Grid,{children:[(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.Button,{fluid:!0,icon:"exclamation-triangle",color:"good",content:"AUTHORIZE",disabled:!l,onClick:function(){return n("authorize")}})}),(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.Button,{fluid:!0,icon:"minus",content:"REPEAL",disabled:!l,onClick:function(){return n("repeal")}})})]}),(0,o.createComponentVNode)(2,r.Section,{title:"Authorizations",level:3,minHeight:"150px",buttons:(0,o.createComponentVNode)(2,r.Box,{inline:!0,bold:!0,color:u?"bad":"good",children:u?"ERROR":"Remaining: "+s}),children:[m.length>0?m.map((function(e){return(0,o.createComponentVNode)(2,r.Box,{bold:!0,fontSize:"16px",className:"candystripe",children:[e.name," (",e.job,")"]},e.name)})):(0,o.createComponentVNode)(2,r.Box,{bold:!0,textAlign:"center",fontSize:"16px",color:"average",children:"No Active Authorizations"}),m.map((function(e){return(0,o.createComponentVNode)(2,r.Box,{bold:!0,fontSize:"16px",className:"candystripe",children:[e.name," (",e.job,")"]},e.name)}))]})]})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.EngravedMessage=void 0;var o=n(1),r=n(23),a=n(3),i=n(2);t.EngravedMessage=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.admin_mode,u=c.creator_key,d=c.creator_name,s=c.has_liked,p=c.has_disliked,m=c.hidden_message,f=c.is_creator,h=c.num_likes,C=c.num_dislikes,g=c.realdate;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{children:[(0,o.createComponentVNode)(2,i.Box,{bold:!0,textAlign:"center",fontSize:"20px",mb:2,children:(0,r.decodeHtmlEntities)(m)}),(0,o.createComponentVNode)(2,i.Grid,{children:[(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.Button,{fluid:!0,icon:"arrow-up",content:" "+h,disabled:f,selected:s,textAlign:"center",fontSize:"16px",lineHeight:"24px",onClick:function(){return n("like")}})}),(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.Button,{fluid:!0,icon:"circle",disabled:f,selected:!p&&!s,textAlign:"center",fontSize:"16px",lineHeight:"24px",onClick:function(){return n("neutral")}})}),(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.Button,{fluid:!0,icon:"arrow-down",content:" "+C,disabled:f,selected:p,textAlign:"center",fontSize:"16px",lineHeight:"24px",onClick:function(){return n("dislike")}})})]})]}),(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Created On",children:g})})}),(0,o.createComponentVNode)(2,i.Section),!!l&&(0,o.createComponentVNode)(2,i.Section,{title:"Admin Panel",buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"times",content:"Delete",color:"bad",onClick:function(){return n("delete")}}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Creator Ckey",children:u}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Creator Character Name",children:d})]})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.Gps=void 0;var o=n(1),r=n(24),a=n(70),i=n(18),c=n(156),l=n(3),u=n(2),d=function(e){return(0,r.map)(parseFloat)(e.split(", "))};t.Gps=function(e){var t=(0,l.useBackend)(e),n=t.act,s=t.data,p=s.currentArea,m=s.currentCoords,f=s.globalmode,h=s.power,C=s.tag,g=s.updating,b=(0,a.flow)([(0,r.map)((function(e,t){var n=e.dist&&Math.round((0,c.vecLength)((0,c.vecSubtract)(d(m),d(e.coords))));return Object.assign({},e,{dist:n,index:t})})),(0,r.sortBy)((function(e){return e.dist===undefined}),(function(e){return e.entrytag}))])(s.signals||[]);return(0,o.createFragment)([(0,o.createComponentVNode)(2,u.Section,{title:"Control",buttons:(0,o.createComponentVNode)(2,u.Button,{icon:"power-off",content:h?"On":"Off",selected:h,onClick:function(){return n("power")}}),children:(0,o.createComponentVNode)(2,u.LabeledList,{children:[(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Tag",children:(0,o.createComponentVNode)(2,u.Button,{icon:"pencil-alt",content:C,onClick:function(){return n("rename")}})}),(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Scan Mode",children:(0,o.createComponentVNode)(2,u.Button,{icon:g?"unlock":"lock",content:g?"AUTO":"MANUAL",color:!g&&"bad",onClick:function(){return n("updating")}})}),(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Range",children:(0,o.createComponentVNode)(2,u.Button,{icon:"sync",content:f?"MAXIMUM":"LOCAL",selected:!f,onClick:function(){return n("globalmode")}})})]})}),!!h&&(0,o.createFragment)([(0,o.createComponentVNode)(2,u.Section,{title:"Current Location",children:(0,o.createComponentVNode)(2,u.Box,{fontSize:"18px",children:[p," (",m,")"]})}),(0,o.createComponentVNode)(2,u.Section,{title:"Detected Signals",children:(0,o.createComponentVNode)(2,u.Table,{children:[(0,o.createComponentVNode)(2,u.Table.Row,{bold:!0,children:[(0,o.createComponentVNode)(2,u.Table.Cell,{content:"Name"}),(0,o.createComponentVNode)(2,u.Table.Cell,{collapsing:!0,content:"Direction"}),(0,o.createComponentVNode)(2,u.Table.Cell,{collapsing:!0,content:"Coordinates"})]}),b.map((function(e){return(0,o.createComponentVNode)(2,u.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,u.Table.Cell,{bold:!0,color:"label",children:e.entrytag}),(0,o.createComponentVNode)(2,u.Table.Cell,{collapsing:!0,opacity:e.dist!==undefined&&(0,i.clamp)(1.2/Math.log(Math.E+e.dist/20),.4,1),children:[e.degrees!==undefined&&(0,o.createComponentVNode)(2,u.Icon,{mr:1,size:1.2,name:"arrow-up",rotation:e.degrees}),e.dist!==undefined&&e.dist+"m"]}),(0,o.createComponentVNode)(2,u.Table.Cell,{collapsing:!0,children:e.coords})]},e.entrytag+e.coords+e.index)}))]})})],4)],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.GravityGenerator=void 0;var o=n(1),r=n(3),a=n(2);t.GravityGenerator=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.breaker,l=i.charge_count,u=i.charging_state,d=i.on,s=i.operational;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{children:!s&&(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"No data available"})||(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Breaker",children:(0,o.createComponentVNode)(2,a.Button,{icon:c?"power-off":"times",content:c?"On":"Off",selected:c,disabled:!s,onClick:function(){return n("gentoggle")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Gravity Charge",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:l/100,ranges:{good:[.7,Infinity],average:[.3,.7],bad:[-Infinity,.3]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge Mode",children:[0===u&&(d&&(0,o.createComponentVNode)(2,a.Box,{color:"good",children:"Fully Charged"})||(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Not Charging"})),1===u&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"Charging"}),2===u&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"Discharging"})]})]})}),s&&0!==u&&(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"WARNING - Radiation detected"}),s&&0===u&&(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"No radiation detected"})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.GulagTeleporterConsole=void 0;var o=n(1),r=n(3),a=n(2);t.GulagTeleporterConsole=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.teleporter,l=i.teleporter_lock,u=i.teleporter_state_open,d=i.teleporter_location,s=i.beacon,p=i.beacon_location,m=i.id,f=i.id_name,h=i.can_teleport,C=i.goal,g=void 0===C?0:C,b=i.prisoner,N=void 0===b?{}:b;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Teleporter Console",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:u?"Open":"Closed",disabled:l,selected:u,onClick:function(){return n("toggle_open")}}),(0,o.createComponentVNode)(2,a.Button,{icon:l?"lock":"unlock",content:l?"Locked":"Unlocked",selected:l,disabled:u,onClick:function(){return n("teleporter_lock")}})],4),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Teleporter Unit",color:c?"good":"bad",buttons:!c&&(0,o.createComponentVNode)(2,a.Button,{content:"Reconnect",onClick:function(){return n("scan_teleporter")}}),children:c?d:"Not Connected"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Receiver Beacon",color:s?"good":"bad",buttons:!s&&(0,o.createComponentVNode)(2,a.Button,{content:"Reconnect",onClick:function(){return n("scan_beacon")}}),children:s?p:"Not Connected"})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Prisoner Details",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Prisoner ID",children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:m?f:"No ID",onClick:function(){return n("handle_id")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Point Goal",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:g,width:"48px",minValue:1,maxValue:1e3,onChange:function(e,t){return n("set_goal",{value:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Occupant",children:N.name?N.name:"No Occupant"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Criminal Status",children:N.crimstat?N.crimstat:"No Status"})]})}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Process Prisoner",disabled:!h,textAlign:"center",color:"bad",onClick:function(){return n("teleport")}})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.GulagItemReclaimer=void 0;var o=n(1),r=n(3),a=n(2);t.GulagItemReclaimer=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.mobs||[];return(0,o.createComponentVNode)(2,a.Section,{title:"Stored Items",children:(0,o.createComponentVNode)(2,a.Table,{children:c.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.name}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"right",children:(0,o.createComponentVNode)(2,a.Button,{content:"Retrieve Items",disabled:!i.can_reclaim,onClick:function(){return n("release_items",{mobref:e.mob})}})})]},e.mob)}))})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Holodeck=void 0;var o=n(1),r=n(3),a=n(2);t.Holodeck=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.can_toggle_safety,l=i.default_programs,u=void 0===l?[]:l,d=i.emag_programs,s=void 0===d?[]:d,p=i.emagged,m=i.program;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Default Programs",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:p?"unlock":"lock",content:"Safeties",color:"bad",disabled:!c,selected:!p,onClick:function(){return n("safety")}}),children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.name.substring(11),textAlign:"center",selected:e.type===m,onClick:function(){return n("load_program",{type:e.type})}},e.type)}))}),!!p&&(0,o.createComponentVNode)(2,a.Section,{title:"Dangerous Programs",children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.name.substring(11),color:"bad",textAlign:"center",selected:e.type===m,onClick:function(){return n("load_program",{type:e.type})}},e.type)}))})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.ImplantChair=void 0;var o=n(1),r=n(3),a=n(2);t.ImplantChair=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Occupant Information",textAlign:"center",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:i.occupant.name?i.occupant.name:"No Occupant"}),!!i.occupied&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:0===i.occupant.stat?"good":1===i.occupant.stat?"average":"bad",children:0===i.occupant.stat?"Conscious":1===i.occupant.stat?"Unconcious":"Dead"})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Operations",textAlign:"center",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door",children:(0,o.createComponentVNode)(2,a.Button,{icon:i.open?"unlock":"lock",color:i.open?"default":"red",content:i.open?"Open":"Closed",onClick:function(){return n("door")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Implant Occupant",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"code-branch",content:i.ready?i.special_name||"Implant":"Recharging",onClick:function(){return n("implant")}}),0===i.ready&&(0,o.createComponentVNode)(2,a.Icon,{name:"cog",color:"orange",spin:!0})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Implants Remaining",children:[i.ready_implants,1===i.replenishing&&(0,o.createComponentVNode)(2,a.Icon,{name:"sync",color:"red",spin:!0})]})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.Intellicard=void 0;var o=n(1),r=n(3),a=n(2);t.Intellicard=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=u||d,l=i.name,u=i.isDead,d=i.isBraindead,s=i.health,p=i.wireless,m=i.radio,f=i.wiping,h=i.laws,C=void 0===h?[]:h;return(0,o.createComponentVNode)(2,a.Section,{title:l||"Empty Card",buttons:!!l&&(0,o.createComponentVNode)(2,a.Button,{icon:"trash",content:f?"Stop Wiping":"Wipe",disabled:u,onClick:function(){return n("wipe")}}),children:!!l&&(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:c?"bad":"good",children:c?"Offline":"Operation"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Software Integrity",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:s,minValue:0,maxValue:100,ranges:{good:[70,Infinity],average:[50,70],bad:[-Infinity,50]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Settings",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"signal",content:"Wireless Activity",selected:p,onClick:function(){return n("wireless")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"microphone",content:"Subspace Radio",selected:m,onClick:function(){return n("radio")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Laws",children:C.map((function(e){return(0,o.createComponentVNode)(2,a.BlockQuote,{children:e},e)}))})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.KeycardAuth=void 0;var o=n(1),r=n(3),a=n(2);t.KeycardAuth=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Box,{children:1===i.waiting&&(0,o.createVNode)(1,"span",null,"Waiting for another device to confirm your request...",16)}),(0,o.createComponentVNode)(2,a.Box,{children:0===i.waiting&&(0,o.createFragment)([!!i.auth_required&&(0,o.createComponentVNode)(2,a.Button,{icon:"check-square",color:"red",textAlign:"center",lineHeight:"60px",fluid:!0,onClick:function(){return n("auth_swipe")},content:"Authorize"}),0===i.auth_required&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"exclamation-triangle",fluid:!0,onClick:function(){return n("red_alert")},content:"Red Alert"}),(0,o.createComponentVNode)(2,a.Button,{icon:"wrench",fluid:!0,onClick:function(){return n("emergency_maint")},content:"Emergency Maintenance Access"}),(0,o.createComponentVNode)(2,a.Button,{icon:"meteor",fluid:!0,onClick:function(){return n("bsa_unlock")},content:"Bluespace Artillery Unlock"})],4)],0)})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.LaborClaimConsole=void 0;var o=n(1),r=n(23),a=n(3),i=n(2);t.LaborClaimConsole=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.can_go_home,u=c.id_points,d=c.ores,s=c.status_info,p=c.unclaimed_points;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Status",children:s}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Shuttle controls",children:(0,o.createComponentVNode)(2,i.Button,{content:"Move shuttle",disabled:!l,onClick:function(){return n("move_shuttle")}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Points",children:u}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Unclaimed points",buttons:(0,o.createComponentVNode)(2,i.Button,{content:"Claim points",disabled:!p,onClick:function(){return n("claim_points")}}),children:p})]})}),(0,o.createComponentVNode)(2,i.Section,{title:"Material values",children:(0,o.createComponentVNode)(2,i.Table,{children:[(0,o.createComponentVNode)(2,i.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:"Material"}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:"Value"})]}),d.map((function(e){return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:(0,r.toTitleCase)(e.ore)}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,i.Box,{color:"label",inline:!0,children:e.value})})]},e.ore)}))]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.LanguageMenu=void 0;var o=n(1),r=n(3),a=n(2);t.LanguageMenu=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.admin_mode,l=i.is_living,u=i.omnitongue,d=i.languages,s=void 0===d?[]:d,p=i.unknown_languages,m=void 0===p?[]:p;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Known Languages",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:s.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,buttons:(0,o.createFragment)([!!l&&(0,o.createComponentVNode)(2,a.Button,{content:e.is_default?"Default Language":"Select as Default",disabled:!e.can_speak,selected:e.is_default,onClick:function(){return n("select_default",{language_name:e.name})}}),!!c&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"Grant",onClick:function(){return n("grant_language",{language_name:e.name})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Remove",onClick:function(){return n("remove_language",{language_name:e.name})}})],4)],0),children:[e.desc," ","Key: ,",e.key," ",e.can_understand?"Can understand.":"Cannot understand."," ",e.can_speak?"Can speak.":"Cannot speak."]},e.name)}))})}),!!c&&(0,o.createComponentVNode)(2,a.Section,{title:"Unknown Languages",buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Omnitongue "+(u?"Enabled":"Disabled"),selected:u,onClick:function(){return n("toggle_omnitongue")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:m.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Grant",onClick:function(){return n("grant_language",{language_name:e.name})}}),children:[e.desc," ","Key: ,",e.key," ",e.can_understand?"Can understand.":"Cannot understand."," ",e.can_speak?"Can speak.":"Cannot speak."]},e.name)}))})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.LaunchpadConsole=t.LaunchpadRemote=t.LaunchpadControl=t.LaunchpadButtonPad=void 0;var o=n(1),r=n(3),a=n(2),i=function(e){var t=(0,r.useBackend)(e).act;return(0,o.createComponentVNode)(2,a.Grid,{width:"1px",children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-left",iconRotation:45,mb:1,onClick:function(){return t("move_pos",{x:-1,y:1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-left",mb:1,onClick:function(){return t("move_pos",{x:-1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-down",iconRotation:45,mb:1,onClick:function(){return t("move_pos",{x:-1,y:-1})}})]}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-up",mb:1,onClick:function(){return t("move_pos",{y:1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"R",mb:1,onClick:function(){return t("set_pos",{x:0,y:0})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-down",mb:1,onClick:function(){return t("move_pos",{y:-1})}})]}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-up",iconRotation:45,mb:1,onClick:function(){return t("move_pos",{x:1,y:1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-right",mb:1,onClick:function(){return t("move_pos",{x:1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-right",iconRotation:45,mb:1,onClick:function(){return t("move_pos",{x:1,y:-1})}})]})]})};t.LaunchpadButtonPad=i;var c=function(e){var t=e.topLevel,n=(0,r.useBackend)(e),c=n.act,l=n.data,u=l.x,d=l.y,s=l.pad_name,p=l.range;return(0,o.createComponentVNode)(2,a.Section,{title:(0,o.createComponentVNode)(2,a.Input,{value:s,width:"170px",onChange:function(e,t){return c("rename",{name:t})}}),level:t?1:2,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Remove",color:"bad",onClick:function(){return c("remove")}}),children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Controls",level:2,children:(0,o.createComponentVNode)(2,i,{state:e.state})})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Target",level:2,children:(0,o.createComponentVNode)(2,a.Box,{fontSize:"26px",children:[(0,o.createComponentVNode)(2,a.Box,{mb:1,children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:"X:"}),(0,o.createComponentVNode)(2,a.NumberInput,{value:u,minValue:-p,maxValue:p,lineHeight:"30px",fontSize:"26px",width:"90px",height:"30px",stepPixelSize:10,onChange:function(e,t){return c("set_pos",{x:t})}})]}),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:"Y:"}),(0,o.createComponentVNode)(2,a.NumberInput,{value:d,minValue:-p,maxValue:p,stepPixelSize:10,lineHeight:"30px",fontSize:"26px",width:"90px",height:"30px",onChange:function(e,t){return c("set_pos",{y:t})}})]})]})})})]}),(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"upload",content:"Launch",textAlign:"center",onClick:function(){return c("launch")}})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"download",content:"Pull",textAlign:"center",onClick:function(){return c("pull")}})})]})]})};t.LaunchpadControl=c;t.LaunchpadRemote=function(e){var t=(0,r.useBackend)(e).data,n=t.has_pad,i=t.pad_closed;return n?i?(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Launchpad Closed"}):(0,o.createComponentVNode)(2,c,{topLevel:!0,state:e.state}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No Launchpad Connected"})};t.LaunchpadConsole=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,l=i.launchpads,u=void 0===l?[]:l,d=i.selected_id;return u.length<=0?(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No Pads Connected"}):(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{size:.6,children:(0,o.createComponentVNode)(2,a.Box,{style:{"border-right":"2px solid rgba(255, 255, 255, 0.1)"},minHeight:"190px",mr:1,children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.name,selected:d===e.id,color:"transparent",onClick:function(){return n("select_pad",{id:e.id})}},e.name)}))})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:d?(0,o.createComponentVNode)(2,c,{state:e.state}):(0,o.createComponentVNode)(2,a.Box,{children:"Please select a pad"})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.MechBayPowerConsole=void 0;var o=n(1),r=n(3),a=n(2);t.MechBayPowerConsole=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data.recharge_port,c=i&&i.mech,l=c&&c.cell;return(0,o.createComponentVNode)(2,a.Section,{title:"Mech status",textAlign:"center",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Sync",onClick:function(){return n("reconnect")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Integrity",children:!i&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No power port detected. Please re-sync."})||!c&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No mech detected."})||(0,o.createComponentVNode)(2,a.ProgressBar,{value:c.health/c.maxhealth,ranges:{good:[.7,Infinity],average:[.3,.7],bad:[-Infinity,.3]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:!i&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No power port detected. Please re-sync."})||!c&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No mech detected."})||!l&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No cell is installed."})||(0,o.createComponentVNode)(2,a.ProgressBar,{value:l.charge/l.maxcharge,ranges:{good:[.7,Infinity],average:[.3,.7],bad:[-Infinity,.3]},children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:l.charge})," / "+l.maxcharge]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NaniteChamberControl=void 0;var o=n(1),r=n(3),a=n(2);t.NaniteChamberControl=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.status_msg,l=i.locked,u=i.occupant_name,d=i.has_nanites,s=i.nanite_volume,p=i.regen_rate,m=i.safety_threshold,f=i.cloud_id,h=i.scan_level;if(c)return(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:c});var C=i.mob_programs||[];return(0,o.createComponentVNode)(2,a.Section,{title:"Chamber: "+u,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:l?"lock":"lock-open",content:l?"Locked":"Unlocked",color:l?"bad":"default",onClick:function(){return n("toggle_lock")}}),children:d?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Status",level:2,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"exclamation-triangle",content:"Destroy Nanites",color:"bad",onClick:function(){return n("remove_nanites")}}),children:(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Nanite Volume",children:s}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Growth Rate",children:p})]})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Safety Threshold",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:m,minValue:0,maxValue:500,width:"39px",onChange:function(e,t){return n("set_safety",{value:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cloud ID",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:f,minValue:0,maxValue:100,step:1,stepPixelSize:3,width:"39px",onChange:function(e,t){return n("set_cloud",{value:t})}})})]})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Programs",level:2,children:C.map((function(e){var t=e.extra_settings||[],n=e.rules||[];return(0,o.createComponentVNode)(2,a.Collapsible,{title:e.name,children:(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:e.desc}),h>=2&&(0,o.createComponentVNode)(2,a.Grid.Column,{size:.6,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Activation Status",children:(0,o.createComponentVNode)(2,a.Box,{color:e.activated?"good":"bad",children:e.activated?"Active":"Inactive"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Nanites Consumed",children:[e.use_rate,"/s"]})]})})]}),h>=2&&(0,o.createComponentVNode)(2,a.Grid,{children:[!!e.can_trigger&&(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Triggers",level:2,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cost",children:e.trigger_cost}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cooldown",children:e.trigger_cooldown}),!!e.timer_trigger_delay&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Delay",children:[e.timer_trigger_delay," s"]}),!!e.timer_trigger&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Repeat Timer",children:[e.timer_trigger," s"]})]})})}),!(!e.timer_restart&&!e.timer_shutdown)&&(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[e.timer_restart&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Restart Timer",children:[e.timer_restart," s"]}),e.timer_shutdown&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Shutdown Timer",children:[e.timer_shutdown," s"]})]})})})]}),h>=3&&!!e.has_extra_settings&&(0,o.createComponentVNode)(2,a.Section,{title:"Extra Settings",level:2,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:t.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,children:e.value},e.name)}))})}),h>=4&&(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Codes",level:2,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[!!e.activation_code&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Activation",children:e.activation_code}),!!e.deactivation_code&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deactivation",children:e.deactivation_code}),!!e.kill_code&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Kill",children:e.kill_code}),!!e.can_trigger&&!!e.trigger_code&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger",children:e.trigger_code})]})})}),e.has_rules&&(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Rules",level:2,children:n.map((function(e){return(0,o.createFragment)([e.display,(0,o.createVNode)(1,"br")],0,e.display)}))})})]})]})},e.name)}))})],4):(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{bold:!0,color:"bad",textAlign:"center",fontSize:"30px",mb:1,children:"No Nanites Detected"}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,icon:"syringe",content:" Implant Nanites",color:"green",textAlign:"center",fontSize:"30px",lineHeight:"50px",onClick:function(){return n("nanite_injection")}})],4)})}},function(e,t,n){"use strict";t.__esModule=!0,t.NaniteCloudControl=t.NaniteCloudBackupDetails=t.NaniteCloudBackupList=t.NaniteInfoBox=t.NaniteDiskBox=void 0;var o=n(1),r=n(3),a=n(2),i=function(e){var t=e.state.data,n=t.has_disk,r=t.has_program,i=t.disk;return n?r?(0,o.createComponentVNode)(2,c,{program:i}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Inserted disk has no program"}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No disk inserted"})};t.NaniteDiskBox=i;var c=function(e){var t=e.program,n=t.name,r=t.desc,i=t.activated,c=t.use_rate,l=t.can_trigger,u=t.trigger_cost,d=t.trigger_cooldown,s=t.activation_code,p=t.deactivation_code,m=t.kill_code,f=t.trigger_code,h=t.timer_restart,C=t.timer_shutdown,g=t.timer_trigger,b=t.timer_trigger_delay,N=t.extra_settings||[];return(0,o.createComponentVNode)(2,a.Section,{title:n,level:2,buttons:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,color:i?"good":"bad",children:i?"Activated":"Deactivated"}),children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{mr:1,children:r}),(0,o.createComponentVNode)(2,a.Grid.Column,{size:.5,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Use Rate",children:c}),!!l&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cost",children:u}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cooldown",children:d})],4)]})})]}),(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Codes",level:3,mr:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Activation",children:s}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deactivation",children:p}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Kill",children:m}),!!l&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger",children:f})]})})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Delays",level:3,mr:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Restart",children:[h," s"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Shutdown",children:[C," s"]}),!!l&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger",children:[g," s"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Delay",children:[b," s"]})],4)]})})})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Extra Settings",level:3,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:N.map((function(e){var t={number:(0,o.createFragment)([e.value,e.unit],0),text:e.value,type:e.value,boolean:e.value?e.true_text:e.false_text};return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,children:t[e.type]},e.name)}))})})]})};t.NaniteInfoBox=c;var l=function(e){var t=(0,r.useBackend)(e),n=t.act;return(t.data.cloud_backups||[]).map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Backup #"+e.cloud_id,textAlign:"center",onClick:function(){return n("set_view",{view:e.cloud_id})}},e.cloud_id)}))};t.NaniteCloudBackupList=l;var u=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,l=i.current_view,u=i.disk,d=i.has_program,s=i.cloud_backup,p=u&&u.can_rule||!1;if(!s)return(0,o.createComponentVNode)(2,a.NoticeBox,{children:"ERROR: Backup not found"});var m=i.cloud_programs||[];return(0,o.createComponentVNode)(2,a.Section,{title:"Backup #"+l,level:2,buttons:!!d&&(0,o.createComponentVNode)(2,a.Button,{icon:"upload",content:"Upload From Disk",color:"good",onClick:function(){return n("upload_program")}}),children:m.map((function(e){var t=e.rules||[];return(0,o.createComponentVNode)(2,a.Collapsible,{title:e.name,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"minus-circle",color:"bad",onClick:function(){return n("remove_program",{program_id:e.id})}}),children:(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,c,{program:e}),!!p&&(0,o.createComponentVNode)(2,a.Section,{mt:-2,title:"Rules",level:2,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"plus",content:"Add Rule from Disk",color:"good",onClick:function(){return n("add_rule",{program_id:e.id})}}),children:e.has_rules?t.map((function(t){return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"minus-circle",color:"bad",onClick:function(){return n("remove_rule",{program_id:e.id,rule_id:t.id})}}),t.display],0,t.display)})):(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"No Active Rules"})})]})},e.name)}))})};t.NaniteCloudBackupDetails=u;t.NaniteCloudControl=function(e){var t=e.state,n=(0,r.useBackend)(e),c=n.act,d=n.data,s=d.has_disk,p=d.current_view,m=d.new_backup_id;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Program Disk",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",disabled:!s,onClick:function(){return c("eject")}}),children:(0,o.createComponentVNode)(2,i,{state:t})}),(0,o.createComponentVNode)(2,a.Section,{title:"Cloud Storage",buttons:p?(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-left",content:"Return",onClick:function(){return c("set_view",{view:0})}}):(0,o.createFragment)(["New Backup: ",(0,o.createComponentVNode)(2,a.NumberInput,{value:m,minValue:1,maxValue:100,stepPixelSize:4,width:"39px",onChange:function(e,t){return c("update_new_backup_value",{value:t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",onClick:function(){return c("create_backup")}})],0),children:d.current_view?(0,o.createComponentVNode)(2,u,{state:t}):(0,o.createComponentVNode)(2,l,{state:t})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.NaniteProgramHub=void 0;var o=n(1),r=n(24),a=n(3),i=n(2);t.NaniteProgramHub=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.detail_view,u=c.disk,d=c.has_disk,s=c.has_program,p=c.programs,m=void 0===p?{}:p;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{title:"Program Disk",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Button,{icon:"eject",content:"Eject",onClick:function(){return n("eject")}}),(0,o.createComponentVNode)(2,i.Button,{icon:"minus-circle",content:"Delete Program",onClick:function(){return n("clear")}})],4),children:d?s?(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Program Name",children:u.name}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Description",children:u.desc})]}):(0,o.createComponentVNode)(2,i.NoticeBox,{children:"No Program Installed"}):(0,o.createComponentVNode)(2,i.NoticeBox,{children:"Insert Disk"})}),(0,o.createComponentVNode)(2,i.Section,{title:"Programs",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Button,{icon:l?"info":"list",content:l?"Detailed":"Compact",onClick:function(){return n("toggle_details")}}),(0,o.createComponentVNode)(2,i.Button,{icon:"sync",content:"Sync Research",onClick:function(){return n("refresh")}})],4),children:null!==m?(0,o.createComponentVNode)(2,i.Tabs,{vertical:!0,children:(0,r.map)((function(e,t){var r=e||[],a=t.substring(0,t.length-8);return(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:a,children:l?r.map((function(e){return(0,o.createComponentVNode)(2,i.Section,{title:e.name,level:2,buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"download",content:"Download",disabled:!d,onClick:function(){return n("download",{program_id:e.id})}}),children:e.desc},e.id)})):(0,o.createComponentVNode)(2,i.LabeledList,{children:r.map((function(e){return(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:e.name,buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"download",content:"Download",disabled:!d,onClick:function(){return n("download",{program_id:e.id})}})},e.id)}))})},t)}))(m)}):(0,o.createComponentVNode)(2,i.NoticeBox,{children:"No nanite programs are currently researched."})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.NaniteProgrammer=t.NaniteExtraBoolean=t.NaniteExtraType=t.NaniteExtraText=t.NaniteExtraNumber=t.NaniteExtraEntry=t.NaniteDelays=t.NaniteCodes=void 0;var o=n(1),r=n(3),a=n(2),i=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{title:"Codes",level:3,mr:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Activation",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.activation_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return n("set_code",{target_code:"activation",code:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deactivation",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.deactivation_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return n("set_code",{target_code:"deactivation",code:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Kill",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.kill_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return n("set_code",{target_code:"kill",code:t})}})}),!!i.can_trigger&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.trigger_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return n("set_code",{target_code:"trigger",code:t})}})})]})})};t.NaniteCodes=i;var c=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{title:"Delays",level:3,ml:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Restart Timer",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.timer_restart,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return n("set_restart_timer",{delay:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Shutdown Timer",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.timer_shutdown,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return n("set_shutdown_timer",{delay:t})}})}),!!i.can_trigger&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Repeat Timer",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.timer_trigger,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return n("set_trigger_timer",{delay:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Delay",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.timer_trigger_delay,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return n("set_timer_trigger_delay",{delay:t})}})})],4)]})})};t.NaniteDelays=c;var l=function(e){var t=e.act,n=e.extra_setting,r=n.name,i=n.type,c={number:(0,o.createComponentVNode)(2,u,{act:t,extra_setting:n}),text:(0,o.createComponentVNode)(2,d,{act:t,extra_setting:n}),type:(0,o.createComponentVNode)(2,s,{act:t,extra_setting:n}),boolean:(0,o.createComponentVNode)(2,p,{act:t,extra_setting:n})};return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:r,children:c[i]})};t.NaniteExtraEntry=l;var u=function(e){var t=e.act,n=e.extra_setting,r=n.name,i=n.value,c=n.min,l=n.max,u=n.unit;return(0,o.createComponentVNode)(2,a.NumberInput,{value:i,width:"64px",minValue:c,maxValue:l,unit:u,onChange:function(e,n){return t("set_extra_setting",{target_setting:r,value:n})}})};t.NaniteExtraNumber=u;var d=function(e){var t=e.act,n=e.extra_setting,r=n.name,i=n.value;return(0,o.createComponentVNode)(2,a.Input,{value:i,width:"200px",onInput:function(e,n){return t("set_extra_setting",{target_setting:r,value:n})}})};t.NaniteExtraText=d;var s=function(e){var t=e.act,n=e.extra_setting,r=n.name,i=n.value,c=n.types;return(0,o.createComponentVNode)(2,a.Dropdown,{over:!0,selected:i,width:"150px",options:c,onSelected:function(e){return t("set_extra_setting",{target_setting:r,value:e})}})};t.NaniteExtraType=s;var p=function(e){var t=e.act,n=e.extra_setting,r=n.name,i=n.value,c=n.true_text,l=n.false_text;return(0,o.createComponentVNode)(2,a.Button.Checkbox,{content:i?c:l,checked:i,onClick:function(){return t("set_extra_setting",{target_setting:r})}})};t.NaniteExtraBoolean=p;t.NaniteProgrammer=function(e){var t=(0,r.useBackend)(e),n=t.act,u=t.data,d=u.has_disk,s=u.has_program,p=u.name,m=u.desc,f=u.use_rate,h=u.can_trigger,C=u.trigger_cost,g=u.trigger_cooldown,b=u.activated,N=u.has_extra_settings,v=u.extra_settings,V=void 0===v?{}:v;return d?s?(0,o.createComponentVNode)(2,a.Section,{title:p,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return n("eject")}}),children:[(0,o.createComponentVNode)(2,a.Section,{title:"Info",level:2,children:(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:m}),(0,o.createComponentVNode)(2,a.Grid.Column,{size:.7,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Use Rate",children:f}),!!h&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cost",children:C}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cooldown",children:g})],4)]})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Settings",level:2,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:b?"power-off":"times",content:b?"Active":"Inactive",selected:b,color:"bad",bold:!0,onClick:function(){return n("toggle_active")}}),children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,i,{state:e.state})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,c,{state:e.state})})]}),!!N&&(0,o.createComponentVNode)(2,a.Section,{title:"Special",level:3,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:V.map((function(e){return(0,o.createComponentVNode)(2,l,{act:n,extra_setting:e},e.name)}))})})]})]}):(0,o.createComponentVNode)(2,a.Section,{title:"Blank Disk",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return n("eject")}})}):(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"Insert a nanite program disk"})}},function(e,t,n){"use strict";t.__esModule=!0,t.NaniteRemote=void 0;var o=n(1),r=n(3),a=n(2);t.NaniteRemote=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.code,l=i.locked,u=i.mode,d=i.program_name,s=i.relay_code,p=i.comms,m=i.message,f=i.saved_settings,h=void 0===f?[]:f;return l?(0,o.createComponentVNode)(2,a.NoticeBox,{children:"This interface is locked."}):(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Nanite Control",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lock",content:"Lock Interface",onClick:function(){return n("lock")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:[(0,o.createComponentVNode)(2,a.Input,{value:d,maxLength:14,width:"130px",onChange:function(e,t){return n("update_name",{name:t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"save",content:"Save",onClick:function(){return n("save")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:p?"Comm Code":"Signal Code",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:c,minValue:0,maxValue:9999,width:"47px",step:1,stepPixelSize:2,onChange:function(e,t){return n("set_code",{code:t})}})}),!!p&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Message",children:(0,o.createComponentVNode)(2,a.Input,{value:m,width:"270px",onChange:function(e,t){return n("set_message",{value:t})}})}),"Relay"===u&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Relay Code",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:s,minValue:0,maxValue:9999,width:"47px",step:1,stepPixelSize:2,onChange:function(e,t){return n("set_relay_code",{code:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Signal Mode",children:["Off","Local","Targeted","Area","Relay"].map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,selected:u===e,onClick:function(){return n("select_mode",{mode:e})}},e)}))})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Saved Settings",children:h.length>0?(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{width:"35%",children:"Name"}),(0,o.createComponentVNode)(2,a.Table.Cell,{width:"20%",children:"Mode"}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:"Code"}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:"Relay"})]}),h.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,color:"label",children:[e.name,":"]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.mode}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.code}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Relay"===e.mode&&e.relay_code}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"right",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"upload",color:"good",onClick:function(){return n("load",{save_id:e.id})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"minus",color:"bad",onClick:function(){return n("remove_save",{save_id:e.id})}})]})]},e.id)}))]}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No settings currently saved"})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.Mule=void 0;var o=n(1),r=n(3),a=n(2),i=n(69);t.Mule=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data,l=c.locked&&!c.siliconUser,u=c.siliconUser,d=c.on,s=c.cell,p=c.cellPercent,m=c.load,f=c.mode,h=c.modeStatus,C=c.haspai,g=c.autoReturn,b=c.autoPickup,N=c.reportDelivery,v=c.destination,V=c.home,y=c.id,_=c.destinations,x=void 0===_?[]:_;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.InterfaceLockNoticeBox,{siliconUser:u,locked:l}),(0,o.createComponentVNode)(2,a.Section,{title:"Status",minHeight:"110px",buttons:!l&&(0,o.createComponentVNode)(2,a.Button,{icon:d?"power-off":"times",content:d?"On":"Off",selected:d,onClick:function(){return n("power")}}),children:[(0,o.createComponentVNode)(2,a.ProgressBar,{value:s?p/100:0,color:s?"good":"bad"}),(0,o.createComponentVNode)(2,a.Grid,{mt:1,children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mode",color:h,children:f})})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Load",color:m?"good":"average",children:m||"None"})})})]})]}),!l&&(0,o.createComponentVNode)(2,a.Section,{title:"Controls",buttons:(0,o.createFragment)([!!m&&(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Unload",onClick:function(){return n("unload")}}),!!C&&(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject PAI",onClick:function(){return n("ejectpai")}})],0),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"ID",children:(0,o.createComponentVNode)(2,a.Input,{value:y,onChange:function(e,t){return n("setid",{value:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Destination",children:[(0,o.createComponentVNode)(2,a.Dropdown,{over:!0,selected:v||"None",options:x,width:"150px",onSelected:function(e){return n("destination",{value:e})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"stop",content:"Stop",onClick:function(){return n("stop")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"play",content:"Go",onClick:function(){return n("go")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Home",children:[(0,o.createComponentVNode)(2,a.Dropdown,{over:!0,selected:V,options:x,width:"150px",onSelected:function(e){return n("destination",{value:e})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"home",content:"Go Home",onClick:function(){return n("home")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Settings",children:[(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:g,content:"Auto-Return",onClick:function(){return n("autored")}}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:b,content:"Auto-Pickup",onClick:function(){return n("autopick")}}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:N,content:"Report Delivery",onClick:function(){return n("report")}})]})]})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.NotificationPreferences=void 0;var o=n(1),r=n(3),a=n(2);t.NotificationPreferences=function(e){var t=(0,r.useBackend)(e),n=t.act,i=(t.data.ignore||[]).sort((function(e,t){var n=e.desc.toLowerCase(),o=t.desc.toLowerCase();return no?1:0}));return(0,o.createComponentVNode)(2,a.Section,{title:"Ghost Role Notifications",children:i.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:e.enabled?"times":"check",content:e.desc,color:e.enabled?"bad":"good",onClick:function(){return n("toggle_ignore",{key:e.key})}},e.key)}))})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtnetRelay=void 0;var o=n(1),r=n(3),a=n(2);t.NtnetRelay=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.enabled,l=i.dos_capacity,u=i.dos_overload,d=i.dos_crashed;return(0,o.createComponentVNode)(2,a.Section,{title:"Network Buffer",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",selected:c,content:c?"ENABLED":"DISABLED",onClick:function(){return n("toggle")}}),children:d?(0,o.createComponentVNode)(2,a.Box,{fontFamily:"monospace",children:[(0,o.createComponentVNode)(2,a.Box,{fontSize:"20px",children:"NETWORK BUFFER OVERFLOW"}),(0,o.createComponentVNode)(2,a.Box,{fontSize:"16px",children:"OVERLOAD RECOVERY MODE"}),(0,o.createComponentVNode)(2,a.Box,{children:"This system is suffering temporary outage due to overflow of traffic buffers. Until buffered traffic is processed, all further requests will be dropped. Frequent occurences of this error may indicate insufficient hardware capacity of your network. Please contact your network planning department for instructions on how to resolve this issue."}),(0,o.createComponentVNode)(2,a.Box,{fontSize:"20px",color:"bad",children:"ADMINISTRATOR OVERRIDE"}),(0,o.createComponentVNode)(2,a.Box,{fontSize:"16px",color:"bad",children:"CAUTION - DATA LOSS MAY OCCUR"}),(0,o.createComponentVNode)(2,a.Button,{icon:"signal",content:"PURGE BUFFER",mt:1,color:"bad",onClick:function(){return n("restart")}})]}):(0,o.createComponentVNode)(2,a.ProgressBar,{value:u,minValue:0,maxValue:l,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:u})," GQ"," / ",l," GQ"]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosArcade=void 0;var o=n(1),r=n(3),a=n(2);t.NtosArcade=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{title:"Outbomb Cuban Pete Ultra",textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{size:2,children:[(0,o.createComponentVNode)(2,a.Box,{m:1}),(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Player Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.PlayerHitpoints,minValue:0,maxValue:30,ranges:{olive:[31,Infinity],good:[20,31],average:[10,20],bad:[-Infinity,10]},children:[i.PlayerHitpoints,"HP"]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Player Magic",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.PlayerMP,minValue:0,maxValue:10,ranges:{purple:[11,Infinity],violet:[3,11],bad:[-Infinity,3]},children:[i.PlayerMP,"MP"]})})]}),(0,o.createComponentVNode)(2,a.Box,{my:1,mx:4}),(0,o.createComponentVNode)(2,a.Section,{backgroundColor:1===i.PauseState?"#1b3622":"#471915",children:i.Status})]}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.Hitpoints/45,minValue:0,maxValue:45,ranges:{good:[30,Infinity],average:[5,30],bad:[-Infinity,5]},children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i.Hitpoints}),"HP"]}),(0,o.createComponentVNode)(2,a.Box,{m:1}),(0,o.createComponentVNode)(2,a.Section,{inline:!0,width:26,textAlign:"center",children:(0,o.createVNode)(1,"img",null,null,1,{src:i.BossID})})]})]}),(0,o.createComponentVNode)(2,a.Box,{my:1,mx:4}),(0,o.createComponentVNode)(2,a.Button,{icon:"fist-raised",tooltip:"Go in for the kill!",tooltipPosition:"top",disabled:0===i.GameActive||1===i.PauseState,onClick:function(){return n("Attack")},content:"Attack!"}),(0,o.createComponentVNode)(2,a.Button,{icon:"band-aid",tooltip:"Heal yourself!",tooltipPosition:"top",disabled:0===i.GameActive||1===i.PauseState,onClick:function(){return n("Heal")},content:"Heal!"}),(0,o.createComponentVNode)(2,a.Button,{icon:"magic",tooltip:"Recharge your magic!",tooltipPosition:"top",disabled:0===i.GameActive||1===i.PauseState,onClick:function(){return n("Recharge_Power")},content:"Recharge!"})]}),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"sync-alt",tooltip:"One more game couldn't hurt.",tooltipPosition:"top",disabled:1===i.GameActive,onClick:function(){return n("Start_Game")},content:"Begin Game"}),(0,o.createComponentVNode)(2,a.Button,{icon:"ticket-alt",tooltip:"Claim at your local Arcade Computer for Prizes!",tooltipPosition:"top",disabled:1===i.GameActive,onClick:function(){return n("Dispense_Tickets")},content:"Claim Tickets"})]}),(0,o.createComponentVNode)(2,a.Box,{color:i.TicketCount>=1?"good":"normal",children:["Earned Tickets: ",i.TicketCount]})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosConfiguration=void 0;var o=n(1),r=n(3),a=n(2);t.NtosConfiguration=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.power_usage,l=i.battery_exists,u=i.battery,d=void 0===u?{}:u,s=i.disk_size,p=i.disk_used,m=i.hardware,f=void 0===m?[]:m;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Power Supply",buttons:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:["Power Draw: ",c,"W"]}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Battery Status",color:!l&&"average",children:l?(0,o.createComponentVNode)(2,a.ProgressBar,{value:d.charge,minValue:0,maxValue:d.max,ranges:{good:[d.max/2,Infinity],average:[d.max/4,d.max/2],bad:[-Infinity,d.max/4]},children:[d.charge," / ",d.max]}):"Not Available"})})}),(0,o.createComponentVNode)(2,a.Section,{title:"File System",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:p,minValue:0,maxValue:s,color:"good",children:[p," GQ / ",s," GQ"]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Hardware Components",children:f.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,level:2,buttons:(0,o.createFragment)([!e.critical&&(0,o.createComponentVNode)(2,a.Button.Checkbox,{content:"Enabled",checked:e.enabled,mr:1,onClick:function(){return n("PC_toggle_component",{name:e.name})}}),(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:["Power Usage: ",e.powerusage,"W"]})],0),children:e.desc},e.name)}))})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosMain=void 0;var o=n(1),r=n(3),a=n(2),i={compconfig:"cog",ntndownloader:"download",filemanager:"folder",smmonitor:"radiation",alarmmonitor:"bell",cardmod:"id-card",arcade:"gamepad",ntnrc_client:"comment-alt",nttransfer:"exchange-alt",powermonitor:"plug"};t.NtosMain=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data,l=c.programs,u=void 0===l?[]:l,d=c.has_light,s=c.light_on,p=c.comp_light_color;return(0,o.createFragment)([!!d&&(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Button,{width:"144px",icon:"lightbulb",selected:s,onClick:function(){return n("PC_toggle_light")},children:["Flashlight: ",s?"ON":"OFF"]}),(0,o.createComponentVNode)(2,a.Button,{ml:1,onClick:function(){return n("PC_light_color")},children:["Color:",(0,o.createComponentVNode)(2,a.ColorBox,{ml:1,color:p})]})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Programs",children:(0,o.createComponentVNode)(2,a.Table,{children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,lineHeight:"24px",color:"transparent",icon:i[e.name]||"window-maximize-o",content:e.desc,onClick:function(){return n("PC_runprogram",{name:e.name})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,width:3,children:!!e.running&&(0,o.createComponentVNode)(2,a.Button,{lineHeight:"24px",color:"transparent",icon:"times",tooltip:"Close program",tooltipPosition:"left",onClick:function(){return n("PC_killprogram",{name:e.name})}})})]},e.name)}))})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosNetChat=void 0;var o=n(1),r=n(3),a=n(2);(0,n(51).createLogger)("ntos chat");t.NtosNetChat=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.can_admin,l=i.adminmode,u=i.authed,d=i.username,s=i.active_channel,p=i.is_operator,m=i.all_channels,f=void 0===m?[]:m,h=i.clients,C=void 0===h?[]:h,g=i.messages,b=void 0===g?[]:g,N=null!==s,v=u||l;return(0,o.createComponentVNode)(2,a.Section,{height:"600px",children:(0,o.createComponentVNode)(2,a.Table,{height:"580px",children:(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{verticalAlign:"top",style:{width:"200px"},children:[(0,o.createComponentVNode)(2,a.Box,{height:"537px",overflowY:"scroll",children:[(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"New Channel...",onCommit:function(e,t){return n("PRG_newchannel",{new_channel_name:t})}}),f.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.chan,selected:e.id===s,color:"transparent",onClick:function(){return n("PRG_joinchannel",{id:e.id})}},e.chan)}))]}),(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,mt:1,content:d+"...",currentValue:d,onCommit:function(e,t){return n("PRG_changename",{new_name:t})}}),!!c&&(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:"ADMIN MODE: "+(l?"ON":"OFF"),color:l?"bad":"good",onClick:function(){return n("PRG_toggleadmin")}})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:[(0,o.createComponentVNode)(2,a.Box,{height:"560px",overflowY:"scroll",children:N&&(v?b.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:e.msg},e.msg)})):(0,o.createComponentVNode)(2,a.Box,{textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"exclamation-triangle",mt:4,fontSize:"40px"}),(0,o.createComponentVNode)(2,a.Box,{mt:1,bold:!0,fontSize:"18px",children:"THIS CHANNEL IS PASSWORD PROTECTED"}),(0,o.createComponentVNode)(2,a.Box,{mt:1,children:"INPUT PASSWORD TO ACCESS"})]}))}),(0,o.createComponentVNode)(2,a.Input,{fluid:!0,selfClear:!0,mt:1,onEnter:function(e,t){return n("PRG_speak",{message:t})}})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{verticalAlign:"top",style:{width:"150px"},children:[(0,o.createComponentVNode)(2,a.Box,{height:"477px",overflowY:"scroll",children:C.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:e.name},e.name)}))}),N&&v&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"Save log...",defaultValue:"new_log",onCommit:function(e,t){return n("PRG_savelog",{log_name:t})}}),(0,o.createComponentVNode)(2,a.Button.Confirm,{fluid:!0,content:"Leave Channel",onClick:function(){return n("PRG_leavechannel")}})],4),!!p&&u&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button.Confirm,{fluid:!0,content:"Delete Channel",onClick:function(){return n("PRG_deletechannel")}}),(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"Rename Channel...",onCommit:function(e,t){return n("PRG_renamechannel",{new_name:t})}}),(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"Set Password...",onCommit:function(e,t){return n("PRG_setpassword",{new_password:t})}})],4)]})]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosNetDownloader=void 0;var o=n(1),r=n(3),a=n(2);t.NtosNetDownloader=function(e){var t=e.state,n=(0,r.useBackend)(e),c=n.act,l=n.data,u=l.disk_size,d=l.disk_used,s=l.downloadable_programs,p=void 0===s?[]:s,m=l.error,f=l.hacked_programs,h=void 0===f?[]:f,C=l.hackedavailable;return(0,o.createFragment)([!!m&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:[(0,o.createComponentVNode)(2,a.Box,{mb:1,children:m}),(0,o.createComponentVNode)(2,a.Button,{content:"Reset",onClick:function(){return c("PRG_reseterror")}})]}),(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Disk usage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:d,minValue:0,maxValue:u,children:d+" GQ / "+u+" GQ"})})})}),(0,o.createComponentVNode)(2,a.Section,{children:p.map((function(e){return(0,o.createComponentVNode)(2,i,{state:t,program:e},e.filename)}))}),!!C&&(0,o.createComponentVNode)(2,a.Section,{title:"UNKNOWN Software Repository",children:[(0,o.createComponentVNode)(2,a.NoticeBox,{mb:1,children:"Please note that Nanotrasen does not recommend download of software from non-official servers."}),h.map((function(e){return(0,o.createComponentVNode)(2,i,{state:t,program:e},e.filename)}))]})],0)};var i=function(e){var t=e.program,n=(0,r.useBackend)(e),i=n.act,c=n.data,l=c.disk_size,u=c.disk_used,d=c.downloadcompletion,s=c.downloading,p=c.downloadname,m=c.downloadsize,f=l-u;return(0,o.createComponentVNode)(2,a.Box,{mb:3,children:[(0,o.createComponentVNode)(2,a.Flex,{align:"baseline",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{bold:!0,grow:1,children:t.filedesc}),(0,o.createComponentVNode)(2,a.Flex.Item,{color:"label",nowrap:!0,children:[t.size," GQ"]}),(0,o.createComponentVNode)(2,a.Flex.Item,{ml:2,width:"94px",textAlign:"center",children:t.filename===p&&(0,o.createComponentVNode)(2,a.ProgressBar,{color:"green",minValue:0,maxValue:m,value:d})||(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"download",content:"Download",disabled:s||t.size>f,onClick:function(){return i("PRG_downloadfile",{filename:t.filename})}})})]}),"Compatible"!==t.compatibility&&(0,o.createComponentVNode)(2,a.Box,{mt:1,italic:!0,fontSize:"12px",position:"relative",children:[(0,o.createComponentVNode)(2,a.Icon,{mx:1,color:"red",name:"times"}),"Incompatible!"]}),t.size>f&&(0,o.createComponentVNode)(2,a.Box,{mt:1,italic:!0,fontSize:"12px",position:"relative",children:[(0,o.createComponentVNode)(2,a.Icon,{mx:1,color:"red",name:"times"}),"Not enough disk space!"]}),(0,o.createComponentVNode)(2,a.Box,{mt:1,italic:!0,color:"label",fontSize:"12px",children:t.fileinfo})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosSupermatterMonitor=void 0;var o=n(1),r=n(24),a=n(70),i=n(18),c=n(3),l=n(2),u=n(37),d=function(e){return Math.log2(16+Math.max(0,e))-4};t.NtosSupermatterMonitor=function(e){var t=e.state,n=(0,c.useBackend)(e),p=n.act,m=n.data,f=m.active,h=m.SM_integrity,C=m.SM_power,g=m.SM_ambienttemp,b=m.SM_ambientpressure;if(!f)return(0,o.createComponentVNode)(2,s,{state:t});var N=(0,a.flow)([function(e){return e.filter((function(e){return e.amount>=.01}))},(0,r.sortBy)((function(e){return-e.amount}))])(m.gases||[]),v=Math.max.apply(Math,[1].concat(N.map((function(e){return e.amount}))));return(0,o.createComponentVNode)(2,l.Flex,{spacing:1,children:[(0,o.createComponentVNode)(2,l.Flex.Item,{width:"270px",children:(0,o.createComponentVNode)(2,l.Section,{title:"Metrics",children:(0,o.createComponentVNode)(2,l.LabeledList,{children:[(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Integrity",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:h/100,ranges:{good:[.9,Infinity],average:[.5,.9],bad:[-Infinity,.5]}})}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Relative EER",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:C,minValue:0,maxValue:5e3,ranges:{good:[-Infinity,5e3],average:[5e3,7e3],bad:[7e3,Infinity]},children:(0,i.toFixed)(C)+" MeV/cm3"})}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Temperature",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:d(g),minValue:0,maxValue:d(1e4),ranges:{teal:[-Infinity,d(80)],good:[d(80),d(373)],average:[d(373),d(1e3)],bad:[d(1e3),Infinity]},children:(0,i.toFixed)(g)+" K"})}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Pressure",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:d(b),minValue:0,maxValue:d(5e4),ranges:{good:[d(1),d(300)],average:[-Infinity,d(1e3)],bad:[d(1e3),+Infinity]},children:(0,i.toFixed)(b)+" kPa"})})]})})}),(0,o.createComponentVNode)(2,l.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,l.Section,{title:"Gases",buttons:(0,o.createComponentVNode)(2,l.Button,{icon:"arrow-left",content:"Back",onClick:function(){return p("PRG_clear")}}),children:(0,o.createComponentVNode)(2,l.Box.Forced,{height:24*N.length+"px",children:(0,o.createComponentVNode)(2,l.LabeledList,{children:N.map((function(e){return(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:(0,u.getGasLabel)(e.name),children:(0,o.createComponentVNode)(2,l.ProgressBar,{color:(0,u.getGasColor)(e.name),value:e.amount,minValue:0,maxValue:v,children:(0,i.toFixed)(e.amount,2)+"%"})},e.name)}))})})})})]})};var s=function(e){var t=(0,c.useBackend)(e),n=t.act,r=t.data.supermatters,a=void 0===r?[]:r;return(0,o.createComponentVNode)(2,l.Section,{title:"Detected Supermatters",buttons:(0,o.createComponentVNode)(2,l.Button,{icon:"sync",content:"Refresh",onClick:function(){return n("PRG_refresh")}}),children:(0,o.createComponentVNode)(2,l.Table,{children:a.map((function(e){return(0,o.createComponentVNode)(2,l.Table.Row,{children:[(0,o.createComponentVNode)(2,l.Table.Cell,{children:e.uid+". "+e.area_name}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,color:"label",children:"Integrity:"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,width:"120px",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:e.integrity/100,ranges:{good:[.9,Infinity],average:[.5,.9],bad:[-Infinity,.5]}})}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,children:(0,o.createComponentVNode)(2,l.Button,{content:"Details",onClick:function(){return n("PRG_set",{target:e.uid})}})})]},e.uid)}))})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosWrapper=void 0;var o=n(1),r=n(3),a=n(2),i=n(116);t.NtosWrapper=function(e){var t=e.children,n=(0,r.useBackend)(e),c=n.act,l=n.data,u=l.PC_batteryicon,d=l.PC_showbatteryicon,s=l.PC_batterypercent,p=l.PC_ntneticon,m=l.PC_apclinkicon,f=l.PC_stationtime,h=l.PC_programheaders,C=void 0===h?[]:h,g=l.PC_showexitprogram;return(0,o.createVNode)(1,"div","NtosWrapper",[(0,o.createVNode)(1,"div","NtosWrapper__header NtosHeader",[(0,o.createVNode)(1,"div","NtosHeader__left",[(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:2,children:f}),(0,o.createComponentVNode)(2,a.Box,{inline:!0,italic:!0,mr:2,opacity:.33,children:"NtOS"})],4),(0,o.createVNode)(1,"div","NtosHeader__right",[C.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{inline:!0,mr:1,children:(0,o.createVNode)(1,"img","NtosHeader__icon",null,1,{src:e.icon})},e.icon)})),(0,o.createComponentVNode)(2,a.Box,{inline:!0,children:p&&(0,o.createVNode)(1,"img","NtosHeader__icon",null,1,{src:p})}),!!d&&u&&(0,o.createComponentVNode)(2,a.Box,{inline:!0,mr:1,children:[u&&(0,o.createVNode)(1,"img","NtosHeader__icon",null,1,{src:u}),s&&s]}),m&&(0,o.createComponentVNode)(2,a.Box,{inline:!0,mr:1,children:(0,o.createVNode)(1,"img","NtosHeader__icon",null,1,{src:m})}),!!g&&(0,o.createComponentVNode)(2,a.Button,{width:"26px",lineHeight:"22px",textAlign:"center",color:"transparent",icon:"window-minimize-o",tooltip:"Minimize",tooltipPosition:"bottom",onClick:function(){return c("PC_minimize")}}),!!g&&(0,o.createComponentVNode)(2,a.Button,{mr:"-3px",width:"26px",lineHeight:"22px",textAlign:"center",color:"transparent",icon:"window-close-o",tooltip:"Close",tooltipPosition:"bottom-left",onClick:function(){return c("PC_exit")}}),!g&&(0,o.createComponentVNode)(2,a.Button,{mr:"-3px",width:"26px",lineHeight:"22px",textAlign:"center",color:"transparent",icon:"power-off",tooltip:"Power off",tooltipPosition:"bottom-left",onClick:function(){return c("PC_shutdown")}})],0)],4,{onMouseDown:function(){(0,i.refocusLayout)()}}),(0,o.createVNode)(1,"div","NtosWrapper__content",t,0)],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.NuclearBomb=void 0;var o=n(1),r=n(12),a=n(3),i=n(2),c=function(e){var t=(0,a.useBackend)(e).act;return(0,o.createComponentVNode)(2,i.Box,{width:"185px",children:(0,o.createComponentVNode)(2,i.Grid,{width:"1px",children:[["1","4","7","C"],["2","5","8","0"],["3","6","9","E"]].map((function(e){return(0,o.createComponentVNode)(2,i.Grid.Column,{children:e.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{fluid:!0,bold:!0,mb:1,content:e,textAlign:"center",fontSize:"40px",lineHeight:"50px",width:"55px",className:(0,r.classes)(["NuclearBomb__Button","NuclearBomb__Button--keypad","NuclearBomb__Button--"+e]),onClick:function(){return t("keypad",{digit:e})}},e)}))},e[0])}))})})};t.NuclearBomb=function(e){var t=e.state,n=(0,a.useBackend)(e),r=n.act,l=n.data,u=(l.anchored,l.disk_present,l.status1),d=l.status2;return(0,o.createComponentVNode)(2,i.Box,{m:1,children:[(0,o.createComponentVNode)(2,i.Box,{mb:1,className:"NuclearBomb__displayBox",children:u}),(0,o.createComponentVNode)(2,i.Flex,{mb:1.5,children:[(0,o.createComponentVNode)(2,i.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,i.Box,{className:"NuclearBomb__displayBox",children:d})}),(0,o.createComponentVNode)(2,i.Flex.Item,{children:(0,o.createComponentVNode)(2,i.Button,{icon:"eject",fontSize:"24px",lineHeight:"23px",textAlign:"center",width:"43px",ml:1,mr:"3px",mt:"3px",className:"NuclearBomb__Button NuclearBomb__Button--keypad",onClick:function(){return r("eject_disk")}})})]}),(0,o.createComponentVNode)(2,i.Flex,{ml:"3px",children:[(0,o.createComponentVNode)(2,i.Flex.Item,{children:(0,o.createComponentVNode)(2,c,{state:t})}),(0,o.createComponentVNode)(2,i.Flex.Item,{ml:1,width:"129px",children:(0,o.createComponentVNode)(2,i.Box,{children:[(0,o.createComponentVNode)(2,i.Button,{fluid:!0,bold:!0,content:"ARM",textAlign:"center",fontSize:"28px",lineHeight:"32px",mb:1,className:"NuclearBomb__Button NuclearBomb__Button--C",onClick:function(){return r("arm")}}),(0,o.createComponentVNode)(2,i.Button,{fluid:!0,bold:!0,content:"ANCHOR",textAlign:"center",fontSize:"28px",lineHeight:"32px",className:"NuclearBomb__Button NuclearBomb__Button--E",onClick:function(){return r("anchor")}}),(0,o.createComponentVNode)(2,i.Box,{textAlign:"center",color:"#9C9987",fontSize:"80px",children:(0,o.createComponentVNode)(2,i.Icon,{name:"radiation"})}),(0,o.createComponentVNode)(2,i.Box,{height:"80px",className:"NuclearBomb__NTIcon"})]})})]})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.OperatingComputer=void 0;var o=n(1),r=n(3),a=n(2);t.OperatingComputer=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.table,l=i.surgeries,u=void 0===l?[]:l,d=i.procedures,s=void 0===d?[]:d,p=i.patient,m=void 0===p?{}:p;return(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{label:"Patient State",children:[!c&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No Table Detected"}),(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Patient State",level:2,children:m?(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"State",color:m.statstate,children:m.stat}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Blood Type",children:m.blood_type}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:m.health,minValue:m.minHealth,maxValue:m.maxHealth,color:m.health>=0?"good":"average",content:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:m.health})})}),[{label:"Brute",type:"bruteLoss"},{label:"Burn",type:"fireLoss"},{label:"Toxin",type:"toxLoss"},{label:"Respiratory",type:"oxyLoss"}].map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.label,children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:m[e.type]/m.maxHealth,color:"bad",content:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:m[e.type]})})},e.type)}))]}):"No Patient Detected"}),(0,o.createComponentVNode)(2,a.Section,{title:"Initiated Procedures",level:2,children:s.length?s.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,level:3,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Next Step",children:[e.next_step,e.chems_needed&&(0,o.createFragment)([(0,o.createVNode)(1,"b",null,"Required Chemicals:",16),(0,o.createVNode)(1,"br"),e.chems_needed],0)]}),!!i.alternative_step&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Alternative Step",children:[e.alternative_step,e.alt_chems_needed&&(0,o.createFragment)([(0,o.createVNode)(1,"b",null,"Required Chemicals:",16),(0,o.createVNode)(1,"br"),e.alt_chems_needed],0)]})]})},e.name)})):"No Active Procedures"})]})]},"state"),(0,o.createComponentVNode)(2,a.Tabs.Tab,{label:"Surgery Procedures",children:(0,o.createComponentVNode)(2,a.Section,{title:"Advanced Surgery Procedures",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"download",content:"Sync Research Database",onClick:function(){return n("sync")}}),u.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,level:2,children:e.desc},e.name)}))]})},"procedures")]})}},function(e,t,n){"use strict";t.__esModule=!0,t.OreBox=void 0;var o=n(1),r=n(23),a=n(16),i=n(2);t.OreBox=function(e){var t=e.state,n=t.config,c=t.data,l=n.ref,u=c.materials;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{title:"Ores",buttons:(0,o.createComponentVNode)(2,i.Button,{content:"Empty",onClick:function(){return(0,a.act)(l,"removeall")}}),children:(0,o.createComponentVNode)(2,i.Table,{children:[(0,o.createComponentVNode)(2,i.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:"Ore"}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:"Amount"})]}),u.map((function(e){return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:(0,r.toTitleCase)(e.name)}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,i.Box,{color:"label",inline:!0,children:e.amount})})]},e.type)}))]})}),(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.Box,{children:["All ores will be placed in here when you are wearing a mining stachel on your belt or in a pocket while dragging the ore box.",(0,o.createVNode)(1,"br"),"Gibtonite is not accepted."]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.OreRedemptionMachine=void 0;var o=n(1),r=n(23),a=n(3),i=n(2);t.OreRedemptionMachine=function(e){var t=(0,a.useBackend)(e),n=t.act,r=t.data,l=r.unclaimedPoints,u=r.materials,d=r.alloys,s=r.diskDesigns,p=r.hasDisk;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{children:[(0,o.createComponentVNode)(2,i.BlockQuote,{mb:1,children:["This machine only accepts ore.",(0,o.createVNode)(1,"br"),"Gibtonite and Slag are not accepted."]}),(0,o.createComponentVNode)(2,i.Box,{children:[(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:"label",mr:1,children:"Unclaimed points:"}),l,(0,o.createComponentVNode)(2,i.Button,{ml:2,content:"Claim",disabled:0===l,onClick:function(){return n("Claim")}})]})]}),(0,o.createComponentVNode)(2,i.Section,{children:p&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Box,{mb:1,children:(0,o.createComponentVNode)(2,i.Button,{icon:"eject",content:"Eject design disk",onClick:function(){return n("diskEject")}})}),(0,o.createComponentVNode)(2,i.Table,{children:s.map((function(e){return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:["File ",e.index,": ",e.name]}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,children:(0,o.createComponentVNode)(2,i.Button,{disabled:!e.canupload,content:"Upload",onClick:function(){return n("diskUpload",{design:e.index})}})})]},e.index)}))})],4)||(0,o.createComponentVNode)(2,i.Button,{icon:"save",content:"Insert design disk",onClick:function(){return n("diskInsert")}})}),(0,o.createComponentVNode)(2,i.Section,{title:"Materials",children:(0,o.createComponentVNode)(2,i.Table,{children:u.map((function(e){return(0,o.createComponentVNode)(2,c,{material:e,onRelease:function(t){return n("Release",{id:e.id,sheets:t})}},e.id)}))})}),(0,o.createComponentVNode)(2,i.Section,{title:"Alloys",children:(0,o.createComponentVNode)(2,i.Table,{children:d.map((function(e){return(0,o.createComponentVNode)(2,c,{material:e,onRelease:function(t){return n("Smelt",{id:e.id,sheets:t})}},e.id)}))})})],4)};var c=function(e){var t,n;function a(){var t;return(t=e.call(this)||this).state={amount:1},t}return n=e,(t=a).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,a.prototype.render=function(){var e=this,t=this.state.amount,n=this.props,a=n.material,c=n.onRelease,l=Math.floor(a.amount);return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:(0,r.toTitleCase)(a.name).replace("Alloy","")}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,i.Box,{mr:2,color:"label",inline:!0,children:a.value&&a.value+" cr"})}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,i.Box,{mr:2,color:"label",inline:!0,children:[l," sheets"]})}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,children:[(0,o.createComponentVNode)(2,i.NumberInput,{width:"32px",step:1,stepPixelSize:5,minValue:1,maxValue:50,value:t,onChange:function(t,n){return e.setState({amount:n})}}),(0,o.createComponentVNode)(2,i.Button,{disabled:l<1,content:"Release",onClick:function(){return c(t)}})]})]})},a}(o.Component)},function(e,t,n){"use strict";t.__esModule=!0,t.Pandemic=t.PandemicAntibodyDisplay=t.PandemicSymptomDisplay=t.PandemicDiseaseDisplay=t.PandemicBeakerDisplay=void 0;var o=n(1),r=n(24),a=n(3),i=n(2),c=function(e){var t=(0,a.useBackend)(e),n=t.act,r=t.data,c=r.has_beaker,l=r.beaker_empty,u=r.has_blood,d=r.blood,s=!c||l;return(0,o.createComponentVNode)(2,i.Section,{title:"Beaker",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Button,{icon:"times",content:"Empty and Eject",color:"bad",disabled:s,onClick:function(){return n("empty_eject_beaker")}}),(0,o.createComponentVNode)(2,i.Button,{icon:"trash",content:"Empty",disabled:s,onClick:function(){return n("empty_beaker")}}),(0,o.createComponentVNode)(2,i.Button,{icon:"eject",content:"Eject",disabled:!c,onClick:function(){return n("eject_beaker")}})],4),children:c?l?(0,o.createComponentVNode)(2,i.Box,{color:"bad",children:"Beaker is empty"}):u?(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Blood DNA",children:d&&d.dna||"Unknown"}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Blood Type",children:d&&d.type||"Unknown"})]}):(0,o.createComponentVNode)(2,i.Box,{color:"bad",children:"No blood detected"}):(0,o.createComponentVNode)(2,i.NoticeBox,{children:"No beaker loaded"})})};t.PandemicBeakerDisplay=c;var l=function(e){var t=(0,a.useBackend)(e),n=t.act,r=t.data,c=r.is_ready;return(r.viruses||[]).map((function(e){var t=e.symptoms||[];return(0,o.createComponentVNode)(2,i.Section,{title:e.can_rename?(0,o.createComponentVNode)(2,i.Input,{value:e.name,onChange:function(t,o){return n("rename_disease",{index:e.index,name:o})}}):e.name,buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"flask",content:"Create culture bottle",disabled:!c,onClick:function(){return n("create_culture_bottle",{index:e.index})}}),children:[(0,o.createComponentVNode)(2,i.Grid,{children:[(0,o.createComponentVNode)(2,i.Grid.Column,{children:e.description}),(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Agent",children:e.agent}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Spread",children:e.spread}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Possible Cure",children:e.cure})]})})]}),!!e.is_adv&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{title:"Statistics",level:2,children:(0,o.createComponentVNode)(2,i.Grid,{children:[(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Resistance",children:e.resistance}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Stealth",children:e.stealth})]})}),(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Stage speed",children:e.stage_speed}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Transmissibility",children:e.transmission})]})})]})}),(0,o.createComponentVNode)(2,i.Section,{title:"Symptoms",level:2,children:t.map((function(e){return(0,o.createComponentVNode)(2,i.Collapsible,{title:e.name,children:(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,u,{symptom:e})})},e.name)}))})],4)]},e.name)}))};t.PandemicDiseaseDisplay=l;var u=function(e){var t=e.symptom,n=t.name,a=t.desc,c=t.stealth,l=t.resistance,u=t.stage_speed,d=t.transmission,s=t.level,p=t.neutered,m=(0,r.map)((function(e,t){return{desc:e,label:t}}))(t.threshold_desc||{});return(0,o.createComponentVNode)(2,i.Section,{title:n,level:2,buttons:!!p&&(0,o.createComponentVNode)(2,i.Box,{bold:!0,color:"bad",children:"Neutered"}),children:[(0,o.createComponentVNode)(2,i.Grid,{children:[(0,o.createComponentVNode)(2,i.Grid.Column,{size:2,children:a}),(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Level",children:s}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Resistance",children:l}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Stealth",children:c}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Stage Speed",children:u}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Transmission",children:d})]})})]}),m.length>0&&(0,o.createComponentVNode)(2,i.Section,{title:"Thresholds",level:3,children:(0,o.createComponentVNode)(2,i.LabeledList,{children:m.map((function(e){return(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:e.label,children:e.desc},e.label)}))})})]})};t.PandemicSymptomDisplay=u;var d=function(e){var t=(0,a.useBackend)(e),n=t.act,r=t.data,c=r.resistances||[];return(0,o.createComponentVNode)(2,i.Section,{title:"Antibodies",children:c.length>0?(0,o.createComponentVNode)(2,i.LabeledList,{children:c.map((function(e){return(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:e.name,children:(0,o.createComponentVNode)(2,i.Button,{icon:"eye-dropper",content:"Create vaccine bottle",disabled:!r.is_ready,onClick:function(){return n("create_vaccine_bottle",{index:e.id})}})},e.name)}))}):(0,o.createComponentVNode)(2,i.Box,{bold:!0,color:"bad",mt:1,children:"No antibodies detected."})})};t.PandemicAntibodyDisplay=d;t.Pandemic=function(e){var t=(0,a.useBackend)(e).data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,c,{state:e.state}),!!t.has_blood&&(0,o.createFragment)([(0,o.createComponentVNode)(2,l,{state:e.state}),(0,o.createComponentVNode)(2,d,{state:e.state})],4)],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.PortableGenerator=void 0;var o=n(1),r=n(3),a=n(2);t.PortableGenerator=function(e){var t,n=(0,r.useBackend)(e),i=n.act,c=n.data;return t=c.stack_percent>50?"good":c.stack_percent>15?"average":"bad",(0,o.createFragment)([!c.anchored&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Generator not anchored."}),(0,o.createComponentVNode)(2,a.Section,{title:"Status",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power switch",children:(0,o.createComponentVNode)(2,a.Button,{icon:c.active?"power-off":"times",onClick:function(){return i("toggle_power")},disabled:!c.ready_to_boot,children:c.active?"On":"Off"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:c.sheet_name+" sheets",children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:t,children:c.sheets}),c.sheets>=1&&(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"eject",disabled:c.active,onClick:function(){return i("eject")},children:"Eject"})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current sheet level",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:c.stack_percent/100,ranges:{good:[.1,Infinity],average:[.01,.1],bad:[-Infinity,.01]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Heat level",children:c.current_heat<100?(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"good",children:"Nominal"}):c.current_heat<200?(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"average",children:"Caution"}):(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"bad",children:"DANGER"})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Output",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current output",children:c.power_output}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Adjust output",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"minus",onClick:function(){return i("lower_power")},children:c.power_generated}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",onClick:function(){return i("higher_power")},children:c.power_generated})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power available",children:(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:!c.connected&&"bad",children:c.connected?c.power_available:"Unconnected"})})]})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.PortableScrubber=t.PortablePump=t.PortableBasicInfo=void 0;var o=n(1),r=n(3),a=n(2),i=n(37),c=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.connected,l=i.holding,u=i.on,d=i.pressure;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Status",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:u?"power-off":"times",content:u?"On":"Off",selected:u,onClick:function(){return n("power")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:d})," kPa"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Port",color:c?"good":"average",children:c?"Connected":"Not Connected"})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Holding Tank",minHeight:"82px",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",disabled:!l,onClick:function(){return n("eject")}}),children:l?(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Label",children:l.name}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:l.pressure})," kPa"]})]}):(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"No holding tank"})})],4)};t.PortableBasicInfo=c;t.PortablePump=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,l=i.direction,u=(i.holding,i.target_pressure),d=i.default_pressure,s=i.min_pressure,p=i.max_pressure;return(0,o.createFragment)([(0,o.createComponentVNode)(2,c,{state:e.state}),(0,o.createComponentVNode)(2,a.Section,{title:"Pump",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:l?"sign-in-alt":"sign-out-alt",content:l?"In":"Out",selected:l,onClick:function(){return n("direction")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Output",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:u,unit:"kPa",width:"75px",minValue:s,maxValue:p,step:10,onChange:function(e,t){return n("pressure",{pressure:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Presets",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"minus",disabled:u===s,onClick:function(){return n("pressure",{pressure:"min"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",disabled:u===d,onClick:function(){return n("pressure",{pressure:"reset"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",disabled:u===p,onClick:function(){return n("pressure",{pressure:"max"})}})]})]})})],4)};t.PortableScrubber=function(e){var t=(0,r.useBackend)(e),n=t.act,l=t.data.filter_types||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,c,{state:e.state}),(0,o.createComponentVNode)(2,a.Section,{title:"Filters",children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:e.enabled?"check-square-o":"square-o",content:(0,i.getGasLabel)(e.gas_id,e.gas_name),selected:e.enabled,onClick:function(){return n("toggle_filter",{val:e.gas_id})}},e.id)}))})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.PowerMonitor=void 0;var o=n(1),r=n(24),a=n(70),i=n(18),c=n(12),l=n(2);var u=5e5,d=function(e){var t=String(e.split(" ")[1]).toLowerCase();return["w","kw","mw","gw"].indexOf(t)},s=function(e){var t,n;function c(){var t;return(t=e.call(this)||this).state={sortByField:null},t}return n=e,(t=c).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,c.prototype.render=function(){var e=this,t=this.props.state.data,n=t.history,c=this.state.sortByField,s=n.supply[n.supply.length-1]||0,f=n.demand[n.demand.length-1]||0,h=n.supply.map((function(e,t){return[t,e]})),C=n.demand.map((function(e,t){return[t,e]})),g=Math.max.apply(Math,[u].concat(n.supply,n.demand)),b=(0,a.flow)([(0,r.map)((function(e,t){return Object.assign({},e,{id:e.name+t})})),"name"===c&&(0,r.sortBy)((function(e){return e.name})),"charge"===c&&(0,r.sortBy)((function(e){return-e.charge})),"draw"===c&&(0,r.sortBy)((function(e){return-d(e.load)}),(function(e){return-parseFloat(e.load)}))])(t.areas);return(0,o.createFragment)([(0,o.createComponentVNode)(2,l.Flex,{spacing:1,children:[(0,o.createComponentVNode)(2,l.Flex.Item,{width:"200px",children:(0,o.createComponentVNode)(2,l.Section,{children:(0,o.createComponentVNode)(2,l.LabeledList,{children:[(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Supply",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:s,minValue:0,maxValue:g,color:"teal",content:(0,i.toFixed)(s/1e3)+" kW"})}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Draw",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:f,minValue:0,maxValue:g,color:"pink",content:(0,i.toFixed)(f/1e3)+" kW"})})]})})}),(0,o.createComponentVNode)(2,l.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,l.Section,{position:"relative",height:"100%",children:[(0,o.createComponentVNode)(2,l.Chart.Line,{fillPositionedParent:!0,data:h,rangeX:[0,h.length-1],rangeY:[0,g],strokeColor:"rgba(0, 181, 173, 1)",fillColor:"rgba(0, 181, 173, 0.25)"}),(0,o.createComponentVNode)(2,l.Chart.Line,{fillPositionedParent:!0,data:C,rangeX:[0,C.length-1],rangeY:[0,g],strokeColor:"rgba(224, 57, 151, 1)",fillColor:"rgba(224, 57, 151, 0.25)"})]})})]}),(0,o.createComponentVNode)(2,l.Section,{children:[(0,o.createComponentVNode)(2,l.Box,{mb:1,children:[(0,o.createComponentVNode)(2,l.Box,{inline:!0,mr:2,color:"label",children:"Sort by:"}),(0,o.createComponentVNode)(2,l.Button.Checkbox,{checked:"name"===c,content:"Name",onClick:function(){return e.setState({sortByField:"name"!==c&&"name"})}}),(0,o.createComponentVNode)(2,l.Button.Checkbox,{checked:"charge"===c,content:"Charge",onClick:function(){return e.setState({sortByField:"charge"!==c&&"charge"})}}),(0,o.createComponentVNode)(2,l.Button.Checkbox,{checked:"draw"===c,content:"Draw",onClick:function(){return e.setState({sortByField:"draw"!==c&&"draw"})}})]}),(0,o.createComponentVNode)(2,l.Table,{children:[(0,o.createComponentVNode)(2,l.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Area"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,children:"Charge"}),(0,o.createComponentVNode)(2,l.Table.Cell,{textAlign:"right",children:"Draw"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,title:"Equipment",children:"Eqp"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,title:"Lighting",children:"Lgt"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,title:"Environment",children:"Env"})]}),b.map((function(e,t){return(0,o.createVNode)(1,"tr","Table__row candystripe",[(0,o.createVNode)(1,"td",null,e.name,0),(0,o.createVNode)(1,"td","Table__cell text-right text-nowrap",(0,o.createComponentVNode)(2,p,{charging:e.charging,charge:e.charge}),2),(0,o.createVNode)(1,"td","Table__cell text-right text-nowrap",e.load,0),(0,o.createVNode)(1,"td","Table__cell text-center text-nowrap",(0,o.createComponentVNode)(2,m,{status:e.eqp}),2),(0,o.createVNode)(1,"td","Table__cell text-center text-nowrap",(0,o.createComponentVNode)(2,m,{status:e.lgt}),2),(0,o.createVNode)(1,"td","Table__cell text-center text-nowrap",(0,o.createComponentVNode)(2,m,{status:e.env}),2)],4,null,e.id)}))]})]})],4)},c}(o.Component);t.PowerMonitor=s;var p=function(e){var t=e.charging,n=e.charge;return(0,o.createFragment)([(0,o.createComponentVNode)(2,l.Icon,{width:"18px",textAlign:"center",name:0===t&&(n>50?"battery-half":"battery-quarter")||1===t&&"bolt"||2===t&&"battery-full",color:0===t&&(n>50?"yellow":"red")||1===t&&"yellow"||2===t&&"green"}),(0,o.createComponentVNode)(2,l.Box,{inline:!0,width:"36px",textAlign:"right",children:(0,i.toFixed)(n)+"%"})],4)};p.defaultHooks=c.pureComponentHooks;var m=function(e){var t=e.status,n=Boolean(2&t),r=Boolean(1&t),a=(n?"On":"Off")+" ["+(r?"auto":"manual")+"]";return(0,o.createComponentVNode)(2,l.ColorBox,{color:n?"good":"bad",content:r?undefined:"M",title:a})};m.defaultHooks=c.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.Radio=void 0;var o=n(1),r=n(24),a=n(18),i=n(3),c=n(2),l=n(37);t.Radio=function(e){var t=(0,i.useBackend)(e),n=t.act,u=t.data,d=u.freqlock,s=u.frequency,p=u.minFrequency,m=u.maxFrequency,f=u.listening,h=u.broadcasting,C=u.command,g=u.useCommand,b=u.subspace,N=u.subspaceSwitchable,v=l.RADIO_CHANNELS.find((function(e){return e.freq===s})),V=(0,r.map)((function(e,t){return{name:t,status:!!e}}))(u.channels);return(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Frequency",children:[d&&(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:"light-gray",children:(0,a.toFixed)(s/10,1)+" kHz"})||(0,o.createComponentVNode)(2,c.NumberInput,{animate:!0,unit:"kHz",step:.2,stepPixelSize:10,minValue:p/10,maxValue:m/10,value:s/10,format:function(e){return(0,a.toFixed)(e,1)},onDrag:function(e,t){return n("frequency",{adjust:t-s/10})}}),v&&(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:v.color,ml:2,children:["[",v.name,"]"]})]}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Audio",children:[(0,o.createComponentVNode)(2,c.Button,{textAlign:"center",width:"37px",icon:f?"volume-up":"volume-mute",selected:f,onClick:function(){return n("listen")}}),(0,o.createComponentVNode)(2,c.Button,{textAlign:"center",width:"37px",icon:h?"microphone":"microphone-slash",selected:h,onClick:function(){return n("broadcast")}}),!!C&&(0,o.createComponentVNode)(2,c.Button,{ml:1,icon:"bullhorn",selected:g,content:"High volume "+(g?"ON":"OFF"),onClick:function(){return n("command")}}),!!N&&(0,o.createComponentVNode)(2,c.Button,{ml:1,icon:"bullhorn",selected:b,content:"Subspace Tx "+(b?"ON":"OFF"),onClick:function(){return n("subspace")}})]}),!!b&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Channels",children:[0===V.length&&(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:"bad",children:"No encryption keys installed."}),V.map((function(e){return(0,o.createComponentVNode)(2,c.Box,{children:(0,o.createComponentVNode)(2,c.Button,{icon:e.status?"check-square-o":"square-o",selected:e.status,content:e.name,onClick:function(){return n("channel",{channel:e.name})}})},e.name)}))]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.RapidPipeDispenser=void 0;var o=n(1),r=n(12),a=n(3),i=n(2),c=["Atmospherics","Disposals","Transit Tubes"],l={Atmospherics:"wrench",Disposals:"trash-alt","Transit Tubes":"bus",Pipes:"grip-lines","Disposal Pipes":"grip-lines",Devices:"microchip","Heat Exchange":"thermometer-half","Station Equipment":"microchip"},u={grey:"#bbbbbb",amethyst:"#a365ff",blue:"#4466ff",brown:"#b26438",cyan:"#48eae8",dark:"#808080",green:"#1edd00",orange:"#ffa030",purple:"#b535ea",red:"#ff3333",violet:"#6e00f6",yellow:"#ffce26"},d=[{name:"Dispense",bitmask:1},{name:"Connect",bitmask:2},{name:"Destroy",bitmask:4},{name:"Paint",bitmask:8}];t.RapidPipeDispenser=function(e){var t=(0,a.useBackend)(e),n=t.act,s=t.data,p=s.category,m=s.categories,f=void 0===m?[]:m,h=s.selected_color,C=s.piping_layer,g=s.mode,b=s.preview_rows.flatMap((function(e){return e.previews}));return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Category",children:c.map((function(e,t){return(0,o.createComponentVNode)(2,i.Button,{selected:p===t,icon:l[e],color:"transparent",content:e,onClick:function(){return n("category",{category:t})}},e)}))}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Modes",children:d.map((function(e){return(0,o.createComponentVNode)(2,i.Button.Checkbox,{checked:g&e.bitmask,content:e.name,onClick:function(){return n("mode",{mode:e.bitmask})}},e.bitmask)}))}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Color",children:[(0,o.createComponentVNode)(2,i.Box,{inline:!0,width:"64px",color:u[h],content:h}),Object.keys(u).map((function(e){return(0,o.createComponentVNode)(2,i.ColorBox,{ml:1,color:u[e],onClick:function(){return n("color",{paint_color:e})}},e)}))]})]})}),(0,o.createComponentVNode)(2,i.Flex,{m:-.5,children:[(0,o.createComponentVNode)(2,i.Flex.Item,{m:.5,children:(0,o.createComponentVNode)(2,i.Section,{children:[0===p&&(0,o.createComponentVNode)(2,i.Box,{mb:1,children:[1,2,3].map((function(e){return(0,o.createComponentVNode)(2,i.Button.Checkbox,{fluid:!0,checked:e===C,content:"Layer "+e,onClick:function(){return n("piping_layer",{piping_layer:e})}},e)}))}),(0,o.createComponentVNode)(2,i.Box,{width:"108px",children:b.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{title:e.dir_name,selected:e.selected,style:{width:"48px",height:"48px",padding:0},onClick:function(){return n("setdir",{dir:e.dir,flipped:e.flipped})},children:(0,o.createComponentVNode)(2,i.Box,{className:(0,r.classes)(["pipes32x32",e.dir+"-"+e.icon_state]),style:{transform:"scale(1.5) translate(17%, 17%)"}})},e.dir)}))})]})}),(0,o.createComponentVNode)(2,i.Flex.Item,{m:.5,grow:1,children:(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.Tabs,{children:f.map((function(e){return(0,o.createComponentVNode)(2,i.Tabs.Tab,{fluid:!0,icon:l[e.cat_name],label:e.cat_name,children:function(){return e.recipes.map((function(t){return(0,o.createComponentVNode)(2,i.Button.Checkbox,{fluid:!0,ellipsis:!0,checked:t.selected,content:t.pipe_name,title:t.pipe_name,onClick:function(){return n("pipe_type",{pipe_type:t.pipe_index,category:e.cat_name})}},t.pipe_index)}))}},e.cat_name)}))})})})]})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.SatelliteControl=void 0;var o=n(1),r=n(3),a=n(2),i=n(163);t.SatelliteControl=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data,l=c.satellites||[];return(0,o.createFragment)([c.meteor_shield&&(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,i.LabeledListItem,{label:"Coverage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:c.meteor_shield_coverage/c.meteor_shield_coverage_max,content:100*c.meteor_shield_coverage/c.meteor_shield_coverage_max+"%",ranges:{good:[1,Infinity],average:[.3,1],bad:[-Infinity,.3]}})})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Satellite Controls",children:(0,o.createComponentVNode)(2,a.Box,{mr:-1,children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:e.active,content:"#"+e.id+" "+e.mode,onClick:function(){return n("toggle",{id:e.id})}},e.id)}))})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.ScannerGate=void 0;var o=n(1),r=n(3),a=n(2),i=n(69),c=["Positive","Harmless","Minor","Medium","Harmful","Dangerous","BIOHAZARD"],l=[{name:"Human",value:"human"},{name:"Lizardperson",value:"lizard"},{name:"Flyperson",value:"fly"},{name:"Felinid",value:"felinid"},{name:"Plasmaman",value:"plasma"},{name:"Mothperson",value:"moth"},{name:"Jellyperson",value:"jelly"},{name:"Podperson",value:"pod"},{name:"Golem",value:"golem"},{name:"Zombie",value:"zombie"}],u=[{name:"Starving",value:150},{name:"Obese",value:600}];t.ScannerGate=function(e){var t=e.state,n=(0,r.useBackend)(e),a=n.act,c=n.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.InterfaceLockNoticeBox,{locked:c.locked,onLockedStatusChange:function(){return a("toggle_lock")}}),!c.locked&&(0,o.createComponentVNode)(2,s,{state:t})],0)};var d={Off:{title:"Scanner Mode: Off",component:function(){return p}},Wanted:{title:"Scanner Mode: Wanted",component:function(){return m}},Guns:{title:"Scanner Mode: Guns",component:function(){return f}},Mindshield:{title:"Scanner Mode: Mindshield",component:function(){return h}},Disease:{title:"Scanner Mode: Disease",component:function(){return C}},Species:{title:"Scanner Mode: Species",component:function(){return g}},Nutrition:{title:"Scanner Mode: Nutrition",component:function(){return b}},Nanites:{title:"Scanner Mode: Nanites",component:function(){return N}}},s=function(e){var t=e.state,n=(0,r.useBackend)(e),i=n.act,c=n.data.scan_mode,l=d[c]||d.off,u=l.component();return(0,o.createComponentVNode)(2,a.Section,{title:l.title,buttons:"Off"!==c&&(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-left",content:"back",onClick:function(){return i("set_mode",{new_mode:"Off"})}}),children:(0,o.createComponentVNode)(2,u,{state:t})})},p=function(e){var t=(0,r.useBackend)(e).act;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:"Select a scanning mode below."}),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{content:"Wanted",onClick:function(){return t("set_mode",{new_mode:"Wanted"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Guns",onClick:function(){return t("set_mode",{new_mode:"Guns"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Mindshield",onClick:function(){return t("set_mode",{new_mode:"Mindshield"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Disease",onClick:function(){return t("set_mode",{new_mode:"Disease"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Species",onClick:function(){return t("set_mode",{new_mode:"Species"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Nutrition",onClick:function(){return t("set_mode",{new_mode:"Nutrition"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Nanites",onClick:function(){return t("set_mode",{new_mode:"Nanites"})}})]})],4)},m=function(e){var t=e.state,n=(0,r.useBackend)(e).data.reverse;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",n?"does not have":"has"," ","any warrants for their arrest."]}),(0,o.createComponentVNode)(2,v,{state:t})],4)},f=function(e){var t=e.state,n=(0,r.useBackend)(e).data.reverse;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",n?"does not have":"has"," ","any guns."]}),(0,o.createComponentVNode)(2,v,{state:t})],4)},h=function(e){var t=e.state,n=(0,r.useBackend)(e).data.reverse;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",n?"does not have":"has"," ","a mindshield."]}),(0,o.createComponentVNode)(2,v,{state:t})],4)},C=function(e){var t=e.state,n=(0,r.useBackend)(e),i=n.act,l=n.data,u=l.reverse,d=l.disease_threshold;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",u?"does not have":"has"," ","a disease equal or worse than ",d,"."]}),(0,o.createComponentVNode)(2,a.Box,{mb:2,children:c.map((function(e){return(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:e===d,content:e,onClick:function(){return i("set_disease_threshold",{new_threshold:e})}},e)}))}),(0,o.createComponentVNode)(2,v,{state:t})],4)},g=function(e){var t=e.state,n=(0,r.useBackend)(e),i=n.act,c=n.data,u=c.reverse,d=c.target_species,s=l.find((function(e){return e.value===d}));return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned is ",u?"not":""," ","of the ",s.name," species.","zombie"===d&&" All zombie types will be detected, including dormant zombies."]}),(0,o.createComponentVNode)(2,a.Box,{mb:2,children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:e.value===d,content:e.name,onClick:function(){return i("set_target_species",{new_species:e.value})}},e.value)}))}),(0,o.createComponentVNode)(2,v,{state:t})],4)},b=function(e){var t=e.state,n=(0,r.useBackend)(e),i=n.act,c=n.data,l=c.reverse,d=c.target_nutrition,s=u.find((function(e){return e.value===d}));return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",l?"does not have":"has"," ","the ",s.name," nutrition level."]}),(0,o.createComponentVNode)(2,a.Box,{mb:2,children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:e.value===d,content:e.name,onClick:function(){return i("set_target_nutrition",{new_nutrition:e.name})}},e.name)}))}),(0,o.createComponentVNode)(2,v,{state:t})],4)},N=function(e){var t=e.state,n=(0,r.useBackend)(e),i=n.act,c=n.data,l=c.reverse,u=c.nanite_cloud;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",l?"does not have":"has"," ","nanite cloud ",u,"."]}),(0,o.createComponentVNode)(2,a.Box,{mb:2,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cloud ID",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:u,width:"65px",minValue:1,maxValue:100,stepPixelSize:2,onChange:function(e,t){return i("set_nanite_cloud",{new_cloud:t})}})})})}),(0,o.createComponentVNode)(2,v,{state:t})],4)},v=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data.reverse;return(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Scanning Mode",children:(0,o.createComponentVNode)(2,a.Button,{content:i?"Inverted":"Default",icon:i?"random":"long-arrow-alt-right",onClick:function(){return n("toggle_reverse")},color:i?"bad":"good"})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ShuttleManipulator=void 0;var o=n(1),r=n(24),a=n(3),i=n(2);t.ShuttleManipulator=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.shuttles||[],u=c.templates||{},d=c.selected||{},s=c.existing_shuttle||{};return(0,o.createComponentVNode)(2,i.Tabs,{children:[(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:"Status",children:function(){return(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.Table,{children:l.map((function(e){return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:(0,o.createComponentVNode)(2,i.Button,{content:"JMP",onClick:function(){return n("jump_to",{type:"mobile",id:e.id})}},e.id)}),(0,o.createComponentVNode)(2,i.Table.Cell,{children:(0,o.createComponentVNode)(2,i.Button,{content:"Fly",disabled:!e.can_fly,onClick:function(){return n("fly",{id:e.id})}},e.id)}),(0,o.createComponentVNode)(2,i.Table.Cell,{children:e.name}),(0,o.createComponentVNode)(2,i.Table.Cell,{children:e.id}),(0,o.createComponentVNode)(2,i.Table.Cell,{children:e.status}),(0,o.createComponentVNode)(2,i.Table.Cell,{children:[e.mode,!!e.timer&&(0,o.createFragment)([(0,o.createTextVNode)("("),e.timeleft,(0,o.createTextVNode)(")"),(0,o.createComponentVNode)(2,i.Button,{content:"Fast Travel",disabled:!e.can_fast_travel,onClick:function(){return n("fast_travel",{id:e.id})}},e.id)],0)]})]},e.id)}))})})}},"status"),(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:"Templates",children:function(){return(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.Tabs,{children:(0,r.map)((function(e,t){var r=e.templates||[];return(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:e.port_id,children:r.map((function(e){var t=e.shuttle_id===d.shuttle_id;return(0,o.createComponentVNode)(2,i.Section,{title:e.name,level:2,buttons:(0,o.createComponentVNode)(2,i.Button,{content:t?"Selected":"Select",selected:t,onClick:function(){return n("select_template",{shuttle_id:e.shuttle_id})}}),children:(!!e.description||!!e.admin_notes)&&(0,o.createComponentVNode)(2,i.LabeledList,{children:[!!e.description&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Description",children:e.description}),!!e.admin_notes&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Admin Notes",children:e.admin_notes})]})},e.shuttle_id)}))},t)}))(u)})})}},"templates"),(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:"Modification",children:(0,o.createComponentVNode)(2,i.Section,{children:d?(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{level:2,title:d.name,children:(!!d.description||!!d.admin_notes)&&(0,o.createComponentVNode)(2,i.LabeledList,{children:[!!d.description&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Description",children:d.description}),!!d.admin_notes&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Admin Notes",children:d.admin_notes})]})}),s?(0,o.createComponentVNode)(2,i.Section,{level:2,title:"Existing Shuttle: "+s.name,children:(0,o.createComponentVNode)(2,i.LabeledList,{children:(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Status",buttons:(0,o.createComponentVNode)(2,i.Button,{content:"Jump To",onClick:function(){return n("jump_to",{type:"mobile",id:s.id})}}),children:[s.status,!!s.timer&&(0,o.createFragment)([(0,o.createTextVNode)("("),s.timeleft,(0,o.createTextVNode)(")")],0)]})})}):(0,o.createComponentVNode)(2,i.Section,{level:2,title:"Existing Shuttle: None"}),(0,o.createComponentVNode)(2,i.Section,{level:2,title:"Status",children:[(0,o.createComponentVNode)(2,i.Button,{content:"Preview",onClick:function(){return n("preview",{shuttle_id:d.shuttle_id})}}),(0,o.createComponentVNode)(2,i.Button,{content:"Load",color:"bad",onClick:function(){return n("load",{shuttle_id:d.shuttle_id})}})]})],0):"No shuttle selected"})},"modification")]})}},function(e,t,n){"use strict";t.__esModule=!0,t.Sleeper=void 0;var o=n(1),r=n(3),a=n(2);t.Sleeper=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.occupied,l=i.open,u=i.occupant,d=void 0===u?[]:u,s=(i.chems||[]).sort((function(e,t){var n=e.name.toLowerCase(),o=t.name.toLowerCase();return no?1:0})),p=(i.synthchems||[]).sort((function(e,t){var n=e.name.toLowerCase(),o=t.name.toLowerCase();return no?1:0}));return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:d.name?d.name:"No Occupant",minHeight:"210px",buttons:!!d.stat&&(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,color:d.statstate,children:d.stat}),children:!!c&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.ProgressBar,{value:d.health,minValue:d.minHealth,maxValue:d.maxHealth,ranges:{good:[50,Infinity],average:[0,50],bad:[-Infinity,0]}}),(0,o.createComponentVNode)(2,a.Box,{mt:1}),(0,o.createComponentVNode)(2,a.LabeledList,{children:[[{label:"Brute",type:"bruteLoss"},{label:"Burn",type:"fireLoss"},{label:"Toxin",type:"toxLoss"},{label:"Oxygen",type:"oxyLoss"}].map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.label,children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:d[e.type],minValue:0,maxValue:d.maxHealth,color:"bad"})},e.type)})),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Blood",children:[(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.blood_levels/100,color:"bad",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i.blood_levels})}),i.blood_status]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cells",color:d.cloneLoss?"bad":"good",children:d.cloneLoss?"Damaged":"Healthy"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Brain",color:d.brainLoss?"bad":"good",children:d.brainLoss?"Abnormal":"Healthy"})]})],4)}),(0,o.createComponentVNode)(2,a.Section,{title:"Chemical Analysis",children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Chemical Contents",children:i.chemical_list.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{color:"good",children:[e.volume," units of ",e.name]},e.id)}))})}),(0,o.createComponentVNode)(2,a.Section,{title:"Inject Chemicals",minHeight:"105px",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:l?"door-open":"door-closed",content:l?"Open":"Closed",onClick:function(){return n("door")}}),children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:"flask",content:e.name,disabled:!(c&&e.allowed),width:"140px",onClick:function(){return n("inject",{chem:e.id})}},e.name)}))}),(0,o.createComponentVNode)(2,a.Section,{title:"Synthesize Chemicals",children:p.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.name,width:"140px",onClick:function(){return n("synth",{chem:e.id})}},e.name)}))}),(0,o.createComponentVNode)(2,a.Section,{title:"Purge Chemicals",children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.name,disabled:!e.allowed,width:"140px",onClick:function(){return n("purge",{chem:e.id})}},e.name)}))})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.SlimeBodySwapper=t.BodyEntry=void 0;var o=n(1),r=n(3),a=n(2),i=function(e){var t=e.body,n=e.swapFunc;return(0,o.createComponentVNode)(2,a.Section,{title:(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:t.htmlcolor,children:t.name}),level:2,buttons:(0,o.createComponentVNode)(2,a.Button,{content:{owner:"You Are Here",stranger:"Occupied",available:"Swap"}[t.occupied],selected:"owner"===t.occupied,color:"stranger"===t.occupied&&"bad",onClick:function(){return n()}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",bold:!0,color:{Dead:"bad",Unconscious:"average",Conscious:"good"}[t.status],children:t.status}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Jelly",children:t.exoticblood}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Location",children:t.area})]})})};t.BodyEntry=i;t.SlimeBodySwapper=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data.bodies,l=void 0===c?[]:c;return(0,o.createComponentVNode)(2,a.Section,{children:l.map((function(e){return(0,o.createComponentVNode)(2,i,{body:e,swapFunc:function(){return n("swap",{ref:e.ref})}},e.name)}))})}},function(e,t,n){"use strict";t.__esModule=!0,t.Signaler=void 0;var o=n(1),r=n(2),a=n(3),i=n(18);t.Signaler=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.code,u=c.frequency,d=c.minFrequency,s=c.maxFrequency;return(0,o.createComponentVNode)(2,r.Section,{children:[(0,o.createComponentVNode)(2,r.Grid,{children:[(0,o.createComponentVNode)(2,r.Grid.Column,{size:1.4,color:"label",children:"Frequency:"}),(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.NumberInput,{animate:!0,unit:"kHz",step:.2,stepPixelSize:6,minValue:d/10,maxValue:s/10,value:u/10,format:function(e){return(0,i.toFixed)(e,1)},width:13,onDrag:function(e,t){return n("freq",{freq:t})}})}),(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.Button,{ml:1.3,icon:"sync",content:"Reset",onClick:function(){return n("reset",{reset:"freq"})}})})]}),(0,o.createComponentVNode)(2,r.Grid,{mt:.6,children:[(0,o.createComponentVNode)(2,r.Grid.Column,{size:1.4,color:"label",children:"Code:"}),(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.NumberInput,{animate:!0,step:1,stepPixelSize:6,minValue:1,maxValue:100,value:l,width:13,onDrag:function(e,t){return n("code",{code:t})}})}),(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.Button,{ml:1.3,icon:"sync",content:"Reset",onClick:function(){return n("reset",{reset:"code"})}})})]}),(0,o.createComponentVNode)(2,r.Grid,{mt:.8,children:(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.Button,{mb:-.1,fluid:!0,icon:"arrow-up",content:"Send Signal",textAlign:"center",onClick:function(){return n("signal")}})})})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.SmartVend=void 0;var o=n(1),r=n(24),a=n(3),i=n(2);t.SmartVend=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data;return(0,o.createComponentVNode)(2,i.Section,{title:"Storage",buttons:!!c.isdryer&&(0,o.createComponentVNode)(2,i.Button,{icon:c.drying?"stop":"tint",onClick:function(){return n("Dry")},children:c.drying?"Stop drying":"Dry"}),children:0===c.contents.length&&(0,o.createComponentVNode)(2,i.NoticeBox,{children:["Unfortunately, this ",c.name," is empty."]})||(0,o.createComponentVNode)(2,i.Table,{children:[(0,o.createComponentVNode)(2,i.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:"Item"}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"center",children:c.verb?c.verb:"Dispense"})]}),(0,r.map)((function(e,t){return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:e.name}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:e.amount}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,children:[(0,o.createComponentVNode)(2,i.Button,{content:"One",disabled:e.amount<1,onClick:function(){return n("Release",{name:e.name,amount:1})}}),(0,o.createComponentVNode)(2,i.Button,{content:"Many",disabled:e.amount<=1,onClick:function(){return n("Release",{name:e.name})}})]})]},t)}))(c.contents)]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Smes=void 0;var o=n(1),r=n(3),a=n(2);t.Smes=function(e){var t,n,i=(0,r.useBackend)(e),c=i.act,l=i.data;return t=l.capacityPercent>=100?"good":l.inputting?"average":"bad",n=l.outputting?"good":l.charge>0?"average":"bad",(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Stored Energy",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:.01*l.capacityPercent,ranges:{good:[.5,Infinity],average:[.15,.5],bad:[-Infinity,.15]}})}),(0,o.createComponentVNode)(2,a.Section,{title:"Input",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge Mode",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:l.inputAttempt?"sync-alt":"times",selected:l.inputAttempt,onClick:function(){return c("tryinput")},children:l.inputAttempt?"Auto":"Off"}),children:(0,o.createComponentVNode)(2,a.Box,{color:t,children:l.capacityPercent>=100?"Fully Charged":l.inputting?"Charging":"Not Charging"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Input",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:l.inputLevel/l.inputLevelMax,content:l.inputLevel_text})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Adjust Input",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",disabled:0===l.inputLevel,onClick:function(){return c("input",{target:"min"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:0===l.inputLevel,onClick:function(){return c("input",{adjust:-1e4})}}),(0,o.createComponentVNode)(2,a.NumberInput,{value:Math.round(l.inputLevel/1e3),unit:"kW",width:"65px",minValue:0,maxValue:l.inputLevelMax/1e3,onChange:function(e,t){return c("input",{target:1e3*t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:l.inputLevel===l.inputLevelMax,onClick:function(){return c("input",{adjust:1e4})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",disabled:l.inputLevel===l.inputLevelMax,onClick:function(){return c("input",{target:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Available",children:l.inputAvailable})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Output",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Output Mode",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:l.outputAttempt?"power-off":"times",selected:l.outputAttempt,onClick:function(){return c("tryoutput")},children:l.outputAttempt?"On":"Off"}),children:(0,o.createComponentVNode)(2,a.Box,{color:n,children:l.outputting?"Sending":l.charge>0?"Not Sending":"No Charge"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Output",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:l.outputLevel/l.outputLevelMax,content:l.outputLevel_text})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Adjust Output",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",disabled:0===l.outputLevel,onClick:function(){return c("output",{target:"min"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:0===l.outputLevel,onClick:function(){return c("output",{adjust:-1e4})}}),(0,o.createComponentVNode)(2,a.NumberInput,{value:Math.round(l.outputLevel/1e3),unit:"kW",width:"65px",minValue:0,maxValue:l.outputLevelMax/1e3,onChange:function(e,t){return c("output",{target:1e3*t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:l.outputLevel===l.outputLevelMax,onClick:function(){return c("output",{adjust:1e4})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",disabled:l.outputLevel===l.outputLevelMax,onClick:function(){return c("output",{target:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Outputting",children:l.outputUsed})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.SmokeMachine=void 0;var o=n(1),r=n(3),a=n(2);t.SmokeMachine=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.TankContents,l=(i.isTankLoaded,i.TankCurrentVolume),u=i.TankMaxVolume,d=i.active,s=i.setting,p=(i.screen,i.maxSetting),m=void 0===p?[]:p;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Dispersal Tank",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d?"power-off":"times",selected:d,content:d?"On":"Off",onClick:function(){return n("power")}}),children:[(0,o.createComponentVNode)(2,a.ProgressBar,{value:l/u,ranges:{bad:[-Infinity,.3]},children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{initial:0,value:l||0})," / "+u]}),(0,o.createComponentVNode)(2,a.Box,{mt:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Range",children:[1,2,3,4,5].map((function(e){return(0,o.createComponentVNode)(2,a.Button,{selected:s===e,icon:"plus",content:3*e,disabled:m0?"good":"bad",children:m})]})}),(0,o.createComponentVNode)(2,a.Grid.Column,{size:1.5,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power output",children:(0,o.createComponentVNode)(2,a.ProgressBar,{ranges:{good:[.66,Infinity],average:[.33,.66],bad:[-Infinity,.33]},minValue:0,maxValue:1,value:l,content:c+" W"})})})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Controls",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Tracking",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Off",selected:0===p,onClick:function(){return n("tracking",{mode:0})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"clock-o",content:"Timed",selected:1===p,onClick:function(){return n("tracking",{mode:1})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Auto",selected:2===p,disabled:!f,onClick:function(){return n("tracking",{mode:2})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Azimuth",children:[(0===p||1===p)&&(0,o.createComponentVNode)(2,a.NumberInput,{width:"52px",unit:"\xb0",step:1,stepPixelSize:2,minValue:-360,maxValue:720,value:u,onDrag:function(e,t){return n("azimuth",{value:t})}}),1===p&&(0,o.createComponentVNode)(2,a.NumberInput,{width:"80px",unit:"\xb0/m",step:.01,stepPixelSize:1,minValue:-s-.01,maxValue:s+.01,value:d,format:function(e){return(Math.sign(e)>0?"+":"-")+Math.abs(e)},onDrag:function(e,t){return n("azimuth_rate",{value:t})}}),2===p&&(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"label",mt:"3px",children:[u+" \xb0"," (auto)"]})]})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.SpaceHeater=void 0;var o=n(1),r=n(3),a=n(2);t.SpaceHeater=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Power",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject Cell",disabled:!i.hasPowercell||!i.open,onClick:function(){return n("eject")}}),(0,o.createComponentVNode)(2,a.Button,{icon:i.on?"power-off":"times",content:i.on?"On":"Off",selected:i.on,disabled:!i.hasPowercell,onClick:function(){return n("power")}})],4),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cell",color:!i.hasPowercell&&"bad",children:i.hasPowercell&&(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.powerLevel/100,content:i.powerLevel+"%",ranges:{good:[.6,Infinity],average:[.3,.6],bad:[-Infinity,.3]}})||"None"})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Thermostat",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Temperature",children:(0,o.createComponentVNode)(2,a.Box,{fontSize:"18px",color:Math.abs(i.targetTemp-i.currentTemp)>50?"bad":Math.abs(i.targetTemp-i.currentTemp)>20?"average":"good",children:[i.currentTemp,"\xb0C"]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Temperature",children:i.open&&(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(i.targetTemp),width:"65px",unit:"\xb0C",minValue:i.minTemp,maxValue:i.maxTemp,onChange:function(e,t){return n("target",{target:t})}})||i.targetTemp+"\xb0C"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mode",children:i.open?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"thermometer-half",content:"Auto",selected:"auto"===i.mode,onClick:function(){return n("mode",{mode:"auto"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fire-alt",content:"Heat",selected:"heat"===i.mode,onClick:function(){return n("mode",{mode:"heat"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fan",content:"Cool",selected:"cool"===i.mode,onClick:function(){return n("mode",{mode:"cool"})}})],4):"Auto"}),(0,o.createComponentVNode)(2,a.LabeledList.Divider)]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.SpawnersMenu=void 0;var o=n(1),r=n(3),a=n(2);t.SpawnersMenu=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data.spawners||[];return(0,o.createComponentVNode)(2,a.Section,{children:i.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name+" ("+e.amount_left+" left)",level:2,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"Jump",onClick:function(){return n("jump",{name:e.name})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Spawn",onClick:function(){return n("spawn",{name:e.name})}})],4),children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,mb:1,fontSize:"20px",children:e.short_desc}),(0,o.createComponentVNode)(2,a.Box,{children:e.flavor_text}),!!e.important_info&&(0,o.createComponentVNode)(2,a.Box,{mt:1,bold:!0,color:"bad",fontSize:"26px",children:e.important_info})]},e.name)}))})}},function(e,t,n){"use strict";t.__esModule=!0,t.StationAlertConsole=void 0;var o=n(1),r=n(3),a=n(2);t.StationAlertConsole=function(e){var t=(0,r.useBackend)(e).data.alarms||[],n=t.Fire||[],i=t.Atmosphere||[],c=t.Power||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Fire Alarms",children:(0,o.createVNode)(1,"ul",null,[0===n.length&&(0,o.createVNode)(1,"li","color-good","Systems Nominal",16),n.map((function(e){return(0,o.createVNode)(1,"li","color-average",e,0,null,e)}))],0)}),(0,o.createComponentVNode)(2,a.Section,{title:"Atmospherics Alarms",children:(0,o.createVNode)(1,"ul",null,[0===i.length&&(0,o.createVNode)(1,"li","color-good","Systems Nominal",16),i.map((function(e){return(0,o.createVNode)(1,"li","color-average",e,0,null,e)}))],0)}),(0,o.createComponentVNode)(2,a.Section,{title:"Power Alarms",children:(0,o.createVNode)(1,"ul",null,[0===c.length&&(0,o.createVNode)(1,"li","color-good","Systems Nominal",16),c.map((function(e){return(0,o.createVNode)(1,"li","color-average",e,0,null,e)}))],0)})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.SuitStorageUnit=void 0;var o=n(1),r=n(3),a=n(2);t.SuitStorageUnit=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.locked,l=i.open,u=i.safeties,d=i.uv_active,s=i.occupied,p=i.suit,m=i.helmet,f=i.mask,h=i.storage;return(0,o.createFragment)([!(!s||!u)&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Biological entity detected in suit chamber. Please remove before continuing with operation."}),d&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Contents are currently being decontaminated. Please wait."})||(0,o.createComponentVNode)(2,a.Section,{title:"Storage",minHeight:"260px",buttons:(0,o.createFragment)([!l&&(0,o.createComponentVNode)(2,a.Button,{icon:c?"unlock":"lock",content:c?"Unlock":"Lock",onClick:function(){return n("lock")}}),!c&&(0,o.createComponentVNode)(2,a.Button,{icon:l?"sign-out-alt":"sign-in-alt",content:l?"Close":"Open",onClick:function(){return n("door")}})],0),children:c&&(0,o.createComponentVNode)(2,a.Box,{mt:6,bold:!0,textAlign:"center",fontSize:"40px",children:[(0,o.createComponentVNode)(2,a.Box,{children:"Unit Locked"}),(0,o.createComponentVNode)(2,a.Icon,{name:"lock"})]})||l&&(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Helmet",children:(0,o.createComponentVNode)(2,a.Button,{icon:m?"square":"square-o",content:m||"Empty",disabled:!m,onClick:function(){return n("dispense",{item:"helmet"})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Suit",children:(0,o.createComponentVNode)(2,a.Button,{icon:p?"square":"square-o",content:p||"Empty",disabled:!p,onClick:function(){return n("dispense",{item:"suit"})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mask",children:(0,o.createComponentVNode)(2,a.Button,{icon:f?"square":"square-o",content:f||"Empty",disabled:!f,onClick:function(){return n("dispense",{item:"mask"})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Storage",children:(0,o.createComponentVNode)(2,a.Button,{icon:h?"square":"square-o",content:h||"Empty",disabled:!h,onClick:function(){return n("dispense",{item:"storage"})}})})]})||(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"recycle",content:"Decontaminate",disabled:s&&u,textAlign:"center",onClick:function(){return n("uv")}})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.Tank=void 0;var o=n(1),r=n(3),a=n(2);t.Tank=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.tankPressure/1013,content:i.tankPressure+" kPa",ranges:{good:[.35,Infinity],average:[.15,.35],bad:[-Infinity,.15]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure Regulator",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",disabled:i.ReleasePressure===i.minReleasePressure,onClick:function(){return n("pressure",{pressure:"min"})}}),(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(i.releasePressure),width:"65px",unit:"kPa",minValue:i.minReleasePressure,maxValue:i.maxReleasePressure,onChange:function(e,t){return n("pressure",{pressure:t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",disabled:i.ReleasePressure===i.maxReleasePressure,onClick:function(){return n("pressure",{pressure:"max"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"undo",content:"",disabled:i.ReleasePressure===i.defaultReleasePressure,onClick:function(){return n("pressure",{pressure:"reset"})}})]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.TankDispenser=void 0;var o=n(1),r=n(3),a=n(2);t.TankDispenser=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Plasma",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.plasma?"square":"square-o",content:"Dispense",disabled:!i.plasma,onClick:function(){return n("plasma")}}),children:i.plasma}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Oxygen",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.oxygen?"square":"square-o",content:"Dispense",disabled:!i.oxygen,onClick:function(){return n("oxygen")}}),children:i.oxygen})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Teleporter=void 0;var o=n(1),r=n(3),a=n(2);t.Teleporter=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.calibrated,l=i.calibrating,u=i.power_station,d=i.regime_set,s=i.teleporter_hub,p=i.target;return(0,o.createComponentVNode)(2,a.Section,{children:!u&&(0,o.createComponentVNode)(2,a.Box,{color:"bad",textAlign:"center",children:"No power station linked."})||!s&&(0,o.createComponentVNode)(2,a.Box,{color:"bad",textAlign:"center",children:"No hub linked."})||(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Regime",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"tools",content:"Change Regime",onClick:function(){return n("regimeset")}}),children:d}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Target",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"tools",content:"Set Target",onClick:function(){return n("settarget")}}),children:p}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Calibration",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"tools",content:"Calibrate Hub",onClick:function(){return n("calibrate")}}),children:l&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"In Progress"})||c&&(0,o.createComponentVNode)(2,a.Box,{color:"good",children:"Optimal"})||(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Sub-Optimal"})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ThermoMachine=void 0;var o=n(1),r=n(18),a=n(3),i=n(2);t.ThermoMachine=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{title:"Status",children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Temperature",children:[(0,o.createComponentVNode)(2,i.AnimatedNumber,{value:c.temperature,format:function(e){return(0,r.toFixed)(e,2)}})," K"]}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Pressure",children:[(0,o.createComponentVNode)(2,i.AnimatedNumber,{value:c.pressure,format:function(e){return(0,r.toFixed)(e,2)}})," kPa"]})]})}),(0,o.createComponentVNode)(2,i.Section,{title:"Controls",buttons:(0,o.createComponentVNode)(2,i.Button,{icon:c.on?"power-off":"times",content:c.on?"On":"Off",selected:c.on,onClick:function(){return n("power")}}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Target Temperature",children:(0,o.createComponentVNode)(2,i.NumberInput,{animated:!0,value:Math.round(c.target),unit:"K",width:"62px",minValue:Math.round(c.min),maxValue:Math.round(c.max),step:5,stepPixelSize:3,onDrag:function(e,t){return n("target",{target:t})}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Presets",children:[(0,o.createComponentVNode)(2,i.Button,{icon:"fast-backward",disabled:c.target===c.min,title:"Minimum temperature",onClick:function(){return n("target",{target:c.min})}}),(0,o.createComponentVNode)(2,i.Button,{icon:"sync",disabled:c.target===c.initial,title:"Room Temperature",onClick:function(){return n("target",{target:c.initial})}}),(0,o.createComponentVNode)(2,i.Button,{icon:"fast-forward",disabled:c.target===c.max,title:"Maximum Temperature",onClick:function(){return n("target",{target:c.max})}})]})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.TurbineComputer=void 0;var o=n(1),r=n(3),a=n(2);t.TurbineComputer=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=Boolean(i.compressor&&!i.compressor_broke&&i.turbine&&!i.turbine_broke);return(0,o.createComponentVNode)(2,a.Section,{title:"Status",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:i.online?"power-off":"times",content:i.online?"Online":"Offline",selected:i.online,disabled:!c,onClick:function(){return n("toggle_power")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Reconnect",onClick:function(){return n("reconnect")}})],4),children:!c&&(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Compressor Status",color:!i.compressor||i.compressor_broke?"bad":"good",children:i.compressor_broke?i.compressor?"Offline":"Missing":"Online"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Turbine Status",color:!i.turbine||i.turbine_broke?"bad":"good",children:i.turbine_broke?i.turbine?"Offline":"Missing":"Online"})]})||(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Turbine Speed",children:[i.rpm," RPM"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Internal Temp",children:[i.temp," K"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Generated Power",children:i.power})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Uplink=void 0;var o=n(1),r=n(23),a=n(16),i=n(2);var c=function(e){var t,n;function r(){var t;return(t=e.call(this)||this).state={hoveredItem:{},currentSearch:""},t}n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var c=r.prototype;return c.setHoveredItem=function(e){this.setState({hoveredItem:e})},c.setSearchText=function(e){this.setState({currentSearch:e})},c.render=function(){var e=this,t=this.props.state,n=t.config,r=t.data,c=n.ref,u=r.compact_mode,d=r.lockable,s=r.telecrystals,p=r.categories,m=void 0===p?[]:p,f=this.state,h=f.hoveredItem,C=f.currentSearch;return(0,o.createComponentVNode)(2,i.Section,{title:(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:s>0?"good":"bad",children:[s," TC"]}),buttons:(0,o.createFragment)([(0,o.createTextVNode)("Search"),(0,o.createComponentVNode)(2,i.Input,{value:C,onInput:function(t,n){return e.setSearchText(n)},ml:1,mr:1}),(0,o.createComponentVNode)(2,i.Button,{icon:u?"list":"info",content:u?"Compact":"Detailed",onClick:function(){return(0,a.act)(c,"compact_toggle")}}),!!d&&(0,o.createComponentVNode)(2,i.Button,{icon:"lock",content:"Lock",onClick:function(){return(0,a.act)(c,"lock")}})],0),children:C.length>0?(0,o.createVNode)(1,"table","Table",(0,o.createComponentVNode)(2,l,{compact:!0,items:m.flatMap((function(e){return e.items||[]})).filter((function(e){var t=C.toLowerCase();return String(e.name+e.desc).toLowerCase().includes(t)})),hoveredItem:h,onBuyMouseOver:function(t){return e.setHoveredItem(t)},onBuyMouseOut:function(t){return e.setHoveredItem({})},onBuy:function(e){return(0,a.act)(c,"buy",{item:e.name})}}),2):(0,o.createComponentVNode)(2,i.Tabs,{vertical:!0,children:m.map((function(t){var n=t.name,r=t.items;if(null!==r)return(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:n+" ("+r.length+")",children:function(){return(0,o.createComponentVNode)(2,l,{compact:u,items:r,hoveredItem:h,telecrystals:s,onBuyMouseOver:function(t){return e.setHoveredItem(t)},onBuyMouseOut:function(t){return e.setHoveredItem({})},onBuy:function(e){return(0,a.act)(c,"buy",{item:e.name})}})}},n)}))})})},r}(o.Component);t.Uplink=c;var l=function(e){var t=e.items,n=e.hoveredItem,a=e.telecrystals,c=e.compact,l=e.onBuy,u=e.onBuyMouseOver,d=e.onBuyMouseOut,s=n&&n.cost||0;return c?(0,o.createComponentVNode)(2,i.Table,{children:t.map((function(e){var t=n&&n.name!==e.name,c=a-sl.user.cash),content:t?"FREE":Math.round(e.price*l.cost_mult)+n,onClick:function(){return(0,r.act)(u,"vend",{ref:e.ref})}})})]},e.name)}))})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.Wires=void 0;var o=n(1),r=n(3),a=n(2);t.Wires=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.wires||[],l=i.status||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:c.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{className:"candystripe",label:e.color,labelColor:e.color,color:e.color,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:e.cut?"Mend":"Cut",onClick:function(){return n("cut",{wire:e.color})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Pulse",onClick:function(){return n("pulse",{wire:e.color})}}),(0,o.createComponentVNode)(2,a.Button,{content:e.attached?"Detach":"Attach",onClick:function(){return n("attach",{wire:e.color})}})],4),children:!!e.wire&&(0,o.createVNode)(1,"i",null,[(0,o.createTextVNode)("("),e.wire,(0,o.createTextVNode)(")")],0)},e.color)}))})}),!!l.length&&(0,o.createComponentVNode)(2,a.Section,{children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:e},e)}))})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosRelief=void 0;var o=n(1),r=n(3),a=n(2);t.AtmosRelief=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Open Pressure",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(i.open_pressure),unit:"kPa",width:"75px",minValue:0,maxValue:4500,step:10,onChange:function(e,t){return n("open_pressure",{open_pressure:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:i.open_pressure===i.max_pressure,onClick:function(){return n("open_pressure",{open_pressure:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Close Pressure",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(i.close_pressure),unit:"kPa",width:"75px",minValue:0,maxValue:i.open_pressure,step:10,onChange:function(e,t){return n("close_pressure",{close_pressure:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:i.close_pressure===i.open_pressure,onClick:function(){return n("close_pressure",{close_pressure:"max"})}})]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.createStore=void 0;var o=n(70),r=n(508),a=n(3),i=n(117),c=n(115);(0,n(51).createLogger)("store");t.createStore=function(){var e=(0,o.flow)([function(e,t){return void 0===e&&(e={}),e},a.backendReducer,i.toastReducer,c.hotKeyReducer]),t=[c.hotKeyMiddleware];return(0,r.createStore)(e,r.applyMiddleware.apply(void 0,t))}},function(e,t,n){"use strict";t.__esModule=!0,t.applyMiddleware=t.createStore=void 0;var o=n(70);t.createStore=function r(e,t){if(t)return t(r)(e);var n,o=[],a=function(t){n=e(n,t),o.forEach((function(e){return e()}))};return a({type:"@@INIT"}),{dispatch:a,subscribe:function(e){o.push(e)},getState:function(){return n}}};t.applyMiddleware=function(){for(var e=arguments.length,t=new Array(e),n=0;n1?r-1:0),i=1;i1?t-1:0),o=1;o Date: Wed, 13 May 2020 03:50:27 +0200 Subject: [PATCH 029/103] floor --- code/game/objects/items/cards_ids.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm index 46a013efdc..7036a78bc4 100644 --- a/code/game/objects/items/cards_ids.dm +++ b/code/game/objects/items/cards_ids.dm @@ -311,19 +311,19 @@ registered_account.bank_card_talk("ERROR: UNABLE TO LOGIN DUE TO SCHEDULED MAINTENANCE. MAINTENANCE IS SCHEDULED TO COMPLETE IN [(registered_account.withdrawDelay - world.time)/10] SECONDS.", TRUE) return - var/amount_to_remove = FLOOR(input(user, "How much do you want to withdraw? Current Balance: [registered_account.account_balance]", "Withdraw Funds", 5) as num|null, 1) + var/amount_to_remove = input(user, "How much do you want to withdraw? Current Balance: [registered_account.account_balance]", "Withdraw Funds", 5) as num|null if(!amount_to_remove || amount_to_remove < 0) return if(!alt_click_can_use_id(user)) return - amount_to_remove = min(amount_to_remove, registered_account.account_balance) + amount_to_remove = FLOOR(min(amount_to_remove, registered_account.account_balance), 1) if(amount_to_remove && registered_account.adjust_money(-amount_to_remove)) var/obj/item/holochip/holochip = new (user.drop_location(), amount_to_remove) user.put_in_hands(holochip) to_chat(user, "You withdraw [amount_to_remove] credits into a holochip.") return - registered_account.bank_card_talk("ERROR: The linked account has no sufficient credits to perform a withdrawal.", TRUE) + registered_account.bank_card_talk("ERROR: The linked account has no sufficient credits to perform that withdrawal.", TRUE) /obj/item/card/id/examine(mob/user) . = ..() From 1e0f30a4463ef106f80dcd642defe9b854d9e38b Mon Sep 17 00:00:00 2001 From: jjpark-kb <55967837+jjpark-kb@users.noreply.github.com> Date: Wed, 13 May 2020 14:56:56 -0400 Subject: [PATCH 030/103] [Map Edits] Minimal Piping/Device Fixes (#12239) * map fixes * reverting delta fix for PR conflict --- _maps/map_files/BoxStation/BoxStation.dmm | 49 ++++++++------- .../map_files/IceBoxStation/IceBoxStation.dmm | 61 +++++++++---------- _maps/map_files/MetaStation/MetaStation.dmm | 50 +++++++++------ _maps/map_files/PubbyStation/PubbyStation.dmm | 43 ++++++++++++- 4 files changed, 127 insertions(+), 76 deletions(-) diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index c8f2c151b5..01c06a04d6 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -4127,13 +4127,12 @@ /turf/open/floor/plasteel, /area/security/main) "ahO" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4; - pixel_y = 5 - }, /obj/structure/chair/sofa/left{ dir = 1 }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, /turf/open/floor/plasteel, /area/crew_quarters/fitness) "ahP" = ( @@ -13940,8 +13939,7 @@ /area/crew_quarters/dorms) "aFk" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4; - pixel_y = 5 + dir = 4 }, /turf/open/floor/wood, /area/crew_quarters/bar) @@ -14441,13 +14439,12 @@ /turf/closed/wall, /area/crew_quarters/theatre) "aGw" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4; - pixel_y = 5 - }, /obj/machinery/light/small{ dir = 4 }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, /turf/open/floor/wood, /area/crew_quarters/bar) "aGx" = ( @@ -15098,10 +15095,6 @@ /turf/open/floor/plasteel, /area/crew_quarters/dorms) "aHV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1; - pixel_x = 5 - }, /obj/machinery/light/small{ dir = 4 }, @@ -15114,6 +15107,9 @@ /obj/item/reagent_containers/rag/towel/random, /obj/item/reagent_containers/rag/towel/random, /obj/item/reagent_containers/rag/towel/random, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, /turf/open/floor/mineral/titanium/blue, /area/crew_quarters/toilet) "aHY" = ( @@ -19161,6 +19157,7 @@ /obj/structure/cable{ icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, /area/maintenance/port) "aSY" = ( @@ -48956,8 +48953,8 @@ "cpn" = ( /obj/machinery/light, /obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 }, /turf/open/floor/plasteel, /area/engine/engine_smes) @@ -53839,6 +53836,10 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/security/range) +"dZm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/storage/art) "eaI" = ( /obj/structure/table/reinforced, /obj/item/radio/intercom{ @@ -55152,8 +55153,8 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 }, /turf/closed/wall, /area/quartermaster/warehouse) @@ -57621,6 +57622,9 @@ /obj/machinery/door/airlock/maintenance{ req_access_txt = "12" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/wood, /area/crew_quarters/bar) "plS" = ( @@ -59521,11 +59525,10 @@ /turf/open/floor/plasteel, /area/engine/atmos) "uQS" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1; - pixel_x = 5 - }, /obj/machinery/light/small, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, /turf/open/floor/mineral/titanium/blue, /area/crew_quarters/toilet) "uRd" = ( @@ -81567,7 +81570,7 @@ aPF aQZ aRa aTF -aPG +dZm aSX hPP aZF diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm index 5455070754..f66ac03124 100644 --- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm +++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm @@ -3938,13 +3938,12 @@ /turf/open/floor/plasteel, /area/security/main) "ahO" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4; - pixel_y = 5 - }, /obj/structure/chair/sofa/left{ dir = 1 }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, /turf/open/floor/plasteel, /area/crew_quarters/fitness) "ahP" = ( @@ -14109,8 +14108,7 @@ /area/crew_quarters/dorms) "aFk" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4; - pixel_y = 5 + dir = 4 }, /turf/open/floor/wood, /area/crew_quarters/bar) @@ -14603,13 +14601,12 @@ /turf/closed/wall, /area/crew_quarters/theatre) "aGw" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4; - pixel_y = 5 - }, /obj/machinery/light/small{ dir = 4 }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, /turf/open/floor/wood, /area/crew_quarters/bar) "aGx" = ( @@ -15250,10 +15247,6 @@ /turf/open/floor/plasteel, /area/crew_quarters/dorms) "aHV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1; - pixel_x = 5 - }, /obj/machinery/light/small{ dir = 4 }, @@ -15266,6 +15259,9 @@ /obj/item/reagent_containers/rag/towel/random, /obj/item/reagent_containers/rag/towel/random, /obj/item/reagent_containers/rag/towel/random, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, /turf/open/floor/mineral/titanium/blue, /area/crew_quarters/toilet) "aHY" = ( @@ -19304,15 +19300,16 @@ name = "Art Storage"; pixel_y = 24 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, /obj/structure/cable{ icon_state = "0-8" }, /obj/structure/cable{ icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, /area/maintenance/port) "aSY" = ( @@ -35617,8 +35614,7 @@ pixel_y = 3 }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4; - pixel_y = 5 + dir = 4 }, /turf/open/floor/wood, /area/crew_quarters/bar) @@ -55452,11 +55448,10 @@ /area/engine/engineering) "hOv" = ( /obj/structure/table/wood/fancy, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4; - pixel_y = 5 - }, /obj/item/reagent_containers/food/snacks/burger/plain, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, /turf/open/floor/wood, /area/crew_quarters/bar) "hOI" = ( @@ -55486,8 +55481,8 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 }, /turf/closed/wall, /area/quartermaster/warehouse) @@ -57748,8 +57743,7 @@ pixel_y = 20 }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4; - pixel_y = 5 + dir = 4 }, /turf/open/floor/wood, /area/crew_quarters/bar) @@ -58028,6 +58022,10 @@ /obj/effect/spawner/lootdrop/keg, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"oFT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/storage/art) "oHB" = ( /turf/open/floor/plasteel/dark, /area/crew_quarters/dorms) @@ -60500,11 +60498,10 @@ /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) "uQS" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1; - pixel_x = 5 - }, /obj/machinery/light/small, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, /turf/open/floor/mineral/titanium/blue, /area/crew_quarters/toilet) "uRd" = ( @@ -82695,7 +82692,7 @@ aPF aQZ aRa aTF -aPG +oFT aSX hPP aZF diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 40a9cd9842..0991e9f751 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -6660,9 +6660,7 @@ /obj/structure/cable/yellow{ icon_state = "2-8" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) "amc" = ( @@ -7778,9 +7776,6 @@ "aop" = ( /obj/structure/bed, /obj/item/bedsheet, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -7792,6 +7787,9 @@ /obj/effect/turf_decal/tile/red{ dir = 8 }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/white, /area/security/brig) "aoq" = ( @@ -9147,6 +9145,7 @@ /area/maintenance/port/fore) "aqY" = ( /obj/machinery/computer/security/labor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/dark, /area/security/brig) "aqZ" = ( @@ -11924,9 +11923,6 @@ /turf/open/floor/plating, /area/maintenance/fore) "awC" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, /obj/machinery/light/small{ dir = 1 }, @@ -14823,6 +14819,9 @@ /obj/structure/cable/yellow{ icon_state = "2-8" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/dark, /area/security/brig) "aCr" = ( @@ -14830,6 +14829,9 @@ name = "Court Cell"; req_access_txt = "63" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/dark, /area/security/brig) "aCs" = ( @@ -79861,13 +79863,13 @@ c_tag = "Chapel - Funeral Parlour"; dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, /turf/open/floor/plasteel/dark, /area/chapel/main) "djk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/closed/wall, /area/chapel/main) "djr" = ( @@ -80610,10 +80612,12 @@ /area/security/brig) "dBH" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/yellow{ icon_state = "0-4" }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, /turf/open/floor/plating, /area/security/brig) "dBI" = ( @@ -82215,6 +82219,10 @@ /obj/machinery/status_display/supply, /turf/closed/wall, /area/quartermaster/sorting) +"orJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/security/brig) "oub" = ( /obj/structure/sign/poster/official/random, /turf/closed/wall, @@ -82299,6 +82307,12 @@ }, /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) +"pvk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/security/detectives_office) "pvA" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -104390,7 +104404,7 @@ cLa cPF cQb djj -djr +cQb cRq cPA aaa @@ -107370,7 +107384,7 @@ akv alO anf aop -ahx +orJ aqY asn atK @@ -112777,7 +112791,7 @@ axp dBF azO aBi -ajm +axw ajm ajm ajm @@ -113291,7 +113305,7 @@ axr ayF ayF ayF -ayF +pvk ayJ ayJ aGt diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index 5232c94686..de6205a82b 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -4058,6 +4058,7 @@ pixel_y = -3 }, /obj/item/gun/energy/e_gun/advtaser, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, /turf/open/floor/plasteel/dark, /area/security/armory) "akM" = ( @@ -52409,6 +52410,23 @@ }, /turf/open/floor/plasteel/dark, /area/library) +"cBi" = ( +/obj/machinery/flasher/portable, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/security/armory) "cBk" = ( /obj/machinery/vending/boozeomat/pubby_maint, /turf/closed/wall, @@ -55283,6 +55301,9 @@ name = "Sergeant-at-Armsky"; weaponscheck = 1 }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/dark, /area/security/armory) "iwe" = ( @@ -55668,6 +55689,13 @@ }, /turf/open/floor/plasteel/dark, /area/science/xenobiology) +"juw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/armory) "jvi" = ( /obj/structure/cable{ icon_state = "4-8" @@ -58246,6 +58274,15 @@ }, /turf/open/floor/plating, /area/security/execution/transfer) +"pfB" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/armory) "pfP" = ( /obj/structure/table, /obj/item/storage/box/syringes, @@ -84497,7 +84534,7 @@ aiL ajg ajP akL -alA +cBi amh amV anF @@ -84754,7 +84791,7 @@ aiM aiM ajQ akM -akM +juw ami amW anG @@ -85268,7 +85305,7 @@ aiN aji ajS akO -akO +pfB amk amY anI From 44bb989ff90515b16bbdca5cdbacfb5d92253930 Mon Sep 17 00:00:00 2001 From: MrJWhit <48370570+MrJWhit@users.noreply.github.com> Date: Wed, 13 May 2020 15:00:12 -0400 Subject: [PATCH 031/103] Delta station opening of atmos (#12237) * Opening up delta atmos * Final fixes * adjustment to recheck travis --- .../map_files/Deltastation/DeltaStation2.dmm | 1715 ++++++----------- 1 file changed, 640 insertions(+), 1075 deletions(-) diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 104cee0b9d..fcaab068d9 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -15901,9 +15901,6 @@ /turf/open/floor/plasteel/dark, /area/maintenance/disposal/incinerator) "aGU" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 6 - }, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -15918,9 +15915,6 @@ /turf/open/floor/plasteel/dark, /area/maintenance/disposal/incinerator) "aGV" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10 - }, /obj/structure/cable/white{ icon_state = "2-4" }, @@ -16807,17 +16801,18 @@ /turf/open/floor/plasteel, /area/maintenance/disposal/incinerator) "aIu" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, /obj/structure/cable{ icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 6 + }, /turf/open/floor/plasteel, /area/maintenance/disposal/incinerator) "aIv" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, /obj/structure/cable{ icon_state = "4-8" }, @@ -16828,6 +16823,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, /turf/open/floor/plasteel, /area/maintenance/disposal/incinerator) "aIw" = ( @@ -18423,10 +18421,10 @@ /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/dark/corner, /area/maintenance/disposal/incinerator) "aLi" = ( @@ -18440,26 +18438,15 @@ "aLj" = ( /obj/machinery/meter, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/general/visible, /obj/effect/turf_decal/tile/yellow{ dir = 8 }, -/turf/open/floor/plasteel/dark/corner, -/area/maintenance/disposal/incinerator) -"aLk" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Port to Turbine" - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 }, /turf/open/floor/plasteel/dark/corner, /area/maintenance/disposal/incinerator) "aLl" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10 - }, /obj/effect/turf_decal/tile/yellow{ dir = 8 }, @@ -19961,13 +19948,15 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 }, /obj/machinery/embedded_controller/radio/airlock_controller/incinerator_atmos{ pixel_y = 27 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) "aNV" = ( @@ -20022,7 +20011,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -20033,6 +20021,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/dark, /area/engine/atmos) "aOa" = ( @@ -20053,7 +20042,6 @@ /area/engine/atmos) "aOb" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/general/visible, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -20096,9 +20084,6 @@ name = "Station Intercom"; pixel_y = 26 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 6 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -20112,7 +20097,7 @@ /turf/open/floor/plasteel/dark, /area/engine/atmos) "aOe" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/effect/turf_decal/tile/neutral{ @@ -20125,12 +20110,10 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/general/visible, /turf/open/floor/plasteel/dark, /area/engine/atmos) "aOf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/engine/atmos) @@ -20141,9 +20124,6 @@ /obj/machinery/light/small{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -20157,9 +20137,6 @@ /turf/open/floor/plasteel/dark, /area/engine/atmos) "aOj" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -20177,16 +20154,10 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/engine/atmos) "aOl" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -20204,9 +20175,6 @@ /obj/machinery/light{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 10 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -21035,9 +21003,6 @@ /turf/open/floor/plasteel/dark/corner, /area/maintenance/disposal/incinerator) "aPD" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -21048,6 +21013,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, /turf/open/floor/plasteel/dark, /area/engine/atmos) "aPE" = ( @@ -21061,15 +21029,15 @@ /obj/structure/table/reinforced, /obj/item/paper_bin, /obj/item/pen, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /obj/effect/turf_decal/tile/yellow{ dir = 4 }, /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/dark/corner{ dir = 1 }, @@ -21080,10 +21048,11 @@ pixel_y = 1 }, /obj/structure/tank_dispenser, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/effect/turf_decal/tile/yellow{ dir = 4 }, -/obj/effect/turf_decal/tile/yellow{ +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/open/floor/plasteel/dark/corner{ @@ -21096,10 +21065,10 @@ pixel_y = 1 }, /obj/machinery/computer/atmos_control, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/effect/turf_decal/tile/yellow{ dir = 4 }, -/obj/effect/turf_decal/tile/yellow{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/open/floor/plasteel/dark/corner{ @@ -21112,11 +21081,10 @@ pixel_y = 1 }, /obj/machinery/computer/atmos_alert, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/effect/turf_decal/tile/yellow{ dir = 4 }, -/obj/effect/turf_decal/tile/yellow{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/open/floor/plasteel/dark/corner{ @@ -21132,10 +21100,10 @@ /obj/item/crowbar/red, /obj/item/wrench, /obj/item/clothing/mask/gas, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/effect/turf_decal/tile/yellow{ dir = 4 }, -/obj/effect/turf_decal/tile/yellow{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/open/floor/plasteel/dark/corner{ @@ -21159,16 +21127,19 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ +/obj/effect/turf_decal/tile/yellow{ dir = 4 }, -/obj/effect/turf_decal/tile/yellow{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/open/floor/plasteel/checker, /area/engine/atmos) "aPL" = ( /obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "aPM" = ( @@ -21184,15 +21155,15 @@ /obj/item/electronics/airalarm, /obj/item/electronics/firealarm, /obj/item/electronics/firealarm, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, /obj/effect/turf_decal/tile/yellow{ dir = 4 }, /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, /turf/open/floor/plasteel/dark/corner{ dir = 1 }, @@ -21265,7 +21236,6 @@ dir = 8 }, /obj/structure/table/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/item/stack/rods{ amount = 23 }, @@ -22130,9 +22100,6 @@ /turf/open/floor/plating, /area/maintenance/disposal/incinerator) "aRq" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 6 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -22143,6 +22110,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 6 + }, /turf/open/floor/plasteel/dark, /area/engine/atmos) "aRr" = ( @@ -22173,6 +22143,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 9 }, +/obj/machinery/atmospherics/pipe/simple/general/visible, /turf/open/floor/plasteel, /area/engine/atmos) "aRt" = ( @@ -22187,15 +22158,21 @@ /turf/open/floor/plasteel, /area/engine/atmos) "aRu" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/effect/turf_decal/stripes/line{ +/obj/item/twohanded/required/kirbyplants/random, +/obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, /area/engine/atmos) "aRv" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ @@ -22210,11 +22187,7 @@ /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, +/turf/closed/wall/r_wall, /area/engine/atmos) "aRx" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ @@ -22265,7 +22238,6 @@ /obj/machinery/light{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -22288,9 +22260,6 @@ /turf/open/floor/plasteel/dark, /area/engine/atmos) "aRD" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -22301,6 +22270,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, /turf/open/floor/plasteel/dark, /area/engine/atmos) "aRE" = ( @@ -23222,7 +23194,6 @@ /turf/open/space, /area/space/nearstation) "aST" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -23233,6 +23204,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/plasteel/dark, /area/engine/atmos) "aSU" = ( @@ -23246,15 +23218,19 @@ /obj/effect/turf_decal/tile/yellow{ dir = 8 }, -/turf/open/floor/plasteel/checker, -/area/engine/atmos) -"aSV" = ( /obj/machinery/atmospherics/pipe/simple/yellow/visible{ dir = 6 }, +/turf/open/floor/plasteel/checker, +/area/engine/atmos) +"aSV" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible, /turf/open/floor/plasteel, /area/engine/atmos) "aSW" = ( @@ -23278,10 +23254,6 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Port to Turbine" - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -23295,24 +23267,11 @@ /turf/open/floor/plasteel, /area/engine/atmos) "aSY" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 10 }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Port to Filter" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, +/turf/open/space, /area/engine/atmos) "aSZ" = ( /obj/machinery/atmospherics/pipe/simple/yellow/visible{ @@ -23378,7 +23337,6 @@ /obj/structure/cable/white{ icon_state = "2-8" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -23392,13 +23350,12 @@ /turf/open/floor/plasteel, /area/engine/atmos) "aTd" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 1 - }, -/obj/machinery/meter, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "aTe" = ( @@ -23409,17 +23366,16 @@ dir = 1; pixel_y = 1 }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Air to Pure" - }, /obj/effect/turf_decal/tile/blue{ dir = 4 }, +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 1 + }, +/obj/machinery/meter, /turf/open/floor/plasteel/cafeteria, /area/engine/atmos) "aTf" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -23430,6 +23386,10 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Air to Pure" + }, /turf/open/floor/plasteel/dark, /area/engine/atmos) "aTg" = ( @@ -24567,7 +24527,6 @@ /turf/open/floor/plating, /area/security/prison) "aUL" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/machinery/light/small{ dir = 8 }, @@ -24581,12 +24540,15 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/engine/atmos) -"aUM" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 6 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aUM" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -24598,16 +24560,20 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, /turf/open/floor/plasteel/dark, /area/engine/atmos) "aUN" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/general/visible, /turf/open/floor/plasteel, /area/engine/atmos) "aUO" = ( @@ -24627,21 +24593,11 @@ /turf/open/floor/plasteel, /area/engine/atmos) "aUP" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/layer_manifold{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, +/turf/open/floor/plating, /area/engine/atmos) "aUQ" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ @@ -24651,6 +24607,7 @@ /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/effect/landmark/start/atmospheric_technician, /turf/open/floor/plasteel/dark/corner, /area/engine/atmos) "aUR" = ( @@ -24715,7 +24672,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -24729,7 +24685,6 @@ /turf/open/floor/plasteel, /area/engine/atmos) "aUW" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 4 }, @@ -24746,12 +24701,13 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10 - }, /obj/effect/turf_decal/tile/blue{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, /turf/open/floor/plasteel/white/corner, /area/engine/atmos) "aUY" = ( @@ -25865,16 +25821,13 @@ /area/engine/atmos) "aWy" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/atmos) -"aWz" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ +/obj/machinery/atmospherics/pipe/layer_manifold{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plating, +/area/engine/atmos) +"aWz" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -25886,6 +25839,11 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "CO2 to Pure" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel/dark, /area/engine/atmos) "aWA" = ( @@ -25896,11 +25854,6 @@ dir = 1; pixel_y = 1 }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "CO2 to Pure" - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -25911,73 +25864,19 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 4 + }, /turf/open/floor/plasteel/dark, /area/engine/atmos) "aWB" = ( -/obj/machinery/atmospherics/pipe/manifold4w/yellow/visible, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/general/visible, /turf/open/floor/plasteel, /area/engine/atmos) "aWC" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/engine/atmos) -"aWD" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"aWE" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/machinery/meter, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"aWF" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/engine/atmos) "aWG" = ( @@ -26027,48 +25926,24 @@ /turf/open/floor/plasteel, /area/engine/atmos) "aWM" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable/white{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible, +/turf/open/space, /area/engine/atmos) "aWN" = ( +/obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 6 }, -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, +/turf/open/floor/plating, /area/engine/atmos) "aWO" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 6 + }, /turf/open/floor/plasteel, /area/engine/atmos) "aWP" = ( @@ -26076,7 +25951,6 @@ dir = 4 }, /obj/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/green/visible, /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 }, @@ -26086,6 +25960,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, /turf/open/floor/plasteel/white/corner, /area/engine/atmos) "aWR" = ( @@ -26853,7 +26728,6 @@ /turf/open/floor/engine/co2, /area/engine/atmos) "aXY" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -26865,6 +26739,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel/dark, /area/engine/atmos) "aXZ" = ( @@ -26874,7 +26749,6 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/green/visible, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -26885,81 +26759,13 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, /turf/open/floor/plasteel/dark, /area/engine/atmos) -"aYa" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"aYb" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater/on{ - dir = 4 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/engine/atmos) -"aYc" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"aYd" = ( +"aYf" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"aYe" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"aYf" = ( -/obj/structure/table/reinforced, -/obj/item/folder/yellow, -/obj/item/lightreplacer, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, /turf/open/floor/plasteel, /area/engine/atmos) "aYg" = ( @@ -26997,27 +26803,23 @@ /turf/open/floor/plasteel, /area/engine/atmos) "aYj" = ( -/obj/structure/table/reinforced, -/obj/item/wrench, -/obj/item/tank/internals/emergency_oxygen/engi, -/obj/item/tank/internals/emergency_oxygen/engi, /obj/machinery/newscaster{ pixel_x = 32 }, /obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes/end{ + dir = 1 + }, +/obj/machinery/suit_storage_unit/atmos, /turf/open/floor/plasteel, /area/engine/atmos) "aYk" = ( -/obj/structure/table/reinforced, -/obj/item/clothing/gloves/color/black, -/obj/item/clothing/suit/hazardvest, -/obj/item/clothing/mask/gas, -/obj/item/clothing/gloves/color/black, -/obj/item/clothing/suit/hazardvest, -/obj/item/clothing/mask/gas, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/atmospherics/components/unary/thermomachine/heater{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "aYl" = ( @@ -27035,13 +26837,15 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, /turf/open/floor/plasteel, /area/engine/atmos) "aYm" = ( /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, @@ -27058,7 +26862,6 @@ /turf/open/floor/plasteel, /area/engine/atmos) "aYn" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -27072,20 +26875,13 @@ /turf/open/floor/plasteel, /area/engine/atmos) "aYo" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 8 - }, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/plasteel, /area/engine/atmos) "aYp" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "O2 to Pure" - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -27096,12 +26892,12 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 8 + }, /turf/open/floor/plasteel/dark, /area/engine/atmos) "aYq" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 10 - }, /obj/effect/decal/cleanable/dirt, /obj/structure/sign/warning/securearea{ pixel_x = 32 @@ -27124,6 +26920,11 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "O2 to Pure" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel/dark, /area/engine/atmos) "aYr" = ( @@ -28136,10 +27937,6 @@ /turf/open/floor/plating, /area/engine/atmos) "aZT" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -28150,6 +27947,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/components/trinary/filter/atmos/co2, /turf/open/floor/plasteel/dark, /area/engine/atmos) "aZU" = ( @@ -28157,7 +27955,6 @@ dir = 8 }, /obj/structure/window/reinforced, -/obj/machinery/atmospherics/components/trinary/filter/atmos/co2, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -28168,75 +27965,10 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/structure/reagent_dispensers/watertank/high, /turf/open/floor/plasteel/dark, /area/engine/atmos) -"aZV" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/canister, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/engine/atmos) -"aZW" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"aZX" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"aZY" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, -/obj/machinery/meter, -/obj/item/wrench, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"aZZ" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/machinery/portable_atmospherics/canister, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "baa" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 @@ -28270,8 +28002,8 @@ "bac" = ( /obj/structure/closet/secure_closet/atmospherics, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/end{ - dir = 1 +/obj/effect/turf_decal/stripes/line{ + dir = 8 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -28300,23 +28032,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bag" = ( -/obj/machinery/atmospherics/components/trinary/mixer/airmix{ - dir = 1 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -28337,11 +28052,6 @@ dir = 1; pixel_y = 1 }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 8; - name = "O2 to Airmix" - }, /obj/effect/turf_decal/tile/blue{ dir = 1 }, @@ -28349,10 +28059,13 @@ /obj/effect/turf_decal/tile/blue{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bai" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -28363,6 +28076,11 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8; + name = "O2 to Airmix" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel/dark, /area/engine/atmos) "baj" = ( @@ -29016,7 +28734,6 @@ /turf/open/space, /area/space/nearstation) "bbA" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/structure/sign/warning/securearea{ pixel_x = -32 }, @@ -29038,10 +28755,10 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel/dark, /area/engine/atmos) "bbB" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -29052,58 +28769,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, /turf/open/floor/plasteel/dark, /area/engine/atmos) -"bbC" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4 - }, -/obj/machinery/meter, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bbD" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/start/atmospheric_technician, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bbE" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "bbF" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -29157,7 +28825,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/effect/landmark/start/atmospheric_technician, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -29171,13 +28838,6 @@ }, /turf/open/floor/plasteel, /area/engine/atmos) -"bbK" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "bbL" = ( /obj/machinery/computer/atmos_control/tank/oxygen_tank{ dir = 8 @@ -29185,11 +28845,11 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/green/visible, /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bbM" = ( @@ -29205,6 +28865,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel/dark, /area/engine/atmos) "bbN" = ( @@ -29870,10 +29531,6 @@ /turf/open/floor/engine/plasma, /area/engine/atmos) "bda" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -29884,6 +29541,11 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Plasma to Pure" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel/dark, /area/engine/atmos) "bdb" = ( @@ -29894,11 +29556,6 @@ dir = 1; pixel_y = 1 }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Plasma to Pure" - }, /obj/effect/turf_decal/tile/purple{ dir = 1 }, @@ -29908,55 +29565,17 @@ /obj/effect/turf_decal/tile/purple{ dir = 8 }, +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bdc" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 4 - }, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bdd" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/portable_atmospherics/canister, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bde" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bdf" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, -/obj/machinery/meter, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, +/obj/machinery/atmospherics/pipe/simple/general/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bdg" = ( @@ -30000,9 +29619,6 @@ dir = 4 }, /obj/structure/window/reinforced, -/obj/machinery/atmospherics/components/trinary/filter/atmos/o2{ - dir = 1 - }, /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -30010,12 +29626,10 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bdl" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -30026,6 +29640,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/components/trinary/filter/atmos/o2{ + dir = 1 + }, /turf/open/floor/plasteel/dark, /area/engine/atmos) "bdm" = ( @@ -30711,7 +30328,6 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/green/visible, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/purple{ dir = 1 @@ -30719,6 +30335,7 @@ /obj/effect/turf_decal/tile/purple{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bey" = ( @@ -30735,28 +30352,9 @@ }, /turf/open/floor/plasteel, /area/engine/atmos) -"bez" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "beA" = ( -/obj/structure/table/reinforced, -/obj/item/analyzer{ - pixel_x = 7; - pixel_y = 3 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -30767,10 +30365,12 @@ dir = 4; pixel_x = -24 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/dark/corner{ dir = 1 }, @@ -30795,17 +30395,16 @@ /turf/closed/wall, /area/engine/atmos) "beF" = ( -/obj/structure/table/reinforced, -/obj/item/stack/packageWrap, -/obj/item/hand_labeler, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "beG" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -30818,21 +30417,7 @@ }, /turf/open/floor/plasteel, /area/engine/atmos) -"beH" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 5 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "beI" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "N2 to Pure" - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -30843,6 +30428,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 5 + }, /turf/open/floor/plasteel/dark, /area/engine/atmos) "beJ" = ( @@ -30852,12 +30440,6 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 10 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -30865,6 +30447,14 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "N2 to Pure" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel/dark, /area/engine/atmos) "beK" = ( @@ -31526,10 +31116,6 @@ /turf/open/floor/engine/plasma, /area/engine/atmos) "bfU" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -31541,6 +31127,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/components/trinary/filter/atmos/plasma, /turf/open/floor/plasteel/dark, /area/engine/atmos) "bfV" = ( @@ -31548,7 +31135,6 @@ dir = 8 }, /obj/structure/window/reinforced, -/obj/machinery/atmospherics/components/trinary/filter/atmos/plasma, /obj/effect/turf_decal/tile/purple{ dir = 1 }, @@ -31556,23 +31142,8 @@ /obj/effect/turf_decal/tile/purple{ dir = 8 }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bfW" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Port Mix to Port Ports" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/structure/closet/crate, /turf/open/floor/plasteel, /area/engine/atmos) "bfX" = ( @@ -31590,26 +31161,6 @@ }, /turf/open/floor/plasteel, /area/engine/atmos) -"bfY" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Port Mix to Starboard Ports" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "bfZ" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -31630,29 +31181,13 @@ }, /turf/open/floor/plasteel, /area/engine/atmos) -"bgb" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 5 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "bgc" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 5 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bgd" = ( @@ -31663,11 +31198,6 @@ dir = 1; pixel_y = 1 }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 8; - name = "N2 to Airmix" - }, /obj/effect/turf_decal/tile/red{ dir = 1 }, @@ -31675,11 +31205,13 @@ /obj/effect/turf_decal/tile/red{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bge" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/yellow/visible, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -31690,6 +31222,11 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8; + name = "N2 to Airmix" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel/dark, /area/engine/atmos) "bgf" = ( @@ -32184,7 +31721,6 @@ /turf/open/floor/plating, /area/security/main) "bhf" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/effect/decal/cleanable/dirt, /obj/structure/sign/warning/securearea{ pixel_x = -32 @@ -32202,50 +31738,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel/dark, /area/engine/atmos) -"bhg" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 - }, -/obj/machinery/meter, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bhh" = ( -/obj/machinery/atmospherics/pipe/manifold4w/general/visible, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bhi" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel/dark/corner{ - dir = 1 - }, -/area/engine/atmos) "bhj" = ( /obj/machinery/power/apc/highcap/five_k{ areastring = "/area/engine/atmos"; @@ -32347,7 +31842,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -32395,27 +31889,12 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/green/visible, /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) -"bhu" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/atmos) "bhv" = ( /obj/machinery/air_sensor/atmos/nitrogen_tank, /turf/open/floor/engine/n2, @@ -33356,34 +32835,29 @@ dir = 1; pixel_y = 1 }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "N2O to Pure" - }, /obj/effect/turf_decal/tile/red{ dir = 4 }, /obj/effect/turf_decal/tile/red{ dir = 8 }, +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 4 + }, /turf/open/floor/plasteel/white/corner{ dir = 1 }, /area/engine/atmos) "biX" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 4 - }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, /turf/open/floor/plasteel, /area/engine/atmos) "biY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -33394,75 +32868,12 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, /turf/open/floor/plasteel, /area/engine/atmos) "biZ" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Pure to Ports" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bja" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Mix to Ports" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bjb" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Air to Ports" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bjc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump{ - name = "Port Mix to Engine" - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -33473,15 +32884,14 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/portable_atmospherics/canister, /turf/open/floor/plasteel, /area/engine/atmos) "bjd" = ( /obj/structure/cable/white{ icon_state = "1-4" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -33498,7 +32908,6 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -33509,6 +32918,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bjf" = ( @@ -33596,8 +33008,6 @@ /obj/structure/cable/white{ icon_state = "1-8" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/machinery/meter, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -33636,9 +33046,6 @@ dir = 4 }, /obj/structure/window/reinforced, -/obj/machinery/atmospherics/components/trinary/filter/atmos/n2{ - dir = 1 - }, /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 4 @@ -34546,42 +33953,49 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/green/visible, /obj/effect/turf_decal/tile/red{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 5 + }, /turf/open/floor/plasteel/white/corner{ dir = 1 }, /area/engine/atmos) "bkK" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ dir = 10 }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Pure to Port" + }, /turf/open/floor/plasteel, /area/engine/atmos) "bkL" = ( /obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/manifold4w/general/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bkM" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/machinery/meter, /obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/manifold4w/general/visible, +/obj/machinery/meter, /turf/open/floor/plasteel, /area/engine/atmos) "bkN" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/meter, /obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bkO" = ( /obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 5 +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -34592,13 +34006,6 @@ }, /turf/open/floor/plasteel, /area/engine/atmos) -"bkQ" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "bkR" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/corner{ @@ -34640,12 +34047,20 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bkU" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, /area/engine/atmos) "bkV" = ( /obj/effect/decal/cleanable/dirt, @@ -34667,11 +34082,6 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bkX" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/machinery/atmospherics/components/binary/valve{ - dir = 4; - name = "SM Coolant Loop" - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -34682,6 +34092,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, /turf/open/floor/plasteel/dark, /area/engine/atmos) "bkY" = ( @@ -34691,9 +34104,6 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 10 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -34704,10 +34114,17 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /turf/open/floor/plasteel/dark, /area/engine/atmos) "bkZ" = ( /obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 10 + }, /turf/open/space, /area/engine/atmos) "bla" = ( @@ -35683,91 +35100,103 @@ dir = 8 }, /obj/structure/window/reinforced, -/obj/machinery/atmospherics/components/trinary/filter/atmos/n2o, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/red{ dir = 8 }, +/obj/machinery/portable_atmospherics/canister/nitrogen, /turf/open/floor/plasteel/cafeteria, /area/engine/atmos) "bmK" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 5 - }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/engine/atmos) "bmL" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 1 - }, /obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/components/binary/pump{ + name = "Port to Mix" + }, /turf/open/floor/plasteel, /area/engine/atmos) "bmM" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 9 - }, /obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bmN" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, /obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/components/binary/pump{ + name = "Mix to Port" + }, /turf/open/floor/plasteel, /area/engine/atmos) "bmO" = ( /obj/effect/turf_decal/bot, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bmP" = ( /obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Port to Waste" + }, /turf/open/floor/plasteel, /area/engine/atmos) "bmQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 6 - }, /obj/effect/turf_decal/tile/yellow{ dir = 4 }, /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 1 + }, /turf/open/floor/plasteel/dark/corner{ dir = 1 }, /area/engine/atmos) "bmR" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Air to Ports" + }, /turf/open/floor/plasteel/dark/corner{ dir = 1 }, /area/engine/atmos) "bmS" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 1 - }, /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 1 + }, /turf/open/floor/plasteel/dark/corner{ dir = 1 }, /area/engine/atmos) "bmT" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 1 - }, /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, /turf/open/floor/plasteel/checker, /area/engine/atmos) "bmU" = ( @@ -35814,7 +35243,9 @@ /obj/item/stack/sheet/glass/fifty, /obj/item/stack/rods/fifty, /obj/effect/turf_decal/bot, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bmY" = ( @@ -35850,9 +35281,6 @@ dir = 8 }, /obj/item/twohanded/required/kirbyplants/random, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 9 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -35863,11 +35291,30 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, /turf/open/floor/plasteel/dark, /area/engine/atmos) "bnb" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 5 +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"bnc" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 }, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -35879,15 +35326,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel/dark, /area/engine/atmos) -"bnc" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/atmos) "bnd" = ( /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/simple/orange/visible{ @@ -36579,28 +36020,15 @@ /area/space/nearstation) "bok" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 8 - }, -/obj/machinery/status_display/evac{ - pixel_x = -32 +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plating, /area/engine/atmos) "bol" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/atmos) -"bom" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/plating, /area/engine/atmos) "bon" = ( @@ -36620,9 +36048,10 @@ /turf/open/floor/plasteel, /area/engine/atmos) "boo" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible, -/turf/open/floor/plating, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, /area/engine/atmos) "bop" = ( /obj/structure/table/reinforced, @@ -36636,9 +36065,6 @@ /turf/open/floor/plasteel, /area/engine/atmos) "boq" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -36649,6 +36075,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bor" = ( @@ -36670,7 +36099,6 @@ /obj/item/clipboard, /obj/effect/decal/cleanable/dirt, /obj/item/toy/figure/atmos, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/engine/atmos) @@ -37595,7 +37023,6 @@ /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/effect/turf_decal/tile/green{ dir = 1 }, @@ -37605,10 +37032,10 @@ /obj/effect/turf_decal/tile/green{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bpR" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, /obj/machinery/atmospherics/components/binary/pump/on{ dir = 8; name = "Unfiltered & Air to Mix" @@ -37633,13 +37060,11 @@ }, /area/engine/atmos) "bpT" = ( -/obj/machinery/atmospherics/components/binary/pump{ - name = "Pure to Mix" - }, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel/dark/corner{ dir = 1 }, @@ -37662,6 +37087,7 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/machinery/meter, /turf/open/floor/plasteel/dark/corner{ dir = 1 }, @@ -37734,7 +37160,6 @@ /obj/item/clothing/head/welding, /obj/structure/table/reinforced, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/effect/turf_decal/bot, /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 @@ -38947,22 +38372,27 @@ /obj/machinery/computer/atmos_control/tank/mix_tank{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/effect/turf_decal/tile/green{ dir = 1 }, /obj/effect/turf_decal/tile/green{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 5 + }, /turf/open/floor/plasteel, /area/engine/atmos) "brW" = ( -/obj/machinery/atmospherics/pipe/manifold/green/visible{ - dir = 8 - }, /obj/effect/turf_decal/stripes/line{ dir = 9 }, +/obj/machinery/atmospherics/pipe/manifold/green/visible{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/atmos) "brX" = ( @@ -39017,17 +38447,11 @@ /obj/item/wrench, /obj/item/clothing/mask/gas, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 6 - }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/engine/atmos) "bsd" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 4 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -39038,13 +38462,13 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bse" = ( /obj/structure/table/reinforced, /obj/item/storage/belt/utility, /obj/item/t_scanner, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/engine/atmos) @@ -40226,13 +39650,14 @@ dir = 4; pixel_x = -22 }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 6 + }, /turf/open/floor/plasteel, /area/engine/atmos) "btU" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -40243,11 +39668,16 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 8 + }, /turf/open/floor/plasteel, /area/engine/atmos) "btV" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 10 + }, /turf/open/floor/plasteel, /area/engine/atmos) "btW" = ( @@ -40326,47 +39756,53 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bub" = ( /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/machinery/portable_atmospherics/canister/nitrous_oxide, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/atmos) "buc" = ( /obj/structure/cable/white{ icon_state = "2-8" }, -/obj/machinery/portable_atmospherics/canister/nitrogen, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bud" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 }, -/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bue" = ( -/obj/machinery/portable_atmospherics/canister/air, /obj/machinery/camera{ c_tag = "Atmospherics - Desk"; dir = 8; name = "atmospherics camera" }, -/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/atmos) "buf" = ( @@ -41024,9 +40460,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/plasteel, /area/engine/atmos) "bvn" = ( @@ -41036,9 +40469,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/plasteel, /area/engine/atmos) "bvo" = ( @@ -41049,9 +40479,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/plasteel, /area/engine/atmos) "bvp" = ( @@ -41059,9 +40486,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/plasteel, /area/engine/atmos) "bvq" = ( @@ -77653,7 +77077,6 @@ name = "Maintenance Hatch"; req_access_txt = "12" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ @@ -82774,18 +82197,12 @@ /turf/open/floor/plasteel, /area/crew_quarters/dorms) "cJl" = ( -/obj/structure/cable/white{ - icon_state = "4-8" +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 10 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) +/turf/open/space, +/area/engine/atmos) "cJm" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -84099,9 +83516,6 @@ /turf/open/floor/plasteel, /area/crew_quarters/dorms) "cLa" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -84112,6 +83526,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, /turf/open/floor/plasteel, /area/crew_quarters/dorms) "cLb" = ( @@ -125764,6 +125181,14 @@ }, /turf/open/floor/plasteel/dark, /area/library) +"emA" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plating, +/area/engine/atmos) "exE" = ( /obj/machinery/air_sensor/atmos/toxins_mixing_tank, /turf/open/floor/engine/vacuum, @@ -125838,6 +125263,24 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/maintenance/port/fore) +"eRX" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "N2O to Pure" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) "eTv" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -126204,6 +125647,12 @@ }, /turf/open/floor/plasteel, /area/security/prison) +"hwV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/engine/atmos) "hFo" = ( /obj/structure/lattice, /obj/structure/disposalpipe/segment{ @@ -126355,6 +125804,12 @@ }, /turf/open/floor/plasteel/dark, /area/science/mixing) +"jaZ" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/atmos) "jdO" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -126616,11 +126071,26 @@ }, /turf/open/floor/plasteel/white, /area/science/mixing) +"kQS" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Port to Turbine" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "lak" = ( /turf/open/floor/plasteel/white/side{ dir = 10 }, /area/science/circuit) +"lhL" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/manifold/yellow/visible, +/turf/open/space, +/area/engine/atmos) "loI" = ( /obj/machinery/autolathe, /obj/machinery/door/window/southleft{ @@ -126638,6 +126108,20 @@ }, /turf/open/floor/plasteel/white, /area/science/lab) +"lqA" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2o, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) "lti" = ( /obj/machinery/atmospherics/components/trinary/mixer/flipped, /obj/effect/turf_decal/tile/neutral{ @@ -126854,6 +126338,16 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/circuit/green, /area/science/research/abandoned) +"mxy" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 8 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) "mIi" = ( /obj/item/electropack/shockcollar, /obj/item/assembly/signaler, @@ -127023,6 +126517,14 @@ }, /turf/open/floor/plasteel/white, /area/science/research) +"oVn" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Ports to Engine" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "oYI" = ( /obj/machinery/igniter/incinerator_toxmix, /turf/open/floor/engine/vacuum, @@ -127149,6 +126651,22 @@ }, /turf/open/floor/plasteel, /area/science/research/abandoned) +"qej" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) "qeN" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/effect/turf_decal/tile/neutral{ @@ -127317,6 +126835,15 @@ "saw" = ( /turf/closed/wall, /area/science/circuit) +"sby" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/trinary/mixer/airmix{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "sfo" = ( /obj/effect/decal/remains/xeno, /turf/open/floor/engine/vacuum, @@ -127545,6 +127072,13 @@ /obj/effect/landmark/start/paramedic, /turf/open/floor/plasteel/white, /area/medical/storage) +"vFd" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 5 + }, +/turf/open/floor/plating, +/area/engine/atmos) "wei" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, @@ -127564,6 +127098,20 @@ /obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel/white, /area/science/misc_lab) +"wHv" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) "wIf" = ( /obj/item/twohanded/required/kirbyplants/random, /turf/open/floor/plasteel, @@ -127586,6 +127134,23 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) +"xbz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "xdZ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -149940,22 +149505,22 @@ aNY aMB aMG aMG -aMG +aWN aWy -aMB -aZS -aMG +bol +emA +bol aWy -aMB -aZS -aMG -aWy -aMB -aZS -aMG -aZS -aMB +bol +emA +bol aWy +bol +emA +mxy +emA +vFd +aUP aMG aMG bxE @@ -150203,12 +149768,12 @@ aXY aZT bbA bda -aST +wHv bfU bhf -bda -aST -aZT +eRX +wHv +lqA bok bpQ brV @@ -150466,7 +150031,7 @@ bbB biW bkJ bmJ -bol +aTg bpR brW btN @@ -150706,20 +150271,20 @@ aGV aIv aJO aLj -aMB -aOa +aME +aOe aPF aRs aSV aUN aWB -aYa -aYa -aYa +aWB +aWB +aWB bdc -aYa -aYa -aYa +aWB +aWB +kQS biX bkK bmK @@ -150962,7 +150527,7 @@ aFr aGW aIw aJP -aLk +aLl aMB aOa aPG @@ -150970,17 +150535,17 @@ aRt aSW aUO aWC -aYb -aZV -aZV -bdd -bey -bae -bae +aWC +aWC +aWC +aWC +aWC +aWC +aYn biY bkL bmL -bom +bok bpT brY btP @@ -151220,20 +150785,20 @@ aFr aIx aJQ aLl -aME +aMB aOb aPH -aRu +aRy aSX -aUP -aWD -aYc -aZW -bbC -aYc -bez -bfW -aWD +aUO +aWC +aWC +aWC +aWC +aWC +aWC +aWC +aWC biZ bkM bmM @@ -151483,16 +151048,16 @@ aPI aRv aSW aUO -aWE -aYd -aZX -bbD -bde -bde +aWC +aWC +aWC +aWC +aWC +aWC bfX -bhg -bja -bkM +aWC +biZ +bkL bmN bon bpV @@ -151737,21 +151302,21 @@ aFr aMG aOd aPJ -aRw -aSY -aUP -aWF -aYe -aZY -bbE -bdf -bez -bfY -bhh -bjb +aRv +aSW +aUO +aWC +aWC +aWC +aWC +aWC +aWC +aWC +aWC +aYn bkN bmO -boo +aTg bpW bsb btS @@ -151992,20 +151557,20 @@ ayR aJT aLn aMG -aOe -aOo +aOn +aRu aRv aSW aUQ -aWG +aWC aYf -aZZ -aZZ -aZZ +aWC +aWC +aWC beA -aWK -bhi -bjc +aWC +aWC +aWC bkO bmP aTg @@ -152259,11 +151824,11 @@ aYg aMB aWH aMB -aWH +hwV aWH bhj bjd -bkP +bkO bmQ bop bpY @@ -152506,8 +152071,8 @@ aBf aJV aLp aMG -aOe -aOo +aOn +aRu aRv aSW aUS @@ -152520,12 +152085,12 @@ beB bfZ bhk bje -bkQ +bkN bmR boq bpZ bsd -aYn +boq bvf aMG bxL @@ -152777,7 +152342,7 @@ beC bga bhl bjf -bkP +oVn bmS bor bqa @@ -153020,7 +152585,7 @@ alT aJW aLq aMG -aOe +aOn aPN aRv aSW @@ -153801,7 +153366,7 @@ aYl bae bae bae -bae +xbz aWL bhp bji @@ -154053,7 +153618,7 @@ aPR aRB aTc aUV -aWM +bxS aYm baf bbJ @@ -154062,7 +153627,7 @@ baf baf bhq bjj -bkU +bkP bmX bow bqf @@ -154310,13 +153875,13 @@ aPS aRv aSW aUO -aWN +bxR +aYn aYn -bag aYn aYn beG -bgb +aYn bhr bjk bkV @@ -154569,10 +154134,10 @@ aTd aUW aWO aYo -aWO -bbK -bbK -beH +sby +aYo +aYo +aYo bgc bhs bjl @@ -155080,16 +154645,16 @@ aOo aOn aRD aTf -aOn -aRC +bkU +bnc aYq bai bbM bdl beJ bge -bhu -bdl +aXY +qej bkY bnb aMG @@ -155335,20 +154900,20 @@ alT aML aMG aMG -aMG -aTg +aRw +aUP aMB aTg -aMG -aWy +boo +aUP aMB aZS -aMG -aWy +boo +aUP aMB aZS -aMG -bnc +jaZ +aMB aMG bqk bsn @@ -155592,20 +155157,20 @@ aLy alT aad aad +aSY +aWM aRE aTh -aRE -aTh -aRE -aWx +cJl +lhL aRE aZR -aRE -aWx +cJl +lhL aRE aZR bkZ -aMN +aMM aMG bql bso @@ -178522,7 +178087,7 @@ cDD cFx cGU cAw -cJl +cJk cLa cMx cIi From 899c5a4575ff1a36f7a1edb2423297d174e9ca15 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Wed, 13 May 2020 15:21:11 -0400 Subject: [PATCH 032/103] Corrects evey storge with storage (#12220) * Update medical.dm * Update autobottler.dm * Update autobotter_designs.dm * Update medical_designs.dm * Update hardsuit.dm * Update code/modules/cargo/bounties/medical.dm Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> --- code/modules/cargo/bounties/medical.dm | 2 +- code/modules/clothing/spacesuits/hardsuit.dm | 2 +- code/modules/food_and_drinks/autobottler.dm | 4 ++-- code/modules/research/designs/autobotter_designs.dm | 4 ++-- code/modules/research/designs/medical_designs.dm | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/code/modules/cargo/bounties/medical.dm b/code/modules/cargo/bounties/medical.dm index 7afc0d8786..c1f8d9c9d0 100644 --- a/code/modules/cargo/bounties/medical.dm +++ b/code/modules/cargo/bounties/medical.dm @@ -121,7 +121,7 @@ /datum/bounty/item/medical/defibrillator name = "New defibillators" - description = "After years of storge our defib units have become liabilities. Please send us some new ones." + description = "After years of storage our defibrillation units have worn out. Please send us some new ones." reward = 2250 required_count = 5 wanted_types = list(/obj/item/defibrillator) diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index 2e72c154d9..20b6034cd4 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -639,7 +639,7 @@ /obj/item/clothing/suit/space/hardsuit/ancient/mason name = "M.A.S.O.N RIG" - desc = "The Multi-Augmented Severe Operations Networked Resource Integration Gear is an man-portable tank designed for extreme environmental situations. It is excessively bulky, but rated for all but the most atomic of hazards. The specialized armor is surprisingly weak to conventional weaponry. The exo slot can attach most storge bags on to the suit." + desc = "The Multi-Augmented Severe Operations Networked Resource Integration Gear is an man-portable tank designed for extreme environmental situations. It is excessively bulky, but rated for all but the most atomic of hazards. The specialized armor is surprisingly weak to conventional weaponry. The exo slot can attach most storage bags on to the suit." icon_state = "hardsuit-ancient" item_state = "anc_hardsuit" armor = list("melee" = 20, "bullet" = 15, "laser" = 15, "energy" = 45, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) diff --git a/code/modules/food_and_drinks/autobottler.dm b/code/modules/food_and_drinks/autobottler.dm index 6d5e0508a9..37b6fca2ce 100644 --- a/code/modules/food_and_drinks/autobottler.dm +++ b/code/modules/food_and_drinks/autobottler.dm @@ -7,7 +7,7 @@ "Wines", "Beers", "Brands", - "Storge", + "Storage", ) production_animation = "protolathe_n" allowed_buildtypes = AUTOBOTTLER @@ -15,4 +15,4 @@ //Brands - This is just export verson of the booze bottles //Storge - Just the bottles not booze inside //Wines - Holds wines later made by Sci nodes -//Beers - Holds beers later made by Sci nodes \ No newline at end of file +//Beers - Holds beers later made by Sci nodes diff --git a/code/modules/research/designs/autobotter_designs.dm b/code/modules/research/designs/autobotter_designs.dm index eab7423b91..c2ff7c953b 100644 --- a/code/modules/research/designs/autobotter_designs.dm +++ b/code/modules/research/designs/autobotter_designs.dm @@ -14,7 +14,7 @@ /datum/design/bottle materials = list(/datum/material/glass = 1200) build_type = AUTOBOTTLER - category = list("Storge") + category = list("Storage") /datum/design/bottle/wine name = "Bottle Design (Wine)" @@ -331,4 +331,4 @@ id = "greenroad" reagents_list = list(/datum/reagent/consumable/vitfro = 50, /datum/reagent/consumable/ethanol/rum = 30, /datum/reagent/ash = 10) category = list("Beers") - build_path = /obj/item/export/bottle/greenroad \ No newline at end of file + build_path = /obj/item/export/bottle/greenroad diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index 5405b82848..69bf039428 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -238,7 +238,7 @@ /datum/design/bodybag name = "Body Bag" - desc = "A normal body bag used for storge of dead crew." + desc = "A normal body bag used for storage of dead crew." id = "bodybag" build_type = PROTOLATHE materials = list(/datum/material/plastic = 4000) From 0d92783a91d7696d7a0963308a8bd29ffb5cf8f7 Mon Sep 17 00:00:00 2001 From: Lin Date: Wed, 13 May 2020 22:22:57 +0000 Subject: [PATCH 033/103] oops. (#12242) --- code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm index be81e850b7..3827aef8c1 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm @@ -22,9 +22,9 @@ Doesn't work on other aliens/AI.*/ action = new(src) /obj/effect/proc_holder/alien/Trigger(mob/living/carbon/user, skip_cost_check = FALSE) - if(!skip_cost_check || !istype(user)) + if(!istype(user)) return TRUE - if(cost_check(check_turf,user)) + if(skip_cost_check || cost_check(check_turf,user)) if(fire(user) && user) // Second check to prevent runtimes when evolving user.adjustPlasma(-plasma_cost) return TRUE From fc5d5fb08753bfb91d80a82b94ceb59ffcaba8f0 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Thu, 14 May 2020 00:23:47 +0200 Subject: [PATCH 034/103] Moving buttons away from windows. --- _maps/map_files/BoxStation/BoxStation.dmm | 42 +++++------ _maps/map_files/CogStation/CogStation.dmm | 9 ++- .../map_files/IceBoxStation/IceBoxStation.dmm | 40 ++++------ _maps/map_files/KiloStation/KiloStation.dmm | 41 +++++----- _maps/map_files/LambdaStation/lambda.dmm | 24 ++---- _maps/map_files/MetaStation/MetaStation.dmm | 74 ++++++++++--------- _maps/map_files/OmegaStation/OmegaStation.dmm | 25 ++----- _maps/map_files/PubbyStation/PubbyStation.dmm | 42 +++++------ _maps/map_files/debug/multiz.dmm | 22 +++--- _maps/map_files/debug/runtimestation.dmm | 2 +- _maps/map_files/generic/CentCom.dmm | 2 +- code/__DEFINES/construction.dm | 7 +- code/game/machinery/buttons.dm | 2 +- .../objects/effects/spawners/structure.dm | 22 +++++- code/game/objects/structures/window.dm | 13 +--- 15 files changed, 174 insertions(+), 193 deletions(-) diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index 01c06a04d6..fc6632e84b 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -16717,10 +16717,6 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/structure/sign/poster/contraband/robust_softdrinks{ - pixel_x = -32; - pixel_y = 32 - }, /turf/open/floor/plasteel, /area/hallway/primary/central) "aMh" = ( @@ -17943,7 +17939,6 @@ /obj/structure/cable{ icon_state = "0-8" }, -/obj/machinery/status_display/evac, /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ id = "bridge blast"; @@ -17968,21 +17963,6 @@ }, /turf/open/floor/plating, /area/bridge) -"aPW" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/status_display/evac, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "bridge blast"; - name = "bridge blast door" - }, -/turf/open/floor/plating, -/area/bridge) "aPX" = ( /obj/structure/cable{ icon_state = "0-8" @@ -55990,6 +55970,10 @@ /area/maintenance/fore/secondary) "khV" = ( /obj/machinery/vending/cola/red, +/obj/structure/sign/poster/contraband/robust_softdrinks{ + pixel_x = -32; + pixel_y = 32 + }, /turf/open/floor/plasteel/dark, /area/hallway/primary/central) "kls" = ( @@ -58150,7 +58134,7 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 }, -/turf/open/floor/plasteel, +/turf/closed/wall, /area/security/brig) "rdl" = ( /obj/effect/spawner/structure/window/reinforced, @@ -58450,6 +58434,10 @@ }, /turf/open/floor/plasteel, /area/science/mixing) +"rNG" = ( +/obj/machinery/status_display/evac, +/turf/closed/wall, +/area/ai_monitored/storage/eva) "rPU" = ( /turf/open/floor/plasteel/white/side{ dir = 4 @@ -60877,6 +60865,10 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/maintenance/fore/secondary) +"yeA" = ( +/obj/machinery/status_display/evac, +/turf/closed/wall, +/area/hallway/primary/central) "yhx" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 @@ -79018,7 +79010,7 @@ blW blW bqi cyD -blW +aZE cyD bvS blW @@ -87987,7 +87979,7 @@ ayL ayW ayW ayW -ayW +rNG aJq aJq aOE @@ -90561,7 +90553,7 @@ aKF aMf aNB aOE -aPW +aPS aRr aSD ceh @@ -91585,7 +91577,7 @@ gfD woR dgz aJw -aJw +yeA aMh aJq aOE diff --git a/_maps/map_files/CogStation/CogStation.dmm b/_maps/map_files/CogStation/CogStation.dmm index ebb3493a35..b3aad634c5 100644 --- a/_maps/map_files/CogStation/CogStation.dmm +++ b/_maps/map_files/CogStation/CogStation.dmm @@ -17073,7 +17073,7 @@ /area/security/brig) "aLl" = ( /obj/effect/turf_decal/delivery, -/obj/machinery/vending/autodrobe/all_access, +/obj/machinery/vending/autodrobe, /turf/open/floor/plasteel, /area/hallway/primary/port/fore) "aLm" = ( @@ -28450,7 +28450,7 @@ /turf/open/floor/plasteel, /area/quartermaster/warehouse) "bjN" = ( -/obj/machinery/vending/autodrobe/all_access, +/obj/machinery/vending/autodrobe, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/quartermaster/office) @@ -72362,6 +72362,9 @@ /obj/item/pen, /turf/open/floor/plasteel, /area/engine/atmos) +"xxP" = ( +/turf/closed/wall, +/area/quartermaster/storage) "xCy" = ( /obj/machinery/atmospherics/components/binary/pump, /obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ @@ -121108,7 +121111,7 @@ bgT bjr bkr ble -bgT +xxP bnC boD bgT diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm index f66ac03124..5213a616b6 100644 --- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm +++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm @@ -16869,10 +16869,6 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/structure/sign/poster/contraband/robust_softdrinks{ - pixel_x = -32; - pixel_y = 32 - }, /turf/open/floor/plasteel, /area/hallway/primary/central) "aMh" = ( @@ -18095,7 +18091,6 @@ /obj/structure/cable{ icon_state = "0-8" }, -/obj/machinery/status_display/evac, /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ id = "bridge blast"; @@ -18120,21 +18115,6 @@ }, /turf/open/floor/plating, /area/bridge) -"aPW" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/status_display/evac, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "bridge blast"; - name = "bridge blast door" - }, -/turf/open/floor/plating, -/area/bridge) "aPX" = ( /obj/structure/cable{ icon_state = "0-8" @@ -56356,6 +56336,10 @@ /area/maintenance/fore/secondary) "khV" = ( /obj/machinery/vending/cola/red, +/obj/structure/sign/poster/contraband/robust_softdrinks{ + pixel_x = -32; + pixel_y = 32 + }, /turf/open/floor/plasteel/dark, /area/hallway/primary/central) "kjm" = ( @@ -59567,6 +59551,10 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/fitness) +"sKd" = ( +/obj/machinery/status_display/evac, +/turf/closed/wall, +/area/hallway/primary/central) "sLa" = ( /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ @@ -61093,6 +61081,10 @@ }, /turf/open/floor/engine, /area/engine/engineering) +"vUI" = ( +/obj/machinery/status_display/evac, +/turf/closed/wall, +/area/ai_monitored/storage/eva) "vZA" = ( /obj/structure/cable, /turf/open/floor/plating/snowed/smoothed/icemoon, @@ -80140,7 +80132,7 @@ blW blW bqi cyD -blW +aZE cyD bvS blW @@ -89109,7 +89101,7 @@ ayL ayW ayW ayW -ayW +vUI aJq aJq aOE @@ -91683,7 +91675,7 @@ aKF aMf aNB aOE -aPW +aPS aRr aSD ceh @@ -92707,7 +92699,7 @@ gfD woR dgz aJw -aJw +sKd aMh aJq aOE diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm index e3f4b18103..8545545701 100644 --- a/_maps/map_files/KiloStation/KiloStation.dmm +++ b/_maps/map_files/KiloStation/KiloStation.dmm @@ -29538,6 +29538,14 @@ /obj/machinery/light/small{ dir = 8 }, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the test chamber."; + dir = 4; + layer = 4; + name = "Test Chamber Telescreen"; + network = list("toxins"); + pixel_x = -32 + }, /turf/open/floor/plasteel/dark, /area/science/mixing) "aVT" = ( @@ -33284,14 +33292,6 @@ /obj/structure/chair{ dir = 4 }, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching the test chamber."; - dir = 8; - layer = 4; - name = "Test Chamber Telescreen"; - network = list("toxins"); - pixel_x = 30 - }, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, @@ -33793,14 +33793,6 @@ pixel_x = 24; pixel_y = -24 }, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching the test chamber."; - dir = 8; - layer = 4; - name = "Test Chamber Telescreen"; - network = list("toxins"); - pixel_x = 30 - }, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, @@ -62906,6 +62898,11 @@ /obj/structure/extinguisher_cabinet{ pixel_x = 24 }, +/obj/machinery/button/electrochromatic{ + pixel_x = 38; + pixel_y = -5; + id = "!interrogation_room" + }, /turf/open/floor/plasteel, /area/security/warden) "bWO" = ( @@ -73512,7 +73509,7 @@ }, /mob/living/simple_animal/bot/cleanbot{ auto_patrol = 1; - name = "\imprper Cleaner Bot" + name = "\improper Cleaner Bot" }, /turf/open/floor/plasteel/showroomfloor, /area/security/prison) @@ -85513,6 +85510,12 @@ "uRM" = ( /turf/open/floor/wood, /area/security/vacantoffice) +"vjT" = ( +/obj/effect/spawner/structure/window/reinforced/tinted/electrochromatic{ + electrochromatic_id = "!interrogation_room" + }, +/turf/open/floor/plating, +/area/security/warden) "vle" = ( /obj/structure/festivus, /turf/open/floor/wood, @@ -107879,7 +107882,7 @@ agX agX agX aef -acH +vjT aBH aef aef @@ -126371,7 +126374,7 @@ bki bhQ bkN bIG -bki +bhQ bMB blH bhQ diff --git a/_maps/map_files/LambdaStation/lambda.dmm b/_maps/map_files/LambdaStation/lambda.dmm index 6bb3807ea4..a24d5d666d 100644 --- a/_maps/map_files/LambdaStation/lambda.dmm +++ b/_maps/map_files/LambdaStation/lambda.dmm @@ -707,27 +707,11 @@ /turf/open/floor/plasteel, /area/science/mixing) "acc" = ( -/obj/machinery/computer/security/telescreen/toxins{ - layer = 4; - network = list("toxins"); - pixel_y = 30 - }, /obj/effect/turf_decal/stripes/line{ dir = 9 }, /turf/open/floor/plasteel, /area/science/mixing) -"acd" = ( -/obj/machinery/computer/security/telescreen/toxins{ - layer = 4; - network = list("toxins"); - pixel_y = 30 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/science/mixing) "ace" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -1183,6 +1167,10 @@ name = "Mass Driver Door"; req_access_txt = "7" }, +/obj/machinery/computer/security/telescreen/toxins{ + dir = 1; + pixel_y = -32 + }, /turf/open/floor/plasteel, /area/science/mixing) "adg" = ( @@ -112984,7 +112972,7 @@ aAY aAY aAY abK -acd +ace acH ajC abJ @@ -134611,7 +134599,7 @@ aab aab aJw aKk -aKk +aPB aLY aMU aNT diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 0991e9f751..4edcce491f 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -10143,14 +10143,6 @@ /obj/structure/chair, /turf/open/floor/plasteel/grimy, /area/security/main) -"asN" = ( -/obj/structure/chair, -/obj/machinery/computer/security/telescreen/interrogation{ - dir = 1; - pixel_y = -30 - }, -/turf/open/floor/plasteel/grimy, -/area/security/main) "asO" = ( /obj/item/paper_bin{ pixel_x = -3; @@ -10707,7 +10699,9 @@ /turf/open/floor/plating, /area/security/main) "atZ" = ( -/obj/effect/spawner/structure/window/reinforced/tinted, +/obj/effect/spawner/structure/window/reinforced/tinted/electrochromatic{ + electrochromatic_id = "!interrogation_room" + }, /turf/open/floor/plating, /area/security/main) "aua" = ( @@ -46094,7 +46088,7 @@ /area/bridge/showroom/corporate) "bNg" = ( /obj/machinery/light_switch{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/light/small{ dir = 1 @@ -52693,7 +52687,9 @@ /area/maintenance/starboard) "caX" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/light_switch, +/obj/machinery/light_switch{ + pixel_y = 25 + }, /turf/closed/wall, /area/maintenance/disposal/incinerator) "caY" = ( @@ -62407,7 +62403,7 @@ dir = 10 }, /obj/machinery/light_switch{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ @@ -63922,7 +63918,7 @@ dir = 8 }, /obj/machinery/light_switch{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -66314,6 +66310,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/structure/sign/warning/biohazard, /turf/closed/wall, /area/science/mixing) "cAM" = ( @@ -66339,14 +66336,6 @@ /obj/structure/chair{ dir = 4 }, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching the test chamber."; - dir = 8; - layer = 4; - name = "Test Chamber Telescreen"; - network = list("toxins"); - pixel_x = 30 - }, /obj/effect/turf_decal/stripes/line{ dir = 5 }, @@ -66770,14 +66759,6 @@ pixel_x = 24; pixel_y = -24 }, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching the test chamber."; - dir = 8; - layer = 4; - name = "Test Chamber Telescreen"; - network = list("toxins"); - pixel_x = 30 - }, /obj/effect/turf_decal/stripes/line{ dir = 6 }, @@ -67190,6 +67171,15 @@ req_access_txt = "7" }, /obj/effect/turf_decal/loading_area, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the test chamber."; + dir = 4; + layer = 4; + name = "Test Chamber Telescreen"; + network = list("toxins"); + pixel_x = -32; + pixel_y = 0 + }, /turf/open/floor/plasteel, /area/science/mixing) "cCH" = ( @@ -74545,7 +74535,7 @@ dir = 8 }, /obj/machinery/light_switch{ - pixel_x = -23 + pixel_y = 25 }, /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -81876,6 +81866,14 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/port) +"kRi" = ( +/obj/structure/chair, +/obj/machinery/button/electrochromatic{ + id = "!interrogation_room"; + pixel_x = -25 + }, +/turf/open/floor/plasteel/grimy, +/area/security/main) "kVo" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -82166,6 +82164,12 @@ /obj/item/storage/fancy/candle_box, /turf/open/floor/engine/cult, /area/library) +"oaM" = ( +/obj/machinery/computer/security/telescreen/interrogation{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/grimy, +/area/security/main) "obb" = ( /obj/structure/target_stake, /obj/effect/turf_decal/stripes/line{ @@ -99950,7 +99954,7 @@ aIg aIg aKN dIs -aIg +aUe dIs aQg aIg @@ -115353,7 +115357,7 @@ aiJ aoK aqa arv -asM +kRi atZ avk aww @@ -115609,8 +115613,8 @@ amr anD aoL ajD -arv -asN +oaM +asM atZ avk awx @@ -118521,7 +118525,7 @@ krD czD cAL cBG -cyy +czD czD czD cFu diff --git a/_maps/map_files/OmegaStation/OmegaStation.dmm b/_maps/map_files/OmegaStation/OmegaStation.dmm index 8a951881f9..4fbfabaf2b 100644 --- a/_maps/map_files/OmegaStation/OmegaStation.dmm +++ b/_maps/map_files/OmegaStation/OmegaStation.dmm @@ -2150,11 +2150,6 @@ /obj/machinery/status_display/supply, /turf/closed/wall, /area/quartermaster/storage) -"adq" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/sign/warning/vacuum, -/turf/open/floor/plating, -/area/quartermaster/storage) "adr" = ( /obj/structure/cable{ icon_state = "4-8" @@ -37688,6 +37683,10 @@ /obj/machinery/atmospherics/miner/carbon_dioxide, /turf/open/floor/engine/co2, /area/engine/atmos) +"hQH" = ( +/obj/structure/sign/warning/vacuum, +/turf/closed/wall, +/area/quartermaster/storage) "hTn" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/airlock/research/glass{ @@ -38292,14 +38291,6 @@ /obj/structure/flora/ausbushes/ywflowers, /turf/open/floor/grass, /area/hallway/secondary/entry) -"lvt" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/sign/warning/vacuum, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plating, -/area/quartermaster/storage) "lvw" = ( /obj/machinery/atmospherics/pipe/simple/orange/visible, /obj/effect/decal/cleanable/dirt, @@ -91224,7 +91215,7 @@ aac swM aeh agB -ado +adn agB ahq adp @@ -91478,13 +91469,13 @@ aaa aaa aaa aaa -adq +ado aeg aeX -adp +hQH agC ahr -lvt +ado aae aae aae diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index de6205a82b..2c7d68d692 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -20116,20 +20116,6 @@ /obj/machinery/conveyor_switch/oneway{ id = "QMLoad" }, -/obj/machinery/button/door{ - id = "QMLoaddoor2"; - layer = 4; - name = "Loading Doors"; - pixel_x = 24; - pixel_y = -8 - }, -/obj/machinery/button/door{ - id = "QMLoaddoor"; - layer = 4; - name = "Loading Doors"; - pixel_x = 24; - pixel_y = 8 - }, /obj/machinery/camera{ c_tag = "Cargo Supply Dock"; dir = 8 @@ -21568,6 +21554,20 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/button/door{ + id = "QMLoaddoor2"; + layer = 4; + name = "Loading Doors"; + pixel_x = 24; + pixel_y = -8 + }, +/obj/machinery/button/door{ + id = "QMLoaddoor"; + layer = 4; + name = "Loading Doors"; + pixel_x = 24; + pixel_y = 8 + }, /turf/open/floor/plasteel, /area/quartermaster/storage) "aYC" = ( @@ -52603,12 +52603,6 @@ /obj/machinery/status_display/ai, /turf/closed/wall/r_wall, /area/engine/supermatter) -"cCO" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/security/brig) "cCP" = ( /obj/effect/turf_decal/bot/right, /turf/open/floor/plasteel/white, @@ -55293,6 +55287,9 @@ /turf/open/floor/plasteel/dark, /area/science/xenobiology) "ivO" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, /mob/living/simple_animal/bot/secbot{ arrest_type = 1; health = 45; @@ -55301,9 +55298,6 @@ name = "Sergeant-at-Armsky"; weaponscheck = 1 }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/security/armory) "iwe" = ( @@ -89169,7 +89163,7 @@ apj ajM ajM ajM -cCO +ajM ajM ajM avL diff --git a/_maps/map_files/debug/multiz.dmm b/_maps/map_files/debug/multiz.dmm index 085a64bf97..3f7cacd1a8 100644 --- a/_maps/map_files/debug/multiz.dmm +++ b/_maps/map_files/debug/multiz.dmm @@ -473,12 +473,6 @@ }, /turf/open/floor/plasteel, /area/engine/gravity_generator) -"bs" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/closed/wall/r_wall, -/area/engine/gravity_generator) "bt" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 @@ -654,7 +648,9 @@ pixel_x = -25 }, /obj/structure/closet/firecloset/full, -/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" + }, /turf/open/floor/plasteel{ dir = 9 }, @@ -793,7 +789,9 @@ }, /area/hallway/primary/central) "cl" = ( -/obj/structure/cable, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel{ dir = 8 }, @@ -3614,8 +3612,8 @@ ak aT ak ak -bs -bL +ak +bE bE bE cc @@ -3669,7 +3667,7 @@ aU bg bq ak -bL +bE bE bE cd @@ -3723,7 +3721,7 @@ bh bh br ak -bL +bE bE bE cc diff --git a/_maps/map_files/debug/runtimestation.dmm b/_maps/map_files/debug/runtimestation.dmm index 40d02bcd0c..0a73818ab3 100644 --- a/_maps/map_files/debug/runtimestation.dmm +++ b/_maps/map_files/debug/runtimestation.dmm @@ -9437,7 +9437,7 @@ fh fh eY eR -fh +et eR fc fh diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index 633a998fdb..66072817f4 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -58771,7 +58771,7 @@ iX iX jm jr -iX +iF jr jK iX diff --git a/code/__DEFINES/construction.dm b/code/__DEFINES/construction.dm index 77ec97f47e..65e1d0e980 100644 --- a/code/__DEFINES/construction.dm +++ b/code/__DEFINES/construction.dm @@ -103,4 +103,9 @@ #define RCD_COMPUTER 16 #define RCD_UPGRADE_FRAMES 1 -#define RCD_UPGRADE_SIMPLE_CIRCUITS 2 \ No newline at end of file +#define RCD_UPGRADE_SIMPLE_CIRCUITS 2 + +//Electrochromatic window defines. +#define NOT_ELECTROCHROMATIC 0 +#define ELECTROCHROMATIC_OFF 1 +#define ELECTROCHROMATIC_DIMMED 2 diff --git a/code/game/machinery/buttons.dm b/code/game/machinery/buttons.dm index 3a90707bbe..8bf81b6061 100644 --- a/code/game/machinery/buttons.dm +++ b/code/game/machinery/buttons.dm @@ -17,7 +17,7 @@ /obj/machinery/button/Initialize(mapload, ndir = 0, built = 0) if(istext(id) && mapload) - if(copytext(id, 1, 2) == "!") + if(id[1] == "!") id = SSmapping.get_obfuscated_id(id) . = ..() if(built) diff --git a/code/game/objects/effects/spawners/structure.dm b/code/game/objects/effects/spawners/structure.dm index cdf3f3e6b4..7a151c4312 100644 --- a/code/game/objects/effects/spawners/structure.dm +++ b/code/game/objects/effects/spawners/structure.dm @@ -24,6 +24,23 @@ again. name = "window spawner" spawn_list = list(/obj/structure/grille, /obj/structure/window/fulltile) dir = SOUTH + var/electrochromatic + var/electrochromatic_id + +/obj/effect/spawner/structure/window/Initialize() + . = ..() + if(!electrochromatic) + return + if(!electrochromatic_id) + stack_trace("Electrochromatic window spawner set without electromatic id.") + return + if(electrochromatic_id[1] == "!") + electrochromatic_id = SSmapping.get_obfuscated_id(electrochromatic_id) + for(var/obj/structure/window/W in get_turf(src)) + W.electrochromatic_id = electrochromatic_id + W.make_electrochromatic() + if(electrochromatic == ELECTROCHROMATIC_DIMMED) + W.electrochromatic_dim() /obj/effect/spawner/structure/window/hollow name = "hollow window spawner" @@ -140,13 +157,16 @@ again. spawn_list = list(/obj/structure/grille, /obj/structure/window/reinforced/spawner/north, /obj/structure/window/reinforced/spawner/west) . = ..() -//tinted +//tinted and electrochromatic /obj/effect/spawner/structure/window/reinforced/tinted name = "tinted reinforced window spawner" icon_state = "twindow_spawner" spawn_list = list(/obj/structure/grille, /obj/structure/window/reinforced/tinted/fulltile) +/obj/effect/spawner/structure/window/reinforced/tinted/electrochromatic + name = "electrochromatic reinforced window spawner" + electrochromatic = ELECTROCHROMATIC_DIMMED //shuttle window diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index e4d93ea8de..ba7c0d2fbe 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -1,7 +1,3 @@ -#define NOT_ELECTROCHROMATIC 0 -#define ELECTROCHROMATIC_OFF 1 -#define ELECTROCHROMATIC_DIMMED 2 - GLOBAL_LIST_EMPTY(electrochromatic_window_lookup) /proc/do_electrochromatic_toggle(new_status, id) @@ -74,9 +70,8 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup) if(reinf && anchored) state = WINDOW_SCREWED_TO_FRAME - if(mapload && electrochromatic_id) - if(copytext(electrochromatic_id, 1, 2) == "!") - electrochromatic_id = SSmapping.get_obfuscated_id(electrochromatic_id) + if(mapload && electrochromatic_id && electrochromatic_id[1] == "!") + electrochromatic_id = SSmapping.get_obfuscated_id(electrochromatic_id) ini_dir = dir air_update_turf(1) @@ -885,7 +880,3 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup) return ..() update_icon() - -#undef NOT_ELECTROCHROMATIC -#undef ELECTROCHROMATIC_OFF -#undef ELECTROCHROMATIC_DIMMED From 29ce144e9419b85d3c35b4826d640aeccce024ff Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Thu, 14 May 2020 01:24:47 +0200 Subject: [PATCH 035/103] Delta. --- .../map_files/Deltastation/DeltaStation2.dmm | 30 +++++++++++++------ 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index fcaab068d9..46d08a8c30 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -14150,10 +14150,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/quartermaster/storage) -"aEh" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/quartermaster/storage) "aEi" = ( /obj/structure/cable/white{ icon_state = "0-2" @@ -42579,7 +42575,9 @@ /obj/structure/cable/white{ icon_state = "0-2" }, -/obj/effect/spawner/structure/window/reinforced/tinted, +/obj/effect/spawner/structure/window/reinforced/tinted/electrochromatic{ + electrochromatic_id = "!interrogation_room" + }, /turf/open/floor/plating, /area/security/main) "byP" = ( @@ -43653,7 +43651,9 @@ /obj/structure/cable/white{ icon_state = "0-4" }, -/obj/effect/spawner/structure/window/reinforced/tinted, +/obj/effect/spawner/structure/window/reinforced/tinted/electrochromatic{ + electrochromatic_id = "!interrogation_room" + }, /turf/open/floor/plating, /area/security/main) "bAt" = ( @@ -44960,10 +44960,12 @@ /area/security/main) "bCm" = ( /obj/structure/cable/white, -/obj/effect/spawner/structure/window/reinforced/tinted, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/effect/spawner/structure/window/reinforced/tinted/electrochromatic{ + electrochromatic_id = "!interrogation_room" + }, /turf/open/floor/plating, /area/security/main) "bCn" = ( @@ -44983,6 +44985,10 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/button/electrochromatic{ + id = "!interrogation_room"; + pixel_y = -26 + }, /turf/open/floor/plasteel/dark, /area/security/main) "bCo" = ( @@ -127098,6 +127104,12 @@ /obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel/white, /area/science/misc_lab) +"wFu" = ( +/obj/machinery/button/electrochromatic{ + pixel_y = -26 + }, +/turf/closed/wall/r_wall, +/area/space/nearstation) "wHv" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -173137,7 +173149,7 @@ azG aAI aCb aDf -aEh +avW aFk aGD aHW @@ -182163,7 +182175,7 @@ buU biQ aad ajr -ajr +wFu aad ajr ajr From 340619124c34079b10cb88718b81f08b655136a3 Mon Sep 17 00:00:00 2001 From: jjpark-kb <55967837+jjpark-kb@users.noreply.github.com> Date: Wed, 13 May 2020 21:51:37 -0400 Subject: [PATCH 036/103] [Fix] Polychromic Primary Color (#12243) --- icons/mob/clothing/neck.dmi | Bin 47688 -> 47682 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/clothing/neck.dmi b/icons/mob/clothing/neck.dmi index 78073222cae4bfbe0b96d993cc5c5ee851bfe40d..86dec62a4166000bf73d4790ff372596cb4c9068 100644 GIT binary patch delta 557 zcmV+|0@D4+^a8^40+1vDHjyPE7cG*zLpym$k)X(sEN$n5EWKw5rw@mskzF5uLB;2! zI<@_J(KbhK*{M!#)@|e92ggq@g*8KU>Z}hF*yF5itf!(nwQZX{>4>5_b@|K@tORqJ z$oD}MvM|`?V)9sL`=HH16x3+iSE)zzq-Cga^DWY_iaQTbYxUEDi^- znF4=IZrjEp=vj4Yvs$k}mKlft2dhvW5WG~po4q%f@JT(fweRyKq5RN|Cx061CboI;t z%?>2otFLIm#(vGOg(G2qN-Vy;qbDu>;D?-S4)vP6gm*Dd?CMV6YlLoJX*QqGY?o;; zqb#(88D*gx%qR=ZU`DBXaUdP+PBuTr9A?3~e8MC@pif}E7XQI|1qMyQn_YrA1bsTy vb9Hlnt*-BG+kZ$l1r!t*Ay5DSAOJ~3K~#90?A>{MQ&svu@Xt-Negew3x#VI-JM z%&zyMkh!4Plyw^GZ0|`QL_sz2zDhl!XOf}Xvdbk$jMPCo zfQ8t_RTUgjbn>1Sv4Re}I8>>BLf+*-QSc#V?GqiU;6spcIwT!0OK@yVV2}#FKv?c;wA+bgmu!0MJJ(uw>(E9SsWH9 zdh+FCa@#fro@Ujl&1${cyt_O{_xM?*bw!w8?NYeG$V$+f#xU<{4ddvdc{}L?n5t)b zP_ba)UVTLiHuh_NEgT7dQ!L`!J31!m2S21}lCRg~CAvJ1qs Date: Wed, 13 May 2020 22:27:19 -0400 Subject: [PATCH 037/103] slight modifications to soda/booze dispenser emag reagents (#12174) * these * coom. * move * Update code/modules/reagents/chemistry/machinery/chem_dispenser.dm Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> * Update code/modules/reagents/chemistry/machinery/chem_dispenser.dm Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> --- .../reagents/chemistry/machinery/chem_dispenser.dm | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index 942786fd43..3b55b0045c 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -511,12 +511,10 @@ /datum/reagent/consumable/peachjuice ) emagged_reagents = list( - /datum/reagent/consumable/ethanol/thirteenloko, - /datum/reagent/consumable/ethanol/changelingsting, - /datum/reagent/consumable/ethanol/whiskey_cola, /datum/reagent/toxin/mindbreaker, /datum/reagent/toxin/staminatoxin, - /datum/reagent/medicine/cryoxadone + /datum/reagent/medicine/cryoxadone, + /datum/reagent/iron ) /obj/machinery/chem_dispenser/drinks/fullupgrade //fully ugpraded stock parts, emagged @@ -571,11 +569,12 @@ upgrade_reagents2 = null upgrade_reagents3 = null emagged_reagents = list( - /datum/reagent/iron, /datum/reagent/consumable/ethanol/alexander, /datum/reagent/consumable/clownstears, /datum/reagent/toxin/minttoxin, - /datum/reagent/consumable/ethanol/atomicbomb + /datum/reagent/consumable/ethanol/atomicbomb, + /datum/reagent/consumable/ethanol/thirteenloko, + /datum/reagent/consumable/ethanol/changelingsting ) /obj/machinery/chem_dispenser/drinks/beer/fullupgrade //fully ugpraded stock parts, emagged From ce2bb9ff844de95cf760cdcb3de1042cb22ea7d2 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Thu, 14 May 2020 13:43:36 +0200 Subject: [PATCH 038/103] Kevinz "the braveless" 000's suggestion. --- code/modules/uplink/uplink_items/uplink_devices.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/uplink/uplink_items/uplink_devices.dm b/code/modules/uplink/uplink_items/uplink_devices.dm index ddf5b6c276..779e5aafa8 100644 --- a/code/modules/uplink/uplink_items/uplink_devices.dm +++ b/code/modules/uplink/uplink_items/uplink_devices.dm @@ -272,6 +272,7 @@ include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) restricted = TRUE +/* for noew /datum/uplink_item/device_tools/suspiciousphone name = "Protocol CRAB-17 Phone" desc = "The Protocol CRAB-17 Phone, a phone borrowed from an unknown third party, it can be used to crash the space market, funneling the losses of the crew to your bank account.\ @@ -280,4 +281,5 @@ cost = 7 restricted = TRUE limited_stock = 1 +*/ From fc980b31c223dd4a8cba731215f62f21db560b30 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Thu, 14 May 2020 13:44:06 +0200 Subject: [PATCH 039/103] I did a typo. --- code/modules/uplink/uplink_items/uplink_devices.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/uplink/uplink_items/uplink_devices.dm b/code/modules/uplink/uplink_items/uplink_devices.dm index 779e5aafa8..2d20fd0b7b 100644 --- a/code/modules/uplink/uplink_items/uplink_devices.dm +++ b/code/modules/uplink/uplink_items/uplink_devices.dm @@ -272,7 +272,7 @@ include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) restricted = TRUE -/* for noew +/* for now /datum/uplink_item/device_tools/suspiciousphone name = "Protocol CRAB-17 Phone" desc = "The Protocol CRAB-17 Phone, a phone borrowed from an unknown third party, it can be used to crash the space market, funneling the losses of the crew to your bank account.\ From ada31990d053015bef6beb271b05411d00b1f87a Mon Sep 17 00:00:00 2001 From: Arturlang Date: Thu, 14 May 2020 14:44:48 +0300 Subject: [PATCH 040/103] Fixes prosthetic causing bloodsuckers to bug out (#12136) * Fixes prosthetic causing bloodsuckers to bug out * Moved it per ghommies suggestions --- .../bloodsucker/bloodsucker_integration.dm | 2 ++ .../antagonists/bloodsucker/bloodsucker_life.dm | 4 ++-- code/modules/mob/living/carbon/carbon_defense.dm | 14 ++++++++++++++ code/modules/mob/living/carbon/damage_procs.dm | 4 ++-- code/modules/mob/living/living_defense.dm | 7 +++++++ 5 files changed, 27 insertions(+), 4 deletions(-) diff --git a/code/modules/antagonists/bloodsucker/bloodsucker_integration.dm b/code/modules/antagonists/bloodsucker/bloodsucker_integration.dm index 98fb69e52c..330116a207 100644 --- a/code/modules/antagonists/bloodsucker/bloodsucker_integration.dm +++ b/code/modules/antagonists/bloodsucker/bloodsucker_integration.dm @@ -113,3 +113,5 @@ /mob/living/proc/StartFrenzy(inTime = 120) set waitfor = FALSE + + diff --git a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm index 8425309b6c..4e4b270c12 100644 --- a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm +++ b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm @@ -216,8 +216,8 @@ // for (var/datum/action/bloodsucker/masquerade/P in powers) // P.Deactivate() // TEMP DEATH - var/total_brute = owner.current.getBruteLoss() - var/total_burn = owner.current.getFireLoss() + var/total_brute = owner.current.getBruteLoss_nonProsthetic() + var/total_burn = owner.current.getFireLoss_nonProsthetic() var/total_toxloss = owner.current.getToxLoss() //This is neater than just putting it in total_damage var/total_damage = total_brute + total_burn + total_toxloss // Died? Convert to Torpor (fake death) diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index 9a4f905dd1..3023907831 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -433,3 +433,17 @@ var/obj/item/organ/ears/ears = getorganslot(ORGAN_SLOT_EARS) if(istype(ears) && !ears.deaf) . = TRUE + +/mob/living/carbon/getBruteLoss_nonProsthetic() + var/amount = 0 + for(var/obj/item/bodypart/BP in bodyparts) + if (BP.status < 2) + amount += BP.brute_dam + return amount + +/mob/living/carbon/getFireLoss_nonProsthetic() + var/amount = 0 + for(var/obj/item/bodypart/BP in bodyparts) + if (BP.status < 2) + amount += BP.burn_dam + return amount diff --git a/code/modules/mob/living/carbon/damage_procs.dm b/code/modules/mob/living/carbon/damage_procs.dm index adca193ce0..5528669afa 100644 --- a/code/modules/mob/living/carbon/damage_procs.dm +++ b/code/modules/mob/living/carbon/damage_procs.dm @@ -63,7 +63,7 @@ /mob/living/carbon/adjustBruteLoss(amount, updating_health = TRUE, forced = FALSE) - if (!forced && amount < 0 && HAS_TRAIT(src,TRAIT_NONATURALHEAL)) + if(!forced && amount < 0 && HAS_TRAIT(src,TRAIT_NONATURALHEAL)) return FALSE if(!forced && (status_flags & GODMODE)) return FALSE @@ -74,7 +74,7 @@ return amount /mob/living/carbon/adjustFireLoss(amount, updating_health = TRUE, forced = FALSE) - if (!forced && amount < 0 && HAS_TRAIT(src,TRAIT_NONATURALHEAL)) //Vamps don't heal naturally. + if(!forced && amount < 0 && HAS_TRAIT(src,TRAIT_NONATURALHEAL)) //Vamps don't heal naturally. return FALSE if(!forced && (status_flags & GODMODE)) return FALSE diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 4cf6fc3694..44b41c8cd8 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -506,3 +506,10 @@ used_item = get_active_held_item() ..() setMovetype(movement_type & ~FLOATING) // If we were without gravity, the bouncing animation got stopped, so we make sure we restart the bouncing after the next movement. + +/mob/living/proc/getBruteLoss_nonProsthetic() + return getBruteLoss() + +/mob/living/proc/getFireLoss_nonProsthetic() + return getFireLoss() + \ No newline at end of file From 99425bbd8863c36a9744a458895d232fc80664b5 Mon Sep 17 00:00:00 2001 From: jjpark-kb <55967837+jjpark-kb@users.noreply.github.com> Date: Thu, 14 May 2020 07:59:40 -0400 Subject: [PATCH 041/103] Radial Mining Vendor Voucher (#12246) --- code/modules/mining/machine_vending.dm | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm index e340e36acf..ed6d9e31db 100644 --- a/code/modules/mining/machine_vending.dm +++ b/code/modules/mining/machine_vending.dm @@ -148,9 +148,14 @@ return ..() /obj/machinery/mineral/equipment_vendor/proc/RedeemVoucher(obj/item/mining_voucher/voucher, mob/redeemer) - var/items = list("Survival Capsule and Explorer's Webbing", "Resonator Kit", "Minebot Kit", "Extraction and Rescue Kit", "Crusher Kit", "Mining Conscription Kit") + var/items = list( "Survival Capsule and Explorer's Webbing" = image(icon = 'icons/obj/storage.dmi', icon_state = "explorerpack"), + "Resonator Kit" = image(icon = 'icons/obj/mining.dmi', icon_state = "resonator"), + "Minebot Kit" = image(icon = 'icons/mob/aibots.dmi', icon_state = "mining_drone"), + "Extraction and Rescue Kit" = image(icon = 'icons/obj/fulton.dmi', icon_state = "extraction_pack"), + "Crusher Kit" = image(icon = 'icons/obj/mining.dmi', icon_state = "crusher"), + "Mining Conscription Kit" = image(icon = 'icons/obj/storage.dmi', icon_state = "duffel")) - var/selection = input(redeemer, "Pick your equipment", "Mining Voucher Redemption") as null|anything in items + var/selection = show_radial_menu(redeemer, src, items, require_near = TRUE, tooltips = TRUE) if(!selection || !Adjacent(redeemer) || QDELETED(voucher) || voucher.loc != redeemer) return var/drop_location = drop_location() @@ -321,9 +326,10 @@ new /obj/item/clothing/glasses/meson/prescription(src) /obj/machinery/mineral/equipment_vendor/proc/RedeemSVoucher(obj/item/suit_voucher/voucher, mob/redeemer) - var/items = list("Exo-suit", "SEVA suit") + var/items = list( "Exo-suit" = image(icon = 'icons/obj/clothing/suits.dmi', icon_state = "exo"), + "SEVA suit" = image(icon = 'icons/obj/clothing/suits.dmi', icon_state = "seva")) - var/selection = input(redeemer, "Pick your suit.", "Suit Voucher Redemption") as null|anything in items + var/selection = show_radial_menu(redeemer, src, items, require_near = TRUE, tooltips = TRUE) if(!selection || !Adjacent(redeemer) || QDELETED(voucher) || voucher.loc != redeemer) return var/drop_location = drop_location() From f0cf2f8cfafebf8d09b37155d29dab5720dd5cd4 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Thu, 14 May 2020 09:07:32 -0400 Subject: [PATCH 042/103] Ports commit "fixes space vines" by AnturK (#12254) * Update spacevine.dm * Update spacevine.dm --- code/modules/events/spacevine.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/events/spacevine.dm b/code/modules/events/spacevine.dm index 60f2aef629..69bfa6e569 100644 --- a/code/modules/events/spacevine.dm +++ b/code/modules/events/spacevine.dm @@ -22,7 +22,8 @@ if(turfs.len) //Pick a turf to spawn at if we can var/turf/T = pick(turfs) - new /datum/spacevine_controller(T, pick(subtypesof(/datum/spacevine_mutation)), rand(30,100), rand(5,10), src) //spawn a controller at turf with randomized stats and a single random mutation + new /datum/spacevine_controller(T, list(pick(subtypesof(/datum/spacevine_mutation))), rand(30,100), rand(5,10), src) //spawn a controller at turf with randomized stats and a single random mutation + /datum/spacevine_mutation @@ -416,7 +417,6 @@ if(muts && muts.len) for(var/datum/spacevine_mutation/M in muts) M.add_mutation_to_vinepiece(SV) - return if(parent) SV.mutations |= parent.mutations var/parentcolor = parent.atom_colours[FIXED_COLOUR_PRIORITY] @@ -541,4 +541,4 @@ var/mob/living/M = A if(("vines" in M.faction) || ("plants" in M.faction)) return TRUE - return FALSE \ No newline at end of file + return FALSE From 07299f4cf029fc66856c135b1571f005463c33df Mon Sep 17 00:00:00 2001 From: DeltaFire Date: Thu, 14 May 2020 20:06:03 +0200 Subject: [PATCH 043/103] ... why do people not proofread their code Fixes 1. Neovgre recharging near sigils 2. Neovgre healing on brass floor 3. ... the weapon firing sound --- code/game/mecha/combat/neovgre.dm | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/code/game/mecha/combat/neovgre.dm b/code/game/mecha/combat/neovgre.dm index c678912a21..a660142962 100644 --- a/code/game/mecha/combat/neovgre.dm +++ b/code/game/mecha/combat/neovgre.dm @@ -62,18 +62,21 @@ /obj/mecha/combat/neovgre/process() ..() - if(GLOB.ratvar_awakens) // At this point only timley intervention by lord singulo could hople to stop the superweapon + if(GLOB.ratvar_awakens) // At this point only timley intervention by lord singulo could hope to stop the superweapon cell.charge = INFINITY max_integrity = INFINITY obj_integrity = max_integrity CHECK_TICK //Just to be on the safe side lag wise - else if(cell.charge < cell.maxcharge) - for(var/obj/effect/clockwork/sigil/transmission/T in range(SIGIL_ACCESS_RANGE, src)) - var/delta = min(recharge_rate, cell.maxcharge - cell.charge) - if (get_clockwork_power() <= delta) - cell.charge += delta - adjust_clockwork_power(-delta) - CHECK_TICK + else + if(cell.charge < cell.maxcharge) + for(var/obj/effect/clockwork/sigil/transmission/T in range(SIGIL_ACCESS_RANGE, src)) + var/delta = min(recharge_rate, cell.maxcharge - cell.charge) + if (get_clockwork_power() >= delta) + cell.charge += delta + adjust_clockwork_power(-delta) + if(obj_integrity < max_integrity && istype(loc, /turf/open/floor/clockwork)) + obj_integrity += min(max_integrity - obj_integrity, max_integrity / 100) + CHECK_TICK /obj/mecha/combat/neovgre/Initialize() .=..() @@ -90,7 +93,7 @@ energy_drain = 30 name = "Aribter Laser Cannon" desc = "Please re-attach this to neovgre and stop asking questions about why it looks like a normal Nanotrasen issue Solaris laser cannon - Nezbere" - fire_sound = "sound/weapons/neovgre_laser.ogg" + fire_sound = 'sound/weapons/neovgre_laser.ogg' /obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/heavy/neovgre/can_attach(obj/mecha/combat/neovgre/M) if(istype(M)) From 87492b1a3590db8aae4a5db5683d8ef2a6455c37 Mon Sep 17 00:00:00 2001 From: DeltaFire Date: Thu, 14 May 2020 20:29:30 +0200 Subject: [PATCH 044/103] Changes repair value 0.5% per process tick ~ 1sec, so ~200sec to fully heal it without outside interference if on clockie floor. --- code/game/mecha/combat/neovgre.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/mecha/combat/neovgre.dm b/code/game/mecha/combat/neovgre.dm index a660142962..fdcc4df151 100644 --- a/code/game/mecha/combat/neovgre.dm +++ b/code/game/mecha/combat/neovgre.dm @@ -75,7 +75,7 @@ cell.charge += delta adjust_clockwork_power(-delta) if(obj_integrity < max_integrity && istype(loc, /turf/open/floor/clockwork)) - obj_integrity += min(max_integrity - obj_integrity, max_integrity / 100) + obj_integrity += min(max_integrity - obj_integrity, max_integrity / 200) CHECK_TICK /obj/mecha/combat/neovgre/Initialize() From af0d1da4090f61140547661169e48624b579ded5 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Thu, 14 May 2020 21:40:13 -0400 Subject: [PATCH 045/103] Nerfs Drake Armor (#12133) * Update cloaks.dm * Update cloaks.dm * Update cloaks.dm * Update cloaks.dm * Update cloaks.dm * Update cloaks.dm --- code/modules/clothing/suits/cloaks.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/clothing/suits/cloaks.dm b/code/modules/clothing/suits/cloaks.dm index ce3d2576f9..c3369204f9 100644 --- a/code/modules/clothing/suits/cloaks.dm +++ b/code/modules/clothing/suits/cloaks.dm @@ -76,7 +76,7 @@ icon_state = "dragon" desc = "A suit of armour fashioned from the remains of an ash drake." allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe, /obj/item/twohanded/spear) - armor = list("melee" = 70, "bullet" = 30, "laser" = 50, "energy" = 40, "bomb" = 70, "bio" = 60, "rad" = 50, "fire" = 100, "acid" = 100) + armor = list("melee" = 60, "bullet" = 20, "laser" = 30, "energy" = 25, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100) hoodtype = /obj/item/clothing/head/hooded/cloakhood/drake heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS @@ -87,7 +87,7 @@ name = "drake helm" icon_state = "dragon" desc = "The skull of a dragon." - armor = list("melee" = 70, "bullet" = 30, "laser" = 50, "energy" = 40, "bomb" = 70, "bio" = 60, "rad" = 50, "fire" = 100, "acid" = 100) + armor = list("melee" = 60, "bullet" = 20, "laser" = 30, "energy" = 25, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100) heat_protection = HEAD max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT resistance_flags = FIRE_PROOF | ACID_PROOF | GOLIATH_RESISTANCE From 10944d1b52283d20fcaef17c9d87d449653e3124 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 14 May 2020 18:44:56 -0700 Subject: [PATCH 046/103] The bag of holding (and I guess backpack) balancing pass no one asked for (#11864) * Ok * whew * ok * fix * ehh * fix * buff disks * Update _compile_options.dm * Update tgstation.dme --- code/__DEFINES/dcs/signals.dm | 3 + code/__DEFINES/layers_planes.dm | 10 +-- .../{storage.dm => storage/_storage.dm} | 35 +++++------ code/__DEFINES/storage/volumetrics.dm | 39 ++++++++++++ code/_onclick/hud/screen_objects/storage.dm | 62 ++++++++++++++++--- code/datums/components/storage/storage.dm | 6 +- code/datums/components/storage/ui.dm | 10 ++- code/game/atoms_movable.dm | 6 +- code/game/objects/items.dm | 5 +- .../items/storage/{storage.dm => _storage.dm} | 0 code/game/objects/items/storage/backpack.dm | 14 ++--- .../nukeop/equipment/nuclearbomb.dm | 1 + tgstation.dme | 5 +- 13 files changed, 145 insertions(+), 51 deletions(-) rename code/__DEFINES/{storage.dm => storage/_storage.dm} (79%) create mode 100644 code/__DEFINES/storage/volumetrics.dm rename code/game/objects/items/storage/{storage.dm => _storage.dm} (100%) diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index 8706e96562..9a32e23950 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -256,6 +256,9 @@ // THE FOLLOWING TWO BLOCKS SHOULD RETURN BLOCK FLAGS AS DEFINED IN __DEFINES/combat.dm! #define COMSIG_ITEM_CHECK_BLOCK "check_block" //from base of obj/item/check_block(): (mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) #define COMSIG_ITEM_RUN_BLOCK "run_block" //from base of obj/item/run_block(): (mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) +// Item mouse siganls +#define COMSIG_ITEM_MOUSE_EXIT "item_mouse_exit" //from base of obj/item/MouseExited(): (location, control, params) +#define COMSIG_ITEM_MOUSE_ENTER "item_mouse_enter" //from base of obj/item/MouseEntered(): (location, control, params) #define COMSIG_ITEM_DECONSTRUCTOR_DEEPSCAN "deconstructor_deepscan" //Called by deconstructive analyzers deepscanning an item: (obj/machinery/rnd/destructive_analyzer/analyzer_machine, mob/user, list/information_list) // Uncovered information #define COMPONENT_DEEPSCAN_UNCOVERED_INFORMATION 1 diff --git a/code/__DEFINES/layers_planes.dm b/code/__DEFINES/layers_planes.dm index 51b5978c4f..cffafcb81d 100644 --- a/code/__DEFINES/layers_planes.dm +++ b/code/__DEFINES/layers_planes.dm @@ -143,13 +143,15 @@ #define VOLUMETRIC_STORAGE_ITEM_PLANE 24 #define VOLUMETRIC_STORAGE_ITEM_LAYER 24 +#define VOLUMETRIC_STORAGE_ACTIVE_ITEM_LAYER 25 +#define VOLUMETRIC_STORAGE_ACTIVE_ITEM_PLANE 25 #define VOLUMETRIC_STORAGE_ITEM_RENDER_TARGET "VOLUME_STORAGE_ITEM_PLANE" -#define ABOVE_HUD_PLANE 25 -#define ABOVE_HUD_LAYER 25 +#define ABOVE_HUD_PLANE 30 +#define ABOVE_HUD_LAYER 30 #define ABOVE_HUD_RENDER_TARGET "ABOVE_HUD_PLANE" -#define SPLASHSCREEN_LAYER 30 -#define SPLASHSCREEN_PLANE 30 +#define SPLASHSCREEN_LAYER 90 +#define SPLASHSCREEN_PLANE 90 #define SPLASHSCREEN_RENDER_TARGET "SPLASHSCREEN_PLANE" diff --git a/code/__DEFINES/storage.dm b/code/__DEFINES/storage/_storage.dm similarity index 79% rename from code/__DEFINES/storage.dm rename to code/__DEFINES/storage/_storage.dm index b4240455fe..3a05293d2d 100644 --- a/code/__DEFINES/storage.dm +++ b/code/__DEFINES/storage/_storage.dm @@ -11,7 +11,21 @@ #define STORAGE_LIMIT_MAX_W_CLASS (1<<3) #define STORAGE_FLAGS_LEGACY_DEFAULT (STORAGE_LIMIT_MAX_ITEMS | STORAGE_LIMIT_COMBINED_W_CLASS | STORAGE_LIMIT_MAX_W_CLASS) -#define STORAGE_FLAGS_VOLUME_DEFAULT (STORAGE_LIMIT_MAX_ITEMS | STORAGE_LIMIT_VOLUME | STORAGE_LIMIT_MAX_W_CLASS) +#define STORAGE_FLAGS_VOLUME_DEFAULT (STORAGE_LIMIT_VOLUME | STORAGE_LIMIT_MAX_W_CLASS) + +// UI defines +/// Size of volumetric box icon +#define VOLUMETRIC_STORAGE_BOX_ICON_SIZE 32 +/// Size of EACH left/right border icon for volumetric boxes +#define VOLUMETRIC_STORAGE_BOX_BORDER_SIZE 1 +/// Minimum pixels an item must have in volumetric scaled storage UI +#define MINIMUM_PIXELS_PER_ITEM 8 +/// Maximum number of objects that will be allowed to be displayed using the volumetric display system. Arbitrary number to prevent server lockups. +#define MAXIMUM_VOLUMETRIC_ITEMS 256 +/// How much padding to give between items +#define VOLUMETRIC_STORAGE_ITEM_PADDING 4 +/// How much padding to give to edges +#define VOLUMETRIC_STORAGE_EDGE_PADDING 1 //ITEM INVENTORY WEIGHT, FOR w_class /// Usually items smaller then a human hand, ex: Playing Cards, Lighter, Scalpel, Coins/Money @@ -26,22 +40,3 @@ #define WEIGHT_CLASS_HUGE 5 /// Essentially means it cannot be picked up or placed in an inventory, ex: Mech Parts, Safe - Can not fit in Boh #define WEIGHT_CLASS_GIGANTIC 6 - -/// Macro for automatically getting the volume of an item from its w_class. -#define AUTO_SCALE_VOLUME(w_class) (2 ** w_class) -/// Macro for automatically getting the volume of a storage item from its max_w_class and max_combined_w_class. -#define AUTO_SCALE_STORAGE_VOLUME(w_class, max_combined_w_class) (AUTO_SCALE_VOLUME(w_class) * (max_combined_w_class / w_class)) - -// UI defines -/// Size of volumetric box icon -#define VOLUMETRIC_STORAGE_BOX_ICON_SIZE 32 -/// Size of EACH left/right border icon for volumetric boxes -#define VOLUMETRIC_STORAGE_BOX_BORDER_SIZE 1 -/// Minimum pixels an item must have in volumetric scaled storage UI -#define MINIMUM_PIXELS_PER_ITEM 6 -/// Maximum number of objects that will be allowed to be displayed using the volumetric display system. Arbitrary number to prevent server lockups. -#define MAXIMUM_VOLUMETRIC_ITEMS 256 -/// How much padding to give between items -#define VOLUMETRIC_STORAGE_ITEM_PADDING 1 -/// How much padding to give to edges -#define VOLUMETRIC_STORAGE_EDGE_PADDING 1 diff --git a/code/__DEFINES/storage/volumetrics.dm b/code/__DEFINES/storage/volumetrics.dm new file mode 100644 index 0000000000..62eaa226c4 --- /dev/null +++ b/code/__DEFINES/storage/volumetrics.dm @@ -0,0 +1,39 @@ +// PLEASE KEEP ALL VOLUME DEFINES IN THIS FILE, it's going to be hell to keep track of them later. + +#define DEFAULT_VOLUME_TINY 2 +#define DEFAULT_VOLUME_SMALL 3 +#define DEFAULT_VOLUME_NORMAL 4 +#define DEFAULT_VOLUME_BULKY 8 +#define DEFAULT_VOLUME_HUGE 16 +#define DEFAULT_VOLUME_GIGANTIC 32 + +GLOBAL_LIST_INIT(default_weight_class_to_volume, list( + "[WEIGHT_CLASS_TINY]" = DEFAULT_VOLUME_TINY, + "[WEIGHT_CLASS_SMALL]" = DEFAULT_VOLUME_SMALL, + "[WEIGHT_CLASS_NORMAL]" = DEFAULT_VOLUME_NORMAL, + "[WEIGHT_CLASS_BULKY]" = DEFAULT_VOLUME_BULKY, + "[WEIGHT_CLASS_HUGE]" = DEFAULT_VOLUME_HUGE, + "[WEIGHT_CLASS_GIGANTIC]" = DEFAULT_VOLUME_GIGANTIC + )) + +/// Macro for automatically getting the volume of an item from its w_class. +#define AUTO_SCALE_VOLUME(w_class) (GLOB.default_weight_class_to_volume["[w_class]"]) +/// Macro for automatically getting the volume of a storage item from its max_w_class and max_combined_w_class. +#define AUTO_SCALE_STORAGE_VOLUME(w_class, max_combined_w_class) (AUTO_SCALE_VOLUME(w_class) * (max_combined_w_class / w_class)) + +// Let's keep all of this in one place. given what we put above anyways.. + +// volume amount for items +#define ITEM_VOLUME_DISK DEFAULT_VOLUME_TINY + +// #define SAMPLE_VOLUME_AMOUNT 2 + +// max_weight_class for storages +#define MAX_WEIGHT_CLASS_BACKPACK WEIGHT_CLASS_NORMAL +#define MAX_WEIGHT_CLASS_BAG_OF_HOLDING WEIGHT_CLASS_BULKY + +// max_volume for storages +#define STORAGE_VOLUME_BACKPACK (DEFAULT_VOLUME_NORMAL * 7) +#define STORAGE_VOLUME_DUFFLEBAG (DEFAULT_VOLUME_NORMAL * 10) +#define STORAGE_VOLUME_BAG_OF_HOLDING (DEFAULT_VOLUME_NORMAL * 20) + diff --git a/code/_onclick/hud/screen_objects/storage.dm b/code/_onclick/hud/screen_objects/storage.dm index bdcca70d9b..d7d711917d 100644 --- a/code/_onclick/hud/screen_objects/storage.dm +++ b/code/_onclick/hud/screen_objects/storage.dm @@ -54,10 +54,14 @@ /obj/screen/storage/volumetric_box icon_state = "stored_continue" + layer = VOLUMETRIC_STORAGE_BOX_LAYER + plane = VOLUMETRIC_STORAGE_BOX_PLANE var/obj/item/our_item -/obj/screen/storage/volumetric_box/Initialize(mapload, new_master, our_item) +/obj/screen/storage/volumetric_box/Initialize(mapload, new_master, obj/item/our_item) src.our_item = our_item + RegisterSignal(our_item, COMSIG_ITEM_MOUSE_ENTER, .proc/on_item_mouse_enter) + RegisterSignal(our_item, COMSIG_ITEM_MOUSE_EXIT, .proc/on_item_mouse_exit) return ..() /obj/screen/storage/volumetric_box/Destroy() @@ -70,10 +74,30 @@ /obj/screen/storage/volumetric_box/MouseDrop(atom/over, src_location, over_location, src_control, over_control, params) return our_item.MouseDrop(over, src_location, over_location, src_control, over_control, params) +/obj/screen/storage/volumetric_box/MouseExited(location, control, params) + makeItemInactive() + +/obj/screen/storage/volumetric_box/MouseEntered(location, control, params) + makeItemActive() + +/obj/screen/storage/volumetric_box/proc/on_item_mouse_enter() + makeItemActive() + +/obj/screen/storage/volumetric_box/proc/on_item_mouse_exit() + makeItemInactive() + +/obj/screen/storage/volumetric_box/proc/makeItemInactive() + our_item.layer = VOLUMETRIC_STORAGE_ITEM_LAYER + our_item.plane = VOLUMETRIC_STORAGE_ITEM_PLANE + +/obj/screen/storage/volumetric_box/proc/makeItemActive() + our_item.layer = VOLUMETRIC_STORAGE_ACTIVE_ITEM_LAYER //make sure we display infront of the others! + our_item.plane = VOLUMETRIC_STORAGE_ACTIVE_ITEM_PLANE + /obj/screen/storage/volumetric_box/center icon_state = "stored_continue" - var/obj/screen/storage/stored_left/left - var/obj/screen/storage/stored_right/right + var/obj/screen/storage/volumetric_edge/stored_left/left + var/obj/screen/storage/volumetric_edge/stored_right/right var/pixel_size /obj/screen/storage/volumetric_box/center/Initialize(mapload, new_master, our_item) @@ -87,7 +111,7 @@ return ..() /obj/screen/storage/volumetric_box/center/proc/on_screen_objects() - return list(src, left, right) + return list(src) /** * Sets the size of this box screen object and regenerates its left/right borders. This includes the actual border's size! @@ -96,18 +120,38 @@ if(pixel_size == pixels) return pixel_size = pixels - cut_overlays() + cut_overlays(TRUE) //our icon size is 32 pixels. transform = matrix((pixels - (VOLUMETRIC_STORAGE_BOX_BORDER_SIZE * 2)) / VOLUMETRIC_STORAGE_BOX_ICON_SIZE, 0, 0, 0, 1, 0) left.pixel_x = -((pixels - VOLUMETRIC_STORAGE_BOX_ICON_SIZE) * 0.5) - VOLUMETRIC_STORAGE_BOX_BORDER_SIZE right.pixel_x = ((pixels - VOLUMETRIC_STORAGE_BOX_ICON_SIZE) * 0.5) + VOLUMETRIC_STORAGE_BOX_BORDER_SIZE - add_overlay(left) - add_overlay(right) + add_overlay(left, TRUE) + add_overlay(right, TRUE) -/obj/screen/storage/stored_left +/obj/screen/storage/volumetric_edge + layer = VOLUMETRIC_STORAGE_BOX_LAYER + plane = VOLUMETRIC_STORAGE_BOX_PLANE + +/obj/screen/storage/volumetric_edge/Initialize(mapload, master, our_item) + src.master = master + return ..() + +/obj/screen/storage/volumetric_edge/Click(location, control, params) + return master.Click(location, control, params) + +/obj/screen/storage/volumetric_edge/MouseDrop(atom/over, src_location, over_location, src_control, over_control, params) + return master.MouseDrop(over, src_location, over_location, src_control, over_control, params) + +/obj/screen/storage/volumetric_edge/MouseExited(location, control, params) + return master.MouseExited(location, control, params) + +/obj/screen/storage/volumetric_edge/MouseEntered(location, control, params) + return master.MouseEntered(location, control, params) + +/obj/screen/storage/volumetric_edge/stored_left icon_state = "stored_start" appearance_flags = APPEARANCE_UI | KEEP_APART | RESET_TRANSFORM // Yes I know RESET_TRANSFORM is in APPEARANCE_UI but we're hard-asserting this incase someone changes it. -/obj/screen/storage/stored_right +/obj/screen/storage/volumetric_edge/stored_right icon_state = "stored_end" appearance_flags = APPEARANCE_UI | KEEP_APART | RESET_TRANSFORM diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm index aad6e8289f..2e4a3db1a0 100644 --- a/code/datums/components/storage/storage.dm +++ b/code/datums/components/storage/storage.dm @@ -353,8 +353,12 @@ /datum/component/storage/proc/_remove_and_refresh(datum/source, atom/movable/thing) _removal_reset(thing) if(LAZYACCESS(ui_item_blocks, thing)) - qdel(ui_item_blocks[thing]) + var/obj/screen/storage/volumetric_box/center/C = ui_item_blocks[thing] + for(var/i in can_see_contents()) //runtimes result if mobs can access post deletion. + var/mob/M = i + M.client?.screen -= C.on_screen_objects() ui_item_blocks -= thing + qdel(C) refresh_mob_views() //Call this proc to handle the removal of an item from the storage item. The item will be moved to the new_location target, if that is null it's being deleted diff --git a/code/datums/components/storage/ui.dm b/code/datums/components/storage/ui.dm index f37f574002..1795aec731 100644 --- a/code/datums/components/storage/ui.dm +++ b/code/datums/components/storage/ui.dm @@ -92,6 +92,8 @@ var/list/volume_by_item = list() var/list/percentage_by_item = list() for(var/obj/item/I in contents) + if(QDELETED(I)) + continue volume = I.get_w_volume() used += volume volume_by_item[I] = volume @@ -123,6 +125,7 @@ var/obj/item/I // start at this pixel from screen_start_x. var/current_pixel = VOLUMETRIC_STORAGE_EDGE_PADDING + var/first = TRUE var/row = 1 LAZYINITLIST(ui_item_blocks) @@ -140,10 +143,10 @@ addrow = TRUE // now that we have pixels_to_use, place our thing and add it to the returned list. - - B.screen_loc = I.screen_loc = "[screen_start_x]:[round(current_pixel + (pixels_to_use * 0.5) + VOLUMETRIC_STORAGE_ITEM_PADDING, 1)],[screen_start_y+row-1]:[screen_pixel_y]" + B.screen_loc = I.screen_loc = "[screen_start_x]:[round(current_pixel + (pixels_to_use * 0.5) + (first? 0 : VOLUMETRIC_STORAGE_ITEM_PADDING), 1)],[screen_start_y+row-1]:[screen_pixel_y]" // add the used pixels to pixel after we place the object - current_pixel += pixels_to_use + VOLUMETRIC_STORAGE_ITEM_PADDING + current_pixel += pixels_to_use + (first? 0 : VOLUMETRIC_STORAGE_ITEM_PADDING) + first = FALSE //apply padding to everything after this // set various things B.set_pixel_size(pixels_to_use) @@ -163,6 +166,7 @@ // go up a row if needed if(addrow) row++ + first = TRUE //first in the row, don't apply between-item padding. current_pixel = VOLUMETRIC_STORAGE_EDGE_PADDING // Then, continuous section. diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index fe617ddb0f..d817ca43f5 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -56,10 +56,6 @@ em_block = new(src, render_target) vis_contents += em_block -/atom/movable/Destroy() - QDEL_NULL(em_block) - return ..() - /atom/movable/proc/update_emissive_block() if(blocks_emissive != EMISSIVE_BLOCK_GENERIC) return @@ -232,10 +228,12 @@ /atom/movable/Destroy(force) QDEL_NULL(proximity_monitor) QDEL_NULL(language_holder) + QDEL_NULL(em_block) unbuckle_all_mobs(force=1) . = ..() + if(loc) //Restore air flow if we were blocking it (movables with ATMOS_PASS_PROC will need to do this manually if necessary) if(((CanAtmosPass == ATMOS_PASS_DENSITY && density) || CanAtmosPass == ATMOS_PASS_NO) && isturf(loc)) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index dde56e8278..a8422dedc0 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -782,10 +782,13 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) var/user = usr tip_timer = addtimer(CALLBACK(src, .proc/openTip, location, control, params, user), timedelay, TIMER_STOPPABLE)//timer takes delay in deciseconds, but the pref is in milliseconds. dividing by 100 converts it. -/obj/item/MouseExited() +/obj/item/MouseExited(location,control,params) + SEND_SIGNAL(src, COMSIG_ITEM_MOUSE_EXIT, location, control, params) deltimer(tip_timer)//delete any in-progress timer if the mouse is moved off the item before it finishes closeToolTip(usr) +/obj/item/MouseEntered(location,control,params) + SEND_SIGNAL(src, COMSIG_ITEM_MOUSE_ENTER, location, control, params) // Called when a mob tries to use the item as a tool. // Handles most checks. diff --git a/code/game/objects/items/storage/storage.dm b/code/game/objects/items/storage/_storage.dm similarity index 100% rename from code/game/objects/items/storage/storage.dm rename to code/game/objects/items/storage/_storage.dm diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm index a4d9636414..3d5f0dc924 100644 --- a/code/game/objects/items/storage/backpack.dm +++ b/code/game/objects/items/storage/backpack.dm @@ -24,9 +24,9 @@ /obj/item/storage/backpack/ComponentInitialize() . = ..() var/datum/component/storage/STR = GetComponent(/datum/component/storage) - STR.max_combined_w_class = 21 - STR.max_w_class = WEIGHT_CLASS_NORMAL - STR.max_items = 21 + STR.storage_flags = STORAGE_FLAGS_VOLUME_DEFAULT + STR.max_volume = STORAGE_VOLUME_BACKPACK + STR.max_w_class = MAX_WEIGHT_CLASS_BACKPACK /* * Backpack Types @@ -64,9 +64,9 @@ /obj/item/storage/backpack/holding/ComponentInitialize() . = ..() var/datum/component/storage/STR = GetComponent(/datum/component/storage) - STR.allow_big_nesting = TRUE - STR.max_w_class = WEIGHT_CLASS_BULKY - STR.max_combined_w_class = 35 + STR.max_w_class = MAX_WEIGHT_CLASS_BAG_OF_HOLDING + STR.storage_flags = STORAGE_FLAGS_VOLUME_DEFAULT + STR.max_volume = STORAGE_VOLUME_BAG_OF_HOLDING /obj/item/storage/backpack/holding/suicide_act(mob/living/user) user.visible_message("[user] is jumping into [src]! It looks like [user.p_theyre()] trying to commit suicide.") @@ -344,7 +344,7 @@ /obj/item/storage/backpack/duffelbag/ComponentInitialize() . = ..() var/datum/component/storage/STR = GetComponent(/datum/component/storage) - STR.max_combined_w_class = 30 + STR.max_volume = STORAGE_VOLUME_DUFFLEBAG /obj/item/storage/backpack/duffelbag/captain name = "captain's duffel bag" diff --git a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm index dc44a3b2d8..2907a1c285 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm @@ -606,6 +606,7 @@ This is here to make the tiles around the station mininuke change when it's arme lefthand_file = 'icons/mob/inhands/equipment/idcards_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/idcards_righthand.dmi' icon_state = "datadisk0" + w_volume = ITEM_VOLUME_DISK /obj/item/disk/nuclear name = "nuclear authentication disk" diff --git a/tgstation.dme b/tgstation.dme index 45044aa99f..388d882323 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -105,7 +105,6 @@ #include "code\__DEFINES\stat.dm" #include "code\__DEFINES\stat_tracking.dm" #include "code\__DEFINES\status_effects.dm" -#include "code\__DEFINES\storage.dm" #include "code\__DEFINES\subsystems.dm" #include "code\__DEFINES\tgs.config.dm" #include "code\__DEFINES\tgs.dm" @@ -132,6 +131,8 @@ #include "code\__DEFINES\research\stock_parts.dm" #include "code\__DEFINES\skills\defines.dm" #include "code\__DEFINES\skills\helpers.dm" +#include "code\__DEFINES\storage\_storage.dm" +#include "code\__DEFINES\storage\volumetrics.dm" #include "code\__HELPERS\_cit_helpers.dm" #include "code\__HELPERS\_lists.dm" #include "code\__HELPERS\_logging.dm" @@ -1087,6 +1088,7 @@ #include "code\game\objects\items\stacks\tiles\light.dm" #include "code\game\objects\items\stacks\tiles\tile_mineral.dm" #include "code\game\objects\items\stacks\tiles\tile_types.dm" +#include "code\game\objects\items\storage\_storage.dm" #include "code\game\objects\items\storage\backpack.dm" #include "code\game\objects\items\storage\bags.dm" #include "code\game\objects\items\storage\belt.dm" @@ -1098,7 +1100,6 @@ #include "code\game\objects\items\storage\firstaid.dm" #include "code\game\objects\items\storage\lockbox.dm" #include "code\game\objects\items\storage\secure.dm" -#include "code\game\objects\items\storage\storage.dm" #include "code\game\objects\items\storage\toolbox.dm" #include "code\game\objects\items\storage\uplink_kits.dm" #include "code\game\objects\items\storage\wallets.dm" From c6c4d61ee390e11a0779b8de610df1bfbdc82445 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Thu, 14 May 2020 21:57:28 -0400 Subject: [PATCH 047/103] Cargo Rework - MK *why did I ever lison to people that were just powergamers?* (#11975) * Baby wheels off * Oh god factorio is dead! * Gas-p the nerfs! * Update gear.dm * tools * Update large_objects.dm --- code/modules/cargo/exports.dm | 2 +- code/modules/cargo/exports/gear.dm | 1 + code/modules/cargo/exports/large_objects.dm | 2 +- code/modules/cargo/exports/organs_robotics.dm | 10 +--- code/modules/cargo/exports/tools.dm | 57 ++++++++++--------- 5 files changed, 35 insertions(+), 37 deletions(-) diff --git a/code/modules/cargo/exports.dm b/code/modules/cargo/exports.dm index 0a1346ba01..671c22bde5 100644 --- a/code/modules/cargo/exports.dm +++ b/code/modules/cargo/exports.dm @@ -68,7 +68,7 @@ Credit dupes that require a lot of manual work shouldn't be removed, unless they var/unit_name = "" // Unit name. Only used in "Received [total_amount] [name]s [message]." message var/message = "" var/cost = 100 // Cost of item, in cargo credits. Must not alow for infinite price dupes, see above. - var/k_elasticity = 1/300 //coefficient used in marginal price calculation that roughly corresponds to the inverse of price elasticity, or "quantity elasticity" - CIT EDIT 1/30 - > 0 + var/k_elasticity = 1/100 //coefficient used in marginal price calculation that roughly corresponds to the inverse of price elasticity, or "quantity elasticity" - CIT EDIT 1/30 - > 100 var/list/export_types = list() // Type of the exported object. If none, the export datum is considered base type. var/include_subtypes = TRUE // Set to FALSE to make the datum apply only to a strict type. var/list/exclude_types = list() // Types excluded from export diff --git a/code/modules/cargo/exports/gear.dm b/code/modules/cargo/exports/gear.dm index 8dba7f69da..646e1c6e47 100644 --- a/code/modules/cargo/exports/gear.dm +++ b/code/modules/cargo/exports/gear.dm @@ -1,5 +1,6 @@ /datum/export/gear include_subtypes = FALSE + k_elasticity = 0 //We always want clothing/gear //blanket /datum/export/gear/hat diff --git a/code/modules/cargo/exports/large_objects.dm b/code/modules/cargo/exports/large_objects.dm index b7bdcb1f59..c7a5e59046 100644 --- a/code/modules/cargo/exports/large_objects.dm +++ b/code/modules/cargo/exports/large_objects.dm @@ -111,7 +111,7 @@ include_subtypes = FALSE /datum/export/large/am_control_unit - cost = 4000 + cost = 2000 unit_name = "antimatter control unit" export_types = list(/obj/machinery/power/am_control_unit) diff --git a/code/modules/cargo/exports/organs_robotics.dm b/code/modules/cargo/exports/organs_robotics.dm index 7a77568cc7..a6c5ee93ca 100644 --- a/code/modules/cargo/exports/organs_robotics.dm +++ b/code/modules/cargo/exports/organs_robotics.dm @@ -2,15 +2,14 @@ /datum/export/robotics include_subtypes = FALSE - k_elasticity = 0 //ALWAYS worth selling upgrades + k_elasticity = 1/50 /datum/export/implant include_subtypes = FALSE - k_elasticity = 0 //ALWAYS worth selling upgrades + k_elasticity = 1/50 /datum/export/organs include_subtypes = TRUE - k_elasticity = 0 //ALWAYS worth selling orgains /datum/export/implant/autodoc cost = 150 @@ -60,11 +59,6 @@ unit_name = "thrusters set implant" export_types = list(/obj/item/organ/cyberimp/chest/thrusters) -/datum/export/implant/thrusters - cost = 150 - unit_name = "thrusters set implant" - export_types = list(/obj/item/organ/cyberimp/chest/thrusters) - /datum/export/implant/arm cost = 200 unit_name = "arm set implant" diff --git a/code/modules/cargo/exports/tools.dm b/code/modules/cargo/exports/tools.dm index a68d7238b5..a889f0ed13 100644 --- a/code/modules/cargo/exports/tools.dm +++ b/code/modules/cargo/exports/tools.dm @@ -1,4 +1,7 @@ -/datum/export/toolbox +/datum/export/tool + k_elasticity = 1/500 //Tool selling almost allways fine a target + +/datum/export/tool/toolbox cost = 6 unit_name = "toolbox" export_types = list(/obj/item/storage/toolbox) @@ -29,93 +32,93 @@ // Lights/Eletronic -/datum/export/lights +/datum/export/tool/lights cost = 10 unit_name = "light fixer" export_types = list(/obj/item/wallframe/light_fixture) include_subtypes = TRUE -/datum/export/apc_board +/datum/export/tool/apc_board cost = 5 unit_name = "apc electronics" export_types = list(/obj/item/electronics/apc) include_subtypes = TRUE -/datum/export/apc_frame +/datum/export/tool/apc_frame cost = 3 unit_name = "apc frame" export_types = list(/obj/item/wallframe/apc) include_subtypes = TRUE -/datum/export/floodlights +/datum/export/tool/floodlights cost = 15 unit_name = "floodlight fixer" export_types = list(/obj/structure/floodlight_frame) include_subtypes = TRUE -/datum/export/bolbstubes +/datum/export/tool/bolbstubes cost = 1 //Time unit_name = "light replacement" export_types = list(/obj/item/light/tube, /obj/item/light/bulb) -/datum/export/lightreplacer +/datum/export/tool/lightreplacer cost = 20 unit_name = "lightreplacer" export_types = list(/obj/item/lightreplacer) // Basic tools -/datum/export/basicmining +/datum/export/tool/basicmining cost = 30 unit_name = "basic mining tool" export_types = list(/obj/item/pickaxe, /obj/item/pickaxe/mini, /obj/item/shovel, /obj/item/resonator) include_subtypes = FALSE -/datum/export/upgradedmining +/datum/export/tool/upgradedmining cost = 80 unit_name = "mining tool" export_types = list(/obj/item/pickaxe/silver, /obj/item/pickaxe/drill, /obj/item/gun/energy/plasmacutter, /obj/item/resonator/upgraded) include_subtypes = FALSE -/datum/export/advdmining +/datum/export/tool/advdmining cost = 150 unit_name = "advanced mining tool" export_types = list(/obj/item/pickaxe/diamond, /obj/item/pickaxe/drill/diamonddrill, /obj/item/pickaxe/drill/jackhammer, /obj/item/gun/energy/plasmacutter/adv) include_subtypes = FALSE -/datum/export/screwdriver +/datum/export/tool/screwdriver cost = 2 unit_name = "screwdriver" export_types = list(/obj/item/screwdriver) include_subtypes = FALSE -/datum/export/wrench +/datum/export/tool/wrench cost = 2 unit_name = "wrench" export_types = list(/obj/item/wrench) -/datum/export/crowbar +/datum/export/tool/crowbar cost = 2 unit_name = "crowbar" export_types = list(/obj/item/crowbar) -/datum/export/wirecutters +/datum/export/tool/wirecutters cost = 2 unit_name = "pair" message = "of wirecutters" export_types = list(/obj/item/wirecutters) -/datum/export/weldingtool +/datum/export/tool/weldingtool cost = 5 unit_name = "welding tool" export_types = list(/obj/item/weldingtool) include_subtypes = FALSE -/datum/export/weldingtool/emergency +/datum/export/tool/weldingtool/emergency cost = 2 unit_name = "emergency welding tool" export_types = list(/obj/item/weldingtool/mini) -/datum/export/weldingtool/industrial +/datum/export/tool/weldingtool/industrial cost = 10 unit_name = "industrial welding tool" export_types = list(/obj/item/weldingtool/largetank, /obj/item/weldingtool/hugetank) @@ -131,23 +134,23 @@ unit_name = "pocket fire extinguisher" export_types = list(/obj/item/extinguisher/mini) -/datum/export/flashlight +/datum/export/tool/flashlight cost = 3 unit_name = "flashlight" export_types = list(/obj/item/flashlight) include_subtypes = FALSE -/datum/export/flashlight/flare +/datum/export/tool/flashlight/flare cost = 2 unit_name = "flare" export_types = list(/obj/item/flashlight/flare) -/datum/export/flashlight/seclite +/datum/export/tool/flashlight/seclite cost = 5 unit_name = "seclite" export_types = list(/obj/item/flashlight/seclite) -/datum/export/analyzer +/datum/export/tool/analyzer cost = 5 unit_name = "analyzer" export_types = list(/obj/item/analyzer) @@ -163,32 +166,32 @@ export_types = list(/obj/item/radio) exclude_types = list(/obj/item/radio/mech) -/datum/export/rcd +/datum/export/tool/rcd cost = 100 unit_name = "rapid construction device" export_types = list(/obj/item/construction/rcd) -/datum/export/rcd_ammo +/datum/export/tool/rcd_ammo cost = 60 unit_name = "compressed matter cardridge" export_types = list(/obj/item/rcd_ammo) -/datum/export/rpd +/datum/export/tool/rpd cost = 100 unit_name = "rapid piping device" export_types = list(/obj/item/pipe_dispenser) -/datum/export/rld +/datum/export/tool/rld cost = 150 unit_name = "rapid light device" export_types = list(/obj/item/construction/rld) -/datum/export/rped +/datum/export/tool/rped cost = 100 unit_name = "rapid part exchange device" export_types = list(/obj/item/storage/part_replacer) -/datum/export/bsrped +/datum/export/tool/bsrped cost = 200 unit_name = "blue space part exchange device" export_types = list(/obj/item/storage/part_replacer/bluespace) From 9d2399ce9f0428df5123eb33328761050914853c Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Fri, 15 May 2020 16:15:15 +0200 Subject: [PATCH 048/103] Removing unused files and fixing some stuff. (#12250) --- code/game/objects/items/storage/toolbox.dm | 18 ++---- code/modules/events/pirates.dm | 11 ++-- .../food_and_drinks/food/snacks_pastry.dm | 2 +- code/modules/mob/living/carbon/give.dm | 58 ------------------- .../living/simple_animal/hostile/creature.dm | 18 ------ .../autolathe_designs_tools.dm | 2 +- 6 files changed, 14 insertions(+), 95 deletions(-) delete mode 100644 code/modules/mob/living/carbon/give.dm delete mode 100644 code/modules/mob/living/simple_animal/hostile/creature.dm diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm index 64e0a6b492..7e89ddbd8d 100644 --- a/code/game/objects/items/storage/toolbox.dm +++ b/code/game/objects/items/storage/toolbox.dm @@ -16,12 +16,17 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) attack_verb = list("robusted") hitsound = 'sound/weapons/smash.ogg' custom_materials = list(/datum/material/iron = 500) - material_flags = MATERIAL_COLOR var/latches = "single_latch" var/has_latches = TRUE var/can_rubberify = TRUE rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE //very protecc too +/obj/item/storage/toolbox/greyscale + icon_state = "toolbox_default" + item_state = "toolbox_default" + can_rubberify = FALSE + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS | MATERIAL_EFFECTS + /obj/item/storage/toolbox/Initialize(mapload) if(has_latches) if(prob(10)) @@ -48,7 +53,6 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) name = "emergency toolbox" icon_state = "red" item_state = "toolbox_red" - material_flags = NONE /obj/item/storage/toolbox/emergency/PopulateContents() new /obj/item/crowbar/red(src) @@ -73,7 +77,6 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) name = "mechanical toolbox" icon_state = "blue" item_state = "toolbox_blue" - material_flags = NONE /obj/item/storage/toolbox/mechanical/PopulateContents() new /obj/item/screwdriver(src) @@ -102,7 +105,6 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) name = "electrical toolbox" icon_state = "yellow" item_state = "toolbox_yellow" - material_flags = NONE /obj/item/storage/toolbox/electrical/PopulateContents() var/pickedcolor = pick("red","yellow","green","blue","pink","orange","cyan","white") @@ -124,7 +126,6 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) desc = "A toolbox painted black with a red stripe. It looks more heavier than normal toolboxes." force = 15 throwforce = 18 - material_flags = NONE /obj/item/storage/toolbox/syndicate/ComponentInitialize() . = ..() @@ -144,7 +145,6 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) name = "mechanical toolbox" icon_state = "blue" item_state = "toolbox_blue" - material_flags = NONE /obj/item/storage/toolbox/drone/PopulateContents() var/pickedcolor = pick("red","yellow","green","blue","pink","orange","cyan","white") @@ -166,7 +166,6 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) w_class = WEIGHT_CLASS_HUGE attack_verb = list("robusted", "crushed", "smashed") can_rubberify = FALSE - material_flags = NONE var/fabricator_type = /obj/item/clockwork/replica_fabricator/scarab /obj/item/storage/toolbox/brass/ComponentInitialize() @@ -209,7 +208,6 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) w_class = WEIGHT_CLASS_HUGE //heyo no bohing this! force = 18 //spear damage can_rubberify = FALSE - material_flags = NONE /obj/item/storage/toolbox/plastitanium/afterattack(atom/A, mob/user, proximity) . = ..() @@ -225,7 +223,6 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) icon_state = "green" item_state = "toolbox_green" w_class = WEIGHT_CLASS_GIGANTIC //Holds more than a regular toolbox! - material_flags = NONE /obj/item/storage/toolbox/artistic/ComponentInitialize() . = ..() @@ -302,7 +299,6 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) icon_state = "gold" item_state = "toolbox_gold" has_latches = FALSE - material_flags = NONE /obj/item/storage/toolbox/gold_real/PopulateContents() new /obj/item/screwdriver/nuke(src) @@ -328,7 +324,6 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) force = 0 throwforce = 0 can_rubberify = FALSE - material_flags = NONE /obj/item/storage/toolbox/proc/rubberify() name = "rubber [name]" @@ -364,7 +359,6 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) throwforce = 15 attack_verb = list("robusted", "bounced") can_rubberify = FALSE //we are already the future. - material_flags = NONE /obj/item/storage/toolbox/rubber/Initialize() icon_state = pick("blue", "red", "yellow", "green") diff --git a/code/modules/events/pirates.dm b/code/modules/events/pirates.dm index 8a693b77d2..b0b12f3944 100644 --- a/code/modules/events/pirates.dm +++ b/code/modules/events/pirates.dm @@ -63,7 +63,7 @@ if(!SSmapping.empty_space) SSmapping.empty_space = SSmapping.add_new_zlevel("Empty Area For Pirates", list(ZTRAIT_LINKAGE = SELFLOOPING)) - + var/datum/map_template/shuttle/pirate/default/ship = new var/x = rand(TRANSITIONEDGE,world.maxx - TRANSITIONEDGE - ship.width) var/y = rand(TRANSITIONEDGE,world.maxy - TRANSITIONEDGE - ship.height) @@ -159,11 +159,12 @@ active = FALSE STOP_PROCESSING(SSobj,src) -/obj/machinery/shuttle_scrambler/update_icon_state() +/obj/machinery/shuttle_scrambler/update_overlays() + . = ..() if(active) - icon_state = "dominator-blue" - else - icon_state = "dominator" + var/mutable_appearance/M = mutable_appearance(icon, "dominator-overlay") + M.color = "#00FFFF" + . += M /obj/machinery/shuttle_scrambler/Destroy() toggle_off() diff --git a/code/modules/food_and_drinks/food/snacks_pastry.dm b/code/modules/food_and_drinks/food/snacks_pastry.dm index c5268380a1..48bd0f1da4 100644 --- a/code/modules/food_and_drinks/food/snacks_pastry.dm +++ b/code/modules/food_and_drinks/food/snacks_pastry.dm @@ -451,7 +451,7 @@ /obj/item/reagent_containers/food/snacks/donkpocket/initialize_cooked_food(obj/item/reagent_containers/food/snacks/donkpocket/S, cooking_efficiency = 1) . = ..() if(istype(S)) - desc = initial(desc) //reset the desc since will now cool down. + S.desc = initial(S.desc) //reset the desc since will now cool down. for(var/R in S.bonus_reagents) LAZYSET(S.cached_reagents_amount, R, S.reagents.get_reagent_amount(R)) S.previous_typepath = type diff --git a/code/modules/mob/living/carbon/give.dm b/code/modules/mob/living/carbon/give.dm deleted file mode 100644 index a712240622..0000000000 --- a/code/modules/mob/living/carbon/give.dm +++ /dev/null @@ -1,58 +0,0 @@ -/mob/living/verb/give() - set category = "IC" - set name = "Give" - set src in oview(1) //Cannot handle giving shit to mobs on your own tile, but it's a small, small loss - - give_item(usr) - -/mob/living/proc/give_item(mob/living/carbon/user) - - -/mob/living/carbon/give_item(mob/living/carbon/user) - if(!istype(user)) - return - if(src.stat == 2 || user.stat == 2 || src.client == null) - return - if(src.handcuffed) - user << "Those hands are cuffed right now." - return //Can't receive items while cuffed - var/obj/item/I - if(user.get_active_held_item() == null) - user << "You don't have anything in your [get_held_index_name(get_held_index_of_item(I))] to give to [src]." - return - I = user.get_active_held_item() - if(!I) - return - if(src == user) //Shouldn't happen - user << "You tried to give yourself \the [I], but you didn't want it." - return - if(get_empty_held_index_for_side()) - switch(alert(src, "[user] wants to give you \a [I]?", , "Yes", "No")) - if("Yes") - if(!I) - return - if(!Adjacent(user)) - user <<"You need to stay still while giving an object." - src << "[user] moved away."//What an asshole - - return - if(user.get_active_held_item() != I) - user << "You need to keep the item in your hand." - src << "[user] has put \the [I] away!" - return - if(!get_empty_held_index_for_side()) - user << "Your hands are full." - user << "Their hands are full." - return - if(!user.dropItemToGround(I)) - src << "[user] can't let go of \the [I]!" - user << "You can't seem to let go of \the [I]." - return - - src.put_in_hands(I) - update_inv_hands() - src.visible_message("[user] handed \the [I] to [src].") - if("No") - src.visible_message("[user] tried to hand \the [I] to [src] but \he didn't want it.") - else - user << "[src]'s hands are full." diff --git a/code/modules/mob/living/simple_animal/hostile/creature.dm b/code/modules/mob/living/simple_animal/hostile/creature.dm deleted file mode 100644 index bba37f94af..0000000000 --- a/code/modules/mob/living/simple_animal/hostile/creature.dm +++ /dev/null @@ -1,18 +0,0 @@ -/mob/living/simple_animal/hostile/creature - name = "creature" - desc = "A sanity-destroying otherthing." - icon_state = "otherthing" - icon_living = "otherthing" - icon_dead = "otherthing-dead" - health = 80 - maxHealth = 80 - obj_damage = 100 - melee_damage_lower = 25 - melee_damage_upper = 50 - attacktext = "chomps" - attack_sound = 'sound/weapons/bite.ogg' - faction = list("creature") - speak_emote = list("screams") - gold_core_spawnable = HOSTILE_SPAWN - atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) - minbodytemp = 0 diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_tools.dm b/code/modules/research/designs/autolathe_desings/autolathe_designs_tools.dm index f6c31a9808..330dfb8f8a 100644 --- a/code/modules/research/designs/autolathe_desings/autolathe_designs_tools.dm +++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_tools.dm @@ -139,7 +139,7 @@ id = "tool_box" build_type = AUTOLATHE materials = list(MAT_CATEGORY_RIGID = 500) - build_path = /obj/item/storage/toolbox + build_path = /obj/item/storage/toolbox/greyscale category = list("initial","Tools") /datum/design/spraycan From d16c97f06bdcc67dc91abe153351903088f81b85 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Fri, 15 May 2020 16:16:09 +0200 Subject: [PATCH 049/103] Taur fixes. (#12248) --- .../sprite_accessories/legs_and_taurs.dm | 7 +++++++ modular_citadel/icons/mob/mam_taur.dmi | Bin 58026 -> 59290 bytes 2 files changed, 7 insertions(+) diff --git a/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm b/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm index cbb38a3a6a..2ec6da2da8 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm @@ -64,6 +64,7 @@ taur_mode = STYLE_HOOF_TAURIC alt_taur_mode = STYLE_PAW_TAURIC color_src = MUTCOLORS + extra = TRUE /datum/sprite_accessory/taur/drake name = "Drake" @@ -72,6 +73,12 @@ color_src = MUTCOLORS extra = TRUE +/datum/sprite_accessory/taur/drake/old + name = "Drake (Old)" + icon_state = "drake_old" + color_src = MATRIXED + extra = FALSE + /datum/sprite_accessory/taur/drider name = "Drider" icon_state = "drider" diff --git a/modular_citadel/icons/mob/mam_taur.dmi b/modular_citadel/icons/mob/mam_taur.dmi index 3625c293c94901725e14298f25ae3dda17b5073a..cf332019afd71e14f5d7a3f7f4582b948041762d 100644 GIT binary patch literal 59290 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

9Du|2$_L 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 qKL5uRICJW}Q{72);=cgDP%#4l From 63fb4544b4cd2faa40891703b9a9ea8770a019e4 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Fri, 15 May 2020 16:16:25 +0200 Subject: [PATCH 050/103] Another fix for contraband items costing like premium ones. (#12253) --- code/modules/vending/_vending.dm | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/code/modules/vending/_vending.dm b/code/modules/vending/_vending.dm index ebc5f54017..6e6636cd62 100644 --- a/code/modules/vending/_vending.dm +++ b/code/modules/vending/_vending.dm @@ -607,9 +607,7 @@ GLOBAL_LIST_EMPTY(vending_products) if(!R || !istype(R) || !R.product_path) vend_ready = TRUE return - var/price_to_use = default_price - if(R.custom_price) - price_to_use = R.custom_price + var/price_to_use = R.custom_price || default_price if(R in hidden_records) if(!extended_inventory) vend_ready = TRUE @@ -636,9 +634,9 @@ GLOBAL_LIST_EMPTY(vending_products) vend_ready = TRUE return var/datum/bank_account/account = C.registered_account - if(coin_records.Find(R) || hidden_records.Find(R)) + if(coin_records.Find(R)) price_to_use = R.custom_premium_price || extra_price - else + else if(!hidden_records.Find(R)) price_to_use = round(price_to_use * get_best_discount(C)) if(price_to_use && !account.adjust_money(-price_to_use)) say("You do not possess the funds to purchase [R.name].") From e4063311fb4ecfef2cb2f0ba5aec6c6380b33eaa Mon Sep 17 00:00:00 2001 From: TheObserver-sys <58029438+TheObserver-sys@users.noreply.github.com> Date: Fri, 15 May 2020 10:16:50 -0400 Subject: [PATCH 051/103] Finally, peas. (#12211) * Establishment of peas, at last. Comes with two mutations! (NO SPRITES YET,SAVING SO I LOSE NO WORK) * Fixed some shit in my code, like mispellings and an illegal color. God forgive me. * Eventually, I will find a blue that works. * It helps when you aren't pants on head, and remember to put the equals sign, my dude. * Cleaned up some names, added some comments, and trying to make Pax be captialized in the manipulator * Attempting to fix Pax to be uppercase, also a slight tweak to reagent numbers. * I honestly don't care enough, and it doesn't like me capitalizing Pax, so fuck it. * Cleaned some shit up, fixed a problem I noticed where I forgot an entire line of code because I am Big Big Smart Plant. * Everything should taste now. Thanks to Anne for the advice. (also shifts a few nutriment values about) * because I am stupid, I forgot a comma. * Pray for no map by map. 2nd to last commit. * I really didn't like how the species names looked. * First set of pea sprites complete, shoutouts to TripleZeta * Adds Laughin' Peas sprites! Shoutouts to Stewydeadmike! * fixed a spelling mistake * Hey look ma, it's not a disorganized mess anymore * Bugsquashing... maybe? * Adds World Peas Sprites! Shoutouts to Stewydeadmike! * It would help if I actually put the harvest product and seed product eh? Try to remember to do that next time. * Spriter wasn't happy with old laughpeas sprite. * cleans up taste text, removes empty lines. * better taste for a terrible wine. * Travis leave me alone * Pax reduction Co-authored-by: The0bserver --- code/modules/hydroponics/grown/peas.dm | 102 +++++++++++++++++++ code/modules/vending/megaseed.dm | 1 + icons/obj/hydroponics/growing_vegetables.dmi | Bin 20221 -> 23222 bytes icons/obj/hydroponics/harvest.dmi | Bin 87285 -> 88196 bytes icons/obj/hydroponics/seeds.dmi | Bin 25871 -> 26417 bytes tgstation.dme | 1 + 6 files changed, 104 insertions(+) create mode 100644 code/modules/hydroponics/grown/peas.dm diff --git a/code/modules/hydroponics/grown/peas.dm b/code/modules/hydroponics/grown/peas.dm new file mode 100644 index 0000000000..6229d98b2c --- /dev/null +++ b/code/modules/hydroponics/grown/peas.dm @@ -0,0 +1,102 @@ +// Finally, peas. Base plant. +/obj/item/seeds/peas + name = "pack of pea pods" + desc = "These seeds grows into vitamin rich peas!" + icon_state = "seed-peas" + species = "peas" + plantname = "Pea Vines" + product = /obj/item/reagent_containers/food/snacks/grown/peas + maturation = 3 + potency = 25 + growthstages = 3 + growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' + icon_grow = "peas-grow" + icon_dead = "peas-dead" + genes = list(/datum/plant_gene/trait/repeated_harvest) + mutatelist = list(/obj/item/seeds/peas/laugh) // TODO: Add /obj/item/seeds/peas/shoot at a later date, for the peashooter mutation line + reagents_add = list (/datum/reagent/consumable/nutriment/vitamin = 0.1, /datum/reagent/consumable/nutriment = 0.05, /datum/reagent/water = 0.05) + + +/obj/item/reagent_containers/food/snacks/grown/peas + seed = /obj/item/seeds/peas + name = "peapod" + desc = "Finally... peas." + icon_state = "peas" + filling_color = "#739122" + bitesize_mod = 1 + foodtype = VEGETABLES + tastes = list ("peas" = 1, "chalky saltiness" = 1) + wine_power = 50 + wine_flavor = "what is, distressingly, fermented peas." + // distill_regeant = /datum/reagent/saltpetre //if allowed, remove wine_power, ya dingus. + + +// Laughin' Peas +/obj/item/seeds/peas/laugh + name = "pack of laughin' peas" + desc = "These seeds give off a very soft purple glow.. they should grow into Laughin' Peas." + icon_state = "seed-laughpeas" + species = "laughpeas" + plantname = "Laughin' Peas" + product = /obj/item/reagent_containers/food/snacks/grown/laugh + maturation = 7 + potency = 10 + yield = 7 + production = 5 + growthstages = 3 + growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' + icon_grow = "laughpeas-grow" + icon_dead = "laughpeas-dead" + genes = list (/datum/plant_gene/trait/repeated_harvest, /datum/plant_gene/trait/glow/purple) + mutatelist = list (/obj/item/seeds/peas/laugh/peace) + reagents_add = list (/datum/reagent/consumable/laughter = 0.05, /datum/reagent/consumable/sugar = 0.05, /datum/reagent/consumable/nutriment = 0.07) + rarity = 25 //It actually might make Central Command Officials loosen up a smidge, eh? + + +/obj/item/reagent_containers/food/snacks/grown/laugh + seed = /obj/item/seeds/peas/laugh + name = "pod of laughin' peas" + desc = "Ridens Cicer, guaranteed to improve your mood dramatically upon consumption!" + icon_state = "laughpeas" + filling_color = "#ee7bee" + bitesize_mod = 2 + foodtype = VEGETABLES + tastes = list ("a prancing rabbit" = 1) //Vib Ribbon sends her regards.. wherever she is. + wine_power = 90 + wine_flavor = "a vector-graphic rabbit dancing on your tongue" + + +// World Peas - Peace at last, peace at last... +/obj/item/seeds/peas/laugh/peace + name = "pack of world peas" + desc = "These rather large seeds give off a soothing blue glow..." + icon_state = "seed-worldpeas" + species = "worldpeas" + plantname = "World Peas" + product = /obj/item/reagent_containers/food/snacks/grown/peace + maturation = 20 + potency = 75 + yield = 1 + production = 10 + growthstages = 3 + growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' + icon_grow = "worldpeas-grow" + icon_dead = "worldpeas-dead" + genes = list (/datum/plant_gene/trait/glow/blue) + reagents_add = list (/datum/reagent/pax = 0.1, /datum/reagent/drug/happiness = 0.1, /datum/reagent/consumable/nutriment = 0.15) + rarity = 50 // This absolutely will make even the most hardened Syndicate Operators relax, and lay down their arms. + + +/obj/item/reagent_containers/food/snacks/grown/peace + seed = /obj/item/seeds/peas/laugh/peace + name = "cluster of world peas" + desc = "A plant discovered through extensive genetic engineering, and iterative graft work. It's rumored to bring peace to any who consume it. In the wider AgSci community, it's attained the nickname of 'Pax Mundi'." //at last... world peas. I'm not sorry. + icon_state = "worldpeas" + filling_color = "#0099CC" + bitesize_mod = 4 + foodtype = VEGETABLES + tastes = list ("numbing tranquility" = 2, "warmth" = 1) + wine_power = 100 + wine_flavor = "mind-numbing peace and warmth" + + diff --git a/code/modules/vending/megaseed.dm b/code/modules/vending/megaseed.dm index f8759bd8f4..df1e5eaba8 100644 --- a/code/modules/vending/megaseed.dm +++ b/code/modules/vending/megaseed.dm @@ -27,6 +27,7 @@ /obj/item/seeds/orange = 3, /obj/item/seeds/peach = 3, /obj/item/seeds/peanutseed = 3, + /obj/item/seeds/peas = 3, /obj/item/seeds/pineapple = 3, /obj/item/seeds/potato = 3, /obj/item/seeds/poppy = 3, diff --git a/icons/obj/hydroponics/growing_vegetables.dmi b/icons/obj/hydroponics/growing_vegetables.dmi index 63cf069186ebc6d3e74aa00d45b97f60234b1e04..b426b8f6de706ff1b3c072fcd5209f9a4358afe1 100644 GIT binary patch literal 23222 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 Z%fakWhl|o&Ks{=Z*|nQj@kS4x{|Dv1`fvaM literal 20221 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 diff --git a/icons/obj/hydroponics/harvest.dmi b/icons/obj/hydroponics/harvest.dmi index c7c31581f3eb486c34e22574f4a3cedcd88ff062..fd9d310c73bd2a450bf4baeece5793bae7a79a6d 100644 GIT binary patch delta 20519 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

< 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 delta 19601 zcmW(+WmFx_62#q|KyW9xy9Rf6cXx*k1PKJY5F}^_?gaOXy9IZ5m*8?A-}^he=WI_+ zcTaa$ZTKJf+fw*M8tBnKv>mVnfJ;llOcVM2%4A6uwjz>peP571S!)xwHB-|8YajcD?5B|X-kj2a3g0g zZk9?_yuC%<*Y0itb8JOU^l`Wj)}cTA=hgOrzl+a6&veh*k6MpMI`Ry7(bfc>p}Db zmH`6wB|JW(9*$qomG84TT$YdSR=P$XU%{`$du7uZ=czk(GxjGr>|7($;b&mg7_G$x zIEUE#;$xgt*J|~``;-5?Ijt*p#1$=L@~^hz|2@5Zbr!SDrE0n)vVS`aZm(qLn_kTT z;d$I$nnIo4xBzfCQ59g6&Vr=d<~BU{v%2rC_ZbB|Owbb@9qfuIowV@9sF&H-$eQ%m zIw?P)It9YWx zuLqvRT=nzN^;kDW^5_^MiU4B!PSawHD6c4Whoq}Z+7aBB%;_=mQJ{2@enX!hX1qyw zn0OCqBU>^XRP-?~`(KV6#_*Wj4VD(ZUzkS8!*x6kAK1-%$M)+-U)j8I!gm9TAi*g= z1{ragSM_^4<%D~O#?*O;JbW1~-pIw~n{h<<8+*38uJ6!nnUE05Y*vFoM4@+|8W$<9 zHB8(&3bbPMeskxV0)g5)GF_`HsLn7UiT47kNH3jbw4FZ|j%h66s z&U4wq5lE$?%LH8)Ch%1ODh4`-V}Yv%Xf1M5Q^%S97&a4W*<1F{XR&`PY^lQXia6Ew z;^jPF-*E!`AgUeZQ^bsK4Zr!hrs?$S`pG1-M87N@(fZntk} zyW=i_ng|NMl*4C%>b_p!Rk0~cMdrvD=|uX4JEun)iT27e$0(AVyP8*TR z!N^sdcI6DM9%tTy8>86R06Mh`qn#E z2WLmK0&MEBEM)bzLk-pse%kK(`PZsO28sCnvItVF6-+RyH1y=m6x2!XcBAQc1^AX` z15!G82T>VZBq_ktbr{=L0KBaZl_zB7H2sOh}mEZpa+>Jj>&?yx`q zHgEwWI=Bn<<$qw7Wa$s}D#GVkw)!v^)H)s{uM6@ydS~3!;RQYI3*aDT0cIA^PaU)`PcVV*`qg3Pm{Zpj%Yaou3V3rU` zm~));KWvdj%06Ur=m!VFD)w4$hUcFiBrk!_s+V^ba#+g(8xFa?O=#Ff-`EoOO~OaU zK(RE04x$;@K^5wc#jE;>Ihz)geu1WQ6}Pr)LCL(Q4q_+5HCe9hlSbE{9`O4E72f?$ z>^we<4ZcY_2K7!0DJJiyr^+P%4z+^+FK6O((sWz$U%!XYBaIk0cis(soCy2jW)5h( ztGMEWN%fPwg9#dRWyAxaG;61@^}ZVIL}e%%whtUYPOAxD%C`6AZgR3z6M659kd|Lh zcbgvF#9t|pS{5n!jsuHB0hvFef#)rO|9sL*)x2w{y`vJr?&eyoIT*soTd&AjaIWgFvxZTPtqGrdTi3fIV zRf_6r;|tth?m1O7S?ruo;CPsPBl*RvI95rFMB`uh*cGjaite0R&19p{{aA=Z%$RRy zC_JO?vgg#RA83gF@l70MeLTcl)Yh^bHKDg+El*5 ze2U?fpS!*drfswyUus=!AjrNS=DvtM<*Z zZiL!jO8D>b9UXt(nr!$#9k{2=%RHw3?mPCqUrM9f)ouiPn#gk~Nlt4_&1Y-{53Z@( zd9_VqckT+a;oo@>G_tW=Ed&1hD>Xl`kSV{i$Wq!RhdmCi&g(%MiZpvADKE3lx7x{N z;RJ-}4clqZh=;;y5U9W5ebi65&%GL#l$yigOv*2d@obQh`GBA#O-t9>?uu7Moh44U zrB6soTp~$JB}U}__;c6B~|YqI92qZZ)1L<(oW4lHjVbEAl>avV<&+?=GdwH9bA>1TG)j zRjWg~{Cnv^?1Luh+8+cq^z{vx9G8mAE*9hs7sMF$=-1zHIDHi39yO{I5S!i|@%hw* znZe;ElbW2(i;zWso&(GgBv2#<9meiO^nL(s=oVIjM-Z7%OdYufJ}hcBo>b`^M3jD$ z)BY*2pxZ$9$DfYgR-{VM^6~HqSnTr~&4wrLX;I*!o|egL`5bZ(pfEPBN?&j|yX&j- zg*GOi13nvUsCqD|XL8A7gvW&Oo%@uPUV-iGNeFIQIF=Q`s1e8;%94+voX%oY@-J;Y zM(FhRmvG>(?$0mp=PDrAKbcHU>|PDG_~F+-foeD2C61R&?r#}KYW@u9id?H2=v+z- zN9ZRIS9TIZVm{gu!g!Y$R0}nZI9ZmZ5}jpq3ruTWmpJxbmippbX}gEa=W`|6Oh+;O zJY^Auqx#d8y$V?HAdk1Qn|;RwZC}P#fFZ@}+KJkJ32fiDWA2t6yygMo+n1Q#+Q>)+9cl{L@A81Vs_gqt1&=aP!v3Pf@f z_1k+$xDbkl{6qq`Y|Fuf$l=6{XRwl#<2SgH5*z;>HsEtsUHRDGS^b*LU2Aw#`E^{z zR_=X$9GwiM6k4v^SC{7{#HFz&;c}2#gMo4iW&xErZrQJY3-eUa&SJ`f?`V9SjcB&yDlMfxKP5HE#_(x^-)>SiUE#cR zv}>zGi9Uq=x#!-8Tfm4zer-jHtC<92kzzAW6so)e^Gzro?7fVy+VLdyw*XC~;s^@D zsLn-<)#G?XkFnLS4|9I85w%Caz1(%Aeqa^#mvR7KQfI<i*7$?FkiGgUN5SX*dku|3ddhODbHgXE}zQh zr^^=`7Z=hL_ZvumPBt0Z2QrP7Fs;8u(gL@)rkO8EO-QjX6}MF}yfD)T%Vv-bQyvfB zA7d|vSyx{Gv;^yv}0nE=F_P?2*p z4TI{?rgG$eV>dyisJG#7Cw2GI4*i#Ot4-+Ry*_EC

gLF8C$aZ$;xtc9FB( zW6U=97pT0FO5Z-(efHoTOTXhhZ6p`w2vS$S+eq~)R>=Qxs1t|-xN zW?8@d)EsLZxu_itj?zg^q%sUz7h&AYWSdiO(zY*{A9(PZ_ild!vI6e1KxsG0GzDIq zY5|#Hk?}EQ)sR3Y(wut%*7{Vrr=JNTvDj}_BCsLzqOf-&Z7y^Xo5n0jw6lK!b5-!S zdt+0GRR31a=4>qYhyc~!wt(<>A-1Ws;a3IRdMN#P zep~he*u{fJZs<;6e%IiIrl1VUoJFvIh!$)#1H(2f=Y1BB_XujgQ-2b}<)^mHuC_>z zy;Zv~wJ(XELLg+kiUrY$bPMPMyKk7(T@?i^(*v*Gl)OzyM|dug(%6O1h4Sreg}91p z_Se)AY_ef^4;mCw2O)^VAG8u{g{OatPY9|+6=g}*!tw%&_8zkmU%paG$V?w`J_&{y zpfWQnmvEsM6B(uEBxlwxTIpTD{sIYd>KD5N32_d*`pQHMyd>8Z>@2JOAq%^KGWaB* zgU>~!Y)sIMC5P<%f$J#6e^T#XPvnx_n=|it~mqvmbJAF1ZKT z-SoRcMi>}nIVcZgHB6|xad*FDQ48@!h1U$zhDgdu<%P=Amse~3#@j^zsJTogPG)>u1oi}}G@RXUW*C)C z*#)RiP5^=0wZ@ekVUn+L9qP~h`jf(#M;JKp!I7cMx)?35Q-`ycl4JL(u}`YAw$Y5tpiv0v=w!@`yjRqBRtuNPF$%XH0n@P zOjc?G>I8A7u~v*y$tdHC7ZW>;!lDR&o{Tj>lM!gc9zf4}r^ohXlUWT8@| z@66rOvYo)1-h2(NAg{6v?Qh#K9PiGYDqX&2Oyk;n9dopK=x16`#?V8cfAG5SAW5rJ zU$aptcizOMG%ZaUxN_cIx68qZnn#7@9bg8Mc?!!qpv6>Ebl8U&bI23pl78G!F>r=lV$e#&+*B2T$<;wZ^0MRLLud1NY1 z;YG_y^R7o#HX>S^>ScA$a<~E7=Epg0{za7@AF*2-gTt&8RU8pE%5UD7lb+AA{pb=h*O%Qx^MwFm5r8IjbhKJ423a|t7+6jv#sC;og@Vk>j=8?qd7UGBWEM`IE$OotHv%&m$&y5aI#%Fd!PiP{ z^KUY?Qwo_eNDfC(QoB58TC8=9&o*y9TnUad+^7R($k}c}VaI&&$6IqQE9@L)BZ@p- zXIyYwV&OkH62R0}8?SOH&&-j-DrUv&qTP_uf!*W$rsvsACn~V@zH2@0ee~FMpZ9?%@rkmcI{Q8(@BP+vR2zIz{^6zbE(p1CH zHdY+_D1lQ(_OyA5-ajRs4;P3ERW}1X4ppHxv zhV7@THSRSAE701?ziC=Ea(0h>GgU8@8<$N`;v`w8I^*1Tt2?AKSK?_CQAAd z8K&u%fs!*=&d|_>BC8muZDbx61d{@)n4I-@$r$G?ueTnfh@=8;J7({eBKEBu&U%yO zhvoxJMsS5S6P&(}gZ8(w2AwF8VC*YcnhsEKdK9C6eLQOLllM6n$LGW;G#}4F@y4!U zpEpf!$V*rs8FB<2MRgI2yP!{<_1A9EaE2X_9DyUxW44i0vCtMfyhGE%yLjZk@vL2X zIW+Qg)=ciq0!c9kF7~>$nH8n*H7v%vPHf3RMTphMw z1ra9~^_4LagI44&wQ)Jz7r%s5!`#WDp2i&Uh?qep_2Abu7<_xn%|I9!@O)QvQ}|&) z!jW_hKe|aVXTSHWES)tCn-)HE_@<<9H4h!yajZfVWfMS--S4O({>kujhKv5-6QOtk z5_b56pSqqaeWfouLUbU~s$NUW!G5PF)JRN?$}%7BD<=&XKnnbUN}VC-aS z)<`xnX7{~vKfezb7_B6Gd5Up?7p9W7_>5{Usc+1}&f>c4riV(J$_JVJCLMChalA-U zX+?8iZ+-lJPg}`O>@2|is59G9%oyXOzh_@btpW(rlel)a>EZ|Iu>JAM%ig#~=Z)q* zGL1usW7XpOvR{mjd2IQ*+kCtl(iZWu{M%b$&PxEra6OEpeMD z*XVp3Y-91yd*tRR7>)!nioEnXO4_J4i^Yc{*bCTm7IR{TpH8cn(WJmWN=BJ5KP$wL z7yuo7u>c42wK;Kxt{IJAOssWN2KoK$!y(?zOU86neMuju5uVv~sK%EAo*{iN=N1Kz z$XKaVZPmjvFxQ>-lQ{}!4J$Ui7muIStE zdpQmmb#e#R-DxQaAxcS2!_?6eh&xJteg$43XR@u|VcxW*`WZRf;`y8)rh&%|bE;*y zEuZWhzYt3Gi-4=@_?vjhcx9Fk=lNggl4;0IX?CV;Og)GF2CZR62kekxhq>l!mg!?C zKUY42!W3laA`n-J{HTre+3ckXlF_V5cve2jo%@$fXlfvg1qD)SF&xMXCWv+*P656$ zCdY4nyePWr`@{{7iFsc(xIE6s*tPIF^0w)9TnGPlsQnaZEVekv8V^&AlAYPvd6>sN zO$>XMP3DV*0&cg?lX!96icic6;$S>dSS7Qulm(@KR-sX{Cv#lX(Vg)4*cFE1E8K*k za(!ObgMlsO{lRi1*fMca>uxJ}Y6A4B)yZ^yz14{VY}9>A`wvWOY-S^ zQoRs+3xX%E9Y^~JZUh;RSHA92z$c*ku^KzDGDk54Jc}32bbU9+$&eRGET``OdOH$w zp1)RjhX%>GIb>OJm!Uyc%Qp^ZgbMAYqBJnUdAS}ez8`T`Il{$d%E}5pV+C!%^nK=n*Xuv^h zgX~k3M_=_9dJ*&9bEc*1P2sq_w9$E=lmH5o#s_@wb7)w<-Rtw|a}-FK{F4|FZD#i~ zlRWo8VP^3`A(tLv?;_SJoEKo&+sJC?w^-*n;7^)YwHC5nRd3>!qqkJiq0T`$6vZ4v zf0FXLlHiqwQ1&A3_>_%!eBPj0r83-hFyY+g^O<7gF1Rvp+}2XI>-9Eg;yRc7Ob6wh z@G^_J89G{*3kRC1oID$QJC(9P9KHzREe1GN9aqV9i%3qL2#fGF82~TK1vTbpe>S!} z_zEZsm5GO6%L(T;fXYXAT8r!z11dQb@#a2mLhKKM1m`*WJD-uedqHGtP~`5$3|hja z++wlZh4t5Ul>L6Dv1;eN_dEDi&Qg1;VV|+E#n6zgFT!Ar#%sO$=ASS~E7YBD*g!#{ z2NsqR9lyXhP}^5kwrkQLsI5b_m@`X*p!C*l=M#r4MpYc>H{rtz*E0i>5MJl*6+v#> zjVP_|X$ubRt8Y#V8*aI3V&adLNVRyilyA@XT6QH&ug9O)+5p&L)tk;zXtnq;*z+=| zmJzl;+N_QT5j_N-za7SLn+6qihqe3X($|sQ2ZSYQ?#F*I3JY%|Ji4kLR^r{Mmh68m z{1z8C1iX8lNSA83fLDvm-B|xx~aa&Eb=1Uc)06K5@r<{@>nI}^7G633<0?CMS}Lu}$yg0&b63C9m~#_u zzCGdA6|NEjHvLOg5;&f-P``YyB_n)BKZ=t-Ucj1mT(0u`wx?;#zgM&Ir$kK(>}6UMP||#fpj+ZZq>ZWzk-$b%x^RD|0=^V|fDU z5XeP$aV6B7q*lnO%Ojknc?mbTu|x+uXx&97_+HFrI3h~5rl?5j+Ozf1!naIoG4YU} z0Xb7Rm%Vaz4}6vkk>IwTHMTUp4MUFmdH=h>wt||JyjTvhMnB=r?*q?Z2lM-hia~m2 zY%r@V!+pE0CRt-HXL}@FG4ike;$7sz0tJS>YlYtq5YB?VNk-vI$MhWHwwpE5 zzI0KK`3uuXTmD7-Vq0~(ek3nS4F_&?1nmC&IeE&YBU7cZejp{cqA3*j$Yg7={`5+C z84RtOT1kI~_9jQ0M)p2D6q5Vgea<=Zb+9gJ@Se_A8V1hKL*m|svYBqW!Y6QaI+~sJ zR4p3E`m~}!BU~fnS*jmD$1FHMy9xGEub`!UaxpipJiE(X_b0Ho$>y zYA7_Y^NkE5cVDD-BVXv)i9p z+LGGYGfUL`$34%?3_imUFoi7ZqKEK-1CytXQf?1j-n&Ab(qv~o;sqL-!cU)R;UPsl z-*s3I$!1dM1xj#URos5S+FvXWSGGhXdx zcu;Iw?_YNw&L76hX2#inr}ZgOcL<@xY4KeQTXJ=+We>-$Vw{a{VjSQ=bhk(GA@Bu5 zo=<9Q_s(xj>S135@p)>vH^ynB`?g0*Aq+c>u6^Fz%sMiWuX#%W_{ZUXGk*z-`&h18 zTKmgG4JEZr?_Sk}J+1EnP5t4$oXt)PIsVOgzZ6iKNeGl7OF8KUiEij_F5K!vCi8#~ z-6_}iRz6+)?>zs)N9I$t8$j%Q`{ym?GDRO2b5M}F%j9m}$6-le8Cvl#cW5VdWZyZH zv|U`2Zs6ABvCg*=w2VI37l#9I1UmR90|A^j?*XL)+JDpNL*xKVtN@)nC@>bFU>t8%gR=`frq}i39+mKKB$ge zV5IDC;068q-7Kc{uei>c^3Ka*Tm6e`4;|)XQbgf54p6m}b{*xc5iV26$K|)dpG|1U zp@->yzP2=cPhsT%y)_ByYr$1HrZ4m6VBYpCet$1a42y{eRks@L?y_1mgAN`hYBzp= z&D(A!NR2md^n_|$N&z>3Q~vI!Q%Z2#xR=+~aM|ysvKDp6s;>i*V5w(vrgIi%Q9Sz) zd^rV{kR+t-5s3yv3m>;j zwD)O)P>1b!odJHq?%_a9^Qbx_DNv|FelIoB=qk9)`qxJCY6(wMcx&g_3g~iZZ;k1| zGZ!z2;iL{wkh1q(O3hX>UO`0XXxTm`JFQ|mN5v<9&lYb{%!5S$^m|l2!<%|&J4Ut{ z1Sxd7yBsohH+C1m?cF6&f;Hf9VsdtGG~5&!%h+y$-gk1Tx42y=c%d0q(DQ>?s=33e zDn}w2X&>3g7w(0f`q8Yw-^uiK;~@I7&V^+t9{93k;2DRP1x=clr)*!qOWcEl>!SW) zUOFT5$A0IZED2tmcY=??Fj#N|JMAHA z_Fd>9kxFgDI1Z_K&4sRCGQy?(tPELz=7YX}>zt@)3*K5>LFGL7o5w>K7*-y!$zVRh z17QEeb43o9oGRy5MNaPWf|Nx(10T4%+O6RkH<302%;O0%7-{{td~(wLv1BsT98D6# zGQ&65>Gu;RUxAbBuurmHcFlTSRGUQXvNT(bBE<d>X=~TY-|7o0{HP2*#KydIpIw z7`T`IjQpCtO7?dt3MI&V1UydgF6tQx88bEv%L-o%BCJ$oTH>vbbCV-K1gGk=`}cS=8oX%y(^aW~0k zAnGP0-EA;TJn2Zt#Kf0v8^Dv#XE5%4`&BkBFTe|-9775Sjmz85iQUcBVI_K&ShOE| zl#yt(O)uS|V)PSZ*Ij&Lj$?`d{^08VqfK}YTPe?o(s}QkAkQ@7QU0SSq2Uv1o?(%` zG8rx6)nCS8=25x_ns0GeMO zMFsX6WMf(K;9R0#&3ytGaybP#bU%!W+1pD*X7qkh4C*FT>Q9BbY>-cVl-Is0|5zA( z1X15$fFmAOn#8(v|FG{rMGH@Y^}?zlTx=d37^w^{^&FL;<~O(RUdUinxG|wjw?)Ua zMbd(MG3x5=z<)A*d3YEFZfYg59O4t*>hVYk9aOY3h`SIfA1eVYVcN}z?r%AND*P`{ z>DibcKsGU0Ml_q;-_UCmN|1PjkCD#_rwlJrqh#3c?<6;oZ7h$a$t$;{&9g#3et3iR zQ*fNWjXKR5dUNDA?Oj^z`p&)59@AB)ae1NLKcS8O59|V?v{T`VZ^cMcJthgxKx8ftI)9`jM5A9JL!jz zC611mO(N9uhp_4gt4K#<;%q%xTg%pCrBc-Na}_ga z6CpKL(MRXq?7w}|o3bmebCcBo_7_OVGNdfCzIH=c3;gC?jcB$bm0>*q5*OvnA&!Du$b)1b!R( z3Vi1lHQ(xfZ5bqbk8ZSE*@O(nZnFOb9Y6!{c!Y!-LSp%mf_=2FNeZ9BXHpF3?IUWy}nV_eXX8+zI3;=iijc9z$p?)geG*`g0%04 zy(u*7PiNTiu(@Q5=m{x1t6RFkd~F-~<7~`>XuH&*pRS>`0ZmpEk2{dtoe9t2~^A8z}$Zh(!}`LGa@GZS@&SpT$(@C zM+wrov@CM#d1A3G)Ox~BT}_*S8Y;*McYqwP;%Q0O6*p%m^Gwn)c_8KOS9DiD@UiQI z68w`X)QNo!k(0=O_5sgaa0i%9Y^Kw#TnFKiWN3 z>%6;!XzT+8C3rZQKCZkS>=#S|^<9%@VL1u0gc3}wDY(?`3CNzphuFVv1=O=2rX#!I zc=-V!$MT%nJYm&SJi7XOtVpl8fhd##UwC5&Z>iC) zlnE5<=ULXH1$)mvOSB$l?c9Gq>|WsIdJKQ1O|TcvtsT zoq7p~$nQHtL;-|u9j@|o3~%j=b2-Zh)9FOqwp1*xpA%$5hy#JTcy7zP?E!Ss$6o4x z6N)mXX^NJ;JYr$huPnvcAt+!Q`1MNFtGu-v{nsr30)=)3&9jTxN7Kyqo<_v{?v}2V z{V`4;{o?WHB#PaijdislWjFF>Gw7e9dt-4+UkJzlzKdXT@)3a=p)rx#gZUA$$yd?H zpcq^h60_wrR0&b6LG5RxvL>h3G_kkdd7=H6Yvt809G<^@VtD_-A+&ASzWpKijM4O& z4S3!>L!E&*CnF$Ly%z4*^Ub&G5ahm=o!slP>X$=TJ#S^XJFhJF4E}37+_kMX$1!@x ziCie~LuO+N^rHRu%vTVh|MSt{e9$~dE#uo=S~y1i3-^S9=Y1aG8>Hz>GvD<2^&I&p zYW^@}J3_u?k1;iNVD!dwM=UYG^+1IScmrO$+Vrm8HlP}I`EC;#oi?-q{Psws%h@)R z$L>UZN7lXBLEf8qS7ExaQW10ezZZOyS+_m=^va*ZWIF$FWCht$lH11*$*K7FnsT~2 zW7hS=V2E+(l3x+}3X4!rI|VdOd?g$VqfW)UHfAA(&JtXl$m+pj*$ zhj{<}KYa3>_0fXfI)e{zLV&xlY`YF7*28^yNkK{R=;TS8YD4vXx!E$n>lWcegf5w0rwgn#S<+ zO}CqhQ&Rt&)|3`)Bo@fWSNW+@iuZ?F%L|bVGOfFncTi0Ro)!j*+1Pdw%d&ogf*7XT z*Kn0sKM!p<%TR5eE@&d-XO6~@9|(uwG3mT)ja()FCn0?_6h;yY4cg z-f`>wL)iSOdQ+$aztxmz@C~!yj%-62+^n(j5HDonEzQ2(e0tDyNG=+r@B;BA^(GfH zi>Lqx(6cw0?y!-on8@S?2-R)pW~^TFnPUr8BMr$Afl z-)b&jC6gG~F9PSQPhtxT4kQfGt=@*nC7J$@>rAE0xM1x&qz z&$BgLyx`*Mr+h9x>g)U^{2`{FYR0 zTZ^t&26ZlvnplXn-$=-XvCU?u=(|waI)}vFDb@-8G&xP>?c}-){uNvKe49*v_3}h0 zu($Q`>cO?`?jGt7Vzd7NM&rNR>zqKgkKQl$@?TtE0`iy-uI9RSgrPO5vPmI0jGkyw zLM2?BK$PtrM&#-|S^VbeP2}`^`Ls2}(H4l#btvAMMY_ zpMz{FY(a(Y)6CvxL{@YEop9pa`s z!UN`=oBe$)tU{RCx0=YyFa9_Cb3q}r%(ArI?>Koa_oN{j#+rHkj)_ zDnBe}YVoj$Og-d;=u?PotLf60#n-$SxLG{J5j=AJEITx~ca{Trf|9T;c{2WTm}`QFqS_g(eQ`C#YJ}L}h!}Zav}O45~=Fw$!mVk-J=!dqmPF zX)dmnt`Lg};Hkqd(pOJ>1>sv^)n_&icqerY<|> z?mesE&ycg{rP>F?p!jjTbQwNuc;WTO#-{5=S>3Ca9+(a>8odNQKC0A8rOvNmD!A)d z=dfmbBU=~f{S!YPg}Kp=glpE{I9r@j<9V?IO)4J=d`{>85c2AvrIMMqrb2z5b@(^*sF9f}t{x%&k_#I44V;G^8!4b_o!<`+UCu`_3GYhHP_>SJd3dqr(;8FcD9hI*+dAS3KMH89$Y4Nl9>s;E-tzg^S6sk zjY<*kejKjMO&Sl<^R)*Zi{Q#2tb}w(=d#<%ygy%$p1gPPYGOJ8!Xo1q(VH17hc`sA4X^$Z*?z>y1wSJ z=RTiTMbm@%rYBD1KCQzH)4Y&o-jCus@fQrcVY)ILq0_bp2zQl6z3T`t9=z%!-T6-! zmuAw}=Y~_saLr1?{RIuE0}$Kwpaq*7T4ma6biW3b7y~zfcT2V>kD4=`mdSA0lO}FB z#!)`dx31$v@*&HpL69-k_@^djk9&_t(;yr09#~^X>^Gv{NH)BwoQwVFr3uAUdh+C2 zY&D}z{`kaw1z|3dvOe?&Q=}?18lWc&%arfk$tgfac=i+DxI+e#a_09RzLz;`>1cRL z2TZ){4@a@_q=HPZw<>l4%SPMTIL!;D2ZPIgHFtXfs^YP{G`iC=N`)Q>2W62uS{}|8 z>O-5{)u&7F2ap(!$^9yAz~vBu$-1?k$=E{riv|r<@9Z8y!5M#a z3Um-LYwylwG5W;%{K)du2E2-WaQIFQ&MP>mv8MeKg?KqJ4Aci?GLUxO=Nb%19 zBk&pzpZ|&sHRy5LJmi~xc=b+zl*hEdup(J)KQc^awe2Ad_=kV^=H(GF(yjolFAo*8 zxhsUa5n>VYdSdP)wzlD8rL@R#K%4|1pWR2HU=@j&edCxNK=nRKgHg*E{!k@k>A!Vl zYWmmM7e6(W$@7Mo^_sS&0`coz;EJ$R*d3nTf{p^{>ZNR?Uj8H<@2lL++s*|;(DQq5 z8Z7e9d(!wf{YM{eu7o4Yh`>J0hZAs=e@iM zrVY4}fM>+?b)Ep5O#uE;Wy^J0r;0Kqc&i@QrvG})U=jHI$bPjW77L}SXK=~$qAc*6 z%Vec4Z?FQfZM24-Q(?WbBlK!2%a%b-PO?{ByMHB=e12w&Z_OkT$P;jWDTtMBwAOG8 z;gt7dlP+FOzFySrZoB~y-RA}WWTA|8Vv1Mh!f)NZ|$Pe3}fZu6~!%Sk?@e_Zz*lA2kc@-P=iYem5S;MF~1CF3iAguW%329sb)J)CwR`7 zV&1$-U$}}_>3EF+<4|X~3Ssdt^G;cd*F}LhP)%Yl!e@Xx(L3I8Vq!Yiun%XyPae}& z61KB6QFwCYlQ%xJ?&O-1>J9#_gx6Wmd3npOMAehxW5cM}8Jf@c^ZU$q;lxuQxbuI= zz4B?Azkf64J-P8r$Y4Jp=eXJWpw#;C<_9bk3Ad-j0=ZFy^n<6e*j+zoYTfl51CC!c zmQE)#*R6#^yQ+=tm!|8!#y8IYK@Gtl&h@l9>y#pVQyld@^Jf{!Ex96>`9dtOVn2b- zBf-cSBXS~PRZD8=s$_{IgMB1~*G&wwXM!Y1!ZfF`7x05M8DNY9R|?ai4?LvK;i8_rU!yZ+JWo z$bEWtHe?cRYfWq6BH~+JdHrNuDbMsTBd(2p40tAqIl~m2q`bjMF!g=4pg`lrVX5rM$LzB<$QWgW1s21D z1a_UnzgX{(ZDyTUf3L^9Qhw#hQ<*jsFhfj?c(_K&>ohvJX-F>r=xH`%`)4hSA0w13<$~%~8M`_Dj$&72$ z=j$kJvjQYx`6>}hyg*>iPb`TB)w2MWg(}<6#7xw(Nmg!C?KlW7+$<84F#N+&Pj=qT zWw?AehzN(Q^=@DKp$F@oX;JlXP?-ioOEp_{ACknS)*}Lf?T5fbbSBl*=H_eSrgRr= zk^DVmXrN^x)+8E9L&A{TLzQ*DrZ~GhR-X$>Ix!yI=^Kq`eDK=HPg`Z#DxH!R&bMr% z%ELe}W>rW_->N4dShc>}JJ_7R`F~yqCNaeZ-@$gP zZsWb}tKMU2^S|^Q9jt%z-RODlgI8pmGJU&h>jS`twpU6%1-y9iFVne(e@;3dATA%@ zn}WAU5wa?zaev7m$5l8CA*E;WNUO!8{o%h>ob=%v6(NMd zZ=mcEpT?eTks-D(@?&4Z-3**^xqsIFVJ}6iVD(6i^@}>kLNAk?i)dc=Rwm;jWu(ep zCnbfJg7fUVRP6+;3x31Tym&P2>uh5UG$AVc-1NY6)qWAoPD52-W4-&xRyBI#;vF@x zp|*@tgjf}^nTKM^>2c|MeqI-$3|yAdsbI}(QdQE}{|`(@!g-y6+|+Or94II(=l{e6 z4A-!3R;hGC_s8pOu1g}PH*r0n&0w)kwzucMLsKBr40bl5z6$78tMn^YfEO`&x)a)S zahFGF2U-EBFatNO%$qIMZUy4CvYip+`+Gf~9L0s_qy-+n-+gy5krp$JoLt4kuA7D9 zpG}sH3i4C<(e~G?wWI=kWP0B^8NrO?G8E$F5BMncw^p?|Evu*Vr3?RJeUaIZCjH(O zabXtO-s())oopat5?yo_=)GXO+npM!Br8-nsbv84mcUJEumlCo$Zej{SAZTWsIjoz zej#i^`1|AA=OTz?B1yT;|M5CT+^8gfE_?(=<0W!7KFq(IizQ?!z4cdK{(c-IM^Gxb zS0-=v?UA#mLUyHTeg&k4*_4Bpj*jI7>*SA`J$Ap0f;wah&MgK33~UAnM`yU2P%GaM?4G@fyc7b@B| zI3BWLLgh!qs2B4B3V3shB^EhrUK!q-X~{*!q7Wa|FSWYMB;`ymC2yO#WlTR%gImW& z6n>okNv1K;G4OeT7o?`^49; zB2L=t3qgmYCZ?ESv)+r-mc^gjXzw3Qr&W|-M6o6#{%uc^ok5cSqAI*i<_XAt_V2HH z*86iJ8t)`hX2aa~W}$Mg+y5OcBbZMN2N{LovGT~mGC`=lnr6ACWN?A-0BaZ-LaIeOTG`F8y-^ z=IF9$Owy3GQ6x<-;po_`bL}t>hy7pr0)D&Cmr@fQVBcv+HRV-12-jEKj-Af5!8U`d z{z7r$>?zJe+)rQO^D7TT z9$NN#jHzGW#1{~ilehc=Ld}L;Xz_JaC>|xYw>~0WlNhv3SHKgGWu?N8(b+etFIywD zj)9d|M%*)kS~Q%S32Zgrx+wu7=&F`7q1nqDjXss8zpL2lz<1ZG3R_`nLaMOvj^Q|a-FUZ`Ct%>*NjZ$QpBMDK@9r{m^+3lMi zlZc`k4~eFc#~0ak+hS+2&NEP48QXTZowNY+m_a57z;44rAO7(E6a3!GeZP0_>LKX>FKy0ZjsTU~qu2Cql=GQd&uXv?;xh%{A4y7SzT zH^OF#ouBxDJ?n$a7z`sAg^wjX%=KO;vuha^#wisn9spZqo4yU^{owHfO#{yWi)WfG zZRrBGt4BOVabH_4Z(B=!6l+rHWW=;L?Xg{%KN|XUrDMl1a8Nxi-n^>*&Lw^aH}(cZ z2qnU~qwd-~8p9|lqSK4=4$ zElVW&^9t~AVBvZfYH#?%2Vo{{1EPq@gK_Kr5h_x?ex8W=uE#k=VxLCj>l@~JygE3h zzwBWNZBX3WTfuS4T|+8A4$}xnJEMBQkop#EESurI*$S>jMZeBHly;SAw?F)mYY(ZC z&<=t#?|TqB3S7On_Q2iqb*s1o^|{7+&P!9kuPciiQB1YfJL_6eJF#R1dw`jreKXOkO3o zK<4G&L#15T!acKw7nQbb7_c_Eg66iO3|3z0d9smm&Ds#CkfUyu(wH|QU^Zmi->U5bS(Hr){8er+6v0REDAlwS<5>Om^Ru&xMR`=>}}xV`yiU zWKgi`Qes%)zzG@_zZXN@t$hPlKkDnW-x4^x&`3AtnM%&{X(@ zvt^A*>RxU4C*Y65cY+-#9FE|~b%XL+Q<}NvsqiJcczu-g45h%vW~h>t+is>G z=BJSLE+;G%YzsrlUkea|WGBB!@EWS`*88foO2p6XI9sB@$-16o#cD+Bo%b|~vuhF} zy=oDDnvfO-oV;;s+|PPW#B%z%Iyj&b5`xbbGRxi8jfp>EIm5c*l}nFPt(O|7BA59< zC@3LQy0$FwUo)iHnYBM@8+$^;R*P((QnfIp8Vg&bc4mHF)wg*~Hz8Z)BFYcBZzh|A zZA_kCW(@TROuC_>D2R=xq6sx|97TEFFzZ>gzVqZ=t(=&jzWr}5vk zFL)GR}YYJ_+u zS^9>@eP1dM7lPb5skDZ(dzUF`CO}MNBn?Dy1S#E0cMU8Wu0W{32Dj@<-$Z&5Dar<^ z;-5PLlKGjg%A>DeVGvC?up?rr3*`^7NV!@!UC>M=R+wkHXbabTH0 zqj`W8&rW6lGbp{elIsjIXezn0w#B&epn()(YlSJz1tz)HPO3M;CR`$22TC5!(4~jR z0S3!kJij);xEwJJCSoL8OOinyLEcA)OS9%S#{q`aJUT1ZkILYijCx$s2|lZ8k=@CzylFelj*XI;__oY(}!fsk1IC1|QXg z!lywv;5KekC~c^Bzz-Nr0sOx#0NmmAzV{v0hl#XKV+T=h*T_X8R25D{ana7r5yB;F z558uwP^VQ^odyq^Hz1G$!Z~1ovpf=1qq`PJrUOA3XWUzu4All(8rC=a)L5=}<0F2% z{pqKQ3$Z&&cGr$_|G&I`WuZIXtoXybL#7VD{T9eCt<60Lh8bXEoyPh!Z#_oG#`v6} z$rcvG&9*!@8S2&n3WKCKuY+s^T4C3yZ-1T=COaGA5q@g4wlKpPQeEh#=Z!VNZN|e< zTEex-UtGadBbY8(CgcW>Ot<~=Ovd^1odRTedjIJRH{vU>nj>Vr2! zK+PepJY;K~x_bO}93fWrya=Vt zgy4VhefCoNBR*l&(^Oz`G$!2#^xvcdO|#(bHJ#api5v$~EQPknQk*>8o0BCNU(%qm4q6?IC)t9AP3Wfv;?$o~wIC`WTT z3aLOb$^+9zms@-%qLe}{;Q4m!=ji;p4$73$&zLac$$-xji>%S0;9FnrGVUcJ7upIo zGE$KC&%%HTt>zRFKU!R}NLaG+py;?;%j2eaJ?8S1N&DiAjI%C(eASXNvEl;zcRG|? zIeZhaCzjP9A%+Ct&m$ijull?06Q1t%cN?T6BNrkfAamoGLvKsL13{?3g`|1Lzlu<| zXMDV!fFEq-Ocw)ZN=#*I2R;`2d}l<^n`nsP534deKnC8WjSG@&h+Gy3k=_B;!Ms%6 zu^BL*9H&>t;z#D5Of`k2?U1LpoH7+MH$#kUgE`(vuC|lDS z>!ff3vOKWOR`_v3bugpbPQp6DTQSk-9H6TK=e{&a^XS~Qw71&!Ir3Qp&x$whcXbM& zoUAAquE%x+0TeCjAFCYx&2rVxw?+vcwJsd8XsKj=vtIr!jhMxOuqU>sUsg}H$szd@gmm7PlfT5?1FZmg+3Cf&Ft2A)C4~vi zXFh%^Eng0sf)qBz5RJO`&Z~ zK+AFPMfC|FFp#CB?>K2Aq9&m6Y&UXS`;v>@D+gwmi$cS|WC(v1k?&<%qi z9YYPx%rn3Di!TUastl+j7_~&9K7s3ojtsr z;qD-ie^&OFu6Pzn%1Gp?5oI#0akEkSWJSA9sV?f@9ZIdI+F$t$^UAV)a@$Ga5|1;g z%NJaiucRNuumgyzwKIJ{HrR|+USU7i0IF$8Jv5LTyo8o8e+-FQo3=h}iB0`xiSs7v zS*vZ`iQcgs26|82J6>vDd7AE@wWKI_?V!#QOx? zxt6|v&*cH4#;_;{?pI*4WbyLsgWuDCWDMlutPX^z5TvouJ-JGaLkfnWQ;v-Cw5@wn z7XvoV@iISIdBp5b>IA~p$U`Cgsd;1MIV3y=+e=pJkp!c&smaQIYVrhI4q>QH1B!1_ zEn@ZSmcRjLtKPCspSIm$iNI}f=^lxEA)ju>lO#nBW2fs*_ML^@*rOLvoL-RrE3p5v zjzo+@CK~o$hU_>{7ePn>m6P4^lqZ6MFtR?Ia2emuj%T z$4GRv_vps1{w6cfp=VjR2OQ2=x-2`@5lIu|n+qfo`;IC7DS^?msck$vVS|3g&&R{gU-;^#B(Gi3Uc|5Rw6QH?sf+r9rVpCLJ7wbkeqaClgW zx_@#T0Sx@^PK&Y4HOL=p+FP_Dk%CTNlJkpPsn28XdNcV;X|G*yljxXArXj+|m{GpP zK#Sm1<_!Myfh!N(VGn@eu`9_4=IzEDOy2H-2|G~JP#((i%!=Ooqj{VAi&2)wo9;ay zq6VGCAf7}mcOEm%3YqP-`R97)V=C~{BbxVW6%5mc74#6>6>`%sKM9rSbsw=fem&Eh zNQ0;!UFqGi=vce;#c>~A(-*`}U>7n#B+vx8K&8OON>uwD5nPrNEu!kQ%R48tgb0!nP~zS<+Yivm(;2md{2}TUes;Q=$y)>ei%!$G zX8jz6Ot|VG@StXSm=ywE0D;&*nkq`h{#m=(e(xB4mIhE;?@tKx(-g@b(|!J)NJOdw zRPdk4W4j1?2_7gB^DC+78miPt6%Axcj>E#Ys)RmCG|h;p-5BF=zFIZ zZhtk|-W*FRV=BG}At7~(aDi#tA+vy8tx|OiOyb_E9mSEShIX{mS#|c^ zLaN<|TA0-aOoU%?ruZ|8t;12jD3Rhtl?qp{|p{c=@DXb2%jOW<0>wI;{jdS)0+qq@dEj>^%}Lw>nj{{_b92}W;HIi ztfCG!v*-U}-~zYpZEaWY%7YXk8+|YfB?r)VcsuQ@mhHwA8JDN|kfZjKJQy5uf{b1g z2nS3dc=I%YhZSHbb9KDRvEF1FiQ5Ydw%sjLifcAenV&eYvJ4vN_$jc8wpD6(m4->= zA6g>DZ*@NGm+unx_~rxekXS`|-tBycOlXJdbSR?EmS_YP3Cn%AAXaCpUwx2QI_CG& zC_V~Cnk1&#Z^faP8jj-|#a^H?bo-l38%h_&msy)h&H*A?<{88~+C)2O2ZbT-=^S(# z8v`Ae<>g@KdzA_`7~g=^M0$AIwQ+EC<=R&R{H(UW-!u)|B8@id+I?mM1O2r_OvhxMI&r`{_aU`Qa>C#=}Yj4u-QonX^V?kw+7aE*CA^m$wD z-wI&@%H%uUln)Z&)YYfATCNSGhzOk)#{fBahY3PMO_5TS1D8kv^fOJCM=y^RkAzHq5^H{F0cBfdE21(A1&xdqQ3WM)AgZT~uaxem^6 zkymtiA&uQI0`b;;C^uX4(PxDzx_8|XMOu)Q(R;BRY&yA3OhRfb92ImToWc`7s)}?~DgV3La+JfzMZ`2r5t9i= z7y*IQK7Zy!CvCI_{n5Zp?btzdV|kpADjViuWzDnw3?*#2x74l0m2qYxE8C0u%uOfh zv~2SZQil5t?xoxW>iOIRZRvFP2=%#@M`|Yj2s-XwxLCi_E{~{D7T#XqPAaj^&b&j{ zdhwbV4qV-aM^-adE9|dz)b3g1OdPB^@wy)QuEz6U1=v@r-v&M}afdj{>6PQ=$4ED& zr>K7Qy%uDfMW0&euk$ky<#dq#;%dnmV+SuJE;zJal=&Z<(79bs(%D{$8!kqV%z77L z;o9K5Pid06te8k6MaThkjq0DorWHmDG>`x;g`?UVa;8(h?Km_wcvNCqg(7sL8ovMo zwhb0e-R~@!fxI4OwkJpj&ie0A<)aTz*-+G{jWoEGcu6d zlhG06T0v1em20d4@jk03{obItzv>%To{u+nwA(5|=K_uXzrKofQjtoNqy-Zv^PH&R z%v`P_v|R#C)q+VA3Q$jT$vd^GG!ZulteLF1Uk0cY9G%oV?P76fefQ%kL$x^RWB%dN`oE**0;7l09T%hlSP5*eLx5KwvJ5 zv)JKCsoDpuV>#NyX=)UdKzYnEt9(Vm0LTtH67vE_lh`x(`EVX> zS{SiS%|+nb@+Vqz?OBU0Pg(NZk4*{#+Fs1SuyRkYU=^^qwsr6rkMR$Q83zDsyRKa$ zVj6hU`jR`>1aVRoKaNM1A*3b3_HK+(C4yhYk2)EJt0q-}n{QIxXIZv4WuVNYDD<-+ z7fHY?OSwA+ld&@g!{Swf7I=SFl;Z~IU8F7B6;!4=OD`BhU5*+H_9G_gFq}wP z#OhT7r>Nt?(hrsF^g4-(sWM5_>D$bUudDO&@TU?Zq(j(uQ(M(2KVuNg(Mco@T9_jS zd&3~i6FOHAkZo1Q4Hwvs!xP#CIUleebX$f#FW{Itz&~SB;4R?@^jAt-AmDBK@_~|t zMF&54RPfjDiX%GBe#!$&F5@HW_@%2<55&dNj=#W_YDSyW{)t#1B>TrV>sReRueDohvb;m zDD6&cAV;DMBC*U7hf&rMTa~<46mJG&ln>2$E#@;46KOp?Jr9nKJfqvYZ1T#=$Y^M2 zEPb^25pAvSdOYV;kwum#I-ZdYB5?IT^_&D48M!S0J7j*QYU75Dx0w?K>*d7Wal``I z(8jWFxa~?f?O_%LhkE_1t5em_hKiV-la(z6R>$+TPqFBBqi8GLce(TDm}(NPkmpG2 zg8F|XpkgjbQ_OX-nq)8Qgq4D#veqMVzV~;JC1aU6i>UZZ-WxtJbBm9+xikVmwO?=} zIgh10xz)a4r)F+}?jGkJhY^e~ytV|ypC8wR4L+EAk6@Ib_xMK!TJA^PG#&bNKpRy> zkMsR1RgzNEHV6}gm72srrDwU)Pkiu44#J1%z=ERNb zd$df;+zt+xLe0iJkSC*}d-iQ@V(SVgH2b_oRCrzfY08aI|Fp0{xev7fZyiS{hm##M z?MT7zb`2e`!t~>?{NL>}Br`L2Lpanybm;UH1XZ_l|08W;G7A}V4VD7y`TqM{6iiGE zAL!L~LsE2tola&TFw|ndLV1UoL9WEsw)WH~W_N=9xr1 zRkS~R6d*VsAQaILbx5sdhr^Qlt{1Q8-o)LGiY3&`hPa%_-ESoWT4miIBYl7mYlnjt zkhZDK$Qf-k8o-0kPb{Md4}5@JrH<%N|JW^VfkIQJ*a-{9E99^e8li$Ns%8 z&Z6Z~5ZyYTR%gEs)9J|w@S_&)Lq!7s)K`!HK3weCZiBLF3?l?fLIdMqdhVl^eRAd(z;R>cOx11V$ASZheq4F2?|Cy4 zG`vnjws!;5ZKLn}O*GpoI>8chMd>H+*Krimjv{<9B&QQlvCbN0PN4zW=0Ee0!Io8D zh9Ep?w#_?ZtXDB^A@^J+74%G3~ z*#(vD;-fM1U*_zygymq18I1&%^Im*tnFBtzdDPo#2iW(Ev^0fxJ2FAFLT5HRtvSYg zXEv+vg6b-nA9S7u(ac-M!FPY5#cCqYX18&TFBR-AuQGP515V9aFi@Z(h)XZz>=Pph>6*gFX<^)-=~$##JFM1n%j6&zf6T<j@NwqY$5BK%inB^L_-|? zSHeo4spWsnM3_c*)47i*6>~GW1>~+iOMtS^QM@p>vk&5ySQH+U^XWvKsTePgKmrqa+HAW2< zW98OScyZ@`_{jOVZs0o5cp)Ni-aI)(hfs!dSG{KXx>qslg|w6Z+*IlO`5hY6S` zR|B9+7AVDP%gSX|{w5L$jvQT|@wA1Y>uRP@ukNSsoh{uiAKI(UJ9*fvrTqoqVby!m z=N2veV0907v{lq*g{#zI!&6L`E4KQPos0r~%+$5}$FB1ATn5$;)A|0k&D=(&+0zm4 z)4kn#x;EzM=oiRCa&`D9DJbkV{F&6?hJg2ERZQ3ur`IgBY!*y5&wj1;?xHmQ9mG(N zb~Gc?yw1lmDgVwv)$R}oZ~fE%=NNaV8uAnRdW6gd@c@__KCJn66RNbp*b9#-PqM=p zAL9mJ}Dm zXYDiFXJYAVcFL6;X@Dj^2+e0g%+(j?9gv{)4)e`28^4+Vn*@P~eE%yYGG@-@S#%7y z7`fzdOeTjX40s$IevwItv2o$F8T;`APBD2-a759^()qJ3@Nj#YCS(eW?M~_ZfEeI| z2o<(A#oozGpqM1tJXRA3_`2H}1i6;C>iC4;P);cM^`SJW zFiSgzba{pAhRNo6d|$8WFm7&b2;`618K`4^(?N@LcY151Bjna>mDg&z03fSZrsk@& z7~i8nV7veh&nfvK`Oe6zC~~)`fBSh>FwppCi+{!WtPfCLte`Z#+YZ&YI2{){xmL4S z_gaW*o*sH^ovzflT(eIT1jC}m0N7Zg8;8e&)KDX@MAmr*Yj&oWVBLf)PQl`f7|4>; zZ=kQ|{Z9I{bfBoqI9$0ql_4-lQECVmtHG<(XY$(DPQ1ma{+rorbMSheiwq&1`Qw^ctqjyKe@;etLvLncT#0g=Ul>uA|Ay{6ADKMASu&ScbX zj=d>1|8$aUIyUCHvUd1RtI(31W}32xf)KbW_MRo+JHXUc5}6)d?JFoa+#8?mE-MTx zb=)(c=$;MFnN-|sd$Hq^2hYlI`Ed$uEAS~NaX~i({8!ePyEG>H)VG|)(!vn(-ClrT zB7zlPr5Ghj2W7FOgSM4+IKvm)YAd_coUzF$Sy2KhNl&^aRt=*x4NgCX4m>G6J|a5H rN{JHS17u7JJ41*Hdy*92|At36IkP`%>}8=a5WZ=u>Zw#K+l2ie)Lpkf delta 6406 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 X6^Fa$(?(2!NT0fjj&iBe>(KuO&oQw5 diff --git a/tgstation.dme b/tgstation.dme index 388d882323..aa24a781fe 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2030,6 +2030,7 @@ #include "code\modules\hydroponics\grown\onion.dm" #include "code\modules\hydroponics\grown\peach.dm" #include "code\modules\hydroponics\grown\peanuts.dm" +#include "code\modules\hydroponics\grown\peas.dm" #include "code\modules\hydroponics\grown\pineapple.dm" #include "code\modules\hydroponics\grown\potato.dm" #include "code\modules\hydroponics\grown\pumpkin.dm" From b21fb97bda944873c026aa836100c0b2be170b92 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 15 May 2020 10:54:25 -0400 Subject: [PATCH 052/103] Some fixes, some addtions some harm - Ice box changes (#12147) * Some fixes, some addtions some harm * Update icemoon_surface_engioutpost.dmm --- .../IceRuins/icemoon_surface_engioutpost.dmm | 98 +-- .../icemoon_underground_abandoned_village.dmm | 14 +- .../map_files/IceBoxStation/IceBoxStation.dmm | 787 +++++++++++------- 3 files changed, 561 insertions(+), 338 deletions(-) diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_engioutpost.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_engioutpost.dmm index d028ac106f..cfc9e5f4ce 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_surface_engioutpost.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_surface_engioutpost.dmm @@ -265,12 +265,6 @@ /obj/machinery/atmospherics/pipe/manifold/cyan/visible{ dir = 1 }, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, /obj/machinery/light/small{ dir = 1 }, @@ -299,9 +293,6 @@ /obj/machinery/atmospherics/pipe/manifold/green/visible{ dir = 1 }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors) "ba" = ( @@ -945,10 +936,6 @@ /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors) "cO" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, /obj/machinery/light/small, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors) @@ -963,9 +950,6 @@ /obj/machinery/atmospherics/pipe/simple/dark/visible{ dir = 9 }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors) "cR" = ( @@ -1218,6 +1202,10 @@ }, /turf/open/floor/plating/icemoon, /area/icemoon/surface/outdoors) +"xh" = ( +/mob/living/simple_animal/hostile/bear/snow, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) "CR" = ( /obj/structure/cable{ icon_state = "0-8" @@ -1279,17 +1267,17 @@ aa ak an ak -ae +ak an ab aa by bQ bQ +aO ae -ae -ae -ae +ak +ak ae aO aa @@ -1564,28 +1552,28 @@ al al al ds -ae +aO aa "} (16,1,1) = {" -ae -ae -ae -ae +aO +aO ae ae ae aO +ae +aO bi ae +aO ae ae +aO ae +aO ae -ae -ae -ae -ae +aO aa "} (17,1,1) = {" @@ -1599,7 +1587,7 @@ ae aL bb bD -ae +aO aa aa aa @@ -1634,9 +1622,9 @@ aa af aa aa -aa +ak an -aB +dj ae aP bk @@ -1644,7 +1632,7 @@ aP ae aB aB -aB +dj aB aB aB @@ -1689,7 +1677,7 @@ aB cE ab cY -aB +dj aa aa "} @@ -1700,7 +1688,7 @@ af ab ab ab -ab +xh ab bj ab @@ -1710,7 +1698,7 @@ aP cH ab de -aB +dj aa aa "} @@ -1826,7 +1814,7 @@ aa aa an an -aB +dj ae bj bH @@ -1872,7 +1860,7 @@ aa ae bq bH -ae +aO aa aa aa @@ -1895,9 +1883,9 @@ bq bJ ae ae +aO ae -ae -ae +aO aa aa aa @@ -1918,10 +1906,10 @@ bZ ck cs cL +aO ae ae -ae -ae +aO aa "} (33,1,1) = {" @@ -1973,7 +1961,7 @@ aa ae ae ae -ae +aO aW bu bN @@ -1982,9 +1970,9 @@ cn cv cO ae -ae -ae -ae +aO +aO +aO aa "} (36,1,1) = {" @@ -2034,8 +2022,8 @@ aa aa aa ae -ae -ae +aO +aO ae aZ bu @@ -2045,9 +2033,9 @@ cd cy cQ ae -ae -ae -ae +aO +aO +aO aa "} (39,1,1) = {" @@ -2079,14 +2067,14 @@ aa aa aa ae +aO +aO ae ae ae +aO ae -ae -ae -ae -ae +aO aa aa aa diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm index 908363dd86..35eb1901f6 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm @@ -198,6 +198,9 @@ /obj/structure/toilet{ dir = 1 }, +/mob/living/simple_animal/hostile/skeleton/eskimo{ + name = "Village Hunter" + }, /turf/open/floor/plating, /area/ruin/powered) "sY" = ( @@ -216,6 +219,9 @@ /area/icemoon/underground/explored) "tt" = ( /obj/effect/decal/cleanable/dirt, +/mob/living/simple_animal/hostile/skeleton/eskimo{ + name = "Village Hunter" + }, /turf/open/floor/plasteel/freezer, /area/ruin/powered) "tF" = ( @@ -415,6 +421,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/carpet, /area/ruin/powered) +"IT" = ( +/mob/living/simple_animal/hostile/skeleton/eskimo{ + name = "Village Hunter" + }, +/turf/open/floor/wood, +/area/ruin/powered) "Kd" = ( /obj/structure/flora/grass/green, /turf/open/floor/plating/asteroid/snow/icemoon, @@ -816,7 +828,7 @@ tF ac Vn AG -aM +IT yb Vn wQ diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm index 5213a616b6..bcd8531349 100644 --- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm +++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm @@ -2562,6 +2562,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 10 }, +/obj/machinery/space_heater, /turf/open/floor/plating, /area/security/execution/transfer) "afu" = ( @@ -2890,6 +2891,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 6 }, +/obj/machinery/space_heater, /turf/open/floor/plasteel, /area/security/main) "agb" = ( @@ -4515,6 +4517,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 9 }, +/obj/machinery/space_heater, /turf/open/floor/plasteel, /area/security/processing) "aiE" = ( @@ -6245,6 +6248,7 @@ /obj/structure/sign/warning/vacuum/external{ pixel_x = 32 }, +/obj/machinery/space_heater, /turf/open/floor/plating, /area/maintenance/solars/port/fore) "alT" = ( @@ -7242,6 +7246,7 @@ /obj/machinery/light/small{ dir = 1 }, +/obj/machinery/space_heater, /turf/open/floor/plating, /area/maintenance/port/fore) "aok" = ( @@ -7469,6 +7474,7 @@ /obj/structure/disposalpipe/segment{ dir = 9 }, +/obj/machinery/space_heater, /turf/open/floor/plating, /area/maintenance/fore/secondary) "aoJ" = ( @@ -7479,12 +7485,10 @@ /obj/machinery/light/small{ dir = 8 }, -/obj/structure/chair/stool{ - pixel_y = 8 - }, /obj/effect/turf_decal/stripes/line{ dir = 9 }, +/obj/machinery/space_heater, /turf/open/floor/plating, /area/maintenance/fore/secondary) "aoL" = ( @@ -9080,6 +9084,10 @@ dir = 8; pixel_x = 28 }, +/obj/machinery/space_heater{ + desc = "For when you got to turn up the heat on the suspect, or cool down your partners hot temper"; + name = "The Griller" + }, /turf/open/floor/plasteel/dark, /area/security/brig) "asq" = ( @@ -9627,6 +9635,7 @@ /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/space_heater, /turf/open/floor/plasteel, /area/construction/mining/aux_base) "aud" = ( @@ -10035,7 +10044,7 @@ name = "Cargo Bay"; width = 12 }, -/turf/closed/mineral/random/snow/no_caves, +/turf/open/floor/plating/asteroid/snow/icemoon, /area/icemoon/surface/outdoors) "avf" = ( /obj/structure/sign/warning/docking{ @@ -12276,6 +12285,7 @@ dir = 1 }, /obj/effect/turf_decal/stripes/line, +/obj/machinery/space_heater, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "aAI" = ( @@ -15287,6 +15297,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 }, +/obj/machinery/space_heater, /turf/open/floor/plating, /area/maintenance/starboard/fore) "aIc" = ( @@ -19828,6 +19839,7 @@ dir = 1 }, /obj/machinery/light/small, +/obj/machinery/space_heater, /turf/open/floor/plasteel, /area/storage/tools) "aUx" = ( @@ -24159,7 +24171,6 @@ /area/maintenance/port) "bfe" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating, /area/maintenance/port) "bff" = ( @@ -24533,7 +24544,7 @@ dir = 1 }, /obj/effect/turf_decal/stripes/line, -/obj/effect/landmark/start/assistant, +/obj/machinery/space_heater, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bgj" = ( @@ -24610,6 +24621,7 @@ /area/maintenance/port) "bgt" = ( /obj/effect/spawner/lootdrop/maintenance, +/obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating, /area/maintenance/port) "bgu" = ( @@ -24739,6 +24751,7 @@ /obj/machinery/computer/security/telescreen/entertainment{ pixel_y = -32 }, +/obj/machinery/space_heater, /turf/open/floor/wood, /area/bridge/meeting_room) "bgM" = ( @@ -26979,6 +26992,7 @@ /area/crew_quarters/dorms) "blV" = ( /obj/machinery/light/small, +/obj/machinery/space_heater, /turf/open/floor/plating, /area/maintenance/disposal) "blW" = ( @@ -32872,6 +32886,7 @@ /obj/structure/cable{ icon_state = "0-8" }, +/obj/machinery/space_heater, /turf/open/floor/plasteel/dark, /area/science/server) "bzz" = ( @@ -36505,6 +36520,7 @@ department = "Tech storage"; pixel_y = -32 }, +/obj/machinery/space_heater, /turf/open/floor/plating, /area/storage/tech) "bHO" = ( @@ -37634,6 +37650,7 @@ /area/quartermaster/miningdock) "bKo" = ( /obj/machinery/light, +/obj/machinery/space_heater, /turf/open/floor/plasteel, /area/quartermaster/miningdock) "bKp" = ( @@ -38498,9 +38515,13 @@ /turf/open/floor/plating, /area/science/xenobiology) "bMs" = ( -/obj/effect/spawner/structure/window/reinforced, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/machinery/space_heater, /turf/open/floor/plating, -/area/science/research) +/area/maintenance/fore/secondary) "bMt" = ( /obj/structure/sign/warning/vacuum/external{ pixel_y = 32 @@ -43051,6 +43072,7 @@ /obj/structure/sign/warning/vacuum/external{ pixel_x = -32 }, +/obj/machinery/space_heater, /turf/open/floor/plating, /area/maintenance/port/aft) "bYv" = ( @@ -43579,6 +43601,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 9 }, +/obj/machinery/space_heater, /turf/open/floor/plating, /area/maintenance/aft) "bZS" = ( @@ -44617,8 +44640,6 @@ /turf/open/floor/plasteel/dark/telecomms, /area/tcommsat/server) "cci" = ( -/obj/structure/table, -/obj/item/multitool, /obj/effect/turf_decal/tile/yellow{ dir = 1 }, @@ -44628,6 +44649,7 @@ /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/space_heater, /turf/open/floor/plasteel, /area/tcommsat/computer) "ccj" = ( @@ -45179,6 +45201,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 }, +/obj/machinery/space_heater, /turf/open/floor/plating, /area/maintenance/aft) "cdK" = ( @@ -45305,6 +45328,7 @@ /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/item/multitool, /turf/open/floor/plasteel, /area/tcommsat/computer) "cef" = ( @@ -46005,6 +46029,7 @@ pixel_y = 26 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/space_heater, /turf/open/floor/plasteel, /area/maintenance/disposal/incinerator) "cga" = ( @@ -46206,6 +46231,7 @@ /obj/structure/sign/warning/vacuum/external{ pixel_x = -32 }, +/obj/machinery/space_heater, /turf/open/floor/plating, /area/maintenance/solars/port/aft) "cgB" = ( @@ -48381,6 +48407,7 @@ /obj/structure/sign/warning/vacuum/external{ pixel_y = -32 }, +/obj/machinery/space_heater, /turf/open/floor/plating, /area/maintenance/solars/starboard/aft) "cmy" = ( @@ -48751,6 +48778,7 @@ /obj/structure/disposalpipe/junction/flip{ dir = 4 }, +/obj/machinery/space_heater, /turf/open/floor/plating, /area/maintenance/aft) "cnF" = ( @@ -49420,6 +49448,7 @@ c_tag = "Engineering Escape Pod"; dir = 4 }, +/obj/machinery/space_heater, /turf/open/floor/plating, /area/engine/engineering) "cqr" = ( @@ -49484,6 +49513,7 @@ /obj/machinery/light/small{ dir = 4 }, +/obj/machinery/space_heater, /turf/open/floor/plating, /area/maintenance/port/aft) "cqM" = ( @@ -49603,6 +49633,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 }, +/obj/machinery/space_heater, /turf/open/floor/plasteel, /area/engine/engineering) "cry" = ( @@ -49822,6 +49853,7 @@ pixel_y = -29 }, /obj/machinery/light/small, +/obj/machinery/space_heater, /turf/open/floor/plating, /area/ai_monitored/turret_protected/aisat_interior) "cti" = ( @@ -49840,6 +49872,7 @@ }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/machinery/light/small, +/obj/machinery/space_heater, /turf/open/floor/plating, /area/ai_monitored/turret_protected/aisat_interior) "ctk" = ( @@ -51402,6 +51435,7 @@ dir = 8 }, /obj/machinery/light/small, +/obj/machinery/space_heater, /turf/open/floor/plating, /area/hallway/secondary/entry) "cxm" = ( @@ -51448,6 +51482,7 @@ dir = 8 }, /obj/machinery/light/small, +/obj/machinery/space_heater, /turf/open/floor/plating, /area/hallway/secondary/entry) "cya" = ( @@ -52954,6 +52989,7 @@ /obj/structure/cable{ icon_state = "0-8" }, +/obj/machinery/space_heater, /turf/open/floor/plating, /area/maintenance/starboard) "cNT" = ( @@ -53075,7 +53111,7 @@ dir = 4 }, /obj/machinery/door/airlock/external{ - req_access_txt = "13" + req_access_txt = "13;8;12" }, /turf/open/floor/plating, /area/maintenance/starboard/aft) @@ -53084,7 +53120,7 @@ dir = 8 }, /obj/machinery/door/airlock/external{ - req_access_txt = "13" + req_access_txt = "13;8;12" }, /turf/open/floor/plating, /area/maintenance/starboard/aft) @@ -53518,6 +53554,7 @@ /obj/structure/sign/poster/official/safety_internals{ pixel_x = -32 }, +/obj/machinery/space_heater, /turf/open/floor/plasteel/white, /area/science/xenobiology) "cTZ" = ( @@ -53818,6 +53855,11 @@ }, /turf/open/floor/engine, /area/engine/engineering) +"dDV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/space_heater, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) "dFX" = ( /turf/closed/wall, /area/crew_quarters/fitness/pool) @@ -54098,6 +54140,10 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/port) +"eyr" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/fore) "eyM" = ( /obj/machinery/mineral/ore_redemption{ input_dir = 2; @@ -54606,6 +54652,11 @@ /obj/effect/turf_decal/stripes/corner, /turf/open/floor/plasteel, /area/hydroponics) +"fzU" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/space_heater, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) "fAj" = ( /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ @@ -55083,6 +55134,7 @@ /obj/item/radio/intercom{ pixel_y = 20 }, +/obj/machinery/space_heater, /turf/open/floor/plasteel, /area/security/processing) "gGH" = ( @@ -55517,6 +55569,10 @@ }, /turf/open/floor/wood, /area/crew_quarters/bar) +"hUv" = ( +/obj/machinery/space_heater, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) "hVs" = ( /turf/open/floor/plasteel/dark, /area/engine/engineering) @@ -55618,6 +55674,7 @@ /turf/open/floor/plasteel, /area/crew_quarters/fitness/pool) "ipA" = ( +/obj/machinery/space_heater, /turf/open/floor/plating, /area/maintenance/department/medical/morgue) "itD" = ( @@ -56012,12 +56069,16 @@ /turf/open/floor/plasteel, /area/crew_quarters/fitness) "jxF" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 }, -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/maintenance/port) +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/space_heater, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) "jyO" = ( /obj/effect/turf_decal/tile/red{ dir = 1 @@ -56156,6 +56217,37 @@ }, /turf/open/floor/plating, /area/maintenance/fore/secondary) +"jLl" = ( +/obj/structure/rack, +/obj/item/pickaxe{ + pixel_x = 5 + }, +/obj/item/shovel{ + pixel_x = -5 + }, +/obj/item/shovel{ + pixel_x = -5 + }, +/obj/item/shovel{ + pixel_x = -5 + }, +/obj/item/pickaxe{ + pixel_x = 5 + }, +/obj/item/pickaxe{ + pixel_x = 5 + }, +/obj/item/storage/bag/ore/large, +/obj/item/storage/bag/ore/large, +/obj/item/storage/bag/ore/large, +/obj/item/clothing/suit/hooded/wintercoat/aformal, +/obj/item/clothing/suit/hooded/wintercoat/aformal, +/obj/item/clothing/suit/hooded/wintercoat/aformal, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/shoes/winterboots, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) "jLn" = ( /obj/machinery/door/airlock/engineering{ name = "Gravity Generator"; @@ -56431,6 +56523,13 @@ }, /turf/open/floor/plasteel, /area/security/range) +"kvI" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/aft) "kvL" = ( /obj/structure/cable{ icon_state = "1-2" @@ -56725,6 +56824,15 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/security/range) +"lcu" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/port) +"lfj" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/disposal) "lfB" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ dir = 4 @@ -57235,6 +57343,12 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/fore) +"mCy" = ( +/obj/machinery/space_heater{ + anchored = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) "mDB" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -57653,6 +57767,10 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/dorms) +"nTd" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/hallway) "nTG" = ( /obj/structure/chair{ dir = 1 @@ -58002,6 +58120,10 @@ }, /turf/open/floor/engine, /area/engine/engineering) +"oEr" = ( +/obj/machinery/space_heater, +/turf/open/floor/plasteel, +/area/engine/engineering) "oEZ" = ( /obj/effect/spawner/lootdrop/keg, /turf/open/floor/plating, @@ -58049,6 +58171,15 @@ }, /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) +"oMH" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/machinery/space_heater{ + anchored = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) "oNz" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 @@ -58159,6 +58290,11 @@ }, /turf/open/floor/engine, /area/engine/engineering) +"pck" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/aft) "pem" = ( /obj/machinery/button/door{ desc = "Bolts the doors to the Private Study."; @@ -58523,6 +58659,13 @@ }, /turf/open/floor/plasteel, /area/security/processing) +"pZr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/aft) "qaY" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/tile/bar, @@ -58852,6 +58995,10 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/security/processing) +"rjG" = ( +/obj/machinery/space_heater, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) "rjH" = ( /obj/structure/cable{ icon_state = "2-4" @@ -59639,6 +59786,15 @@ }, /turf/open/floor/plasteel, /area/quartermaster/office) +"sRO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance{ + req_one_access_txt = "8;12" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) "sRT" = ( /obj/machinery/vending/cola/random, /turf/open/floor/wood, @@ -59665,6 +59821,13 @@ }, /turf/open/floor/plasteel/dark, /area/engine/engineering) +"sTP" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/port/aft) "sUh" = ( /obj/machinery/atmospherics/pipe/simple/yellow/visible, /turf/closed/wall, @@ -59713,6 +59876,13 @@ /obj/machinery/vending/boozeomat, /turf/closed/wall, /area/maintenance/bar) +"sXM" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/aft) "sXV" = ( /turf/closed/wall/r_wall, /area/security/range) @@ -59771,6 +59941,10 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/wood, /area/crew_quarters/bar) +"tiF" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/aft) "tkq" = ( /obj/structure/cable{ icon_state = "4-8" @@ -60550,6 +60724,13 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"uWy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) "uXt" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plasteel, @@ -60746,6 +60927,15 @@ /obj/structure/cable, /turf/open/floor/carpet, /area/crew_quarters/cryopod) +"vsQ" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/hallway/secondary/entry) "vsT" = ( /obj/structure/closet/crate, /obj/item/book/manual/wiki/telescience, @@ -61163,6 +61353,10 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/fitness/pool) +"wiI" = ( +/obj/machinery/space_heater, +/turf/open/floor/wood, +/area/security/vacantoffice) "wje" = ( /obj/structure/rack, /obj/item/instrument/banjo, @@ -61211,6 +61405,10 @@ }, /turf/open/floor/plating, /area/construction/mining/aux_base) +"wpr" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/port) "wql" = ( /obj/structure/extinguisher_cabinet, /turf/closed/wall/r_wall, @@ -61305,6 +61503,14 @@ }, /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) +"wHR" = ( +/obj/machinery/light, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/space_heater, +/turf/open/floor/plasteel/white/corner, +/area/hallway/secondary/entry) "wHT" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plating, @@ -61315,6 +61521,10 @@ }, /turf/open/floor/plasteel/dark, /area/engine/engineering) +"wJF" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/storage/tech) "wKe" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ @@ -61912,10 +62122,18 @@ }, /turf/open/floor/plating, /area/security/processing) +"xXg" = ( +/obj/machinery/space_heater, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) "xXi" = ( /obj/machinery/vending/clothing, /turf/open/floor/plasteel, /area/crew_quarters/fitness) +"xZo" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/construction) "xZD" = ( /obj/structure/closet/lasertag/red, /obj/item/clothing/under/misc/pj/red, @@ -61998,6 +62216,11 @@ /obj/item/folder/blue, /turf/open/floor/plasteel/dark, /area/hallway/primary/central) +"yjo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/starboard) "ykN" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple, /turf/open/floor/plating/snowed/smoothed/icemoon, @@ -68787,11 +69010,11 @@ aBM aBM aBM aBM -aBM -aBM -aBM -aBM -aBM +crk +crk +crk +crk +crk aBM aBM aBM @@ -69044,6 +69267,11 @@ aBM aBM aBM aBM +crk +crk +crk +crk +crk aBM aBM aBM @@ -69053,16 +69281,11 @@ aBM aBM aBM aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM +crk +crk +crk +crk +crk aBM aBM aBM @@ -69301,9 +69524,11 @@ aBM aBM aBM aBM -aBM -aBM +crk +crk aud +crk +crk aBM aBM aBM @@ -69313,13 +69538,11 @@ aBM aBM aBM aBM -aBM -aBM -aBM -aBM +crk +crk auC -aBM -aBM +crk +crk aBM aBM aBM @@ -69558,6 +69781,11 @@ aBM aBM aBM aBM +crk +crk +crk +crk +crk aBM aBM aBM @@ -69567,16 +69795,11 @@ aBM aBM aBM aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM +crk +crk +crk +crk +crk aBM aBM aBM @@ -69815,6 +70038,11 @@ aBM aBM aBM aBM +crk +crk +crk +crk +crk aBM aBM aBM @@ -69824,16 +70052,11 @@ aBM aBM aBM aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM +crk +crk +crk +crk +crk aBM aBM aBM @@ -70072,6 +70295,11 @@ aBM aBM aBM aBM +crk +crk +crk +crk +crk aBM aBM aBM @@ -70081,16 +70309,11 @@ aBM aBM aBM aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM +crk +crk +crk +crk +crk aBM aBM aBM @@ -70329,11 +70552,11 @@ aBM aBM aBM aBM -aBM +crk crk auj crk -aBM +crk aBM aBM crk @@ -70343,11 +70566,11 @@ crk crk aBM aBM -aBM +crk crk auj crk -aBM +crk aBM aBM aBM @@ -71374,7 +71597,7 @@ awW awW awW aQG -aRX +wHR arB aBM aBM @@ -71382,7 +71605,7 @@ aBM aBM aBM arB -awZ +vsQ ayk awW aAD @@ -72411,9 +72634,9 @@ aBM aBM awW awZ +jHh ayl -ayl -aAE +jLl awW aBM aBM @@ -72668,7 +72891,7 @@ aBM aBM awW awZ -ayl +jHh ayl bgi awW @@ -73668,7 +73891,7 @@ atI atI arE ayq -ayq +jxF auc avp axI @@ -74465,7 +74688,7 @@ azz ayl azz aPu -ayl +aNh aIK ayl beM @@ -74722,10 +74945,10 @@ ayl ayl aWc baG -ayl +aNh aIK ayl -beM +fzU arB aBM aBM @@ -76006,7 +76229,7 @@ aUO aUO aXL aXZ -aUO +wiI czK bbe beO @@ -76015,7 +76238,7 @@ bgj bgj bjc cAF -cAF +lfj bja wWu wWu @@ -76748,7 +76971,7 @@ ayF ayF alU aoT -amC +atJ aqO arG asc @@ -77544,7 +77767,7 @@ aPz aPz aPz aPz -aSg +wpr aWj aXP aZr @@ -77558,14 +77781,14 @@ bfh aPz aPz aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF aBM aBM aBM @@ -77814,17 +78037,17 @@ bea bfq bji bkF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF aBM aBM aBM @@ -78071,17 +78294,17 @@ bdZ bhO bjh bkE -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF aBM aBM aBM @@ -78328,18 +78551,18 @@ aPz bhQ bjj bkF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF aBM aBM aBM @@ -78585,18 +78808,18 @@ gQX bhQ bjj bkF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF aBM aBM aBM @@ -78842,18 +79065,18 @@ bgr iwB hew bkF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF aBM aBM aBM @@ -79099,18 +79322,18 @@ gfr bhQ bjk bkE -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF aBM aBM aBM @@ -79356,17 +79579,17 @@ bgs hnl bjk bkF -aBM -aBM -aBM -aBM -aBM -aBM +ayF +ayF +ayF +ayF +ayF +ayF avd -aBM -aBM -aBM -aBM +ayF +ayF +ayF +ayF aBM aBM aBM @@ -79613,8 +79836,8 @@ aPz bhQ bjk aPz -aBM -aBM +ayF +ayF boI bqi brJ @@ -79622,8 +79845,8 @@ boI brJ bvS boI -aBM -aBM +ayF +ayF aBM aBM aBM @@ -79870,8 +80093,8 @@ bgt bhS bjk aPz -aBM -aBM +ayF +ayF blW bqj brK @@ -79879,9 +80102,9 @@ blW brK bvT blW -aBM -aBM -aBM +ayF +ayF +ayF aBM aBM aBM @@ -80123,7 +80346,7 @@ aQN cBh bdL aPA -bgt +lcu bhR bjk aZE @@ -80136,10 +80359,10 @@ aZE cyD bvS blW -aBM -aBM -aBM -aBM +ayF +ayF +ayF +ayF aBM aBM ayF @@ -80345,7 +80568,7 @@ alU amE ann amC -amC +atJ alU amC alU @@ -80393,11 +80616,11 @@ btr bnw bvV blW -aBM -aBM -aBM -aBM -aBM +ayF +ayF +ayF +ayF +ayF ayF ayF ayF @@ -80652,8 +80875,8 @@ bvU aZE ayF ayF -aBM -aBM +ayF +ayF ayF ayF ayF @@ -80907,10 +81130,10 @@ bjt biq bvV blW -aBM -aBM -aBM -aBM +ayF +ayF +ayF +ayF ayF ayF ayF @@ -81164,10 +81387,10 @@ bjr buC bvV blW -aBM -aBM -aBM -aBM +ayF +ayF +ayF +ayF ayF ayF bxy @@ -81421,10 +81644,10 @@ bjr bkt bvV blW -aBM -aBM -aBM -aBM +ayF +ayF +ayF +ayF ayF ayF bxy @@ -81678,10 +81901,10 @@ bjr bjr bvV bxu -aBM -aBM -aBM -aBM +ayF +ayF +ayF +ayF ayF ayF bxy @@ -81921,7 +82144,7 @@ aQW aQW xDM aPA -jxF +aWv aYb aZE bjp @@ -82741,7 +82964,7 @@ cAh chT bHE bHE -ckv +sTP bHE bCq bLv @@ -82944,7 +83167,7 @@ aPJ aPJ aVC aXJ -bgA +dDV aZp baY bcJ @@ -83972,9 +84195,9 @@ aTJ aPK aWA aWC -baS +xXg aZI -baS +xXg cCn bdS bdU @@ -84000,7 +84223,7 @@ bEK byE byE avl -byE +rjG bGi ayF ayF @@ -84776,7 +84999,7 @@ bxy crk crk bCq -bHE +ceW bRh bLu bCq @@ -85798,7 +86021,7 @@ bAo bTE bGo bHC -bHE +ceW bCq bCq bLv @@ -86005,7 +86228,7 @@ arl arP asS sfs -aqR +eyr awb axt ayG @@ -86336,7 +86559,7 @@ bLw bLw caq cbw -bHE +ceW ciT bCq bSs @@ -88402,7 +88625,7 @@ ccw cnZ coH cgR -cgR +oEr cig nEI ccw @@ -88886,7 +89109,7 @@ bJj bKu bLy bCs -bNJ +xZo bNJ bKx cjL @@ -89143,7 +89366,7 @@ bFa bFa bFa bCs -bNJ +xZo bNJ apV cjL @@ -89182,7 +89405,7 @@ hOI qmG uqX oEe -tcF +oMH uSL fft ccw @@ -89445,7 +89668,7 @@ vOF fAX hVs iWD -hVs +hUv fPM ccw ayF @@ -90163,7 +90386,7 @@ aXf aJq bBi bCs -bFa +wJF bFa bFa bET @@ -92529,7 +92752,7 @@ ccw dSF vLM sAQ -hVs +hUv gAE ccw ayF @@ -93550,8 +93773,8 @@ jIb qXZ dVX dVX -hVs -hVs +mCy +mCy ccw ayF ayF @@ -96785,7 +97008,7 @@ uhm ahn aiA ahn -grc +bMs anE aod ahn @@ -99230,7 +99453,7 @@ cvk cvX cvX cvX -cvX +nTd cwq cwq cva @@ -99433,12 +99656,12 @@ bUY pRg bWe pRg -bWe +kvI bWe cdE bAw bzs -bAw +tiF caK cfj ciB @@ -99678,7 +99901,7 @@ bFA bIm bJD bKK -bLS +pck bNc bOj bNc @@ -100202,7 +100425,7 @@ bMa bTZ bKH bzs -bAw +tiF bXZ bAw bZN @@ -101937,8 +102160,8 @@ crk alO arp alO -anf -anf +aBF +aBF anf anf anf @@ -102533,7 +102756,7 @@ ceJ cAe cmj cne -bHd +sXM bPn ayF ayF @@ -103018,7 +103241,7 @@ bFH bHb bIw bBN -bKT +pZr bMb bNd bOt @@ -103299,7 +103522,7 @@ cfq bKT bAw ciH -bHd +sXM bzs bAw cmk @@ -103478,8 +103701,8 @@ aoO apB aqx art -anf -anf +aBF +aBF auF alP awH @@ -103524,7 +103747,7 @@ bon buG bvA bon -bAw +tiF bzg bLS bLS @@ -104002,7 +104225,7 @@ alP alP alP alP -ayf +uWy aFm aGF aIq @@ -105532,7 +105755,7 @@ ayF ayF ayF alO -anf +aBF anf asy anf @@ -106559,7 +106782,7 @@ aBM ayF ayF alO -anf +aBF anf arw nuw @@ -108673,9 +108896,9 @@ bEz bFS bJT bLh -bMs -bMs -bMs +bvx +bvx +bvx bPN bQS bSf @@ -110752,7 +110975,7 @@ lZl cNW chC ciL -cOe +cou cOe clv cQw @@ -110964,8 +111187,8 @@ aTm aTm bgd bhG -bhG -bhG +yjo +yjo blO bmc bnq @@ -111220,8 +111443,8 @@ bcC cBl aPq bgg -aNa -ayF +aMZ +bky bky bqh bme @@ -112546,7 +112769,7 @@ cNW cNW cNW cNW -clt +sRO cNW cNW cNW @@ -113057,13 +113280,13 @@ kAJ clt cac cbh -cNW +cou ccV cOe clt cfv cBL -cOe +cou cNW ayF ayF @@ -113818,16 +114041,16 @@ ayF ayF ayF ayF -aBM -aBM +crk +crk ayF -aBM -aBM +crk +crk ayF ayF ayF -aBM -aBM +crk +crk ayF ayF cNW @@ -114066,8 +114289,8 @@ bky bky ayF aBM -aBM -aBM +crk +crk crk crk crk @@ -114326,7 +114549,7 @@ aBM aBM aBM ayF -ayF +crk ayF ayF ayF @@ -114840,7 +115063,7 @@ aBM aBM aBM ayF -ayF +crk ayF aBM aBM @@ -115097,7 +115320,7 @@ aBM aBM aBM ayF -ayF +crk ayF aBM aBM @@ -115868,7 +116091,7 @@ aBM aBM aBM ayF -ayF +crk ayF aBM aBM @@ -116125,7 +116348,7 @@ aBM aBM aBM ayF -ayF +crk ayF aBM aBM @@ -116382,7 +116605,7 @@ aBM aBM aBM ayF -ayF +crk ayF aBM aBM @@ -116896,7 +117119,7 @@ aBM aBM aBM ayF -ayF +crk ayF aBM aBM @@ -117153,7 +117376,7 @@ aBM aBM aBM ayF -ayF +crk ayF aBM aBM @@ -117410,7 +117633,7 @@ aBM aBM aBM ayF -ayF +crk ayF aBM aBM @@ -117667,7 +117890,7 @@ aBM aBM aBM ayF -ayF +crk ayF aBM aBM @@ -117924,7 +118147,7 @@ aBM aBM aBM ayF -ayF +crk ayF aBM aBM @@ -118181,7 +118404,7 @@ aBM aBM aBM ayF -ayF +crk ayF aBM aBM @@ -118695,7 +118918,7 @@ aBM aBM aBM ayF -ayF +crk ayF aBM aBM @@ -118952,7 +119175,7 @@ aBM aBM aBM ayF -ayF +crk ayF aBM aBM From 7c7147cb3ef9612195e1bc0ab4482d10d33095d2 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Sat, 16 May 2020 00:25:04 +0200 Subject: [PATCH 053/103] Field of Vision component. (#12075) * Hopeless WIP for vision cones. * Core component and hooks done * Removing clutter. * linter bashing me for using statements as args. * Ok. * continue * bring back the macro * Configs and openspace filter. * Chat plane, reset perspective signal, mechs/vehicles cases, machineries. * view, viewers and spoopy ghosts. * Renamed component, admin fun button and snowflakes robots. * Whoopsie. * Yikes * test merge tweak. * radial yaketi sax. * Fixed tgui UIs, some messages not displayed to the target. * Documentation and a little bugfix. * Pulling QoL, seventh plane made in this PR. * Fix. * Tweaks and improvements. * Update randomverbs.dm --- code/__DEFINES/dcs/signals.dm | 23 +- code/__DEFINES/flags.dm | 3 +- code/__DEFINES/layers_planes.dm | 40 +- code/__DEFINES/mobs.dm | 5 + code/__HELPERS/game.dm | 9 + code/__HELPERS/unsorted.dm | 12 +- code/_onclick/click.dm | 31 +- code/_onclick/hud/plane_master.dm | 73 +++- code/_onclick/hud/radial.dm | 1 + .../configuration/entries/game_options.dm | 6 + code/datums/brain_damage/phobia.dm | 2 +- code/datums/chatmessage.dm | 2 +- code/datums/components/field_of_vision.dm | 354 ++++++++++++++++++ code/datums/components/storage/storage.dm | 7 +- code/game/atoms.dm | 8 +- code/game/atoms_movable.dm | 17 +- code/game/machinery/Sleeper.dm | 5 + code/game/machinery/_machinery.dm | 4 +- code/game/machinery/buttons.dm | 1 + code/game/machinery/computer/camera.dm | 1 + code/game/machinery/doors/airlock.dm | 26 +- code/game/machinery/doors/brigdoors.dm | 1 + .../simple_vent_controller.dm | 2 +- code/game/machinery/firealarm.dm | 1 + code/game/machinery/flasher.dm | 2 + code/game/machinery/harvester.dm | 5 + code/game/machinery/lightswitch.dm | 1 + code/game/machinery/requests_console.dm | 1 + code/game/machinery/status_display.dm | 1 + code/game/mecha/mecha.dm | 10 +- code/game/mecha/mecha_topic.dm | 9 +- code/game/objects/effects/contraband.dm | 1 + code/game/objects/items/RCD.dm | 4 +- .../objects/items/devices/laserpointer.dm | 5 +- .../objects/items/devices/radio/intercom.dm | 1 + code/game/objects/items/flamethrower.dm | 5 +- .../game/objects/items/implants/implantpad.dm | 2 +- code/game/objects/items/storage/secure.dm | 6 +- code/game/objects/items/teleportation.dm | 2 +- code/game/objects/objs.dm | 4 +- .../crates_lockers/closets/cardboardbox.dm | 3 +- code/game/objects/structures/extinguisher.dm | 1 + code/game/objects/structures/false_walls.dm | 1 + code/game/objects/structures/fireaxe.dm | 1 + code/game/objects/structures/guillotine.dm | 2 +- code/game/objects/structures/mirror.dm | 1 + code/game/objects/structures/noticeboard.dm | 1 + code/game/objects/structures/signs/_signs.dm | 1 + code/game/turfs/closed.dm | 1 + code/modules/VR/vr_sleeper.dm | 5 + code/modules/admin/admin_verbs.dm | 1 + code/modules/admin/verbs/randomverbs.dm | 52 +++ .../bloodsucker/objects/bloodsucker_crypt.dm | 19 +- .../antagonists/bloodsucker/powers/cloak.dm | 11 +- .../antagonists/bloodsucker/powers/feed.dm | 4 +- .../antagonists/bloodsucker/powers/go_home.dm | 4 +- .../bloodsucker/powers/mesmerize.dm | 4 +- code/modules/antagonists/revenant/revenant.dm | 1 + .../atmospherics/machinery/airalarm.dm | 1 + code/modules/client/client_procs.dm | 10 +- code/modules/client/preferences.dm | 4 +- code/modules/clothing/spacesuits/hardsuit.dm | 8 +- code/modules/flufftext/Hallucination.dm | 13 +- .../integrated_electronics/core/assemblies.dm | 5 + code/modules/mob/dead/observer/observer.dm | 2 +- code/modules/mob/living/bloodcrawl.dm | 2 +- code/modules/mob/living/brain/brain.dm | 1 + .../mob/living/carbon/human/human_defines.dm | 1 + code/modules/mob/living/carbon/human/login.dm | 4 + .../mob/living/carbon/human/species.dm | 31 +- .../carbon/human/species_types/dullahan.dm | 7 +- .../carbon/human/species_types/dwarves.dm | 2 +- code/modules/mob/living/living.dm | 2 +- code/modules/mob/living/living_defines.dm | 1 + code/modules/mob/living/silicon/ai/ai.dm | 46 +-- .../mob/living/silicon/robot/update_icons.dm | 2 + .../mob/living/simple_animal/astral.dm | 1 + .../mob/living/simple_animal/bot/medbot.dm | 2 +- .../mob/living/simple_animal/hostile/alien.dm | 1 + .../simple_animal/hostile/bosses/boss.dm | 1 + .../living/simple_animal/hostile/eyeballs.dm | 1 + .../simple_animal/hostile/giant_spider.dm | 1 + .../living/simple_animal/hostile/illusion.dm | 1 + .../hostile/megafauna/bubblegum.dm | 1 + .../hostile/megafauna/megafauna.dm | 1 + .../hostile/mining_mobs/basilisk.dm | 1 + .../hostile/mining_mobs/elites/elite.dm | 1 + .../simple_animal/hostile/retaliate/ghost.dm | 1 + .../hostile/retaliate/spaceman.dm | 1 + .../living/simple_animal/hostile/statue.dm | 6 +- .../modules/mob/living/simple_animal/shade.dm | 1 + .../mob/living/simple_animal/slime/powers.dm | 2 +- code/modules/mob/living/update_icons.dm | 5 +- code/modules/mob/login.dm | 2 + code/modules/mob/mob.dm | 70 ++-- code/modules/mob/mob_defines.dm | 5 +- code/modules/mob/mob_movement.dm | 3 +- code/modules/mob/status_procs.dm | 18 +- code/modules/newscaster/newscaster_machine.dm | 1 + code/modules/power/apc.dm | 2 +- code/modules/power/singularity/narsie.dm | 2 +- code/modules/power/supermatter/supermatter.dm | 5 +- .../projectile/special/hallucination.dm | 2 +- code/modules/reagents/chemistry/holder.dm | 7 +- .../chemistry/reagents/toxin_reagents.dm | 14 +- .../reagents/chemistry/recipes/others.dm | 17 +- code/modules/reagents/reagent_containers.dm | 20 +- .../reagents/reagent_containers/pill.dm | 5 +- code/modules/reagents/reagent_dispenser.dm | 2 + .../security_levels/keycard_authentication.dm | 1 + code/modules/tgui/states.dm | 2 +- code/modules/vehicles/sealed.dm | 13 +- config/game_options.txt | 6 +- icons/misc/field_of_vision.dmi | Bin 0 -> 931669 bytes modular_citadel/code/_onclick/click.dm | 27 -- modular_citadel/code/_onclick/other_mobs.dm | 8 +- .../code/modules/mob/living/carbon/carbon.dm | 2 +- .../reagents/chemistry/reagents/MKUltra.dm | 20 +- .../chemistry/reagents/fermi_reagents.dm | 35 +- .../reagents/chemistry/recipes/fermi.dm | 20 +- .../code/modules/reagents/objects/clothes.dm | 7 +- tgstation.dme | 2 + 122 files changed, 947 insertions(+), 347 deletions(-) create mode 100644 code/datums/components/field_of_vision.dm create mode 100644 code/modules/mob/living/carbon/human/login.dm create mode 100644 icons/misc/field_of_vision.dmi diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index 9a32e23950..793454869f 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -89,7 +89,7 @@ #define COMSIG_EXIT_AREA "exit_area" //from base of area/Exited(): (/area) #define COMSIG_CLICK "atom_click" //from base of atom/Click(): (location, control, params, mob/user) -#define COMSIG_CLICK_SHIFT "shift_click" //from base of atom/ShiftClick(): (/mob) +#define COMSIG_CLICK_SHIFT "shift_click" //from base of atom/ShiftClick(): (/mob), return flags also used by other signals. #define COMPONENT_ALLOW_EXAMINATE 1 #define COMPONENT_DENY_EXAMINATE 2 //Higher priority compared to the above one @@ -141,13 +141,17 @@ #define HEARING_SOURCE 8*/ #define COMSIG_MOVABLE_DISPOSING "movable_disposing" //called when the movable is added to a disposal holder object for disposal movement: (obj/structure/disposalholder/holder, obj/machinery/disposal/source) #define COMSIG_MOVABLE_TELEPORTED "movable_teleported" //from base of do_teleport(): (channel, turf/origin, turf/destination) + // /mind signals #define COMSIG_PRE_MIND_TRANSFER "pre_mind_transfer" //from base of mind/transfer_to() before it's done: (new_character, old_character) #define COMPONENT_STOP_MIND_TRANSFER 1 //stops the mind transfer from happening. #define COMSIG_MIND_TRANSFER "mind_transfer" //from base of mind/transfer_to() when it's done: (new_character, old_character) // /mob signals -#define COMSIG_MOB_EXAMINATE "mob_examinate" //from base of /mob/verb/examinate(): (atom/A) +#define COMSIG_MOB_CLICKED_SHIFT_ON "mob_shift_click_on" //from base of /atom/ShiftClick(): (atom/A), for return values, see COMSIG_CLICK_SHIFT +#define COMSIG_MOB_VISIBLE_ATOMS "mob_visible_atoms" //from base of mob/visible_atoms(): (list/visible_atoms) +#define COMSIG_MOB_EXAMINATE "mob_examinate" //from base of /mob/verb/examinate(): (atom/A), for return values, see COMSIG_CLICK_SHIFT + #define COMPONENT_EXAMINATE_BLIND 3 //outputs the "something is there but you can't see it" message. #define COMSIG_MOB_DEATH "mob_death" //from base of mob/death(): (gibbed) #define COMPONENT_BLOCK_DEATH_BROADCAST 1 //stops the death from being broadcasted in deadchat. #define COMSIG_MOB_CLICKON "mob_clickon" //from base of mob/clickon(): (atom/A, params) @@ -181,10 +185,15 @@ #define SPEECH_LANGUAGE 5 // #define SPEECH_IGNORE_SPAM 6 // #define SPEECH_FORCED 7 +#define COMSIG_MOB_IS_VIEWER "mob_is_viewer" //from base of /get_actual_viewers(): (atom/center, depth, viewers_list) +#define COMSIG_MOB_GET_VISIBLE_MESSAGE "mob_get_visible_message" //from base of atom/visible_message(): (atom/A, msg, range, ignored_mobs) + #define COMPONENT_NO_VISIBLE_MESSAGE 1 //exactly what's said on the tin. #define COMSIG_MOB_ANTAG_ON_GAIN "mob_antag_on_gain" //from base of /datum/antagonist/on_gain(): (antag_datum) #define COMSIG_MOB_SPELL_CAN_CAST "mob_spell_can_cast" //from base of /obj/effect/proc_holder/spell/can_cast(): (spell) +#define COMSIG_ROBOT_UPDATE_ICONS "robot_update_icons" //from base of robot/update_icons(): () + // /mob/living signals #define COMSIG_LIVING_REGENERATE_LIMBS "living_regenerate_limbs" //from base of /mob/living/regenerate_limbs(): (noheal, excluded_limbs) #define COMSIG_LIVING_RESIST "living_resist" //from base of mob/living/resist() (/mob/living) @@ -193,9 +202,13 @@ #define COMSIG_LIVING_ELECTROCUTE_ACT "living_electrocute_act" //from base of mob/living/electrocute_act(): (shock_damage, source, siemens_coeff, flags) #define COMSIG_LIVING_MINOR_SHOCK "living_minor_shock" //sent by stuff like stunbatons and tasers: () #define COMSIG_LIVING_REVIVE "living_revive" //from base of mob/living/revive() (full_heal, admin_revive) -#define COMSIG_MOB_CLIENT_LOGIN "comsig_mob_client_login" //sent when a mob/login() finishes: (client) -#define COMSIG_MOB_CLIENT_LOGOUT "comsig_mob_client_logout" //sent when a mob/logout() starts: (client) -#define COMSIG_MOB_CLIENT_MOVE "comsig_mob_client_move" //sent when client/Move() finishes with no early returns: (client, direction, n, oldloc) + +#define COMSIG_MOB_CLIENT_LOGIN "mob_client_login" //sent when a mob/login() finishes: (client) +#define COMSIG_MOB_CLIENT_LOGOUT "mob_client_logout" //sent when a mob/logout() starts: (client) +#define COMSIG_MOB_CLIENT_MOVE "mob_client_move" //sent when client/Move() finishes with no early returns: (client, direction, n, oldloc) +#define COMSIG_MOB_CLIENT_CHANGE_VIEW "mob_client_change_view" //from base of /client/change_view(): (client, old_view, view) + +#define COMSIG_MOB_RESET_PERSPECTIVE "mob_reset_perspective" //from base of /mob/reset_perspective(): (atom/target) #define COMSIG_LIVING_GUN_PROCESS_FIRE "living_gun_process_fire" //from base of /obj/item/gun/proc/process_fire(): (atom/target, params, zone_override) // This returns flags as defined for block in __DEFINES/combat.dm! #define COMSIG_LIVING_RUN_BLOCK "living_do_run_block" //from base of mob/living/do_run_block(): (real_attack, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone) diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm index 396cf25be1..9d34bc14d2 100644 --- a/code/__DEFINES/flags.dm +++ b/code/__DEFINES/flags.dm @@ -31,8 +31,9 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204 #define HOLOGRAM_1 (1<<12) #define TESLA_IGNORE_1 (1<<13) // TESLA_IGNORE grants immunity from being targeted by tesla-style electricity #define INITIALIZED_1 (1<<14) //Whether /atom/Initialize() has already run for the object -#define ADMIN_SPAWNED_1 (1<<15) //was this spawned by an admin? used for stat tracking stuff. +#define ADMIN_SPAWNED_1 (1<<15) //was this spawned by an admin? used for stat tracking stuff. #define PREVENT_CONTENTS_EXPLOSION_1 (1<<16) /// should not get harmed if this gets caught by an explosion? +#define BLOCK_FACE_ATOM_1 (1<<17) /// Early returns mob.face_atom() //turf-only flags #define NOJAUNT_1 (1<<0) diff --git a/code/__DEFINES/layers_planes.dm b/code/__DEFINES/layers_planes.dm index cffafcb81d..210e5a4a35 100644 --- a/code/__DEFINES/layers_planes.dm +++ b/code/__DEFINES/layers_planes.dm @@ -11,13 +11,34 @@ #define PLANE_SPACE_PARALLAX_RENDER_TARGET "PLANE_SPACE_PARALLAX" #define OPENSPACE_LAYER 17 //Openspace layer over all -#define OPENSPACE_PLANE -4 //Openspace plane below all turfs -#define OPENSPACE_BACKDROP_PLANE -3 //Black square just over openspace plane to guaranteed cover all in openspace turf +#define OPENSPACE_PLANE -10 //Openspace plane below all turfs +#define OPENSPACE_BACKDROP_PLANE -9 //Black square just over openspace plane to guaranteed cover all in openspace turf -#define FLOOR_PLANE -2 +#define FLOOR_PLANE -8 #define FLOOR_PLANE_RENDER_TARGET "FLOOR_PLANE" -#define GAME_PLANE -1 + +#define WALL_PLANE -7 +#define WALL_PLANE_RENDER_TARGET "WALL_PLANE" + +#define ABOVE_WALL_PLANE -6 +#define ABOVE_WALL_PLANE_RENDER_TARGET "ABOVE_WALL_PLANE" + +#define FIELD_OF_VISION_BLOCKER_PLANE -5 +#define FIELD_OF_VISION_BLOCKER_RENDER_TARGET "*FIELD_OF_VISION_BLOCKER_PLANE" + +#define FIELD_OF_VISION_PLANE -4 +#define FIELD_OF_VISION_RENDER_TARGET "*FIELD_OF_VISION_PLANE" +#define FIELD_OF_VISION_LAYER 17 //used to place the visual (not the mask) shadow cone above any other floor plane stuff. + +#define GAME_PLANE -3 #define GAME_PLANE_RENDER_TARGET "GAME_PLANE" + +#define FIELD_OF_VISION_VISUAL_PLANE -2 //Yea, FoV does require quite a few planes to work with 513 filters to a decent degree. +#define FIELD_OF_VISION_VISUAL_RENDER_TARGET "FIELD_OF_VISION_VISUAL_PLANE" + +#define CHAT_PLANE -1 //We don't want heard messages to be hidden by FoV. +#define CHAT_LAYER 12.1 //Legacy, it doesn't matter that much because we are displayed above the game plane anyway. + #define BLACKNESS_PLANE 0 //To keep from conflicts with SEE_BLACKNESS internals #define BLACKNESS_PLANE_RENDER_TARGET "BLACKNESS_PLANE" @@ -92,8 +113,6 @@ #define MASSIVE_OBJ_LAYER 11 #define POINT_LAYER 12 -#define CHAT_LAYER 12.1 - #define EMISSIVE_BLOCKER_PLANE 12 #define EMISSIVE_BLOCKER_LAYER 12 #define EMISSIVE_BLOCKER_RENDER_TARGET "*EMISSIVE_BLOCKER_PLANE" @@ -137,12 +156,12 @@ #define HUD_LAYER 21 #define HUD_RENDER_TARGET "HUD_PLANE" -#define VOLUMETRIC_STORAGE_BOX_PLANE 23 -#define VOLUMETRIC_STORAGE_BOX_LAYER 23 +#define VOLUMETRIC_STORAGE_BOX_PLANE 22 +#define VOLUMETRIC_STORAGE_BOX_LAYER 22 #define VOLUMETRIC_STORAGE_BOX_RENDER_TARGET "VOLUME_STORAGE_BOX_PLANE" -#define VOLUMETRIC_STORAGE_ITEM_PLANE 24 -#define VOLUMETRIC_STORAGE_ITEM_LAYER 24 +#define VOLUMETRIC_STORAGE_ITEM_PLANE 23 +#define VOLUMETRIC_STORAGE_ITEM_LAYER 23 #define VOLUMETRIC_STORAGE_ACTIVE_ITEM_LAYER 25 #define VOLUMETRIC_STORAGE_ACTIVE_ITEM_PLANE 25 #define VOLUMETRIC_STORAGE_ITEM_RENDER_TARGET "VOLUME_STORAGE_ITEM_PLANE" @@ -154,4 +173,3 @@ #define SPLASHSCREEN_LAYER 90 #define SPLASHSCREEN_PLANE 90 #define SPLASHSCREEN_RENDER_TARGET "SPLASHSCREEN_PLANE" - diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 2edef77dbf..29ab67271c 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -297,3 +297,8 @@ #define GRAB_PIXEL_SHIFT_NECK 16 #define SLEEP_CHECK_DEATH(X) sleep(X); if(QDELETED(src) || stat == DEAD) return; + +/// Field of vision defines. +#define FOV_90_DEGREES 90 +#define FOV_180_DEGREES 180 +#define FOV_270_DEGREES 270 diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index 679f89f4d2..6c0ffa5caa 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -249,6 +249,15 @@ SEND_SIGNAL(A, COMSIG_ATOM_HEARER_IN_VIEW, processing, .) processing += A.contents +//viewers() but with a signal, for blacklisting. +/proc/get_actual_viewers(depth = world.view, atom/center) + if(!center) + return + . = viewers(depth, center) + for(var/k in .) + var/mob/M = k + SEND_SIGNAL(M, COMSIG_MOB_IS_VIEWER, center, depth, .) + /proc/get_mobs_in_radio_ranges(list/obj/item/radio/radios) . = list() // Returns a list of mobs who can hear any of the radios given in @radios diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index a22f430140..06dd746250 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1,5 +1,3 @@ - - /* * A large number of misc global procs. */ @@ -391,6 +389,16 @@ Turf and target are separate in case you want to teleport some distance from a t break return loc +//Returns a list of all locations the target is within. +/proc/get_nested_locs(atom/movable/M, include_turf = FALSE) + . = list() + var/atom/A = M.loc + while(A && !isturf(A)) + . += A + A = A.loc + if(A && include_turf) //At this point, only the turf is left. + . += A + // returns the turf located at the map edge in the specified direction relative to A // used for mass driver /proc/get_edge_target_turf(atom/A, direction) diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index 738d72c6bf..5d2f916fba 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -324,10 +324,9 @@ return /atom/proc/ShiftClick(mob/user) - var/flags = SEND_SIGNAL(src, COMSIG_CLICK_SHIFT, user) + var/flags = SEND_SIGNAL(src, COMSIG_CLICK_SHIFT, user) | SEND_SIGNAL(user, COMSIG_MOB_CLICKED_SHIFT_ON, src) if(!(flags & COMPONENT_DENY_EXAMINATE) && user.client && (user.client.eye == user || user.client.eye == user.loc || flags & COMPONENT_ALLOW_EXAMINATE)) user.examinate(src) - return /* Ctrl click @@ -424,32 +423,36 @@ LE.fire() // Simple helper to face what you clicked on, in case it should be needed in more than one place -/mob/proc/face_atom(atom/A) - if( buckled || stat != CONSCIOUS || !A || !x || !y || !A.x || !A.y ) +/mob/proc/face_atom(atom/A, ismousemovement = FALSE) + if( buckled || stat != CONSCIOUS || !loc || !A || !A.x || !A.y ) return - var/dx = A.x - x - var/dy = A.y - y + var/atom/L = loc + if(L.flags_1 & BLOCK_FACE_ATOM_1) + return + var/turf/T = get_turf(src) + var/dx = A.x - T.x + var/dy = A.y - T.y if(!dx && !dy) // Wall items are graphically shifted but on the floor if(A.pixel_y > 16) - setDir(NORTH) + setDir(NORTH, ismousemovement) else if(A.pixel_y < -16) - setDir(SOUTH) + setDir(SOUTH, ismousemovement) else if(A.pixel_x > 16) - setDir(EAST) + setDir(EAST, ismousemovement) else if(A.pixel_x < -16) - setDir(WEST) + setDir(WEST, ismousemovement) return if(abs(dx) < abs(dy)) if(dy > 0) - setDir(NORTH) + setDir(NORTH, ismousemovement) else - setDir(SOUTH) + setDir(SOUTH, ismousemovement) else if(dx > 0) - setDir(EAST) + setDir(EAST, ismousemovement) else - setDir(WEST) + setDir(WEST, ismousemovement) //debug /obj/screen/proc/scale_to(x1,y1) diff --git a/code/_onclick/hud/plane_master.dm b/code/_onclick/hud/plane_master.dm index a0dade37bd..d7557b00d3 100644 --- a/code/_onclick/hud/plane_master.dm +++ b/code/_onclick/hud/plane_master.dm @@ -24,6 +24,10 @@ blend_mode = BLEND_MULTIPLY alpha = 255 +/obj/screen/plane_master/openspace/Initialize() + . = ..() + filters += filter(type="alpha", render_source=FIELD_OF_VISION_RENDER_TARGET, flags=MASK_INVERSE) + /obj/screen/plane_master/openspace/backdrop(mob/mymob) filters = list() filters += filter(type = "drop_shadow", color = "#04080FAA", size = -10) @@ -46,6 +50,26 @@ appearance_flags = PLANE_MASTER blend_mode = BLEND_OVERLAY +/obj/screen/plane_master/wall + name = "wall plane master" + plane = WALL_PLANE + appearance_flags = PLANE_MASTER + +/obj/screen/plane_master/wall/backdrop(mob/mymob) + if(mymob?.client?.prefs.ambientocclusion) + add_filter("ambient_occlusion", 0, AMBIENT_OCCLUSION) + else + remove_filter("ambient_occlusion") + +/obj/screen/plane_master/above_wall + name = "above wall plane master" + plane = ABOVE_WALL_PLANE + appearance_flags = PLANE_MASTER + +/obj/screen/plane_master/above_wall/Initialize() + . = ..() + add_filter("vision_cone", 100, list(type="alpha", render_source=FIELD_OF_VISION_RENDER_TARGET, flags=MASK_INVERSE)) + ///Contains most things in the game world /obj/screen/plane_master/game_world name = "game world plane master" @@ -53,12 +77,50 @@ appearance_flags = PLANE_MASTER //should use client color blend_mode = BLEND_OVERLAY +/obj/screen/plane_master/game_world/Initialize() + . = ..() + add_filter("vision_cone", 100, list(type="alpha", render_source=FIELD_OF_VISION_RENDER_TARGET, flags=MASK_INVERSE)) + /obj/screen/plane_master/game_world/backdrop(mob/mymob) - if(istype(mymob) && mymob.client && mymob.client.prefs && mymob.client.prefs.ambientocclusion) + if(mymob?.client?.prefs.ambientocclusion) add_filter("ambient_occlusion", 0, AMBIENT_OCCLUSION) else remove_filter("ambient_occlusion") - update_filters() + +//Reserved to chat messages, so they are still displayed above the field of vision masking. +/obj/screen/plane_master/chat_messages + name = "chat messages plane master" + plane = CHAT_PLANE + appearance_flags = PLANE_MASTER + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + +///Contains all shadow cone masks, whose image overrides are displayed only to their respective owners. +/obj/screen/plane_master/field_of_vision + name = "field of vision mask plane master" + plane = FIELD_OF_VISION_PLANE + render_target = FIELD_OF_VISION_RENDER_TARGET + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + +/obj/screen/plane_master/field_of_vision/Initialize() + . = ..() + filters += filter(type="alpha", render_source=FIELD_OF_VISION_BLOCKER_RENDER_TARGET, flags=MASK_INVERSE) + +///Used to display the owner and its adjacent surroundings through the FoV plane mask. +/obj/screen/plane_master/field_of_vision_blocker + name = "field of vision blocker plane master" + plane = FIELD_OF_VISION_BLOCKER_PLANE + render_target = FIELD_OF_VISION_BLOCKER_RENDER_TARGET + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + +///Stores the visible portion of the FoV shadow cone. +/obj/screen/plane_master/field_of_vision_visual + name = "field of vision visual plane master" + plane = FIELD_OF_VISION_VISUAL_PLANE + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + +/obj/screen/plane_master/field_of_vision_visual/Initialize() + . = ..() + filters += filter(type="alpha", render_source=FIELD_OF_VISION_BLOCKER_RENDER_TARGET, flags=MASK_INVERSE) ///Contains all lighting objects /obj/screen/plane_master/lighting @@ -87,11 +149,12 @@ /obj/screen/plane_master/emissive/Initialize() . = ..() filters += filter(type="alpha", render_source=EMISSIVE_BLOCKER_RENDER_TARGET, flags=MASK_INVERSE) + filters += filter(type="alpha", render_source=FIELD_OF_VISION_RENDER_TARGET, flags=MASK_INVERSE) /** * Things placed on this always mask the lighting plane. Doesn't render directly. * - * Always masks the light plane, isn't blocked by anything. Use for on mob glows, + * Always masks the light plane, isn't blocked by anything (except Field of Vision). Use for on mob glows, * magic stuff, etc. */ @@ -101,6 +164,10 @@ mouse_opacity = MOUSE_OPACITY_TRANSPARENT render_target = EMISSIVE_UNBLOCKABLE_RENDER_TARGET +/obj/screen/plane_master/emissive_unblockable/Initialize() + . = ..() + filters += filter(type="alpha", render_source=FIELD_OF_VISION_RENDER_TARGET, flags=MASK_INVERSE) + /** * Things placed on this layer mask the emissive layer. Doesn't render directly * diff --git a/code/_onclick/hud/radial.dm b/code/_onclick/hud/radial.dm index 1dce4ecc42..1ead41d513 100644 --- a/code/_onclick/hud/radial.dm +++ b/code/_onclick/hud/radial.dm @@ -238,6 +238,7 @@ GLOBAL_LIST_EMPTY(radial_menus) var/mutable_appearance/MA = new /mutable_appearance(E) if(MA) MA.layer = ABOVE_HUD_LAYER + MA.plane = ABOVE_HUD_PLANE MA.appearance_flags |= RESET_TRANSFORM return MA diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm index b35f4fe0e7..f8a66fce09 100644 --- a/code/controllers/configuration/entries/game_options.dm +++ b/code/controllers/configuration/entries/game_options.dm @@ -507,3 +507,9 @@ //Allows players to set a hexadecimal color of their choice as skin tone, on top of the standard ones. /datum/config_entry/flag/allow_custom_skintones + +/** + * Enables the FoV component, which hides objects and mobs behind the parent from their sight, unless they turn around, duh. + * Camera mobs, AIs, ghosts and some other are of course exempt from this. This also doesn't influence simplemob AI, for the best. + */ +/datum/config_entry/flag/use_field_of_vision diff --git a/code/datums/brain_damage/phobia.dm b/code/datums/brain_damage/phobia.dm index 80a1bd2470..7ff25eb12f 100644 --- a/code/datums/brain_damage/phobia.dm +++ b/code/datums/brain_damage/phobia.dm @@ -44,7 +44,7 @@ return if(world.time > next_check && world.time > next_scare) next_check = world.time + 50 - var/list/seen_atoms = view(7, owner) + var/list/seen_atoms = owner.visible_atoms(7) if(LAZYLEN(trigger_objs)) for(var/obj/O in seen_atoms) diff --git a/code/datums/chatmessage.dm b/code/datums/chatmessage.dm index cbcb34ac5e..64d6114f75 100644 --- a/code/datums/chatmessage.dm +++ b/code/datums/chatmessage.dm @@ -129,7 +129,7 @@ // Build message image message = image(loc = message_loc, layer = CHAT_LAYER) - message.plane = GAME_PLANE + message.plane = CHAT_PLANE message.appearance_flags = APPEARANCE_UI_IGNORE_ALPHA | KEEP_APART message.alpha = 0 message.pixel_y = owner.bound_height * 0.95 diff --git a/code/datums/components/field_of_vision.dm b/code/datums/components/field_of_vision.dm new file mode 100644 index 0000000000..b819604168 --- /dev/null +++ b/code/datums/components/field_of_vision.dm @@ -0,0 +1,354 @@ +#define CENTERED_RENDER_SOURCE(img, atom, FoV) \ + atom.render_target = atom.render_target || ref(atom);\ + img.render_source = atom.render_target;\ + if(atom.icon){\ + var/_cached_sizes = FoV.width_n_height_offsets[atom.icon];\ + if(!_cached_sizes){\ + var/icon/_I = icon(atom.icon);\ + var/list/L = list();\ + L += (_I.Width() - world.icon_size)/2;\ + L += (_I.Height() - world.icon_size)/2;\ + _cached_sizes = FoV.width_n_height_offsets[atom.icon] = L\ + }\ + img.pixel_x = _cached_sizes[1];\ + img.pixel_y = _cached_sizes[2];\ + img.loc = atom\ + } + +#define REGISTER_NESTED_LOCS(source, list, comsig, proc) \ + for(var/k in get_nested_locs(source)){\ + var/atom/_A = k;\ + RegisterSignal(_A, comsig, proc);\ + list += _A\ + } + +#define UNREGISTER_NESTED_LOCS(list, comsig, index) \ + for(var/k in index to length(list)){\ + var/atom/_A = list[k];\ + UnregisterSignal(_A, comsig);\ + list -= _A\ + } + +/** + * Field of Vision component. Does totally what you probably think it does, + * ergo preventing players from seeing what's behind them. + */ +/datum/component/field_of_vision + can_transfer = TRUE + +/** + * That special invisible, almost neigh indestructible movable + * that holds both shadow cone mask and image and follows the player around. + */ + var/atom/movable/fov_holder/fov + ///The current screen size this field of vision is meant to fit for. + var/current_fov_size = list(15, 15) + ///How much is the cone rotated clockwise, purely backend. Please use rotate_shadow_cone() if you must. + var/angle = 0 + /// Used to scale the shadow cone when rotating it to fit over the edges of the screen. + var/rot_scale = 1 + /// The inner angle of this cone, right hardset to 90, 180, or 270 degrees, until someone figures out a way to make it dynamic. + var/shadow_angle = FOV_90_DEGREES + /// The mask portion of the cone, placed on a * render target plane so while not visible it still applies the filter. + var/image/shadow_mask + /// The visual portion of the cone, placed on the highest layer of the wall plane + var/image/visual_shadow +/** + * An image whose render_source is kept up to date to prevent the mob (or the topmost movable holding it) from being hidden by the mask. + * Will make it use vis_contents instead once a few byonds bugs with images and vis contents are fixed. + */ + var/image/owner_mask +/** + * A circle image used to somewhat uncover the adjacent portion of the shadow cone, making mobs and objects behind us somewhat visible. + * The owner mask is still required for those mob going over the default 32x32 px size btw. + */ + var/image/adj_mask + /// A list of nested locations the mob is in, to ensure the above image works correctly. + var/list/nested_locs = list() +/** + * A static list of offsets based on icon width and height, because render sources are centered unlike most other visuals, + * and that gives us some problems when the icon is larger or smaller than world.icon_size + */ + var/static/list/width_n_height_offsets = list() + +/datum/component/field_of_vision/Initialize(fov_type = FOV_90_DEGREES, _angle = 0) + if(!ismob(parent)) + return COMPONENT_INCOMPATIBLE + angle = _angle + shadow_angle = fov_type + +/datum/component/field_of_vision/RegisterWithParent() + . = ..() + var/mob/M = parent + if(M.client) + generate_fov_holder(M, angle) + RegisterSignal(M, COMSIG_MOB_CLIENT_LOGIN, .proc/on_mob_login) + RegisterSignal(M, COMSIG_MOB_CLIENT_LOGOUT, .proc/on_mob_logout) + RegisterSignal(M, COMSIG_MOB_GET_VISIBLE_MESSAGE, .proc/on_visible_message) + RegisterSignal(M, COMSIG_MOB_EXAMINATE, .proc/on_examinate) + RegisterSignal(M, COMSIG_MOB_VISIBLE_ATOMS, .proc/on_visible_atoms) + RegisterSignal(M, COMSIG_MOB_CLIENT_CHANGE_VIEW, .proc/on_change_view) + RegisterSignal(M, COMSIG_MOB_RESET_PERSPECTIVE, .proc/on_reset_perspective) + RegisterSignal(M, COMSIG_MOB_IS_VIEWER, .proc/is_viewer) + +/datum/component/field_of_vision/UnregisterFromParent() + . = ..() + var/mob/M = parent + if(!QDELETED(fov)) + if(M.client) + UnregisterSignal(M, list(COMSIG_ATOM_DIR_CHANGE, COMSIG_MOVABLE_MOVED, COMSIG_MOB_DEATH, COMSIG_LIVING_REVIVE)) + M.client.images -= owner_mask + M.client.images -= shadow_mask + M.client.images -= visual_shadow + M.client.images -= adj_mask + qdel(fov, TRUE) // Forced. + fov = null + QDEL_NULL(owner_mask) + QDEL_NULL(adj_mask) + if(length(nested_locs)) + UNREGISTER_NESTED_LOCS(nested_locs, COMSIG_MOVABLE_MOVED, 1) + UnregisterSignal(M, list(COMSIG_MOB_CLIENT_LOGIN, COMSIG_MOB_CLIENT_LOGOUT, + COMSIG_MOB_GET_VISIBLE_MESSAGE, COMSIG_MOB_EXAMINATE, + COMSIG_MOB_VISIBLE_ATOMS, COMSIG_MOB_RESET_PERSPECTIVE, + COMSIG_MOB_CLIENT_CHANGE_VIEW, COMSIG_MOB_IS_VIEWER)) + +/** + * Generates the holder and images (if not generated yet) and adds them to client.images. + * Run when the component is registered to a player mob, or upon login. + */ +/datum/component/field_of_vision/proc/generate_fov_holder(mob/M, _angle = 0) + if(QDELETED(fov)) + fov = new(get_turf(M)) + fov.icon_state = "[shadow_angle]" + fov.dir = M.dir + shadow_mask = image('icons/misc/field_of_vision.dmi', fov, "[shadow_angle]", FIELD_OF_VISION_LAYER) + shadow_mask.plane = FIELD_OF_VISION_PLANE + visual_shadow = image('icons/misc/field_of_vision.dmi', fov, "[shadow_angle]_v", FIELD_OF_VISION_LAYER) + visual_shadow.plane = FIELD_OF_VISION_VISUAL_PLANE + owner_mask = new + owner_mask.appearance_flags = RESET_TRANSFORM + owner_mask.plane = FIELD_OF_VISION_BLOCKER_PLANE + adj_mask = image('icons/misc/field_of_vision.dmi', fov, "adj_mask", FIELD_OF_VISION_LAYER) + adj_mask.appearance_flags = RESET_TRANSFORM + adj_mask.plane = FIELD_OF_VISION_BLOCKER_PLANE + if(_angle) + rotate_shadow_cone(_angle) + fov.alpha = M.stat == DEAD ? 0 : 255 + RegisterSignal(M, COMSIG_MOB_DEATH, .proc/hide_fov) + RegisterSignal(M, COMSIG_LIVING_REVIVE, .proc/show_fov) + RegisterSignal(M, COMSIG_ATOM_DIR_CHANGE, .proc/on_dir_change) + RegisterSignal(M, COMSIG_MOVABLE_MOVED, .proc/on_mob_moved) + RegisterSignal(M, COMSIG_ROBOT_UPDATE_ICONS, .proc/manual_centered_render_source) + var/atom/A = M + if(M.loc && !isturf(M.loc)) + REGISTER_NESTED_LOCS(M, nested_locs, COMSIG_MOVABLE_MOVED, .proc/on_loc_moved) + A = nested_locs[nested_locs.len] + CENTERED_RENDER_SOURCE(owner_mask, A, src) + M.client.images += shadow_mask + M.client.images += visual_shadow + M.client.images += owner_mask + M.client.images += adj_mask + if(M.client.view != "[current_fov_size[1]]x[current_fov_size[2]]") + resize_fov(current_fov_size, getviewsize(M.client.view)) + +///Rotates the shadow cone to a certain degree. Backend shenanigans. +/datum/component/field_of_vision/proc/rotate_shadow_cone(new_angle) + var/simple_degrees = SIMPLIFY_DEGREES(new_angle - angle) + var/to_scale = cos(simple_degrees) * sin(simple_degrees) + if(to_scale) + var/old_rot_scale = rot_scale + rot_scale = 1 + to_scale + if(old_rot_scale != rot_scale) + visual_shadow.transform = shadow_mask.transform = shadow_mask.transform.Scale(rot_scale/old_rot_scale) + visual_shadow.transform = shadow_mask.transform = shadow_mask.transform.Turn(fov.transform, simple_degrees) + +/** + * Resizes the shadow to match the current screen size. + * Run when the client view size is changed, or if the player has a viewsize different than "15x15" on login/comp registration. + */ +/datum/component/field_of_vision/proc/resize_fov(list/old_view, list/view) + current_fov_size = view + var/old_size = max(old_view[1], old_view[2]) + var/new_size = max(view[1], view[2]) + if(old_size == new_size) //longest edges are still of the same length. + return + visual_shadow.transform = shadow_mask.transform = shadow_mask.transform.Scale(new_size/old_size) + +/datum/component/field_of_vision/proc/on_mob_login(mob/source, client/client) + generate_fov_holder(source, angle) + +/datum/component/field_of_vision/proc/on_mob_logout(mob/source, client/client) + UnregisterSignal(source, list(COMSIG_ATOM_DIR_CHANGE, COMSIG_MOVABLE_MOVED, COMSIG_MOB_DEATH, + COMSIG_LIVING_REVIVE, COMSIG_ROBOT_UPDATE_ICONS)) + if(length(nested_locs)) + UNREGISTER_NESTED_LOCS(nested_locs, COMSIG_MOVABLE_MOVED, 1) + +/datum/component/field_of_vision/proc/on_dir_change(mob/source, old_dir, new_dir) + fov.dir = new_dir + +///Hides the shadow, other visibility comsig procs will take it into account. Called when the mob dies. +/datum/component/field_of_vision/proc/hide_fov(mob/source) + fov.alpha = 0 + +/// Shows the shadow. Called when the mob is revived. +/datum/component/field_of_vision/proc/show_fov(mob/source) + fov.alpha = 255 + +/// Hides the shadow when looking through other items, shows it otherwise. +/datum/component/field_of_vision/proc/on_reset_perspective(mob/source, atom/target) + if(source.client.eye == source || source.client.eye == source.loc) + fov.alpha = 255 + else + fov.alpha = 0 + +/// Called when the client view size is changed. +/datum/component/field_of_vision/proc/on_change_view(mob/source, client, list/old_view, list/view) + resize_fov(old_view, view) + +/** + * Called when the owner mob moves around. Used to keep shadow located right behind us, + * As well as modify the owner mask to match the topmost item. + */ +/datum/component/field_of_vision/proc/on_mob_moved(mob/source, atom/oldloc, dir, forced) + var/turf/T + if(!isturf(source.loc)) //Recalculate all nested locations. + UNREGISTER_NESTED_LOCS( nested_locs, COMSIG_MOVABLE_MOVED, 1) + REGISTER_NESTED_LOCS(source, nested_locs, COMSIG_MOVABLE_MOVED, .proc/on_loc_moved) + var/atom/movable/topmost = nested_locs[nested_locs.len] + T = topmost.loc + CENTERED_RENDER_SOURCE(owner_mask, topmost, src) + else + T = source.loc + if(length(nested_locs)) + UNREGISTER_NESTED_LOCS(nested_locs, COMSIG_MOVABLE_MOVED, 1) + CENTERED_RENDER_SOURCE(owner_mask, source, src) + if(T) + fov.forceMove(T, harderforce = TRUE) + +/// Pretty much like the above, but meant for other movables the mob is stored in (bodybags, boxes, mechs etc). +/datum/component/field_of_vision/proc/on_loc_moved(atom/movable/source, atom/oldloc, dir, forced) + if(isturf(source.loc) && isturf(oldloc)) //This is the case of the topmost movable loc moving around the world, skip. + fov.forceMove(source.loc, harderforce = TRUE) + return + var/atom/movable/prev_topmost = nested_locs[nested_locs.len] + if(prev_topmost != source) + UNREGISTER_NESTED_LOCS(nested_locs, COMSIG_MOVABLE_MOVED, nested_locs.Find(source) + 1) + REGISTER_NESTED_LOCS(source, nested_locs, COMSIG_MOVABLE_MOVED, .proc/on_loc_moved) + var/atom/movable/topmost = nested_locs[nested_locs.len] + if(topmost != prev_topmost) + CENTERED_RENDER_SOURCE(owner_mask, topmost, src) + if(topmost.loc) + fov.forceMove(topmost.loc, harderforce = TRUE) + +/// A hacky comsig proc for things that somehow decide to change icon on the go. may make a change_icon_file() proc later but... +/datum/component/field_of_vision/proc/manual_centered_render_source(mob/source, old_icon) + if(!isturf(source.loc)) + return + CENTERED_RENDER_SOURCE(owner_mask, source, src) + +#undef CENTERED_RENDER_SOURCE +#undef REGISTER_NESTED_LOCS +#undef UNREGISTER_NESTED_LOCS + +/** + * Byond doc is not entirely correct on the integrated arctan() proc. + * When both x and y are negative, the output is also negative, cycling clockwise instead of counter-clockwise. + * That's also why I am extensively using the SIMPLIFY_DEGREES macro here. + * + * Overall this is the main macro that calculates wheter a target is within the shadow cone angle or not. + */ +#define FOV_ANGLE_CHECK(mob, target, zero_x_y_statement, success_statement) \ + var/turf/T1 = get_turf(target);\ + var/turf/T2 = get_turf(mob);\ + if(!T1 || !T2){\ + zero_x_y_statement\ + }\ + var/_x = (T1.x - T2.x);\ + var/_y = (T1.y - T2.y);\ + if(ISINRANGE(_x, -1, 1) && ISINRANGE(_y, -1, 1)){\ + zero_x_y_statement\ + }\ + var/dir = (mob.dir & (EAST|WEST)) || mob.dir;\ + var/_degree = -angle;\ + var/_half = shadow_angle/2;\ + switch(dir){\ + if(EAST){\ + _degree += 180;\ + }\ + if(NORTH){\ + _degree += 270;\ + }\ + if(SOUTH){\ + _degree += 90;\ + }\ + }\ + var/_min = SIMPLIFY_DEGREES(_degree - _half);\ + var/_max = SIMPLIFY_DEGREES(_degree + _half);\ + if((_min > _max) ? !ISINRANGE(SIMPLIFY_DEGREES(arctan(_x, _y)), _max, _min) : ISINRANGE(SIMPLIFY_DEGREES(arctan(_x, _y)), _min, _max)){\ + success_statement;\ + } + +/datum/component/field_of_vision/proc/on_examinate(mob/source, atom/target) + if(fov.alpha) + FOV_ANGLE_CHECK(source, target, return, return COMPONENT_DENY_EXAMINATE|COMPONENT_EXAMINATE_BLIND) + +/datum/component/field_of_vision/proc/on_visible_message(mob/source, atom/target, message, range, list/ignored_mobs) + if(fov.alpha) + FOV_ANGLE_CHECK(source, target, return, return COMPONENT_NO_VISIBLE_MESSAGE) + +/datum/component/field_of_vision/proc/on_visible_atoms(mob/source, list/atoms) + if(!fov.alpha) + return + for(var/k in atoms) + var/atom/A = k + FOV_ANGLE_CHECK(source, A, continue, atoms -= A) + +/datum/component/field_of_vision/proc/is_viewer(mob/source, atom/center, depth, list/viewers_list) + if(fov.alpha) + FOV_ANGLE_CHECK(source, center, return, viewers_list -= source) + +#undef FOV_ANGLE_CHECK + +/** + * The shadow cone's mask and visual images holder which can't locate inside the mob, + * lest they inherit the mob opacity and cause a lot of hindrance + */ +/atom/movable/fov_holder + name = "field of vision holder" + pixel_x = -224 //the image is about 480x480 px, ergo 15 tiles (480/32) big, and we gotta center it. + pixel_y = -224 + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + plane = FIELD_OF_VISION_PLANE + anchored = TRUE + +/atom/movable/fov_holder/ConveyorMove() + return + +/atom/movable/fov_holder/has_gravity(turf/T) + return FALSE + +/atom/movable/fov_holder/ex_act(severity) + return FALSE + +/atom/movable/fov_holder/singularity_act() + return + +/atom/movable/fov_holder/singularity_pull() + return + +/atom/movable/fov_holder/blob_act() + return + +/atom/movable/fov_holder/onTransitZ() + return + +/// Prevents people from moving these after creation, because they shouldn't be. +/atom/movable/fov_holder/forceMove(atom/destination, no_tp=FALSE, harderforce = FALSE) + if(harderforce) + return ..() + +/// Last but not least, these shouldn't be deleted by anything but the component itself +/atom/movable/fov_holder/Destroy(force = FALSE) + if(!force) + return QDEL_HINT_LETMELIVE + return ..() diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm index 2e4a3db1a0..68ba0e4272 100644 --- a/code/datums/components/storage/storage.dm +++ b/code/datums/components/storage/storage.dm @@ -571,10 +571,9 @@ return if(rustle_sound) playsound(parent, "rustle", 50, 1, -5) - for(var/mob/viewing in viewers(user, null)) - if(M == viewing) - to_chat(usr, "You put [I] [insert_preposition]to [parent].") - else if(in_range(M, viewing)) //If someone is standing close enough, they can tell what it is... + to_chat(user, "You put [I] [insert_preposition]to [parent].") + for(var/mob/viewing in get_actual_viewers(world.view, user)-M) + if(in_range(M, viewing)) //If someone is standing close enough, they can tell what it is... viewing.show_message("[M] puts [I] [insert_preposition]to [parent].", MSG_VISUAL) else if(I && I.w_class >= 3) //Otherwise they can only see large or normal items from a distance... viewing.show_message("[M] puts [I] [insert_preposition]to [parent].", MSG_VISUAL) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 98027acc61..a63f63f4a4 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -927,14 +927,14 @@ Proc for attack log creation, because really why not target.log_message(reverse_message, LOG_ATTACK, color="orange", log_globally=FALSE) // Filter stuff -/atom/movable/proc/add_filter(name,priority,list/params) +/atom/proc/add_filter(name,priority,list/params) LAZYINITLIST(filter_data) var/list/p = params.Copy() p["priority"] = priority filter_data[name] = p update_filters() -/atom/movable/proc/update_filters() +/atom/proc/update_filters() filters = null filter_data = sortTim(filter_data, /proc/cmp_filter_data_priority, TRUE) for(var/f in filter_data) @@ -943,11 +943,11 @@ Proc for attack log creation, because really why not arguments -= "priority" filters += filter(arglist(arguments)) -/atom/movable/proc/get_filter(name) +/atom/proc/get_filter(name) if(filter_data && filter_data[name]) return filters[filter_data.Find(name)] -/atom/movable/proc/remove_filter(name) +/atom/proc/remove_filter(name) if(filter_data && filter_data[name]) filter_data -= name update_filters() diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index d817ca43f5..206864d44c 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -179,14 +179,15 @@ return TRUE /atom/movable/proc/stop_pulling() - if(pulling) - pulling.pulledby = null - var/mob/living/ex_pulled = pulling - pulling = null - setGrabState(0) - if(isliving(ex_pulled)) - var/mob/living/L = ex_pulled - L.update_mobility()// mob gets up if it was lyng down in a chokehold + if(!pulling) + return + pulling.pulledby = null + var/mob/living/ex_pulled = pulling + pulling = null + setGrabState(0) + if(isliving(ex_pulled)) + var/mob/living/L = ex_pulled + L.update_mobility()// mob gets up if it was lyng down in a chokehold /atom/movable/proc/Move_Pulled(atom/A) if(!pulling) diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index 3f2edd7174..0416813f4f 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -37,6 +37,11 @@ reset_chem_buttons() RefreshParts() add_inital_chems() + new_occupant_dir = dir + +/obj/machinery/sleeper/setDir(newdir) + . = ..() + new_occupant_dir = dir /obj/machinery/sleeper/on_deconstruction() var/obj/item/reagent_containers/sleeper_buffer/buffer = new (loc) diff --git a/code/game/machinery/_machinery.dm b/code/game/machinery/_machinery.dm index 93121a0753..470c26ed0f 100644 --- a/code/game/machinery/_machinery.dm +++ b/code/game/machinery/_machinery.dm @@ -110,7 +110,8 @@ Class Procs: var/state_open = FALSE var/critical_machine = FALSE //If this machine is critical to station operation and should have the area be excempted from power failures. var/list/occupant_typecache //if set, turned into typecache in Initialize, other wise, defaults to mob/living typecache - var/atom/movable/occupant = null + var/atom/movable/occupant + var/new_occupant_dir = SOUTH //The direction the occupant will be set to look at when entering the machine. var/speed_process = FALSE // Process as fast as possible? var/obj/item/circuitboard/circuit // Circuit to be created and inserted when the machinery is created // For storing and overriding ui id and dimensions @@ -217,6 +218,7 @@ Class Procs: if(target && !target.has_buckled_mobs() && (!isliving(target) || !mobtarget.buckled)) occupant = target target.forceMove(src) + target.setDir(new_occupant_dir) updateUsrDialog() update_icon() diff --git a/code/game/machinery/buttons.dm b/code/game/machinery/buttons.dm index 8bf81b6061..8819020e3a 100644 --- a/code/game/machinery/buttons.dm +++ b/code/game/machinery/buttons.dm @@ -3,6 +3,7 @@ desc = "A remote control switch." icon = 'icons/obj/stationobjs.dmi' icon_state = "doorctrl" + plane = ABOVE_WALL_PLANE var/skin = "doorctrl" power_channel = ENVIRON var/obj/item/assembly/device diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index eb7f194229..967ee02f82 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -169,6 +169,7 @@ desc = "Used for watching an empty arena." icon = 'icons/obj/stationobjs.dmi' icon_state = "telescreen" + plane = ABOVE_WALL_PLANE network = list("thunder") density = FALSE circuit = null diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 3bc8aff809..4c12809184 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -470,15 +470,15 @@ if(welded) weld_overlay = get_airlock_overlay("welded", overlays_file) if(obj_integrity < integrity_failure * max_integrity) - damag_overlay = get_airlock_overlay("sparks_broken", overlays_file, ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE) + damag_overlay = get_airlock_overlay("sparks_broken", overlays_file, EMISSIVE_UNBLOCKABLE_LAYER, EMISSIVE_UNBLOCKABLE_PLANE) else if(obj_integrity < (0.75 * max_integrity)) - damag_overlay = get_airlock_overlay("sparks_damaged", overlays_file, ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE) + damag_overlay = get_airlock_overlay("sparks_damaged", overlays_file, EMISSIVE_UNBLOCKABLE_LAYER, EMISSIVE_UNBLOCKABLE_PLANE) if(lights && hasPower()) if(locked) - lights_overlay = get_airlock_overlay("lights_bolts", overlays_file, ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE) + lights_overlay = get_airlock_overlay("lights_bolts", overlays_file, EMISSIVE_UNBLOCKABLE_LAYER, EMISSIVE_UNBLOCKABLE_PLANE) else if(emergency) - lights_overlay = get_airlock_overlay("lights_emergency", overlays_file, ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE) + lights_overlay = get_airlock_overlay("lights_emergency", overlays_file, EMISSIVE_UNBLOCKABLE_LAYER, EMISSIVE_UNBLOCKABLE_PLANE) if(note) note_overlay = get_airlock_overlay(notetype, note_overlay_file) @@ -496,18 +496,18 @@ else panel_overlay = get_airlock_overlay("panel_closed", overlays_file) if(obj_integrity < integrity_failure * max_integrity) - damag_overlay = get_airlock_overlay("sparks_broken", overlays_file, ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE) + damag_overlay = get_airlock_overlay("sparks_broken", overlays_file, EMISSIVE_UNBLOCKABLE_LAYER, EMISSIVE_UNBLOCKABLE_PLANE) else if(obj_integrity < (0.75 * max_integrity)) - damag_overlay = get_airlock_overlay("sparks_damaged", overlays_file, ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE) + damag_overlay = get_airlock_overlay("sparks_damaged", overlays_file, EMISSIVE_UNBLOCKABLE_LAYER, EMISSIVE_UNBLOCKABLE_PLANE) if(welded) weld_overlay = get_airlock_overlay("welded", overlays_file) - lights_overlay = get_airlock_overlay("lights_denied", overlays_file, ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE) + lights_overlay = get_airlock_overlay("lights_denied", overlays_file, EMISSIVE_UNBLOCKABLE_LAYER, EMISSIVE_UNBLOCKABLE_PLANE) if(note) note_overlay = get_airlock_overlay(notetype, note_overlay_file) if(AIRLOCK_EMAG) frame_overlay = get_airlock_overlay("closed", icon) - sparks_overlay = get_airlock_overlay("sparks", overlays_file, ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE) + sparks_overlay = get_airlock_overlay("sparks", overlays_file, EMISSIVE_UNBLOCKABLE_LAYER, EMISSIVE_UNBLOCKABLE_PLANE) if(airlock_material) filling_overlay = get_airlock_overlay("[airlock_material]_closed", overlays_file) else @@ -518,9 +518,9 @@ else panel_overlay = get_airlock_overlay("panel_closed", overlays_file) if(obj_integrity < integrity_failure * max_integrity) - damag_overlay = get_airlock_overlay("sparks_broken", overlays_file, ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE) + damag_overlay = get_airlock_overlay("sparks_broken", overlays_file, EMISSIVE_UNBLOCKABLE_LAYER, EMISSIVE_UNBLOCKABLE_PLANE) else if(obj_integrity < (0.75 * max_integrity)) - damag_overlay = get_airlock_overlay("sparks_damaged", overlays_file, ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE) + damag_overlay = get_airlock_overlay("sparks_damaged", overlays_file, EMISSIVE_UNBLOCKABLE_LAYER, EMISSIVE_UNBLOCKABLE_PLANE) if(welded) weld_overlay = get_airlock_overlay("welded", overlays_file) if(note) @@ -533,7 +533,7 @@ else filling_overlay = get_airlock_overlay("fill_closing", icon) if(lights && hasPower()) - lights_overlay = get_airlock_overlay("lights_closing", overlays_file, ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE) + lights_overlay = get_airlock_overlay("lights_closing", overlays_file, EMISSIVE_UNBLOCKABLE_LAYER, EMISSIVE_UNBLOCKABLE_PLANE) if(panel_open) if(security_level) panel_overlay = get_airlock_overlay("panel_closing_protected", overlays_file) @@ -554,7 +554,7 @@ else panel_overlay = get_airlock_overlay("panel_open", overlays_file) if(obj_integrity < (0.75 * max_integrity)) - damag_overlay = get_airlock_overlay("sparks_open", overlays_file, ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE) + damag_overlay = get_airlock_overlay("sparks_open", overlays_file, EMISSIVE_UNBLOCKABLE_LAYER, EMISSIVE_UNBLOCKABLE_PLANE) if(note) note_overlay = get_airlock_overlay("[notetype]_open", note_overlay_file) @@ -565,7 +565,7 @@ else filling_overlay = get_airlock_overlay("fill_opening", icon) if(lights && hasPower()) - lights_overlay = get_airlock_overlay("lights_opening", overlays_file, ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE) + lights_overlay = get_airlock_overlay("lights_opening", overlays_file, EMISSIVE_UNBLOCKABLE_LAYER, EMISSIVE_UNBLOCKABLE_PLANE) if(panel_open) if(security_level) panel_overlay = get_airlock_overlay("panel_opening_protected", overlays_file) diff --git a/code/game/machinery/doors/brigdoors.dm b/code/game/machinery/doors/brigdoors.dm index cd22b2dc05..1d39372dec 100644 --- a/code/game/machinery/doors/brigdoors.dm +++ b/code/game/machinery/doors/brigdoors.dm @@ -21,6 +21,7 @@ icon = 'icons/obj/status_display.dmi' icon_state = "frame" desc = "A remote control for a door." + plane = ABOVE_WALL_PLANE req_access = list(ACCESS_SECURITY) density = FALSE var/id // id of linked machinery/lockers diff --git a/code/game/machinery/embedded_controller/simple_vent_controller.dm b/code/game/machinery/embedded_controller/simple_vent_controller.dm index 6c8467dbd3..6416de70f1 100644 --- a/code/game/machinery/embedded_controller/simple_vent_controller.dm +++ b/code/game/machinery/embedded_controller/simple_vent_controller.dm @@ -34,7 +34,7 @@ /obj/machinery/embedded_controller/radio/simple_vent_controller icon = 'icons/obj/airlock_machines.dmi' icon_state = "airlock_control_standby" - + plane = ABOVE_WALL_PLANE name = "vent controller" density = FALSE diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm index 6501a5b45e..8869ea396e 100644 --- a/code/game/machinery/firealarm.dm +++ b/code/game/machinery/firealarm.dm @@ -17,6 +17,7 @@ desc = "\"Pull this in case of emergency\". Thus, keep pulling it forever." icon = 'icons/obj/monitors.dmi' icon_state = "fire0" + plane = ABOVE_WALL_PLANE max_integrity = 250 integrity_failure = 0.4 armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 90, "acid" = 30) diff --git a/code/game/machinery/flasher.dm b/code/game/machinery/flasher.dm index 7bef255aff..f4f1aa0637 100644 --- a/code/game/machinery/flasher.dm +++ b/code/game/machinery/flasher.dm @@ -5,6 +5,7 @@ desc = "A wall-mounted flashbulb device." icon = 'icons/obj/stationobjs.dmi' icon_state = "mflash1" + plane = ABOVE_WALL_PLANE max_integrity = 250 integrity_failure = 0.4 light_color = LIGHT_COLOR_WHITE @@ -20,6 +21,7 @@ name = "portable flasher" desc = "A portable flashing device. Wrench to activate and deactivate. Cannot detect slow movements." icon_state = "pflash1-p" + plane = GAME_PLANE strength = 80 anchored = FALSE base_state = "pflash" diff --git a/code/game/machinery/harvester.dm b/code/game/machinery/harvester.dm index 244c300905..141f261688 100644 --- a/code/game/machinery/harvester.dm +++ b/code/game/machinery/harvester.dm @@ -20,6 +20,11 @@ . = ..() if(prob(1)) name = "auto-autopsy" + new_occupant_dir = dir + +/obj/machinery/harvester/setDir(newdir) + . = ..() + new_occupant_dir = dir /obj/machinery/harvester/RefreshParts() interval = 0 diff --git a/code/game/machinery/lightswitch.dm b/code/game/machinery/lightswitch.dm index b2a35dcf41..421e3433ca 100644 --- a/code/game/machinery/lightswitch.dm +++ b/code/game/machinery/lightswitch.dm @@ -5,6 +5,7 @@ name = "light switch" icon = 'icons/obj/power.dmi' icon_state = "light1" + plane = ABOVE_WALL_PLANE desc = "Make dark." var/on = TRUE var/area/area = null diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm index 000585a4be..d55faf2343 100644 --- a/code/game/machinery/requests_console.dm +++ b/code/game/machinery/requests_console.dm @@ -16,6 +16,7 @@ GLOBAL_LIST_EMPTY(allConsoles) desc = "A console intended to send requests to different departments on the station." icon = 'icons/obj/terminals.dmi' icon_state = "req_comp0" + plane = ABOVE_WALL_PLANE var/department = "Unknown" //The list of all departments on the station (Determined from this variable on each unit) Set this to the same thing if you want several consoles in one department var/list/messages = list() //List of all messages var/departmentType = 0 diff --git a/code/game/machinery/status_display.dm b/code/game/machinery/status_display.dm index 746c17f225..02bb07b8ed 100644 --- a/code/game/machinery/status_display.dm +++ b/code/game/machinery/status_display.dm @@ -21,6 +21,7 @@ desc = null icon = 'icons/obj/status_display.dmi' icon_state = "frame" + plane = ABOVE_WALL_PLANE density = FALSE use_power = IDLE_POWER_USE idle_power_usage = 10 diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 02115d3e30..32be825489 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -23,11 +23,11 @@ layer = BELOW_MOB_LAYER//icon draw layer infra_luminosity = 15 //byond implementation is bugged. force = 5 - flags_1 = HEAR_1 + flags_1 = HEAR_1|BLOCK_FACE_ATOM_1 var/can_move = 0 //time of next allowed movement - var/mob/living/carbon/occupant = null + var/mob/living/occupant = null var/step_in = 10 //make a step in step_in/10 sec. - var/dir_in = 2//What direction will the mech face when entered/powered on? Defaults to South. + var/dir_in = SOUTH //What direction will the mech face when entered/powered on? Defaults to South. var/normal_step_energy_drain = 10 //How much energy the mech will consume each time it moves. This variable is a backup for when leg actuators affect the energy drain. var/step_energy_drain = 10 var/melee_energy_drain = 15 @@ -495,6 +495,10 @@ occupant_message("Air port connection teared off!") mecha_log_message("Lost connection to gas port.") +/obj/mecha/setDir(newdir) + . = ..() + occupant?.setDir(newdir) + /obj/mecha/Process_Spacemove(var/movement_dir = 0) . = ..() if(.) diff --git a/code/game/mecha/mecha_topic.dm b/code/game/mecha/mecha_topic.dm index 8d6328cf08..b1ab944b49 100644 --- a/code/game/mecha/mecha_topic.dm +++ b/code/game/mecha/mecha_topic.dm @@ -333,10 +333,13 @@ send_byjax(occupant,"exosuit.browser","t_port_connection","[internal_tank.connected_port?"Disconnect from":"Connect to"] gas port") if(href_list["dna_lock"]) - if(occupant && !iscarbon(occupant)) - to_chat(occupant, " You do not have any DNA!") + if(!occupant) return - dna_lock = occupant.dna.unique_enzymes + var/mob/living/carbon/C = occupant + if(!istype(C) || !C.dna) + to_chat(C, " You do not have any DNA!") + return + dna_lock = C.dna.unique_enzymes occupant_message("You feel a prick as the needle takes your DNA sample.") if(href_list["reset_dna"]) diff --git a/code/game/objects/effects/contraband.dm b/code/game/objects/effects/contraband.dm index 6b61eb2ebd..69aa3fb654 100644 --- a/code/game/objects/effects/contraband.dm +++ b/code/game/objects/effects/contraband.dm @@ -49,6 +49,7 @@ var/original_name desc = "A large piece of space-resistant printed paper." icon = 'icons/obj/contraband.dmi' + plane = ABOVE_WALL_PLANE anchored = TRUE var/ruined = FALSE var/random_basetype diff --git a/code/game/objects/items/RCD.dm b/code/game/objects/items/RCD.dm index 7f6e561f55..0676c439f0 100644 --- a/code/game/objects/items/RCD.dm +++ b/code/game/objects/items/RCD.dm @@ -143,8 +143,8 @@ RLD //if user can't be seen from A (only checks surroundings' opaqueness) and can't see A. //jarring, but it should stop people from targetting atoms they can't see... //excluding darkness, to allow RLD to be used to light pitch black dark areas. - if(!((user in view(view_range, A)) || (user in viewers(view_range, A)))) - to_chat(user, "You focus, pointing \the [src] at whatever outside your field of vision in the given direction... to no avail.") + if(!((user in view(view_range, A)) || (user in get_actual_viewers(view_range, A)))) + to_chat(user, "You focus, pointing \the [src] at whatever outside your field of vision in that direction... to no avail.") return FALSE return TRUE diff --git a/code/game/objects/items/devices/laserpointer.dm b/code/game/objects/items/devices/laserpointer.dm index 9c94348fc2..1d2a2c9ad1 100644 --- a/code/game/objects/items/devices/laserpointer.dm +++ b/code/game/objects/items/devices/laserpointer.dm @@ -135,7 +135,8 @@ outmsg = "You miss the lens of [C] with [src]!" //catpeople - for(var/mob/living/carbon/human/H in view(1,targloc)) + var/list/viewers = get_actual_viewers(1,targloc) + for(var/mob/living/carbon/human/H in viewers) if(!iscatperson(H) || H.incapacitated() || H.eye_blind ) continue if(!H.lying) @@ -150,7 +151,7 @@ H.visible_message("[H] stares at the light"," You stare at the light... ") //cats! - for(var/mob/living/simple_animal/pet/cat/C in view(1,targloc)) + for(var/mob/living/simple_animal/pet/cat/C in viewers) if(prob(50)) C.visible_message("[C] pounces on the light!","LIGHT!") C.Move(targloc) diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm index ada598866b..f4c317c8ba 100644 --- a/code/game/objects/items/devices/radio/intercom.dm +++ b/code/game/objects/items/devices/radio/intercom.dm @@ -2,6 +2,7 @@ name = "station intercom" desc = "Talk through this." icon_state = "intercom" + plane = ABOVE_WALL_PLANE anchored = TRUE w_class = WEIGHT_CLASS_BULKY canhear_range = 2 diff --git a/code/game/objects/items/flamethrower.dm b/code/game/objects/items/flamethrower.dm index e2140bd0fd..c785c22813 100644 --- a/code/game/objects/items/flamethrower.dm +++ b/code/game/objects/items/flamethrower.dm @@ -196,9 +196,8 @@ sleep(1) previousturf = T operating = FALSE - for(var/mob/M in viewers(1, loc)) - if((M.client && M.machine == src)) - attack_self(M) + if(usr.machine == src) + attack_self(usr) /obj/item/flamethrower/proc/default_ignite(turf/target, release_amount = 0.05) diff --git a/code/game/objects/items/implants/implantpad.dm b/code/game/objects/items/implants/implantpad.dm index 7c863017a1..f0fc76a2e2 100644 --- a/code/game/objects/items/implants/implantpad.dm +++ b/code/game/objects/items/implants/implantpad.dm @@ -66,7 +66,7 @@ if(ismob(loc)) attack_self(loc) else - for(var/mob/M in viewers(1, src)) + for(var/mob/M in get_actual_viewers(1, src)) if(M.client) attack_self(M) add_fingerprint(usr) diff --git a/code/game/objects/items/storage/secure.dm b/code/game/objects/items/storage/secure.dm index e177a9f9fd..ef70bd201d 100644 --- a/code/game/objects/items/storage/secure.dm +++ b/code/game/objects/items/storage/secure.dm @@ -105,10 +105,7 @@ if (length(code) > 5) code = "ERROR" add_fingerprint(usr) - for(var/mob/M in viewers(1, loc)) - if ((M.client && M.machine == src)) - attack_self(M) - return + attack_self(usr) return @@ -158,6 +155,7 @@ /obj/item/storage/secure/safe name = "secure safe" icon = 'icons/obj/storage.dmi' + plane = ABOVE_WALL_PLANE icon_state = "safe" icon_opened = "safe0" icon_locking = "safeb" diff --git a/code/game/objects/items/teleportation.dm b/code/game/objects/items/teleportation.dm index b5edb27704..d3272616b3 100644 --- a/code/game/objects/items/teleportation.dm +++ b/code/game/objects/items/teleportation.dm @@ -104,7 +104,7 @@ if (ismob(src.loc)) attack_self(src.loc) else - for(var/mob/M in viewers(1, src)) + for(var/mob/M in get_actual_viewers(1, src)) if (M.client) src.attack_self(M) return diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 199f0c51e2..6916e7c24a 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -123,7 +123,7 @@ /obj/proc/updateUsrDialog() if((obj_flags & IN_USE) && !(obj_flags & USES_TGUI)) var/is_in_use = FALSE - var/list/nearby = viewers(1, src) + var/list/nearby = get_actual_viewers(1, src) for(var/mob/M in nearby) if ((M.client && M.machine == src)) is_in_use = TRUE @@ -152,7 +152,7 @@ if(obj_flags & IN_USE) var/is_in_use = FALSE if(update_viewers) - for(var/mob/M in viewers(1, src)) + for(var/mob/M in get_actual_viewers(1, src)) if ((M.client && M.machine == src)) is_in_use = TRUE src.interact(M) diff --git a/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm b/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm index ae2e1a070a..6256de247a 100644 --- a/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm +++ b/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm @@ -24,6 +24,7 @@ move_delay = TRUE var/oldloc = loc step(src, direction) + user.setDir(direction) if(oldloc != loc) addtimer(CALLBACK(src, .proc/ResetMoveDelay), (use_mob_movespeed ? user.movement_delay() : CONFIG_GET(number/movedelay/walk_delay)) * move_speed_multiplier) else @@ -42,7 +43,7 @@ Snake = L break if(Snake) - alerted = viewers(7,src) + alerted = get_actual_viewers(world.view,src) ..() if(LAZYLEN(alerted)) egged = world.time + SNAKE_SPAM_TICKS diff --git a/code/game/objects/structures/extinguisher.dm b/code/game/objects/structures/extinguisher.dm index 9b736517be..3bc84deb4d 100644 --- a/code/game/objects/structures/extinguisher.dm +++ b/code/game/objects/structures/extinguisher.dm @@ -3,6 +3,7 @@ desc = "A small wall mounted cabinet designed to hold a fire extinguisher." icon = 'icons/obj/wallmounts.dmi' icon_state = "extinguisher_closed" + plane = ABOVE_WALL_PLANE anchored = TRUE density = FALSE max_integrity = 200 diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm index e44698f96e..679a755321 100644 --- a/code/game/objects/structures/false_walls.dm +++ b/code/game/objects/structures/false_walls.dm @@ -7,6 +7,7 @@ anchored = TRUE icon = 'icons/turf/walls/wall.dmi' icon_state = "wall" + plane = WALL_PLANE layer = LOW_OBJ_LAYER density = TRUE opacity = 1 diff --git a/code/game/objects/structures/fireaxe.dm b/code/game/objects/structures/fireaxe.dm index 0f3a23dd0f..f4c1dd5ab9 100644 --- a/code/game/objects/structures/fireaxe.dm +++ b/code/game/objects/structures/fireaxe.dm @@ -3,6 +3,7 @@ desc = "There is a small label that reads \"For Emergency use only\" along with details for safe use of the axe. As if." icon = 'icons/obj/wallmounts.dmi' icon_state = "fireaxe" + plane = ABOVE_WALL_PLANE anchored = TRUE density = FALSE armor = list("melee" = 50, "bullet" = 20, "laser" = 0, "energy" = 100, "bomb" = 10, "bio" = 100, "rad" = 100, "fire" = 90, "acid" = 50) diff --git a/code/game/objects/structures/guillotine.dm b/code/game/objects/structures/guillotine.dm index 611a6d024d..b8137d1332 100644 --- a/code/game/objects/structures/guillotine.dm +++ b/code/game/objects/structures/guillotine.dm @@ -130,7 +130,7 @@ // The crowd is pleased // The delay is to making large crowds have a longer laster applause var/delay_offset = 0 - for(var/mob/M in viewers(src, 7)) + for(var/mob/M in get_actual_viewers(world.view, src)) var/mob/living/carbon/human/C = M if (ishuman(M)) addtimer(CALLBACK(C, /mob/.proc/emote, "clap"), delay_offset * 0.3) diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm index e32def727a..65e1b7dd9a 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -4,6 +4,7 @@ desc = "Mirror mirror on the wall, who's the most robust of them all?" icon = 'icons/obj/watercloset.dmi' icon_state = "mirror" + plane = ABOVE_WALL_PLANE density = FALSE anchored = TRUE max_integrity = 200 diff --git a/code/game/objects/structures/noticeboard.dm b/code/game/objects/structures/noticeboard.dm index f4bca1f900..68da53aa6c 100644 --- a/code/game/objects/structures/noticeboard.dm +++ b/code/game/objects/structures/noticeboard.dm @@ -3,6 +3,7 @@ desc = "A board for pinning important notices upon." icon = 'icons/obj/stationobjs.dmi' icon_state = "nboard00" + plane = ABOVE_WALL_PLANE density = FALSE anchored = TRUE max_integrity = 150 diff --git a/code/game/objects/structures/signs/_signs.dm b/code/game/objects/structures/signs/_signs.dm index 84add2f65f..a1de5fe6a3 100644 --- a/code/game/objects/structures/signs/_signs.dm +++ b/code/game/objects/structures/signs/_signs.dm @@ -3,6 +3,7 @@ anchored = TRUE opacity = 0 density = FALSE + plane = ABOVE_WALL_PLANE layer = SIGN_LAYER max_integrity = 100 armor = list("melee" = 50, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) diff --git a/code/game/turfs/closed.dm b/code/game/turfs/closed.dm index 99c7ed8231..c7aefbe0a6 100644 --- a/code/game/turfs/closed.dm +++ b/code/game/turfs/closed.dm @@ -1,5 +1,6 @@ /turf/closed layer = CLOSED_TURF_LAYER + plane = WALL_PLANE opacity = 1 density = TRUE blocks_air = 1 diff --git a/code/modules/VR/vr_sleeper.dm b/code/modules/VR/vr_sleeper.dm index e79784290b..26ae200990 100644 --- a/code/modules/VR/vr_sleeper.dm +++ b/code/modules/VR/vr_sleeper.dm @@ -22,6 +22,11 @@ sparks.set_up(2,0) sparks.attach(src) update_icon() + new_occupant_dir = dir + +/obj/machinery/vr_sleeper/setDir(newdir) + . = ..() + new_occupant_dir = dir /obj/machinery/vr_sleeper/attackby(obj/item/I, mob/user, params) if(!state_open && !occupant) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index e9b8c274a8..289abbe250 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -106,6 +106,7 @@ GLOBAL_LIST_INIT(admin_verbs_fun, list( /client/proc/show_tip, /client/proc/smite, /client/proc/admin_away, + /client/proc/cmd_admin_toggle_fov, /client/proc/roll_dices //CIT CHANGE - Adds dice verb )) GLOBAL_PROTECT(admin_verbs_fun) diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 5530225130..d335cfb171 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -1218,6 +1218,58 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Toggled Hub Visibility", "[GLOB.hub_visibility ? "Enabled" : "Disabled"]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! +/client/proc/cmd_admin_toggle_fov() + set category = "Fun" + set name = "Enable/Disable Field of Vision" + + var/static/busy_toggling_fov = FALSE + if(!check_rights(R_ADMIN) || !check_rights(R_FUN)) + return + + var/on_off = CONFIG_GET(flag/use_field_of_vision) + + if(busy_toggling_fov) + to_chat(usr, "A previous call of this function is still busy toggling FoV [on_off ? "on" : "off"]. Have some patiece.") + return + busy_toggling_fov = TRUE + + log_admin("[key_name(usr)] has [on_off ? "disabled" : "enabled"] the Field of Vision configuration.") + CONFIG_SET(flag/use_field_of_vision, !on_off) + + SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Toggled Field of Vision", "[on_off ? "Enabled" : "Disabled"]")) + + if(on_off) + for(var/k in GLOB.mob_list) + if(!k) + continue + var/mob/M = k + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(!(H.dna?.species.has_field_of_vision)) + continue + else if(!M.has_field_of_vision) + continue + var/datum/component/field_of_vision/FoV = M.GetComponent(/datum/component/field_of_vision) + if(FoV) + qdel(FoV) + CHECK_TICK + else + for(var/k in GLOB.clients) + if(!k) + continue + var/client/C = k + var/mob/M = C.mob + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(!(H.dna?.species.has_field_of_vision)) + continue + else if(!M.has_field_of_vision) + continue + M.LoadComponent(/datum/component/field_of_vision, M.field_of_vision_type) + CHECK_TICK + + busy_toggling_fov = FALSE + /client/proc/smite(mob/living/carbon/human/target as mob) set name = "Smite" set category = "Fun" diff --git a/code/modules/antagonists/bloodsucker/objects/bloodsucker_crypt.dm b/code/modules/antagonists/bloodsucker/objects/bloodsucker_crypt.dm index 7998a33c7b..b89b681539 100644 --- a/code/modules/antagonists/bloodsucker/objects/bloodsucker_crypt.dm +++ b/code/modules/antagonists/bloodsucker/objects/bloodsucker_crypt.dm @@ -328,8 +328,8 @@ // to_chat(user, "The ritual has been interrupted!") // useLock = FALSE // return - user.playsound_local(null, 'sound/effects/explosion_distant.ogg', 40, TRUE) - target.playsound_local(null, 'sound/effects/explosion_distant.ogg', 40, TRUE) + user.playsound_local(null, 'sound/effects/explosion_distant.ogg', 40, TRUE) + target.playsound_local(null, 'sound/effects/explosion_distant.ogg', 40, TRUE) target.playsound_local(null, 'sound/effects/singlebeat.ogg', 40, TRUE) target.Jitter(25) target.emote("laugh") @@ -490,13 +490,14 @@ update_icon() /obj/structure/bloodsucker/candelabrum/process() - if(lit) - for(var/mob/living/carbon/human/H in viewers(7, src)) - var/datum/antagonist/vassal/T = H.mind.has_antag_datum(ANTAG_DATUM_VASSAL) - if(AmBloodsucker(H) || T) //We dont want vassals or vampires affected by this - return - H.hallucination = 20 - SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "vampcandle", /datum/mood_event/vampcandle) + if(!lit) + return + for(var/mob/living/carbon/human/H in get_actual_viewers(7, src)) + var/datum/antagonist/vassal/T = H.mind.has_antag_datum(ANTAG_DATUM_VASSAL) + if(AmBloodsucker(H) || T) //We dont want vassals or vampires affected by this + return + H.hallucination = 20 + SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "vampcandle", /datum/mood_event/vampcandle) //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // OTHER THINGS TO USE: HUMAN BLOOD. /obj/effect/decal/cleanable/blood diff --git a/code/modules/antagonists/bloodsucker/powers/cloak.dm b/code/modules/antagonists/bloodsucker/powers/cloak.dm index 347700ca9a..f8f2bb4e34 100644 --- a/code/modules/antagonists/bloodsucker/powers/cloak.dm +++ b/code/modules/antagonists/bloodsucker/powers/cloak.dm @@ -19,10 +19,9 @@ if(!.) return // must have nobody around to see the cloak - for(var/mob/living/M in viewers(9, owner)) - if(M != owner) - to_chat(owner, "You may only vanish into the shadows unseen.") - return FALSE + for(var/mob/living/M in get_actual_viewers(9, owner) - owner) + to_chat(owner, "You may only vanish into the shadows unseen.") + return FALSE return TRUE /datum/action/bloodsucker/cloak/ActivatePower() @@ -35,7 +34,7 @@ // Pay Blood Toll (if awake) owner.alpha = max(35, owner.alpha - min(75, 10 + 5 * level_current)) bloodsuckerdatum.AddBloodVolume(-0.2) - + runintent = (user.m_intent == MOVE_INTENT_RUN) var/turf/T = get_turf(user) lum = T.get_lumcount() @@ -50,7 +49,7 @@ if(!runintent) user.toggle_move_intent() REMOVE_TRAIT(user, TRAIT_NORUNNING, "cloak of darkness") - + sleep(5) // Check every few ticks /datum/action/bloodsucker/cloak/ContinueActive(mob/living/user, mob/living/target) diff --git a/code/modules/antagonists/bloodsucker/powers/feed.dm b/code/modules/antagonists/bloodsucker/powers/feed.dm index 8ac4fcebc1..da53b5cc81 100644 --- a/code/modules/antagonists/bloodsucker/powers/feed.dm +++ b/code/modules/antagonists/bloodsucker/powers/feed.dm @@ -169,8 +169,8 @@ vision_distance = notice_range, ignored_mobs = target) // Only people who AREN'T the target will notice this action. // Warn Feeder about Witnesses... var/was_unnoticed = TRUE - for(var/mob/living/M in viewers(notice_range, owner)) - if(M != owner && M != target && iscarbon(M) && M.mind && !M.silicon_privileges && !M.eye_blind && !M.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER)) + for(var/mob/living/M in get_actual_viewers(notice_range, owner) - owner - target) + if(M.client && !M.silicon_privileges && !M.eye_blind && !M.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER)) was_unnoticed = FALSE break if(was_unnoticed) diff --git a/code/modules/antagonists/bloodsucker/powers/go_home.dm b/code/modules/antagonists/bloodsucker/powers/go_home.dm index 4788d7639e..4892530d63 100644 --- a/code/modules/antagonists/bloodsucker/powers/go_home.dm +++ b/code/modules/antagonists/bloodsucker/powers/go_home.dm @@ -64,8 +64,8 @@ var/turf/T = get_turf(user) if(T && T.lighting_object && T.get_lumcount()>= 0.1) // B) Check for Viewers - for(var/mob/living/M in viewers(get_turf(owner))) - if(M != owner && isliving(M) && M.mind && !M.silicon_privileges && !M.eye_blind) // M.client <--- add this in after testing! + for(var/mob/living/M in get_actual_viewers(world.view, get_turf(owner)) - owner) + if(M.client && !M.silicon_privileges && !M.eye_blind) am_seen = TRUE if (!M.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER)) drop_item = TRUE diff --git a/code/modules/antagonists/bloodsucker/powers/mesmerize.dm b/code/modules/antagonists/bloodsucker/powers/mesmerize.dm index 814ad2abd7..04d3be439f 100644 --- a/code/modules/antagonists/bloodsucker/powers/mesmerize.dm +++ b/code/modules/antagonists/bloodsucker/powers/mesmerize.dm @@ -64,7 +64,7 @@ to_chat(owner, "Your victim's eyes are glazed over. They cannot perceive you.") return FALSE // Check: Target See Me? (behind wall) - if(!(target in viewers(target_range, get_turf(owner)))) + if(!(owner in target.visible_atoms())) // Sub-Check: GET CLOSER //if (!(owner in range(target_range, get_turf(target))) // if (display_error) @@ -137,7 +137,7 @@ if(istype(target) && success) target.notransform = FALSE REMOVE_TRAIT(target, TRAIT_COMBAT_MODE_LOCKED, src) - if(istype(L) && target.stat == CONSCIOUS && (target in view(10, get_turf(L)))) // They Woke Up! (Notice if within view) + if(istype(L) && target.stat == CONSCIOUS && (target in L.visible_atoms(10))) // They Woke Up! (Notice if within view) to_chat(L, "[target] has snapped out of their trance.") diff --git a/code/modules/antagonists/revenant/revenant.dm b/code/modules/antagonists/revenant/revenant.dm index 2638a6a8e3..5ee673dddc 100644 --- a/code/modules/antagonists/revenant/revenant.dm +++ b/code/modules/antagonists/revenant/revenant.dm @@ -27,6 +27,7 @@ sight = SEE_SELF throwforce = 0 blood_volume = 0 + has_field_of_vision = FALSE //we are a spoopy ghost see_in_dark = 8 lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE diff --git a/code/modules/atmospherics/machinery/airalarm.dm b/code/modules/atmospherics/machinery/airalarm.dm index 21eed2caf4..733c760855 100644 --- a/code/modules/atmospherics/machinery/airalarm.dm +++ b/code/modules/atmospherics/machinery/airalarm.dm @@ -67,6 +67,7 @@ desc = "A machine that monitors atmosphere levels. Goes off if the area is dangerous." icon = 'icons/obj/monitors.dmi' icon_state = "alarm0" + plane = ABOVE_WALL_PLANE use_power = IDLE_POWER_USE idle_power_usage = 4 active_power_usage = 8 diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 989ccaf450..ab1db47db6 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -902,23 +902,27 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) new_size = "15x15" //END OF CIT CHANGES + var/list/old_view = getviewsize(view) view = new_size - apply_clickcatcher() + var/list/actualview = getviewsize(view) + apply_clickcatcher(actualview) mob.reload_fullscreen() if (isliving(mob)) var/mob/living/M = mob M.update_damage_hud() if (prefs.auto_fit_viewport) fit_viewport() + SEND_SIGNAL(mob, COMSIG_MOB_CLIENT_CHANGE_VIEW, src, old_view, actualview) /client/proc/generate_clickcatcher() if(!void) void = new() screen += void -/client/proc/apply_clickcatcher() +/client/proc/apply_clickcatcher(list/actualview) generate_clickcatcher() - var/list/actualview = getviewsize(view) + if(!actualview) + actualview = getviewsize(view) void.UpdateGreed(actualview[1],actualview[2]) /client/proc/AnnouncePR(announcement) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index bb105f2652..100dbc66ae 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -2385,8 +2385,10 @@ GLOBAL_LIST_EMPTY(preferences_datums) if("ambientocclusion") ambientocclusion = !ambientocclusion if(parent && parent.screen && parent.screen.len) - var/obj/screen/plane_master/game_world/PM = locate(/obj/screen/plane_master/game_world) in parent.screen + var/obj/screen/plane_master/game_world/PM = parent.mob.hud_used.plane_masters["[GAME_PLANE]"] + var/obj/screen/plane_master/wall/W = parent.mob.hud_used.plane_masters["[WALL_PLANE]"] PM.backdrop(parent.mob) + W.backdrop(parent.mob) if("auto_fit_viewport") auto_fit_viewport = !auto_fit_viewport diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index 20b6034cd4..d5aa49072d 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -915,8 +915,8 @@ /obj/item/clothing/head/helmet/space/hardsuit/lavaknight/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) . = ..() if(!isinhands) - var/mutable_appearance/energy_overlay = mutable_appearance(icon_file, "knight_cydonia_overlay", ABOVE_LIGHTING_LAYER) - energy_overlay.plane = ABOVE_LIGHTING_LAYER + var/mutable_appearance/energy_overlay = mutable_appearance(icon_file, "knight_cydonia_overlay", EMISSIVE_LAYER) + energy_overlay.plane = EMISSIVE_PLANE energy_overlay.color = energy_color . += energy_overlay @@ -946,8 +946,8 @@ /obj/item/clothing/suit/space/hardsuit/lavaknight/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) . = ..() if(!isinhands) - var/mutable_appearance/energy_overlay = mutable_appearance(icon_file, "knight_cydonia_overlay", ABOVE_LIGHTING_LAYER) - energy_overlay.plane = ABOVE_LIGHTING_LAYER + var/mutable_appearance/energy_overlay = mutable_appearance(icon_file, "knight_cydonia_overlay", EMISSIVE_LAYER) + energy_overlay.plane = EMISSIVE_PLANE energy_overlay.color = energy_color . += energy_overlay diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index 0c2cbc0c67..f361a72d17 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -679,9 +679,7 @@ GLOBAL_LIST_INIT(hallucination_list, list( var/list/mob/living/carbon/people = list() var/mob/living/carbon/person = null var/datum/language/understood_language = target.get_random_understood_language() - for(var/mob/living/carbon/H in view(target)) - if(H == target) - continue + for(var/mob/living/carbon/H in view(target) - target) if(!person) person = H else @@ -1064,6 +1062,8 @@ GLOBAL_LIST_INIT(hallucination_list, list( qdel(src) /obj/effect/hallucination/danger + layer = TURF_LAYER + plane = FLOOR_PLANE var/image/image /obj/effect/hallucination/danger/proc/show_icon() @@ -1087,7 +1087,8 @@ GLOBAL_LIST_INIT(hallucination_list, list( name = "lava" /obj/effect/hallucination/danger/lava/show_icon() - image = image('icons/turf/floors/lava.dmi',src,"smooth",TURF_LAYER) + image = image('icons/turf/floors/lava.dmi',src,"smooth",layer) + image.plane = plane if(target.client) target.client.images += image @@ -1257,7 +1258,7 @@ GLOBAL_LIST_INIT(hallucination_list, list( ..() if(!target.halbody) var/list/possible_points = list() - for(var/turf/open/floor/F in view(target,world.view)) + for(var/turf/open/floor/F in target.visible_atoms(world.view)) possible_points += F if(possible_points.len) var/turf/open/floor/husk_point = pick(possible_points) @@ -1288,7 +1289,7 @@ GLOBAL_LIST_INIT(hallucination_list, list( set waitfor = FALSE ..() var/list/turf/startlocs = list() - for(var/turf/open/T in view(world.view+1,target)-view(world.view,target)) + for(var/turf/open/T in target.visible_atoms(world.view+1)-view(world.view,target)) startlocs += T if(!startlocs.len) qdel(src) diff --git a/code/modules/integrated_electronics/core/assemblies.dm b/code/modules/integrated_electronics/core/assemblies.dm index ef63ba97f8..384991e976 100644 --- a/code/modules/integrated_electronics/core/assemblies.dm +++ b/code/modules/integrated_electronics/core/assemblies.dm @@ -873,3 +873,8 @@ pixel_x = -31 if(WEST) pixel_x = 31 + plane = ABOVE_WALL_PLANE + +/obj/item/electronic_assembly/wallmount/Moved(atom/OldLoc, Dir, Forced = FALSE) //reset the plane if moved off the wall. + . = ..() + plane = GAME_PLANE diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index b8e56f3d7c..942a99abd9 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -707,7 +707,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp //this is a mob verb instead of atom for performance reasons //see /mob/verb/examinate() in mob.dm for more info //overridden here and in /mob/living for different point span classes and sanity checks -/mob/dead/observer/pointed(atom/A as mob|obj|turf in view()) +/mob/dead/observer/pointed(atom/A as mob|obj|turf in visible_atoms()) if(!..()) return 0 usr.visible_message("[src] points to [A].") diff --git a/code/modules/mob/living/bloodcrawl.dm b/code/modules/mob/living/bloodcrawl.dm index e8a9b50e98..3547d5f846 100644 --- a/code/modules/mob/living/bloodcrawl.dm +++ b/code/modules/mob/living/bloodcrawl.dm @@ -164,7 +164,7 @@ if(!B) return forceMove(B.loc) - src.client.eye = src + reset_perspective(src) src.visible_message("[src] rises out of the pool of blood!") exit_blood_effect(B) if(iscarbon(src)) diff --git a/code/modules/mob/living/brain/brain.dm b/code/modules/mob/living/brain/brain.dm index 4bca3e7f62..08d415fc3c 100644 --- a/code/modules/mob/living/brain/brain.dm +++ b/code/modules/mob/living/brain/brain.dm @@ -4,6 +4,7 @@ var/emp_damage = 0//Handles a type of MMI damage var/datum/dna/stored/stored_dna // dna var for brain. Used to store dna, brain dna is not considered like actual dna, brain.has_dna() returns FALSE. stat = DEAD //we start dead by default + has_field_of_vision = FALSE //Not really worth it. see_invisible = SEE_INVISIBLE_LIVING possible_a_intents = list(INTENT_HELP, INTENT_HARM) //for mechas speech_span = SPAN_ROBOT diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index e0eec0e599..e7be540eb9 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -9,6 +9,7 @@ /// Enable stamina combat combat_flags = COMBAT_FLAGS_DEFAULT status_flags = CANSTUN|CANKNOCKDOWN|CANUNCONSCIOUS|CANPUSH|CANSTAGGER + has_field_of_vision = FALSE //Handled by species. blocks_emissive = EMISSIVE_BLOCK_UNIQUE diff --git a/code/modules/mob/living/carbon/human/login.dm b/code/modules/mob/living/carbon/human/login.dm new file mode 100644 index 0000000000..a89921143a --- /dev/null +++ b/code/modules/mob/living/carbon/human/login.dm @@ -0,0 +1,4 @@ +/mob/living/carbon/human/Login() + ..() + if(dna?.species?.has_field_of_vision && CONFIG_GET(flag/use_field_of_vision)) + LoadComponent(/datum/component/field_of_vision, field_of_vision_type) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index c3f43cd6f0..65d09f6cf2 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -10,6 +10,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/default_color = "#FFF" // if alien colors are disabled, this is the color that will be used by that race var/sexes = 1 // whether or not the race has sexual characteristics. at the moment this is only 0 for skeletons and shadows + var/has_field_of_vision = TRUE //Species Icon Drawing Offsets - Pixel X, Pixel Y, Aka X = Horizontal and Y = Vertical, from bottom left corner var/list/offset_features = list( @@ -331,6 +332,9 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(mutant_bodyparts["meat_type"]) //I can't believe it's come to the meat H.type_of_meat = GLOB.meat_types[H.dna.features["meat_type"]] + if(H.client && has_field_of_vision && CONFIG_GET(flag/use_field_of_vision)) + H.LoadComponent(/datum/component/field_of_vision, H.field_of_vision_type) + C.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/species, TRUE, multiplicative_slowdown = speedmod) SEND_SIGNAL(C, COMSIG_SPECIES_GAIN, src, old_species) @@ -364,6 +368,11 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) C.dna.mutation_index[location] = new_species.inert_mutation C.dna.mutation_index[new_species.inert_mutation] = create_sequence(new_species.inert_mutation) + if(!new_species.has_field_of_vision && has_field_of_vision && ishuman(C) && CONFIG_GET(flag/use_field_of_vision)) + var/datum/component/field_of_vision/F = GetComponent(/datum/component/field_of_vision) + if(F) + qdel(F) + SEND_SIGNAL(C, COMSIG_SPECIES_LOSS, src) /datum/species/proc/handle_hair(mob/living/carbon/human/H, forced_colour) @@ -1544,9 +1553,9 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) else if(aim_for_mouth && ( target_on_help || target_restrained || target_aiming_for_mouth)) playsound(target.loc, 'sound/weapons/slap.ogg', 50, 1, -1) - user.visible_message(\ - "\The [user] slaps \the [target] in the face!",\ - "You slap [user == target ? "yourself" : "\the [target]"] in the face! ",\ + target.visible_message(\ + "\The [user] slaps \the [target] in the face!",\ + "You [user == target ? "slap yourself" : "are slapped by \the [target]"] in the face! ",\ "You hear a slap." ) user.do_attack_animation(target, ATTACK_EFFECT_FACE_SLAP) @@ -1566,9 +1575,9 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if (!HAS_TRAIT(target, TRAIT_PERMABONER)) stop_wagging_tail(target) playsound(target.loc, 'sound/weapons/slap.ogg', 50, 1, -1) - user.visible_message(\ + target.visible_message(\ "\The [user] slaps \the [target]'s ass!",\ - "You slap [user == target ? "your" : "\the [target]'s"] ass!",\ + "You slap [user == target ? "slap your" : "are slapped by \the [target]'s in the"] ass!",\ "You hear a slap." ) return FALSE @@ -1864,19 +1873,19 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/targetatrest = !CHECK_MOBILITY(target, MOBILITY_STAND) if((directional_blocked || !(target_collateral_human || target_shove_turf.shove_act(target, user))) && !targetatrest) target.DefaultCombatKnockdown(SHOVE_KNOCKDOWN_SOLID) - user.visible_message("[user.name] shoves [target.name], knocking them down!", - "You shove [target.name], knocking them down!", null, COMBAT_MESSAGE_RANGE) + target.visible_message("[user.name] shoves [target.name], knocking them down!", + "You are shoved by [user.name] and knocked down!", null, COMBAT_MESSAGE_RANGE) log_combat(user, target, "shoved", "knocking them down") else if(target_collateral_human && !targetatrest) target.DefaultCombatKnockdown(SHOVE_KNOCKDOWN_HUMAN) target_collateral_human.DefaultCombatKnockdown(SHOVE_KNOCKDOWN_COLLATERAL) - user.visible_message("[user.name] shoves [target.name] into [target_collateral_human.name]!", - "You shove [target.name] into [target_collateral_human.name]!", null, COMBAT_MESSAGE_RANGE) + target.visible_message("[user.name] shoves [target.name] into [target_collateral_human.name]!", + "You are shoved by [user.name] into [target_collateral_human.name]!", null, COMBAT_MESSAGE_RANGE) append_message += ", into [target_collateral_human.name]" else - user.visible_message("[user.name] shoves [target.name]!", - "You shove [target.name]!", null, COMBAT_MESSAGE_RANGE) + target.visible_message("[user.name] shoves [target.name]!", + "You are shoved by [user.name]!", null, COMBAT_MESSAGE_RANGE) var/obj/item/target_held_item = target.get_active_held_item() if(!is_type_in_typecache(target_held_item, GLOB.shove_disarming_types)) target_held_item = null diff --git a/code/modules/mob/living/carbon/human/species_types/dullahan.dm b/code/modules/mob/living/carbon/human/species_types/dullahan.dm index ef730da219..1d19f28aa8 100644 --- a/code/modules/mob/living/carbon/human/species_types/dullahan.dm +++ b/code/modules/mob/living/carbon/human/species_types/dullahan.dm @@ -13,6 +13,7 @@ blacklisted = TRUE limbs_id = "human" skinned_type = /obj/item/stack/sheet/animalhide/human + has_field_of_vision = FALSE //Too much of a trouble, their vision is already bound to their severed head. var/pumpkin = FALSE var/obj/item/dullahan_relay/myhead @@ -132,13 +133,13 @@ return INITIALIZE_HINT_QDEL owner = new_owner START_PROCESSING(SSobj, src) - RegisterSignal(owner, COMSIG_CLICK_SHIFT, .proc/examinate_check) + RegisterSignal(owner, COMSIG_MOB_CLICKED_SHIFT_ON, .proc/examinate_check) RegisterSignal(src, COMSIG_ATOM_HEARER_IN_VIEW, .proc/include_owner) RegisterSignal(owner, COMSIG_LIVING_REGENERATE_LIMBS, .proc/unlist_head) RegisterSignal(owner, COMSIG_LIVING_REVIVE, .proc/retrieve_head) -/obj/item/dullahan_relay/proc/examinate_check(atom/source, mob/user) - if(user.client.eye == src) +/obj/item/dullahan_relay/proc/examinate_check(mob/source, atom/target) + if(source.client.eye == src) return COMPONENT_ALLOW_EXAMINATE /obj/item/dullahan_relay/proc/include_owner(datum/source, list/processing_list, list/hearers) diff --git a/code/modules/mob/living/carbon/human/species_types/dwarves.dm b/code/modules/mob/living/carbon/human/species_types/dwarves.dm index 5d9269b2f0..e3beafa18a 100644 --- a/code/modules/mob/living/carbon/human/species_types/dwarves.dm +++ b/code/modules/mob/living/carbon/human/species_types/dwarves.dm @@ -121,7 +121,7 @@ GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) // return //Filth Reactions - Since miasma now exists var/filth_counter = 0 //Holder for the filth check cycle, basically contains how much filth dwarf sees numerically. - for(var/fuck in view(owner,7)) //hello byond for view loop. + for(var/fuck in owner.visible_atoms(7)) //hello byond for view loop. if(istype(fuck, /mob/living/carbon/human)) var/mob/living/carbon/human/H = fuck if(H.stat == DEAD || (HAS_TRAIT(H, TRAIT_FAKEDEATH))) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index ced9fa3200..c36568ce37 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -379,7 +379,7 @@ stop_pulling() //same as above -/mob/living/pointed(atom/A as mob|obj|turf in view()) +/mob/living/pointed(atom/A as mob|obj|turf in visible_atoms()) if(incapacitated()) return FALSE if(HAS_TRAIT(src, TRAIT_DEATHCOMA)) diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index 1c92ffe9a5..f8abf94083 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -4,6 +4,7 @@ see_in_dark = 2 hud_possible = list(HEALTH_HUD,STATUS_HUD,ANTAG_HUD,NANITE_HUD,DIAG_NANITE_FULL_HUD,RAD_HUD) pressure_resistance = 10 + has_field_of_vision = TRUE typing_indicator_enabled = TRUE diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index dff5584617..4e3093dda2 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -28,6 +28,7 @@ sec_hud = DATA_HUD_SECURITY_BASIC d_hud = DATA_HUD_DIAGNOSTIC_ADVANCED mob_size = MOB_SIZE_LARGE + has_field_of_vision = FALSE //Vision through cameras. var/list/network = list("ss13") var/obj/machinery/camera/current var/list/connected_robots = list() @@ -868,30 +869,33 @@ light_cameras() if(istype(A, /obj/machinery/camera)) current = A - if(client) - if(ismovable(A)) - if(A != GLOB.ai_camera_room_landmark) - end_multicam() - client.perspective = EYE_PERSPECTIVE - client.eye = A - else + if(!client) + return + if(ismovable(A)) + if(A != GLOB.ai_camera_room_landmark) end_multicam() - if(isturf(loc)) - if(eyeobj) - client.eye = eyeobj - client.perspective = EYE_PERSPECTIVE - else - client.eye = client.mob - client.perspective = MOB_PERSPECTIVE - else + client.perspective = EYE_PERSPECTIVE + client.eye = A + else + end_multicam() + if(isturf(loc)) + if(eyeobj) + client.eye = eyeobj client.perspective = EYE_PERSPECTIVE - client.eye = loc - update_sight() - if(client.eye != src) - var/atom/AT = client.eye - AT.get_remote_view_fullscreens(src) + else + client.eye = client.mob + client.perspective = MOB_PERSPECTIVE else - clear_fullscreen("remote_view", 0) + client.perspective = EYE_PERSPECTIVE + client.eye = loc + update_sight() + if(client.eye != src) + var/atom/AT = client.eye + AT.get_remote_view_fullscreens(src) + else + clear_fullscreen("remote_view", 0) + SEND_SIGNAL(src, COMSIG_MOB_RESET_PERSPECTIVE, A) + return TRUE /mob/living/silicon/ai/revive(full_heal = 0, admin_revive = 0) . = ..() diff --git a/code/modules/mob/living/silicon/robot/update_icons.dm b/code/modules/mob/living/silicon/robot/update_icons.dm index 72ad21c51e..a567446e9e 100644 --- a/code/modules/mob/living/silicon/robot/update_icons.dm +++ b/code/modules/mob/living/silicon/robot/update_icons.dm @@ -57,3 +57,5 @@ cut_overlays() else icon_state = "[module.cyborg_base_icon]" + + SEND_SIGNAL(src, COMSIG_ROBOT_UPDATE_ICONS) diff --git a/code/modules/mob/living/simple_animal/astral.dm b/code/modules/mob/living/simple_animal/astral.dm index ebc89e2577..8e10376265 100644 --- a/code/modules/mob/living/simple_animal/astral.dm +++ b/code/modules/mob/living/simple_animal/astral.dm @@ -5,6 +5,7 @@ icon_state = "ghost" icon_living = "ghost" mob_biotypes = MOB_SPIRIT + has_field_of_vision = FALSE //we are a spoopy ghost attacktext = "raises the hairs on the neck of" response_harm = "disrupts the concentration of" response_disarm = "wafts" diff --git a/code/modules/mob/living/simple_animal/bot/medbot.dm b/code/modules/mob/living/simple_animal/bot/medbot.dm index e4e81bb5db..d3d5a65eb2 100644 --- a/code/modules/mob/living/simple_animal/bot/medbot.dm +++ b/code/modules/mob/living/simple_animal/bot/medbot.dm @@ -418,7 +418,7 @@ else ..() -/mob/living/simple_animal/bot/medbot/examinate(atom/A as mob|obj|turf in view()) +/mob/living/simple_animal/bot/medbot/examinate(atom/A as mob|obj|turf in visible_atoms()) ..() if(!is_blind(src)) chemscan(src, A) diff --git a/code/modules/mob/living/simple_animal/hostile/alien.dm b/code/modules/mob/living/simple_animal/hostile/alien.dm index 2045e194d2..8aec10ec48 100644 --- a/code/modules/mob/living/simple_animal/hostile/alien.dm +++ b/code/modules/mob/living/simple_animal/hostile/alien.dm @@ -80,6 +80,7 @@ icon_state = "alienq" icon_living = "alienq" icon_dead = "alienq_dead" + pixel_x = -16 threat = 8 health = 250 maxHealth = 250 diff --git a/code/modules/mob/living/simple_animal/hostile/bosses/boss.dm b/code/modules/mob/living/simple_animal/hostile/bosses/boss.dm index dbb957a96b..b1a4f05e8c 100644 --- a/code/modules/mob/living/simple_animal/hostile/bosses/boss.dm +++ b/code/modules/mob/living/simple_animal/hostile/bosses/boss.dm @@ -7,6 +7,7 @@ status_flags = 0 a_intent = INTENT_HARM gender = NEUTER + has_field_of_vision = FALSE //You are a frikkin boss var/list/boss_abilities = list() //list of /datum/action/boss var/datum/boss_active_timed_battle/atb var/point_regen_delay = 1 diff --git a/code/modules/mob/living/simple_animal/hostile/eyeballs.dm b/code/modules/mob/living/simple_animal/hostile/eyeballs.dm index dbb9048ca4..19d4dad6e8 100644 --- a/code/modules/mob/living/simple_animal/hostile/eyeballs.dm +++ b/code/modules/mob/living/simple_animal/hostile/eyeballs.dm @@ -27,3 +27,4 @@ faction = list("spooky") del_on_death = 1 + field_of_vision_type = FOV_270_DEGREES //Obviously, it's one eyeball. diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm index f19aa0a2a7..b556cce8fe 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm @@ -49,6 +49,7 @@ gold_core_spawnable = HOSTILE_SPAWN see_in_dark = 4 lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE + has_field_of_vision = FALSE // 360° vision. var/playable_spider = FALSE var/datum/action/innate/spider/lay_web/lay_web var/directive = "" //Message passed down to children, to relay the creator's orders diff --git a/code/modules/mob/living/simple_animal/hostile/illusion.dm b/code/modules/mob/living/simple_animal/hostile/illusion.dm index 89303702f3..6936a18cb9 100644 --- a/code/modules/mob/living/simple_animal/hostile/illusion.dm +++ b/code/modules/mob/living/simple_animal/hostile/illusion.dm @@ -20,6 +20,7 @@ var/multiply_chance = 0 //if we multiply on hit del_on_death = 1 deathmessage = "vanishes into thin air! It was a fake!" + has_field_of_vision = FALSE //not meant to be played anyway. /mob/living/simple_animal/hostile/illusion/Life() diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm index d2680fbf61..1e63767649 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm @@ -232,6 +232,7 @@ Difficulty: Hard density = FALSE faction = list("mining", "boss") weather_immunities = list("lava","ash") + has_field_of_vision = FALSE /mob/living/simple_animal/hostile/asteroid/hivelordbrood/slaughter/CanPass(atom/movable/mover, turf/target) if(istype(mover, /mob/living/simple_animal/hostile/megafauna/bubblegum)) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm index 78987ebaa0..c406baf2a6 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm @@ -27,6 +27,7 @@ mob_size = MOB_SIZE_LARGE layer = LARGE_MOB_LAYER //Looks weird with them slipping under mineral walls and cameras and shit otherwise flags_1 = PREVENT_CONTENTS_EXPLOSION_1 | HEAR_1 + has_field_of_vision = FALSE //You are a frikkin boss /// Crusher loot dropped when fauna killed with a crusher var/list/crusher_loot var/medal_type diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm index 4d20d4c7fb..2810bf6c17 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm @@ -82,6 +82,7 @@ crusher_loot = /obj/item/crusher_trophy/watcher_wing loot = list() butcher_results = list(/obj/item/stack/ore/diamond = 2, /obj/item/stack/sheet/sinew = 2, /obj/item/stack/sheet/bone = 1) + field_of_vision_type = FOV_270_DEGREES //Obviously, it's one eyeball. /mob/living/simple_animal/hostile/asteroid/basilisk/watcher/random/Initialize() . = ..() diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm index 2114612fce..81b541dc7b 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm @@ -21,6 +21,7 @@ layer = LARGE_MOB_LAYER sentience_type = SENTIENCE_BOSS hud_type = /datum/hud/lavaland_elite + has_field_of_vision = FALSE //You are a frikkin mini-boss var/chosen_attack = 1 var/list/attack_action_types = list() var/can_talk = FALSE diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm index 48d16f63f3..7d1f08201f 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm @@ -32,6 +32,7 @@ pressure_resistance = 300 gold_core_spawnable = NO_SPAWN //too spooky for science blood_volume = 0 + has_field_of_vision = FALSE var/ghost_hair_style var/ghost_hair_color var/mutable_appearance/ghost_hair diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm index 29b0c0b701..16358f736b 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm @@ -23,6 +23,7 @@ obj_damage = 0 environment_smash = ENVIRONMENT_SMASH_NONE del_on_death = 0 + has_field_of_vision = FALSE //Legacy. Also they only have one dir visually. do_footstep = TRUE diff --git a/code/modules/mob/living/simple_animal/hostile/statue.dm b/code/modules/mob/living/simple_animal/hostile/statue.dm index 8c622c7f29..d693c96c8f 100644 --- a/code/modules/mob/living/simple_animal/hostile/statue.dm +++ b/code/modules/mob/living/simple_animal/hostile/statue.dm @@ -125,14 +125,10 @@ // This loop will, at most, loop twice. for(var/atom/check in check_list) - for(var/mob/living/M in viewers(world.view + 1, check) - src) + for(var/mob/living/M in get_actual_viewers(world.view + 1, check) - src) if(M.client && CanAttack(M) && !M.silicon_privileges) if(!M.eye_blind) return M - for(var/obj/mecha/M in view(world.view + 1, check)) //assuming if you can see them they can see you - if(M.occupant && M.occupant.client) - if(!M.occupant.eye_blind) - return M.occupant return null // Cannot talk diff --git a/code/modules/mob/living/simple_animal/shade.dm b/code/modules/mob/living/simple_animal/shade.dm index 6aa7f8b401..1d22313edd 100644 --- a/code/modules/mob/living/simple_animal/shade.dm +++ b/code/modules/mob/living/simple_animal/shade.dm @@ -32,6 +32,7 @@ del_on_death = TRUE initial_language_holder = /datum/language_holder/construct blood_volume = 0 + has_field_of_vision = FALSE //we are a spoopy ghost /mob/living/simple_animal/shade/death() deathmessage = "lets out a contented sigh as [p_their()] form unwinds." diff --git a/code/modules/mob/living/simple_animal/slime/powers.dm b/code/modules/mob/living/simple_animal/slime/powers.dm index 0c7f126ad5..007140417c 100644 --- a/code/modules/mob/living/simple_animal/slime/powers.dm +++ b/code/modules/mob/living/simple_animal/slime/powers.dm @@ -28,7 +28,7 @@ return 0 var/list/choices = list() - for(var/mob/living/C in view(1,src)) + for(var/mob/living/C in visible_atoms(1,src)) if(C!=src && Adjacent(C)) choices += C diff --git a/code/modules/mob/living/update_icons.dm b/code/modules/mob/living/update_icons.dm index 8bf0dc98a9..b10d78aeb3 100644 --- a/code/modules/mob/living/update_icons.dm +++ b/code/modules/mob/living/update_icons.dm @@ -2,7 +2,6 @@ /mob/living/update_transform() var/matrix/ntransform = matrix(transform) //aka transform.Copy() var/final_pixel_y = pixel_y - var/final_dir = dir var/changed = 0 if(lying != lying_prev && rotate_on_lying) changed++ @@ -14,7 +13,7 @@ pixel_y = get_standard_pixel_y_offset() final_pixel_y = get_standard_pixel_y_offset(lying) if(dir & (EAST|WEST)) //Facing east or west - final_dir = pick(NORTH, SOUTH) //So you fall on your side rather than your face or ass + setDir(pick(NORTH, SOUTH)) //So you fall on your side rather than your face or ass if(resize != RESIZE_DEFAULT_SIZE) changed++ @@ -22,5 +21,5 @@ resize = RESIZE_DEFAULT_SIZE if(changed) - animate(src, transform = ntransform, time = 2, pixel_y = final_pixel_y, dir = final_dir, easing = EASE_IN|EASE_OUT) + animate(src, transform = ntransform, time = 2, pixel_y = final_pixel_y, easing = EASE_IN|EASE_OUT) setMovetype(movement_type & ~FLOATING) // If we were without gravity, the bouncing animation got stopped, so we make sure we restart it in next life(). diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm index c266bbddd3..b7546becd8 100644 --- a/code/modules/mob/login.dm +++ b/code/modules/mob/login.dm @@ -55,3 +55,5 @@ log_message("Client [key_name(src)] has taken ownership of mob [src]([src.type])", LOG_OWNERSHIP) SEND_SIGNAL(src, COMSIG_MOB_CLIENT_LOGIN, client) + if(has_field_of_vision && CONFIG_GET(flag/use_field_of_vision)) + LoadComponent(/datum/component/field_of_vision, field_of_vision_type) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 6e4bd534af..7eec11892e 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -148,7 +148,8 @@ msg = blind_message else if(T.lighting_object && T.lighting_object.invisibility <= M.see_invisible && T.is_softly_lit() && !in_range(T,M)) //the light object is dark and not invisible to us, darkness does not matter if you're directly next to the target msg = blind_message - + else if(SEND_SIGNAL(M, COMSIG_MOB_GET_VISIBLE_MESSAGE, src, message, vision_distance, ignored_mobs) & COMPONENT_NO_VISIBLE_MESSAGE) + msg = blind_message if(!msg) continue M.show_message(msg, MSG_VISUAL,blind_message, MSG_AUDIBLE) @@ -282,41 +283,48 @@ mob/visible_message(message, self_message, blind_message, vision_distance = DEFA // reset_perspective(thing) set the eye to the thing (if it's equal to current default reset to mob perspective) // reset_perspective() set eye to common default : mob on turf, loc otherwise /mob/proc/reset_perspective(atom/A) - if(client) - if(A) - if(ismovable(A)) - //Set the the thing unless it's us - if(A != src) - client.perspective = EYE_PERSPECTIVE - client.eye = A - else - client.eye = client.mob - client.perspective = MOB_PERSPECTIVE - else if(isturf(A)) - //Set to the turf unless it's our current turf - if(A != loc) - client.perspective = EYE_PERSPECTIVE - client.eye = A - else - client.eye = client.mob - client.perspective = MOB_PERSPECTIVE + if(!client) + return + if(A) + if(ismovable(A)) + //Set the the thing unless it's us + if(A != src) + client.perspective = EYE_PERSPECTIVE + client.eye = A else - //Do nothing - else - //Reset to common defaults: mob if on turf, otherwise current loc - if(isturf(loc)) client.eye = client.mob client.perspective = MOB_PERSPECTIVE - else + else if(isturf(A)) + //Set to the turf unless it's our current turf + if(A != loc) client.perspective = EYE_PERSPECTIVE - client.eye = loc - return 1 + client.eye = A + else + client.eye = client.mob + client.perspective = MOB_PERSPECTIVE + else + //Do nothing + else + //Reset to common defaults: mob if on turf, otherwise current loc + if(isturf(loc)) + client.eye = client.mob + client.perspective = MOB_PERSPECTIVE + else + client.perspective = EYE_PERSPECTIVE + client.eye = loc + SEND_SIGNAL(src, COMSIG_MOB_RESET_PERSPECTIVE, A) + return TRUE /mob/proc/show_inv(mob/user) return +//view() but with a signal, to allow blacklisting some of the otherwise visible atoms. +/mob/proc/visible_atoms(dist = world.view) + . = view(dist, src) + SEND_SIGNAL(src, COMSIG_MOB_VISIBLE_ATOMS, .) + //mob verbs are faster than object verbs. See https://secure.byond.com/forum/?post=1326139&page=2#comment8198716 for why this isn't atom/verb/examine() -/mob/verb/examinate(atom/A as mob|obj|turf in view()) //It used to be oview(12), but I can't really say why +/mob/verb/examinate(atom/A as mob|obj|turf in visible_atoms()) //It used to be oview(12), but I can't really say why set name = "Examine" set category = "IC" @@ -329,15 +337,19 @@ mob/visible_message(message, self_message, blind_message, vision_distance = DEFA return face_atom(A) + var/flags = SEND_SIGNAL(src, COMSIG_MOB_EXAMINATE, A) + if(flags & COMPONENT_DENY_EXAMINATE) + if(flags & COMPONENT_EXAMINATE_BLIND) + to_chat(src, "Something is there but you can't see it!") + return var/list/result = A.examine(src) to_chat(src, result.Join("\n")) - SEND_SIGNAL(src, COMSIG_MOB_EXAMINATE, A) //same as above //note: ghosts can point, this is intended //visible_message will handle invisibility properly //overridden here and in /mob/dead/observer for different point span classes and sanity checks -/mob/verb/pointed(atom/A as mob|obj|turf in view()) +/mob/verb/pointed(atom/A as mob|obj|turf in visible_atoms()) set name = "Point To" set category = "Object" diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 46249dbfa6..e551316e25 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -131,8 +131,9 @@ var/voluntary_ghosted = FALSE //whether or not they voluntarily ghosted. - var/flavor_text = "" - var/flavor_text_2 = "" //version of the above that only lasts for the current round. + var/has_field_of_vision = FALSE + var/field_of_vision_type = FOV_90_DEGREES + ///////TYPING INDICATORS/////// /// Set to true if we want to show typing indicators. diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index 6531df5e68..2bcfd47344 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -100,7 +100,8 @@ if(mob.throwing) mob.throwing.finalize(FALSE) - if(L.pulling && !(L.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) + var/atom/movable/AM = L.pulling + if(AM && AM.density && !(L.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE) && !ismob(AM)) L.setDir(turn(L.dir, 180)) SEND_SIGNAL(mob, COMSIG_MOB_CLIENT_MOVE, src, direction, n, oldloc) diff --git a/code/modules/mob/status_procs.dm b/code/modules/mob/status_procs.dm index cf86e962bd..6be1afb5de 100644 --- a/code/modules/mob/status_procs.dm +++ b/code/modules/mob/status_procs.dm @@ -88,18 +88,20 @@ /mob/proc/add_eyeblur() if(!client) return - var/obj/screen/plane_master/game_world/GW = locate(/obj/screen/plane_master/game_world) in client.screen - var/obj/screen/plane_master/floor/F = locate(/obj/screen/plane_master/floor) in client.screen - GW.add_filter("blurry_eyes", 2, EYE_BLUR(clamp(eye_blurry*0.1,0.6,3))) - F.add_filter("blurry_eyes", 2, EYE_BLUR(clamp(eye_blurry*0.1,0.6,3))) + var/list/screens = list(hud_used.plane_masters["[GAME_PLANE]"], hud_used.plane_masters["[FLOOR_PLANE]"], + hud_used.plane_masters["[WALL_PLANE]"], hud_used.plane_masters["[ABOVE_WALL_PLANE]"]) + for(var/A in screens) + var/obj/screen/plane_master/P = A + P.add_filter("blurry_eyes", 2, EYE_BLUR(clamp(eye_blurry*0.1,0.6,3))) /mob/proc/remove_eyeblur() if(!client) return - var/obj/screen/plane_master/game_world/GW = locate(/obj/screen/plane_master/game_world) in client.screen - var/obj/screen/plane_master/floor/F = locate(/obj/screen/plane_master/floor) in client.screen - GW.remove_filter("blurry_eyes") - F.remove_filter("blurry_eyes") + var/list/screens = list(hud_used.plane_masters["[GAME_PLANE]"], hud_used.plane_masters["[FLOOR_PLANE]"], + hud_used.plane_masters["[WALL_PLANE]"], hud_used.plane_masters["[ABOVE_WALL_PLANE]"]) + for(var/A in screens) + var/obj/screen/plane_master/P = A + P.remove_filter("blurry_eyes") ///Adjust the drugginess of a mob /mob/proc/adjust_drugginess(amount) diff --git a/code/modules/newscaster/newscaster_machine.dm b/code/modules/newscaster/newscaster_machine.dm index 95a24817a0..cb2d49fc64 100644 --- a/code/modules/newscaster/newscaster_machine.dm +++ b/code/modules/newscaster/newscaster_machine.dm @@ -12,6 +12,7 @@ GLOBAL_LIST_EMPTY(allCasters) desc = "A standard Nanotrasen-licensed newsfeed handler for use in commercial space stations. All the news you absolutely have no use for, in one place!" icon = 'icons/obj/terminals.dmi' icon_state = "newscaster_normal" + plane = ABOVE_WALL_PLANE verb_say = "beeps" verb_ask = "beeps" verb_exclaim = "beeps" diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index fd04ef0a1f..f1108189c7 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -48,7 +48,7 @@ /obj/machinery/power/apc name = "area power controller" desc = "A control terminal for the area's electrical systems." - + plane = ABOVE_WALL_PLANE icon_state = "apc0" use_power = NO_POWER_USE req_access = null diff --git a/code/modules/power/singularity/narsie.dm b/code/modules/power/singularity/narsie.dm index ed3a098dae..1522a6e099 100644 --- a/code/modules/power/singularity/narsie.dm +++ b/code/modules/power/singularity/narsie.dm @@ -127,7 +127,7 @@ /obj/singularity/narsie/mezzer() - for(var/mob/living/carbon/M in viewers(consume_range, src)) + for(var/mob/living/carbon/M in get_actual_viewers(consume_range, src)) if(M.stat == CONSCIOUS) if(!iscultist(M)) to_chat(M, "You feel conscious thought crumble away in an instant as you gaze upon [src.name]...") diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index 28e9194eef..1d69ba3be8 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -433,7 +433,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) env.merge(removed) air_update_turf() - for(var/mob/living/carbon/human/l in view(src, HALLUCINATION_RANGE(power))) // If they can see it without mesons on. Bad on them. + for(var/mob/living/carbon/human/l in get_actual_viewers(HALLUCINATION_RANGE(power), src)) // If they can see it without mesons on. Bad on them. if(!istype(l.glasses, /obj/item/clothing/glasses/meson)) var/D = sqrt(1 / max(1, get_dist(l, src))) l.hallucination += power * config_hallucination_power * D @@ -666,9 +666,10 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) //Some poor sod got eaten, go ahead and irradiate people nearby. radiation_pulse(src, 3000, 2, TRUE) + var/list/viewers = get_actual_viewers(world.view, src) for(var/mob/living/L in range(10)) investigate_log("has irradiated [key_name(L)] after consuming [AM].", INVESTIGATE_SUPERMATTER) - if(L in view()) + if(L in viewers) L.show_message("As \the [src] slowly stops resonating, you find your skin covered in new radiation burns.", MSG_VISUAL,\ "The unearthly ringing subsides and you notice you have new radiation burns.", MSG_AUDIBLE) else diff --git a/code/modules/projectiles/projectile/special/hallucination.dm b/code/modules/projectiles/projectile/special/hallucination.dm index 3aa85c085f..5c65571ab0 100644 --- a/code/modules/projectiles/projectile/special/hallucination.dm +++ b/code/modules/projectiles/projectile/special/hallucination.dm @@ -50,7 +50,7 @@ if(M == hal_target) to_chat(hal_target, "[M] is hit by \a [src] in the chest!") hal_apply_effect() - else if(M in view(hal_target)) + else if(M in hal_target.visible_atoms()) to_chat(hal_target, "[M] is hit by \a [src] in the chest!!") if(damage_type == BRUTE) var/splatter_dir = dir diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index f4c06f39cc..7182f13646 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -535,7 +535,7 @@ add_reagent(P, cached_results[P]*multiplier, null, chem_temp) - var/list/seen = viewers(4, get_turf(my_atom))//Sound and sight checkers + var/list/seen = get_actual_viewers(4, get_turf(my_atom))//Sound and sight checkers var/iconhtml = icon2html(cached_my_atom, seen) if(cached_my_atom) if(!ismob(cached_my_atom)) // No bubbling mobs @@ -617,10 +617,7 @@ handle_reactions() update_total() //Reaction sounds and words - var/list/seen = viewers(5, get_turf(my_atom)) - var/iconhtml = icon2html(my_atom, seen) - for(var/mob/M in seen) - to_chat(M, "[iconhtml] [C.mix_message]") + my_atom.visible_message("[icon2html(my_atom, viewers(DEFAULT_MESSAGE_RANGE, src))] [C.mix_message]") /datum/reagents/proc/fermiReact(selected_reaction, cached_temp, cached_pH, reactedVol, targetVol, cached_required_reagents, cached_results, multiplier) var/datum/chemical_reaction/C = selected_reaction diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm index 141367c9d9..3ba883a2c7 100644 --- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm @@ -765,7 +765,9 @@ /datum/reagent/toxin/rotatium/on_mob_life(mob/living/carbon/M) if(M.hud_used) if(current_cycle >= 20 && current_cycle%20 == 0) - var/list/screens = list(M.hud_used.plane_masters["[FLOOR_PLANE]"], M.hud_used.plane_masters["[GAME_PLANE]"], M.hud_used.plane_masters["[LIGHTING_PLANE]"]) + var/list/screens = list(M.hud_used.plane_masters["[FLOOR_PLANE]"], M.hud_used.plane_masters["[GAME_PLANE]"], + M.hud_used.plane_masters["[LIGHTING_PLANE]"], M.hud_used.plane_masters["[WALL_PLANE]"], + M.hud_used.plane_masters["[ABOVE_WALL_PLANE]"]) var/rotation = min(round(current_cycle/20), 89) // By this point the player is probably puking and quitting anyway for(var/whole_screen in screens) animate(whole_screen, transform = matrix(rotation, MATRIX_ROTATE), time = 5, easing = QUAD_EASING, loop = -1) @@ -793,15 +795,17 @@ /* if(M.hud_used) if(current_cycle >= 5 && current_cycle % 3 == 0) - var/list/screens = list(M.hud_used.plane_masters["[FLOOR_PLANE]"], M.hud_used.plane_masters["[GAME_PLANE]"], M.hud_used.plane_masters["[LIGHTING_PLANE]"]) - var/matrix/skew = matrix() + var/list/screens = list(M.hud_used.plane_masters["[FLOOR_PLANE]"], M.hud_used.plane_masters["[GAME_PLANE]"], + M.hud_used.plane_masters["[LIGHTING_PLANE]"], M.hud_used.plane_masters["[WALL_PLANE]"], + M.hud_used.plane_masters["[ABOVE_WALL_PLANE]"]) var/matrix/skew = matrix() var/intensity = 8 skew.set_skew(rand(-intensity,intensity), rand(-intensity,intensity)) var/matrix/newmatrix = skew if(prob(33)) // 1/3rd of the time, let's make it stack with the previous matrix! Mwhahahaha! - var/obj/screen/plane_master/PM = M.hud_used.plane_masters["[GAME_PLANE]"] - newmatrix = skew * PM.transform + for(var/whole_screen in screens) + var/obj/screen/plane_master/PM = whole_screen + newmatrix = skew * PM.transform for(var/whole_screen in screens) animate(whole_screen, transform = newmatrix, time = 5, easing = QUAD_EASING, loop = -1) diff --git a/code/modules/reagents/chemistry/recipes/others.dm b/code/modules/reagents/chemistry/recipes/others.dm index ce1940994d..618ac256e2 100644 --- a/code/modules/reagents/chemistry/recipes/others.dm +++ b/code/modules/reagents/chemistry/recipes/others.dm @@ -440,9 +440,8 @@ mob_react = FALSE /datum/chemical_reaction/foam/on_reaction(datum/reagents/holder, multiplier) - var/location = get_turf(holder.my_atom) - for(var/mob/M in viewers(5, location)) - to_chat(M, "The solution spews out foam!") + var/turf/location = get_turf(holder.my_atom) + location.visible_message("The solution spews out foam!") var/datum/effect_system/foam_spread/s = new() s.set_up(multiplier*2, location, holder) s.start() @@ -457,11 +456,8 @@ mob_react = FALSE /datum/chemical_reaction/metalfoam/on_reaction(datum/reagents/holder, multiplier) - var/location = get_turf(holder.my_atom) - - for(var/mob/M in viewers(5, location)) - to_chat(M, "The solution spews out a metallic foam!") - + var/turf/location = get_turf(holder.my_atom) + location.visible_message("The solution spews out a metallic foam!") var/datum/effect_system/foam_spread/metal/s = new() s.set_up(multiplier*5, location, holder, 1) s.start() @@ -488,9 +484,8 @@ mob_react = FALSE /datum/chemical_reaction/ironfoam/on_reaction(datum/reagents/holder, multiplier) - var/location = get_turf(holder.my_atom) - for(var/mob/M in viewers(5, location)) - to_chat(M, "The solution spews out a metallic foam!") + var/turf/location = get_turf(holder.my_atom) + location.visible_message("The solution spews out metallic foam!") var/datum/effect_system/foam_spread/metal/s = new() s.set_up(multiplier*5, location, holder, 2) s.start() diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm index f326b94e44..fbdbb5f656 100644 --- a/code/modules/reagents/reagent_containers.dm +++ b/code/modules/reagents/reagent_containers.dm @@ -160,11 +160,8 @@ /obj/item/reagent_containers/microwave_act(obj/machinery/microwave/M) reagents.expose_temperature(1000) if(container_flags & TEMP_WEAK) - var/list/seen = viewers(5, get_turf(src)) - var/iconhtml = icon2html(src, seen) - for(var/mob/H in seen) - to_chat(H, "[iconhtml] \The [src]'s melts from the temperature!") - playsound(get_turf(src), 'sound/FermiChem/heatmelt.ogg', 80, 1) + visible_message("[icon2html(src, viewers(DEFAULT_MESSAGE_RANGE, src))] [src]'s melts from the temperature!") + playsound(src, 'sound/FermiChem/heatmelt.ogg', 80, 1) qdel(src) ..() @@ -184,7 +181,7 @@ if((reagents.pH < 1.5) || (reagents.pH > 12.5)) START_PROCESSING(SSobj, src) else if((reagents.pH < -3) || (reagents.pH > 17)) - visible_message("[icon2html(src, viewers(src))] \The [src] is damaged by the super pH and begins to deform!") + visible_message("[icon2html(src, viewers(DEFAULT_MESSAGE_RANGE, src))] \The [src] is damaged by the super pH and begins to deform!") reagents.pH = clamp(reagents.pH, -3, 17) container_HP -= 1 @@ -221,15 +218,11 @@ container_HP -= damage - var/list/seen = viewers(5, get_turf(src)) - var/iconhtml = icon2html(src, seen) - var/damage_percent = ((container_HP / initial(container_HP)*100)) switch(damage_percent) if(-INFINITY to 0) - for(var/mob/M in seen) - to_chat(M, "[iconhtml] \The [src]'s melts [cause]!") - playsound(get_turf(src), 'sound/FermiChem/acidmelt.ogg', 80, 1) + visible_message("[icon2html(src, viewers(DEFAULT_MESSAGE_RANGE, src))] [src]'s melts [cause]!") + playsound(src, 'sound/FermiChem/acidmelt.ogg', 80, 1) SSblackbox.record_feedback("tally", "fermi_chem", 1, "Times beakers have melted") STOP_PROCESSING(SSobj, src) qdel(src) @@ -246,5 +239,4 @@ update_icon() if(prob(25)) - for(var/mob/M in seen) - to_chat(M, "[iconhtml] \The [src]'s is damaged by [cause] and begins to deform!") + visible_message("[icon2html(src, viewers(DEFAULT_MESSAGE_RANGE, src))] [src]'s is damaged by [cause] and begins to deform!") diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index e6fa18ba9c..36e3b0d47e 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -72,9 +72,8 @@ to_chat(user, "[target] is full.") return - to_chat(user, "You dissolve [src] in [target].") - for(var/mob/O in viewers(2, user)) //viewers is necessary here because of the small radius - to_chat(O, "[user] slips something into [target]!") + user.visible_message("[user] slips something into [target]!", + "You dissolve [src] in [target].", vision_distance = 2) reagents.trans_to(target, reagents.total_volume) qdel(src) diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index 54ec327fdb..c8e50667a8 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -169,6 +169,7 @@ name = "pepper spray refiller" desc = "Contains condensed capsaicin for use in law \"enforcement.\"" icon_state = "pepper" + plane = ABOVE_WALL_PLANE anchored = TRUE density = FALSE reagent_id = /datum/reagent/consumable/condensedcapsaicin @@ -182,6 +183,7 @@ name = "virus food dispenser" desc = "A dispenser of low-potency virus mutagenic." icon_state = "virus_food" + plane = ABOVE_WALL_PLANE anchored = TRUE density = FALSE reagent_id = /datum/reagent/consumable/virus_food diff --git a/code/modules/security_levels/keycard_authentication.dm b/code/modules/security_levels/keycard_authentication.dm index b9dc9b92d3..04f2de9bec 100644 --- a/code/modules/security_levels/keycard_authentication.dm +++ b/code/modules/security_levels/keycard_authentication.dm @@ -9,6 +9,7 @@ GLOBAL_DATUM_INIT(keycard_events, /datum/events, new) desc = "This device is used to trigger station functions, which require more than one ID card to authenticate." icon = 'icons/obj/monitors.dmi' icon_state = "auth_off" + plane = ABOVE_WALL_PLANE use_power = IDLE_POWER_USE idle_power_usage = 2 active_power_usage = 6 diff --git a/code/modules/tgui/states.dm b/code/modules/tgui/states.dm index b0808cef5e..33fc4d8703 100644 --- a/code/modules/tgui/states.dm +++ b/code/modules/tgui/states.dm @@ -99,7 +99,7 @@ * return UI_state The state of the UI. **/ /mob/living/proc/shared_living_ui_distance(atom/movable/src_object) - if(!(src_object in view(src))) // If the object is obscured, close it. + if(!(src_object in visible_atoms())) // If the object is obscured, close it. return UI_CLOSE var/dist = get_dist(src_object, src) diff --git a/code/modules/vehicles/sealed.dm b/code/modules/vehicles/sealed.dm index fc81e2ec00..edaab8b982 100644 --- a/code/modules/vehicles/sealed.dm +++ b/code/modules/vehicles/sealed.dm @@ -1,5 +1,6 @@ /obj/vehicle/sealed var/enter_delay = 20 + flags_1 = BLOCK_FACE_ATOM_1 /obj/vehicle/sealed/generate_actions() . = ..() @@ -51,7 +52,7 @@ if(randomstep) var/turf/target_turf = get_step(exit_location(M), pick(GLOB.cardinals)) M.throw_at(target_turf, 5, 10) - + if(!silent) M.visible_message("[M] drops out of \the [src]!") return TRUE @@ -102,7 +103,13 @@ if(iscarbon(i)) var/mob/living/carbon/C = i C.DefaultCombatKnockdown(40) - - + + /obj/vehicle/sealed/AllowDrop() return FALSE + +/obj/vehicle/sealed/setDir(newdir) + . = ..() + for(var/k in occupants) + var/mob/M = k + M.setDir(newdir) diff --git a/config/game_options.txt b/config/game_options.txt index 2d326493bb..f65c1bfff5 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -658,4 +658,8 @@ THRESHOLD_BODY_SIZE_SLOWDOWN 0.85 BODY_SIZE_SLOWDOWN_MULTIPLIER 0.25 ## Allows players to set a hexadecimal color of their choice as skin tone, on top of the standard ones. -ALLOW_CUSTOM_SKINTONES \ No newline at end of file +ALLOW_CUSTOM_SKINTONES + +## Enables the FoV component, which hides objects and mobs behind the parent from their sight, unless they turn around, duh. +## Camera mobs, AIs, ghosts and some other are of course exempt from this. This also doesn't influence simplemob AI, for the best. +#USE_FIELD_OF_VISION \ No newline at end of file diff --git a/icons/misc/field_of_vision.dmi b/icons/misc/field_of_vision.dmi new file mode 100644 index 0000000000000000000000000000000000000000..015cecd88cbccd6e3e49ef968482eb764191944b GIT binary patch literal 931669 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


8|7^UG!Ydt~63SVU`JZm4%=5mPn`86i9O^FQM zKlFNcm6;l1F4>;1GbLfs_KZBX-(llKyq7y!=!s7&LbGfjfAAtKeMXpLHXWiN^w8+Y zG^QFZ8u7P0yOUq_zgU2K)z_{?Zi$pKI>;M_QwX2FH8%Y|j@0J5=x#D$O7>@vkhD%* zroc$ z2f;miT;*r=)5$kRr;S?0Hp$B@ZR+aJ*JnrLSA25bf!O-4J_7tFK%sT&)cF!9MrWBKy)HQUQ8Lh6CSc zS}HI98RqL%8FBM)1hn$S8n|!+4Vt75P=%-zUigh{;72zaR_5o~F*C7M8nl(qJMXB@ z!PXabS~6mZ$#JcSdLZm7lGifvzkP#Pm)s@YhfIR7t1m6{oni>`-H0$9k^5P1rf-^~ zEB4qO%%6Tj5YM;HE~f5WjuJBt$-sFm2JS_41$Ttg)QZ21S@sZtWAEm2{lV8T;SC`0 z3E%9Cq{E3p42mzeA@_9u z&TgP3rqQI3%WUA%DUCwHs-)QIBVU zZT~1i$;~eZf?A>=mj!hi8zwT&wjg*5Aqo zJcVSvh^oDWJxS#RD1qF*SO>k%_B$5&+@*%v_0ZMG35Xj&E-;F8zjY zxmB!w2=l1JZkOR>Nr3N4y;{eLS~uy8=Sy4FhjY|;O7)3_ol)P#;^ecdX6O$jDBzoD>A3^ckuT6b%c5i-7? ze>o(>f;T%Y{(pPcz)Kl99lKJk{#5SGS|Vehe=lHx(P1&@3GWs8ZrJnZ&x3o%H1RS4Two%l)#%t2^%K##DwGgVD2i;a&P)zM%bv$JH(v>+uuVT*g# zvhE$*IRA8P@gx4Hth6W-@`c{kgtAP-bMkjQZxFph^fnt!Cu08<&{+Q?pt<{!C4YiM zL@x-7Ye@36{gk|O1|tiFB1XODHx@XF2{a4C@d^{IG2UPi(#w%gxhP3XED1^=G9KP@m{ka7Bv2*tE9oV0)Kg6F+6!O z?^xI}f;XATPsrmb^Z052eY z>SPLpniUJL^ObehCDX6D3=F7~xK0fJ=wMo>C8M}oI!~OI@fEj z$6q@kY&m_5nT8*fA4_Yoj&mu##W!qr-DP(Zd}pOB7=4#6LLl2zTf{FBqdLDI`~H{~ z0a60af8FHqJwLu#=~$;t-7RAuyKL zm3emN?|>KT)9U}3xF?P`?(~6YeJC;g>xR{b1l5Tp)*u3v1PPT0J0X+Ml+Muh8PqA)#dIqr zuvSUyh351x_LVDB-8TtH`N`K-n#t}yo3_}gNfDkd380@3r0^-2i>B4!VD{^VhE_ zGiT5_Y2Q7CIn>kEuGR6lnVGkRMeF;%bqAC{4b#LGKIp*!=^%i3O)Dz0cKJG5-z3JS z_Kk6sgm)t|MY z@xb+-`Q!Q4uwD1R z$e=J9L)(taL9>%#@F?1%`-u;$b#mS4PG9^y=HxF#0wGS+X#Vj6xl_h`r@Z5B;L)Ip z5ouFJ=BfAAS*;fB4(XJM^>A$3!On42K!9?TCff`#k@_k*!ehA&2v1K#m2%tT6J7om zTobXk7qScR(~6#>DU(a?EbH@mKYR#8S*+8R>_k^2sq zX|ZaJd_n{H;I%N_vmn*6J82vMQ)-FBI}188U5ILutX!_9ve;>l8Zo3up8s%HVNmCF zVJP-JSLPMvE5p3Ks)?ZLy4o@7zYWw4Z2vG&Zxmu3%(7V=zRGiRHg-fE(i08Hv5W^0 za&e`&3L=bPK7~H<9vrERfw~W@317K*r!MO?J8&ejNN}{Aho(AbvvDuRV(4D-;IOv$ z?i)YV?0EpB9V#I6Tc3(G%}se&vf({29iLOXB-6{sl%kxNSoR_4Av3=kdi2?v|A*KQ zvRIxOKAxFl?zfeZ&HMNqgDFdaggGG&tUtOmE@42EOZWFzul!=Im=|AS%xW`TUUtm9 z$n&R<&)0k$l3aPbROE(*`wwkc?fU1sdntZc2GM=H>+9T~$CN2OF0 zVaeQ1|2hIXH{NJ<&Tx)?=BLlvygKbc)X`rj2E#(Suj96!qo+aDk20<6A~*ZViP8q{ z&9tD@y5SX-@~fX;+&WfJ32vw%O*`b_gRtWTbI< zfQ9HpifrHLLT_bVUL)i)rpB8=^mrX#FE!Le9g#s-$(`G{KZ%AaoQc|K5*2yisi?i? zMa7Nzgx8zipEn?L;9n*Spsz>)(U~nwLi{)GcXj=ITOl)JT3w(mw-Uk7+8@MAim!Ig^XR*F!a}kgwCS0J$y=p z)^d?*W%wCBW6;A0u>!}!d9k%gZkj556M2|=Gj^Q@?26l7ps%P=lkv^N8gw<_=S!pV z_FjDxBATwS{fU5p9tMr=*eSApGS#_l{6$GSX0@Ni zOUq)odIewUR=loM@sv^q%!h7{ie&J({ssQ(5}BocV40Ults+vzDtM^6Mq$Kac)JDS z>M8SJoN;4Oa7Q|64Nk`QE{D}&)qzgE2;9n;Z%ZB=mYVSPR1&XHz?IWy+L=}c(2!BOiPZ-I zetENm-rz+6P_c>kkI(9D5G84)I4|PkUu&y>Be_`+a=CUk$1}P*$BlWKd$@VxhAq~P zxKIsJ^|2$WVQ@JqDoHNV!vz4tZl)kv9qN+&D#x4ztp6RDym>obDt zF=qQ>h8X*_0f)P}67P_jr?+REDLjA1#eAuIAhWajH*EL+M7(!csa=fUHf9j%_<^Zh zv8k>-RuQFuI~izB9^OdwrzpDEK%s=yK69_AKkjCt z^2ELT^%$9U;Mx`@$*$Zi#gWj|9VknyE~fG0Gm{vz)e2ph+Ejyz^9K(vW1g}St#EbY zDQ@McfY;Td z`JJ01j^5{<@7Vmm*f?`8q376OBYZO_vA7vx#K+J(c2KZms8s;LqEvpAC>JP>^*wJs z!PBiYTOA-DMYO`e_aE9osF0F9%TB`t4WG{2&Z>`;uy!|}U-q1v-9A62a?U@I{c|RM zurai%&)U2=SprYwHdzwLn>T64uQDr=Z;&W_r?J@%VY8Jz47xwn6v8UBT*?teO_k+! z#I=`!VQ7u`v9E&xcmW%}Jrlr=QV}f(sCTGJ^?$RpIyYX)yw-sSkU#CM;5D}n*Db=6 z)iB%5Lv89lKX7pE-M&(zV&}^e9cmnR1z~n^Z3tSk@JVl~v#3#~2uSw*9pj zKcz0F75qyvWxGoSEaQUvU*~ubq@e|R$+%rJwNy3wQ1%mdq6)4t7W($3B&~yRPkR%N z{eoq8r_7&gphb=0*cT&axItC~!5%@tVoHS`Oh7V{ygTV2?$zrTO&&AcMIpTRv^e?l zzIGmKFl%DJr|u3FrFxhZ%A`oTuKck_+2QJhIq`LIy`lt8L?yh zT$pud0oO2(r0Tz~OT;Fio<*uZDwGf}XvBuSO|Qf%2k>Ucf_xJ@Yc&h)zyj|^g&){Z z*~I(bX}P#h^a6wfeR!&lE<)648^RAInWJ!ApL4uRb=FUwGiyz|MCh7d-MGJf;`c4{ zf&ULkPvz3Uv4|tSe3G507!P~mlYBB|G&!*+b7&>LX9P^v$?%m}VM+E~RaY z@!{)`14fs&@=AB*U7apC9X!HdT=FL09n6<_fTosF5WP`j3j#@WJliGP1Ki9D^_9|9A_F zzrBU9H7ho{()MRr8qGIOwvvAGagu#Go&xbJ;GSr|n=S3k8&oTF@Vym?`$L6|c9iU( zNL9EbI5)6%XLYn|k0G9TQAWTizdyB|UKpcc2Q20!FL!!~G?t|mGgLuurc*BkQlBn7 zMh?f(K)JQO2mQSbMQp`NuhdFu*|+hSO-a z`S+^i!B&Au+XxqIbo=z!FDfC=;AZUk3(3-D>K&S;2l1x*Bng#yrriI0SBt73?4 zOeKu>=7>;H#Zz{eyj{2#$`W$?{^CjG8%79oVfFQ*sO=_D+2MDU$bq3iuv}zi-KzZ~ z!ZB4s#jFRkR+vLWyq^7rKo?>x`@V-;1hAfR-*el`p2GhCyQwpA|Va;g~(G2Q%igy8k0=B5t-n@JN}Ash1Flg zqNickamYlZfbe}SN~3Du)u1+mT>3!HS*oyJaaFPfj94O4HSmlie%5nJ*&$DBl+;*-V^8R;#uXtOS6QMF}=dk zD%un(@$j&~#Bm$tJ8@%*KnD*eyU|4M7V!?j9(0U;E~A*n&BhFglrZ4DDC*`&kvgp6 zx@G<90d(@rq8ECX5TI7{)`U(%Nfad&e7mkLqOlVR)8bVTC?kyFJOk5o=V6qu z{7U6FNrD$v4KsOvrO>spz>7^{LvItagGZjZjcKXydY6&QUrQa%BIspub((62^Y=!S z2k?eBWxUD8s<7Q*~f>nPGt^RpWr`;_?-ezRwa?^Wm-*x67V8Y76!lIkL z@-NWhFOt~pW^PEHNL#RkNZL;p2aa=52hnqi8up8bO8$04bkN|D2~jG{+-c;eTzJ`E z;1@D2HGMSAl@Mj0{Eqr)?52ahY&W8`?nk0NN&jo3E6|>b!#F^p)B!%0*qm}p5d3^> ze6tC(%DXXa<_2{w=T~5xQai-4DOO`c_8%<(anfG6`j5#~@ER*o!y?GtLNLaSJ)s@i z$947?<3d}sd0z!)^h4g7uidN~h! zgWQs(-JTvG*Nug)R*;S?8Rl&F4SZ6;mbCI)CU4NSf}zgZ@>ARv%VJj{lGhguz90)` zO0~X)H5kJ_g*hp8;6p@9S>wa9dyU4F(}-Bgrvco|LVLZ%@iJ{&Mmg){9o31(W&0)N z*G|$Z+%$VGBW;@TdPNk8sO(HRUwvkf`4`)fA&_~5R^X3~lyvk@G@>?I-R|ALKWH7l403swyZ?l`sjg}@cVmtxVN`<9^i6!ndRV1Dk$N!< zx+(d696dNQW7bCZcgog(-pQjIL?Wm~hS-Q2?FYHzhN%Y~aGeN@G!7~f`=3xZmsz&^ z%KrPCCHgb+(-Og52$oY79pN-5tgcsvR?i`z2@eA43l(vI_rz`uWdgZ2LxWbR@=5fvT5-8a`&27!C@ zD^77P^b8ss$2h%<`wyx&ED*o^ucxKUb#i9}DD&l?;re?YWEGOEFqwc79aOef|4U~l^+VjcbZ9=M7xuAk-+@cBOfzXdQB-#e6Co3KtiE}z}y;u@0cWS+#$Z(We{zZhcu^03_uzg{+n?@CJ}B3HWXDj z;7pYNgh!WG+#d7KTxD*7cmhVceJS2<-{d}Dwi3Iwg4$|SX;sZodo)H#tWq;}5ThEi zMr^;_cklase}0eeUywYW&)0dLbFOop>pJ2*^5vN7WMAGS4@MuAk_~dL+w?D!)=f5T z`qxROG3gNt!--Z%!>o-1qHfrgk3stDIK{d1ot>o>ZlLf?dUn6cueiow?Sd&?O!X64 z&ZC+H#>5|uR*$=r=1ha_)&p*{<5N{7qQTC8@HFziUu_8dx0+$gtW8B#VJ}mqf z)^8>kLy@=vL+6f)y59sJ5AG2TZ?;5gANwtO`-VzT6;v`=?USZ`Eoue-lZL$2eE6Kw zLX)9HW1L1LoB6Jh{Tavnr;u?L>A5$LwhJxg>b4%Hx2Jj8yFw+GkG-bzuqB$}Ici^~{YCjwMG}#}eMiL{ zKmrzVX2COE#z-~o2G#k(kXjle*IL zbSi+PWRn;(QqUYsY5DJQK>l{_bZiF+Tuy%WSC1wr96Rte6L}GBmPK#`~1ov@u!@+PcODiNyo{Aei7%`J|A~} ziD5zD6eWBlS7Nk^dc-)OFKkx@ih-)TN!aS07LHSN-c3xhP1FChcIff?XZp6MOTpeF zc!S*$DyN4do$$H47Jmut{Zb8#z%ny#`p4$5g8%t2eo9&l0RfW(&QT&dx*0i`!9va z?Cd;ZWNhTsSbf(;omUx?-^m?iow=5-okn%pWl2O<{R??q|HMNd{bssF5!rZDv<0N- zghrWpj}G1vu;tmnDmuaKJ{lIgDhYCh7BQ?&Z z1VViSW${?0-6f?wbOcfYVE;6+!YJxYl?WZ+NnW|GD7wIcvZ8s)OHVk9ohztr4gfW( z`Mql`2yz+=?#(!VE&dR-@k#D}CCcn$9hr)u(PH)Wl9UZw#nGA&UH4{K_QxVu?0Ts*_6_&W(NuT@1eQw2EZXwtTXP8h;*(z}h9 zBXpY!X&mk;l#=V_Ww;AGJ| zWVZi24rKqXk#$L!~7`_R?&-K+XBLUNPH#a@|`*$q(=wcSw|^Md6BW zXWe4l?m**a^2shhN+oas`{BCg0BQ0apKi6kj-@8QknsUevwY#FP5*1hOgn_Q3hR^W zW7Nx3`Y%6`<-Gs`lVG;Lr3-@rvNodYy+!XAf3iArOlck8+0N7LB5963{dSAI%h#Z$ zk!q=gcdgm<)?W2y(6z?0r#IK7HE;!=Qif@%Feo=sxN!q@X^!F4t)U+vVG%%alp5~| z;@G=KNFiD_Ftx{9V6=%qd|*GvQQBg{GxSi$_ViWu!bRTOe$<}g!CJT6qwn5b$8g!| zc^2LN?l+^2oceaXjGL<7imYYdbGDr~k4Y;~^W)rcKtA+w%tIlCcL(stauzBBTEh0G zvN}BoUbfhgf|LdhRUwa|-baI85!Z$r>P~~=7*2oZVPOc_qry|-ueyOlc+#(NiZS03 z<=OV5Gd9~R?h81s12_K=-P;P=doGBr{Q%_6wFxZ)@PI9L6CY+p^gf4AfqvPlH@Jlr zaQy|N)eXJ*vvKivxpAHE#f8KQdyzHzw%b^#DO<9tdp=(gFX#_-+FqpM7<(|+B(pv} z8XkMw_ToKBf@zTX*&SVg%EN#&I9FATy>YO*J=2@VRWHC3uP(OGP2j!|?ay`nC$xC8 z9$=6>Q%PU;p0a4GfQwCj2Q1GS92$9Vl)9hFQKbFd^lqX5m5j8w(wMO`r+tKq?=~YG zOXb-nYN?#hPpRKZlEW}BOJ?jW-PQ#ro2sg)q0i}K>E!uGG@n&!`RMjL+Xl{gJKCBS zy}27&O6^}{u}T!Wp=)67!D^qBYFM^=Q=RI^#{-kev9!T4Uxw=-PWsjNP(4;>u`17n z+j2sdf`C4PSD7-ix^w`{FL`6>^Yu?}58gr!xz}#j_`Y2fwl!>8U;F5i9Fde4r6~KV zjTII=Ac?7(e7eV@{Z?}Syo&hgYhsR8+OnG5DlHM{BgDV-_^s)k=<*_!(JPXoQFhkguVuBfpd&Tb)9w-U~9SVi&n-_o`ul^h^K!0QMCb$oVs%? zXN_~1-y_6^bu1wrG;~I}b)Uk+y!Bxt8sM;`y(HA`Vz5wn#zxTW3Y@d+Ki=m2NRZ}_ z=yVd2!ehnjGBfrn%|Idu#HZY0MdeF1r^BA1NgG%5ui8k!C15oI^ozAZg_TXHSsH<) ze(?v>m=_GZvewP(Q3BTgwK;X1$?S7i#J8^F=>u2`f7-F*Y1?grZ{m3) zS??!OfwOOWvN2VN(!b(yfblZne+EeE-HU^jvSfd6lcRX_Brh(;J1vU6D8@++;n{Xk z8Rd^#4w;*fz0b{%4zhlmyzHHVF~o-SU4}H9{r#Ksf0^0+{Q{Pg{3i>>oZHv&QV(~R zPRJh4aUBKJ+&meq;w*$0NLH!TMg33*ye}(Dtj~v1up9@x5Gc+x(aD zn%1}8a${4(m+$iSzG!fai_!`bOCQ%JCvS*iXY7u7f__CNE0rHX4*IRqULjgPWM4bh zn;%*ACRs#zl#I|wqg76TLGK0icptv$c$O@)*;3fsoaVqma#|QL@zW zWsRmJ6q3wqMq}Po!xQdvlyA8(R~%QH33c%l6E;1w)PSFEMnn~*D&f8*b;ghZa3P&F z0jL&edv_7okgkQ_4DilcRXi{oc-|aO9l>?D?<90k$wg$uEx!sb^xMvO{zQs9!dPNh zN|+6vY3ZpDN?#|G_R~SGEE%t*w?K?K5S*_tb6le*Z)irU2e;@}OZT-ei|PFI2~kuo zJ-FvLztZ$5>f^|5J6gsUgh|oE+N0C&3@(?k@UKv1bW>}~C+CKBTqu;}FsAkU-u%|+ zj-5W3VXiMa?Y~S!W)sHv`RU<}!60NDEOy}Z^b4{Hyp^bgHrTMue#(NEB!C8o*wNk_ zHq#oN!d0yICwa{p!P7OHxmMQf&Yg9Ntuo_jT*Ex*!4YBoc*|Id;64kt$mcWS;zjI^ z5@iyoOKnn~3{F1ZpV?YTz9Wn{Q~%S)@RBU2|7J&)ghpuYv<`&g4t}f6AtjT<+lIw? zKAE)xE|{Z&!s*qz-tF5-+>$Fz=})zHQUqUtKrDtKv_a2UbK`O0Ucef4P&kk=&TO6u<&-5UyOd_Hhup0aCFK89mrR?NFD+A$2Hr&t1=L_=8&3K zCic@Ru&c4olCxj*RTrh1k0(u3Ey$Ojsy^^qoKo05J(WPM+bI`9L?>oOaZcO)XcOLaJd0z)atrW-{i$^Dwach?>;e2j4dW^S5}V-ewy=L~Tyj(zb`0Z+aGBKZdA4o+Wp=nkv^W&FM0~o4%f1 zc<}Sn8Orq+%!Nt<#nRBWs9~r&s zhWLvJiZ!@&hdM@eMp+anXjBL4Pf=E6ypJ)D_DH37qbEmVl!9nup)I?F(S0d8srix0 z+?Gi>QL>ibc*Wn9auET;z9!jgc90RLm6CIzn%joi25UbywW-~yqk-rlU&&dIu)BH* znzaOlhmN`0Z?2sbg86qK{_urdbCAVrcd_K3gwU2^F>6;w*-az>tVnd`6YO0H`tEgl zDF|vDt-WO$43D9n-EA7I)J!=|Med{=C|>j;*%kd>`R^qNZEt8}wc_^cFh;$2JNMfK z5iWWx_x8gJyXmLVb50sc%bw@Wk+AnG5uZgofi;Q7P2c(|7rAqCisJ)M?;)z53NG*% zd@RNr+-ze+F!nQUv>1t+ZyxTY6EH>_J6nqOMOuAWxkC} zFGXGoV`9{pnt2erhRKli3})E=D}V-|*3D@iCan9wH`-oJL~QfUY>yW8Yl}SKWijCM zMI&-IvlowO%4P+c0YRlde|=IRk0xB;=uMFQMDSR9l@-f%eBbwN#>?ISDxxxVnHSO- zklNTF77Dsw=-99U|4@yJF!Ka?mzrJuWvQrc$i;Oir|mjmTd5-UTl4rrtOS7A)hQhN zwb4Z3(cdfno{O}zZGsyprlA^|MnoofFMn>#7InV5` zqlRCNzlef^DGRP#2eflmfmu&Q`?-z=Xbfh=UL5ZQQk=*OWCSc=yateW5OwT*WtZ#z zBQ;Z^e80U6zb}(QJigKE85F;L1NH`IJ-sa79!-Pz*2f^;XHJ17!#_B0tLGaPLEv{K zIY(P%AT0RQ1)nAq(*OMA2HsXUf++<9Q7NHu)MH%<>*+3T)#~qAfGuqFX7s-8<;mq4s)zsCf5XA*~@tvXj;)LBJ zMm@2eh-2-9=Wjp%64zaD=CvRX6-^=iA?m9s?=zlRG#5zyCh#9Qh&GAU>*Xhpbr6mh zia8KLqOOzM?=F`g%UTtlhgWT=0Co`qY29St=k(+})Ky<@Ij7WimxpMN`9vKTu_yD3 z%kdW5J5<`&Y!rFCFyp0A7Xe)vlGBLjP0lVJi7^VZ=**Wl2|T6)yCWG~SiD59D#t@a zYrA9_aLcmuclTIhlP}^>)F)R5Y229(YJ!cv$i?~qDU2X6pUYV!#F)Q+;RdJ);m;fN zj0Nq_I~WYAw(MK?tgGN}&PFc7`;^k=TJVJCE!aKBibvHCEWQcQPqr40ZxT^ff)HPc zf~DM}dSYN7*_H+lr>5#feDhpn94)}TahMRlQrEHAeZ#P%?Z3!(vH=M+yAS zTnK<8hFuu418DF;F72}5KnZzcwMCsy37!M^^27qp1IUbH9$;!=!hL`BZ7!ar*`{ad>iVVpgxnxx%JhGg{z%B&v*EA+53_bn=!Wafvn~xf}3s zdI|kXf~7lm$NTO?%WELtNaJe6bCqf}nP_{m2j3FRrKfj5dl^Yg6E^~4GD0HhU4%mO zq%BPQBqw~_V_+*8MbVqD1dRFGe|=p#Ro^5C#9hUL6?T;B9Weo%^$1VY1}~Br3My$x z6-LzE=))~}rz$`wOE6Dj;G4d>LBEoa9l^fnew&$ zuQHx!zn|K}GV;zNTDT4xM343*Dk=OT=^0nE8^;TQW1j9F!t?ZJS&R@%#o!)V4R0-N3C|pAEPu}c- zKM?~0>CP`NY+46+dRCdcT>itlB6XYXO%)`UWf()6g{M4g-39!O1&#n#7K5x-390fg zajVR-FI)3s0KpL6ke-?YCki=g}9+b~bQ6pDwCoFENRR_aHXnSmQF^cIM|acUr4* z{QAK@fIS4rkn+4sm0b4Y10Bth_4i{29;)3D0(jn6S~@Yz0_IG53%q6wXK$=QTB*Iy z6MPc!IK#F<7y8{m&HAEXhvXlM2K|us)sADWc!5NtGd-d%^(z7Ol14W|P#L^e49sg@ zqx3_uM%QqwhfRA!i{52xgxoEG{_?sVc~Rg=j4Xho8@m1Gd13up@3oV?r$>6KT+~R* zBZ6JN?!ujXCY;1@CHcvf*g`Hl*#13+$PpU-ZT)^jr*EH`=})V#24!P9Ha&8;S$(_w z)*eq$H|Pl4C~@0v7#-=gTQ_)ItpJ@d3=Zk1PQ>haNKWn8neLJ3>h+gekrh1~P*s_k zU1y3h&M%R&?yeVuH+!)sjd)yeJR~Go&+xM^neO|Pi+= z`x4Q%IV~8OUgNXVi&kfM!ki`SrdJryuR6~6CCjU0V1nD#m(XReBZjxw(QWaPdICYx z{4`dN0*}SQZkCK2;no?%M}$Wl4{kH9S4+AIz4O7KW(%SYtOwAicfX}<>RKbk&5kf=C;MdcPxP! znYx>!FTvzw9KBwXbm&*cs%Ls{)Oyty;FNrI>Lwn;TX~j5z&ofI|L)u7^Qh#UrLp@H zuid|VFP=`-8H|qpYx4(Fkhbz z0p)d^;Wq<{GWJ7sMSaBRdBtTRWwz1#Ojb(V*%{Sb^TsAizi+4cZQ53P(H=l=Tx<6? zz&@e={UkreG}@&zdrezFW$fAx_r$FD>O!g26X+e6 zI<<}?yHY3f^0(SQTK2ITXT{W^EGEs^LnVr{rUc)gy=JXe3}RQeohON#y8*B6i}aI~ zJX3b||5qGB|5mHKY`Dxr7CfgIBKC6>NbKTyOxHTQZT51D9s6ZoY|(zG6PrXlfB#4F zEIM>qyi|Ej91IB$>#dWD7g#xWM10$eB4=%Q<|x0Uy%KFv7Gda;AN5cS;0gQnv8n~_ zOuy0X0GsUAyZHaywR?Jo%-O}kF!xKIJM|j%eBRVaWm@{W@9_982D|<`{}3SMawYW& zqt)3JutN1I>!LNKRCGD@v~*fXm#SdH%jdjSVUjhfa=%Y+`TyVt+1^35tcBeJ>qv|E z^BAbSV;|Tsy}H1*EZR1D*MSxp5!C4Os@=Ooow}erc56+IDNHv;S&-w<>paVAvzOSQ zWs`<7?ko{@d_=vCD0c89H&TTHy{eqY?lSwDnOF>dF+Dd>moz~nKCjiSe%$Qt&*yYhQ)nks2xbW#OwWkL@q35dnTP=3Yl&{}`FIc*{y1HKcIf_gFzd z+aY7_I^bb+G7X0HJ{ey4oDwfCmjB*?2`?iNm?MU`STxgY22kphd2$V}FV9+N#!d6M zt=^amZ%aR|qc4Au=q91@e7$ZJQ^@|A9kG3CPp4%z%kNi$x>-=!VGMaw5Qgo8b(;T4 z92U2QFR=W@40ZR;_$EN2w?_nbrX%eZZdLGybm%%qfXAfAT-_7gCw|&88TF$2V}eQc z8a~t|BXTt8^~!sPEvj?gfdoaqzB|W!wf=zx8_stS32$Lu z@=Q_)>+MS#Oo}IJVmGx^8|HRMkKm(J$nwdWLM>O!SqV43m zy=z{WevRh&SBZcySc)5)o8tL67XBK>UPG(UA@f6ov^Vf7ufs$_lCDN?QT`^#*-w&g zjL&Z}YolWx$)VE=S(-+%tyZ@DH}jY1S-XQ?1F4uRB3d)gvkx)^9cKbe zrmZjn&G!bsYK~j@O5R2qJuGxoXehWs%`2e-;Vb(PeO8;BHI}u1>J($8pywKo^J#FL|fXo$_hi+&k>zO2r8*7gV zGwYNi2h{St-$kf3z(qi|(zssA22-t&kNijg8lWu(5Z6&_pU@@-$v)I#zZ)CV~~r?BG*nd%Uq7d`}d z9^3%fBKhW&1845FFvrX{1+kk`SXz_2LwhAcB%+PN!65l7HH#*D-ao#?#l^)JV@v*% z@XWz;wmCMdZ+A2ZXik(A`6Y)d{%xx4%Q0KXMLyulg&xCD8G$iKTzt}fkXf!U%-r* zbgrJfv@e%`EB^-=cBdwplmDG5jKk$wLucComx~*Z(CNKO$L6+4rsSWWo|hWwUXFO6 z4KXh6H|wN2aK<@=KM$?et54spr2fsQ8VD>Q(D7W*7g5nAcUEk$dwM_3G@m2yova6; zT?h>YdBsc4YU@kSe2Dh0D(SM%5}y}!cuRO)0tlWqBpcSncsFfe*Zs=L9iZX8CoO?l z+;`=zzkeh)BDJPdpp;eCQFm(Dq{Np=M?16jtmaX50VK(oNMKwGLXK57UUQz|6aDma zhld%t*i{`99hN@id>L#nas0A3Vrtmo44O`V^Im0!Hw!qZce|Jr*v2Q`)W=X^SL#Mi zKVV$C_-ex&QZq^Zpy@Hm4fN0v( zh^JM*TYky8KUk!_v3jc875R73?Jn{k7$4k9bz+C8zk;|2EP+3k4?Aj}9utb3qyBbQ!!+U!&JPg5={v1Gj{tyL6K zIcIDj|F&r$A>(dhZXUe&6(eZW#OG^fVC|qUc4GV2Ct7Q9)z2Pm3+YqKC%bAZo>TqA zeAw)Hdho^`7XGMf!=!4}li7LIGN)6$@iO=>P%72zM*pYvy;BCf7C}_$anmavo}(Nd z3d`aS7kZ{Pz!vA>fU~IU+Tnh~>3Wnq>S&DE6xP{A$rZo?uC9};)2x{bSesI6x5YCv z4;xW2Bu!H7Qx{55u~gV8UxE%$@=9|8co(L9DwYUBK}CBT#leOAO_G|}dJU>dYm0+| zjuXawn&SkMn^&ppYBsPYqQ=hn;NS4(-JRS$JIKv; zfcx-pSgA4VO49KbBRV$Ky7|p6C3>~vL#I3sg|V3OHJC#jPf*qrLrikU?Qs(gtyt`Ol`vE2o>)&sHt{rS$hC3H1)%JuRJR_8WL#w46+ihw zbeJjmQt$NpOi=TBDrI>x`y+8kGC3p;xnDWq?;aDy*r;)hnkUgrSjVQ)kvbL_YZCa} zE_&6p9aa(!VY|=9qNw$;WIqUl!aXgGIea3@fI>ulXxBjs3&6(@C}0ks|u)=F#yzgt-f&zky^tzu@!j z_e$u&G`R9Y)+4EMnMl|dNdCQ3H3U-ph*bmOOLYNn^b7Q!IkKVilxDtE;df;R-wtg3 z$bsp*54E@)_wTR5oN_=jmVfcnf15euaE^TMIl&0{ey-$Af;_8#n)&MpZK&op}W!~5u`vf*8o#cI_lkJVE%`c_2sSboM$kLW*%8d7hl2Q1W-+!~A~-#)xy#MbG~=>hU`HBv$tpHruw@ef zJ0TN5C3PJE(-6TM$BAzURGyP5tS%v){!zc28s5$95qn!##z7AU>Qenm3D~sn-@mVu zF4Uvte_}K=EU)9@t}+FMz!Jp`Qa%{%Jd&j2a|o`fOy5D)H%`BCfKMq)_UGtH>H*W2 z*btsG7?}(ia~AybSWsmWh4I1*c~GK3Y*%ctc`GlPi72@-4)iGLIgAO2UGbrUr5yw> zmoE$oKVusBBSP;^`I+0|uMln@or|Eq{gq#!TA5Gu^EJsNMGc+zVGvhEKK2q&pK&Ec z$mFGcN!1oa^cQ;#62aTi{A&+`a}-d-J{gVxGQW1rX3Gb@7x+>bP3;6JbnIiWDJpY` z?4a;tW^2vL4`1u&wXaL-_CAj2Dg~LmDrxnv*Mru0jvm*`e;tr>m~S3fhvH|h8{eBL zIm(7xF{YS&S8l{bwz19XL#h&e-ypz;+%`;PU6sj z28*J&EtRq-uOy!Hi+yM-j`o{;p!R`8jF;^f4}MG&6_zM?f-@B3aPRG{#}x9(*3ZF;8(t(KHTgV1n>ng>1CBd~ z=huH)pX$jo+b|ZPkVuhFlfh@Z1z<1`o|G6{NcO00_6N>S#08>a*b3)u%e#Np4d#>d z>HcY*u8z2Bg%w_G{(3Eu!Y_=$8)8vrlRVaIV*8+<#pzx>NN0b;n!>7#*0%zrp8Po@ zDIiK<=qBoG@s}e|e!dpfM-N(H!~3qKUn7_l6X(~k!PNKB8`Hvsh;8Oq07sRmEByUK zK3CCDn=b)6$p9-Tvv$ai&HJDMmTS~*hDBMMiK@&+?e%K!$DRaG^3(<72yFBMT)J1a zTJUQ+eo3_k7F{kjz@BzuLpU&YG=GaKRwyzeicpi#5Cd%WjjH$1sei_C?5!^n?P7JF zn2W!|E6s5nbe$MaJ#6STs`xpLVG>!63vpkQYqPDUa0lci*3Psq?9iT1 zZ$0f*Dvu|cx7U=+ulUVP?NS-{u7JQ-sDJG0Y)#{EdjmKdm-t5&%ozG$J1g=Q%CmmV zfxOk(_`rwA26shX_9~P{CjEaCt5=?F@_r=b%6j3J_4E=YK709`H^!_JPA7#~WJB;3 z0goBbc_~)V_WDevO>1(IZ7I@v7`uE&eG+>{os@XpGDaxKcMXG5-*Sx;5YjV|PSP&``F-Yxqp^No*Hc{wp zpS@W6#blwR7AX=6xma>3C#Ax{M%gGpchqVGX`em z)Zvk+z_A3aFy#3>7M!nCv2v-xh{J`8@T%qf^7+Pi!ivz3oX@I%9>KpEAGDFvzEY_D zlx^w2^AK1D3u~bx33v?K>6$qgLdR|GrBgGEspY??Y-eyzymfo%x5HUb;w=v-MrP&) zdVA4cbVHE%6LKzEHxINz&DnjP+YfOcx^eh27U5~QMB&4_Qf-<75&K6PlKg+eg>MR5 z&SA}50LIcxP1NQlwo=Pc5+G(UMvKtzb+ON=RphmhJ7S$@VKX)t)SVt+T!h*RMSuP@ zECK@9+{n6{J~e7M=@X^<#hFCFUAd=Y*PZiJE^dZfptI^CEkgcTTRkgJ@aw7^Wcdeu z{1^RxbuMw&W8A6t$&?b(F6sT)qd zH|Am|^`wl77$q~QiPhew7p)ZsR9N<(2BXoL9XqRzcX#$l{tVJQKZy7V$}{Hr z70lE&e(=u4)(>~L|1*`ONe?rm;>DJTqakTh8^6i%w}Zje4V!k^4lMWw$E<>8y90`d zI~+FbPU-G)mVyUkN`t9$_t4)B5g$}@U${h#WTF*^m!$Q3xBC7=U18$iAX=eZi|6c5k=Z~u*8J_7@I}Z`b9{y+(c$-V+D+xHy zbU)7E6Uc!u-D{0Hy)j>rr{z^+l$5NAOZSFPy}g^3ZE%+wx4oyntiEXOc(Rsx+q!w- zMH>C3>;s2r>J;`a)eEdF5Xa!;eq+^SUwLb&M&83b_rdy@mVg;-(DMoP&7DuYb^70l z)zdHakq$E~Rd2Mz#;56O6O~q6s_caGb+b ztMY#?ti;XJ$KH&2<&yt&<2KL3%oox3HTav4QAjto1eI$QV<@K?`AtGkk+zmgbo|nl zdy$=8jLPxA{8JEaAXv_&q`o;P{#@p(+p$~|=w>_0N(ACj@^w>c@bN)BmuLDm4%gVy z!?x3fc{zty(po7YYy$#n{Vtqv9vEAlO%4#=ZaTPldhVFd(SEKC|6i9n@4-X&rJ>=F zvK5U+YeX;_UB*j-SqmG$*BfJY?DY<=cp5MpXJTX~*xi;HQ@Nmg^}n&K_Zf|y>1W7W zWhTA^*CAkid|~FQ?&?fC>;~KexgP>xaFhxgI;ED$HO&2$F$Y3WHd)e%jmS}RQpPj;bxRh3N= ztZiRfDCNhg3!Zt3!!Y?_# zH)`UezS96cJq#q{h!NA|i`Y(QBWHqW^%d`O&RO$F^lKgy)}3r zi(}j{hAOAUBOm#ogjxQBlib<-Xs=D6>wARJ(8aL50JLnp%s{Q1pv~iD?E|@7yX;@` zVGcRg(*&HPxWHg~Oq^lh-A&98Kl|%DE9P6Lcd3cRN@zAB6+>!_e>@dRwp-;|;5lFW zcQE_@c-?@7aRc@bZ6N(Wy4IVf4$0FlMJF!5_{1HcRdA*|Q)2i-+N=;uOqB0b@FiBE zT%uG8_XWOH+VPLRk)Jaj(+W2D-D1eIdy@4D#Z}hoUf>dn!l;QKmL+M=Vx z+|3h{+DhEujjgvW*bELF_T6T{cZ}sWT&O&FjnH>|c75k^t3>5W6f*D_`l8)>5bLjM zoeuMQ>(1J{ez}+Oe_Xp;7MD5{AKz@h;(fWRYkHX)4QG}Tua1R%KuVVHf=R+mp2dm? zXYZ3HHbku0;l4+e6N7p=iL86vhjp~hcH_i{EQABRyYrkh7lW2e6gBOnNtv^B(|oEY z=LVv;_<<2Sb7#C;z-^7(WNwh8oTKe^k8C99hV&H(4hKWa>hD_9RUjI2|fYj9} zAMHrTTn~*z;NEp98xdms^h@^#Iur!fl#JFEXFCezCW~$unDM8FOn36RS^0n&=?(NBV$NAUwq|ib*8|x>|)owdXFn0s#66* zH$X3TVKm7&9wKX`b>SX&gf0EH;R;{kTQeG;lX1g&Q7I!=!OEWm35Io=n;DX3-5#9- zvU5DkL*6X00|SB0SkwzFj_VKwT%O$7(+kW!Hi7IXB^=Y@5+a@;ql^$%hvO|k_V$s+ z`d5k?fthLZy@tAHwbTiJKKsAUvfh0$jK00*{!X$q+R;$5_$eH5@st@4va(?>N`MJS z(v4zdM%mGowUYfcQLqX-M6%Z18Z|He@x98?oVmA1Uo7$T2L{4W67zD5nzL!;Sdn`= zW3)#~VD2$s(FY7LPu)<*A zQllvY>!Jqd3)Ki2HWj~4fc?a+1Cp1nhMmM#J0}Is5+zoO8F7W|;K_&(u>KG}1?DRv zi?p|CwFj%LUq-7_6f#cT6$~mTuY=z5WL5%g_dQa9BJaa2&+peAPD-<}ynE*Rz;BoV zya}uwZ8TK?hNf)vwmVLW*YTv(YctiU<=-Y|XmXd_v!;!eg6A{2>M;}H95shoZGZuf zfg}^HFe_l*Wf0)T@>Z~)%dw{ zv)Zj{X$8Bt*-=)5VsE?=)GQI=7Bv=>0RPH27mDP&Unz^TEE69QfYFtV84=pWf?Hnc zvd&>wUbR?lId6+?`F1R}if`SUM<1qc7SaYv)J{%MPw!&^R)6$k{wgO#zM0F!beKGn z(i`rS>Bk~Gb6dX24Bi+7Y*8At{-#AYq?%DHIb_Ec-8-Qk+<268h0}VP4nZh_EZj#S z;fR~Fz~4Cw@x!czYe%TsD20vE;KIEX$#P+$J<|p!K*6$nXjBRHcg6evLu4yr7>NGu z!Y|))6EfFEZr8X^Zo4d6cxciGH5hkEsX?AJe9yH^r@rZ|k}pVICy--c=szkbuvAr& zDsVnJq`$%I^eUASnhmq?m>u#>UI=MUXdhiryPk7;ePpjuW_sVbWDJ?SIloT)MtVeT z&8V$_FNWZj1ba&v_3Gs(;MSsQ3!?Wr7{AF_9#v@4r%y{soh}C=v^^0$B(?k3H;n>M z`MB&7>5u3FPXkQ8SYSTvB?OvY1DE?&Qqfs=A)j^38f?JRmTr{3K=G?D1z; zOMJ}sT!3k2Xw5^Rc^O_oQQ3fO+YZa*X1@GW!^myweaj=!$kI#myh%BrtpN`m2E8ce zNWq9KEuZfIflj03c!{Gx2#IY~M?zzCSEc7Zod=ywYxirX(myp^{<<|I4iCYQQ?X{v$rne&FIqi z{XQfuodEfBXn(zhJ{fbO3t|g*7i3#7^$9Yha{p$u{HZZQzMDbBSLi?y-7vDjfk-a1 zW_Ni#*PTlbz3LJBU`cI-F!2&tbsHJDBEx8-jeadEK#blQG#!X7RHq2eyV9&^>HB*~F+punJDJ>*TVm%I1 z-dcGT+elY8qq_?A!#Tf94Gt%XQ|vs6w`wm@a+^K=a?5)tRlmJZOT}o`=kB&Y+KMSy z4%F1brb;pTXbNmX$y49s@*Fsn)0WiN0L`6kK__*4D*5C-r_QslH>2xWg@ttHQmV2R zbQ}lCjk%Pz`^Uks<#zc`!^a>cZD|Qo;HX!`Kr2twHQ@0ky^Fs$6=wL`zg&PmF|;|T zdH1P#kV5V;5vt?Jo-X2R*1S>eHbB7dp(vmZ? z{{J&!LUY4dw%K4=q=>qP@Z@8vh?3uv(({gjm3~T)iiK4a+>Mu+yn&vHmlF4lf;BlWDLt}7X#i_q`m7DNFq{!e?3JY!V`baRIky^O9LYTiLSEn&o0A4Ql{^6^!VTO z;MA&x6a)nD+v|6WMC#&e-IRIX-T5SdcKt+jkgdyJas|$ZBwf~)47^o;WiYmb;Z=zm z^qdRreIoyL4WDT8{Px>S^|EAg6gyP0Ql1&^+GVi9VW~9+Izs?;u66f{Vkx{MF&Mj786Ul02S%L$1x!e=SIZKA z!{)I8L9GTjl5tU0roe~^P%zUboH}(Ttbz2A3xa+i+YU%FU%YR!X1Pt+>Kix*E7u(d ziC#O|;i^dMv^w3s!*G?d1d`3~s*8u)n&#N_~UM;nMCipMf zl^w0f@{VbfY}D&19JSv$2ZU^%?9nqmR{XY5Na0Chm5p;r8JF`IO$36dFmx4*D0J`w zGWWtY>Upfg*^H9F+z}n4^J;KWoZ`(}uZdB`ZjjiP+41qNe8T@JK88my5Fq)Kc>+HI&Kk6;qlOmmN9ukBRScF#N+vl^4J*2?gHCGg-eLV?$ex_6JX*H+|m z9u(@nPR{uHyG`^?LIr;dd;M~SLx{K4c@(|oNn-ydw@hR;7s z>mxDzDLjJ-1=+D@(@6NTqN~y^2cWscM;d>fzt7`A&}ODv6)P{=_{O)`NT-|;9>Hi z4hpUPiohx|IL)Ig{G|@xOGBGMy^+)Gw`LMzGB0&60@da8>@*>kj3%KAkIEW#pI0a zOxh$A`HoYHG{v04oZ@Qg`;g=#4OHXex^|Tk1h^}(Bx@U;>ufU94S2RoW+y?qZ`MPPJl5%vrNCy-K!R0 z5uj%_T@N!Wu)t?&GI~EMiMsTW6qD0h)$kcRNM}i(J6R)CN#H^$alwB&+f;SUzv$9% zMvcgN&1YW!=haejeSG*|&w+J2b2Cxj@*M)A)SK8Oo=aA0mVlto^G>l!6%U+gc`oQ2 zMd@UwT{+c~5j0|Vqg4qWC2tAzJZ~^(8Kxm4(V1|jLv;Enl=sURXTsN^-nzH+sOnE& zal<_Qg&34A1J$pulTR?vt%u%e-Ala8Lj|H_S@)|}zCDL^nxWnTn=iNCscTY?AAh<( z%*M2t5R?_f%`|-Or+~ObREI#Dt=Z4knbKx(EqM|WpvX3jsL!PG-nT@%#YBy5TCae| z%_e1{OJ7ttu`(peS5?(G4#S)2#Ma$S!~tfy#g^=tzT!6PV&8+bhl>PP{nI)7pzDDq zv*V*Y+sb=8_LEbhE=eD6Ug)VTFe9$3A^pUGInw<9ohsrg*T>8J7}0Ep_?PmesCWbl zK8Bk>TnSkTDYqhty5$&T za}#PrHQqwPa$-DeDhBjiH0*pQw?&F+6hg7nuKd$dOpp1%X6=FKoNJfEo6MKn_q7L~^+eVanL4o+^&iPUrsR`Np3Bt~B`1lr(Dc!M zPhrYr`RZC?r?AUn>T4br+S+yjOu_0dx8$o`T3ItG7jDk!?bgjmBa@W1&Z;CNox{-uAi?6({oHadjlmz6b*g&NK#ER65#1xwe6U+(&Fb{y z^@aq#ru7)rW1|&!P?*QMVO*?|NNun-?(Yc@9YYRT{cYQC3#2{BXg=&N~WqzpQEp?Tw+b%>pE>lRnYiFse~hDSBS zZW`(T`gn7yF@rJa(*VZYFQdS=QXPh};3xG?rUvgk-_fbNg1802lWX^<@G$R@J(l%7 zY6>jt;|~%gbX(*0`vBKf_<@_)Ejz`X7;w{bZy~?!zVZEC<9c4I)=2P|D9%j=E>ht? zHqZC?7lWWRGD3|cOT>hjp-1&NRvg_elyTqxjV4fkFxBZHX=xh7B#ef;od4OEwPDF$ zvE1R+g<+~T55(k?-Zf6|JCKNMOC?q}0=nx1J#(N}w+7vKf@3X4qE~-=jqh_o!pYO4 z`+XwKUVBdkNw-pMlysi92c}GYUHo+@$aRq_C--EVia${eoAgsFyn>%gPPupI@_UZc zZLK@P%SzlU-9k(%0Q`#G60-N>983!7K_ARFeQH&Y!}7ZE=%xFu47URlAye%XKsHOh zq-6o+v|wiOpb*V>)n_a^6|rynPnv(Ay~FZoH4dYL7o4;tc+KC6&P zoUk8zldEY3&!r&zU+FwwE@Hebjs(}4@67KhTYb%^CL(W&qiRy^*k*5Yp_UUQbp?W( zqQD3~C}Fu&=WPT1!^|bGfyvl(8Hr)}O{_c3<5~_BK#%lF$okFF`c$u+`&#~=bJvIe zZ;IG?&rWh)z?`?tDjBg!LyvTYhVGu-)A5ic>zum3Y*Hkn?pbcQ$=9HnDUjXBZw32I zqYZj_VC5$0xi}VyxTBV`+;dN7b)@h`vb|`2zn=3WzvMk5I&N9M4~CCxA1_}>o`p#J zj|>q^2ZrRl8T6dTdQ(T!Xs!hyvl$xNRhwIoCuFpy=tLu&E*OyG5WSAx^hV zH{rHCkuGeY9M}8NN;|UXRJMz5L_xVK((E)N0QlHEwYPBp$7P1eh1{E9DxRTsr`aZj z{i7p=pESB=ajNL2m%3CnL|Cbc_@}H|8@{17XYzrNhALp^to{93$G6PN{D>_)t(7PB zUBClL8+*WbK!*+X0Zbci?ds;{BmKx==U>H2G0$PZ2ynX$>N3~Pa<8M0mL&H`k|a`Cilr~RR}LpY zdX#6MZG7>j^JKn9uHvBMbOxtIUclP?BVb&ATZSWR!IY!^-UMYi7Z;ZcWKU#ecG-^_ zGR!R~aB%7ze=nBiMMF%Zu2W*YI%(E9%cJS%Eo^lYErNPJj*j#VmPs>Cs@iv8e5vL< zuevTpniwmy`qF?~uHi6^{nTO16I#1=>R?TZR;LhCxc0;%dh+8)maEmFvvt+cLHip+ z^(^Gz;K7?S<;oM!j{^i&@)iv>J%@qk*82|RabaU6eow8M=Ls~2`-|IZuqx~!>2id*f(Feb7n{mwF9?w#okbb6n*wtqoRZh8byGdevXb&my&IH~zD)#um`Jjaz| z?tBa;SPQaZ27!8Qj7Exgc&|L9>W!**6&pKaVglr}Xsx-jhmF6BK+8n@RE8%chiBy{ z+47d3HeBD$PQ#lWdF9h|!IsG44uWrEXZw=YMq)I7_-oHe>yb8?K*-l`A;t7+SCI*q z@}seSi7)MD`jQR^7k5ikSyBE=(^ppz_onsr25mV9H^S@H>P4GY5k&d%zs9OEcf7J7 z;mK5(xtEL>?G?QhBfY>&8>!)T<)iHzENYwdqC_VWVgjR#EYlX<@VrYLqeY>cV)VUF{;Ak$rBvE9|I?47c$oOIyYM)i zj^nF+LHUz{uSNnv)3$S&=BfHtP(RpP<8BpBI!WZ)_XqSMWH=6QW<}JUolFrE#?;`* zxi?NJX={z9&C-CYD-l}1wzCA#Tt^jZ)kVLC| z*M1ln5bTy1m@R-1m$x6LuY_=(`(EGFYTMkk*}lbPZd+gDwDUsbk$43z76lLb9i5z% z{(nZWO+purIO&|ya=i=(N82@ol3>DCETbb2Cl_tyXR0sjX0N@;1TcAabB0grd?l>q z)apf3faD>U8Fz2D#6fCO^xAj(T4TUlVTs<48McS*6^)uFI67PHv@=UnZXw!gfqbi*y*6IBd1^-2*L05^m+6i<0-NPWoxN2QLBbOpq zMi6hBA&i(Tr#L7?YDRkVyoKlSeg4sD{Lx_#CauU3+Dh+$$W!NB5C1Lu{$JC|MivT(qH` z4h6_ckq(TRLO$zEv zzVgvClSywIJ0qn!O3Tt`#Z6@K&vn1G_Fpa15)r+*#_vLn1!aTL2_8#jU9xBxEmzI# z(TNrG=ZGy?1ic8p#NcV+xyEfCy_zTWAxT)s9f6crDB;rI@=c|No1Kb3%<=@%yN_Nf zoEqJsMFC<$2hM)I!4!nZh79i_uN;P{r`H~AaLj7&F0MtTa)DDKjp@!d7OJ;jFXn2X zf3@Pckj3MTUcXw~c3+7|D*o!?8?Bzb`+T4N%0Kp{#$Cy&*RwbRp;A@N5{UD3#^Ti( z{*UKHG>Cee7RJ(V#lIiK^FTRos=R~KJm|WqE zjE#;y7kWzoi(SIV2x94sR`Eob&R6>T6rwt2UGH-SryrFTPyp1-%a-FxzC;yk9#%Zh4ZJC`GF>zBp0W=&yrwMk8W?`(VN7R z_Tlz0feHZ2-}>Bb!2v%vL;02+FIm!So}aN_yY(j;aF>abzGnokTsC!Z);NX(L_R2M z#SG@sR^ANgpg_SYLw*fLItFuO0)IXx`&R=!I$Fx_o!{8_Z^W7kuJJHQqO3RAL2l1m zOn`}1U=a@t12^Ng%kg-&cp}ednsDvCZ|pW#M8XJztn>6Me-2DG1p>)auo-GuHycd( z0QsIX!p}W#3Gv_P{(pnty>!zcylDnmgFxaYn;CG<$5lfTt;a7OeN+vl^Q64xyWKCQ zR1$gT#q9vG9r_j8cmdxB5T%5m9QrPeoz!Y%0$+zu?do?)e#*09WO|1OHSBdZiq4+S zQ28aFWL!^5>Qg>ipT*lqcUD?3dJh)myd zswU9l{@JyHJ=Pv#KlngWut?_nAyBfD_Q!*!_+IJW$vjZ)zN8HJe%Hz@9mXCTtsFIH zlOE*KJTcD|nIol~V82f}T5Qo3O!jQ;25dc?f8X+({YA5F?EVTqKT4r@#UuFY4|X|3 z;bSV_i+ggW*H(9}E%#k1iyyjg7fgv;x?BEeFTU~#{`2cy$11sx*vS`~b=@+rq)f#; z;LWWB&;+W!w!;g!VG1_Pqj}2?8rfg89~ty#C6%0kB$g%6*s|rvt+fz&Lqfr$Sv@aW zugbaa2IdLrZqU8eSoFdOY5!pn$8|<_7w)vPb4Pn7!t=BO=Xwqvwlu+J0A8*-D21bn zQ$L~CIY*oy^g2$x!pH+!fwB=#L`n*0CVx*qMPV#Q`iz%rf5iNN%o&gO{W?=7QMFiZ z-ctTQ{+y-nD#^)Kc`;=2B2ZW|buRG6On2>+J1zA-Pe{nmJiS_yAMf3#kJki%hU&?k zQZt2z1jiE9Q%=ztp-ziU&a~7gW`U_WQJF0Gw2fiNy%S*;0|Nr5#YJ&@qQ{#e1j2tz zhx@brpPBcvD^5;0_kCvOrMrtu#XI|$kjwWWJM^^`iM`yFhs>&2-5Qp(-rqMxrgT8H zdR66`#oM6T1Dd#;aiECR-Vvi?N$m_QGK0v1N5n)6_cD9^FltfDqloAO{~O+x%s@95 zT#qtW`ruFvS1$$5`7kFA($I)#w=q@8E}Xbu{bRefY2@}v7&?5gZF=q)``!QI>!9Qt zRc*?q8pjo-$ALu<_e$7B<^$PxjW`Y>>}Vd}L=Ftyk9^_s_|4BncAAk6m2m)&flQe2h!t9gTe)|cUKr|ix0=k&j|VI~=8w|t}2*OxG_6*3Ob7F zAaFQk{Cwt#U!LDjj#FSO;_A`uy0GSmFaEGcypd5EmF=_XM`0>zp!-`((6(?6fI%OWV&!JPUDTEtO8 z&%d1xf*}xKg^h<&t!ft_ofa zy?g3M6}Yh*@gJ{8>u^=tYko`fKcHcc{@pI@s^y1Gkj7jhjuy?- z5-_85A&b~4nNi}{%B`03j_D<0#1}HDz_NHnK6#+3ZGLj%6={_EF@u-+3;n{@Kr+Qa z`o*Cl*U)WRN%PIJhkK+MqW`E^abL9fiD>w5mw?Q)CyFeNvLZ^6o0p+9ulgB5ql=t& z)T{Dld~xUx5J?+C*vykN;er+W4=?TN<8>rd_>y#;{kjH;GJdL6yiPYu9Li? zLcGpbF)Am!)?yv`@n>;17Q6CU)s)$PUTo9X6HVmA44!uzkREH!J89p45?uwe%s1A5 zzaEM0DQw8irzZ0)Gh6hLspK&|=Gq^^5vqhMiZ8?W@fwsOPcMgTM}AqT4(oJPDizGw zhj|QT_ReOC>t&kI=c>1nIZuOG^v-5NWc(ynxDn2E0$brsfgf><}Moc!^Wo zauDJ!Tm4@R!7}CDXMRIp_E(sJF0brrpC#Y6tyO=#$S7hmFF-Uv5h<}r8t1K;Rs#n^(k|L~2i|NA+LRnldIkFa zS@-i-)9<1D?Q-HN&@6`7hdMZZKA98y`GpNab*^tZ#;^X%X*;I~zxq(C+7NQ<>_k{K z&|t_JBw6~lmzS)LiEJH)aK}->H*gy}xhLf6t}aRAQZs#%cnVkMBx#Wj|Evo5(=&s7 z=}#K}9elr5+ZC^5JW+`4zMw*!lBHJ6B#I+bdK7)KKM}&#wcx`U0JO1f+bGb12RyYp`uKkNj0%B6yG-cSlZSq|?%R9Lz z3csW}*i{lhTepG|{DyP2R5l|It7>#&S~7vo!aBoELEo>#biSNO^f4|^U$r#W*4Exw z3;*kJ`14wq3*}Q0NL`p>$4);kDz<2lrv0c5@K2`Ea+OM8qyJ6Fr0}B#=(&Yn*xzM{ zd!S0CS^G04#v)dS2bW7n1{m4t&tSQnUSd~yTtAXCgV}gKn*Fnc6_;9c9-WBp3gigs z3MeBh+u!j!u7!^B(CHpVf}&l%mc)=lc(`l5V)(N4F6zvMezixMKdA_RGFaz*jss9$ z$)KsA3hHy4(+rEN@k5M$!<|#2-#G4ggeT$;a_Yj`gFv6!YisvIY3@8RW)z|lx@zmP zA1eVulRl-c9ME!kq@`YjCGOKQQSeoa9hm;QgdkOT>Aan^#`^4Qw>H-9mi06Dg5_<) zd(V9v1Rd<<9Rsf$*Z=S^;oER0gRgn5*M|>wV9FuOp>eJTCq|Ld>yjw6hr#;g`cnCI zan<<)%cCob5apk4JQU)z-+@`bxnxX-FVbQeT_5l!U#3nV%rOs+8X@Pgz>kU>UnCt6P{;e%?f*+3|NeC-LHL zVS$up8k<6>IX-im^3%)E7;(?uq=#CYuf$$t-W@UxyR5Iy0~N14PpDk%oBL-i=AWr3 z`9dm7zi7k(?*_v@Ue$=vtNH%tN#%HTtW)ni&b~mn0A$11H{+4sRS1>6k@6kv)by=W zcq_tnhc!5o7Gf51N$ui!dx<_gV`0zY(0${{;@N9Kj_qPOGeIlBmJ?;?m z1aoFlF5+|8Cvbb7<1{zFDGQ2>8#w>GXxBx(49(c5j1$CZeGVz(loWs>ExVh#sB#(F zkq-Mgyf}X>LVNOnM$&V*kA;@$;QT!xF!`nQ%x~8y)wUh%o8*3RNR1v#2-CYSLMl?L zju0rF6(hMUtIBG@p^RN8K)2lHH)2ux%4|_btaT?mqRxYnASuf)$4$6u#TQKfRBQJT zc?H_#T!(D>*#uATo;`rWb!dAj-W+q#j0|};8?qJww!Zt`2nbHocZ%}3`0_M?kh?@i zYqjh5&;mb^ekL@X{(|N-!^3xE&UXGpB@X;9s7rM1L&yTZd9l{&(OBO*2`%iFEfpd$ z(4YC|AAC6Qmngr$`3q6jSZ{kWr59v|7}>PW-W`pDE_Ub9Rz+cFltP%|@SFLzDVN8t zBqc}g-Lf!;_T34jY<_ec^EiMd(N+G3;0>RenNm3+Uy)w@_#(Lnc*VuIG_nZ3^-uSX z2)757ADxXmW6tO%K-nup0Cj(P_O~asJ-~7&eQw;Gb=;Wx!fZBC6%yevn6^!+z|G_NkY67n_Hk4tR3(R#^>Uf`_Rq)OfT=7-M%n~Y zYCC79-bWkMSdrbJ>bvMnjaT9i@A&)gG^eN3Ps;}Y72d1!iiMB0n9%JQb`hL%%B_=% zd$^gCgZeV0wrPA*;=#jMo*yFUPBsSx;JxVpkyp;lUf(WFe&7}dom%==zm-Qm^Q+Nn z6GxaxBa+IQB@-qT57$bE?$MP+U3??M8K23kw<5#~Lal>=nE zIA*#w=pluvhpDrGm4Z+%?s4rH;-B7M2`#@qug)G9Np#K#abrImY49LEr#@e5x7IsJ zQRk(DP&{-BCr&Iaw^r)4_%^^#J%DkNcML7d-8{Ot5UfA1c6WV3o?ytgs7JVgZLX(T zx9z^rbW*kENN2MPW8zH+vP164w26zll^zk}31sufvJ1e58+UYc5LIr;Z8>|-JNJbw z?m}L1SY!+53key% zg4-0B&08`<#qp9h@e&`?D6RNqpA^&a1?OAb(~_wCR`?TVeBVORCEZqj)Yo!r7yG$N zrl|L5HDku6AKlFd5b4q?t_|E9C=k^ZA8=OZeq4FVMBj+!o$Gt>FOIEb4e6V?Uf0>{ zvf#>B9RTHV02)s@a`(_EL~lB%5}kX<^}PY+*`c!{gd{mbG1YoE&(dn%M1)mCK&-{| zE|+3&&Gyo?oE{-!w&^D{1EH0>Bx{%Zkpby+ZLzFtS%m0l^)RA9mHf*tJhYk%o=y5D ziYU~*))skuXLGG#!XI>yYVHUyt}(nRjQjG#+_PUYJwI|VuH)4;TV&ic*#gBm8RTu9 zOlRm^le=34#Pn%(FtV({k`mWhFm!^|YIi^QRS&gVTQ?1Oo0fUrlIttW*rl!VC^~Lk zA`UX}R`L{iPSK_MAN%!C^59mREH_WVJy)^~0rf9aPF89kx$gMS^}p61HWM1rtHImX z`~af2*s8|F-Yy?9>g`Dc(kLtlWDMGy^SN@MFIX! zmbNy$zvD_r;O1PL$VgKL{&Q?FpWrKp*eLtvr%}?h>?H(J2NabPMnA@-J zU#M6y)Hxw{k_g>0Ns4ZBtE5lN6`2S(_%*l^m_lv3gFs7HCBWZuJyR1rA}m#*_2KiG zbzvmErh7~0PV(;f;v!I?Rzvuum49V>L@YC-c1R-0EEdQW9V?$OSi8Pl_qvqdgAeB) zD}yx}lcoo3b+wxINtdZYQ+RcwnzI1fye;{Rc$<#oj9C`uQhog#4F+bjf&syJkKCm2 zUNtp2y_;oBn5WmwEbEoau_j>M{WZ8{NDS<=7STuive4B3_}=>rC2jJkVS}5c!^;3K z^U%CV&iGMom4Pw}Q5Sqfxa*xCH6IV}anM}pS2e#ai=f=oBs;nt5)JTbyL*^0$Y#qL z%C)zC0EfV=*`uay6B>Nitc^SKJN$y`-u<=S3!3CNJkx9-w!%A!a>9+ow2qMR!rKi{ z0qOP*xqYiCmYg6n0R$ zMu7&dA=L`il^-6dcaDPqj?FufpI}2lADri;cg}ZL%5ks3WAhw_&V2)>r;(&$Se20E zSpT};msUiw{SjWL4=g)(Xd8p4_mvy@IWW!vd(u~m3%AR|1k|N#7wuZ-qNfHAqP=Uv zDU}v`B4)@lVQ_n5G*2k;HuZkmTPLogC(U_4m(i{h5g0sE2~I$f!5wD~(wILko!)F0 zs#d^jw-yJu(?e7XqHI|e9+u1u^R#I}%<(nB`s9&IUiPM*4EY_aRJu~dG5>VDQBAB^9ueI_?vmB2Ezw)PmkL8b21(-{PRE3st(|NgQv2@UT0kseRb1lF`4!1c& z1hD~MZPfXm1 zy7)BIOuy5dXi6uxoWM7L!NC~(>MpQ+l8`8ab7kS*3n0f#FZU$70HXs9xMD>;eV^3` zUf78Cy6soAq9U<_<2CD(0iuoNjUb~)`?(f<)O|2XPPSt?)R-dWS+je?RjOj!g|%kQ zgI*W|A8mDyFmV?5J-p;UaAs2%2v>Km!zR2szZiclZrbb3TQFDhJnhx_yzY4W9I@Nj zl~UnuBcwVk^=?t20OQ?IW*V``lX?V+4UcfMCP>#K@57IGhEv>=X_1KowLz8!)|$Y+ z7r70dI%N|oVqU%;-gLxBq*&g1-@$j8?oZzcuFP|HQ>G8_H8l{Q7xWk_aJSGyy9OfU zXB3{gReqroQdI82=;}pL_x;IGRD{3{@s;CK$tt&nKDb>Z_-#scVFtoxI7qc&&33f_ zcp+P`Asnk=zVe{g@xDX8jGD-v3W~n9r|GM9hvr|%@m_t1yZ%mMR_L2M-tV1+yT94XD^Z!7&nE`_Q{#gLRhz*r*=TSLn@!3Iw_~2IB}a0lw67&$ zXcLDeWnU^>RQ1E9DmPeK+bA5RvoNR=GW_bC!=0k;;zP-=g^||uO?6dy_XM-ki@H!V z#L1w2n(MFoxMe*1;mFbnvBmTY#{)>io^4a0iQxxV3_1Tna@gfHwa1zWqiI`Ta#LYj zQMekPl}5vJ;UQ_EKAROGb0NIxcnIOXOd$RjrmEl~wMQH0YL9;L zO<&`ZROcrLdX?D$3EtTWCI{ybRNOJ5+vPL)L5J%xox@;fkdn~D^f!}(_fAM{+%*MZ z@dBW-J9?VNwrsyS#82tfZkASAslmhTR~64br!Z6y34@CnKBwHF9BzpJx6OtrVo^tx zZh@%pX`!ute3$kgo@~>sd#ruoM~#*{LD{HwSYTcVy1M)PRrDLm zpEddya3|skf0@*$bEC%H@NBgh0N81D8Z2DIiiG?aoWqt}9akTOfSDIDfGYp_#qJ=i zLS`{C^P&vJZn;!`_ zg!X=>fHScy)bFZou`x1Lg`Xp~pPJMLbv>x6AZCiO5mRw`bmZiii6d3iI#Id<&XoPV9C2u#B&X zY~N7uM{|c9ra5%!UlL$hF|qrTSNg#v!SasEY!-qTM#2YVURwU`3C;I(A^l4b3y^IF z8StMx1u;`q+SkN4<}>bxybd26Kt;l60Z%F8<$H4sGu2{QK;^OKeQR*04X4gRAt?VI z)$S|h4jCT9&xS{R{KY$?Vwks%YX+%rqGuddX&br9nz#z5H(edEoqv**B}2P)_2TAH zV|V^cum>Y1*9sbE{GD_dV9Pco29ntqdM)S(A*9Bc&-91sQLCSESdM?&(^v-BMz#n? zB3spSF+pohL9I=^_)+-zEEoTaM?$uIbiQF`x@o6u4$|NinVo>NklpE{%fJnVjJ4hM z0(ktcoyj%xvdu=!c%MUw2T5jb zbIvvSgjfCoJ?eA%03tSeXx1C7^1$?Es^o5sEmj#JOS9rEXvdzWMtqzKYz*I)yfQ?& zuV}VAudTb!C}aHLsJ_P|#$CAJMSV+}Rjy28Ti)Txbrc#PVF6REMA|m`5$hQn7P!fzc6PjLSXj|jI)~0&&HD!!MBP& z^tjk%rkvq2+Ere2|8WY=s_na3;p8-!7E{eS^Jp!0tzL@rTOenL%2qYMcR|b+pM>|F z%7(bEQzrB}u28RCh%H*Hmpff+?!b@f&)IjDTyuN|9N;6B_o^Tyo3exJ7QI1l z+y|S%)r7@u+`S8lWTu8)1H8B#w*Sr}VLLe}FyXuQBbgB9y4r)u3VRtpdcAU2`$lt7 zqUg0ttD(l~WzDTPIQbO$Ftz3qz<%O3N>H=K3A3458a~q}=R~I0^MDFRPD8Wdik{@L z)?nj3f$I-R!5|CkGKU-o0+WC0X#2E$)v_7$mr#L6WSTu==cbH|5 zn>D>hVmr{=_HiK^nN3}C1N-d<=b~cqSZDtbLcP!DwC(^n)Lnm~_!r?`;m}b*HnvLf zI4qdo`fm;L`7Ya-xXOEwwe8#?5r(^A8W8#gWT&_EjUutYumuvG7MbG zyUA&=Hajn&3)tpqdt(RzydN)m&Npm28AACmteSPhmAvjqom!UonOcFsp&|Mns5a6q^G>Q=n%RKu6xDZu#rkv7^vgL;)@dqGOmYV^MBmK|5Kg+0Sb~@a(5HevTs7C zENBHkz6lqP1!;8=yMX6Ot2>#NC}!-<83QHrHCaP%G)l7AQ(W+AA3f2n;9sx^B(#{= zv@DB;?#FjE0keuv){e#xPFn(Z7;)lmn1{;c*aIO8>OX*YMUym;Zj#Z)Zq5q|9>quL zELk3LU~1e4H>q+dgPWX4l>^jyEjnj& zOwvZY;wi7|&z4ea2!@oK8+MJg2f6f4ZXSJ><9V+>XYmE4qmD>A02spv>hdizbmC=v zZn@*1lFa4tDqOONON2zh^y4KgkmlCHf=(rt&dlQ9#@ox5tSeuc?#&F+Rkhr8Gc=sS zuYwi<cUT4W@ohrZ67CFGLKs40nXOSs}T-OyQa=zAfG^nnY{6wxKmeaXT`!ePvP+oiKKJ6ZZbD@?qHopC(o_8SvXIup%mR1C4oMHU zW1is7^epP*ES+if(WmeL53%tXyAMWlvZf21QC|7C9nE_{dYpjoM*nj|nEv%Xsi@C- z_vVc%TjIvM9ELaB$Uhy_nJy^wGM$fpFW88dA8M|H${(225F^jyoyFv{7%WY8_oPK` zZR*HhA;AJ;b|3T-K5_0vR{3UB>}DO*-K;kv{_E$akCxucphQK$1l|F?6z zVLe1<{V*3WAIl{$bK9!ZiFoX!tZEzZ4bD)d&_TE(6f=P__~4uB zlvPf}L}Yr$dgI_=S2R_Ud;xanz``YDPn6@E4GK+p#i7OW&6?QKU#r^t@)W42{U??M zgn1=Zt<*|eLNu$JBrM7cVYq6b(`B~_E_$PB)ElkT0T`R!Ulp~o*?wUP+(j079x^-n)+8CmiPgtt?+dJ6)XocjNdX@kd?K6BS8F2 z6R8xsMlH`Z-*Yr3FtG6e%$D8u(691_lH@A*p*z?8CL^TZn zkki1GlSSTI2uOZIgI4R&-BKZIaWbQyyy_}~G$H8DGc&Cle@-ywRm}(H=4dmm z=L$vUA4`wm;RDH29YV$|QR@fqZ`R&9HuP(cY6?#Jtjh0Rc;-GRdG?-35`D?;FqkfZ7E?e*3iBYS zPnzOk_D>f~;w&Czd&R(tWV_`U$>^$zrVZ^YylmOMsay?3_Y}So{S8sLuhkROZRwZY z$EHiZu+dJ-@otj9tQ_bmBHh(of=h2<763rSQbLKei27y9#*I~-j6LYuuG2IVF34j3@{fE@AE&2n>V$b?S$+#IQw=60;7CE2tgD)ZB<;fvgj zOfK9fip9Pn?a}L2`tw`Aki045a(idF_@nfJBH-hZMMqgXl11w&rAMBcl{0|0OfrBQAU3W|M;eh`{#)2!#rEfb}hfLN$%oIESvKq zxOs5GU`C~<8*O_A0uV>5I}n)aPUOHVa8O?w`6$$f%=)!U}II9efW zg)?9AOubz&v56^X7_itS(ZAEWVn*q@EuD{=m~JXb0bZ?OX7O5b9|wi>xTf@<<9mg%;^!7}8(CX^Oj= z*3KTFQVo-hKTnWXnG}W2$e=nwZI2~Ay;nWrM;$Xh%@)+;rc_Elb}=dim4)MOtyruX z)v8`y=9JX}`hJKwB#56%cC4>OA`MuYOmdMu1m{lP zcN?m`T{!cfhw3QG+csOC+_WY=XdF7q9!pXz?b1)Gy+?)%@I#6%^KK=)R$&4e8|(58 z6pLvm(-Ic)9rRYXx1oiwEn&<#!uvjCbzj9LEkrGZ7rvL^Aikogg-S;&wDj`M+8Ox* zf&NwDnS?_O^VmoS{*kMeyqHW(2JT8o-HKEy^;??3$% zWbz1(Cq{r8?f@raQa;b_88qC^xMmugbF|;%1G)wK=j<4S zvpT=>!&`&NN z{&K9xJ2*klD!?3Bz1e}o`n#;kN8hWY%+?DQm+Se-HQ1#kS>FjolhgOjv{?00nrk`h zP*!R3HJF_>)*qX6m=Uv#M$7a}?GG+zTv*-|c_+Gc`c~y~Cq`BE$*} z$@Nf(E`VIWMZd_N*eDu+rTuETqCva2bD_%3wXkJ6qAFnjcudU>=>ZU8|JcODDNBd{l^KsUAc#1UJ#Q2UQC*(Ie#%^ z*Q~bx_CmYmigrO}k7m7b?Oxxz@?G`b2u*bpN_Ax+@2Br)nT#)=tvufU#UlQj6<^?& z{(n1RF+}MVInau6S-(`` z8G>MDG_*8!MUrXh3ZLR7XVj*O=tziQ;x)7^zO9RI8U3&oz1{c^%1D1&jeFRdx8hW) z!(VNiq*p_4ANL3av^%&%Zd=k?2^j&-qx)#getlydBtdl<3NANKQ0$U371byhccH1` zM3;OCo9a0OlAFB=8CsQoqC|_k+H=ZP3ZochfrL4t9WDFb^uUD8Q#4$BahkUx`|tv> z{6HCR+mMHP1D;dG>D1w^}kTGxL)%>0cnMP)_u46WKmuqkg-_25qRl-Rh!wAnS z>kpt3#quwPGa|b>+VBC@KL*q~jr^LlJxAGR%*O1x%Hg1}dHkEu`X%D+ciZp7^PU$p z;^v$yy}wrY8=8p4JxopM&LWrw!29~EX)nq(<1}U5q9sKwZ)pW{HMClF1Q{EKLFYI?o>j1ERcU zUqgXJY}*o>m@K=>RTB0F5@byFN4sP=ZSkF5IaY40Sos?hlXf8OQ~CQkLY7!#wA=pN zi5_pRM$Wk#SCRWuNPEV_@`vf4w1vz(wOujgfL6GaGrehe3f+_>Dnb)(*xGH7fgxI7 zH)=C92xI?xtNEI@&22?gm*}jU0hqbUIcTfN4VH!PEM4jFQw)8k8xmQ>dN1b(U7;^> zRO*q{(Z9_`x<#&s-47OaGso*?lzXRI&GlgVwFuoR=DVS=L7dTiE32t%KeooQ6-C0N z14(SEVQ?@l8uar`fL~GuUHOgES>+pNiG#I8_tcEl4Y;R-eq<$YXc{NE+iT#X*N&VO z{dDC|03X&_j9l>b9)yeYGl&9}m#{Nyqu6II*kQ(B5UK|FckqLMOdrFQaRlx}Fo1U9qeQ(j>?`^j!?J zwrCg*V5rF~$^24*jUyZIS~FN5Df(Y*Oan)Xhko*W%O)4jG*E8M@^-zvc$`h`MJ{l^ z(bU@cQ-1J@^9=toY4z&24C=K9hO;w05wkak`lrb-eQ>FDnsi;8Zn|dc)BwM?0*8okF5G(7gC{K214p0k`P{_Jrb-mQ z1%Lk5C8tnD!rcUWU@#&eKW-ne0x$l8Gt>J&&BgC{4%mh2@K*+^t#MfR*Tpldiy)=d z#qImHX|4k}+pT|;uA$2=pkwm;cFKD}Gkk05>V5;avBg71y5q7&$`o-O=L3Hin>!6K zX&04mWb35l?_|sVA64%i&2}69k5{dtwy3Q|?3K3m>Y$3+V#Z8qZJ~(0Yg1cM)F^_W z8ltslYj)VNgS6Bx5%Zfq&+qejKEHGFkCSuWPTu!@U-xyr#&uCFsYM5*?m2vsWj(g- z3-PfFO3({X?gUsYWKWIkD!iyQbG&Z8f4>8w6I4=q`x&bkGDos#De!wl+{%g^Ug|9|xJhrq?A1q_R?)|0E?H0U4Gi({)J*8`mnwA(#-A7d(yM9+c=tzG z;hR|eN;&Lj6+peaBVfc945b%B{X{QYtcZ&%luv%IjS*>|9199O zmnITF4#09LTT6Hm30VfZO-yC!GR_idU0LcY7fWvi)dfZ!ESV%Ey?N;gJ9xgL5Z18f z_|s(PM4}{nSLX1Q%g{TLCZyTk+hEtz zX`cI9ripNx1DL!m$&rNe^LD1uMX9NAUm|<*<(kk&=t^KbBSJdG%nQXd!TN4`Hc*sYTHHD+8_zh>-B$UyQ^3Y2m-|D21gCv1Bu# zC{JJb^#7a`#y8wP%ec(O1lA39o*Q2iO~4HfN)NQk2JE)96+)AwK2J5!Mhf_Vv-~5$ zA-{8qY$J+xlZQY}@?j~IAH#&9nQ-!5dhvSN-6HtcKw8Y)pP)9Ij;T#Yrhl+WqDM@~ zMGbAbumR;F>({yz9?Ob5WG)n+>qqNKPyjw3Q(+$veMh68Bp{)ov{+Me)!r6R@k}Rh zJ%$D2by? zm4)k2_$&I?j;#VDIxz24=b}w*{$}o|${BHDQqk10OjWmZ!6waFWg229`^SQ)t(-9* z+n4P>(T0 z0~X=poyCN{TLgDzLsqZWq!#4=cdAaKK{oMMo<&tv6x5o?_hm_zJeV{Jm={k?=QS(I zX8m(8ebqYu>X#|xO1!b=S{q;q=k3%;tXQ|pl{44L`WyM-h>viIS)+OYxD*%*w553L|zsie3BqrB$2dv~Jmb!3`%JEv} z*9KU==17UBr17dCEAhlYQs}FBO*0M(PD}T|RO3O>2*1B6{>A>x9TA=F| zcB^APNcoptHAIays3xaKk6njYT_vUdU9gc{yT%2mtnQI6o1LumY%j5X6m?RP16c*e zHFG94c_kxU-e%I#SIv4=&cbKTLUTRoae`I1CjnzrQzW=zd-tRi5&Ig$1v9bk!0k*V zCv)xUvjnwoxJ>H*<-e*1x^S_<(I!&SKd&p+w#n(EV)2zpX74i#RH#|1Qx&EKOQM9J z&fg>}zT2>0zC`?~Mf^z_GoIFV^7tm~`MxNngm7 zxhMU)I#yn4Q|P3vWFKHMbf%n0(-ohZ4IOqHS<)aN*8u{-=ApsQ^1^R&b5d!O&+ z#S317f7-DTqL%t}+W!#E6=u7=1LXO9 zS$lMTW*l&)va6}Qyur5kqp~*Z=s{+S;##atT}5v+F&oRZB(nmZmXitfaXEaNu0W4) z+R5(Y*HCU1yPSpcr%a8+cI;MXY>gxP^Whi|pz4<E-wb znB>|I=aZBds(NlK!L;d4Hj!698uD@AbJj)zpK9&FZwD3Z{~+{fxw1s&HiXrXuk7*Kp_z2B)Lbc6h4EUld8K9F(+FGLCc)w2412|H@ORg#TERd zRYM^CH4ao}(AGf6=!cMDdvM*yMTu1XK^e>%WJH2zDq!UWSfk%GdMP2x1ymZ8szPEG@^g;_Q35-JWoy*S$Q zo%?k$N7deAy7w+>HCpBC*;8nImQmDf{pR6HtP+I|n>(rtiqfpygHx;_UbKjfEzw-I zmxO%yeU0ngc+et-?&usPZTlKoapg=Ei4d!d!-gnGhRqtWe~Kea$kvAprlR?>sd+mj zea_+t%L{fvX`#8Fer)+wl@f0Xr30d>p+dew192v;-JY&{%AB!P=(duI-k6|AbCZi1 zoKl&gXUh-|gfU2Ui^`^b*O-P)$9BM+KY#f{K+hQT=wpOfnN((wF+TnCLmK#ltYcS6 z<%y5kAx$*>AL46+}^gCAqhPC?JhY}n6+Sc$=T^gD;V$K>Ldayoc1h% z{0&|@){xgz4Nda@sR}k9F0t$lb0!5X*hBu1Vc$)$nYlyfP&PKaD__iNy@NTiowEJ$ zY5e#~#rbuR2N-;z$itS_xRohtCU!+Y)eNvEuEi*gt^EDlZ z?|XFHw#L=ntjKUwoLDqN|Db+Fr=L(kHJJqYZ(q-#T$jaAPD$sVC=K@`jZvo$Odhe6NaU;p((LdswP<}YGyDai>RXW&Q6AiG zuJTUrAM_~79xEwZg2_wj8GW-^)g&MtHf?s%-}$6-{=4xk`WeBonkMzR(dKW8wP_SG zIgZ!w`8-m<1Q6{pDJ4+x;!iJ!N~BgMUhFiCJf@`K*s}N=FH;{}g$UYZ1odk<#8t=${JxhL@Ce&u_%W|Crn@)*!93S?ou{ zNU?*T-=xEB#ioqFP-d(hxpSw2Wr0d}M)loCO#8lonm8@jSh|Hsd1BGb)m~=(!&-oJ z4o4QPD0yO0Cq`n=%FNzQhClR~7n++|{APXb`L3;%;A&G|i;Nst3KbKv7>NOiY8&iN zIByjw1aGxH0mE1!;7u0#)-boeXv!Zq8rot^aG2v0n+P8fKapjz{s!Oq`-C|cc5-B; z*yEN}P!r|1T$vi{Nx#?6D32-M{kh$Vzdbwf6SC!=qL8m{pw+9W>H8O$@c=Np8OAn# zsebR8VEB3c3&jQbPXAu&{>7EXw;fpr+1)LvLkH6_o@z;kI+*j@sU}D=SY-O^UMlU( zyaDE5{lSCJpoT*vT;pu~`qWq7a*u_QSw9A4n-@&$<86bncM)%VuHO9*w1?Ri$J7@_ zDFv^xCFltfHQJDX%-NV(+U+dfDmQ}#%)lG1^s@QBt6wCZ+$xJVoBX0xo*m=a(AUPI zagv*~!?_gnMByoC^<4t$%wXNb%j)sJXBZ;pLT%0{w0Sp!00Nh)&J*p~1>Z-DtBe{wm{yic@&ZiU`=_#wu4v>6WqUOJeW|I!^b~ z^-mKA=~8jXaqkwr8w)fXey}p|VIJ!~H}>#s*sM={j;O?N=De-DIAXo`4Q$1UIBa6d zV-YsJry$x-zjs(axo{|}2ZcnKk|$eg%GJxDGf^gNw_;{V-L@nTYhf*yG5bGyC;vP| zY*oFW&$Hc;*}K=;PV=TZGGS5rkX5ARcQ(jsjgpvQej3IjxG=p|w4v7h?Y)34t2K^u z?>D+e_vMInw2)$MvSPQJDP=QsGuIu{jiEmxj-#rR#-NjL#1Dnif%2)Hpkb*q5Wuk9 zAlqIhljoWl0`mv7plyot+hvWSfxAAaGB^Zz7{)U1rDr1Ub_CyB0s7u!H`ZlkUW_Bf zb*qSw=ui!58<}?J9%uijznZ&I@KRHv$@fVj*4XVnmlb^#2Vav+`jc8Ng*W?^P1>K( zw+B?4j>8i10+hC{yxE%_5~=xXJcZdUg$^`?p8aDI8q*ypXFkdH6~+FjSxjKzzZnu* zl0{FUM+Sa-Uo0uV5DGyh!OT|Qe}+MmPWg!H*OuO_#I1?Q!+@9Kt{EnR13pKSwBJg#j^n(LVq92`Z6t`gPojv|2GrAn*!^NE1=bF@g zs{JQ@Fql8-+lj4~w3powhPv z=?7D1>ojFD>jw233-~n_1K*a<27p;!82<%|=g0-83;7Z5#!w>7?kDchq~|Av;2BgM zwBgA<82=8QGVgRlrrVc0ls}!6^=K~r-m;J(8n_z%nRZE4Xujy|o>BExv+{(3GSGw7 z+dzW}g6@vQWdGwWLx`fS>ZzvVVeYqoG;M!Tt2s*bn8a%m>6_5C7fgAMzZtiG|0vLI zH%i@=eRst>8XWpO;*uk0HH6{}vYvM5v3Gj|?}<;1wmQwR(`!utJEK047wf=s=Kh0# zA<6HPRMUUm^6Tiztl`Tu|31;UemuMCxV*0!MOe%J33nYNiIYChFii|eaXFz%vd9U?y5 z>sS|%k7uv*WyS}+R@muT{0)Y^-dQqUJap{%A&;{rb}J-n{1e6lAsn$N|qQvi@(AesV)`4^e#kD*gwB-(i{+tot{GBDW!9ys?HTWr#-_4T@ zWx77^(forbDnJGBrJ(@@Km4R;D`nS<(sW51p-O9qMbfs(Zf}2={BFx6b$sUEAb?=> za4q+m79HTt3VLpYn*a80h`zkc0;u~1U#dPwVpDtrGc8(3I;z4!4+j33b}<9-?y@Bz z*_mT~^=a%?-`L`TBmWoH0#)Tbp;V?R_1vy6xO>DNvwfo1)Ug zdWsmtbgp_$)hG8E25@B+so8O|0&T09*4T->XM{r75y)am&hQX{*_yz zB9H?LEYIFo8s#oFudvfU7?rzncbXdEXNubiX&<6`h;xP zUc)Hf_pq8kHOBwmK_xAhdoDKo+Uh^WpmY_&lL4N{2t!l5P~}o z{k7vW*Ixjo;vC%!V+uPLr0PR)l z{t3DpgF)KI6CndD!85p9NEe{wk7Hxy02+wO`}ot0-u#bJfRp=6b1gP?ntvHF;y>4D z#*7>Z#`iwu^6~>+id0sh3pFci8BA_;M~a@UH)xzd*sA;fFgBqV#Oiz{z?-y#%0uQ~ z19&m@*Y~Is9iNbFUcvmlUZ1R2F?>pfnR^V_WT@6QygeDpE=2iVtOhtvQO}*J{SSPN zmd#wPrY-QXS%R=|yFN@>%pR=T?3^+`#ESNpFD@Z0hH}f=3g9lkzDfCr8tO0|d)FJT z=ZPH55Rz*v6I;V!d&9w~n6;<9UljK2k1v)v)R#Wzv$|K(@H%v>b zUJO0v#Fau@i7<-i6h08$exG!Zvu?=esc!P&dq@%Pjv_7g@Z>I6sylUGc_iFR^*>qU zkLW}SNg?t_n@sO5*#;0~VCnE7Bwk_j)kY@XP_EGUf3yITyVTcE4_q>FL-t4tFuOl^ zQ)_-hc(_(|UCm+it%e)(`#AEJF!E3lEPfCRV}BTMR{59EB)&|UQr#?{)kL|5_GI?(@acx1?T+1-ciqo-mb-{{FXbkKAFxoh22+HXI-kn-oKU7At zZ=fr$n*QC}^rSyHayvx&-hMK@O)NA06JwpM-c9t|lJD#H35cqgT?Lz5jYoU{*;BWU zED5)UG4v0|D3p7Z2#ArR%MJKYS*q>ySMYtbdy~=0w{29LDULpUmpSStxagBNsfI-g z@gy~b;AX5t{~Hpdzqn0I?)wX_)jMi}>N zvg@VuU2fleTCEY(8^Wnpa7-I`coOA>VPh_$+l`)}9e&xgxB6EyLhQhlHhq<0*mTHa z=;hG6p?)z1m(LbOsZ6b9+QKm!UWJBoOnvSqFQj;1$1_G_j()Kq;&B%BeG|*^BbI7ta&*#X?D1#K)kV>X)lBVu&U&C*&q*=#RRzqKU#@k35DXV^qQ?_Ff3?qKpE?|Luvn5#Wz=WxmZ|es znfwAZS$?++cnprvj!70RV6$`etV-a@nlgmh+;^KFqiZU9ZXd%*T_ct&1<0gmw=uH| zV;jv-^kAkh!}s`z*lVa^D!DQcLpwu6rCNVRf2jDF+}_i=3iJI3ocfKSi5-NW#8=Rv<&CD7OGS>4=pTFTsybevgFVZKuMB)elRn`_~ zs(&any#jIdxu0OFoo!?vlfbCo1FQX(<5e^VTA)T4u3PrwNwq7D?u9lK{3u3jd>0wW z-djvP;vZORRPD<8z1DbIK9@QR6CtT)Usvc%XUKymBAs$^`QE&T=e?SM8aK^cq85Ys z)*kgJYbLk7>@Uu_$uAx6EekJs@a{EBh#2jp*>1Pek1w7VKG#XzgU7C0NY?r48_{Hr z*z{)9WY(9%hi;DwC7LKWAm>sYl-v;wydpvy=wpF?0~Rb}QG}1an^fgWNQkG=Py&~t zCThu(CwJ&S4bWYz&Mbk;J~2Q6^kFyahbEoSEz>K5x61Ib_H@8!5lTgw!ZO`*Kv&0M zm)AH3OgI;5U4+@O;DaoobgPPjj%aZHm0;niX<=wlG@;8<**&upjnMk{f;0US*cPhw zXTH;lF(I+nhm-ADi12_MNRL@go7D!Kv(jzGrkQ{v7KjsPuJHPYRNo)YQBgc=vE))s zRhm;Zz4{Yo{Apq$#W-FHHhOpIc99P&D6u2I_q?;_V$1qZ zSO}{cj+!3pGbqJ6p5@=CStewhb!rs;5l5Y-Vc{<|;1pQsm+Q z?a)Nj@vOuSzCnOYgoK6{;QW{VcnlFr&?Qu&&4NxDoibR|ru*C`o8k6vSn507tv^J( zk52_zQ8_7{=1OqKG-!WJ-_Xp1SU?dl9$>d<7mc!( z+(~G!jNP0}*~Y^J?KJH&rW<_%VpY%jpuQ8I9|;l-5&wo$C+Z;Oz}3yT zOq7}Y-C~wPJJnco*SMDIVc*}d$_KL`OEKJ^P)bVt1BvfP(Ai4W`Ad6PiQu;F=PI(> zsULrkMxKS6K@c%J4A^OUHXH&Fw=F^u{3nnRyZ__19yk%?RTjOW5$2T^{6B<+&R2ya*SIk4UBu>ka2U%157EGVvzr0dbTwT}L-Zyi;c1$n_ks z?zSdv*~JJLc5PnMmo(5hMBS!q?VDr}<51|ItqJ2@m!})!T@FeZv2?9>)A)M`qw{Ff zsI!@>6it}#m%5+uG+GbjN*L?h?~|65#>n+fAhRn4{gVgf=X-o0Bic>oW2rE!>!aMF z-JJGKL?Y?r`DvHJErfNv6lBB0U*EeNoQLJQE!}Rsx?-9b|Vi512L|Y}>PEdOUc|!AGE~sfQ z;0cPOG(s%6^6Hx7F_-r4_w}Ftor~dNT>y=L&z*Y>5!;kY%I`#LQyE3d>vASmH2NafKp3y9oPomWH?Jt*=1 zMO^jVWlh+Tb7zf^t^m`63kh3p`Wc?EFXwXIP!mGjrX8Wbgvs=}`GC5_Ncq#sN`VqP zf0M=UhZJxx?$-ItOf5aHu-B0rOYTgEjghD84&BpNvxSSBVrQd%hNkX5l^i)_GF~OZ z>9x!4t+w?K(i{;Iv?9>Sq2szCnW=`O-}2zFib<*LYz7|IRq?n~$3_l7B{ud%Gy@;bIRtB*7w^ z(Ir^hp(>@ijtoa5I|T?_4#{LpVxwxd~r^hb3$1K8Wm zs-;(dCBnak0+lZks*bc(9<{gexBgV03X2dq?!UAECe=bUfUf4$E=0sy!Y``;_1U7`ST0LZtv~wd zeBvx2!Bzjx-(dW2@ZvRCd@-IS(fLN+yZf_+fY4V6-1AmJDdHtzmH>SsX-4vk-0jY{ zep#l6;tcbhk>4X1Y`Y^TPp6$U6Ko&5>0`kH2^k5$mSCVo-h1vlW= z8(7oKKWz7y4|bVOIwgf z?&rT*iZ`(2l#2Grf|svW5@z+?+U~~IUIK{^Yn(phDe@Z!a7R)!2vUkn#Gr5}ZtHQYwmOXA6MDx5>f!C9Um%!F77fMgg zX~~0B>HHZ<9CArx{e5Fv>dUplUKLBt8hhDb65N%UfEjy~2um;H$#q3F??jWYeQJqo zclxFc+~g{Ya#zb&tEWxtgnM6~?iW?6f>s)> zFw_la^dOSO++TR%20={?&#|@Fy8_?3Zj&SOU#l#sfeuq0mE$CSlk7;(ECH7E=RN$R z{(;IoNMd}5T=`eyq>Lk%9#$eOoeZ1hnJA7~{ne#lSW8ND_=~>!CW_O3ZB(GtEyhj1 zH+VuZK~^nHB8A*B26vb^m_nq88>=_RF7N80T-J4vZqc5kSH6}Y{rRVMx;dio*OvKJ zJB!?*wf+x$An&CRiq0&t0xo_sxZ$3a83zC~yijfeWpZS*tm(u0n0K!xR2GsWAD5#( zt(#%?Gxi}Qfj|c>fR2_ff6c3hr;OdG94{~%0his-p#Vq-M@?MSd0^g0t(}>9$VRgv z2Lil~y6qI#ER@MH#oO>8-IOrXHDRL|Zuyd%M3dPvj+h?w3Nc#d@))8-xFG<8riz%E zGPM>RScS047951-Vd4Ert=D_E(6av%zW`BepBM|qr41l zuzgzAYC5dZ&I|aizmge9at_K+5N)C#Cm8ODHc8eTl*${lQcq+j(c}?1mVd(~nm%{@ z_RqV@qOZg>M;WZ-=_^hDI3vv){FoMUuEwQ^#Z`}dmO}GC%Hli%{cB%*nRQcGCrpXLhmoVWXpeL?8{YHY$q?<+XmDxB4i8W;u71 zcjcmK`T?TPLaku@!T3Av2m*Uku%^4qC2C-jo{Exu1T-LuCCTq#P zSf*l!w^5_7%jB!Gbw+kAUA+OYN-sXd=$iY{(=81ZMYw3%6R05_&Oy_k(HWDP2Gz)d zHEL9|$@U_MFAmKU9Mk+%rQc0YoX69lNd!qQyBCS3RSqR_>afWnltmwsH74tONj|r4 zdcnE#=dIo?&9wmWjl?F)+RL)Y%E=F>xg$0u2p37;T6tOT_=I)9j|i7rZN%Q1e1v$8 zWtIEw<%$k?mbOBZaewOJ|KR79b~~fBX?S-7TX@#sg!01o$J*?c!>(`Zczz*fjhUt> z=i=}5zY*UV+AQ5au7qr|)jbDmEHX`&o)>`tY4WD8RuxS$y8cZawc>mPsHEabiQ1yW zF}56uWk8}`!Ht1O9>J+flml!zbVN%0`v-Y{b{zKeH|pt1$NFGv2}FVIK$*+~)3-uQ za#6AG)^Bg2-GNo7Nfv}8|2;K%u}gg8zEUf-QOl;iL(xGZT}eWgiQ0IcR>aR^#nDok z519|jgm3H1#Oq-5msQRy=Zl#Tcc0PdT>E-BA?reg(HD<~j(DjaE84h!$lepsLCKp$ zyqqMJ`^oYegU-F_?jr%p<3*z1quFBM=#lH1;w4$IHL@{f%SUmU z^05pNpWJgEcT@jxi&q-soivjd*6lXN;gmQD!hEn8ogZ+Uy3**VFO6x65ps}NcBPzA zM_GbFpJqSH4uOEPqTgKEJr@x{6u2wE-N8B^2(lWw!USxI6r!0@5V-gmxKf<4TgVhv z>VlO|GBe7aWi<-op13)t<59@}Uw;@p*+vN6vvOOMohgGqi%qpm+Ufw%T5KSRbs~Ll z0`+0poaR8s6f$_zE>5ILNwzO?Z4v{w!XN@*)MuVx+x2;y_$}!Z%3w3 zS@;6di0@^VQ(Iw^#cHT-g~Su6;ap2>do)2`c`+g)U58VeR^<~NB32X?$}aj1>^3?U zH^gr(SrBSArwefmc;e9PZTk$-rtr(9nv!-evKN`=X<9@q%z?>8_5ro=gAbe`!|QGn z#P+klT<3Uw;%4rOkgN7E>z|@k+%gqXdR%7=y0JV?KBu{~DO8^tu6V>CB-DDLw=*?? zSL(7iMUl)c54FICZH&rYqN2p{pYaYf-JhK~m@(Hk%!88}1YNM}eKwFrIqeHrl(UDXWt#}_6mY(>=s-?G z=OG@>`HnO=>O&m)+m6z_XcV!FmfR9lr}E$Q-?nPMq9t?v#7Nnh0)SfjqtG_NzNV?{uy{#2|S2)>eEhc-%exbSjKO>1`bVY z^O3G#vT%xY*iwonSz4B&380=T(b+}1nP?v@{<3m$fDc@r7UM16l(mtmKm>K$Wk(i~ zDvz=^C7COkfayQ!Rpp7Q5-WS&z zLzW~cZ-6)nT#c`Z3gLB*Sey}y+p_y*iQaxmEprcm4C0gImwUn+hrG>L|oM+ceOI^ytAv^ zS-<-ff&SVZOybW%oMfIs*VJWDEg<6knNeVX&T)=T5_ifwEvS*I7UKg2&f($oN4Iv1 zrYU}^^~hk_Y&=hg+SC78P-IGacsc7Qcjf!XN=cXFJi8b#OHS+n-7eEH;Mf=*oCsS` z*BpX_{kT1fHa$Idg>h9Qf!w1buWbXL#AcC9@>l}$ZFxVlzl-R)Ku zbuoFLd3FAqzg+4K-{;oI!!Xi=Zz7M?Y>`3gzO-RUVndtCA%)zKmiCD1IkoPIz^XTw z9L6ta#GsEH3pM7#guu3gXx3etcN_;H3hl;0>n}pTVUiw?YCLzK#l=AewWFmk?4LS>9tV7T}*cUea;sk^lW7^b4 zfhOEWUs}~Oh1pK^zdO)BSu0{_O=lE9`l(`BGv%f{rXq;P>UWVrtrzE#d-Cjb|9$Ax z5Jxnp;`)3ZT$gtOKAX)VNx?(M)@+W>lhg5vAWVW1)C-|C!G zbGa}#dZJ>G*lLD&5n6s~#ZzEgo7pId^X`s$u%Bi7U%Sw>ros>fFWi%Sat3n&h`E~L z>ua+@_TutWiKlDuL|3xq_Y>OG-_mZ(C59Sd*(kO<>Q_eBrgg*YET)wW?Y=+ePQ_eSt%Fg z@xxpzd_{DuQ_DrZ*P?A!P-UgBehIb9h6(^j=gv@t!i*2!s!8)iS z(x9y!KjQ5!0?`Od8LuxH{q1#+XMKOgA#$oP5ENr4^Pu*efHJ6W+ z^e8E|(^or2u0M^E?U|^84&-B^8FFlSg4j$YgI+pi5<~xFu6C1t_U|6)l>mu!HfxT;1 zB|=0`7R^kICOmjq1UV^$0V>_;#ZoP4nY}k$vQ{b4%_u2KuVbN1)6G0Vk2hoH;GQno_#Rw2x=9O;_j+2$O)ZcO7A+cin?1Yep<7R5k_fb|J5%FmP(h7^lZb>VP1OBOd|*~_1;$JbveJ5i z7IbP97b$xS6sCRLQ7)d+9@brOy)6xv-_Mtrj*Mz&`@r?tLqV9eTuYKDrL{5>DzKiJ zk*`TtB;sxexAxD`PE9^ohcu0gSff`eZuvI;99Yz>x~|hvs)cnToVJOYx}*k%zFE`? zL269}KSvKPE<0WvNgbRPtSyd-pXuvws!W3IH%VM>vEJ!@DpZS-c@)>R;ly4#83lrA zivj~xd!v3D85(|qp@hd#d4HSB$b6_H`tUoBUK49XTb!mNBqW>v%)dM&+~gO1!});E z($xM1M`3t5Sv4_daTKRo7JEY2Fq`A8+;O5Y?z$>=k3exOhX_hDX(tArH@n9q$299u zl1Be;*`G(R@0!MV!iolO?J9}eyd|rVQSSN^z$R3bh@9_qD`PSQU#VC{*uU0sF<-gj zm0u$uG2@1E$!fb1_BpjNj*zam>la{QrkgxrFIRY137WiZmY0<45;tj!D|Xd5wG-oC{8>qZCZnVOp^ImmJvd&vGB` z(z8{FeA7mx=}QmH!`Q@vV_@}&0l?k(6jg;$lf%jcg1vhIQ#q~&`r>0B>Vcp&kf}M* znf8g=i`5-RSh@lu)>3-6e5=Qd@;WTh#>fYvB%P+z4xk%6Yx?H!M4=D~ zW8L@Zvo!FA)dvd5Q-k-p)N=HLDmoUI5=~R=S1-fZs|Dib_t~c+F0W4w%0|ccl6FTQ zMJ+CC8NUaJnxFDJK|}k~8;B4kqdi-V|9gVRDHfy5{{6gb|76wPF!}ZC7Kne)tQ(y{X$qr5#Y2@v-DhFE# z_!@B7TRo`qf4~;i<+zQ==Iz}oGlg)<=V105i;3s`V8C0v!$hnsRr>Jx+oY@?8iS_Z z7s~x_gUiRQ*@9YSALOpH!2cQ0h?MH-GN0jqP+mq9Cm8XzDVes$MA4vUE58A^By$%?l zy-_Ez4V827pQs7UZH<_jlYl@QPf}nEBl$;MxBjOB=G0Bpw5h zQlq6^UL6Zn78Z5v^ZT@~p`lmf^VR^TS9wygKK9t*f7o)SJ1IYA4=A3Aoo{5(MfSU# zIc&A@yD`?45w&2-3f)09H2Mw6pG9r@jyQB$PlDJn{Roo_lHf$3?fI26oq#Za>){K* zZ=xCh2GSq$v92de50&R3xF8iagf8%jc{UzbnRJt^=mw{yaYS5?Q>E0LETbB!-Lv(Y^ zJMO0Skz(afPE`61557d>muq(1B)N_+2SwKnXqqs$Ic#>r z0!+L*0PER&9-oHWOl&sKWebn*N-oBx12W^v$*xtIi3GTk>;E)Lj|`3~^;XkvR}>wi z-xGK_HEr{Z2G8sfbKtit8-Jx^fQegG@abPm39Q5Lly}EYb_u`iOVbGWl)E+EeJ*;L z+9ns^@l@;RP&GYQp5=>!?lXkX$J4_JZh@fuPp`7)e%4LC)X`E>$(Sv)Y4*S?%|AoD z28%NZ$Uk4+6T?5b$^{a*cRBq0%58qi@N53+y<_u5_Ok2E-$S_@@AK|m@#enaegkct zaZ`sKsfwLYGlexwhPz}}Keux9RLZ5zzS$I2_pMjleDH-ZMiOMg^5~bURQG|owyCNH zE<2Y7@j#rrB5C9B_fHs|Guxq2tM4jQE+U!54yctbK>Q^3imKjcEIs>EY8{opmUiQg zJ#GE{s1nKS9v`ZAnG)4e6$+G`%Fp>Uae<7Z60!~C#Od}Q@$A_$s|=iTXG+-?tF)$* zRc1$c;}==P=M5*UM4ja7Z`iAD(5^RLa39#mI(B^j(JWom%&rG4I=*_4wV$sN%(s1A z3NO|nc0Z@&CN%IE>m|AS{LwCzipHb%8O*W6#cfr3p|?5FB#O4YR!gZC%`0uFdRW4stw_)W`!3s9dbywI5RkExL-Kn9 zu&wtQaW<6kHn^M)cykjw^E{;i_5-_r7Wax=Oe>u-=HwFO#9WBw6LPGJMCks?#$j@| z;tN(v#wYe6m{NCRi_Q#hYez;mds%OV56nzcF7s;wb46rEq!709fFei8U9nS}<}nay z>8RP58vs8g_I5n#4~s$Fl;N3Dg7D4u6sdMua`S&z=nLOl67At=!=mvj{nc>V>zNe( zwE7}EVZ(JXO_bB&4%|cQZ@Y&0-S#YSKe5c}r*O+Zq0Y_VrfRNbsJQXt8`XO}J5qli zm3QxtR>wf_WD$s$V*SSvh}S>vwA*wBNhM48g8IJA*dEsqLom-09hU)URB7aU$PW~| zRi8f5otqHa?Bo~liQw1D>jKmCmL83ivaQJCgAIa$pDT~!-w3R{J&O1=-LA1u>Ax3? zZ?Sn(&02X%w{#Qi+P{>bBFDQjkAaT z>*~xd^5EfOrieVuCiX!Df9ne~ma>rktNN-ruBswaQK{f}Lz;ey#W=eh>t zYjdEs4h}DM#ltna$=>+K8tl9J`}_N3VD8Vz4?aJP`mH&yWe)Q zg0lrO!>l1@g~T3UufpVr$8{FN~Km9PK>=8O)(PS?1?x^x&e&Ma3at{zhDA_}l< zIy7h5E>Cql{r%-8mG%D~(JI5>uQ!TJE*2bAH`xyC>!gbWBS7e}jCw>Wq5rfdn@}aOwvg}>)^HKt?rPWfYPJmukgy9AdaL) zwGrrI!3`c4UbdXA{DGbIvK_+5F_QyFYLhr%9-j^hC-!jmm$@T*%e67!swH(@R)9uH z)tV*7Z^lN=hUWZatK-pOa|i227P|(`5$7@d;cL{#+?&P8G!2=+^($k)tM?;CqaL^T zXOUnA?pQl7k_cw9**%Cm^gh#pToc@zaA~RVzein{{CZDNxydw;VuC){*a%s6ZPxvbY7Gdcw9_n@{*I9$&` zl*+Soi}Hqb-}k7@qd|4H5Dhmgyi`x{q%^P0V4XzF(cyJS58H;ZaroabMf`|!SpG~_ zD=R(LRx6QVWWM9@3*TV0h!`$r4b$KK!X=?7m8I$U@oG^xA)40mgMoPFo;GQgyZD>k z`_6dQV~R1l@04PfnS3?GM?IbWy}f<(fPL;~etTE&Bxt>-5UNT$H^BYUSZlg9hVWUQ zq;lB&TXTD#(3YMTj}4QoZm}bP{c7mKdF5+LwpsgXr1*+80wRlE{pzf z>CId0YS=Rm*}b5`Cq;s@*;-+8Ld&l2z7@$LTl7M@0!&yL&YO_WdJ=$Dowzv@2knkU zu&Q#Cv25V{fQU`E3qzBuOb=9+?!W(WdlXfBm9%Q_-O`Ab zqE>BUj~GR)s-hBGZCZPkqDpN+Xc1eAps1~46s=8~+WgY{^S$r)&z0+PD}_YE)Ohh-6r8cxZn#ZAXs^j&1D| z88zBO2N^jk`C(r~i-&a+hd;T}gYh_p&Aw)H#!|RI_-|iJwN!FtOkA17_R<- zR(oC^CPn(^j@_GJtF@bjgIfV$xk1i-;^X@$D!r#=R7@`d0-AeB0{_}uH=36yvu-oN zt{cvhO@DTOeS+|697!~8IihZ0?z*e$Gld-%MLt`gSofem5W-8Wr`<2zq266>`tmGR ze{NFNvHz*|g~koxZtc{Q)e7>RJPCWOYf*5fW8|6j{XUt7qPUfGb$*qt+1G!5d+oU3 z7d36n9R>E)q2w~xAvv3S?!)bLG%$ALF}KbG_1j?~&FCN*^7|EHMF@{yz|U7r&#Fii z`Rd$brfs&b#`|<`A?p#=oB_Zhr56UTIGqQ^XEdA6rH`i$+gvM zp9*H(zHgm4Ngnc*`smM}Udyx9PSY!#gG?~)AJhd!?%6w4^Je5VLli>+Uo=E@G6w1T-vPUWO4zkg z4`*wsY9al8w^f)LpoWX9LZ0a)N5z3)-Wmt%U#vtjEmb8ZrLU~#JTo@R0(bDWb>U;6%s)rYv#2;auf@!>V*?)Q zl)pYI<5?`3>isg|q)HDH)7}f41Ff&3MCLnsU`wtT!J3Q>(UzauIf%@mlg0EGj56ro zzb)I`Rzs{31Vj``vKs8%j0~AP-dKNmoO%M8QZ2Ty4V~Ik{-k`OlE-smF$$ocEg0E6 zl@5;K*-Dr+urY}lDy8PP9mlm$@vtHMs}OI#Me;2@`@^`eD=r%NTHV@uZ^gn~4r%Zq z>zKz9Y!ExgV>nzu4nocd%{vO%IR`2B46*EHt=eV!2}jbboioO~wTHZ~9$)9rl)sm0 zOc`i)`7#ih2Z81zjC(mXf3)yxu|}INmH*y(duVwP!qh;Hpm{^=qGp@9LD=d0#^4t- zy_7LUmzi5f#H>UHOL}#B5@`c`C|mp+C$&ifn0wix7POpG{iv}|w8%57;<0(x0Rn4C zWj0!TPpri@B>Fb`;pE*W0u*$=A#tX}P|E>d&p_S(pNEwIaCj=pi+AQPpX~#7D+4_b z`C+O*NVv`kFaONa4>B$)_&M9g2vdPg!;e0~#DuQM3{>V|DngNVzGZsi@X=>8rP&E89D#YlJhk5Wrd!mdI-x#Niv$d= zi&u?$=oO{Rk_~q}$~(B$z@P5v5x8_DV7tz|5TcdNKi?GY`q2naPyW{9JMUaS&IhH} zcC#3o{>ZGJH+HZc`SDuN{cQ298=3oU5yrRX+KhbeB=D zjEI0E35Um*BM7p?{$R|li*u%0rQgC?a_x^tdICA$Uy@#u+HRfS1I-ufL0hK6kq$JmVgqVbVnZcs3-iyC9(HT`}G4A zv8?OH(^3E~xE-_U(SGBZuZ&mp5RI}ljTzL>YWI+f@PPNfbY*bb*JSgx(p~0TT&{rc zf&uswr;o!2QUiOBLq-yM{I7JJ-?8+tBD%;8uDyy~5%x?;nPUqrp|^@kaV}GuIacMU zUm9jSFu-Ek#&*fSzZwwEP+P% zmUFEEZ7>Q=(pF8;H1(a(IkT25S!-Pps}^nf5-ha@vSQx6NRfRugc_Q0u$jI&r`g_U z&y3x~Ygg;R5_xN6D=r@;GG4DF88ltkJbH4i?jKWVr3N`(}JpTQ}dyI&!$PKX-rxM`xx>Ox(46do}OKR;tqn4{lLom!LIR!>`nPIf< zMo2oEf1ikXy^>%Ov2Q1B#}X8MBDXL0#xn5N>ZL)NJvw_77Ju^fr*W4Km%Ge9SxSC- zN-}R1WTAG*yU}aV~g{z~WlVs~7#gPUg z7sExXiH-o=p`wJ0-ah>9rP-wvI)xyo-U>3+g-R z43$Y4*UvsQ?%2zD@pE zUfokKqwPH`-j94ZUzi z@izW)B(3DxH?PRi_-nBD)QJrj+-v5Ulm~AI9UT5_rCMa z#Jf$9VFM<}f6#gTQAtj~`qt3Fh}#RsM35X)e-ho-Pr)uCE{!(DmW$d#xb``>4w>4< zZePah&~&sPl(u+V>{`FcR0hw!zoJ=T=^y3mN4FR{iP%z`!U}t~6a)f~6O-O3b>a?> z^%Vb*Njk9Wq*kx2X5Q@J8-OvM)fH6!DA%ScutzR&RVX-eHE`GZI*bduKrEM=5D;~T zaY#kZd#52(KQ#Z3@J~IY0aAKScXsBF)nb_V8SzuhFfjN-+1OmGIrN3^%wbikAhU;pKCbZ zNQ6E=6{QIrLXXQC%BG)0r5s0rm3a;ML%U#2u-^-fDf;Oe}&vTSIGL-sz&;m5#&A(V)@C*VLLSrL-cm zJieka(9SMwI^R|~%}h+Ire2)}KuWtWt$H&H*u8Njclr8;wlng&$I(=G0}94cgYD_p zpqycU9G-FCIhcz^X^^}FL2d|3RFE_n4pM-dAu)kLX4D-{l=4@Hu@%GV+>;BK zpnJ7{h8AhazuH7y7>0>To3%Cnlr6U7Sd;A)vNJid=xIrita?rIw<;lgoEVN_eJJoz z>*ZMhwZ7~9&XRe#r|eP4jhW&@as_t7Z~5akfXeJ6x|1-X1XYu!1s?H&CE+H)&V z7oS)M6`F?Z^-sra5H{N7xSiDJUDocNsZ6>mY{UCbnjD-_eSNPt40TyjQg8vE`?Y6y z8nT}j_A_rZU5MN*C(?~GDl>n0n zrOXDacIDh(3!>pVgJ$B+t>*#`jG{VBRJtV}=H!|5Sra0*q@f&tutA~s3Av;)VScG^ z)EO(_qGP#6xaRToyn;)lQwl|P(j0mxbKTBq;$?QV@vBN>plnd%8^oArg@Qi^{cB^3 z?rd&DKSjj+P}9XBalOfH6L@3|x4PBK;ny1nH~j(fx_9_P1H7?0|FaSpfY3AK>j}a2 zie=Lu5V^5Qmm#ZQ>0f-~%qQi&*uv z^TJLhu`_hmVPtD->-=BK572%*Ddt(PEU-syF{}@P>`^<-U;i+zlV(sKlHuO$Nfmxd z(SN4JTuq+PGaf?6X7%gTu(v7k;%0l{!$;_g(!4k=WM~*Gb1<#wa%LuNRqmf^ z4E(A0N7h9=1!)^ve-0JXV<$Jo)0+7P15-w-{nPEsA{ zrDdqDk>T$EHLQN3{W0(B6X^uf^;Su&ev@B?FN%lG&n*39=Bg@JI3==rbeTx^h-bCw zE7maq-9dV(QuX4D$nNJwMgEzv!dJt&r5ys0yIfo>5ODv;Zw0n@cHlx5b;yHfoapSm z&6U!-Q__H=o4BCA#g7$6Py=wnfqN@LIo=Q35?=Rc_PwInO`|{fhOZt6jrh^wPT~>Y zkaxVExb$nM{;H#*`BBo6(8)^V0-*g z%v>BS_}BM)*xVs}nqpS(ySf|{%}Dvx$MIoz zJ1Y@aObQ0$PG49HmLcS4#G%%I=<2!#r@;ds6!t~;c^7ao&ywf~PN)12cpzpj{N1M+ zZ6hgVH`NcDpU$qG;O&)Or!n8BeG|{Km$^|WRd{+0SFc>bkW%S8HkT(G#E2<;_Pk3^i7h<=e=z zSTDCMYD_{vI$ofEwE%Tif8gCwbSb_?5!&uroj&o-H$n_+ingunR#oFv(swvRw;_6vViOkQh#g3V+kdoL@-Bhg^&V)v;M80!r|KIk5)JrFbT$fgU5m=~Wdm$e3q1pofn zw!7j?PGjd~H~$$Ogk*)HzV zC3~hKWI?J!fz@*Q?mt}O!ok&)HBS36Nxip$I)AOivySW3p#^op<_g2? z2+*Q~C=|^m&65GKUEy6rXWwwA%%e3qc^Frg&e);mFRdD4L31WPg*|moH2%`{ghSyZ^xjY~SF>`<(2)nT z-bE-KWc;c}0M0srpu}&<{gQ1-c9^Z>JveGv|Nbhjo>`Zn*<<$!$3{~DcZ01PgUU6M zbmG#4B$h@=3a6)e2v2WU@LI3dD9 z$s$^?V2jPYUeCxW8a@$Ip8$+@NZ4%bXv^0v!sZq)JJB6}nG73cu_M7&L95v=&lHk* zCv%7u`GCJ~-c8TvZJATf#Y<*;?Y0At9^wtNX-o^BO`H^L!KT{>X#ZIqKwmemXD-+B4l8OfG#$GxKhPL80jIu9)Q-CG_Fx4JOZa5l_PM zW^A2FmyMVQ6?i=b^g#G1{cnzw6+C_qTCePcnX}=XLwjI(0wcB=(=pkS=ft=q!uPd1 zK(!yl>&Eg2W$KXu+4N>6t*ok3zPFpk*F1RlX$$WqCMX`Pc|=w(gkBHTocAniZ;-dmyZ-TB>Bv2V_xETm8&@NgNI}52c8{G; zAU3w6KF=i@To3Elru~|Yp&9U<%=~x`6FG&at0WRdht{9hwF19Igo**m&y>;8hWhS1 zCaGIgTth-zwPdDN&R5z&JPl7h9Z0AKgZQ4YFNKSyd%7Q00YiHG4O8l+lLpgEk43ax zbgSui?cu+rr(8{y4B$abY~XPG1+hedd(4YLUWxmNXv!)rC&INvtKc4}vDhaOhRL*N zHP=m@57-OU!>4YMX3Jyqq)Ha33i@CA)p!di1qWW(@Rxrh8 z5ao!uW1=mleOXY^VYJx8Y=WKSq8UJLOgM+aK@W9Lkm!6!7i@`oov91<ATwKn)G%f?7fsu&K2)02Yq+s|lQC*wQTWWRF%I!&P=h@hiD*U;COup9CpETO zUMlno^~aOc{^W9W?l3Hc#?@;5dSgF*U3&89cEL5} zDH9b5Gd=$qK}g~1ykg*Dm>v_B6&qD(Z-qXd2J~jys9X% zZJCrZh)N^$Vsa!l{ce*^x$o4+;BDeWy3YO(u{nOkHV@(87&Bmz2}WpR+Ywo6Ji_gn z(rakd@-|{<3&4%(*Mf=UmD~Ggm}PvguC32s$cz zN*LQk3SAC~97VYWB#v@GKq(LJGeb1s9y_=*N9>A*K=~9ysnj8{`I*qrM zBcq5p6NGvaBY=$^Ts)>Sv``F=nQKFc2E$pv4@Q5Cx;+zEZZl^%S8<^+OAn&hbl^?A zc!uKHXK{w6byxD`h!@eY9+GRWcKOdb zRl~!<52dLe#$3X)%rbVAKZu+H(b4Z1(=>dm5Nz5@74~2Qx;HyN<&hV?) zP|LaY-eR!a?GL(urQ+(VWO3`lbexL#^h@KB1NG+_{8VWK%YQJyX&st-O9B2c!oC!LtdizNx#Dh{uB|;T? zWX$^f-Nd`6qpg%`^h|wN*uFR212oi$IY3Bvrt#@|cQXeqyJb7YAgd(K3!ba0!qml2 z4rJ_y99nI4zLnOGduLOr&OS|t>r7+2LA8-}p-eO`7Nj9UJ0`Dm9i{5(zuvKaHztm* zkh{H>uQ;WZI%}{OdIkn$?EfO$>LJANxB|zMF@Thn4>(y_d?UU3yU31{dE*srgK|g4 zg~%HbF8=!nR@>T))h3(bj|#R7PAtt>?gbvvt-@_6vyOV+%?5hgs0#ye+1990z~shr zzVak~3jg+(8r8AT>H_`zDZJkQ`BkcuL>zzgZ_@UH4`yldz9a$~GrvBuKDU}t-IoE4 zjiD)(&SvOemY$eK#g2rA(dA##9e32p=!W*l#GI=*hvqkK5$6#9<=EY5y99+dImLQd zI`y;l&!};}he4tJ=krRYS0Ww4Dj%taLAz>M(%9DIley2{$)LL$L-b7clXo^!zC_3I z1;y$b=lgzd>i3nLfT{Gb&Xf&Q)v7!ZIIvw`#s!t{oqfO%^kulyiMmid#8JW%WsgNd z)1rB84ks&-l{CKh`*gu3zd2#2_@1bXSzO1_YJNWJrhd8EQGy$PMo z4j{erSSlX}Q&XZ}Pj8BH)u@hKQykub`t7$4!p1)(7t&5LL#`I()M{{F({g-19f`mFN{NhtbY4Mcd6~2nVOI!UTR%a+I%6OJ2%{lA0$}LzeK8)XC}2%&2ReM zTjH(xd_(8w@kg54SKoF2pLxVM%}a|XSD-XkV?vdD!uN3MaD9dmlR`a@uE4T)V1I)-@#r`$cEU0;S{(=9r(EbKxJIkIYVDY2{_ zY8z_EIBZT-OuBGCzj5_^|*rTFP_o*4vsRc5Ri>+6M z8kHsYOuMOv0lP~%9%lQ{W6!qynKHzM+ova$KrFhU>ztU$Y&(6+KRmQcb_<&6r!09? z+F>enV45kQn|gpCzz5E#Bu0zPJ;fkVM`636UB(y%Soct7 z#r9Inp=HkR7yBnnQdW)OS)A_|vKZz17(XKXqL5`KI;0w7l~JYA!KRI$5c6+7zt%pw z;R$QJ@b9?M*XVCYwCgbv1I-ipUz*A=)hLrrQJL#gMA=u4YiODXTBJX-{uLk}Yb3Ww zjBJ6$(!Vh2u|e-GeH_F>O0z=9K#rt!68kC7E-)c~B@=SVD|x?<=odoaghs3m1|5FV z#@)8vPqEI`1zWqle!uCKZ?Ys$IqetAd$wtjnt>nfsVlblDdcZcWeJ{2{I&M@Bd_~f zpbB_A)rV0a6{(lD@uJQ}@Iv}oE+77ACLPuGxbT9vJuAq;8np?!aG2xwzFVHj7PCxz zW5Xo0XL{q{6*rd-TR*L^lG$vf36H_rM?PBcwT-Xrs%Rmr#0bTgfgfy?LEQ~bAFaWZ zYz|s{MZxc;TuSpvt*H)3*erqFQCvj&gR6JJW=m-ZeT$Q>Xzp}4U1t* z`|5XfHu2V-#ViQ5YWbhFQ80jV4>u}pb<5$yx`C4{Vdm%23-w<2o66R(Qib`J_TWd8 zNdG};MA~45U~pLz6ZJdCsS28{dw`8^}3b+6S)!F}`0;}9-?;@2vv7vingF4=Oi zG4<8y?ra`EQmeNDsC1u-u@Y ztdFSqE_`NsU6(h~4{9rw`5>`d%tmd`U-9NdPd|r?(*6-!0J?yrS+ z=Y8AexmJAnY7gH@`!uA`C@0q+jI0{H+7}`;sbxa6T|SvENwda&ka=%Yap4Ep%1UX0 zN=~Bn>j{{9RUD%L6yLZnHhmK2%&gK49b#|^H9;6~^f_-__u=AuW7=3Kn!S@6roAOt z+2T2I@UpszmAm#N56okraN_s{G&}WDaqclQG-)Mbb0g@jN`>r;t89*c8-eQ18AJZl z_>xPxwpZ?)hkig@25Uf8{XhzjEtd^%HF_p&?Hw>ADWPMk-lUt+u6pHH6d(&n8`j|v z`SFT4A$gVpNzh`PT0}?@Oy$N&@cZ^ua*x(?g73_5Van+C;~t9NtXgqaLUqIV*6`CN z@Lv!Nx*`fKgJLhDeptFV{RpCb(GEKoo>XUIzvQ~DmD*RTMYGiGU`t3jat9Z~YA){t zLcCTTc^0jhI_}{1KYfo0f`{T>VgsCK&Z;G2r#Uj)72-dTrD1vK8xc$=KFfrKRD3E4{>XwYUP_kKgLU?J~FKZfY zL_@EEP9B(I@U%2hW9Q4h$2ZNw3x#p%A`i1msnULg(EifV1luLRb>IZpJ?087jCQx% zUAlmU;o(wN`^=+_)7R17>Byx&>K5mGH=`>&Q@ImnKRW3YSEsdTBMmHSpFf%XRqDeN zXEr)?Qu111WTMf1Uc(uc3W$vmmlmTj`z<|vQWBT;A7O47CqG>ap|*NANtVDGq`#lY z!Dx%$CmvH&xM$JBYlW=)DNEgKn+3;07^G_J#BRHHB)PV~ymlU;UI8ZpJq^FF{tqo- zTz>L_e$AUuo$Bi}G-s#Gcf%G1F_b7YY=v|E4*&a?F=u1)nC602n(NBev87Nm!IpcL zOi^Wt1)T{C>vvUC`EWhN4Q!f(l!Mb{0=32nWVa*>{Qmf1ENbuZrT*?nl}c;OLYYE$ z;aAQkgyloiTQ?e>OwOY*q9tJJo%9ot%#qJjJ0_<<7k4*@l?d?M>t{8q&m_nLy;ex# z>44b{#>o@e1hwP+o<7d4wI;;2D9s2H&~M)?=$wL!rk!?!lL-6DLkKs*ATV>x2>Y8} za&ziZe}oX&V{Y<;jMM4sQyZs&D%%clzZ=&>3D6*e+XQRdb9&C;W%WmT{v8q0)cRbj z<(14U&H0A#dHxJxW%08VUoK7^a^y!B#5hogrg@-3jQ8Lpv}N5{gZe39HG0F&(kva` z8vSj)#|JCpXY`+*P6Yq7=H;Me>8wq0?z(kCD`(@=H*7GeBI*XgK==J==QAaRu<=_P z=1_-|P_d)mtX7Xez1qx|_cLD}Zy@xiPkBF!Sp3t4bz1)hONC8RulI!X!{$0xodfBI zP^K6*R1d6#Rgj>t+aO-oSu-z8_X8|lnoleBu*v>tmJc^S+WYoLQ|9o#R&LKd*7tc* zC!mVnaZ}8^<9Yd6`@mUC#ct*u{Ur{309B(s#0)w&3KDqX3(9Hcz2jnQVYpgv31u}YF&@jr8(cev-$esiMK za%KOHKtb%Zxxz(*PgTFHE7aFt! z$WZUDk^U#ok_#U-{`@5Wy`fw*uWY)uc}@*QAah(XP_C1htFui!WiYqN?lMGl=jAcc z8hRX=M3+y|=~rbkA%G;}rd0YD3A{0gs9R~4vO~t5AUCpW32uYc#IQx2^z*EXhW1>P zAuQAZG@ya4_RDN^#y&V7C{M)%{T5y`ZWrtg;(^xjX`1szZo#342BhYq;w+J+w zZMn;a;{_r8V0}aOa!=f-H;j)pDXE;t08_80p4;*2p_?uJE4n$8jqpkpT6+#5iM zb7JyMd5gPMj|TX(y>(aa5~{D}GB@6Y58p>yaz4}*4e-W094W+|+4SyB@GVX>UIJEm z&&H0QS_0hWE_8FZPP1=y;mmgK@ zS?7dWz2BQ6f58L;1@deau?(3H@A0&%n=asatpf}eH>PJ=)Mg`7hJqF|Uc5!;}qVFsWv3NpM*|76!ylrp$_UBNb`U;aRx|;@Vmrbm2GrM$|wp!YyR=9-q*( z|5@TQW5q}jq-3Xprf9^6!L%(iR@Ia{Afq}-;geS_$AKj>fY1Z^Zs_3V?d?5v^!o21 z(I2`im(tV85~O?BxoiR3n<=vhx0ucOH`?oqd3_O;rqeIBPeu`V=PV_T95U7{Sp zaSf2J7ouFkm&k-vjE~pgBWhyKcMdQ_ACbjr!kP;nv?d|rZqW5lEVgH?^Tin5OIasY z=aS63WEdray>e|-x`w_Pz2iN&%4!y}E!5V*qmUx>aN4!1?QCoOl0A@R*N`8}@}NX< zqU3M$dfJ#kdaHdcIW=Kc21$+{)t@A>wSW(AAwO;x4RBt3ynbR)O*ccdE~^k2=k`VZ^_$lo9C<=>-4wiq`*JJXOP+23 z;|ow9h4tWyFUh$P5>7Fs?)meoSE)~M)Eu= zWos_Mr+xle+EwA8&99*IYWhiC@u8v%?HSe~f=Vf(*PM|`XhMgE%~3pBLA)ZzKK;Pl zFVR!?=huF;d>Pm$zSsPk+!$Dkze&z~hSD|@*Cw1I4o&no8flJ>lL0|yU)`1JiWw~S z&g^gvWWBm0U>vWk#lyI%$!MqCbH)V*z+T}80ti&s*G=ZFo)~apGW?t$CGoY$(p|rl zAf?1fO9*7VGeK(l-KqG(AbX{CgN3}pwZ$`y+l0&cN9uPnNgU_Sv&ME+q~hH6(=4`! zFw=wj|D&L^TpqX(_~N*Ijzas`Z-Ok1LX{g!2?*CfMb%Pz^G^@ySmhoY35eBEHPAup z_#T?E9c#LkK+WSVPb6pTf2k?18_(8!k=xe=3lqBed|I67-QAi&k6szB(V^8lx`9mu zR`|*qIV4DE1;ArY2$zN4C6M?(6MVeXAsQ-GjTa)5Md~;77HrHd$zHj3aN@20Dmz}! zYOlw*o!3533Ocr3Sm)VTz7P{h_!FAz0?3IOy(8^)*pZ9A+R!6|T&qYdMHl5dt9J`K zH!0O}(@%tq??V3Jtu;8xSK0yuO*zO$F-{*3kNs7a8`Na-!kVRIg0CjkN$(iOU2jz$LpHXT(f zzucY4k3DtdlBBBu(J1T{f#?d}R>Zir#ZM<89qF3+ht{&ytbb5@C76tx6pLn%C+3v# zCUIAH*=&oCh^g>S@v}QaM9Yw@$HM-+0QpY&y)FKcNN0c!rCwe8|fk8f)|ldmr<-viR0O`?%?sODt6`k)^*Urb!>ln=wS($tapfjpH@ zc)E=JuUuc-M-jrq&DQC--tDk!AiMqsC%0BI+cIZ68(kL9P4yWST_^cL38s-C+xgIp z?|{B4*f%NEg5O`yARG+GYeMn;gE4L79--jNq+osHCl;a3Bm##?`G(Q^$Yq}x*m~T; z=>%;Pg_5AiL%JzUxJobVhCD9bUDX45vOM8$?>5-|ooUn)aO#@t7a+O2Up~Ayv`VpV z9BMbmoj!f|=IWKcS%?jfyhDp#QyZGPK-_~`a<)D~()Lkfwr|?D`6_S2Q^FH4lxc%h zvRk^c4X8^~%;_R4KD2{)L8p$=3^K^MmhMr)Kdw2 z>t^kz{%mOgEJWI+_9S+czaVNy`c4KJ`+>Is5B}mSr+aHIcE46Y3tfe$2*X<6nm{_XWL67!GLb(mC2$f(MW`-1P*O>xLqTmx!^0 z*Pke&U1lVF%^I}^g=`C%++rZbHpaI;BL`UfQ^S3NLex2$YP8Rp8`4r7GcTR1LZoH? z9rx6;=Ufq0w<{O;%!|$Jd7)k)RN+LO_wMzQc1~?_-9W0W*t4}e0w_x~#ofYiK)3Sm z@GGKAE(M|Bc)Eg+Udktof$&?h4u8)Xr$&#n;f6W9k34B1$e9U6z*4AzP2w>zE=L&? za~W~+O$~z%>4kay?%K%q&IC+Htr6*$NM50$&Mw%a6$i+pne7Nz#|QiLmw?kzPVMzNRkw;myKO41ouHCT|#szqzFr+S`B$$2ZL!DS-26bdcKgAVZsQQ<9do$eCPc!`ZLwr(0(Gm{9SB z^+)rcZ_aJ{bI-0;&OLHj(?RdD{a1^L$!H!g*~bkr5iSc~`k;?Lsu!?od|gq_K=(L( zOzn+lN*Fdwe|gWlbN<;mk-i#`$krjUhzWSA`&;(Rl;ASs&*N(=&MG08W`8NWyPZRJ zPoM3Huiq&dJ*UH!9-=)l)9#G>H|=hL(SqdB=e~*K%y=x3j;>i$2H!y7J^N=&2S+xK zybxcU#|B0hbB-`NT$n5$=Wz_~>e-@Og?{#XKt7w7`$moBp4klz_%_j`bfip2V_khB ziDG7t9VHvnb06Y}byo9zT^T&W?(LziiS|A-lmFBFiLPGuy^opX6Y>Das)+OWm^?~y z;~b2vg{)yf_7K^mz5-&xDCbj2U+EbLaDGIDcKAGvk3Rk@AL(zJRrKxMr{82@ zBUkKO!J~Dk8Ht_gI#fjnm#m|5|7l>1JC<;b7+HoWfn6_V4EM;^i$gQi6eWg?X$&MY z)Npv_Z`+pTtMQZf)#;ku9Z(Hq(i`tSm(V3P`x|KZv=Cpaj4loUTWM&|vg0LEYcR`1 zTJu3UGaYiIUMO>8hG>hNCkYurck?og4je*xF1Q2$4|-3AUhznN{QU;ea&u7WpW*2{ z)ToM>lRCNzlqWYX=&BR8L=aXUQv$!Eia~bvsNag~R-*^%#OlGK?k0wXLk?WolICQe z4L%H=?uA>MJWgG2=sIR=VskX=aQNZ+GE@WpY8sB5#-|9Jdkf%sa`zY4-=5Q=M_W`T zw2r%iN-i&J&vZ9u>)wg5->Yn@PT_jgF1M^*{q_;{ONp+?M~t~T-vYIW3%>7vP9QIT zUU%?>l8e$aeO11;CES$~)D!u{%tyMP+U(GVf4~;P@!ZxCQkAuKzBj1cE;4?* z0$$qqT?nnoB`q|arMJ04?7pO+IolK50ypxRC!fTG7z`sR&FA}%PZNhCrt)0cIbBBC zx;Mmkc6NqOdH!1DM^}AoYj6f9P%HJoc=Q>A4#V3R&)i#MkI)P#DOfz6WpaIZ@9j*> zK&H`WO)2W1e%F&PdoD?Wdk6iN^k*LYdVhYQxG=#5dy|9thm69I$}^bJiz*6TQs?oR zP$!4>2#5e6zfM(__!W@{zc2Lbw7&R@Rp3bSz$TxP<)OviEcyxbwu7WF>Gz;|Dq)m% zs+06=nI(m@+2gRf8#F>RgM2cs!@&wQ>SbCN2w|j14&7=Ui;||zK5Mj5?op+ycbrhU z+D=g}u?Bk6(38*TYmn)P4nLJTvs`}E&d^ML@!ZdRv@=!{sH4{bRS^vp44leMSq5qz zFRXD+jmmj{O3H``B|hgK?Z!%OY(XG$2NEHV)nf@oQpD}+^BGUNEm zwEUV*NvDZ|p=amN?dx|6)ONOb&3w2BQSqyg4C%ja@v}FML@&AbOX9uQr_q|FxQuM= zQYy-0J_>@M%s++Fg_Yyc+RKtynD%41ENcJNTxh*xYZ; z7`UAd_q2xLIhgE(jr9S?#9Im1E-_-~gvh^nhag5c4|6Sj8H2B%*_Z>{Ep(lJAk(p_ z+AFY!pJ*v+GC%#;_)%u_Ekr@}k7H@0xz)Zq4|={hMv z_O?R3eg^;n`H|v^lwk-4%rvrFQSM|~Vgq3CmOUMiGM0UKf>+NXxSe{57Vn!@nI!e} zypShpZCQc4ZkJd-Saz?x|Du~jRNs+w_0_bg?rP}lm*{>g1Qk-`6JYh6hknS5MRp}w zB$7p)g3*KEsiIAOI=|oPnj8LpN4QXaD^WYd-?uBGmzmK}NK}tjjF<@`BswC)3M}5@ zhOCxd-)AWp*3M~uULy}(;9t%h%-peu$djjC3X1h4BX$kuU;`xSgswu2>P{;v-nC=X z0q(@KC3}tYOxZTqVC@kEYwUA35J1QSUX)uyn?3clnp{Ma4-TGsjFe|`Sa++xLkNyd zi5ap)4rbDcs<02Wh;(}9EU%cnrLR~Sb5MHkYewO|?OptTY8yV;TRJxc2240I*H%aX zU@?bCc4dheIHQBxJHN0pA})lb14+Rs{=!FtX@V0*$!X|7C=S0z9f z>c51WlUI4hEwbYpAgEhFh`;5fEwVNPc@=enadmEG)kM~5^{DB-D^2C$hDPXtKIzEM zS-b5^mTNfm$Mrmx;Nu&BK83zN6wk&7x9k!|Ryr&?t^}T8NBLAH=FxRq3~x zEs~`y9@X67*j>Ug*~1NRY>b*0`kmOiFqyhr2sP;Coj;oRG4ZyAcZhZ2q2>zjdt(1m;UBmT+PyvKq|$Xv2Hv5=HI`Y0T~t=;wbS zX+r0GPka+$AVM%^?c`z5`F(}h88mBQ7lmicOjuQ985f1< z^n0blznNSn<+qgG2gGNQgt0Cd_BPMM&v7ST=rFDtfS0kFPp_As+UiLe@sxlSuhl$C zbn1xDJAXkSdVsWfPYcZy(j(_qZ9WY+cJW~+{HF__zbK8i5&J|r4HuZc0PGs0ybBtr zzi(V5Z^`QCYrzDX2aFWl4yOGROPI&?YUQuLvT-%+m^N>pcAzMh$M$fBDC(--!lB(K_*;j-(C4PDPvw`i2dy&R-T4r=^eDzqRtr# zv4E+V%UFCpVPsXg>vZW(MRB#)>>my`i|~YUr_i}TBrvYd=^dE7@Ferc#zm zXTZ^GwG5^%E4E3yh})=ENk-Hc+rD^_y~Bz-&qJ#I$3Uw?+W#m$xh`~i=khv;=8VEb z7Sc3SC}91hzH3srz(Vv%V3lKJbQxG=h1E91jp_KV7-D-bFn*ay%=ticsb_J~R^|T+ zGMwtZ6+p`FPcY1JpB)!eD-9^u8am2OIcLG;P-fF7F{Rq06bP208dO0)){85}TRx4D zmU#J%?fPa1H=$UUn6Q*Wxp#-=%Lx~sDI7_ER8QF&2`=0k8B!hAyP^*`S(ICAeZeMh z60))8m-FK&)C{gPo_?hUCk`~4j!jAXAY8a3*Ya`yq~hvfK4ldRS+RYQy6H{+<%bDF zD-`>_8Z>~y$G}oQ^@n|&3ao~+Qu_xf5r*k3nj8(!M;V{yLsm=h>BiEOTnE8Cr)KRO6XT%hsQ`WY6h1i1;DzWBi@pUP-KfKm#e(3j1=b~ ztbO5B_@abn&C#z5?~{eT#tXu3P4%m}?G9w3J~tm{J5!}aJH{T1fV5v9OLmUVA+V?KotV?3>4ztE_HBlt}&TNgg;p|BtKp@P@m8 z-iOol9z9smdymzL7DS6gSr|Yi6!tjaJD3Msg<6XU?9A{R@Xq$bYS{ld@A$=XFG$@ky&t(qs3r z3WBs>XIfE`G0c1|h>56V@BgS@UWao<&G165b5Q6}iq z;-V@x$Zi8Kn#t10u4)|>dLbJ$TVk7Jo4WI9af|JcL*rQ?f7n2eU~4^vCOPkX!Bz`+ zHtuh6>}cQFd6b`a=4-Ms>Y80FbTnFZH6u9}8^yV_47)KJn9M(5WS;0h@}?|rj4S-p zB&kzu=RxuC#cxeV`9N4^i^33QWDdV!c5>rqJk^CFR|3-2Rsw{DSltJ{)ug9Fv+6C4Xx|4ZL z=__i#->4(+IuD7Tb)AtO**UKK$#uj4Og{L%H23H3<4aWk`|~H+E7c$C<9q`zBvk|a zuyt6@cb#*jwLD5-l3?WiaNpsp)0R2f?P~VgNWJan6+#xw--gA&G8zd@AD+6=#1sv% zFQc&9&vnKN4eu-MOqUDh@da#IB-78X7dPBme%`**Yt7M?_j=`1e0IYb{jEZ$3(!+# z^sU@07SA#IHD3kZ2U0#KK#$46+zquX=*?4uPh*|;CwdukQ0 z&%Nz&m=TVa>!nveaCvs zm~HQ^!&DG+Jp4J-jsa=3XRQlw<(hX3KGptdU-R6=1{MYNeGzMK4Sd?ElT7~m2O=Gv z_@gagM8btaZZFBz%-Yuw9Hfk{x8Pg$o_;`CS} z@r`?M)#eHZC?~xwaIomJk~HODU1lGz8CM;vhXTwlJSVB$xe{5@`a4L3ok9v>kw>s? z%`dI+T-1p$*T0&p5oW$Hv!CdI?7Whd{=+68!MzL(7ZOzQFW1lz_@J`(V52yq8~f1^ z_3tRW;?p;Lvx`PioOvblnGV@YnC1`jqo=jtGS0+n_vSauS)>z#>a?0KdMcknp%DFE zS_;ifGR(JH3*!p*=GQ$vuNt#OC!QMo_J~cTdO!>EsMP8d;Kv*p+Pi6qyTx?V2@T2< zRGKGYrzthtE7pzSNdsyeM0JD5NeG0H22I4J7lsaV7<7tb6Z`6{)B}ce$3E|nQvrgC z*dd40>lul-p;`eLS>0f*;N(}aWWpFXhAN6dPlGy+FKY2=n)DTKnk;LsBhxX@^y=cr zLic76&)b&58V12%{vB1>V1YmP5WOFIOJnH6rW!+XG(bLx@RRbStibrGh-02Hc$>}n z-SHFHmg>fN?OfRrNK;-H;1~J7(DCiOTppmkh=unirj{Pz7o8R&%QJlto9G7?y^wcx zj?4V>m)=jfH)Ze3e$lrHMEr(c<21be%#Kq3#x;X%&uhtH?|Fn$zZs>8Q>`wGI`i8r zCIkF7*WHt5FwLfI<{5nWt)1M75<6VoPWF?G_tz^{!Wg5xqmrN)DEs&?$>OloN59ja zt;M0LEIN1z!BX8p>htyO-$IDw&67NnfV{b$jO8xT1X|sO4cS!=(1Bp_z5AL8oMP;# zNs2S3Wx}7?t83hYZplZ#8GBi#irB;T{SoV(L)5aL_jv%n7rQj0_Z|&-+jjz54VoG@%&Q&;BEU?QW1@O;{O$Hd`;BF!O zy17Ju(B0W$6Cb-RuE84l9WAPIJ8d+1R6n?wMm}$O|7F$_SSr=jX(D^N!Xvp3KRlX) z>n9W4@qd3feF|N5f&A)uhr5CJ1 z{!r(WT~9*sJ;&w=0VnaT`0za{%6FM-Yh1}fj#lfO1kJdhP=F0#;l4>_m_?X1^Qz)o#Cc}e2i-?l!TkwIZmdeyFDb`|fCj^$-jDWqJb!>I1_X`%`|<7)|UTxnvaay7r&b zREWcWfG;eNlW%R!u|;c4L|#~m?7+a`no$$4IfA4dSjjxwmIQS0rZS<`R3)Y%al6;t zN0WL>9R(U&j+?pX=8sh?`)8zTz*G-n#Ei00czNn_8+p-+P7{LYkzxofyd}FJZy8YE zu^apckG6tL3bg;Mzux(r76m6O@w*Mj29op)entrwmxh7i6VxO0kBs`qVh*9u-U&gY zROpH5`VBMxO9gXx+k-wpW0tXtRuRc?pFXc+Qr+QYs z#z5#5zP$Nf@WCSnsNnnv++~7ZuswW@B$-G5yW-Klv@ZOi!^00u);VK!xr=;SX%DM$ zp#y=**zqZ!+%ss54W3aY@|;h$A7KI$VqCvh;{0Lt+uZjjxr0Q3QQREuFtlDWttrt# z@+>cISl>zD!&f{G*;V^JqQxQ^)b;pJvUME*e5*5;m-wbmL?NOU1Pn%S_lXC4eUpjF0_&`ZRVO36TvaNi5(0keI_oYdSm&gan{;$Yf!oShP zE=(nvnL#>lq_&83MV9do`4lYW-ErbXufx^S0Bd7QV-i6Zj@pi-r~?-hEKC1Wn-je) zW!=wDvt`#{dGd?a;e99cc3I*&8tIyq0dQNsbt8n7+r?iV!*HG_wvNEAW|UWfx7C;1 zvRa>BFkAed{{8L6b8v`c4v6eg1ijts+^msr305wCFX`Q$JbT@R<Q`o_<=C#V{*PTwS~&F4p=LM%D9qxB2f{#|77AO(}#qEpFdR-i;cS%d6}i zelhb(mSGBaD+*(pt(9~eIo72&J*0oG;v;T?iG`9GYWhc_rgr5O>kY4%4YY+15!QwvEE=}TKyqk zvtTFirhz`5Kd>tmo@F=k+zpnCT=A#JsBj zP9krVq2sH8Q1LY}&4hGORzz}Z*Pwa9*GkgtyE;z4C2HaF)uE>>KbAWU9=s!*h@FWr zk-fV1;$>3oaDSW+4ZRj-sgH$_Zdy+FvPCHJ&f3>AZ>DccXjyb(hUlK$5-?*r4`P^j zcwf5;XW|fvx?*bh*%J3ncVT13{_6JdV@&DcZR3gYkpA>|YN%{m@sBcQHpL_rkVsQZ ztU*d94d?LN)a}7W%IZ}tX`UQtk#x5-Bvo}nDi;1Y6#(2a=9|7OXGG`jFW+nJ?dCXe zjR77JQ|A5=afuA(jb|e;eHonmBxcSFRa|S**||OA1;N9N^vT0xPGbaM6_EDJ5igL% zYb<$Qv9G|}r*SmXby+BCsh3@`>OeLqUEt_m_JOoa;qBo@;JXyr*%0pYz|}LXk`vuY z^ZTYfQ#&E#p52!2yC%mj>ja8HfhXbuHt&rp~sD=;k-ZJ%6$xWPd-X1 zv2+C9Q`y6K4AW1ZSbdc3385TxEJ(0^Xr@k#JszF)K?*TxYhQ6Ztz+M2HsT)|(=az9 z`5bwnCwW66*m$WtdqXfpb5&JyA=q4}3I0ouFgkF=fV;g!{k+<`TIYo-k(b!546=GU z1c`a}3+UDzgyw;({OPe149Vj=MKC4d0T~YU2t2hvMFItT^)+7F3?_Vd;k)T;<)dI}DHm>!?PCnf9GK-ccmYp2dPnUPJO9tPBY4V2e*C4Jq3R+5I+t!-)F9d)*X#0k&y+_ewy9yRBT5`GfH%9Az3p>~Pr=o=f_l zHAB6d+u7`7LH6?zH3Gf$-5Jk z)*gw>Nq{~N8+qeqlg-q_qHNH+SeANz0jy%FY1{GqODFYm51VY_Ji*!Gq2=x5CxT=spKI(*CORB=zob^RmUr$e zk)YkZih1EIXOPTn52DIqF<1k?xi4A#tX$rE=k&k6sqB+K4Cm2%NGlR`Y44Gc~j1H_65_6{A? ziddXSl*BD`LW*8u)a1ePbx{{9){sgof;iG-WULaOYSf+&Hf#;l51Bp@@SUo!M`FH& zjoJVXD+!)lxV<}R5s&aW&jbYiY#>@c)2x126tmt~C)Xz#?7vP9Cb9PEMtz)hi{RYL z3;jsYwfWjNndDXImoz5}>ns}1UQoww7L2I*PW^<509S0&P&t7gp0d{c6IPy|~O zRt27BiNS<4?r^XeWZoL3U<;bK?DcEIyS951gMnV=GJa_>;lO-zC1H8N$+@V@<^lM2 zybD1^AEaGnU4ORe43tZ3>}GUI7#58%`GnQ*Bp0+K{>f&<$1+S z;EC^wb3sgAf0EAmgSe;v2rHVcF!3VC47){!0~XKjN@%M2M)r?+B1FTkZP3oTWyi4d}^=w zL$GO*lif_(E6h)z zFO7#1!CGC|XZR zZoql}uLs0!Y7{C=>W-UxKv=tiov;{A8A2E|>yP_7T7f9ZB606Cz)7$|Y$YZbzs`w= zT-X;pkoT((!dO2l(*fOoJu@vZYS4KkXFlgejcUM(V#y0se1kuirzyFS{TuI5=`~+% zX^3#DrM)P7$R})H=X6Nso%d<5(PqC_e{~2ooppQf+Y&b1Jlo-d@5||N)eOyf@7h-F zt;?XC-RIObHDTRQ5neU^yN~UmJa@QC9PJO31B|Uwb=Y;Hqgp@9DljgMKy!28^^BLA z646hya&Tw7?xrawR{#|HIHreG(mh!jpmTA8n^piS!W#1GzYNej`y_T1rPRzn-wLp3LXy0VekVB8tRM420#kPh; zubJLSd$?9@hO{fhxbi@lLDHcKk^_9j^^8#o(N=tix!!~2 zU*0^qe4&~>*yq=dV^Zb{X_HNbOX&zs(JFMiZis*r6C#dbZuG6o#_D1w8% zJ=~@%rL(e|OJ8 z!52BcAqq}0JM~$`BYs1(PKfMTmLc;(;pHN;B~)n>-)Qg{3&<~jOD!oRl|6U*SnnPA zYb&~Br6h)k`&;;{TE%Vbh+Ll2SfximvdZf*Th-9nx(xvT|F1J|QbCc!KCpNmJ*n45 zpmzR1Z9j;1<|&tsPPax3CFF%$c&f%r<4!UDOVu%f95{^mk?b`g1m}tt^7xGIe7X2p z_$f=s-*uaTzY8j*1jFVt3-@n~w7hYEx#u}9%lKO|Z9S~dbdPIp_|nKy&fkg2wzZ2{ z_0-%vU#=j~%pDjadY_Gh0Je$zRYFAZ(xjh3M-kge8@KNP{kLOR3AN|8(Tzx#<{Y1E zt==9FaGh95C$CFnRQ^c4ESH9q4wyKZ^p)??u;fQ*>?jW}8(b90oVv}79ft7nULxC; z?hbl=xjFOWQ&-%#4PMTW8Nk5DB%HO<{Be3K^`WDx#WgEDg72jTwqI>YM$lTHy=PLBoc8e+=tvUX zDElBaUzc6l;z;u2n%0yie9C9177Du&`QOtOz5kby6U&ufF;a-8q|?jv!0JxBXL2gx z&Zu+|$V=rajw8m)<4Ar{@u09Xf6aHV3Nn$Y<2u;vefMu}OK7n1@-m_rZ#hAG_*|R%3EEdsW^bF_Xy=tUvbki==4}C!Ki5BQ_QB0D@F8OB;4i?6(1ru`52k zHh=%o84V>%q%vJd)mWT2Q<&$3aOP>Cv1bBC>M!RFSoxEQlET3=S8ZENlZJsX?u7)) z=SuuXk9A$5V|yuQY9fO3X>Im||J%94TEt#DhwFom z_Pflz4q`O#43?`7{yR-YT__ z?7s@b5;wt7-;;j6%PDcj(LE(=RnO&iOlDyO?$Y&4uG>Cr!|qC?^J{bS0Y}`}brNZO z_t35rz8U%vRh$rDVq;yCU#<4JmP+EG4aM68sE*9CZ13c9IqxKOkI@UJoNm$GO4Hn` zh3*TD2%)4&+>$^dxXb6NTTl3Lyb9+#w{QZ@*WMqZ9xw^Oo@A7lqH97TV6lTf7M6jf zulTvQ^z8YLlSeRBjM%MX>=ig{w;+)d(zoX2Or4YJ9RW3Jn(;zEzz8aIw$2yLcwOV1 zEh={nkq(vh%{e4;<{cd$zD;7rTv0FFrA&YIw}?5Q)( zz<958GYMYpA035i6RUa$k=&SDlklM5dT5{Zx`c@fgSY3TfK6KhvpAA7mNjJZeKRKt zVsw!&@L7W2ipmYwHgNIR`AokVtDNtvOZzEHwv8DckQtsj%*S3l6*&B?O!+JW+V$1p z8XU&1zkSVnBN0!h8E*Tcs3WA2?8PuE7Fj#1US1X@AfqbcLpv%u0 zndb;IMGXioh59PdSRYuLM^^~vM%JOTyBT=AxgO@ZJ|9d=?VttCHg^v0ks7<72Ah_* zLN+N^Pp6zt{^==) zt9v9qD;+X?P~a{LnKE&&ydc>$g^Y-m@bEK(;dO;5awYymw{-jQ zB#bG$htCM-w3{9?z$81><2`lTtJ;j|-=Vp=NuXSb%L)v3a)F6g_jNrF0MvKNf zUGuW4La$9gO}jLdIgHe2XgDyPNXc~Nm?NbQ3cEdd0yR(MD$E9($0%sdSHR`REBbTs zt?BADY5V&bQi>B2eg(Pg=Cva$Pug?^n~F9xrhMOstZ_{FkFn}D#@_1#d8rSv!QM0G zuY;LRH)+V^KtK9DCM%fYcs>rCKvki-kh*U2BAs+vn2oQl*%rnhdro`ft|r!`(i8efXW@+VinN&KUdOGvG?HssCN!n3wU9^#gA+WA z^N%8a4vD$@7_+jcC7{p|#6Azv@A2RVmfDBZN9*zff$0?=sl9srwkHb-dt+6huEo%*5y@34c_(FG6{&}<@u0dS$ZwTbh9xcquLzUFZ zJxILjOnB7jFvOZHHoF(g)dTQl_4tf1y@%}JEjqL0EfoJ1lIZ+k%^MpTp3Ad9Q zp7PmFneSj42DbJ&+AvpVA%#sE)y~{c*`e6WJu?T#)U(z$#6R`6BA4UOpNCK8zQ2#> zL6y!(Y;0jr;@4a9KwZ0lUv4^=Q7Wqc)Nra5fyTs}Lgu+^I8_@+z@FJx0Va>iV-*9zSDGCivKDOIU zE3Fw-rda}eyh-J6j_g!JuPr`rL);TUW_+kHFpo3Y_=o_M*7k!nZ>g4vT=qM8h}>TH z<|9iQ$NFzA2o<@pmceJ4il`C}UW#8O$!2ivQ;Gg@DAv`Eo77=SA0$2~-7d5`lOtTW zsF1kcZ*ixskjzicr~Pj%Agq_uWaZDH-vc7)8>$`1h;WW5KP1#w_0&xB9$` zT1T(`&}YlDHA%X;FRkK*kPqb!#-bX7@0TVRKnhi>5AWrBs9h*98y+v}Z;JiobNZ5U zsNFctdT7R3t2W48YXnvo9dDh7AFh>f!;fwT7i;_|&wjxD1`VZ`LtbNcn|yiBZglCW z-kDhjCLwB&Of(5)F%br_1FJax8rzxRKpF+4Y!>1`$*1)ps&^j4RONj{NBQE%fYp;_ z@b&3o)*hRomkB8AsP!hxJ?mWO2jg6`?4c?rN zf<97>pA;Vb=yEIf)4u{3LA3G|0RP8`-O`kHDd*AEPO!19_sy8J)K~^shi9xf{BV4m zB+@3-|Kkn>pBzTJ8au@K4=#l%kT&L(TeP|E)(IAqwK+N#iLVm^IO%vUCiw&cn;rt|ISlK{vtKLLdLZxQ-gBt$xAS&*K1% zw;nnaUHIkvsZyhHhCXO*pZj?29%H@Y1!_WaLrvj7i1r7Gu)4?kDQnwlribR1Hpg^) z8BiF^FCcl50mhFkI0a3aJ*f|yB%l?(ykV>Q#Cs;^jjz;iMba{IAPlnmc0TAY6Z&Y8 zbULuZOXc`luMnMHqnmGUj)xez%l#ntANPLC$;{iR;~1^twX{SJk0Cj)9Ux)0P-uVj zuFl>kvVn7{?-9ru9 z8wQ_8uquqfuj98&(uqG9`{%3JWVdLW}VA~Y5dHN@t@$i>_ zDF_cbUN?<7_dAk4SS4i9KWB~oM`Dky3ZbXU8wT zf!I4p&RhpeY*Fw_`;2+5x?B_c+q+~kR1*DGL2~=g_KTx~$m9FmkK!&zSzJ=cONaP_ zC{T~SIQzCt6N(NC;EQocw5d1 za8f9!SgG!N{i!7-4rK{u#4Y3Andw#GJpAD==D4hZX)dEyZeq4Pr~?>(bxl9)Xt7&N zz$nbG*2`6)OZi~XjipfaKEEtK=f~{LDj={Sp-o>1lnDlFpc@?8#Dh70Z1{6?k?0Pa zCZLrvx3akvW!ygP!f>m%ZF_VgvckyS74xTMmPs3yKFWo590mDl5%WD-rda3vqJ6SN z;r8qv|KFsJuV(~ct9taT(gi7I5ScByKsg0$SoH`IkG{0`3FwJgW^H2kix4jdv+Y_- zZ?n+=ccIdpp=Q|d$YMxBYjyDX0ITRXqAk6}A+^y%gU#S{H7#SDzIdBv^;5!4q;Zs1 zB-VgigJ6(Rb`0*x!1mAJRgghTdbF$m=kn74 zQ-$X81+YgyhG!v)apPm1GL3bQ^lQVgb>DV`3)P#8R_|+3+lw6iBJ|ea<9~CzgkYE> zx|ed}L+~_+ZBLq!7SCiJ^zBei%5($&3_7O`0$UlmKUh|#wzkV7?;r+?vptVeTtjF5SX7|gqz`31KS2OY*EaW8;wa{1 zx6(LYCfgNpz6irqbjeA2)Tc@>bXliOzMA0`i9_4X`a&qqtY4SZ#+MGVju-Hby<;cj zjRc&VeO|pz3bw8rSPDk=o1b6LlpRGZRYMYnS%3|jK&Iu6IpeyG0U-f?eyqrCMqC)+ z0nzHz^PwX9dD4b!PnB%QBUR92XAqe1d9%5c9%PaTfqA35U@qSRlkR(iG^pG4jglq6 z0Iv=4O4;f_SyJq}<+0{4a285>XQ{2_ruQSlLuzWe>Jr(f!`l2MrLj$dA>sk(FQO+0 zGljDRg4upDD9F!uGpJ{P?%Pv3uwO)%`AMJ2HB`FC*D~Mne;h^!xqAgP!|pI9Zt)yN z?o+E^e+#l%m|y1`#+C1K1QS)q3-z-Q-hP@Lm-qSnj-k4N;mw#KSDBj00aJ=RA0w`u zwJH`^2PnbtP&+$u)6LwoK$2?WUI{aOy%a-je@>PZZDXc)mru7@m*cVxX*uRg@^^iz z4)v|D5Bh%3=ioyTyQqD7zO@5ZGC6OC*d`9&o|9h(3|OljxR03EXGg&y7lMnoG(aED zP;;5~IgjmKQ(E&MBJqPPQ(Hj`WS7B#=X?A6`{UDn9I+swX06PuEVGnwxaqHL8w5_n z!bPy4P~tYo__S(2S5mj%=7K56M&V`&U}!YAp)q5g19|BMbDMwTvQFB7WL@iX64~i# z;^*I$EP;z%T9{Kjv?TcJ_Te61=~(+2UR1KI->^lL!{{%KLp-gFIX;5*x7 zInr$GZLP=AXt2Ys1JLN z?EV91^xA;834Zll=%tl8rUt&i*TVrsZis9Ptz|Y=WAk}8t8tHX%?^6qdU-o9Tc3x$ zxC+8Zl@ec7tF=%U@WZFMt&02CTyHmvU~HoFd_cfyX)bZv+Y{7&klwepF-*frjeN_Ht9Why-T9KF3xR5|j|zn3Y<3ZI}) z(&l5f9x}oB`^jqufvto)|5pq#q$Y*2o}}~MxQL`kq%52s;Wi|$F>PsdEkc&>-Nu*S zN;~-`mZSK5&VFKd{m`?s=@M6e4WImYrWW7>bZ4jzv8=5OnH|&|_FPI>MESQn!o1#J z!o~$ozTSH?mh5j@Oigc#4k3@SE0bCK3j=V3Bg(RR0TPp*)5iJ|hfCn%$~^K?x`g3l zCkc+ekHt@%Wg5tdsz5`toJ1ACiI&5n1HS{V-3jcwZzf%|TuW}#M)(o8Z?~h4d=yDF zxw~P1;8j#ZQ``1Ascj4}t;2#-T2Q)^80eWZT(mVV*{8xp=FKtn8$D`b!V1~oZBnu> z{H0*GEGrf@f@QT3M)xmQ*`<8RGin6?;=@<&yNE0blMw5Lph>~04~-p))IXE>N#MNG$7eT;?05!OHTSQ`_>jC{H-; zs14Twirf|tFQbjTPLbX_9dw3tg>KVA!64#9&u$41cwNL3xiW;`E#k2&2)8t;+@r0{ z<;nF;Mt8ow9M)L2md)RTc2IBhHd`Hu+hAqY6s^w3u14v9bd6ZN3Cy7s%*#qp#-sck|B1k7~!%Wrk!gwp#=830x$Rt4B2oS7DxN#Y*cgZw+6s8Ym=J;DsU>y(f z%-H&-7Jm3X00|FR(**Roc>%k8+PKK*EG&b5-V$Z#p(ufry)Bj=pGL4x#uke8RuE5u zQY9WL3P9}HiFTod ztkz|VK(I8Qh(B*sP;Dc5>P+FbS$^(@2A5k+m=8QKJ z9h^%w^c$~ywUzkq7Hob6an6B^_bhE3nE4!pDyzH#lY7`;j-KPK0jl)19$2?~t7vO;2-Nu(sL;yuAJ;{R z^{l~CXd2?D`()i}`YX4P@KDAL@?guLVL;xIFaQ2H%aO8lMVRd0I0sS;#N)rc`t(l< z-C@Cn0!zXkKdAohwcAW;>xRv)biM8;ILOWjaN53{Jyg2_<3ag>*Gstl3M5ept z_T@(dra?h_X43D8uy?T?tAr-d@<5X<@(hjp9em;cvzvIJQ?`*2N)`zXSM=-O{`4%}kYd!+6Brsew4$Df zr#}_ZxAiLd!nDYj0%aYKOf-NnOC(oqmo<)zd~E4kP%}eS?ziSiFw(jaQ@T(olQ-^I zN9}*N;}bwm0NZRc7J5&R2Or+Ehmt{*&b;>%ZFIUSodcXJucWp6S|3N*Y z$Y8xrZk~@U0?l61@Hvd|_`Lj~mLCpo!xC1o=q5To!m9UOXpkM)?8NOGe$)pN zI&(W@SFPx%kv3M=eo%DjBGJ4e;ZMr{h4*mA-hLXXVb6bO0T{H<8v&+d$~z>r@>4Uu zN`SY}Ad-g)y377SBvkjWrfVQ%S0M{8_B9~?)VmtMkroh>74Qf;cTigyHmfDfaQQ`+ z&x5)8hg#afDJhgpLH)JYSWVb{x~*~xEI$!%j7u>kmp{X5TK>gvtNj)jdecnXhE0dA(m4e@(-_XH(Nj;E&e7;DVDPB{jh8 zq`RCCw(mXDA#Ygg*D?4AG>fpbsfn3kpJiI>t7EJDzKNF7b znB#6f37z1adePMRNEKNbIziG~GuRdyM~=9XNP`XAbW8 zXH8+bh38)5mx5D1kL)!3)krl~f#}csd;VdHUbmkYue!QoHGgK))8aAkW;PXuqccGavtR@b{h9V62| zYQJna*QOE6eRO|o_S{`iD&((6x$%p8xrk^_k1LseVw|C!v>91>HZ4)87OUE0M;!^l6UWOS;=w&E*Ymcokfn+C8grm%vh*ew()_O4vW{j%d>u5GCbB`@>5&$ ztQ*2M33Y?fT0;9LCBtPWkAJhCyr&-Q6EY*o`~R9_?t7cx!iK^os=8fY@O}@hgR8v8(}|{j%Q6;{S*NYTGglPpXXG- zaTo6f1@%GsZ?34Pgk`xTXsG`w^9LU)kq6GUx>czS)NRD-jJx2a30y}yT6l?MAl9~t zaODgxFNIA=_nK+JS;n^YFll`9Nc4-z>Pefgg{1b3-%tF$@Xr({es!goE(vU07;Rpn z@bGReIn4cTMW-g`&vasESlEItltZvv^+mG6cFORoX6|FTr#P>;&YQ&^E_oJl9nXdy z*@x%}&$bGkxjNdZxPJ5S*Y?Xs_OqSMmJR52Y$0k%M%lxd*ur#oi{kqVwFd05^2r5( zA?MtN>xt@|S7dTQmFQMBJQglGtAT+q!HAu$Z7x6WQ}F2wdR7>lSXos1DVCd5%KKdN zhLUHgcpKm~iI9}u2*zr?(ft=~u#VzK3D!%9=rYK!6Tx!5lu5%jVyfkVFZQ$L7d+0y zr`jE??~nSCVBZ}$>%+WP>}|!Y0rmWf{TXw=~*^ z!OYK?aCP=RkfHM5j~Z=W^RLeqeh(WeuGZFF*86?nS5iniY82*M{KbB6RkXQIU` zT)bKqej9`onP=>}*WNW-q!hmO>vsokB_qp7)dOGchlC@p6%)U^jQ93SiY#9F*J)g^ z;(l*BfL-2{2$pK|V%85QG zBk-yEd3UPU_e*P27_0E{@Lf(w#9Ap3%cK`LCvm|h^Vu!rMsq$Z;{+zh0}XA@CV*Hw z81}{vAhR7@y*mY9(Y>OGP2teJXqzRpYJBo^suM0EVY-4Y?^i@Fao?`1;ciRKK0;vf z+4Fz-we~QMt1b95Uw2xF?qPU6TNsCId$YGAIHr|vpMGwJKhq0KPhxjQ%LAP8SMf@H ziLvh|Z%Tz?N@8Q=++P=g6rRUkJlv(WHNoCi@qJ1vLFeR3rAvlbe*FyZTJ&ZDzq0&^ z{b#U&aqmiR6|VlCpl3Mai;7DZMbx;nnIG0rRVBX-yd^3ykGvLD3)B(^ZxlhKsDxL< zZicm^Asl*-*H-7i#WjYK(>Q!4AdG`V=6y~-Y|&GCb$;LRM2k7YeLWlA-Z{ctw2mGC zKN>$fpI6mY2cJrDpmVw`(~nNZpU+zq9vog^x$!MexF}tZVI@pSu&)U;yF}PW8H;6j zunTDS`sP2F=Fy-Nqt++P?-f`l0eD5s2mjLekQvtHgGy-hzFIxkT9fqG}TLMwm z(uWHD<+m+jRKsVr!X^;y>{TY2C(zz^3p7sGd7xhZM=VpxoFp&xd-8*bJsvLWt0s@u z@a~H3N$u$?JX;)+-slmnFrb~fSQL-7Aw&ui4pmuioz71j=4|*)eZPt(GBW(rxem>A zIf-Om&kk9ffY-HncFLn;e^A$ADw(S4OSI3(-8E?jYbIQLH$J=MJ3w(Dsb~J_vC#Nf zDb8S4Ss59VXBeH~_|HXvk4JPv7+R3=`9nU2Wh)ySE+(WE9ySL6jb~_wihRfBbozQu z8kA}9J~AC2lzrHT&d?$ZiBFAT&Z;bL@&{IN?W_{KP%z|;>Rd_QPsYpn|AKrztOL;U zu6qQZ`N2{*?q}#S&Q`%X6Y%Sm%t>@AdL}v}Cm`pOzfNB^8`22tm{W0BD^_6Jh?KT$ zn6#e{s&m^kmzN8yTdeu!ENK<`bVlEHMHMHShi@IH-Tl4RPzt1z*?ru_OS-3jp;ek7 zUwXt?dPMy7L@L$;>SbV`xMel^WyiyYYC>LZ;+BoL>2~L52{+;KrlDkS2(R8-YPmN) zpw69LyHx)7E@Z}f%|CD$LzmA!1aX0i>)lr9XET1`X+hj#2pm3c$Q!A#;2V8TDiX11 z5&9aI9O3|TtS{Q7G4vd%ta9(P1S!F*Xt`cCd4EXcfB0wFee?t1z3|8S$WHz?(hX5& z1Xai>h%5@W*JMXmYHQsqANL;##^V6@-9J0O4&Aq3&t}9W;HQC-WtgpJm%WGg=6aEP z<8`q}Z9M#2TRa5+t$^&GJ1&abQd;Bf%3yhh&vG_QMW?-FJ0OfS;o*Blxpo>`Ix=h;F80s3hPT~Kx zS7fc*)o{o%B**KUp~DKJ&U@T?Qm}nN(ZJ|4yHf-W1JU2(dxh;<@ibI)jGn>+O;)c! zq1I`Nw5+|{^kdl7DVWT}lpHAA?pH~<+-{Rw3i_npVRBQUL!JHK61z7n!AZ}XT83fa zN3BFHxTuS|VSOb@_QRF(j9-lS#!W&inl73{=r4l0&s2ri-)31m7BbM6cHqu}vY+uw zp8A$rs_k0*X@+M{CF3v&ORxshVRK%?w7?S$rs8W$9RlsuS(F2FoLX{nB@>0}wsbp*CxKB2c2BNJixsBy-+>v<;2!1NiEyDs~Fj_5;en-cN210sdf6 zry&Ua;++$&oUP*fxF7I=CjwP!EMyux_jubzxpvcthONicRyd|~9yp*6tO1|%`uWb* z4?DTYp64kB%kpj6QK>Om*|c*x9a!3Iuo>D4!bSfCcbxbSTNXbRiZchcv@zoj!NbO* zZR9`pMtXE3w24u>r`(a%k@`H6W!Zs}Kj0guuIf(Lkof1-YCe|=GhN#C5|gzu2Q zGpK%d!2-}VHa2^6QD$xS{W80kpmH#n>oX3!Ugl+4 zBZ$CG_KE={b425C%XEj!{+f|;6cXVhDy@}MK}W2yW1jeX#6doF<0_cZ^@z{)CI@V@ zM#snI3rd$#N7QY!;*bSlW439JDE-hLQ0gQ^cjLtMaPtu$5(ZwrFALMO8SaW&mu?;{ zye@lP@E<2{#xs&|68f8|fr17HBw^ozmG0ndlJ;XRuZszJ8Mx1a1)cbRX+A<_Y#$yh zpbi}EG1#_Bo$qJv7t_bW@x5Fgb8F!A!4^r-J$~es7mK0DgHN_9L@ax}_dtK3lkZ-D zaZA!R&AAE(;%vy?{&dwc_${8brI_yZm9u&WQ-P4lEk_&liXwkZ<>qfe4($D%7g~~h zLR})4e88CR+^xK!Jnm#q0aZ?XWxg_pK*qNCR_8El&j~0K_#QoNr)dGyBG{oJ40g`Q zgsV*9_ilTD$k2^@!@yL5v+knfWJ%66AUQ^8T*~N;$Rw#@A?bK4XzM*ae_!3|YXMh_ zKwn?JkMKu^T!WWPp+2o&x+j*c_k1URU(3zW$#DD&Hn9^M>82U07*1fZucoKfzInMU z?zOo5~dQ7If!wj#rz;kGF0x!j0 z+FyU-@08YIMte3BL9)+$A6>^XX8)>SkmJ$_p1kwC+X&$K3q#-uZ^j+MFv0lu6TZFl z_Hj9$ylYr^38J6x9yD!!&z~XkhjZg(-v$$_STWc0D=R+c17ud-?u)d{&sLx29K;R4 zEU8RLbN;)Z$^TJ&mF3Z{Mh7uv3{_1|cFYczrzfE3qEb6uK%Y`f#SS6bOs`0NNnRsRKPb>($UE3@FP)!p~~OgCLG-V(AHhRslz zPY0ZFR__PgHXfx_8PvHN7s-}Qw6wq5L{$}=WS8Hobe!aX8Z2%1HBX#9lM;r-0Bi{wa-=Jjsi z%Jp*=d~9z3Mud|w-Ql=KmKGDde{)N3s|huUTd>-@rI<^a->C|~0YUIPRc})%z*%%t z6y~Xldxc^{#2EX!>G-J5suBl58IorqUti-U2Ct+`7;F#84vsW`uM(X84iQhcvTuGH zrwJB!p_t+hjZj}}-J!s*QtzqzAxtquIt6TE3-fS$KYpVP%koNYwXk+lq@6b{yl&ck zB-AM$+i!*cmq;8P8F_M1SeV~@k!17+X=Lg1k&4tmVDnngkVbGIuUP;#yl-h!9G3i@ z2^K8{5S$qLma2=aKvyx~7|Ay{BuI-ys)kpnT+_iT|IK2JaD|)C4HR}Yj+P{%$ozV) zrk|dpj1|IhOuoBrQR06Vw7rNN$mMh2*rxoC(xeTYX$IP|RSaZ(HAxd_;h3L}OZ(}e zn+VW(Jhwv=1cao~IZ*Kb<$w``d3cf~kJ{glKRt&($@cVRlH%qsZQQc1K+l}$^&l;x z&*h0c)DufkQi2)nywjV7tr@iGy@<3NR6YS3KM2_hrmrVL98MPPaBzoyT*l9#D;FTF zsh#lf><|3^c)IGaCfoL{q9_g0Qlio$C6s(A5hMf!hU7>Q5NXE<>27HOrG-%gMt4d} z!|2Y99=+eg_xs-O`HSP&IF3DcT-SA<*Lj|Is+y{Kd5Bu=R9ih0lv6Ha#{E{k>iQ03 zaedBoaa&)KYKJjszWV!p_<8I>=RL1xCs*CH`I5&^}DX&XOw?Y0v0o!^=T0w|L$f-IR{azRt?TV<**|6;F( z03~he*H~v=M@9q7>YsgFCl+O2D!YmYg2&eVgMR%V5Oel5vP7O#cAvRC1^|8iZRMrv zOR##C0;syMsii3M+v6mD$hu%lS)#whoi4=_zYiM+c4wf&ynx0}?uBq8;ePjj4f8!Dqz{gKlL)Lq_ z{4#k;C9euA=2{OJ9qBh97Rz^ecz`2ajpbX=SX)mDP6rgGX*BlH{9o3mALDFldt@YiYsUy)?+0N>{q3YoDpnEEk%PG{V}{p<;~#(Q zKNIr!rh?@8OjIJsP~$h%$80IzV1~o9G>aNWZmbrl(fm_a#2hHT5bzOyS$u+H)5ExP zAy9#QOsMy9SVlP^bRQh0a(J{P!jI7`PoMCYZFBgV?5SEqJN8!hLNmY)?yKi*mEv5~ zD^Xu?0k&jH%bp2$&#U|Vv#)yDbwfB?4qRC%m7wV|UFWwvF4$k*W!;?Fu$BnDM7BBT2e1)`7KYv_fFZBtR%|i znFr|lpDNTYRTYr=$qW0)QR}VC_S?0)f&jI&lzHW(lWDJ?>%5u7z4qg zkz4a6y?rOp(w;&56OXW?X{{Ww0GIAm?VK$u{Ytm3f|2h>kJw5-hztsp3k<*pIZ0Y* z^lVp6;h7U~QE2Qo{!8Z>he=FR8D+vn(%0?BX(O$7UvL0O*tB*I!9lAM6V!r$CZ52~m^$+j#+AB5 ziqE5P;cC?71H01yi#V#b;jp~h#IAHRW+ct}wwC>B(`dgAiItXRY3SbR-PC}4f1JjF zR_Fgm={LS4&i1joD*_Ko=qqw0%r&1U?e0R5)ru$X_ogi8sgZ?kh7bNKBv2!MbK$X- zOFF$vx6?@xC!ZX>NDtIYFX1wcZa#wqf~`zVDbJ=zC=+Sw&Xx{4-72IzrCIKqK9jb7;ZH_b-TPu8TalmV8^|g zzQ#W#+LJ$@!*hQKxv2-0Vrk)%g4b*`mV3(Q*HuZ6dnNQUa(3^plu}E}k4tD){b42a zjD_qlre&9V4¹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

pcn-Xfnq8 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ȏ=-(Q~n2iLB1&h`!Cuv)01-LcGp!=+Vm( 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 literal 0 HcmV?d00001 diff --git a/modular_citadel/code/_onclick/click.dm b/modular_citadel/code/_onclick/click.dm index f077b3a71b..004cc2fe80 100644 --- a/modular_citadel/code/_onclick/click.dm +++ b/modular_citadel/code/_onclick/click.dm @@ -72,30 +72,3 @@ /mob/proc/AltRangedAttack(atom/A, params) return FALSE - -/mob/proc/mouse_face_atom(atom/A) //Basically a copy of face_atom but with ismousemovement set to TRUE - if( buckled || stat != CONSCIOUS || !A || !x || !y || !A.x || !A.y ) - return - var/dx = A.x - x - var/dy = A.y - y - if(!dx && !dy) // Wall items are graphically shifted but on the floor - if(A.pixel_y > 16) - setDir(NORTH, ismousemovement = TRUE) - else if(A.pixel_y < -16) - setDir(SOUTH, ismousemovement = TRUE) - else if(A.pixel_x > 16) - setDir(EAST, ismousemovement = TRUE) - else if(A.pixel_x < -16) - setDir(WEST, ismousemovement = TRUE) - return - - if(abs(dx) < abs(dy)) - if(dy > 0) - setDir(NORTH, ismousemovement = TRUE) - else - setDir(SOUTH, ismousemovement = TRUE) - else - if(dx > 0) - setDir(EAST, ismousemovement = TRUE) - else - setDir(WEST, ismousemovement = TRUE) diff --git a/modular_citadel/code/_onclick/other_mobs.dm b/modular_citadel/code/_onclick/other_mobs.dm index 6d9ffdd6ca..2838a363ea 100644 --- a/modular_citadel/code/_onclick/other_mobs.dm +++ b/modular_citadel/code/_onclick/other_mobs.dm @@ -12,7 +12,7 @@ if(isturf(A) || incapacitated()) // pretty annoying to wave your fist at floors and walls. And useless. return TRUE changeNext_move(CLICK_CD_RANGE) - var/list/target_viewers = viewers(11, A) //Byond proc, doesn't check for blindness. + var/list/target_viewers = get_actual_viewers(11, A) //doesn't check for blindness. if(!(src in target_viewers)) //click catcher issuing calls for out of view objects. return TRUE if(!has_active_hand()) @@ -26,16 +26,16 @@ switch(a_intent) if(INTENT_DISARM) the_action = "shoos away [A]" - what_action = "shoo away something you can't see" + what_action = "shoo away something out of your vision" self_action = "shoo away [A]" if(INTENT_GRAB) the_action = "beckons [A] to come" - what_action = "beckons something you can't see to come" + what_action = "beckons something out of your vision to come" self_action = "beckon [A] to come" if(INTENT_HARM) var/pronoun = "[p_their()]" the_action = "shakes [pronoun] fist at [A]" - what_action = "shakes [pronoun] fist at something you can't see" + what_action = "shakes [pronoun] fist at something out of your vision" self_action = "shake your fist at [A]" if(!eye_blind) diff --git a/modular_citadel/code/modules/mob/living/carbon/carbon.dm b/modular_citadel/code/modules/mob/living/carbon/carbon.dm index e95948e562..0532f59afa 100644 --- a/modular_citadel/code/modules/mob/living/carbon/carbon.dm +++ b/modular_citadel/code/modules/mob/living/carbon/carbon.dm @@ -25,5 +25,5 @@ /mob/living/carbon/onMouseMove(object, location, control, params) if(!(combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) return - mouse_face_atom(object) + face_atom(object, TRUE) lastmousedir = dir diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/MKUltra.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/MKUltra.dm index 89a7f58cee..cd672e2c6a 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/MKUltra.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/MKUltra.dm @@ -194,14 +194,14 @@ Creating a chem with a low purity will make you permanently fall in love with so if (M.ckey == creatorID && creatorName == M.real_name)//If the creator drinks it, they fall in love randomly. If someone else drinks it, the creator falls in love with them. if(M.has_status_effect(STATUS_EFFECT_INLOVE))//Can't be enthralled when enthralled, so to speak. return - var/list/seen = viewers(7, get_turf(M)) + var/list/seen = (M.visible_atoms(M.client?.view || world.view) - M) | viewers(M.client?.view || world.view, M) for(var/victim in seen) if(ishuman(victim)) var/mob/living/carbon/V = victim - if((V == M) || (!V.client) || (V.stat == DEAD)) - seen = seen - victim + if(!V.client || V.stat == DEAD) + seen -= victim else - seen = seen - victim + seen -= victim if(LAZYLEN(seen)) return @@ -213,7 +213,7 @@ Creating a chem with a low purity will make you permanently fall in love with so var/mob/living/carbon/C = get_mob_by_key(creatorID) if(M.has_status_effect(STATUS_EFFECT_INLOVE)) return - if((C in viewers(7, get_turf(M))) && (C.client)) + if(C.client && (M in C.visible_atoms(C.client.view))) M.reagents.del_reagent(type) FallInLove(C, M) return @@ -279,15 +279,13 @@ Creating a chem with a low purity will make you permanently fall in love with so if(HAS_TRAIT(M, TRAIT_MINDSHIELD)) return ..() if(!M.has_status_effect(STATUS_EFFECT_INLOVE)) - var/list/seen = viewers(7, get_turf(M))//Sound and sight checkers + var/list/seen = (M.visible_atoms(M.client?.view || world.view) - M) | viewers(M.client?.view || world.view, M) for(var/victim in seen) - if((istype(victim, /mob/living/simple_animal/pet/)) || (victim == M) || (M.stat == DEAD) || (!isliving(victim))) - seen = seen - victim - if(seen.len == 0) + if((isanimal(victim)) || (!isliving(victim))) + seen -= victim + if(!length(seen)) return love = pick(seen) - if(!love) - return M.apply_status_effect(STATUS_EFFECT_INLOVE, love) lewd = (M.client?.prefs.cit_toggles & HYPNO) && (love.client?.prefs.cit_toggles & HYPNO) to_chat(M, "[(lewd?"":"")][(lewd?"You develop a sudden crush on [love], your heart beginning to race as you look upon them with new eyes.":"You suddenly feel like making friends with [love].")] You feel strangely drawn towards them.") diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm index dac6d97eef..8bc67b6d1d 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm @@ -98,10 +98,8 @@ M.emote("cough") var/obj/item/toy/plush/P = pick(subtypesof(/obj/item/toy/plush)) new P(T) - to_chat(M, "You feel a lump form in your throat, as you suddenly cough up what seems to be a hairball?") - var/list/seen = viewers(8, T) - for(var/mob/S in seen) - to_chat(S, "[M] suddenly coughs up a [P.name]!") + M.visible_message("[M] suddenly coughs up a [P.name]!",\ + "You feel a lump form in your throat, as you suddenly cough up what seems to be a hairball?") var/T2 = get_random_station_turf() P.throw_at(T2, 8, 1) ..() @@ -120,10 +118,10 @@ to_chat(M, "You find yourself unable to supress the desire to howl!") M.emote("awoo") if(prob(20)) - var/list/seen = viewers(5, get_turf(M))//Sound and sight checkers + var/list/seen = M.visible_atoms() - M //Sound and sight checkers for(var/victim in seen) - if((istype(victim, /mob/living/simple_animal/pet/)) || (victim == M) || (!isliving(victim))) - seen = seen - victim + if(isanimal(victim) || !isliving(victim)) + seen -= victim if(LAZYLEN(seen)) to_chat(M, "You notice [pick(seen)]'s bulge [pick("OwO!", "uwu!")]") if(16) @@ -141,10 +139,10 @@ to_chat(M, "You find yourself unable to supress the desire to howl!") M.emote("awoo") if(prob(5)) - var/list/seen = viewers(5, get_turf(M))//Sound and sight checkers + var/list/seen = M.visible_atoms() - M //Sound and sight checkers for(var/victim in seen) - if((istype(victim, /mob/living/simple_animal/pet/)) || (victim == M) || (!isliving(victim))) - seen = seen - victim + if(isanimal(victim) || !isliving(victim)) + seen -= victim if(LAZYLEN(seen)) to_chat(M, "You notice [pick(seen)]'s bulge [pick("OwO!", "uwu!")]") ..() @@ -301,9 +299,8 @@ datum/reagent/fermi/nanite_b_gone/reaction_obj(obj/O, reac_volume) else var/datum/chemical_reaction/Ferm = GLOB.chemical_reagents_list[reagent.type] Ferm.on_reaction(holder, reagent.volume) - for(var/mob/M in viewers(8, location)) - to_chat(M, "The solution reacts dramatically, with a meow!") - playsound(get_turf(M), 'modular_citadel/sound/voice/merowr.ogg', 50, 1) + holder.my_atom.visible_message("The solution reacts dramatically, with a meow!") + playsound(holder.my_atom, 'modular_citadel/sound/voice/merowr.ogg', 50, 1) holder.clear_reagents() /datum/reagent/fermi/acidic_buffer @@ -321,10 +318,8 @@ datum/reagent/fermi/nanite_b_gone/reaction_obj(obj/O, reac_volume) if(LAZYLEN(holder.reagent_list) == 1) return ..() holder.pH = ((holder.pH * holder.total_volume)+(pH * (volume)))/(holder.total_volume + (volume)) - var/list/seen = viewers(5, get_turf(holder)) - for(var/mob/M in seen) - to_chat(M, "The beaker fizzes as the pH changes!") - playsound(get_turf(holder.my_atom), 'sound/FermiChem/bufferadd.ogg', 50, 1) + holder.my_atom.visible_message("The beaker fizzes as the pH changes!") + playsound(holder.my_atom, 'sound/FermiChem/bufferadd.ogg', 50, 1) holder.remove_reagent(type, volume, ignore_pH = TRUE) ..() @@ -342,10 +337,8 @@ datum/reagent/fermi/nanite_b_gone/reaction_obj(obj/O, reac_volume) if(LAZYLEN(holder.reagent_list) == 1) return ..() holder.pH = ((holder.pH * holder.total_volume)+(pH * (volume)))/(holder.total_volume + (volume)) - var/list/seen = viewers(5, get_turf(holder)) - for(var/mob/M in seen) - to_chat(M, "The beaker froths as the pH changes!") - playsound(get_turf(holder.my_atom), 'sound/FermiChem/bufferadd.ogg', 50, 1) + holder.my_atom.visible_message("The beaker froths as the pH changes!") + playsound(holder.my_atom, 'sound/FermiChem/bufferadd.ogg', 50, 1) holder.remove_reagent(type, volume, ignore_pH = TRUE) ..() diff --git a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm index 837524d49f..a8998a51ac 100644 --- a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm +++ b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm @@ -172,9 +172,7 @@ S.rabid = 1//Make them an angery boi S.color = "#810010" my_atom.reagents.clear_reagents() - var/list/seen = viewers(8, get_turf(my_atom)) - for(var/mob/M in seen) - to_chat(M, "The cells clump up into a horrifying tumour!") + my_atom.visible_message("An horrifying tumoural mass forms in [my_atom]!") /datum/chemical_reaction/fermi/breast_enlarger name = "Sucubus milk" @@ -211,9 +209,7 @@ /datum/chemical_reaction/fermi/breast_enlarger/FermiExplode(datum/reagents, var/atom/my_atom, volume, temp, pH) var/obj/item/organ/genital/breasts/B = new /obj/item/organ/genital/breasts(get_turf(my_atom)) - var/list/seen = viewers(8, get_turf(my_atom)) - for(var/mob/M in seen) - to_chat(M, "The reaction suddenly condenses, creating a pair of breasts!") + my_atom.visible_message("The reaction suddenly condenses, creating a pair of breasts!") var/datum/reagent/fermi/breast_enlarger/BE = locate(/datum/reagent/fermi/breast_enlarger) in my_atom.reagents.reagent_list B.size = ((BE.volume * BE.purity) / 10) //half as effective. my_atom.reagents.clear_reagents() @@ -243,9 +239,7 @@ /datum/chemical_reaction/fermi/penis_enlarger/FermiExplode(datum/reagents, var/atom/my_atom, volume, temp, pH) var/obj/item/organ/genital/penis/P = new /obj/item/organ/genital/penis(get_turf(my_atom)) - var/list/seen = viewers(8, get_turf(my_atom)) - for(var/mob/M in seen) - to_chat(M, "The reaction suddenly condenses, creating a penis!") + my_atom.visible_message("The reaction suddenly condenses, creating a penis!") var/datum/reagent/fermi/penis_enlarger/PE = locate(/datum/reagent/fermi/penis_enlarger) in my_atom.reagents.reagent_list P.length = ((PE.volume * PE.purity) / 10)//half as effective. my_atom.reagents.clear_reagents() @@ -383,9 +377,7 @@ for(var/i in 1 to amount_to_spawn) var/obj/item/clothing/head/hattip/hat = new /obj/item/clothing/head/hattip(get_turf(my_atom)) hat.animate_atom_living() - var/list/seen = viewers(8, get_turf(my_atom)) - for(var/mob/M in seen) - to_chat(M, "The [my_atom] makes an off sounding pop, as a hat suddenly climbs out of it!") + my_atom.visible_message("The [my_atom] makes an off sounding pop, as a hat suddenly climbs out of it!") my_atom.reagents.clear_reagents() /datum/chemical_reaction/fermi/furranium @@ -543,9 +535,7 @@ /datum/chemical_reaction/fermi/secretcatchem/FermiExplode(datum/reagents, var/atom/my_atom, volume, temp, pH) var/mob/living/simple_animal/pet/cat/custom_cat/catto = new(get_turf(my_atom)) - var/list/seen = viewers(8, get_turf(my_atom)) - for(var/mob/M in seen) - to_chat(M, "The reaction suddenly gives out a meow, condensing into a chemcat!")//meow! + my_atom.visible_message("The reaction suddenly gives out a meow, condensing into a chemcat!")//meow! playsound(get_turf(my_atom), 'modular_citadel/sound/voice/merowr.ogg', 50, 1, -1) catto.name = "Chemcat" catto.desc = "A cute chem cat, created by a lot of compicated and confusing chemistry!" diff --git a/modular_citadel/code/modules/reagents/objects/clothes.dm b/modular_citadel/code/modules/reagents/objects/clothes.dm index 34af39bbe0..de4cb38360 100644 --- a/modular_citadel/code/modules/reagents/objects/clothes.dm +++ b/modular_citadel/code/modules/reagents/objects/clothes.dm @@ -5,7 +5,7 @@ name = "Synthetic hat" icon = 'icons/obj/clothing/hats.dmi' icon_state = "cowboy" - desc = "A synthesized hat, you can't seem to take it off. And tips their hat." + desc = "A synthesized hat. You feel compelled to keep it on all times." armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) //item_flags = NODROP //Tips their hat! @@ -49,9 +49,8 @@ /obj/item/clothing/head/hattip/proc/root_and_toot(obj/item/clothing/head/hattip/hat) hat.animate_atom_living() - var/list/seen = viewers(6, get_turf(hat)) - for(var/mob/M2 in seen) - to_chat(M2, "[hat] exclaims, \"[pick("Whooee! Time for a hootenanny!", "Rough 'em up boys!", "Yeehaw! Freedom at last!", "Y'all about to get a good old fashioned spanking!")]\"") + var/mob/living/simple_animal/hostile/mimic/M = loc + M.say(pick("Whooee! Time for a hootenanny!", "Rough 'em up boys!", "Yeehaw! Freedom at last!", "Y'all about to get a good old fashioned spanking!")) /obj/item/clothing/head/hattip/proc/handle_speech(datum/source, mob/speech_args) var/message = speech_args[SPEECH_MESSAGE] diff --git a/tgstation.dme b/tgstation.dme index aa24a781fe..619f6767bb 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -397,6 +397,7 @@ #include "code\datums\components\edit_complainer.dm" #include "code\datums\components\empprotection.dm" #include "code\datums\components\explodable.dm" +#include "code\datums\components\field_of_vision.dm" #include "code\datums\components\footstep.dm" #include "code\datums\components\forced_gravity.dm" #include "code\datums\components\identification.dm" @@ -2375,6 +2376,7 @@ #include "code\modules\mob\living\carbon\human\human_movement.dm" #include "code\modules\mob\living\carbon\human\inventory.dm" #include "code\modules\mob\living\carbon\human\life.dm" +#include "code\modules\mob\living\carbon\human\login.dm" #include "code\modules\mob\living\carbon\human\physiology.dm" #include "code\modules\mob\living\carbon\human\say.dm" #include "code\modules\mob\living\carbon\human\species.dm" From b6a74288b936a34154ac4be6b9b9c9ce130e83ce Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Fri, 15 May 2020 20:00:26 -0700 Subject: [PATCH 054/103] [s] cryogenics logging (#12264) * Update cryopod.dm * Update admin_investigate.dm * Update logging.dm * Update cryopod.dm * how asleep was i last night gamers * Update cryopod.dm --- code/__DEFINES/logging.dm | 1 + code/game/machinery/cryopod.dm | 6 ++++++ code/modules/admin/admin_investigate.dm | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/code/__DEFINES/logging.dm b/code/__DEFINES/logging.dm index 9693d46d00..7e1559cede 100644 --- a/code/__DEFINES/logging.dm +++ b/code/__DEFINES/logging.dm @@ -18,6 +18,7 @@ #define INVESTIGATE_CIRCUIT "circuit" #define INVESTIGATE_FERMICHEM "fermichem" #define INVESTIGATE_RCD "rcd" +#define INVESTIGATE_CRYOGENICS "cryogenics" // Logging types for log_message() #define LOG_ATTACK (1 << 0) diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index 07f95c17ff..9330a30555 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -242,6 +242,7 @@ if((isnull(user) || istype(user)) && state_open && !panel_open) ..(user) var/mob/living/mob_occupant = occupant + investigate_log("Cryogenics machine closed with occupant [key_name(occupant)] by user [key_name(user)].", INVESTIGATE_CRYOGENICS) if(mob_occupant && mob_occupant.stat != DEAD) to_chat(occupant, "You feel cool air surround you. You go numb as your senses turn inward.") if(mob_occupant.client)//if they're logged in @@ -251,12 +252,15 @@ icon_state = "cryopod" /obj/machinery/cryopod/open_machine() + if(occupant) + investigate_log("Cryogenics machine opened with occupant [key_name(occupant)] inside.", INVESTIGATE_CRYOGENICS) ..() icon_state = "cryopod-open" density = TRUE name = initial(name) /obj/machinery/cryopod/container_resist(mob/living/user) + investigate_log("Cryogenics machine container resisted by [key_name(user)] with occupant [key_name(occupant)].", INVESTIGATE_CRYOGENICS) visible_message("[occupant] emerges from [src]!", "You climb out of [src]!") open_machine() @@ -304,6 +308,8 @@ var/mob/living/mob_occupant = occupant var/list/obj/item/cryo_items = list() + + investigate_log("Despawning [key_name(mob_occupant)].", INVESTIGATE_CRYOGENICS) //Handle Borg stuff first if(iscyborg(mob_occupant)) diff --git a/code/modules/admin/admin_investigate.dm b/code/modules/admin/admin_investigate.dm index 55c55c42de..99bb988be6 100644 --- a/code/modules/admin/admin_investigate.dm +++ b/code/modules/admin/admin_investigate.dm @@ -4,7 +4,7 @@ var/F = file("[GLOB.log_directory]/[subject].html") WRITE_FILE(F, "[TIME_STAMP("hh:mm:ss", FALSE)] [REF(src)] ([x],[y],[z]) || [src] [message]
") -/client/proc/investigate_show(subject in list("notes, memos, watchlist", INVESTIGATE_RCD, INVESTIGATE_RESEARCH, INVESTIGATE_EXONET, INVESTIGATE_PORTAL, INVESTIGATE_SINGULO, INVESTIGATE_WIRES, INVESTIGATE_TELESCI, INVESTIGATE_GRAVITY, INVESTIGATE_RECORDS, INVESTIGATE_CARGO, INVESTIGATE_SUPERMATTER, INVESTIGATE_ATMOS, INVESTIGATE_EXPERIMENTOR, INVESTIGATE_BOTANY, INVESTIGATE_HALLUCINATIONS, INVESTIGATE_RADIATION, INVESTIGATE_CIRCUIT, INVESTIGATE_NANITES) ) +/client/proc/investigate_show(subject in list("notes, memos, watchlist", INVESTIGATE_RCD, INVESTIGATE_RESEARCH, INVESTIGATE_EXONET, INVESTIGATE_PORTAL, INVESTIGATE_SINGULO, INVESTIGATE_WIRES, INVESTIGATE_TELESCI, INVESTIGATE_GRAVITY, INVESTIGATE_RECORDS, INVESTIGATE_CARGO, INVESTIGATE_SUPERMATTER, INVESTIGATE_ATMOS, INVESTIGATE_EXPERIMENTOR, INVESTIGATE_BOTANY, INVESTIGATE_HALLUCINATIONS, INVESTIGATE_RADIATION, INVESTIGATE_CIRCUIT, INVESTIGATE_NANITES, INVESTIGATE_CRYOGENICS) ) set name = "Investigate" set category = "Admin" if(!holder) From 7d75166b7bf680dadc5b98f5a84d134f5a32f1b5 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Fri, 15 May 2020 23:20:34 -0700 Subject: [PATCH 055/103] tgs 5.1.1 --- code/modules/tgs/core/core.dm | 22 ++++++++++++++++----- code/modules/tgs/core/datum.dm | 4 +++- code/modules/tgs/v3210/api.dm | 2 +- code/modules/tgs/v4/api.dm | 5 +---- code/modules/tgs/v5/_defines.dm | 7 +++++-- code/modules/tgs/v5/api.dm | 34 ++++++++++++++++++++++++++------- code/modules/tgs/v5/undef.dm | 3 +++ 7 files changed, 57 insertions(+), 20 deletions(-) diff --git a/code/modules/tgs/core/core.dm b/code/modules/tgs/core/core.dm index 144f33926f..a74c9bbab2 100644 --- a/code/modules/tgs/core/core.dm +++ b/code/modules/tgs/core/core.dm @@ -1,11 +1,17 @@ /world/TgsNew(datum/tgs_event_handler/event_handler, minimum_required_security_level = TGS_SECURITY_ULTRASAFE) var/current_api = TGS_READ_GLOBAL(tgs) if(current_api) - TGS_ERROR_LOG("TgsNew(): TGS API datum already set ([current_api])! Was TgsNew() called more than once?") + TGS_ERROR_LOG("API datum already set (\ref[current_api] ([current_api]))! Was TgsNew() called more than once?") + return + + if(!(minimum_required_security_level in list(TGS_SECURITY_ULTRASAFE, TGS_SECURITY_SAFE, TGS_SECURITY_TRUSTED))) + TGS_ERROR_LOG("Invalid minimum_required_security_level: [minimum_required_security_level]!") return #ifdef TGS_V3_API - minimum_required_security_level = TGS_SECURITY_TRUSTED + if(minimum_required_security_level != TGS_SECURITY_TRUSTED) + TGS_WARNING_LOG("V3 DMAPI requires trusted security!") + minimum_required_security_level = TGS_SECURITY_TRUSTED #endif var/raw_parameter = world.params[TGS_VERSION_PARAMETER] if(!raw_parameter) @@ -13,7 +19,7 @@ var/datum/tgs_version/version = new(raw_parameter) if(!version.Valid(FALSE)) - TGS_ERROR_LOG("Failed to validate TGS version parameter: [raw_parameter]!") + TGS_ERROR_LOG("Failed to validate DMAPI version parameter: [raw_parameter]!") return var/api_datum @@ -21,6 +27,7 @@ if(3) #ifndef TGS_V3_API TGS_ERROR_LOG("Detected V3 API but TGS_V3_API isn't defined!") + return #else switch(version.minor) if(2) @@ -43,11 +50,16 @@ return TGS_INFO_LOG("Activating API for version [version.deprefixed_parameter]") - var/datum/tgs_api/new_api = new api_datum(version) + + if(event_handler && !istype(event_handler)) + TGS_ERROR_LOG("Invalid parameter for event_handler: [event_handler]") + event_handler = null + + var/datum/tgs_api/new_api = new api_datum(event_handler, version) TGS_WRITE_GLOBAL(tgs, new_api) - var/result = new_api.OnWorldNew(event_handler, minimum_required_security_level) + var/result = new_api.OnWorldNew(minimum_required_security_level) if(!result || result == TGS_UNIMPLEMENTED) TGS_WRITE_GLOBAL(tgs, null) TGS_ERROR_LOG("Failed to activate API!") diff --git a/code/modules/tgs/core/datum.dm b/code/modules/tgs/core/datum.dm index 3adecbb556..ccc75fe344 100644 --- a/code/modules/tgs/core/datum.dm +++ b/code/modules/tgs/core/datum.dm @@ -2,9 +2,11 @@ TGS_DEFINE_AND_SET_GLOBAL(tgs, null) /datum/tgs_api var/datum/tgs_version/version + var/datum/tgs_event_handler/event_handler -/datum/tgs_api/New(datum/tgs_version/version) +/datum/tgs_api/New(datum/tgs_event_handler/event_handler, datum/tgs_version/version) . = ..() + src.event_handler = event_handler src.version = version /datum/tgs_api/latest diff --git a/code/modules/tgs/v3210/api.dm b/code/modules/tgs/v3210/api.dm index 5327b9276b..0fc0076c8b 100644 --- a/code/modules/tgs/v3210/api.dm +++ b/code/modules/tgs/v3210/api.dm @@ -56,7 +56,7 @@ /datum/tgs_api/v3210/proc/file2list(filename) return splittext(trim_left(trim_right(file2text(filename))), "\n") -/datum/tgs_api/v3210/OnWorldNew(datum/tgs_event_handler/event_handler, minimum_required_security_level) //don't use event handling in this version +/datum/tgs_api/v3210/OnWorldNew(minimum_required_security_level) . = FALSE comms_key = world.params[SERVICE_WORLD_PARAM] diff --git a/code/modules/tgs/v4/api.dm b/code/modules/tgs/v4/api.dm index 5c98a1a7a7..ba18aab688 100644 --- a/code/modules/tgs/v4/api.dm +++ b/code/modules/tgs/v4/api.dm @@ -43,15 +43,13 @@ var/list/cached_test_merges var/datum/tgs_revision_information/cached_revision - var/datum/tgs_event_handler/event_handler - var/export_lock = FALSE var/list/last_interop_response /datum/tgs_api/v4/ApiVersion() return new /datum/tgs_version("4.0.0.0") -/datum/tgs_api/v4/OnWorldNew(datum/tgs_event_handler/event_handler, minimum_required_security_level) +/datum/tgs_api/v4/OnWorldNew(minimum_required_security_level) json_path = world.params[TGS4_PARAM_INFO_JSON] if(!json_path) TGS_ERROR_LOG("Missing [TGS4_PARAM_INFO_JSON] world parameter!") @@ -76,7 +74,6 @@ security_level = cached_json["securityLevel"] chat_channels_json_path = cached_json["chatChannelsJson"] chat_commands_json_path = cached_json["chatCommandsJson"] - src.event_handler = event_handler instance_name = cached_json["instanceName"] ListCustomCommands() diff --git a/code/modules/tgs/v5/_defines.dm b/code/modules/tgs/v5/_defines.dm index 1117a1df50..2baf3e12d7 100644 --- a/code/modules/tgs/v5/_defines.dm +++ b/code/modules/tgs/v5/_defines.dm @@ -60,8 +60,10 @@ #define DMAPI5_TOPIC_COMMAND_CHANGE_PORT 2 #define DMAPI5_TOPIC_COMMAND_CHANGE_REBOOT_STATE 3 #define DMAPI5_TOPIC_COMMAND_INSTANCE_RENAMED 4 -#define DMAPI5_TOPIC_COMMAND_CHAT_CHANNELS_UPDATE 4 -#define DMAPI5_TOPIC_COMMAND_SERVER_PORT_UPDATE 5 +#define DMAPI5_TOPIC_COMMAND_CHAT_CHANNELS_UPDATE 5 +#define DMAPI5_TOPIC_COMMAND_SERVER_PORT_UPDATE 6 +#define DMAPI5_TOPIC_COMMAND_HEARTBEAT 7 +#define DMAPI5_TOPIC_COMMAND_WATCHDOG_REATTACH 8 #define DMAPI5_TOPIC_PARAMETER_COMMAND_TYPE "commandType" #define DMAPI5_TOPIC_PARAMETER_CHAT_COMMAND "chatCommand" @@ -70,6 +72,7 @@ #define DMAPI5_TOPIC_PARAMETER_NEW_REBOOT_STATE "newRebootState" #define DMAPI5_TOPIC_PARAMETER_NEW_INSTANCE_NAME "newInstanceName" #define DMAPI5_TOPIC_PARAMETER_CHAT_UPDATE "chatUpdate" +#define DMAPI5_TOPIC_PARAMETER_NEW_SERVER_VERSION "newServerVersion" #define DMAPI5_TOPIC_RESPONSE_COMMAND_RESPONSE_MESSAGE "commandResponseMessage" #define DMAPI5_TOPIC_RESPONSE_CHAT_RESPONSES "chatResponses" diff --git a/code/modules/tgs/v5/api.dm b/code/modules/tgs/v5/api.dm index 32f80c0ae4..eedefb2877 100644 --- a/code/modules/tgs/v5/api.dm +++ b/code/modules/tgs/v5/api.dm @@ -15,18 +15,15 @@ var/datum/tgs_revision_information/revision var/list/chat_channels - var/datum/tgs_event_handler/event_handler - /datum/tgs_api/v5/ApiVersion() - return new /datum/tgs_version("5.0.0") - -/datum/tgs_api/v5/OnWorldNew(datum/tgs_event_handler/event_handler, minimum_required_security_level) - src.event_handler = event_handler + return new /datum/tgs_version("5.1.1") +/datum/tgs_api/v5/OnWorldNew(minimum_required_security_level) server_port = world.params[DMAPI5_PARAM_SERVER_PORT] access_identifier = world.params[DMAPI5_PARAM_ACCESS_IDENTIFIER] var/datum/tgs_version/api_version = ApiVersion() + version = null var/list/bridge_response = Bridge(DMAPI5_BRIDGE_COMMAND_STARTUP, list(DMAPI5_BRIDGE_PARAMETER_MINIMUM_SECURITY_LEVEL = minimum_required_security_level, DMAPI5_BRIDGE_PARAMETER_VERSION = api_version.raw_parameter, DMAPI5_BRIDGE_PARAMETER_CUSTOM_COMMANDS = ListCustomCommands())) if(!istype(bridge_response)) TGS_ERROR_LOG("Failed initial bridge request!") @@ -41,9 +38,9 @@ TGS_INFO_LOG("DMAPI validation, exiting...") del(world) + version = new /datum/tgs_version(runtime_information[DMAPI5_RUNTIME_INFORMATION_SERVER_VERSION]) security_level = runtime_information[DMAPI5_RUNTIME_INFORMATION_SECURITY_LEVEL] instance_name = runtime_information[DMAPI5_RUNTIME_INFORMATION_INSTANCE_NAME] - version = new /datum/tgs_version(runtime_information[DMAPI5_RUNTIME_INFORMATION_SERVER_VERSION]) var/list/revisionData = runtime_information[DMAPI5_RUNTIME_INFORMATION_REVISION] if(istype(revisionData)) @@ -84,6 +81,10 @@ return TRUE +/datum/tgs_api/v5/proc/RequireInitialBridgeResponse() + while(!version) + sleep(1) + /datum/tgs_api/v5/OnInitializationComplete() Bridge(DMAPI5_BRIDGE_COMMAND_PRIME) @@ -197,6 +198,20 @@ server_port = new_port return TopicResponse() + if(DMAPI5_TOPIC_COMMAND_HEARTBEAT) + return TopicResponse() + if(DMAPI5_TOPIC_COMMAND_WATCHDOG_REATTACH) + var/new_version_string = topic_parameters[DMAPI5_TOPIC_PARAMETER_NEW_SERVER_VERSION] + if (!istext(new_version_string)) + return TopicResponse("Invalid or missing [DMAPI5_TOPIC_PARAMETER_NEW_SERVER_VERSION]]") + + var/datum/tgs_version/new_version = new(new_version_string) + if (event_handler) + event_handler.HandleEvent(TGS_EVENT_WATCHDOG_REATTACH, new_version) + + version = new_version + + return TopicResponse() return TopicResponse("Unknown command: [command]") @@ -252,15 +267,18 @@ TGS_ERROR_LOG("Unable to set port to [port]!") /datum/tgs_api/v5/InstanceName() + RequireInitialBridgeResponse() return instance_name /datum/tgs_api/v5/TestMerges() + RequireInitialBridgeResponse() return test_merges /datum/tgs_api/v5/EndProcess() Bridge(DMAPI5_BRIDGE_COMMAND_KILL) /datum/tgs_api/v5/Revision() + RequireInitialBridgeResponse() return revision /datum/tgs_api/v5/ChatBroadcast(message, list/channels) @@ -298,6 +316,7 @@ Bridge(DMAPI5_BRIDGE_COMMAND_CHAT_SEND, list(DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE = message)) /datum/tgs_api/v5/ChatChannelInfo() + RequireInitialBridgeResponse() return chat_channels /datum/tgs_api/v5/proc/DecodeChannels(chat_update_json) @@ -322,6 +341,7 @@ return channel /datum/tgs_api/v5/SecurityLevel() + RequireInitialBridgeResponse() return security_level /* diff --git a/code/modules/tgs/v5/undef.dm b/code/modules/tgs/v5/undef.dm index 72d673b9b1..b27e3abe95 100644 --- a/code/modules/tgs/v5/undef.dm +++ b/code/modules/tgs/v5/undef.dm @@ -62,6 +62,8 @@ #undef DMAPI5_TOPIC_COMMAND_INSTANCE_RENAMED #undef DMAPI5_TOPIC_COMMAND_CHAT_CHANNELS_UPDATE #undef DMAPI5_TOPIC_COMMAND_SERVER_PORT_UPDATE +#undef DMAPI5_TOPIC_COMMAND_HEARTBEAT +#undef DMAPI5_TOPIC_COMMAND_WATCHDOG_REATTACH #undef DMAPI5_TOPIC_PARAMETER_COMMAND_TYPE #undef DMAPI5_TOPIC_PARAMETER_CHAT_COMMAND @@ -70,6 +72,7 @@ #undef DMAPI5_TOPIC_PARAMETER_NEW_REBOOT_STATE #undef DMAPI5_TOPIC_PARAMETER_NEW_INSTANCE_NAME #undef DMAPI5_TOPIC_PARAMETER_CHAT_UPDATE +#undef DMAPI5_TOPIC_PARAMETER_NEW_SERVER_VERSION #undef DMAPI5_TOPIC_RESPONSE_COMMAND_RESPONSE_MESSAGE #undef DMAPI5_TOPIC_RESPONSE_CHAT_RESPONSES From 1d6ff8380f0d763eff3e030326a340051a5a0296 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Fri, 15 May 2020 23:22:13 -0700 Subject: [PATCH 056/103] update --- code/__DEFINES/tgs.dm | 62 ++++++++++++++++++++++++------------------- 1 file changed, 34 insertions(+), 28 deletions(-) diff --git a/code/__DEFINES/tgs.dm b/code/__DEFINES/tgs.dm index 4e152ad3cf..e164a4ec96 100644 --- a/code/__DEFINES/tgs.dm +++ b/code/__DEFINES/tgs.dm @@ -1,6 +1,6 @@ //tgstation-server DMAPI -#define TGS_DMAPI_VERSION "5.0.0" +#define TGS_DMAPI_VERSION "5.1.1" //All functions and datums outside this document are subject to change with any version and should not be relied on @@ -54,7 +54,8 @@ #define TGS_EVENT_REBOOT_MODE_CHANGE -1 //Before a reboot mode change, extras parameters are the current and new reboot mode enums #define TGS_EVENT_PORT_SWAP -2 //Before a port change is about to happen, extra parameters is new port -#define TGS_EVENT_INSTANCE_RENAMED -3 //Before the instance is renamed, extra prameter is the new name +#define TGS_EVENT_INSTANCE_RENAMED -3 //Before the instance is renamed, extra parameter is the new name +#define TGS_EVENT_WATCHDOG_REATTACH -4 //After the watchdog reattaches to DD, extra parameter is the new /datum/tgs_version of the server //See the descriptions for the parameters of these codes here: https://github.com/tgstation/tgstation-server/blob/master/src/Tgstation.Server.Host/Components/EventType.cs #define TGS_EVENT_REPO_RESET_ORIGIN 0 @@ -70,7 +71,10 @@ #define TGS_EVENT_COMPILE_FAILURE 10 #define TGS_EVENT_COMPILE_COMPLETE 11 // Note, this event fires before the new .dmb is loaded into the watchdog. Consider using the TGS_EVENT_DEPLOYMENT_COMPLETE instead #define TGS_EVENT_INSTANCE_AUTO_UPDATE_START 12 -#define TGS_EVENT_DEPLOYMENT_COMPLETE 13 +#define TGS_EVENT_REPO_MERGE_CONFLICT 13 +#define TGS_EVENT_DEPLOYMENT_COMPLETE 14 +#define TGS_EVENT_WATCHDOG_SHUTDOWN 15 +#define TGS_EVENT_WATCHDOG_DETACH 16 //OTHER ENUMS @@ -85,7 +89,7 @@ //REQUIRED HOOKS //Call this somewhere in /world/New() that is always run -//IMPORTANT: This function may sleep! Other TGS functions will not succeed until it completes +//IMPORTANT: This function may sleep! //event_handler: optional user defined event handler. The default behaviour is to broadcast the event in english to all connected admin channels //minimum_required_security_level: The minimum required security level to run the game in which the DMAPI is integrated /world/proc/TgsNew(datum/tgs_event_handler/event_handler, minimum_required_security_level = TGS_SECURITY_ULTRASAFE) @@ -193,6 +197,32 @@ /world/proc/TgsAvailable() return +//Forces a hard reboot of BYOND by ending the process +//unlike del(world) clients will try to reconnect +//If the service has not requested a shutdown, the next server will take over +/world/proc/TgsEndProcess() + return + +//Send a message to non-admin connected chats +//message: The message to send +//admin_only: If TRUE, message will instead be sent to only admin connected chats +/world/proc/TgsTargetedChatBroadcast(message, admin_only) + return + +//Send a private message to a specific user +//message: The message to send +//user: The /datum/tgs_chat_user to send to +/world/proc/TgsChatPrivateMessage(message, datum/tgs_chat_user/user) + return + +//The following functions will sleep if a call to TgsNew() is sleeping + +//Sends a message to connected game chats +//message: The message to send +//channels: optional channels to limit the broadcast to +/world/proc/TgsChatBroadcast(message, list/channels) + return + //Gets the current /datum/tgs_version of the server tools running the server /world/proc/TgsVersion() return @@ -217,34 +247,10 @@ /world/proc/TgsTestMerges() return -//Forces a hard reboot of BYOND by ending the process -//unlike del(world) clients will try to reconnect -//If the service has not requested a shutdown, the next server will take over -/world/proc/TgsEndProcess() - return - //Gets a list of connected tgs_chat_channel /world/proc/TgsChatChannelInfo() return -//Sends a message to connected game chats -//message: The message to send -//channels: optional channels to limit the broadcast to -/world/proc/TgsChatBroadcast(message, list/channels) - return - -//Send a message to non-admin connected chats -//message: The message to send -//admin_only: If TRUE, message will instead be sent to only admin connected chats -/world/proc/TgsTargetedChatBroadcast(message, admin_only) - return - -//Send a private message to a specific user -//message: The message to send -//user: The /datum/tgs_chat_user to send to -/world/proc/TgsChatPrivateMessage(message, datum/tgs_chat_user/user) - return - /* The MIT License From 73a27c8fe53cbd7ccb65d311052f92916163ac8f Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Sat, 16 May 2020 16:38:16 +0200 Subject: [PATCH 057/103] Porting "Fixes Null Reference + Qdel Issue in Runechat" (#12271) --- code/datums/chatmessage.dm | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/code/datums/chatmessage.dm b/code/datums/chatmessage.dm index 64d6114f75..7a78e1d001 100644 --- a/code/datums/chatmessage.dm +++ b/code/datums/chatmessage.dm @@ -35,7 +35,7 @@ * * extra_classes - Extra classes to apply to the span that holds the text * * lifespan - The lifespan of the message in deciseconds */ -/datum/chatmessage/New(text, atom/target, mob/owner, list/extra_classes = null, lifespan = CHAT_MESSAGE_LIFESPAN) +/datum/chatmessage/New(text, atom/target, mob/owner, list/extra_classes = list(), lifespan = CHAT_MESSAGE_LIFESPAN) . = ..() if (!istype(target)) CRASH("Invalid target given for chatmessage") @@ -55,6 +55,12 @@ message = null return ..() +/** + * Calls qdel on the chatmessage when its parent is deleted, used to register qdel signal + */ +/datum/chatmessage/proc/on_parent_qdel() + qdel(src) + /** * Generates a chat message image representation * @@ -68,7 +74,7 @@ /datum/chatmessage/proc/generate_image(text, atom/target, mob/owner, list/extra_classes, lifespan) // Register client who owns this message owned_by = owner.client - RegisterSignal(owned_by, COMSIG_PARENT_QDELETING, .proc/qdel, src) + RegisterSignal(owned_by, COMSIG_PARENT_QDELETING, .proc/on_parent_qdel) // Clip message var/maxlen = owned_by.prefs.max_chat_length @@ -108,7 +114,7 @@ // BYOND Bug #2563917 // Construct text var/static/regex/html_metachars = new(@"&[A-Za-z]{1,7};", "g") - var/complete_text = "[text]" + var/complete_text = "[text]" var/mheight = WXH_TO_HEIGHT(owned_by.MeasureText(replacetext(complete_text, html_metachars, "m"), null, CHAT_MESSAGE_WIDTH)) approx_lines = max(1, mheight / CHAT_MESSAGE_APPROX_LHEIGHT) @@ -166,7 +172,7 @@ */ /mob/proc/create_chat_message(atom/movable/speaker, datum/language/message_language, raw_message, list/spans, message_mode) // Ensure the list we are using, if present, is a copy so we don't modify the list provided to us - spans = spans?.Copy() + spans = spans ? spans.Copy() : list() // Check for virtual speakers (aka hearing a message through a radio) var/atom/movable/originalSpeaker = speaker From 1c7e9b75126c6445ea675c940250bfac4c60dc25 Mon Sep 17 00:00:00 2001 From: MrJWhit <48370570+MrJWhit@users.noreply.github.com> Date: Sat, 16 May 2020 10:38:42 -0400 Subject: [PATCH 058/103] Adds more cogstation paperwork, for future use (#12225) * Extra cogstation papers * Hopefully fixes HTML issues * Extra quotation mark, maybe that'll get it --- code/modules/paperwork/paper_premade.dm | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/code/modules/paperwork/paper_premade.dm b/code/modules/paperwork/paper_premade.dm index 2d03a17e0a..23c8d47323 100644 --- a/code/modules/paperwork/paper_premade.dm +++ b/code/modules/paperwork/paper_premade.dm @@ -54,7 +54,7 @@ /obj/item/paper/guides/cogstation/job_changes name = "MEMO: Job Changes" - info = "To ensure minimal employee downtime, please take note of the following changes to select professions that Cogstation specifically requires:
\n
\n- Chemists are to have basic Research accessand an encryption key for the Science channel.
\n- Roboticists are to have basic Medical and Morgue access.
\n- Engineers and Atmospheric Technicians are to have Warehouse and Mining access.
\n- The Cook should not have Morgue access
\n- The Clown and Mime are to have Maintenance access. This is necessary due to the location of their offices.
\n
\nGenerated by Organic Resources Bot #2053" + info = "To ensure minimal employee downtime, please take note of the following changes to select professions that CogStation specifically requires:
\n
\n- Scientists are to have access to chemistry in order to reach the MedSci router.
\n
\n- Chemists should at the very least be provided with an encryption key for the Science channel, if not basic access to the Research department at large.
\n- Roboticists are to have basic Medical and Morgue access.
\n- Engineers and Atmospheric Technicians are to have Warehouse and Mining access.
\n- The Cook should not have Morgue access
\n- The Clown and Mime are to have Maintenance access. This is necessary due to the location of their offices.
\n
\nGenerated by Organic Resources Bot #2053" /obj/item/paper/guides/cogstation/letter_sec name = "To future Security personnel" @@ -86,7 +86,11 @@ /obj/item/paper/guides/cogstation/letter_eng name = "To future Engineering staff:" - info = "I'm not gonna sugarcoat this. Compared to other departments, you might have your work cut out for you. CogStation is an entirely different beast than your standard Box, but everyone's still gonna expect you to keep the place running.
\n
\n If there's any good news, it's your time to shine if you know how to run a thermo-electric generator. That's what this station runs on, and CentCom isn't planning on changing that. If it's absolutely critical you might be able to run a singularity or tesla engine east of mining, but it won't have any sort of shielding out there.
\n
\nThe air system's different too. It's multiple small networks instead of a single big one, with air hookups across the station. Fortunately it's not that complicated, but it comes at the expense of being able to filter out and reuse specific gases. Besides, you'll probably be busy enough with the engine and general upkeep anyway.
\n
\nThe disposal network in contrast is significantly more complicated, yet more capable. I've already elaborated on it, so I'll let you find and read my write-up for that. As for the routing system, it's just begging to get hit by a stray meteor so consider other utilities a higher priority.
\n
\nGood luck. You're gonna need it.
\n
\n-C. Donnelly
Architectural Analyst" + info = "I'm not gonna sugarcoat this. Compared to other departments, you might have your work cut out for you. CogStation is an entirely different beast than your standard Box, but everyone's still gonna expect you to keep the place running.
\n
\n If there's any good news, it's your time to shine if you know how to run a thermo-electric generator. That's what this station runs on, and that isn't likely to change anytime soon. If it's absolutely critical you might be able to run a singularity or tesla engine east of mining, but it won't have any sort of shielding out there.
\n
\nYou still have three solar arrays to work with, two of them being on each end of the starboard side. The port side array will need you to either get access from a head of staff or security, unless you want to spacewalk around the whole station. Don't be afraid to ask the latter - they're there for you, after all. As for other utilities the air system is a bit different than you'd expect, but fortunately you should have the atmos techs this station needed a long time ago. The disposal network is significantly more complicated, yet more capable. I've already elaborated on it, so I'll let you find and read my write-up for that. As for the routing system, it's just begging to get hit by a stray meteor so consider other utilities a higher priority.
\n
\nGood luck. You're gonna need it.
\n
\n-C. Donnelly
Architectural Analyst" + +/obj/item/paper/guides/cogstation/letter_atmos + name = "To future Atmospheric Technicians:" + info = "If the place that this station used to call home still hired atmos techs, odds are we could've gotten this place up and running a lot sooner. Alas, the past is in the past and the hard work's already been done. You still have a job to do, but it shouldn't be much different from other stations in this sector. That being said, be aware of the following:
\n
\n - If you haven't already noticed, the atmospherics department is separate from the rest of the station. You'll either need to spacewalk or take a transit tube to reach it, but it still connects to the station's air system at large.
\n
\n- Seeing as the TEG already uses the standard red and blue for it's heating/cooling loops, the scrubber pipes are ORANGE. The main air supply pipes are a purpleish-blue - HOWEVER, these aren't the only air pipes you'll see. We've decided to reuse existing lines from the old air hookup system - these pipes are CYAN and serve to supply air to specific areas. There's also a VIOLET line to help keep the TEG stable.
\n
\nNanotrasen's invested a considerable amount into updating this system, so even if Murphy's Law is alive and well in this sector, the air system isn't one of the things that should fail. If a section of the station is having air problems, check the old air hookups FIRST. Your problem could be as simple as a 'greytider' turning a valve or a clown hooking up a laughing gas canister.
\n
\n-C. Donnelly
Architectural Analyst" /obj/item/paper/guides/cogstation/letter_chief name = "To the future Chief Engineer:" @@ -112,6 +116,10 @@ name = "To the future Research Director" info = "Apologies if you were expecting a letter from the station's Research Director, but just prior to translocation we found out they were a BLF operative. I wouldn't trust a single word they wrote and while I'm not a scientist, something tells me your department will have the easiest time adjusting to this station.
\n
\nYou should have everything you need - this is a research facility after all. It's just a matter of finding it, which shouldn't be too hard. Folks like you are why we're out in deep space, after all!
\n-Louis Cannon
\nFormer Head of Security" +/obj/item/paper/fluff/cogstation/letter_arrd + name = "To the future Research Director" + info = "Listen, I doubt I need to tell you to how to do your job. From what I've heard this station is getting a state-of-the-art xenobiology lab after it gets translocated, and I don't know the first thing about what you guys do about those slimes. However, there's one thing I do know and it's that your station will have botanists.
\n
\nIt's crucial you give them everything they need, so long as they agree to maintain as many apiaries as humanely possible. I know it sounds ridiculous, but it's the ONLY way to keep the floor cluwnes at bay. If you don't know what a floor cluwne is, trust me when I say you do NOT want to find out!
\nJesse P.
\nFormer CogStation RD" + /obj/item/paper/fluff/cogstation/letter_cap name = "Captain's Log" info = "So I guess some of the other heads have decided to leave little notes for future employees here. Heartwarming, but the most important thing I figure I can leave you is the truth. Nevermind the Syndicate, the xenomorphs, the apocalyptic death cults I hear are a thing way out there - I'm convinced we are our own worst enemy.
\n
\nDon't believe me? Maybe you can ask Chief Engineer Earp. Oh right, he vaporized himself trying to produce enough power to keep the lights on in Space China for a week, despite only needing a sliver of that to run this place as intended. Or maybe you can ask Head of Security Cannon, who executed our Research Director in plain sight of everyone. Even if he was in the right, the final frontier isn't the goddamn wild west! Hell, maybe you can ask one of your 'staff assistants', although in my experience the only ones they seem to want to help is themselves.
\n
\nOf course, the REAL problems are with the higher-ups that stationed us on this deathtrap before deciding to send it your way, but there's only so much I can say and get away with it, for instance that they only sent this station since they could care less if it was a total loss. By the time you read this, I'll already be long gone. Maybe it'll be a different story with your crew, but between you and me, I wouldn't hold my breath...unless they fuck up the air system.
\n
\nDom Kahn
Former Captain of Nanotrasen CogStation" @@ -128,6 +136,18 @@ name = "Mysterious Note" info = "ThE rInGmAsTeR dOeSn'T rUn ThE cIrCus... HONK!!!" +/obj/item/paper/fluff/cogstation/secsolars + name = "A heads up:" + info = "I'm hoping you guys are aware of the access changes this station requires, but one thing they might have forgot to mention is that one of the station's solar arrays and air hookups are wedged squarely behind your department. Engineering might need to come through your department to access them.
\n
\nWhile I can imagine potential concerns, there shouldn't be any problems if both sides are transparent and communicative. The engineer is most likely there to do their job of keeping the station running, and will only need to pass through your department office and interrogation room (or alternatively, the bridge). You're free to get the doors for them and/or watch them work if it helps put your mind at ease. If they loiter or otherwise act suspiciously then you might want to have a word with them.
\n
\n-C. Donnelly
Architectural Analyst" + +/obj/item/paper/fluff/cogstation/eva + name = "MEMO: Spacesuits" + info = "As a Head of Personnel, you may be familiar with crew members requesting EVA access, particularly when there is an absence of credible threats on the station. While it is your decision to grant or deny access unless overriden by your superior(s), you should be aware of an abundance of spacesuits on this station. While intended for emergencies, these suits are cheaper to replace. You may find it beneficial to direct aspiring 'space explorers' towards finding one of these suits instead, although it is advised you order replacement suits in advance through the cargo department.
\n
\n-Generated by Organic Resources Bot #2053" + +/obj/item/paper/fluff/cogstation/chemists + name = "Re: Scientists?!" + info = "Scientists should have access to the chemistry lab. This is intentional as opposed to some sort of oversight - after all, they need to reach the medsci router somehow.
\n
\nIf anything you should see this as a blessing, as you won't need to sideline whatever it is you're doing to get them what they need. Your focus should remain on predominantly medical goods, just like other stations in this sector.
\n
\n- Dr. Halley" + /obj/item/paper/fluff/cogstation/mime name = "Au futur Mime" info = "Toutes mes excuses pour toute mauvaise grammaire, je ne suis pas un haut-parleur naturel Français et a dû utiliser NanoTranslate. Bien que vous puissiez être mécontent de l’emplacement de votre bureau, s’il vous plaît comprendre que c’était le seul endroit où nous pourrions le mettre sans problèmes de sécurité et/ou CentClown se plaindre à ce sujet. Nous nous excusons également pour l’absence d’une zone de performance dédiée, mais nous espérons que vous accorder un accès à l’entretien compensera.
\n
\n-C. Donnelly
\n
\nAnalyste Architectural" From ab61713b50e2d8384e0f4a9132cbbf268fa8883b Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Sat, 16 May 2020 22:16:01 +0200 Subject: [PATCH 059/103] Stores unused bad mood skill modifiers in a static list instead of deleting them everytime. (#12273) * Lowers gc subsystem cpu usage by caching mood skill modifiers. * WHOPS. * fug --- code/datums/components/mood.dm | 45 +++++++++++++++++++++------------- 1 file changed, 28 insertions(+), 17 deletions(-) diff --git a/code/datums/components/mood.dm b/code/datums/components/mood.dm index 0cf209b10d..37d77a45bc 100644 --- a/code/datums/components/mood.dm +++ b/code/datums/components/mood.dm @@ -2,14 +2,14 @@ #define SLIGHT_INSANITY_PEN 1 #define MINOR_INSANITY_PEN 5 #define MAJOR_INSANITY_PEN 10 -#define MOOD_INSANITY_MALUS 0.0054 // per point of sanity below SANITY_DISTURBED, a 40% debuff to skills at rock bottom depression. +#define MOOD_INSANITY_MALUS 0.13 // 13% debuff per sanity_level above the default of 4 (higher is worser), overall a 39% debuff to skills at rock bottom depression. /datum/component/mood var/mood //Real happiness var/sanity = 100 //Current sanity var/shown_mood //Shown happiness, this is what others can see when they try to examine you, prevents antag checking by noticing traitors are always very happy. var/mood_level = 5 //To track what stage of moodies they're on - var/sanity_level = 5 //To track what stage of sanity they're on + var/sanity_level = 3 //To track what stage of sanity they're on var/mood_modifier = 1 //Modifier to allow certain mobs to be less affected by moodlets var/list/datum/mood_event/mood_events = list() var/insanity_effect = 0 //is the owner being punished for low mood? If so, how much? @@ -17,7 +17,7 @@ var/datum/skill_modifier/bad_mood/malus var/datum/skill_modifier/great_mood/bonus var/static/malus_id = 0 - var/static/bonus_id = 0 + var/static/list/free_maluses = list() /datum/component/mood/Initialize() if(!isliving(parent)) @@ -184,6 +184,7 @@ else sanity = amount + var/old_sanity_level = sanity_level switch(sanity) if(-INFINITY to SANITY_CRAZY) setInsanityEffect(MAJOR_INSANITY_PEN) @@ -210,6 +211,26 @@ master.remove_movespeed_modifier(MOVESPEED_ID_SANITY) sanity_level = 1 + if(sanity_level != old_sanity_level) + if(sanity_level >= 4) + if(!malus) + if(!length(free_maluses)) + ADD_SKILL_MODIFIER_BODY(/datum/skill_modifier/bad_mood, malus_id++, master, malus) + else + malus = pick_n_take(free_maluses) + if(master.mind) + master.mind.add_skill_modifier(malus.identifier) + else + malus.RegisterSignal(master, COMSIG_MOB_ON_NEW_MIND, /datum/skill_modifier.proc/on_mob_new_mind, TRUE) + malus.value_mod = malus.level_mod = 1 - (sanity_level - 3) * MOOD_INSANITY_MALUS + else if(malus) + if(master.mind) + master.mind.remove_skill_modifier(malus.identifier) + else + malus.UnregisterSignal(master, COMSIG_MOB_ON_NEW_MIND) + free_maluses += malus + malus = null + //update_mood_icon() /datum/component/mood/proc/setInsanityEffect(newval)//More code so that the previous proc works @@ -217,21 +238,11 @@ return var/mob/living/L = parent - var/apply_malus = newval >= SLIGHT_INSANITY_PEN - var/apply_bonus = !apply_malus && newval <= ECSTATIC_SANITY_PEN - if(apply_malus) - if(!malus) - ADD_SKILL_MODIFIER_BODY(/datum/skill_modifier/bad_mood, malus_id++, L, malus) - var/debuff = 1 - (SANITY_DISTURBED - sanity) * MOOD_INSANITY_MALUS - malus.value_mod = malus.level_mod = debuff - else if(malus) - QDEL_NULL(malus) - - if(apply_bonus) - if(!bonus) - ADD_SKILL_MODIFIER_BODY(/datum/skill_modifier/great_mood, bonus_id++, L, bonus) + if(newval == ECSTATIC_SANITY_PEN && !bonus) + ADD_SKILL_MODIFIER_BODY(/datum/skill_modifier/great_mood, null, L, bonus) else if(bonus) - QDEL_NULL(bonus) + REMOVE_SKILL_MODIFIER_BODY(/datum/skill_modifier/great_mood, null, L) + bonus = null insanity_effect = newval From 31604812a93a225dcb24087dae5cbb76d97b5b33 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Sat, 16 May 2020 22:18:12 +0200 Subject: [PATCH 060/103] Fixing gc issues with skill modifiers. (#12284) --- code/datums/skills/_skill_modifier.dm | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/code/datums/skills/_skill_modifier.dm b/code/datums/skills/_skill_modifier.dm index a2c9552871..b0115194a7 100644 --- a/code/datums/skills/_skill_modifier.dm +++ b/code/datums/skills/_skill_modifier.dm @@ -56,16 +56,18 @@ GLOBAL_LIST_EMPTY(potential_mods_per_skill) for(var/path in L) var/list/mod_L = GLOB.potential_mods_per_skill[path] if(!mod_L) - mod_L = GLOB.potential_mods_per_skill[target_skills] = list() + mod_L = GLOB.potential_mods_per_skill[path] = list() else BINARY_INSERT(identifier, mod_L, datum/skill_modifier, src, priority, COMPARE_VALUE) mod_L[identifier] = src /datum/skill_modifier/Destroy() - for(var/A in GLOB.potential_skills_per_mod["[target_skills]"]) - LAZYREMOVEASSOC(GLOB.potential_mods_per_skill, A, identifier) - GLOB.potential_skills_per_mod -= "[target_skills]" - GLOB.skill_modifiers -= src + for(var/path in GLOB.potential_skills_per_mod["[target_skills]"]) + var/mod_L = GLOB.potential_mods_per_skill[path] + mod_L -= identifier + if(!length(mod_L)) + GLOB.potential_mods_per_skill -= path + GLOB.skill_modifiers -= identifier return ..() #define ADD_MOD_STEP(L, P, O, G) \ @@ -106,7 +108,7 @@ GLOBAL_LIST_EMPTY(potential_mods_per_skill) if(M.modifier_flags & MODIFIER_SKILL_BODYBOUND) M.RegisterSignal(src, COMSIG_MIND_TRANSFER, /datum/skill_modifier.proc/on_mind_transfer) M.RegisterSignal(current, COMSIG_MOB_ON_NEW_MIND, /datum/skill_modifier.proc/on_mob_new_mind, TRUE) - RegisterSignal(M, COMSIG_PARENT_QDELETING, .proc/on_skill_modifier_deletion) + RegisterSignal(M, COMSIG_PARENT_PREQDELETED, .proc/on_skill_modifier_deletion) #undef ADD_MOD_STEP @@ -128,16 +130,16 @@ GLOBAL_LIST_EMPTY(potential_mods_per_skill) for(var/path in GLOB.potential_skills_per_mod["[M.target_skills]"]) if(M.modifier_flags & MODIFIER_SKILL_VALUE && skill_holder.skill_value_mods) REMOVE_MOD_STEP(skill_holder.skill_value_mods, path, skill_holder.original_values) - if(M.modifier_flags & MODIFIER_SKILL_AFFINITY) + if(M.modifier_flags & MODIFIER_SKILL_AFFINITY && skill_holder.skill_affinity_mods) REMOVE_MOD_STEP(skill_holder.skill_affinity_mods, path, skill_holder.original_affinities) - if(M.modifier_flags & MODIFIER_SKILL_LEVEL) + if(M.modifier_flags & MODIFIER_SKILL_LEVEL && skill_holder.skill_level_mods) REMOVE_MOD_STEP(skill_holder.skill_level_mods, path, skill_holder.original_levels) LAZYREMOVE(skill_holder.all_current_skill_modifiers, id) if(!mind_transfer && M.modifier_flags & MODIFIER_SKILL_BODYBOUND) M.UnregisterSignal(src, COMSIG_MIND_TRANSFER) M.UnregisterSignal(current, list(COMSIG_MOB_ON_NEW_MIND)) - UnregisterSignal(M, COMSIG_PARENT_QDELETING) + UnregisterSignal(M, COMSIG_PARENT_PREQDELETED) #undef REMOVE_MOD_STEP From cbc208375dd0987133f77430297c3bf28666416c Mon Sep 17 00:00:00 2001 From: jjpark-kb <55967837+jjpark-kb@users.noreply.github.com> Date: Sat, 16 May 2020 16:29:43 -0400 Subject: [PATCH 061/103] [Map Fix] Button and Wall (#12285) --- _maps/map_files/BoxStation/BoxStation.dmm | 2 +- _maps/map_files/Deltastation/DeltaStation2.dmm | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index fc6632e84b..2d8de7679b 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -58134,7 +58134,7 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 }, -/turf/closed/wall, +/turf/open/floor/plasteel, /area/security/brig) "rdl" = ( /obj/effect/spawner/structure/window/reinforced, diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 46d08a8c30..0217ff21b9 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -127105,10 +127105,9 @@ /turf/open/floor/plasteel/white, /area/science/misc_lab) "wFu" = ( -/obj/machinery/button/electrochromatic{ - pixel_y = -26 - }, -/turf/closed/wall/r_wall, +/obj/structure/lattice, +/obj/structure/grille, +/turf/open/space/basic, /area/space/nearstation) "wHv" = ( /obj/effect/turf_decal/tile/neutral{ From 35a35098bd9cfb6bfa77a320e0c046e9209962e0 Mon Sep 17 00:00:00 2001 From: Seris02 <49109742+Seris02@users.noreply.github.com> Date: Sun, 17 May 2020 06:50:28 +0800 Subject: [PATCH 062/103] fixed (#12278) --- code/datums/components/storage/ui.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/datums/components/storage/ui.dm b/code/datums/components/storage/ui.dm index 1795aec731..c7ac0d3549 100644 --- a/code/datums/components/storage/ui.dm +++ b/code/datums/components/storage/ui.dm @@ -237,7 +237,7 @@ if(!M.client) return TRUE UnregisterSignal(M, COMSIG_MOB_CLIENT_LOGOUT) - M.client.screen -= list(ui_boxes, ui_close, ui_left, ui_continuous) + get_ui_item_objects_hide() + M.client.screen -= list(ui_boxes, ui_close, ui_left, ui_continuous) + get_ui_item_objects_hide(M) if(M.active_storage == src) M.active_storage = null LAZYREMOVE(is_using, M) @@ -253,8 +253,8 @@ /** * Gets the ui item objects to ui_hide. */ -/datum/component/storage/proc/get_ui_item_objects_hide() - if(!volumetric_ui()) +/datum/component/storage/proc/get_ui_item_objects_hide(mob/M) + if(!volumetric_ui() || M.client?.prefs?.no_tetris_storage) var/atom/real_location = real_location() return real_location.contents else From a71c282dac5f5214ac49675fef0a72e72b42e247 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sat, 16 May 2020 19:04:25 -0400 Subject: [PATCH 063/103] Makes assistant hivelords less wired (#12256) * Update hivelord.dm * Update hivelord.dm * Update hivelord.dm Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> --- .../living/simple_animal/hostile/mining_mobs/hivelord.dm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index a7ce559d35..e4362711b3 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -396,8 +396,6 @@ ears = /obj/item/radio/headset gloves = /obj/item/clothing/gloves/color/fyellow id = /obj/item/card/id/silver/reaper //looks cool and has a fancy name but only a 1% chance - back = /obj/item/storage/backpack - backpack_contents = list(/obj/item/stack/cable_coil = 12, /obj/item/assembly/flash = 1, /obj/item/storage/fancy/donut_box = 1, /obj/item/storage/fancy/cigarettes/cigpack_shadyjims = 1, /obj/item/lighter = 1) if(prob(99)) id = /obj/item/card/id id_job = "Assisant" @@ -407,11 +405,14 @@ gloves = /obj/item/clothing/gloves/color/yellow if(prob(10)) back = /obj/item/twohanded/spear - backpack_contents = null + else if(prob(80)) //Now they dont always have a backpack + back = /obj/item/storage/backpack + backpack_contents = list(/obj/item/stack/cable_coil = 1, /obj/item/assembly/flash = 1, /obj/item/storage/fancy/donut_box = 1, /obj/item/storage/fancy/cigarettes/cigpack_shadyjims = 1, /obj/item/lighter = 1) if(prob(90)) r_pocket = /obj/item/kitchen/knife if(prob(60)) l_pocket = /obj/item/soap/homemade + if("Beelegion") uniform = /obj/item/clothing/under/color/yellow suit = /obj/item/clothing/suit/hooded/bee_costume From 2e1cc498a35c6ea25a81105e7dfc7afcff5f44f4 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sat, 16 May 2020 19:05:24 -0400 Subject: [PATCH 064/103] corrects WT-550 ammo to state 32 rather then 20 (#12275) --- code/modules/cargo/packs/armory.dm | 4 ++-- code/modules/research/designs/weapon_designs.dm | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/code/modules/cargo/packs/armory.dm b/code/modules/cargo/packs/armory.dm index 87dfe243b3..bcfbc83001 100644 --- a/code/modules/cargo/packs/armory.dm +++ b/code/modules/cargo/packs/armory.dm @@ -214,7 +214,7 @@ /datum/supply_pack/security/armory/wt550ammo name = "WT-550 Semi-Auto SMG Ammo Crate" - desc = "Contains four 20-round magazines for the WT-550 Semi-Auto SMG. Each magazine is designed to facilitate rapid tactical reloads. Requires Armory access to open." + desc = "Contains four 32-round magazines for the WT-550 Semi-Auto SMG. Each magazine is designed to facilitate rapid tactical reloads. Requires Armory access to open." cost = 1750 contains = list(/obj/item/ammo_box/magazine/wt550m9, /obj/item/ammo_box/magazine/wt550m9, @@ -224,7 +224,7 @@ /datum/supply_pack/security/armory/wt550ammo_nonlethal // Takes around 12 shots to stamcrit someone name = "WT-550 Semi-Auto SMG Non-Lethal Ammo Crate" - desc = "Contains four 20-round magazines for the WT-550 Semi-Auto SMG. Each magazine is designed to facilitate rapid tactical reloads. Requires Armory access to open." + desc = "Contains four 32-round magazines for the WT-550 Semi-Auto SMG. Each magazine is designed to facilitate rapid tactical reloads. Requires Armory access to open." cost = 1000 contains = list(/obj/item/ammo_box/magazine/wt550m9/wtrubber, /obj/item/ammo_box/magazine/wt550m9/wtrubber, diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm index 93168e17c7..07679fe1ce 100644 --- a/code/modules/research/designs/weapon_designs.dm +++ b/code/modules/research/designs/weapon_designs.dm @@ -91,7 +91,7 @@ /datum/design/mag_oldsmg name = "WT-550 Semi-Auto SMG Magazine (4.6x30mm)" - desc = "A 20 round magazine for the out of date security WT-550 Semi-Auto SMG." + desc = "A 32 round magazine for the out of date security WT-550 Semi-Auto SMG." id = "mag_oldsmg" build_type = PROTOLATHE materials = list(/datum/material/iron = 4000) @@ -101,7 +101,7 @@ /datum/design/mag_oldsmg/ap_mag name = "WT-550 Semi-Auto SMG Armour Piercing Magazine (4.6x30mm AP)" - desc = "A 20 round armour piercing magazine for the out of date security WT-550 Semi-Auto SMG." + desc = "A 32 round armour piercing magazine for the out of date security WT-550 Semi-Auto SMG." id = "mag_oldsmg_ap" materials = list(/datum/material/iron = 6000, /datum/material/silver = 600) build_path = /obj/item/ammo_box/magazine/wt550m9/wtap @@ -109,7 +109,7 @@ /datum/design/mag_oldsmg/ic_mag name = "WT-550 Semi-Auto SMG Incendiary Magazine (4.6x30mm IC)" - desc = "A 20 round armour piercing magazine for the out of date security WT-550 Semi-Auto SMG." + desc = "A 32 round armour piercing magazine for the out of date security WT-550 Semi-Auto SMG." id = "mag_oldsmg_ic" materials = list(/datum/material/iron = 6000, /datum/material/silver = 600, /datum/material/glass = 1000) build_path = /obj/item/ammo_box/magazine/wt550m9/wtic @@ -117,7 +117,7 @@ /datum/design/mag_oldsmg/tx_mag name = "WT-550 Semi-Auto SMG Uranium Magazine (4.6x30mm TX)" - desc = "A 20 round uranium tipped magazine for the out of date security WT-550 Semi-Auto SMG." + desc = "A 32 round uranium tipped magazine for the out of date security WT-550 Semi-Auto SMG." id = "mag_oldsmg_tx" materials = list(/datum/material/iron = 6000, /datum/material/silver = 600, /datum/material/uranium = 2000) build_path = /obj/item/ammo_box/magazine/wt550m9/wttx @@ -125,7 +125,7 @@ /datum/design/mag_oldsmg/rubber_mag name = "WT-550 Semi-Auto SMG rubberbullets Magazine (4.6x30mm rubber)" - desc = "A 20 round rubber shots magazine for the out of date security WT-550 Semi-Auto SMG" + desc = "A 32 round rubber shots magazine for the out of date security WT-550 Semi-Auto SMG" id = "mag_oldsmg_rubber" materials = list(/datum/material/iron = 6000) build_path = /obj/item/ammo_box/magazine/wt550m9/wtrubber From 0a298c2361aca55a071a39a7e0d05b17856514b0 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 16 May 2020 20:23:43 -0500 Subject: [PATCH 065/103] Update compile_changelogs.yml --- .github/workflows/compile_changelogs.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/compile_changelogs.yml b/.github/workflows/compile_changelogs.yml index 141fc9a7d8..f8098df66e 100644 --- a/.github/workflows/compile_changelogs.yml +++ b/.github/workflows/compile_changelogs.yml @@ -17,6 +17,7 @@ jobs: run: | python -m pip install --upgrade pip python -m pip install pyyaml + sudo apt-get install dos2unix - name: "Checkout" uses: actions/checkout@v1 with: @@ -24,6 +25,9 @@ jobs: - name: "Compile" run: | python tools/ss13_genchangelog.py html/changelog.html html/changelogs + - name: "Convert Lineendings" + run: | + unix2dos html/changelogs/.all_changelog.yml - name: Commit run: | git config --local user.email "action@github.com" From 2eb3089ccb974bad4760548d52c1d17536e79715 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Sun, 17 May 2020 23:38:26 +0200 Subject: [PATCH 066/103] Certain packs (mostly armory/security) can not be privately bought anymore. --- code/modules/cargo/console.dm | 11 ++++++---- code/modules/cargo/packs.dm | 1 + code/modules/cargo/packs/armory.dm | 1 + code/modules/cargo/packs/engine.dm | 2 +- code/modules/cargo/packs/medical.dm | 3 ++- code/modules/cargo/packs/science.dm | 1 + code/modules/cargo/packs/security.dm | 21 +++++++++++++++++++ code/modules/cargo/packs/vending.dm | 1 + tgui-next/packages/tgui/interfaces/Cargo.js | 4 ++++ tgui-next/packages/tgui/public/tgui.bundle.js | 4 ++-- 10 files changed, 41 insertions(+), 8 deletions(-) diff --git a/code/modules/cargo/console.dm b/code/modules/cargo/console.dm index d1d895ca69..6968a5ccd8 100644 --- a/code/modules/cargo/console.dm +++ b/code/modules/cargo/console.dm @@ -119,6 +119,7 @@ var/list/data = list() data["requestonly"] = requestonly data["supplies"] = list() + data["emagged"] = obj_flags & EMAGGED for(var/pack in SSshuttle.supply_packs) var/datum/supply_pack/P = SSshuttle.supply_packs[pack] if(!data["supplies"][P.group]) @@ -133,7 +134,8 @@ "cost" = P.cost, "id" = pack, "desc" = P.desc || P.name, // If there is a description, use it. Otherwise use the pack's name. - "access" = P.access + "access" = P.access, + "can_private_buy" = P.can_private_buy )) return data @@ -195,9 +197,10 @@ rank = "Silicon" var/datum/bank_account/account - if(self_paid && ishuman(usr)) - var/mob/living/carbon/human/H = usr - var/obj/item/card/id/id_card = H.get_idcard(TRUE) + if(self_paid) + if(!pack.can_private_buy && !(obj_flags & EMAGGED)) + return + var/obj/item/card/id/id_card = usr.get_idcard(TRUE) if(!istype(id_card)) say("No ID card detected.") return diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index 96557d58ef..f82e16ad5c 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -15,6 +15,7 @@ var/special_enabled = FALSE var/DropPodOnly = FALSE //only usable by the Bluespace Drop Pod via the express cargo console var/admin_spawned = FALSE //Can only an admin spawn this crate? + var/can_private_buy = TRUE //Can it be purchased privately by each crewmember? /datum/supply_pack/proc/generate(atom/A, datum/bank_account/paying_account) var/obj/structure/closet/crate/C diff --git a/code/modules/cargo/packs/armory.dm b/code/modules/cargo/packs/armory.dm index bcfbc83001..3a3357cc42 100644 --- a/code/modules/cargo/packs/armory.dm +++ b/code/modules/cargo/packs/armory.dm @@ -10,6 +10,7 @@ group = "Armory" access = ACCESS_ARMORY crate_type = /obj/structure/closet/crate/secure/weapon + can_private_buy = FALSE /datum/supply_pack/security/armory/bulletarmor name = "Bulletproof Armor Crate" diff --git a/code/modules/cargo/packs/engine.dm b/code/modules/cargo/packs/engine.dm index 89775c07ee..499881a110 100644 --- a/code/modules/cargo/packs/engine.dm +++ b/code/modules/cargo/packs/engine.dm @@ -148,7 +148,7 @@ crate_name = "supermatter shard crate" crate_type = /obj/structure/closet/crate/secure/engineering dangerous = TRUE - + /datum/supply_pack/engine/tesla_coils name = "Tesla Coil Crate" desc = "Whether it's high-voltage executions, creating research points, or just plain old power generation: This pack of four Tesla coils can do it all!" diff --git a/code/modules/cargo/packs/medical.dm b/code/modules/cargo/packs/medical.dm index 5d02bbe60f..ab188f235b 100644 --- a/code/modules/cargo/packs/medical.dm +++ b/code/modules/cargo/packs/medical.dm @@ -252,6 +252,7 @@ crate_name = "virus crate" crate_type = /obj/structure/closet/crate/secure/plasma dangerous = TRUE + can_private_buy = FALSE /datum/supply_pack/medical/anitvirus name = "Virus Containment Crate" @@ -271,4 +272,4 @@ /obj/item/storage/box/syringes, /obj/item/storage/box/beakers) crate_name = "virus containment unit crate" - crate_type = /obj/structure/closet/crate/secure/plasma \ No newline at end of file + crate_type = /obj/structure/closet/crate/secure/plasma diff --git a/code/modules/cargo/packs/science.dm b/code/modules/cargo/packs/science.dm index 51bb2b728f..fd6fee362d 100644 --- a/code/modules/cargo/packs/science.dm +++ b/code/modules/cargo/packs/science.dm @@ -17,6 +17,7 @@ cost = 2500 contains = list (/obj/item/reagent_containers/food/snacks/cube/ape) crate_name = "ape cube crate" + can_private_buy = FALSE /datum/supply_pack/science/beakers name = "Chemistry Beakers Crate" diff --git a/code/modules/cargo/packs/security.dm b/code/modules/cargo/packs/security.dm index d134d7bab8..a48874e974 100644 --- a/code/modules/cargo/packs/security.dm +++ b/code/modules/cargo/packs/security.dm @@ -10,6 +10,7 @@ group = "Security" access = ACCESS_SECURITY crate_type = /obj/structure/closet/crate/secure/gear + can_private_buy = FALSE /datum/supply_pack/security/ammo name = "Ammo Crate - General Purpose" @@ -57,6 +58,7 @@ /obj/item/toy/crayon/white, /obj/item/clothing/head/fedora/det_hat) crate_name = "forensics crate" + can_private_buy = TRUE /datum/supply_pack/security/helmets name = "Helmets Crate" @@ -134,6 +136,7 @@ /obj/item/grenade/barrier) cost = 2000 crate_name = "security barriers crate" + can_private_buy = TRUE /datum/supply_pack/security/securityclothes name = "Security Clothing Crate" @@ -152,6 +155,7 @@ /obj/item/clothing/suit/armor/hos/navyblue, /obj/item/clothing/head/beret/sec/navyhos) crate_name = "security clothing crate" + can_private_buy = TRUE /datum/supply_pack/security/supplies name = "Security Supplies Crate" @@ -179,6 +183,7 @@ contains = list(/obj/item/clothing/head/helmet/justice, /obj/item/clothing/mask/gas/sechailer) crate_name = "security clothing crate" + can_private_buy = TRUE /datum/supply_pack/security/baton name = "Stun Batons Crate" @@ -207,3 +212,19 @@ /obj/item/storage/box/wall_flash, /obj/item/storage/box/wall_flash) crate_name = "wall-mounted flash crate" + +/datum/supply_pack/security/hunting + name = "Hunting Gear" + desc = "Even in space, we can find prey to hunt, this crate contains everthing a fine hunter needs to have a sporting time. This crate needs armory access to open. A true huntter only needs a fine bottle of cognac, a nice coat, some good o' cigars, and of cource a hunting shotgun. " + cost = 3500 + contraband = TRUE + contains = list(/obj/item/clothing/head/flatcap, + /obj/item/clothing/suit/hooded/wintercoat/captain, + /obj/item/reagent_containers/food/drinks/bottle/cognac, + /obj/item/storage/fancy/cigarettes/cigars/havana, + /obj/item/clothing/gloves/color/white, + /obj/item/clothing/under/rank/civilian/curator, + /obj/item/gun/ballistic/shotgun/lethal) + access = ACCESS_ARMORY + crate_name = "sporting crate" + crate_type = /obj/structure/closet/crate/secure // Would have liked a wooden crate but access >:( diff --git a/code/modules/cargo/packs/vending.dm b/code/modules/cargo/packs/vending.dm index 344d19f6c9..810cfd8d6e 100644 --- a/code/modules/cargo/packs/vending.dm +++ b/code/modules/cargo/packs/vending.dm @@ -99,6 +99,7 @@ contains = list(/obj/machinery/vending/security) crate_name = "SecTech supply crate" crate_type = /obj/structure/closet/crate/secure/gear + can_private_buy = FALSE /datum/supply_pack/vending/snack name = "Snack Supply Crate" diff --git a/tgui-next/packages/tgui/interfaces/Cargo.js b/tgui-next/packages/tgui/interfaces/Cargo.js index b31a25c611..133b1b00ab 100644 --- a/tgui-next/packages/tgui/interfaces/Cargo.js +++ b/tgui-next/packages/tgui/interfaces/Cargo.js @@ -154,6 +154,10 @@ const Catalog = props => {

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
3?{YdG44A3r1;LAHnZ*j;4FWUb% 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 Zu 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

" dat += "
" + if(5) // Custom keybindings + dat += "Keybindings: [(hotkeys) ? "Hotkeys" : "Input"]
" + dat += "Keybindings mode controls how the game behaves with tab and map/input focus.
If it is on Hotkeys, the game will always attempt to force you to map focus, meaning keypresses are sent \ + directly to the map instead of the input. You will still be able to use the command bar, but you need to tab to do it every time you click on the game map.
\ + If it is on Input, the game will not force focus away from the input bar, and you can switch focus using TAB between these two modes: If the input bar is pink, that means that you are in non-hotkey mode, sending all keypresses of the normal \ + alphanumeric characters, punctuation, spacebar, backspace, enter, etc, typing keys into the input bar. If the input bar is white, you are in hotkey mode, meaning all keypresses go into the game's keybind handling system unless you \ + manually click on the input bar to shift focus there.
\ + Input mode is the closest thing to the old input system.
\ + IMPORTANT: While in input mode's non hotkey setting (tab toggled), Ctrl + KEY will send KEY to the keybind system as the key itself, not as Ctrl + KEY. This means Ctrl + T/W/A/S/D/all your familiar stuff still works, but you \ + won't be able to access any regular Ctrl binds.
" + // Create an inverted list of keybindings -> key + var/list/user_binds = list() + for (var/key in key_bindings) + for(var/kb_name in key_bindings[key]) + user_binds[kb_name] += list(key) + + var/list/kb_categories = list() + // Group keybinds by category + for (var/name in GLOB.keybindings_by_name) + var/datum/keybinding/kb = GLOB.keybindings_by_name[name] + kb_categories[kb.category] += list(kb) + + dat += "" + + for (var/category in kb_categories) + dat += "

[category]

" + for (var/i in kb_categories[category]) + var/datum/keybinding/kb = i + if(!length(user_binds[kb.name])) + dat += " Unbound" + var/list/default_keys = hotkeys ? kb.hotkey_keys : kb.classic_keys + if(LAZYLEN(default_keys)) + dat += "| Default: [default_keys.Join(", ")]" + dat += "
" + else + var/bound_key = user_binds[kb.name][1] + dat += " [bound_key]" + for(var/bound_key_index in 2 to length(user_binds[kb.name])) + bound_key = user_binds[kb.name][bound_key_index] + dat += " | [bound_key]" + if(length(user_binds[kb.name]) < MAX_KEYS_PER_KEYBIND) + dat += "| Add Secondary" + var/list/default_keys = hotkeys ? kb.classic_keys : kb.hotkey_keys + if(LAZYLEN(default_keys)) + dat += "| Default: [default_keys.Join(", ")]" + dat += "
" + + dat += "

" + dat += "\[Reset to default\]" + dat += "" dat += "
" @@ -1095,6 +1147,31 @@ GLOBAL_LIST_EMPTY(preferences_datums) #undef APPEARANCE_CATEGORY_COLUMN #undef MAX_MUTANT_ROWS +/datum/preferences/proc/CaptureKeybinding(mob/user, datum/keybinding/kb, var/old_key) + var/HTML = {" +
Keybinding: [kb.full_name]
[kb.description]

Press any key to change
Press ESC to clear
+ + "} + winshow(user, "capturekeypress", TRUE) + var/datum/browser/popup = new(user, "capturekeypress", "
Keybindings
", 350, 300) + popup.set_content(HTML) + popup.open(FALSE) + onclose(user, "capturekeypress", src) + /datum/preferences/proc/SetChoices(mob/user, limit = 17, list/splitJobs = list("Chief Engineer"), widthPerColumn = 295, height = 620) if(!SSjob) return @@ -2275,10 +2352,73 @@ GLOBAL_LIST_EMPTY(preferences_datums) if("hotkeys") hotkeys = !hotkeys - if(hotkeys) - winset(user, null, "input.focus=true input.background-color=[COLOR_INPUT_ENABLED] mainwindow.macro=default") - else - winset(user, null, "input.focus=true input.background-color=[COLOR_INPUT_ENABLED] mainwindow.macro=old_default") + user.client.set_macros() + + if("keybindings_capture") + var/datum/keybinding/kb = GLOB.keybindings_by_name[href_list["keybinding"]] + var/old_key = href_list["old_key"] + CaptureKeybinding(user, kb, old_key) + return + + if("keybindings_set") + var/kb_name = href_list["keybinding"] + if(!kb_name) + user << browse(null, "window=capturekeypress") + ShowChoices(user) + return + + var/clear_key = text2num(href_list["clear_key"]) + var/old_key = href_list["old_key"] + if(clear_key) + if(key_bindings[old_key]) + key_bindings[old_key] -= kb_name + if(!length(key_bindings[old_key])) + key_bindings -= old_key + user << browse(null, "window=capturekeypress") + save_preferences() + ShowChoices(user) + return + + var/new_key = uppertext(href_list["key"]) + var/AltMod = text2num(href_list["alt"]) ? "Alt" : "" + var/CtrlMod = text2num(href_list["ctrl"]) ? "Ctrl" : "" + var/ShiftMod = text2num(href_list["shift"]) ? "Shift" : "" + var/numpad = text2num(href_list["numpad"]) ? "Numpad" : "" + // var/key_code = text2num(href_list["key_code"]) + + if(GLOB._kbMap[new_key]) + new_key = GLOB._kbMap[new_key] + + var/full_key + switch(new_key) + if("Alt") + full_key = "[new_key][CtrlMod][ShiftMod]" + if("Ctrl") + full_key = "[AltMod][new_key][ShiftMod]" + if("Shift") + full_key = "[AltMod][CtrlMod][new_key]" + else + full_key = "[AltMod][CtrlMod][ShiftMod][numpad][new_key]" + if(key_bindings[old_key]) + key_bindings[old_key] -= kb_name + if(!length(key_bindings[old_key])) + key_bindings -= old_key + key_bindings[full_key] += list(kb_name) + key_bindings[full_key] = sortList(key_bindings[full_key]) + + user << browse(null, "window=capturekeypress") + user.client.update_movement_keys() + save_preferences() + + if("keybindings_reset") + var/choice = tgalert(user, "Would you prefer 'hotkey' or 'classic' defaults?", "Setup keybindings", "Hotkey", "Classic", "Cancel") + if(choice == "Cancel") + ShowChoices(user) + return + hotkeys = (choice == "Hotkey") + key_bindings = (hotkeys) ? deepCopyList(GLOB.hotkey_keybinding_list_by_key) : deepCopyList(GLOB.classic_keybinding_list_by_key) + user.client.update_movement_keys() + if("chat_on_map") chat_on_map = !chat_on_map if("see_chat_non_mob") @@ -2409,13 +2549,6 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(auto_fit_viewport && parent) parent.fit_viewport() - if("sprint_key") - sprint_spacebar = !sprint_spacebar - - if("sprint_toggle") - sprint_toggle = !sprint_toggle - - if("hud_toggle_flash") hud_toggle_flash = !hud_toggle_flash @@ -2595,6 +2728,18 @@ GLOBAL_LIST_EMPTY(preferences_datums) cached_holoform_icons[filter_type] = process_holoform_icon_filter(custom_holoform_icon, filter_type) return cached_holoform_icons[filter_type] +//Used in savefile update 32, can be removed once that is no longer relevant. +/datum/preferences/proc/force_reset_keybindings() + var/choice = tgalert(parent.mob, "Your basic keybindings need to be reset, emotes will remain as before. Would you prefer 'hotkey' or 'classic' mode?", "Reset keybindings", "Hotkey", "Classic") + hotkeys = (choice != "Classic") + var/list/oldkeys = key_bindings + key_bindings = (hotkeys) ? deepCopyList(GLOB.hotkey_keybinding_list_by_key) : deepCopyList(GLOB.classic_keybinding_list_by_key) + + for(var/key in oldkeys) + if(!key_bindings[key]) + key_bindings[key] = oldkeys[key] + parent.update_movement_keys() + /datum/preferences/proc/is_loadout_slot_available(slot) var/list/L LAZYINITLIST(L) diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index db03cc106f..a7384ad392 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -5,7 +5,7 @@ // You do not need to raise this if you are adding new values that have sane defaults. // Only raise this value when changing the meaning/format/name/layout of an existing value // where you would want the updater procs below to run -#define SAVEFILE_VERSION_MAX 31 +#define SAVEFILE_VERSION_MAX 32 /* SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Carn @@ -42,7 +42,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car //if your savefile is 3 months out of date, then 'tough shit'. /datum/preferences/proc/update_preferences(current_version, savefile/S) - return + if(current_version < 32) //If you remove this, remove force_reset_keybindings() too. + addtimer(CALLBACK(src, .proc/force_reset_keybindings), 30) //No mob available when this is run, timer allows user choice. /datum/preferences/proc/update_character(current_version, savefile/S) if(current_version < 19) @@ -250,8 +251,6 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["parallax"] >> parallax S["ambientocclusion"] >> ambientocclusion S["auto_fit_viewport"] >> auto_fit_viewport - S["sprint_spacebar"] >> sprint_spacebar - S["sprint_toggle"] >> sprint_toggle S["hud_toggle_flash"] >> hud_toggle_flash S["hud_toggle_color"] >> hud_toggle_color S["menuoptions"] >> menuoptions @@ -261,6 +260,9 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["pda_color"] >> pda_color S["pda_skin"] >> pda_skin + // Custom hotkeys + S["key_bindings"] >> key_bindings + //citadel code S["arousable"] >> arousable S["screenshake"] >> screenshake @@ -295,8 +297,6 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car parallax = sanitize_integer(parallax, PARALLAX_INSANE, PARALLAX_DISABLE, null) ambientocclusion = sanitize_integer(ambientocclusion, 0, 1, initial(ambientocclusion)) auto_fit_viewport = sanitize_integer(auto_fit_viewport, 0, 1, initial(auto_fit_viewport)) - sprint_spacebar = sanitize_integer(sprint_spacebar, 0, 1, initial(sprint_spacebar)) - sprint_toggle = sanitize_integer(sprint_toggle, 0, 1, initial(sprint_toggle)) hud_toggle_flash = sanitize_integer(hud_toggle_flash, 0, 1, initial(hud_toggle_flash)) hud_toggle_color = sanitize_hexcolor(hud_toggle_color, 6, 1, initial(hud_toggle_color)) ghost_form = sanitize_inlist(ghost_form, GLOB.ghost_forms, initial(ghost_form)) @@ -315,6 +315,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car cit_toggles = sanitize_integer(cit_toggles, 0, 16777215, initial(cit_toggles)) auto_ooc = sanitize_integer(auto_ooc, 0, 1, initial(auto_ooc)) no_tetris_storage = sanitize_integer(no_tetris_storage, 0, 1, initial(no_tetris_storage)) + key_bindings = sanitize_islist(key_bindings, list()) return 1 @@ -362,8 +363,6 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["parallax"], parallax) WRITE_FILE(S["ambientocclusion"], ambientocclusion) WRITE_FILE(S["auto_fit_viewport"], auto_fit_viewport) - WRITE_FILE(S["sprint_spacebar"], sprint_spacebar) - WRITE_FILE(S["sprint_toggle"], sprint_toggle) WRITE_FILE(S["hud_toggle_flash"], hud_toggle_flash) WRITE_FILE(S["hud_toggle_color"], hud_toggle_color) WRITE_FILE(S["menuoptions"], menuoptions) @@ -372,6 +371,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["pda_style"], pda_style) WRITE_FILE(S["pda_color"], pda_color) WRITE_FILE(S["pda_skin"], pda_skin) + WRITE_FILE(S["key_bindings"], key_bindings) //citadel code WRITE_FILE(S["screenshake"], screenshake) diff --git a/code/modules/keybindings/bindings_admin.dm b/code/modules/keybindings/bindings_admin.dm deleted file mode 100644 index ca232adbe0..0000000000 --- a/code/modules/keybindings/bindings_admin.dm +++ /dev/null @@ -1,24 +0,0 @@ -/datum/admins/key_down(_key, client/user) - switch(_key) - if("F3") - user.get_admin_say() - return - if("F5") - user.admin_ghost() - return - if("F6") - player_panel_new() - return - if("F7") - user.togglebuildmodeself() - return - if("F8") - if(user.keys_held["Ctrl"]) - user.stealth() - else - user.invisimin() - return - if("F10") - user.get_dead_say() - return - ..() diff --git a/code/modules/keybindings/bindings_atom.dm b/code/modules/keybindings/bindings_atom.dm index 5f3e879237..47d6b16feb 100644 --- a/code/modules/keybindings/bindings_atom.dm +++ b/code/modules/keybindings/bindings_atom.dm @@ -5,7 +5,7 @@ if(!user.keys_held["Ctrl"]) var/movement_dir = NONE for(var/_key in user.keys_held) - movement_dir = movement_dir | SSinput.movement_keys[_key] + movement_dir = movement_dir | user.movement_keys[_key] if(user.next_move_dir_add) movement_dir |= user.next_move_dir_add if(user.next_move_dir_sub) diff --git a/code/modules/keybindings/bindings_carbon.dm b/code/modules/keybindings/bindings_carbon.dm deleted file mode 100644 index e344bc9d20..0000000000 --- a/code/modules/keybindings/bindings_carbon.dm +++ /dev/null @@ -1,9 +0,0 @@ -/mob/living/carbon/key_down(_key, client/user) - switch(_key) - if("R", "Southwest") // Southwest is End - toggle_throw_mode() - return - if("C") - user_toggle_intentional_combat_mode() - return - return ..() \ No newline at end of file diff --git a/code/modules/keybindings/bindings_client.dm b/code/modules/keybindings/bindings_client.dm index 6030362a61..a73dd9a59b 100644 --- a/code/modules/keybindings/bindings_client.dm +++ b/code/modules/keybindings/bindings_client.dm @@ -33,55 +33,69 @@ to_chat(src, "Invalid KeyDown detected! You have been disconnected from the server automatically.") log_admin("Client [ckey] just attempted to send an invalid keypress. Keymessage was over [MAX_KEYPRESS_COMMANDLENGTH] characters, autokicking due to likely abuse.") message_admins("Client [ckey] just attempted to send an invalid keypress. Keymessage was over [MAX_KEYPRESS_COMMANDLENGTH] characters, autokicking due to likely abuse.") - QDEL_IN(src, 1) + qdel(src) + return + + if(_key == "Tab") + ForceAllKeysUp() //groan, more hacky kevcode return if(length(keys_held) > MAX_HELD_KEYS) keys_held.Cut(1,2) keys_held[_key] = TRUE - var/movement = SSinput.movement_keys[_key] + var/movement = movement_keys[_key] if(!(next_move_dir_sub & movement) && !keys_held["Ctrl"]) next_move_dir_add |= movement // Client-level keybindings are ones anyone should be able to do at any time // Things like taking screenshots, hitting tab, and adminhelps. - + var/AltMod = keys_held["Alt"] ? "Alt" : "" + var/CtrlMod = keys_held["Ctrl"] ? "Ctrl" : "" + var/ShiftMod = keys_held["Shift"] ? "Shift" : "" + var/full_key switch(_key) - if("F1") - if(keys_held["Ctrl"] && keys_held["Shift"]) // Is this command ever used? - winset(src, null, "command=.options") - else - get_adminhelp() - return - if("F2") // Screenshot. Hold shift to choose a name and location to save in - winset(src, null, "command=.screenshot [!keys_held["shift"] ? "auto" : ""]") - return - if("F12") // Toggles minimal HUD - mob.button_pressed_F12() - return + if("Alt", "Ctrl", "Shift") + full_key = "[AltMod][CtrlMod][ShiftMod]" + else + full_key = "[AltMod][CtrlMod][ShiftMod][_key]" + var/keycount = 0 + for(var/kb_name in prefs.key_bindings[full_key]) + keycount++ + var/datum/keybinding/kb = GLOB.keybindings_by_name[kb_name] + if(kb.can_use(src) && kb.down(src) && keycount >= MAX_COMMANDS_PER_KEY) + break - if(holder) - holder.key_down(_key, src) - if(mob.focus) - mob.focus.key_down(_key, src) + holder?.key_down(_key, src) + mob.focus?.key_down(_key, src) + +/// Keyup's all keys held down. +/client/proc/ForceAllKeysUp() + // simulate a user releasing all keys except for the mod keys. groan. i hate this. thanks, byond. why aren't keyups able to be forced to fire on macro change aoaoaoao. + // groan + for(var/key in keys_held) // all of these won't be the 3 mod keys. + if((key == "Ctrl") || (key == "Alt") || (key == "Shift")) + continue + keyUp("[key]") /client/verb/keyUp(_key as text) set instant = TRUE set hidden = TRUE keys_held -= _key - var/movement = SSinput.movement_keys[_key] + var/movement = movement_keys[_key] if(!(next_move_dir_add & movement)) next_move_dir_sub |= movement - if(holder) - holder.key_up(_key, src) - if(mob.focus) - mob.focus.key_up(_key, src) + // We don't do full key for release, because for mod keys you + // can hold different keys and releasing any should be handled by the key binding specifically + for (var/kb_name in prefs.key_bindings[_key]) + var/datum/keybinding/kb = GLOB.keybindings_by_name[kb_name] + if(kb.can_use(src) && kb.up(src)) + break + holder?.key_up(_key, src) + mob.focus?.key_up(_key, src) // Called every game tick /client/keyLoop() - if(holder) - holder.keyLoop(src) - if(mob.focus) - mob.focus.keyLoop(src) \ No newline at end of file + holder?.keyLoop(src) + mob.focus?.keyLoop(src) diff --git a/code/modules/keybindings/bindings_human.dm b/code/modules/keybindings/bindings_human.dm deleted file mode 100644 index 9569de338c..0000000000 --- a/code/modules/keybindings/bindings_human.dm +++ /dev/null @@ -1,80 +0,0 @@ -/mob/living/carbon/human/key_down(_key, client/user) - if(client.keys_held["Shift"]) - switch(_key) - if("E") // Put held thing in belt or take out most recent thing from belt - var/obj/item/thing = get_active_held_item() - var/obj/item/storage/equipped_belt = get_item_by_slot(SLOT_BELT) - if(!equipped_belt) // We also let you equip a belt like this - if(!thing) - to_chat(user, "You have no belt to take something out of.") - return - equip_to_slot_if_possible(thing, SLOT_BELT) - return - if(!istype(equipped_belt)) // not a storage item - if(!thing) - to_chat(user, "You have no belt to take something out of.") - else - to_chat(user, "You can't fit anything in.") - return - if(thing) // put thing in belt - if(!SEND_SIGNAL(equipped_belt, COMSIG_TRY_STORAGE_INSERT, thing, user.mob)) - to_chat(user, "You can't fit anything in.") - return - if(!equipped_belt.contents.len) // nothing to take out - to_chat(user, "There's nothing in your belt to take out.") - return - var/obj/item/stored = equipped_belt.contents[equipped_belt.contents.len] - if(!stored || stored.on_found(src)) - return - stored.attack_hand(src) // take out thing from belt - return - - if("B") // Put held thing in backpack or take out most recent thing from backpack - var/obj/item/thing = get_active_held_item() - var/obj/item/storage/equipped_backpack = get_item_by_slot(SLOT_BACK) - if(!equipped_backpack) // We also let you equip a backpack like this - if(!thing) - to_chat(user, "You have no backpack to take something out of.") - return - equip_to_slot_if_possible(thing, SLOT_BACK) - return - if(!istype(equipped_backpack)) // not a storage item - if(!thing) - to_chat(user, "You have no backpack to take something out of.") - else - to_chat(user, "You can't fit anything in.") - return - if(thing) // put thing in backpack - if(!SEND_SIGNAL(equipped_backpack, COMSIG_TRY_STORAGE_INSERT, thing, user.mob)) - to_chat(user, "You can't fit anything in.") - return - if(!equipped_backpack.contents.len) // nothing to take out - to_chat(user, "There's nothing in your backpack to take out.") - return - var/obj/item/stored = equipped_backpack.contents[equipped_backpack.contents.len] - if(!stored || stored.on_found(src)) - return - stored.attack_hand(src) // take out thing from backpack - return - switch(_key) - if("Shift") - if(!user.prefs.sprint_spacebar) - user.prefs.sprint_toggle ? default_toggle_sprint() : sprint_hotkey(TRUE) //Yes, this looks hacky. Yes, this works. - return - if("Space") - if(user.prefs.sprint_spacebar) - user.prefs.sprint_toggle ? default_toggle_sprint() : sprint_hotkey(TRUE) - return - return ..() - -/mob/living/carbon/human/key_up(_key, client/user) - switch(_key) - if("Shift") - if(!user.prefs.sprint_spacebar && !user.prefs.sprint_toggle) - sprint_hotkey(FALSE) - return - if("Space") - if(user.prefs.sprint_spacebar && !user.prefs.sprint_toggle) - sprint_hotkey(FALSE) - return - return ..() diff --git a/code/modules/keybindings/bindings_living.dm b/code/modules/keybindings/bindings_living.dm deleted file mode 100644 index b338c5e899..0000000000 --- a/code/modules/keybindings/bindings_living.dm +++ /dev/null @@ -1,26 +0,0 @@ -/mob/living/key_down(_key, client/user) - switch(_key) - if("B") - resist() - return - if("1") - if(possible_a_intents) - a_intent_change(INTENT_HELP) - return - if("2") - if(possible_a_intents) - a_intent_change(INTENT_DISARM) - return - if("3") - if(possible_a_intents) - a_intent_change(INTENT_GRAB) - return - if("4") - if(possible_a_intents) - a_intent_change(INTENT_HARM) - return - if ("V") - lay_down() - return - - return ..() \ No newline at end of file diff --git a/code/modules/keybindings/bindings_mob.dm b/code/modules/keybindings/bindings_mob.dm deleted file mode 100644 index 36b4775c34..0000000000 --- a/code/modules/keybindings/bindings_mob.dm +++ /dev/null @@ -1,94 +0,0 @@ -// Technically the client argument is unncessary here since that SHOULD be src.client but let's not assume things -// All it takes is one badmin setting their focus to someone else's client to mess things up -// Or we can have NPC's send actual keypresses and detect that by seeing no client - -/mob/key_down(_key, client/user) - switch(_key) - if("Delete", "H") - if(!pulling) - to_chat(src, "You are not pulling anything.") - else - stop_pulling() - return - if("Insert", "G") - a_intent_change(INTENT_HOTKEY_RIGHT) - return - if("F") - a_intent_change(INTENT_HOTKEY_LEFT) - return - if("X", "Northeast") // Northeast is Page-up - swap_hand() - return - if("Y", "Z", "Southeast") // Southeast is Page-down - mode() // attack_self(). No idea who came up with "mode()" - return - if("Q", "Northwest") // Northwest is Home - var/obj/item/I = get_active_held_item() - if(!I) - to_chat(src, "You have nothing to drop in your hand!") - else - dropItemToGround(I) - return - if("E") - quick_equip() - return - if("Alt") - toggle_move_intent() - return - //Bodypart selections - if("Numpad8") - user.body_toggle_head() - return - if("Numpad4") - user.body_r_arm() - return - if("Numpad5") - user.body_chest() - return - if("Numpad6") - user.body_l_arm() - return - if("Numpad1") - user.body_r_leg() - return - if("Numpad2") - user.body_groin() - return - if("Numpad3") - user.body_l_leg() - return - - if(client.keys_held["Ctrl"]) - switch(SSinput.movement_keys[_key]) - if(NORTH) - if(client.keys_held["Shift"]) - northshift() - else - northface() - return - if(SOUTH) - if(client.keys_held["Shift"]) - southshift() - else - southface() - return - if(WEST) - if(client.keys_held["Shift"]) - westshift() - else - westface() - return - if(EAST) - if(client.keys_held["Shift"]) - eastshift() - else - eastface() - return - return ..() - -/mob/key_up(_key, client/user) - switch(_key) - if("Alt") - toggle_move_intent() - return - return ..() diff --git a/code/modules/keybindings/bindings_robot.dm b/code/modules/keybindings/bindings_robot.dm deleted file mode 100644 index 29fb36fa65..0000000000 --- a/code/modules/keybindings/bindings_robot.dm +++ /dev/null @@ -1,22 +0,0 @@ -/mob/living/silicon/robot/key_down(_key, client/user) - switch(_key) - if("1", "2", "3") - toggle_module(text2num(_key)) - return - if("4") - a_intent_change(INTENT_HOTKEY_LEFT) - return - if("Q") - uneq_active() - return - if("Shift") - sprint_hotkey(TRUE) - return - return ..() - -/mob/living/silicon/robot/key_up(_key, client/user) - switch(_key) - if("Shift") - sprint_hotkey(FALSE) - return - return ..() diff --git a/code/modules/keybindings/focus.dm b/code/modules/keybindings/focus.dm index 205b293e9a..d542b49267 100644 --- a/code/modules/keybindings/focus.dm +++ b/code/modules/keybindings/focus.dm @@ -1,6 +1,3 @@ -/mob - var/datum/focus //What receives our keyboard inputs. src by default - /mob/proc/set_focus(datum/new_focus) if(focus == new_focus) return diff --git a/code/modules/keybindings/keybind/__defines.dm b/code/modules/keybindings/keybind/__defines.dm new file mode 100644 index 0000000000..baa095987c --- /dev/null +++ b/code/modules/keybindings/keybind/__defines.dm @@ -0,0 +1,20 @@ +#define CATEGORY_CLIENT "CLIENT" +#define CATEGORY_EMOTE "EMOTE" +#define CATEGORY_ADMIN "ADMIN" +#define CATEGORY_XENO "XENO" +#define CATEGORY_CARBON "CARBON" +#define CATEGORY_HUMAN "HUMAN" +#define CATEGORY_ROBOT "ROBOT" +#define CATEGORY_MISC "MISC" +#define CATEGORY_MOVEMENT "MOVEMENT" +#define CATEGORY_TARGETING "TARGETING" + +#define WEIGHT_HIGHEST 0 +#define WEIGHT_ADMIN 10 +#define WEIGHT_CLIENT 20 +#define WEIGHT_ROBOT 30 +#define WEIGHT_MOB 40 +#define WEIGHT_LIVING 50 +#define WEIGHT_DEAD 60 +#define WEIGHT_EMOTE 70 +#define WEIGHT_LOWEST 999 diff --git a/code/modules/keybindings/keybind/_keybind.dm b/code/modules/keybindings/keybind/_keybind.dm new file mode 100644 index 0000000000..1d68e2d037 --- /dev/null +++ b/code/modules/keybindings/keybind/_keybind.dm @@ -0,0 +1,24 @@ +/datum/keybinding + var/list/hotkey_keys + var/list/classic_keys + var/name + var/full_name + var/description = "" + var/category = CATEGORY_MISC + var/weight = WEIGHT_LOWEST + var/keybind_signal + +/datum/keybinding/New() + + // Default keys to the master "hotkey_keys" + if(LAZYLEN(hotkey_keys) && !LAZYLEN(classic_keys)) + classic_keys = hotkey_keys.Copy() + +/datum/keybinding/proc/down(client/user) + return FALSE + +/datum/keybinding/proc/up(client/user) + return FALSE + +/datum/keybinding/proc/can_use(client/user) + return TRUE diff --git a/code/modules/keybindings/keybind/admin.dm b/code/modules/keybindings/keybind/admin.dm new file mode 100644 index 0000000000..b63221e97a --- /dev/null +++ b/code/modules/keybindings/keybind/admin.dm @@ -0,0 +1,96 @@ +/datum/keybinding/admin + category = CATEGORY_ADMIN + weight = WEIGHT_ADMIN + +/datum/keybinding/admin/can_use(client/user) + return user.holder ? TRUE : FALSE + +/datum/keybinding/admin/admin_say + hotkey_keys = list("F3") + name = "admin_say" + full_name = "Admin say" + description = "Talk with other admins." + +/datum/keybinding/admin/admin_say/down(client/user) + user.get_admin_say() + return TRUE + +/datum/keybinding/admin/admin_ghost + hotkey_keys = list("F5") + name = "admin_ghost" + full_name = "Aghost" + description = "Go ghost" + +/datum/keybinding/admin/admin_ghost/down(client/user) + user.admin_ghost() + return TRUE + +/datum/keybinding/admin/player_panel_new + hotkey_keys = list("F6") + name = "player_panel_new" + full_name = "Player Panel New" + description = "Opens up the new player panel" + +/datum/keybinding/admin/player_panel_new/down(client/user) + user.holder.player_panel_new() + return TRUE + +/datum/keybinding/admin/toggle_buildmode_self + hotkey_keys = list("F7") + name = "toggle_buildmode_self" + full_name = "Toggle Buildmode Self" + description = "Toggles buildmode" + +/datum/keybinding/admin/toggle_buildmode_self/down(client/user) + user.togglebuildmodeself() + return TRUE + +/datum/keybinding/admin/stealthmode + hotkey_keys = list("CtrlF8") + name = "stealth_mode" + full_name = "Stealth mode" + description = "Enters stealth mode" + +/datum/keybinding/admin/stealthmode/down(client/user) + user.stealth() + return TRUE + +/datum/keybinding/admin/invisimin + hotkey_keys = list("F8") + name = "invisimin" + full_name = "Admin invisibility" + description = "Toggles ghost-like invisibility (Don't abuse this)" + +/datum/keybinding/admin/invisimin/down(client/user) + user.invisimin() + return TRUE + +/datum/keybinding/admin/deadsay + hotkey_keys = list("F10") + name = "dsay" + full_name = "deadsay" + description = "Allows you to send a message to dead chat" + +/datum/keybinding/admin/deadsay/down(client/user) + user.get_dead_say() + return TRUE + +/datum/keybinding/admin/deadmin + hotkey_keys = list("Unbound") + name = "deadmin" + full_name = "Deadmin" + description = "Shed your admin powers" + +/datum/keybinding/admin/deadmin/down(client/user) + user.deadmin() + return TRUE + +/datum/keybinding/admin/readmin + hotkey_keys = list("Unbound") + name = "readmin" + full_name = "Readmin" + description = "Regain your admin powers" + +/datum/keybinding/admin/readmin/down(client/user) + user.readmin() + return TRUE diff --git a/code/modules/keybindings/keybind/carbon.dm b/code/modules/keybindings/keybind/carbon.dm new file mode 100644 index 0000000000..46cb5cd0ac --- /dev/null +++ b/code/modules/keybindings/keybind/carbon.dm @@ -0,0 +1,62 @@ +/datum/keybinding/carbon + category = CATEGORY_CARBON + weight = WEIGHT_MOB + +/datum/keybinding/carbon/can_use(client/user) + return iscarbon(user.mob) + +/datum/keybinding/carbon/toggle_throw_mode + hotkey_keys = list("R", "Southwest") // END + name = "toggle_throw_mode" + full_name = "Toggle throw mode" + description = "Toggle throwing the current item or not." + category = CATEGORY_CARBON + +/datum/keybinding/carbon/toggle_throw_mode/down(client/user) + var/mob/living/carbon/C = user.mob + C.toggle_throw_mode() + return TRUE + +/datum/keybinding/carbon/select_help_intent + hotkey_keys = list("1") + name = "select_help_intent" + full_name = "Select help intent" + description = "" + category = CATEGORY_CARBON + +/datum/keybinding/carbon/select_help_intent/down(client/user) + user.mob?.a_intent_change(INTENT_HELP) + return TRUE + +/datum/keybinding/carbon/select_disarm_intent + hotkey_keys = list("2") + name = "select_disarm_intent" + full_name = "Select disarm intent" + description = "" + category = CATEGORY_CARBON + +/datum/keybinding/carbon/select_disarm_intent/down(client/user) + user.mob?.a_intent_change(INTENT_DISARM) + return TRUE + +/datum/keybinding/carbon/select_grab_intent + hotkey_keys = list("3") + name = "select_grab_intent" + full_name = "Select grab intent" + description = "" + category = CATEGORY_CARBON + +/datum/keybinding/carbon/select_grab_intent/down(client/user) + user.mob?.a_intent_change(INTENT_GRAB) + return TRUE + +/datum/keybinding/carbon/select_harm_intent + hotkey_keys = list("4") + name = "select_harm_intent" + full_name = "Select harm intent" + description = "" + category = CATEGORY_CARBON + +/datum/keybinding/carbon/select_harm_intent/down(client/user) + user.mob?.a_intent_change(INTENT_HARM) + return TRUE diff --git a/code/modules/keybindings/keybind/client.dm b/code/modules/keybindings/keybind/client.dm new file mode 100644 index 0000000000..1d44efa063 --- /dev/null +++ b/code/modules/keybindings/keybind/client.dm @@ -0,0 +1,33 @@ +/datum/keybinding/client + category = CATEGORY_CLIENT + weight = WEIGHT_HIGHEST + +/datum/keybinding/client/admin_help + hotkey_keys = list("F1") + name = "admin_help" + full_name = "Admin Help" + description = "Ask an admin for help." + +/datum/keybinding/client/admin_help/down(client/user) + user.get_adminhelp() + return TRUE + +/datum/keybinding/client/screenshot + hotkey_keys = list("F2") + name = "screenshot" + full_name = "Screenshot" + description = "Take a screenshot." + +/datum/keybinding/client/screenshot/down(client/user) + winset(user, null, "command=.screenshot [!user.keys_held["shift"] ? "auto" : ""]") + return TRUE + +/datum/keybinding/client/minimal_hud + hotkey_keys = list("F12") + name = "minimal_hud" + full_name = "Minimal HUD" + description = "Hide most HUD features" + +/datum/keybinding/client/minimal_hud/down(client/user) + user.mob.button_pressed_F12() + return TRUE diff --git a/code/modules/keybindings/keybind/emote.dm b/code/modules/keybindings/keybind/emote.dm new file mode 100644 index 0000000000..6099826819 --- /dev/null +++ b/code/modules/keybindings/keybind/emote.dm @@ -0,0 +1,15 @@ +/datum/keybinding/emote + category = CATEGORY_EMOTE + weight = WEIGHT_EMOTE + var/emote_key + +/datum/keybinding/emote/proc/link_to_emote(datum/emote/faketype) + hotkey_keys = list("Unbound") + emote_key = initial(faketype.key) + name = initial(faketype.key) + full_name = capitalize(initial(faketype.key)) + description = "Do the emote '*[emote_key]'" + +/datum/keybinding/emote/down(client/user) + . = ..() + return user.mob.emote(emote_key, intentional=TRUE) diff --git a/code/modules/keybindings/keybind/human.dm b/code/modules/keybindings/keybind/human.dm new file mode 100644 index 0000000000..43f5653472 --- /dev/null +++ b/code/modules/keybindings/keybind/human.dm @@ -0,0 +1,39 @@ +/datum/keybinding/human + category = CATEGORY_HUMAN + weight = WEIGHT_MOB + +/datum/keybinding/human/can_use(client/user) + return ishuman(user.mob) + +/datum/keybinding/human/quick_equip + hotkey_keys = list("E") + name = "quick_equip" + full_name = "Quick Equip" + description = "Quickly puts an item in the best slot available" + +/datum/keybinding/human/quick_equip/down(client/user) + var/mob/living/carbon/human/H = user.mob + H.quick_equip() + return TRUE + +/datum/keybinding/human/quick_equipbelt + hotkey_keys = list("ShiftE") + name = "quick_equipbelt" + full_name = "Quick equip belt" + description = "Put held thing in belt or take out most recent thing from belt" + +/datum/keybinding/human/quick_equipbelt/down(client/user) + var/mob/living/carbon/human/H = user.mob + H.smart_equipbelt() + return TRUE + +/datum/keybinding/human/bag_equip + hotkey_keys = list("ShiftB") + name = "bag_equip" + full_name = "Bag equip" + description = "Put held thing in backpack or take out most recent thing from backpack" + +/datum/keybinding/human/bag_equip/down(client/user) + var/mob/living/carbon/human/H = user.mob + H.smart_equipbag() + return TRUE diff --git a/code/modules/keybindings/keybind/living.dm b/code/modules/keybindings/keybind/living.dm new file mode 100644 index 0000000000..0408d0889b --- /dev/null +++ b/code/modules/keybindings/keybind/living.dm @@ -0,0 +1,41 @@ +/datum/keybinding/living + category = CATEGORY_HUMAN + weight = WEIGHT_MOB + +/datum/keybinding/living/can_use(client/user) + return isliving(user.mob) + +/datum/keybinding/living/resist + hotkey_keys = list("B") + name = "resist" + full_name = "Resist" + description = "Break free of your current state. Handcuffed? on fire? Resist!" + +/datum/keybinding/living/resist/down(client/user) + var/mob/living/L = user.mob + L.resist() + return TRUE + +/datum/keybinding/living/toggle_combat_mode + hotkey_keys = list("C") + name = "toggle_combat_mode" + full_name = "Toggle combat mode" + description = "Toggles whether or not you're in combat mode." + +/datum/keybinding/living/toggle_combat_mode/can_use(client/user) + return iscarbon(user.mob) // for now, only carbons should be using combat mode, although all livings have combat mode implemented. + +/datum/keybinding/living/toggle_combat_mode/down(client/user) + var/mob/living/carbon/C = user.mob + C.user_toggle_intentional_combat_mode() + return TRUE + +/datum/keybinding/living/toggle_resting + hotkey_keys = list("V") + name = "toggle_resting" + full_name = "Toggle Resting" + description = "Toggles whether or not you are intentionally laying down." + +/datum/keybinding/living/toggle_resting/down(client/user) + var/mob/living/L = user.mob + L.lay_down() diff --git a/code/modules/keybindings/keybind/mob.dm b/code/modules/keybindings/keybind/mob.dm new file mode 100644 index 0000000000..083d4a19fd --- /dev/null +++ b/code/modules/keybindings/keybind/mob.dm @@ -0,0 +1,123 @@ +/datum/keybinding/mob + category = CATEGORY_HUMAN + weight = WEIGHT_MOB + +/datum/keybinding/mob/stop_pulling + hotkey_keys = list("H", "Delete") + name = "stop_pulling" + full_name = "Stop pulling" + description = "" + +/datum/keybinding/mob/stop_pulling/down(client/user) + var/mob/M = user.mob + if(!M.pulling) + to_chat(user, "You are not pulling anything.") + else + M.stop_pulling() + return TRUE + +/datum/keybinding/mob/cycle_intent_right + hotkey_keys = list("Northwest", "F") // HOME + name = "cycle_intent_right" + full_name = "Cycle Action Intent Right" + description = "" + +/datum/keybinding/mob/cycle_intent_right/down(client/user) + var/mob/M = user.mob + M.a_intent_change(INTENT_HOTKEY_RIGHT) + return TRUE + +/datum/keybinding/mob/cycle_intent_left + hotkey_keys = list("Insert", "G") + name = "cycle_intent_left" + full_name = "Cycle Action Intent Left" + description = "" + +/datum/keybinding/mob/cycle_intent_left/down(client/user) + var/mob/M = user.mob + M.a_intent_change(INTENT_HOTKEY_LEFT) + return TRUE + +/datum/keybinding/mob/swap_hands + hotkey_keys = list("X", "Northeast") // PAGEUP + name = "swap_hands" + full_name = "Swap hands" + description = "" + +/datum/keybinding/mob/swap_hands/down(client/user) + var/mob/M = user.mob + M.swap_hand() + return TRUE + +/datum/keybinding/mob/activate_inhand + hotkey_keys = list("Z", "Southeast") // PAGEDOWN + name = "activate_inhand" + full_name = "Activate in-hand" + description = "Uses whatever item you have inhand" + +/datum/keybinding/mob/activate_inhand/down(client/user) + var/mob/M = user.mob + M.mode() + return TRUE + +/datum/keybinding/mob/drop_item + hotkey_keys = list("Q") + name = "drop_item" + full_name = "Drop Item" + description = "" + +/datum/keybinding/mob/drop_item/down(client/user) + if(iscyborg(user.mob)) //cyborgs can't drop items + return FALSE + var/mob/M = user.mob + var/obj/item/I = M.get_active_held_item() + if(!I) + to_chat(user, "You have nothing to drop in your hand!") + else + user.mob.dropItemToGround(I) + return TRUE + +/datum/keybinding/mob/say_with_indicator + hotkey_keys = list("CtrlT") + classic_keys = list() + name = "say_with_indicator" + full_name = "Say with Typing Indicator" + +/datum/keybinding/mob/say_with_indicator/down(client/user) + var/mob/M = user.mob + M.say_typing_indicator() + return TRUE + +/datum/keybinding/mob/me_with_indicator + hotkey_keys = list("CtrlM") + classic_keys = list() + name = "me_with_indicator" + full_name = "Me (emote) with Typing Indicator" + +/datum/keybinding/mob/me_with_indicator/down(client/user) + var/mob/M = user.mob + M.me_typing_indicator() + return TRUE + +/datum/keybinding/living/subtle + hotkey_keys = list("5") + classic_keys = list() + name = "subtle_emote" + full_name = "Subtle Emote" + +/datum/keybinding/living/subtle/down(client/user) + var/mob/living/L = user.mob + L.subtle_keybind() + return TRUE + +/datum/keybinding/mob/whisper + hotkey_keys = list("Y") + classic_keys = list() + name = "whisper" + full_name = "Whisper" + +/datum/keybinding/mob/whisper/down(client/user) + var/mob/M = user.mob + M.whisper_keybind() + return TRUE + diff --git a/code/modules/keybindings/keybind/movement.dm b/code/modules/keybindings/keybind/movement.dm new file mode 100644 index 0000000000..23691539e9 --- /dev/null +++ b/code/modules/keybindings/keybind/movement.dm @@ -0,0 +1,175 @@ +/datum/keybinding/movement + category = CATEGORY_MOVEMENT + weight = WEIGHT_HIGHEST + +/datum/keybinding/movement/north + hotkey_keys = list("W", "North") + name = "North" + full_name = "Move North" + description = "Moves your character north" + +/datum/keybinding/movement/south + hotkey_keys = list("S", "South") + name = "South" + full_name = "Move South" + description = "Moves your character south" + +/datum/keybinding/movement/west + hotkey_keys = list("A", "West") + name = "West" + full_name = "Move West" + description = "Moves your character left" + +/datum/keybinding/movement/east + hotkey_keys = list("D", "East") + name = "East" + full_name = "Move East" + description = "Moves your character east" + +/datum/keybinding/mob/face_north + hotkey_keys = list("CtrlW", "CtrlNorth") + name = "face_north" + full_name = "Face North" + description = "" + category = CATEGORY_MOVEMENT + +/datum/keybinding/mob/face_north/down(client/user) + var/mob/M = user.mob + M.northface() + return TRUE + +/datum/keybinding/mob/face_east + hotkey_keys = list("CtrlD", "CtrlEast") + name = "face_east" + full_name = "Face East" + description = "" + category = CATEGORY_MOVEMENT + +/datum/keybinding/mob/face_east/down(client/user) + var/mob/M = user.mob + M.eastface() + return TRUE + +/datum/keybinding/mob/face_south + hotkey_keys = list("CtrlS", "CtrlSouth") + name = "face_south" + full_name = "Face South" + description = "" + category = CATEGORY_MOVEMENT + +/datum/keybinding/mob/face_south/down(client/user) + var/mob/M = user.mob + M.southface() + return TRUE + +/datum/keybinding/mob/shift_north + hotkey_keys = list("CtrlShiftW", "CtrlShiftNorth") + name = "pixel_shift_north" + full_name = "Pixel Shift North" + description = "" + category = CATEGORY_MOVEMENT + +/datum/keybinding/mob/shift_north/down(client/user) + var/mob/M = user.mob + M.northshift() + return TRUE + +/datum/keybinding/mob/shift_east + hotkey_keys = list("CtrlShiftD", "CtrlShiftEast") + name = "pixel_shift_east" + full_name = "Pixel Shift East" + description = "" + category = CATEGORY_MOVEMENT + +/datum/keybinding/mob/shift_east/down(client/user) + var/mob/M = user.mob + M.eastshift() + return TRUE + +/datum/keybinding/mob/shift_south + hotkey_keys = list("CtrlShiftS", "CtrlShiftSouth") + name = "pixel_shift_south" + full_name = "Pixel Shift South" + description = "" + category = CATEGORY_MOVEMENT + +/datum/keybinding/mob/shift_south/down(client/user) + var/mob/M = user.mob + M.southshift() + return TRUE + +/datum/keybinding/mob/shift_west + hotkey_keys = list("CtrlShiftA", "CtrlShiftWest") + name = "pixel_shift_west" + full_name = "Pixel Shift West" + description = "" + category = CATEGORY_MOVEMENT + +/datum/keybinding/mob/shift_west/down(client/user) + var/mob/M = user.mob + M.westshift() + return TRUE + +/datum/keybinding/living/hold_sprint + hotkey_keys = list("Shift") + name = "hold_sprint" + full_name = "Sprint (hold down)" + description = "Hold down to sprint" + category = CATEGORY_MOVEMENT + +/datum/keybinding/living/hold_sprint/can_use(client/user) + return ishuman(user.mob) || iscyborg(user.mob) + +/datum/keybinding/living/hold_sprint/down(client/user) + var/mob/living/L = user.mob + L.sprint_hotkey(TRUE) + return TRUE + +/datum/keybinding/living/hold_sprint/up(client/user) + var/mob/living/L = user.mob + L.sprint_hotkey(FALSE) + return TRUE + +/datum/keybinding/living/toggle_sprint + hotkey_keys = list() + name = "toggle_sprint" + full_name = "Sprint (toggle)" + description = "Press to toggle sprint" + category = CATEGORY_MOVEMENT + +/datum/keybinding/living/toggle_sprint/can_use(client/user) + return ishuman(user.mob) || iscyborg(user.mob) + +/datum/keybinding/living/toggle_sprint/down(client/user) + var/mob/living/L = user.mob + L.default_toggle_sprint(TRUE) + return TRUE + +/datum/keybinding/mob/toggle_move_intent + hotkey_keys = list("Alt") + name = "toggle_move_intent" + full_name = "Hold to toggle move intent" + description = "Held down to cycle to the other move intent, release to cycle back" + category = CATEGORY_MOVEMENT + +/datum/keybinding/mob/toggle_move_intent/down(client/user) + var/mob/M = user.mob + M.toggle_move_intent() + return TRUE + +/datum/keybinding/mob/toggle_move_intent/up(client/user) + var/mob/M = user.mob + M.toggle_move_intent() + return TRUE + +/datum/keybinding/mob/toggle_move_intent_alternative + hotkey_keys = list("Unbound") + name = "toggle_move_intent_alt" + full_name = "press to cycle move intent" + description = "Pressing this cycle to the opposite move intent, does not cycle back" + category = CATEGORY_MOVEMENT + +/datum/keybinding/mob/toggle_move_intent_alternative/down(client/user) + var/mob/M = user.mob + M.toggle_move_intent() + return TRUE diff --git a/code/modules/keybindings/keybind/robot.dm b/code/modules/keybindings/keybind/robot.dm new file mode 100644 index 0000000000..b9f6ce83eb --- /dev/null +++ b/code/modules/keybindings/keybind/robot.dm @@ -0,0 +1,61 @@ +/datum/keybinding/robot + category = CATEGORY_ROBOT + weight = WEIGHT_ROBOT + +/datum/keybinding/robot/can_use(client/user) + return iscyborg(user.mob) + +/datum/keybinding/robot/moduleone + hotkey_keys = list("1") + name = "module_one" + full_name = "Toggle module 1" + description = "Equips or unequips the first module" + +/datum/keybinding/robot/moduleone/down(client/user) + var/mob/living/silicon/robot/R = user.mob + R.toggle_module(1) + return TRUE + +/datum/keybinding/robot/moduletwo + hotkey_keys = list("2") + name = "module_two" + full_name = "Toggle module 2" + description = "Equips or unequips the second module" + +/datum/keybinding/robot/moduletwo/down(client/user) + var/mob/living/silicon/robot/R = user.mob + R.toggle_module(2) + return TRUE + +/datum/keybinding/robot/modulethree + hotkey_keys = list("3") + name = "module_three" + full_name = "Toggle module 3" + description = "Equips or unequips the third module" + +/datum/keybinding/robot/modulethree/down(client/user) + var/mob/living/silicon/robot/R = user.mob + R.toggle_module(3) + return TRUE + +/datum/keybinding/robot/intent_cycle + hotkey_keys = list("4") + name = "cycle_intent" + full_name = "Cycle intent left" + description = "Cycles the intent left" + +/datum/keybinding/robot/intent_cycle/down(client/user) + var/mob/living/silicon/robot/R = user.mob + R.a_intent_change(INTENT_HOTKEY_LEFT) + return TRUE + +/datum/keybinding/robot/unequip_module + hotkey_keys = list("Q") + name = "unequip_module" + full_name = "Unequip module" + description = "Unequips the active module" + +/datum/keybinding/robot/unequip_module/down(client/user) + var/mob/living/silicon/robot/R = user.mob + R.uneq_active() + return TRUE diff --git a/code/modules/keybindings/keybind/targeting.dm b/code/modules/keybindings/keybind/targeting.dm new file mode 100644 index 0000000000..1548d768cf --- /dev/null +++ b/code/modules/keybindings/keybind/targeting.dm @@ -0,0 +1,76 @@ +/datum/keybinding/mob/target_head_cycle + hotkey_keys = list("Numpad8") + name = "target_head_cycle" + full_name = "Target: Cycle head" + description = "" + category = CATEGORY_TARGETING + +/datum/keybinding/mob/target_head_cycle/down(client/user) + user.body_toggle_head() + return TRUE + +/datum/keybinding/mob/target_r_arm + hotkey_keys = list("Numpad4") + name = "target_r_arm" + full_name = "Target: right arm" + description = "" + category = CATEGORY_TARGETING + +/datum/keybinding/mob/target_r_arm/down(client/user) + user.body_r_arm() + return TRUE + +/datum/keybinding/mob/target_body_chest + hotkey_keys = list("Numpad5") + name = "target_body_chest" + full_name = "Target: Body" + description = "" + category = CATEGORY_TARGETING + +/datum/keybinding/mob/target_body_chest/down(client/user) + user.body_chest() + return TRUE + +/datum/keybinding/mob/target_left_arm + hotkey_keys = list("Numpad6") + name = "target_left_arm" + full_name = "Target: left arm" + description = "" + category = CATEGORY_TARGETING + +/datum/keybinding/mob/target_left_arm/down(client/user) + user.body_l_arm() + return TRUE + +/datum/keybinding/mob/target_right_leg + hotkey_keys = list("Numpad1") + name = "target_right_leg" + full_name = "Target: Right leg" + description = "" + category = CATEGORY_TARGETING + +/datum/keybinding/mob/target_right_leg/down(client/user) + user.body_r_leg() + return TRUE + +/datum/keybinding/mob/target_body_groin + hotkey_keys = list("Numpad2") + name = "target_body_groin" + full_name = "Target: Groin" + description = "" + category = CATEGORY_TARGETING + +/datum/keybinding/mob/target_body_groin/down(client/user) + user.body_groin() + return TRUE + +/datum/keybinding/mob/target_left_leg + hotkey_keys = list("Numpad3") + name = "target_left_leg" + full_name = "Target: left leg" + description = "" + category = CATEGORY_TARGETING + +/datum/keybinding/mob/target_left_leg/down(client/user) + user.body_l_leg() + return TRUE diff --git a/code/modules/keybindings/setup.dm b/code/modules/keybindings/setup.dm index 9a13bfb11c..a53820b5d2 100644 --- a/code/modules/keybindings/setup.dm +++ b/code/modules/keybindings/setup.dm @@ -1,55 +1,47 @@ -/client - /// Keys currently held - var/list/keys_held = list() - /// These next two vars are to apply movement for keypresses and releases made while move delayed. - /// Because discarding that input makes the game less responsive. - /// On next move, add this dir to the move that would otherwise be done - var/next_move_dir_add - /// On next move, subtract this dir from the move that would otherwise be done - var/next_move_dir_sub - -// Set a client's focus to an object and override these procs on that object to let it handle keypresses - /datum/proc/key_down(key, client/user) // Called when a key is pressed down initially return + /datum/proc/key_up(key, client/user) // Called when a key is released return + /datum/proc/keyLoop(client/user) // Called once every frame set waitfor = FALSE return // removes all the existing macros /client/proc/erase_all_macros() - var/list/macro_sets = params2list(winget(src, null, "macros")) var/erase_output = "" - for(var/i in 1 to macro_sets.len) - var/setname = macro_sets[i] - var/list/macro_set = params2list(winget(src, "[setname].*", "command")) // The third arg doesnt matter here as we're just removing them all - for(var/k in 1 to macro_set.len) - var/list/split_name = splittext(macro_set[k], ".") - var/macro_name = "[split_name[1]].[split_name[2]]" // [3] is "command" - erase_output = "[erase_output];[macro_name].parent=null" + var/list/macro_set = params2list(winget(src, "default.*", "command")) // The third arg doesnt matter here as we're just removing them all + for(var/k in 1 to length(macro_set)) + var/list/split_name = splittext(macro_set[k], ".") + var/macro_name = "[split_name[1]].[split_name[2]]" // [3] is "command" + erase_output = "[erase_output];[macro_name].parent=null" winset(src, null, erase_output) -/client/proc/set_macros() +/client/proc/apply_macro_set(name, list/macroset) + ASSERT(name) + ASSERT(islist(macroset)) + winclone(src, "default", name) + for(var/i in 1 to length(macroset)) + var/key = macroset[i] + var/command = macroset[key] + winset(src, "[name]-[REF(key)]", "parent=[name];name=[key];command=[command]") + +/client/proc/set_macros(datum/preferences/prefs_override = prefs) set waitfor = FALSE keys_held.Cut() erase_all_macros() - var/list/macro_sets = SSinput.macro_sets - for(var/i in 1 to macro_sets.len) - var/setname = macro_sets[i] - if(setname != "default") - winclone(src, "default", setname) - var/list/macro_set = macro_sets[setname] - for(var/k in 1 to macro_set.len) - var/key = macro_set[k] - var/command = macro_set[key] - winset(src, "[setname]-[REF(key)]", "parent=[setname];name=[key];command=[command]") + apply_macro_set(SKIN_MACROSET_HOTKEYS, SSinput.macroset_hotkey) + apply_macro_set(SKIN_MACROSET_CLASSIC_HOTKEYS, SSinput.macroset_classic_hotkey) + apply_macro_set(SKIN_MACROSET_CLASSIC_INPUT, SSinput.macroset_classic_input) - if(prefs.hotkeys) - winset(src, null, "input.focus=true input.background-color=[COLOR_INPUT_ENABLED] mainwindow.macro=default") + set_hotkeys_preference() + +/client/proc/set_hotkeys_preference(datum/preferences/prefs_override = prefs) + if(prefs_override.hotkeys) + winset(src, null, "map.focus=true input.background-color=[COLOR_INPUT_DISABLED] mainwindow.macro=[SKIN_MACROSET_HOTKEYS]") else - winset(src, null, "input.focus=true input.background-color=[COLOR_INPUT_ENABLED] mainwindow.macro=old_default") + winset(src, null, "input.focus=true input.background-color=[COLOR_INPUT_ENABLED] mainwindow.macro=[SKIN_MACROSET_CLASSIC_INPUT]") diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index 580b0aaaf0..8de143e2bd 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -277,3 +277,65 @@ qdel(slot) for(var/obj/item/I in held_items) qdel(I) + +/mob/living/carbon/human/proc/smart_equipbag() // take most recent item out of bag or place held item in bag + if(incapacitated()) + return + var/obj/item/thing = get_active_held_item() + var/obj/item/equipped_back = get_item_by_slot(SLOT_BACK) + if(!equipped_back) // We also let you equip a backpack like this + if(!thing) + to_chat(src, "You have no backpack to take something out of!") + return + if(equip_to_slot_if_possible(thing, ITEM_SLOT_BACK)) + update_inv_hands() + return + if(!SEND_SIGNAL(equipped_back, COMSIG_CONTAINS_STORAGE)) // not a storage item + if(!thing) + equipped_back.attack_hand(src) + else + to_chat(src, "You can't fit anything in!") + return + if(thing) // put thing in backpack + if(!SEND_SIGNAL(equipped_back, COMSIG_TRY_STORAGE_INSERT, thing, src)) + to_chat(src, "You can't fit anything in!") + return + if(!equipped_back.contents.len) // nothing to take out + to_chat(src, "There's nothing in your backpack to take out!") + return + var/obj/item/stored = equipped_back.contents[equipped_back.contents.len] + if(!stored || stored.on_found(src)) + return + stored.attack_hand(src) // take out thing from backpack + return + +/mob/living/carbon/human/proc/smart_equipbelt() // put held thing in belt or take most recent item out of belt + if(incapacitated()) + return + var/obj/item/thing = get_active_held_item() + var/obj/item/equipped_belt = get_item_by_slot(SLOT_BELT) + if(!equipped_belt) // We also let you equip a belt like this + if(!thing) + to_chat(src, "You have no belt to take something out of!") + return + if(equip_to_slot_if_possible(thing, ITEM_SLOT_BELT)) + update_inv_hands() + return + if(!SEND_SIGNAL(equipped_belt, COMSIG_CONTAINS_STORAGE)) // not a storage item + if(!thing) + equipped_belt.attack_hand(src) + else + to_chat(src, "You can't fit anything in!") + return + if(thing) // put thing in belt + if(!SEND_SIGNAL(equipped_belt, COMSIG_TRY_STORAGE_INSERT, thing, src)) + to_chat(src, "You can't fit anything in!") + return + if(!equipped_belt.contents.len) // nothing to take out + to_chat(src, "There's nothing in your belt to take out!") + return + var/obj/item/stored = equipped_belt.contents[equipped_belt.contents.len] + if(!stored || stored.on_found(src)) + return + stored.attack_hand(src) // take out thing from belt + return diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index e551316e25..9947c8ca1e 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -12,6 +12,9 @@ vis_flags = VIS_INHERIT_PLANE //when this be added to vis_contents of something it inherit something.plane, important for visualisation of mob in openspace. + /// What receives our keyboard input. src by default. + var/datum/focus + var/lighting_alpha = LIGHTING_PLANE_ALPHA_VISIBLE var/datum/mind/mind var/list/datum/action/actions = list() diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index ac89fc2445..e2b3aee35d 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -57,6 +57,12 @@ else return ..() +/mob/proc/whisper_keybind() + var/message = input(src, "", "whisper") as text|null + if(!length(message)) + return + return whisper_verb(message) + /mob/verb/whisper_verb(message as text) set name = "Whisper" set category = "IC" diff --git a/code/modules/mob/say_vr.dm b/code/modules/mob/say_vr.dm index ec82b41cca..44dc3e2a05 100644 --- a/code/modules/mob/say_vr.dm +++ b/code/modules/mob/say_vr.dm @@ -129,6 +129,12 @@ proc/get_top_level_mob(var/mob/S) user.visible_message(message=message,self_message=message,vision_distance=1, ignored_mobs = GLOB.dead_mob_list) ///////////////// VERB CODE +/mob/living/proc/subtle_keybind() + var/message = input(src, "", "subtle") as text|null + if(!length(message)) + return + return subtle(message) + /mob/living/verb/subtle() set name = "Subtle" set category = "IC" diff --git a/interface/skin.dmf b/interface/skin.dmf index 04a78af061..8d68336754 100644 --- a/interface/skin.dmf +++ b/interface/skin.dmf @@ -54,6 +54,7 @@ window "mainwindow" size = 640x440 anchor1 = none anchor2 = none + background-color = #242424 is-default = true saved-params = "pos;size;is-minimized;is-maximized" icon = 'icons\\ss13_64.png' @@ -61,60 +62,23 @@ window "mainwindow" menu = "menu" elem "split" type = CHILD - pos = 3,0 - size = 634x417 + pos = 0,0 + size = 637x440 anchor1 = 0,0 anchor2 = 100,100 + background-color = #272727 saved-params = "splitter" left = "mapwindow" right = "infowindow" is-vert = true - elem "input" - type = INPUT - pos = 3,420 - size = 517x20 - anchor1 = 0,100 - anchor2 = 100,100 - background-color = #d3b5b5 - is-default = true - border = sunken - saved-params = "command" - elem "saybutton" - type = BUTTON - pos = 600,420 - size = 40x20 - anchor1 = 100,100 - anchor2 = none - saved-params = "is-checked" - text = "Chat" - command = ".winset \"saybutton.is-checked=true ? input.command=\"!say \\\"\" : input.command=\"\"saybutton.is-checked=true ? mebutton.is-checked=false\"\"saybutton.is-checked=true ? oocbutton.is-checked=false\"" - button-type = pushbox - elem "oocbutton" - type = BUTTON - pos = 520,420 - size = 40x20 - anchor1 = 100,100 - anchor2 = none - saved-params = "is-checked" - text = "OOC" - command = ".winset \"oocbutton.is-checked=true ? input.command=\"!ooc \\\"\" : input.command=\"\"oocbutton.is-checked=true ? mebutton.is-checked=false\"\"oocbutton.is-checked=true ? saybutton.is-checked=false\"" - button-type = pushbox - elem "mebutton" - type = BUTTON - pos = 560,420 - size = 40x20 - anchor1 = 100,100 - anchor2 = none - saved-params = "is-checked" - text = "Me" - command = ".winset \"mebutton.is-checked=true ? input.command=\"!me \\\"\" : input.command=\"\"mebutton.is-checked=true ? saybutton.is-checked=false\"\"mebutton.is-checked=true ? oocbutton.is-checked=false\"" - button-type = pushbox + splitter = 75 elem "asset_cache_browser" type = BROWSER pos = 0,0 size = 200x200 anchor1 = none anchor2 = none + background-color = #272727 is-visible = false saved-params = "" elem "tooltip" @@ -123,6 +87,7 @@ window "mainwindow" size = 999x999 anchor1 = none anchor2 = none + background-color = #272727 is-visible = false saved-params = "" @@ -134,11 +99,11 @@ window "mapwindow" anchor1 = none anchor2 = none background-color = none - saved-params = "" + saved-params = "pos;size;is-minimized;is-maximized" statusbar = false is-pane = true - outer-size = 1090x1192 - inner-size = 1068x1136 + outer-size = 684x617 + inner-size = 662x561 elem "map" type = MAP pos = 0,0 @@ -159,6 +124,7 @@ window "infowindow" size = 640x480 anchor1 = none anchor2 = none + background-color = #242424 saved-params = "pos;size;is-minimized;is-maximized" is-pane = true elem "info" @@ -167,6 +133,7 @@ window "infowindow" size = 640x445 anchor1 = 0,0 anchor2 = 100,100 + background-color = #272727 saved-params = "splitter" left = "statwindow" right = "outputwindow" @@ -177,6 +144,8 @@ window "infowindow" size = 104x20 anchor1 = 3,0 anchor2 = 19,0 + text-color = #e0e0e0 + background-color = #40628a saved-params = "is-checked" text = "Changelog" command = "changelog" @@ -186,6 +155,8 @@ window "infowindow" size = 100x20 anchor1 = 19,0 anchor2 = 34,0 + text-color = #e0e0e0 + background-color = #40628a saved-params = "is-checked" text = "Rules" command = "rules" @@ -195,6 +166,8 @@ window "infowindow" size = 100x20 anchor1 = 34,0 anchor2 = 50,0 + text-color = #e0e0e0 + background-color = #40628a saved-params = "is-checked" text = "Wiki" command = "wiki" @@ -204,6 +177,8 @@ window "infowindow" size = 100x20 anchor1 = 50,0 anchor2 = 66,0 + text-color = #e0e0e0 + background-color = #40628a saved-params = "is-checked" text = "Forum" command = "forum" @@ -213,8 +188,10 @@ window "infowindow" size = 100x20 anchor1 = 66,0 anchor2 = 81,0 + text-color = #e0e0e0 + background-color = #40628a saved-params = "is-checked" - text = "Github" + text = "GitHub" command = "github" elem "report-issue" type = BUTTON @@ -222,6 +199,9 @@ window "infowindow" size = 100x20 anchor1 = 81,0 anchor2 = 97,0 + font-size = 8 + text-color = #e0e0e0 + background-color = #a92c2c saved-params = "is-checked" text = "Report Issue" command = "report-issue" @@ -233,15 +213,44 @@ window "outputwindow" size = 640x480 anchor1 = none anchor2 = none + background-color = #272727 saved-params = "pos;size;is-minimized;is-maximized" + titlebar = false + statusbar = false + can-close = false + can-minimize = false + can-resize = false is-pane = true + elem "input" + type = INPUT + pos = 2,460 + size = 595x20 + anchor1 = 0,100 + anchor2 = 100,100 + background-color = #d3b5b5 + is-default = true + border = sunken + saved-params = "command" + elem "say" + type = BUTTON + pos = 600,460 + size = 37x20 + anchor1 = 100,100 + anchor2 = none + text-color = #e0e0e0 + background-color = #272727 + saved-params = "is-checked" + text = "Chat" + command = ".winset \"say.is-checked=true ? input.command=\"!say \\\"\" : input.command=\"" + is-flat = true + button-type = pushbox elem "browseroutput" type = BROWSER pos = 0,0 - size = 640x480 + size = 640x456 anchor1 = 0,0 anchor2 = 100,100 - background-color = #ffffff + background-color = #272727 is-visible = false is-disabled = true saved-params = "" @@ -249,19 +258,22 @@ window "outputwindow" elem "output" type = OUTPUT pos = 0,0 - size = 640x480 + size = 640x456 anchor1 = 0,0 anchor2 = 100,100 + text-color = #e0e0e0 + background-color = #272727 is-default = true saved-params = "" window "statwindow" elem "statwindow" type = MAIN - pos = 0,0 + pos = 281,0 size = 640x480 anchor1 = none anchor2 = none + background-color = #242424 saved-params = "pos;size;is-minimized;is-maximized" is-pane = true elem "stat" @@ -270,8 +282,14 @@ window "statwindow" size = 640x480 anchor1 = 0,0 anchor2 = 100,100 + text-color = #e0e0e0 + background-color = #272727 is-default = true saved-params = "" + tab-text-color = #e0e0e0 + tab-background-color = #242424 + prefix-color = #e0e0e0 + suffix-color = #e0e0e0 window "preferences_window" elem "preferences_window" diff --git a/modular_citadel/interface/skin.dmf b/modular_citadel/interface/skin.dmf deleted file mode 100644 index ec9a010128..0000000000 --- a/modular_citadel/interface/skin.dmf +++ /dev/null @@ -1,319 +0,0 @@ -macro "default" - - -menu "menu" - elem - name = "&File" - command = "" - saved-params = "is-checked" - elem - name = "&Quick screenshot\tF2" - command = ".screenshot auto" - category = "&File" - saved-params = "is-checked" - elem - name = "&Save screenshot as...\tShift+F2" - command = ".screenshot" - category = "&File" - saved-params = "is-checked" - elem - name = "" - command = "" - category = "&File" - saved-params = "is-checked" - elem "reconnectbutton" - name = "&Reconnect" - command = ".reconnect" - category = "&File" - saved-params = "is-checked" - elem - name = "&Quit\tAlt-F4" - command = ".quit" - category = "&File" - saved-params = "is-checked" - elem - name = "&Help" - command = "" - saved-params = "is-checked" - elem - name = "&Admin Help\tF1" - command = "adminhelp" - category = "&Help" - saved-params = "is-checked" - elem - name = "&Hotkeys" - command = "hotkeys-help" - category = "&Help" - saved-params = "is-checked" - - -window "mainwindow" - elem "mainwindow" - type = MAIN - pos = 0,0 - size = 640x440 - anchor1 = none - anchor2 = none - background-color = #242424 - is-default = true - saved-params = "pos;size;is-minimized;is-maximized" - icon = 'icons\\ss13_64.png' - macro = "default" - menu = "menu" - elem "split" - type = CHILD - pos = 0,0 - size = 637x440 - anchor1 = 0,0 - anchor2 = 100,100 - background-color = #272727 - saved-params = "splitter" - left = "mapwindow" - right = "infowindow" - is-vert = true - splitter = 75 - elem "asset_cache_browser" - type = BROWSER - pos = 0,0 - size = 200x200 - anchor1 = none - anchor2 = none - background-color = #272727 - is-visible = false - saved-params = "" - elem "tooltip" - type = BROWSER - pos = 0,0 - size = 999x999 - anchor1 = none - anchor2 = none - background-color = #272727 - is-visible = false - saved-params = "" - -window "mapwindow" - elem "mapwindow" - type = MAIN - pos = 418,0 - size = 1024x1024 - anchor1 = none - anchor2 = none - background-color = none - saved-params = "pos;size;is-minimized;is-maximized" - statusbar = false - is-pane = true - outer-size = 684x617 - inner-size = 662x561 - elem "map" - type = MAP - pos = 0,0 - size = 1024x1024 - anchor1 = 0,0 - anchor2 = 100,100 - font-family = "Arial" - font-size = 7 - is-default = true - saved-params = "icon-size" - zoom-mode = distort - style = ".center { text-align: center; }\n.maptext { font-family: 'Small Fonts'; font-size: 7px; -dm-text-outline: 1px black; color: white; line-height: 1.1; }\n.command_headset { font-weight: bold;\tfont-size: 8px; } .small { font-size: 6px; }\n.big { font-size: 8px; }\n.reallybig { font-size: 8px; }\n.extremelybig { font-size: 8px; }\n.greentext { color: #00ff00; font-size: 7px; }\n.redtext { color: #ff0000; font-size: 7px; }\n.clown { color: #ff69bf; font-size: 7px; font-weight: bold; }\n.his_grace { color: #15d512; }\n.hypnophrase { color: #0d0d0d; font-weight: bold; }\n.yell { font-weight: bold; }\n.italics { font-size: 6px; }" - -window "infowindow" - elem "infowindow" - type = MAIN - pos = 0,0 - size = 640x480 - anchor1 = none - anchor2 = none - background-color = #242424 - saved-params = "pos;size;is-minimized;is-maximized" - is-pane = true - elem "info" - type = CHILD - pos = 0,30 - size = 640x445 - anchor1 = 0,0 - anchor2 = 100,100 - background-color = #272727 - saved-params = "splitter" - left = "statwindow" - right = "outputwindow" - is-vert = false - elem "changelog" - type = BUTTON - pos = 16,5 - size = 104x20 - anchor1 = 3,0 - anchor2 = 19,0 - text-color = #e0e0e0 - background-color = #40628a - saved-params = "is-checked" - text = "Changelog" - command = "changelog" - elem "rules" - type = BUTTON - pos = 120,5 - size = 100x20 - anchor1 = 19,0 - anchor2 = 34,0 - text-color = #e0e0e0 - background-color = #40628a - saved-params = "is-checked" - text = "Rules" - command = "rules" - elem "wiki" - type = BUTTON - pos = 220,5 - size = 100x20 - anchor1 = 34,0 - anchor2 = 50,0 - text-color = #e0e0e0 - background-color = #40628a - saved-params = "is-checked" - text = "Wiki" - command = "wiki" - elem "forum" - type = BUTTON - pos = 320,5 - size = 100x20 - anchor1 = 50,0 - anchor2 = 66,0 - text-color = #e0e0e0 - background-color = #40628a - saved-params = "is-checked" - text = "Forum" - command = "forum" - elem "github" - type = BUTTON - pos = 420,5 - size = 100x20 - anchor1 = 66,0 - anchor2 = 81,0 - text-color = #e0e0e0 - background-color = #40628a - saved-params = "is-checked" - text = "GitHub" - command = "github" - elem "report-issue" - type = BUTTON - pos = 520,5 - size = 100x20 - anchor1 = 81,0 - anchor2 = 97,0 - font-size = 8 - text-color = #e0e0e0 - background-color = #a92c2c - saved-params = "is-checked" - text = "Report Issue" - command = "report-issue" - -window "outputwindow" - elem "outputwindow" - type = MAIN - pos = 0,0 - size = 640x480 - anchor1 = none - anchor2 = none - background-color = #272727 - saved-params = "pos;size;is-minimized;is-maximized" - titlebar = false - statusbar = false - can-close = false - can-minimize = false - can-resize = false - is-pane = true - elem "input" - type = INPUT - pos = 2,460 - size = 595x20 - anchor1 = 0,100 - anchor2 = 100,100 - background-color = #d3b5b5 - is-default = true - border = sunken - saved-params = "command" - elem "say" - type = BUTTON - pos = 600,460 - size = 37x20 - anchor1 = 100,100 - anchor2 = none - text-color = #e0e0e0 - background-color = #272727 - saved-params = "is-checked" - text = "Chat" - command = ".winset \"say.is-checked=true ? input.command=\"!say \\\"\" : input.command=\"" - is-flat = true - button-type = pushbox - elem "browseroutput" - type = BROWSER - pos = 0,0 - size = 640x456 - anchor1 = 0,0 - anchor2 = 100,100 - background-color = #272727 - is-visible = false - is-disabled = true - saved-params = "" - auto-format = false - elem "output" - type = OUTPUT - pos = 0,0 - size = 640x456 - anchor1 = 0,0 - anchor2 = 100,100 - text-color = #e0e0e0 - background-color = #272727 - is-default = true - saved-params = "" - -window "statwindow" - elem "statwindow" - type = MAIN - pos = 281,0 - size = 640x480 - anchor1 = none - anchor2 = none - background-color = #242424 - saved-params = "pos;size;is-minimized;is-maximized" - is-pane = true - elem "stat" - type = INFO - pos = 0,0 - size = 640x480 - anchor1 = 0,0 - anchor2 = 100,100 - text-color = #e0e0e0 - background-color = #272727 - is-default = true - saved-params = "" - tab-text-color = #e0e0e0 - tab-background-color = #242424 - prefix-color = #e0e0e0 - suffix-color = #e0e0e0 - -window "preferences_window" - elem "preferences_window" - type = MAIN - pos = 372,0 - size = 1280x1000 - anchor1 = none - anchor2 = none - is-visible = false - saved-params = "pos;size;is-minimized;is-maximized" - statusbar = false - elem "preferences_browser" - type = BROWSER - pos = 0,0 - size = 960x1000 - anchor1 = 0,0 - anchor2 = 75,100 - saved-params = "" - elem "character_preview_map" - type = MAP - pos = 960,0 - size = 320x1000 - anchor1 = 75,0 - anchor2 = 100,100 - right-click = true - saved-params = "zoom;letterbox;zoom-mode" - diff --git a/tgstation.dme b/tgstation.dme index c39fb47815..0d14ab1254 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -120,6 +120,7 @@ #include "code\__DEFINES\vv.dm" #include "code\__DEFINES\wall_dents.dm" #include "code\__DEFINES\wires.dm" +#include "code\__DEFINES\admin\keybindings.dm" #include "code\__DEFINES\dcs\flags.dm" #include "code\__DEFINES\dcs\helpers.dm" #include "code\__DEFINES\dcs\signals.dm" @@ -186,7 +187,9 @@ #include "code\_globalvars\misc.dm" #include "code\_globalvars\regexes.dm" #include "code\_globalvars\traits.dm" +#include "code\_globalvars\lists\client.dm" #include "code\_globalvars\lists\flavor_misc.dm" +#include "code\_globalvars\lists\keybindings.dm" #include "code\_globalvars\lists\maintenance_loot.dm" #include "code\_globalvars\lists\mapping.dm" #include "code\_globalvars\lists\medals.dm" @@ -2139,16 +2142,22 @@ #include "code\modules\jobs\job_types\virologist.dm" #include "code\modules\jobs\job_types\warden.dm" #include "code\modules\jobs\map_changes\map_changes.dm" -#include "code\modules\keybindings\bindings_admin.dm" #include "code\modules\keybindings\bindings_atom.dm" -#include "code\modules\keybindings\bindings_carbon.dm" #include "code\modules\keybindings\bindings_client.dm" -#include "code\modules\keybindings\bindings_human.dm" -#include "code\modules\keybindings\bindings_living.dm" -#include "code\modules\keybindings\bindings_mob.dm" -#include "code\modules\keybindings\bindings_robot.dm" #include "code\modules\keybindings\focus.dm" #include "code\modules\keybindings\setup.dm" +#include "code\modules\keybindings\keybind\__defines.dm" +#include "code\modules\keybindings\keybind\_keybind.dm" +#include "code\modules\keybindings\keybind\admin.dm" +#include "code\modules\keybindings\keybind\carbon.dm" +#include "code\modules\keybindings\keybind\client.dm" +#include "code\modules\keybindings\keybind\emote.dm" +#include "code\modules\keybindings\keybind\human.dm" +#include "code\modules\keybindings\keybind\living.dm" +#include "code\modules\keybindings\keybind\mob.dm" +#include "code\modules\keybindings\keybind\movement.dm" +#include "code\modules\keybindings\keybind\robot.dm" +#include "code\modules\keybindings\keybind\targeting.dm" #include "code\modules\language\aphasia.dm" #include "code\modules\language\beachbum.dm" #include "code\modules\language\codespeak.dm" @@ -3412,5 +3421,4 @@ #include "modular_citadel\code\modules\reagents\objects\clothes.dm" #include "modular_citadel\code\modules\reagents\objects\items.dm" #include "modular_citadel\code\modules\reagents\reagents\cit_reagents.dm" -#include "modular_citadel\interface\skin.dmf" // END_INCLUDE From dfcbee50454dcdcda06c81cb920f2c4e348dd822 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Wed, 20 May 2020 17:34:09 -0700 Subject: [PATCH 090/103] Update pandemic.dm (#12318) --- code/modules/reagents/chemistry/machinery/pandemic.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/reagents/chemistry/machinery/pandemic.dm b/code/modules/reagents/chemistry/machinery/pandemic.dm index 25315f457d..38a05cd541 100644 --- a/code/modules/reagents/chemistry/machinery/pandemic.dm +++ b/code/modules/reagents/chemistry/machinery/pandemic.dm @@ -170,7 +170,7 @@ if(!A.mutable) return if(A) - var/new_name = sanitize_name(html_encode(params["name"])) + var/new_name = sanitize_name(html_encode(trim(params["name"], 50))) if(!new_name || ..()) return A.AssignName(new_name) From a7053a978fb8407a7666a819004f17b6f5e0b608 Mon Sep 17 00:00:00 2001 From: Kraseo Date: Thu, 21 May 2020 03:37:38 +0200 Subject: [PATCH 091/103] Ports a tail from the RP server (#12301) * tailse * forgot to reorder it lol * and i guess felinids and anthros can use it too --- .../new_player/sprite_accessories/tails.dm | 20 ++++++++++++++++++ modular_citadel/icons/mob/mam_tails.dmi | Bin 65890 -> 67547 bytes 2 files changed, 20 insertions(+) diff --git a/code/modules/mob/dead/new_player/sprite_accessories/tails.dm b/code/modules/mob/dead/new_player/sprite_accessories/tails.dm index 2bb0d6ba77..33dbd7059f 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/tails.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/tails.dm @@ -450,6 +450,18 @@ color_src = MATRIXED icon = 'modular_citadel/icons/mob/mam_tails.dmi' +/datum/sprite_accessory/tails/human/tamamo_kitsune + name = "Tamamo Kitsune Tails" //Tamamo-no-Tiro, let it be known! + icon_state = "9sune" + color_src = MATRIXED + icon = 'modular_citadel/icons/mob/mam_tails.dmi' + +/datum/sprite_accessory/tails_animated/human/tamamo_kitsune + name = "Tamamo Kitsune Tails" + icon_state = "9sune" + color_src = MATRIXED + icon = 'modular_citadel/icons/mob/mam_tails.dmi' + /datum/sprite_accessory/tails/human/tentacle name = "Tentacle" icon_state = "tentacle" @@ -816,6 +828,14 @@ datum/sprite_accessory/mam_tails/insect name = "Squirrel" icon_state = "squirrel" +/datum/sprite_accessory/mam_tails/tamamo_kitsune + name = "Tamamo Kitsune Tails" + icon_state = "9sune" + +/datum/sprite_accessory/mam_tails_animated/tamamo_kitsune + name = "Tamamo Kitsune Tails" + icon_state = "9sune" + /datum/sprite_accessory/mam_tails/tentacle name = "Tentacle" icon_state = "tentacle" diff --git a/modular_citadel/icons/mob/mam_tails.dmi b/modular_citadel/icons/mob/mam_tails.dmi index d91f15a3f7054483770c5c1e4f9bc523a72dba56..a67c1b718cd17244680b7d9ef92df4fac6125715 100644 GIT binary patch delta 5354 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 KVO3Y1qyG=7x`ZkK From 7f38e0714bf499b6d428be37444a92c5e0f8022b Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Thu, 21 May 2020 03:42:58 +0200 Subject: [PATCH 092/103] Skill calculation fixes, tweaks, antag and brain damage modifiers. (#12302) * Skill calculation fixes, tweaks, antag and brain damage modifiers. * Experience through patience. * Priority Fix etcetera. --- code/__DEFINES/skills/defines.dm | 41 +++++++++-------- code/_onclick/item_attack.dm | 20 ++++----- code/datums/skills/_skill.dm | 26 +++++------ code/datums/skills/_skill_holder.dm | 45 +++++++++++++------ code/datums/skills/_skill_modifier.dm | 40 ++++++++++++----- code/datums/skills/engineering.dm | 3 +- code/datums/skills/medical.dm | 2 +- code/datums/skills/modifiers/mood.dm | 4 +- code/datums/skills/modifiers/organs.dm | 13 ++++++ code/game/objects/items.dm | 10 +++-- .../antagonists/_common/antag_datum.dm | 26 +++++++---- code/modules/antagonists/abductor/abductor.dm | 2 + .../antagonists/clockcult/clockcult.dm | 1 + code/modules/antagonists/ert/ert.dm | 2 + code/modules/antagonists/nukeop/nukeop.dm | 1 + .../antagonists/traitor/datum_traitor.dm | 1 + code/modules/mob/living/brain/brain_item.dm | 45 ++++++++----------- code/modules/surgery/surgery_step.dm | 12 +++-- tgstation.dme | 1 + 19 files changed, 181 insertions(+), 114 deletions(-) create mode 100644 code/datums/skills/modifiers/organs.dm diff --git a/code/__DEFINES/skills/defines.dm b/code/__DEFINES/skills/defines.dm index 9127b4e3dd..659c0fe11b 100644 --- a/code/__DEFINES/skills/defines.dm +++ b/code/__DEFINES/skills/defines.dm @@ -27,25 +27,27 @@ #define DEF_SKILL_GAIN 1 #define SKILL_GAIN_SURGERY_PER_STEP 0.25 -#define SKILL_AFFINITY_MOOD_BONUS 1.25 +//An extra point for each few seconds of delay when using a tool. Before the multiplier. +#define SKILL_GAIN_DELAY_DIVISOR 3 SECONDS -///Items skill_flags and other defines -#define SKILL_USE_TOOL (1<<0) -#define SKILL_TRAINING_TOOL (1<<1) -#define SKILL_ATTACK_MOB (1<<2) -#define SKILL_TRAIN_ATTACK_MOB (1<<3) -#define SKILL_ATTACK_OBJ (1<<4) -#define SKILL_TRAIN_ATTACK_OBJ (1<<5) -#define SKILL_STAMINA_COST (1<<6) //Influences the stamina cost from weapon usage. -#define SKILL_THROW_STAM_COST (1<<7) -#define SKILL_COMBAT_MODE (1<<8) //The user must have combat mode on. -#define SKILL_USE_MOOD (1<<9) //Is the skill negatively affected by bad mood. -#define SKILL_TRAIN_MOOD (1<<10) //Is this skill training affected by good mood. +///Items skill_traits and other defines +#define SKILL_USE_TOOL "use_tool" +#define SKILL_TRAINING_TOOL "training_tool" +#define SKILL_ATTACK_MOB "attack_mob" +#define SKILL_TRAIN_ATTACK_MOB "train_attack_mob" +#define SKILL_ATTACK_OBJ "attack_obj" +#define SKILL_TRAIN_ATTACK_OBJ "train_attack_obj" +#define SKILL_STAMINA_COST "stamina_cost" //Influences the stamina cost from weapon usage. +#define SKILL_THROW_STAM_COST "throw_stam_cost" +#define SKILL_COMBAT_MODE "combat_mode" //The user must have combat mode on. +#define SKILL_SANITY "sanity" //Is the skill affected by (in)sanity. +#define SKILL_INTELLIGENCE "intelligence" //Is the skill affected by brain damage? -///competency_threshold index defines -#define THRESHOLD_COMPETENT 1 -#define THRESHOLD_EXPERT 2 -#define THRESHOLD_MASTER 3 +///competency_threshold defines +#define THRESHOLD_UNTRAINED "untrained" +#define THRESHOLD_COMPETENT "competent" +#define THRESHOLD_EXPERT "expert" +#define THRESHOLD_MASTER "master" /// Level/Experience skills defines. #define STD_XP_LVL_UP 100 @@ -88,11 +90,14 @@ #define MODIFIER_SKILL_BODYBOUND (1<<6) ///Adds the difference of the current value and the value stored at the time the modifier was added to the result. #define MODIFIER_SKILL_ORIGIN_DIFF (1<<7) +///Will this skill use competency thresholds instead of preset values +#define MODIFIER_USE_THRESHOLDS (1<<8) #define MODIFIER_TARGET_VALUE "value" #define MODIFIER_TARGET_LEVEL "level" #define MODIFIER_TARGET_AFFINITY "affinity" ///Ascending priority defines. +#define MODIFIER_SKILL_PRIORITY_LOW 100 #define MODIFIER_SKILL_PRIORITY_DEF 50 -#define MODIFIER_SKILL_PRIORITY_MAX 100 //max priority, meant for job/antag modifiers so they don't null out any debuff +#define MODIFIER_SKILL_PRIORITY_MAX 1 //max priority, meant for job/antag modifiers so they don't null out other (de)buffs \ No newline at end of file diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index 9e120db102..3ad0219391 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -112,13 +112,13 @@ /obj/attacked_by(obj/item/I, mob/living/user) var/totitemdamage = I.force - var/bad_flag = NONE + var/bad_trait if(!(user.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE) && iscarbon(user)) totitemdamage *= 0.5 - bad_flag |= SKILL_COMBAT_MODE //blacklist combat skills. + bad_trait = SKILL_COMBAT_MODE //blacklist combat skills. if(I.used_skills && user.mind) if(totitemdamage) - totitemdamage = user.mind.item_action_skills_mod(I, totitemdamage, I.skill_difficulty, SKILL_ATTACK_OBJ, bad_flag) + totitemdamage = user.mind.item_action_skills_mod(I, totitemdamage, I.skill_difficulty, SKILL_ATTACK_OBJ, bad_trait) for(var/skill in I.used_skills) if(!(I.used_skills[skill] & SKILL_TRAIN_ATTACK_OBJ)) continue @@ -154,16 +154,16 @@ /mob/living/proc/pre_attacked_by(obj/item/I, mob/living/user) . = I.force - var/bad_flag = NONE + var/bad_trait if(!(user.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE) && iscarbon(user)) . *= 0.5 - bad_flag |= SKILL_COMBAT_MODE //blacklist combat skills. + bad_trait = SKILL_COMBAT_MODE //blacklist combat skills. if(!CHECK_MOBILITY(user, MOBILITY_STAND)) . *= 0.5 if(!user.mind || !I.used_skills) return if(.) - . = user.mind.item_action_skills_mod(I, ., I.skill_difficulty, SKILL_ATTACK_MOB, bad_flag) + . = user.mind.item_action_skills_mod(I, ., I.skill_difficulty, SKILL_ATTACK_MOB, bad_trait) for(var/skill in I.used_skills) if(!(I.used_skills[skill] & SKILL_TRAIN_ATTACK_MOB)) continue @@ -207,16 +207,16 @@ return 1 /// How much stamina this takes to swing this is not for realism purposes hecc off. -/obj/item/proc/getweight(mob/living/user, multiplier = 1, flags = SKILL_STAMINA_COST) +/obj/item/proc/getweight(mob/living/user, multiplier = 1, trait = SKILL_STAMINA_COST) . = (total_mass || w_class * STAM_COST_W_CLASS_MULT) * multiplier if(!user) return - var/bad_flag = NONE + var/bad_trait if(iscarbon(user) && !(user.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) . *= STAM_COST_NO_COMBAT_MULT - bad_flag |= SKILL_COMBAT_MODE + bad_trait = SKILL_COMBAT_MODE if(used_skills && user.mind) - . = user.mind.item_action_skills_mod(src, ., skill_difficulty, flags, bad_flag, FALSE) + . = user.mind.item_action_skills_mod(src, ., skill_difficulty, trait, bad_trait, FALSE) /// How long this staggers for. 0 and negatives supported. /obj/item/proc/melee_stagger_duration(force_override) diff --git a/code/datums/skills/_skill.dm b/code/datums/skills/_skill.dm index 41ef52e317..571a8274d8 100644 --- a/code/datums/skills/_skill.dm +++ b/code/datums/skills/_skill.dm @@ -20,18 +20,20 @@ GLOBAL_LIST_INIT_TYPED(skill_datums, /datum/skill, init_skill_datums()) var/desc /// Color of the name as shown in the html readout var/name_color = "#F0F0F0" // White on dark surface. - /// Our progression type + /// Our progression type. These are mostly used to skip typechecks overhead, don't go around messing with these. var/progression_type /// Abstract type var/abstract_type = /datum/skill /// List of max levels. Only used in level skills, but present here for helper macros. var/max_levels = INFINITY - /// skill threshold used in generic skill competency calculations. - var/list/competency_thresholds = list(0, 0, 0) - /// Multiplier of the difference of the holder skill value and the selected threshold. - var/list/competency_mults = list(0, 0, 0) - /// In which way this skil can affect or be affected through actions and skill modifiers. - var/skill_flags = SKILL_USE_MOOD|SKILL_TRAIN_MOOD + /// skill threshold used in generic skill competency operations. + var/list/competency_thresholds + /// Base multiplier used in skill competency operations. + var/base_multiplier = 1 + /// Value added to the base multiplier depending on overall competency compared to maximum value/level. + var/competency_multiplier = 1 + /// A list of ways this skill can affect or be affected through actions and skill modifiers. + var/list/skill_traits = list(SKILL_SANITY, SKILL_INTELLIGENCE) /** * Ensures what someone's setting as a value for this skill is valid. @@ -66,8 +68,7 @@ GLOBAL_LIST_INIT_TYPED(skill_datums, /datum/skill, init_skill_datums()) /datum/skill/binary abstract_type = /datum/skill/binary progression_type = SKILL_PROGRESSION_BINARY - competency_thresholds = list(FALSE, TRUE, TRUE) - competency_mults = list(0.5, 0.5, 0.5) + competency_thresholds = list(THRESHOLD_COMPETENT = FALSE, THRESHOLD_EXPERT = TRUE, THRESHOLD_MASTER = TRUE) /datum/skill/binary/sanitize_value(new_value) return new_value? TRUE : FALSE @@ -78,6 +79,7 @@ GLOBAL_LIST_INIT_TYPED(skill_datums, /datum/skill, init_skill_datums()) /datum/skill/numerical abstract_type = /datum/skill/numerical progression_type = SKILL_PROGRESSION_NUMERICAL + competency_thresholds = list(THRESHOLD_COMPETENT = 25, THRESHOLD_EXPERT = 50, THRESHOLD_MASTER = 75) /// Max value of this skill var/max_value = 100 /// Min value of this skill @@ -180,8 +182,7 @@ GLOBAL_LIST_INIT_TYPED(skill_datums, /datum/skill, init_skill_datums()) /datum/skill/level/job abstract_type = /datum/skill/level/job levels = list("Basic", "Trained", "Experienced", "Master") - competency_thresholds = list(JOB_SKILL_TRAINED, JOB_SKILL_EXPERT, JOB_SKILL_MASTER) - competency_mults = list(0.15, 0.1, 0.1) + competency_thresholds = list(THRESHOLD_COMPETENT = JOB_SKILL_TRAINED, THRESHOLD_EXPERT = JOB_SKILL_EXPERT, THRESHOLD_MASTER = JOB_SKILL_MASTER) associative = TRUE //quite the reference, no? @@ -195,7 +196,6 @@ GLOBAL_LIST_INIT_TYPED(skill_datums, /datum/skill, init_skill_datums()) "Proficient", "Talented", "Adept", "Expert", "Professional", "Accomplished", "Great", "Master", "High Master", "Grand Master", "Legendary") - competency_thresholds = list(DORF_SKILL_COMPETENT, DORF_SKILL_EXPERT, DORF_SKILL_MASTER) - competency_mults = list(0.15, 0.1, 0.08) + competency_thresholds = list(THRESHOLD_COMPETENT = DORF_SKILL_COMPETENT, THRESHOLD_EXPERT = DORF_SKILL_EXPERT, THRESHOLD_MASTER = DORF_SKILL_MASTER) associative = TRUE unskilled_tier = "Dabbling" diff --git a/code/datums/skills/_skill_holder.dm b/code/datums/skills/_skill_holder.dm index 500b49a1ff..554269091a 100644 --- a/code/datums/skills/_skill_holder.dm +++ b/code/datums/skills/_skill_holder.dm @@ -122,16 +122,22 @@ * * modifier_is_multiplier : wheter the modifier is a multiplier or a divisor. */ /datum/mind/proc/action_skill_mod(skill, value, threshold, modifier_is_multiplier = TRUE) - var/mod var/datum/skill/S = GLOB.skill_datums[skill] if(!S) - return + return value + var/mod = S.base_multiplier switch(S.progression_type) if(SKILL_PROGRESSION_LEVEL) - mod = get_skill_level(S.type) + var/datum/skill/level/L = S + var/skill_lvl = get_skill_level(L.type) + mod += skill_lvl/(L.max_levels+max(L.competency_thresholds[threshold]-skill_lvl, 0))*L.competency_multiplier + if(SKILL_PROGRESSION_NUMERICAL) + var/datum/skill/numerical/N = S + var/skill_val = get_skill_value(N.type) + mod += skill_val/(N.max_value+max(N.competency_thresholds[threshold]-skill_val, 0))*N.competency_multiplier else - mod = get_skill_value(S.type) - mod = (1+(mod-S.competency_thresholds[threshold])*S.competency_mults[threshold]) + var/comp_threshold = S.competency_thresholds[threshold] + mod += (comp_threshold ? (get_skill_value(S.type) / comp_threshold) : get_skill_value(S.type))*S.competency_multiplier . = modifier_is_multiplier ? value*mod : value/mod /** @@ -139,12 +145,12 @@ * Args: * * item/I : the item used in this action. its used_skills list variable contains the skills exercised with it. * * value : the value to modify, may be a delay, damage, probability. - * * flags : the required flags that each skill (either in I.used_skills or the skill datum skill_flags) must have to influence + * * traits : the required traits each skill (either in I.used_skills or the skill datum skill_traits) must have to influence * * the value. - * * bad_flags : the opposite of the above, skills that must not be present to impact the value. + * * bad_traits : the opposite of the above. * * modifier_is_multiplier : wheter the modifier is a multiplier or a divisor. */ -/datum/mind/proc/item_action_skills_mod(obj/item/I, value, flags = NONE, bad_flags = NONE, modifier_is_multiplier = TRUE) +/datum/mind/proc/item_action_skills_mod(obj/item/I, value, traits, bad_traits, modifier_is_multiplier = TRUE) . = value var/sum = 0 var/divisor = 0 @@ -152,16 +158,27 @@ var/datum/skill/S = GLOB.skill_datums[k] if(!S) continue - var/our_flags = (I.used_skills[k]|S.skill_flags) - if((flags && !(our_flags & flags)) || (bad_flags && our_flags & bad_flags)) + var/our_traits = S.skill_traits + var/item_traits = I.used_skills[k] + if(item_traits) + our_traits |= item_traits + if((traits && !(our_traits[traits] || length(our_traits & traits))) || (bad_traits && (our_traits[bad_traits] || length(our_traits & bad_traits)))) continue - var/mod + var/mod = S.base_multiplier switch(S.progression_type) if(SKILL_PROGRESSION_LEVEL) - mod = get_skill_level(S.type) + var/datum/skill/level/L = S + var/skill_lvl = get_skill_level(L.type) + mod += skill_lvl/(L.max_levels+max(L.competency_thresholds[I.skill_difficulty]-skill_lvl, 0))*L.competency_multiplier + if(SKILL_PROGRESSION_NUMERICAL) + var/datum/skill/numerical/N = S + var/skill_val = get_skill_value(N.type) + mod += skill_val/(N.max_value+max(N.competency_thresholds[I.skill_difficulty]-skill_val, 0))*N.competency_multiplier else - mod = get_skill_value(S.type) - sum += 1+(mod - S.competency_thresholds[I.skill_difficulty])*S.competency_mults[I.skill_difficulty] + var/comp_threshold = S.competency_thresholds[I.skill_difficulty] + mod += (comp_threshold ? (get_skill_value(S.type) / comp_threshold) : get_skill_value(S.type))*S.competency_multiplier + sum += mod + divisor++ if(divisor) . = modifier_is_multiplier ? value*(sum/divisor) : value/(sum/divisor) diff --git a/code/datums/skills/_skill_modifier.dm b/code/datums/skills/_skill_modifier.dm index b0115194a7..a28cf3aebd 100644 --- a/code/datums/skills/_skill_modifier.dm +++ b/code/datums/skills/_skill_modifier.dm @@ -9,11 +9,13 @@ GLOBAL_LIST_EMPTY(potential_mods_per_skill) /datum/skill_modifier /// flags for this skill modifier. var/modifier_flags = NONE - /// target skills, can be a specific skill typepath or a set of skill flags. - var/target_skills = NONE + /// target skills, can be a specific skill typepath or a list of skill traits. + var/target_skills = /datum/skill + /// the GLOB.potential_skills_per_mod key generated on runtime. You shouldn't be var-editing it. + var/target_skills_key /// The identifier key this skill modifier is associated with. var/identifier - /// skill affinity modifier, can be a multiplier or addendum, depending on the modifier_flags flags. + /// skill affinity modifier, can be a multiplier or addendum, depending on the modifier_flags. var/affinity_mod = 1 /// skill value modifier, see above. var/value_mod = 1 @@ -38,21 +40,25 @@ GLOBAL_LIST_EMPTY(potential_mods_per_skill) CRASH("Skill modifier identifier \"[identifier]\" already taken.") GLOB.skill_modifiers[identifier] = src if(ispath(target_skills)) + target_skills_key = target_skills var/list/mod_L = GLOB.potential_mods_per_skill[target_skills] if(!mod_L) mod_L = GLOB.potential_mods_per_skill[target_skills] = list() else BINARY_INSERT(identifier, mod_L, datum/skill_modifier, src, priority, COMPARE_VALUE) mod_L[identifier] = src - GLOB.potential_skills_per_mod["[target_skills]"] = list(target_skills) - else //Should be a bitfield. - var/list/L = GLOB.potential_skills_per_mod["[target_skills]"] + GLOB.potential_skills_per_mod[target_skills_key] = list(target_skills) + else //Should be a list. + var/list/T = target_skills + T = sortTim(target_skills, /proc/cmp_text_asc) //Sort the list contents alphabetically. + target_skills_key = T.Join("-") + var/list/L = GLOB.potential_skills_per_mod[target_skills_key] if(!L) L = list() for(var/path in GLOB.skill_datums) - if(GLOB.skill_datums[path].skill_flags & target_skills) + if(GLOB.skill_datums[path].skill_traits & target_skills) L += path - GLOB.potential_skills_per_mod["[target_skills]"] = L + GLOB.potential_skills_per_mod[target_skills_key] = L for(var/path in L) var/list/mod_L = GLOB.potential_mods_per_skill[path] if(!mod_L) @@ -62,7 +68,7 @@ GLOBAL_LIST_EMPTY(potential_mods_per_skill) mod_L[identifier] = src /datum/skill_modifier/Destroy() - for(var/path in GLOB.potential_skills_per_mod["[target_skills]"]) + for(var/path in GLOB.potential_skills_per_mod[target_skills_key]) var/mod_L = GLOB.potential_mods_per_skill[path] mod_L -= identifier if(!length(mod_L)) @@ -96,7 +102,7 @@ GLOBAL_LIST_EMPTY(potential_mods_per_skill) LAZYINITLIST(skill_holder.skill_affinity_mods) if(M.modifier_flags & MODIFIER_SKILL_LEVEL) LAZYINITLIST(skill_holder.skill_level_mods) - for(var/path in GLOB.potential_skills_per_mod["[M.target_skills]"]) + for(var/path in GLOB.potential_skills_per_mod[M.target_skills_key]) if(M.modifier_flags & MODIFIER_SKILL_VALUE) ADD_MOD_STEP(skill_holder.skill_value_mods, path, skill_holder.original_values, get_skill_value(path, FALSE)) if(M.modifier_flags & MODIFIER_SKILL_AFFINITY) @@ -127,7 +133,7 @@ GLOBAL_LIST_EMPTY(potential_mods_per_skill) if(!skill_holder.skill_value_mods && !skill_holder.skill_affinity_mods && !skill_holder.skill_level_mods) return - for(var/path in GLOB.potential_skills_per_mod["[M.target_skills]"]) + for(var/path in GLOB.potential_skills_per_mod[M.target_skills_key]) if(M.modifier_flags & MODIFIER_SKILL_VALUE && skill_holder.skill_value_mods) REMOVE_MOD_STEP(skill_holder.skill_value_mods, path, skill_holder.original_values) if(M.modifier_flags & MODIFIER_SKILL_AFFINITY && skill_holder.skill_affinity_mods) @@ -155,6 +161,18 @@ GLOBAL_LIST_EMPTY(potential_mods_per_skill) if(MODIFIER_TARGET_AFFINITY) mod = affinity_mod + if(modifier_flags & MODIFIER_USE_THRESHOLDS && istext(mod)) + var/datum/skill/S = GLOB.skill_datums[skillpath] + if(method == MODIFIER_TARGET_VALUE && S.progression_type == SKILL_PROGRESSION_LEVEL) + var/datum/skill/level/L = S + switch(L.level_up_method) + if(STANDARD_LEVEL_UP) + mod = XP_LEVEL(L.standard_xp_lvl_up, L.xp_lvl_multiplier, S.competency_thresholds[mod]) + if(DWARFY_LEVEL_UP) + mod = DORF_XP_LEVEL(L.standard_xp_lvl_up, L.xp_lvl_multiplier, S.competency_thresholds[mod]) + else + mod = S.competency_thresholds[mod] + var/diff = 0 if(modifier_flags & (MODIFIER_SKILL_VIRTUE|MODIFIER_SKILL_HANDICAP)) if(modifier_flags & MODIFIER_SKILL_VIRTUE) diff --git a/code/datums/skills/engineering.dm b/code/datums/skills/engineering.dm index 59c9436e46..db7b33450c 100644 --- a/code/datums/skills/engineering.dm +++ b/code/datums/skills/engineering.dm @@ -2,5 +2,4 @@ name = "Wiring" desc = "How proficient and knowledged you are at wiring beyond laying cables on the floor." name_color = COLOR_PALE_ORANGE - competency_thresholds = list(JOB_SKILL_BASIC, JOB_SKILL_EXPERT, JOB_SKILL_MASTER) - skill_flags = SKILL_USE_MOOD|SKILL_TRAIN_MOOD|SKILL_USE_TOOL|SKILL_TRAINING_TOOL + skill_traits = list(SKILL_SANITY, SKILL_INTELLIGENCE, SKILL_USE_TOOL, SKILL_TRAINING_TOOL) diff --git a/code/datums/skills/medical.dm b/code/datums/skills/medical.dm index aaae1236a6..404c141157 100644 --- a/code/datums/skills/medical.dm +++ b/code/datums/skills/medical.dm @@ -2,4 +2,4 @@ name = "Surgery" desc = "How proficient you are at doing surgery." name_color = COLOR_PALE_BLUE_GRAY - competency_mults = list(0.025, 0.025, 0.025) // 60% surgery speed up at max value of 100. + competency_multiplier = 1.5 // 60% surgery speed up at max value of 100, considering the base multiplier. diff --git a/code/datums/skills/modifiers/mood.dm b/code/datums/skills/modifiers/mood.dm index 2ab74bdbbb..30f24afcc4 100644 --- a/code/datums/skills/modifiers/mood.dm +++ b/code/datums/skills/modifiers/mood.dm @@ -1,8 +1,8 @@ /datum/skill_modifier/bad_mood modifier_flags = MODIFIER_SKILL_VALUE|MODIFIER_SKILL_LEVEL|MODIFIER_SKILL_MULT|MODIFIER_SKILL_BODYBOUND - target_skills = SKILL_USE_MOOD + target_skills = list(SKILL_SANITY) /datum/skill_modifier/great_mood modifier_flags = MODIFIER_SKILL_AFFINITY|MODIFIER_SKILL_MULT|MODIFIER_SKILL_BODYBOUND - target_skills = SKILL_TRAIN_MOOD + target_skills = list(SKILL_SANITY) affinity_mod = 1.2 diff --git a/code/datums/skills/modifiers/organs.dm b/code/datums/skills/modifiers/organs.dm new file mode 100644 index 0000000000..13ebaf0658 --- /dev/null +++ b/code/datums/skills/modifiers/organs.dm @@ -0,0 +1,13 @@ +/datum/skill_modifier/brain_damage + target_skills = list(SKILL_INTELLIGENCE) + modifier_flags = MODIFIER_SKILL_VALUE|MODIFIER_SKILL_AFFINITY|MODIFIER_SKILL_LEVEL|MODIFIER_SKILL_MULT|MODIFIER_SKILL_BODYBOUND + value_mod = 0.85 + level_mod = 0.85 + affinity_mod = 0.85 + +/datum/skill_modifier/heavy_brain_damage + target_skills = list(SKILL_INTELLIGENCE) + modifier_flags = MODIFIER_SKILL_VALUE|MODIFIER_SKILL_AFFINITY|MODIFIER_SKILL_LEVEL|MODIFIER_SKILL_BODYBOUND|MODIFIER_SKILL_HANDICAP|MODIFIER_USE_THRESHOLDS + priority = MODIFIER_SKILL_PRIORITY_LOW + value_mod = THRESHOLD_COMPETENT + level_mod = THRESHOLD_COMPETENT diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index a8422dedc0..2a4b6d7df5 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -135,7 +135,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) ///Skills vars //list of skill PATHS exercised when using this item. An associated bitfield can be set to indicate additional ways the skill is used by this specific item. var/list/datum/skill/used_skills - var/skill_difficulty = THRESHOLD_COMPETENT //how difficult it's to use this item in general. + var/skill_difficulty = THRESHOLD_UNTRAINED //how difficult it's to use this item in general. var/skill_gain = DEF_SKILL_GAIN //base skill value gain from using this item. /obj/item/Initialize() @@ -805,7 +805,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) if(delay) if(user.mind && used_skills) - delay = user.mind.item_action_skills_mod(src, delay, skill_difficulty, SKILL_USE_TOOL, NONE, FALSE) + delay = user.mind.item_action_skills_mod(src, delay, skill_difficulty, SKILL_USE_TOOL, null, FALSE) // Create a callback with checks that would be called every tick by do_after. var/datum/callback/tool_check = CALLBACK(src, .proc/tool_check_callback, user, amount, extra_checks) @@ -831,11 +831,13 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) if(delay >= MIN_TOOL_SOUND_DELAY) play_tool_sound(target, volume) + if(user.mind && used_skills && skill_gain_mult) + var/gain = skill_gain + delay/SKILL_GAIN_DELAY_DIVISOR for(var/skill in used_skills) - if(!(used_skills[skill] & SKILL_TRAINING_TOOL)) + if(!(SKILL_TRAINING_TOOL in used_skills[skill])) continue - user.mind.auto_gain_experience(skill, skill_gain*skill_gain_mult, GET_STANDARD_LVL(max_level)) + user.mind.auto_gain_experience(skill, gain*skill_gain_mult, GET_STANDARD_LVL(max_level)) return TRUE diff --git a/code/modules/antagonists/_common/antag_datum.dm b/code/modules/antagonists/_common/antag_datum.dm index 4a7abda53c..3184a169fc 100644 --- a/code/modules/antagonists/_common/antag_datum.dm +++ b/code/modules/antagonists/_common/antag_datum.dm @@ -24,6 +24,8 @@ GLOBAL_LIST_EMPTY(antagonists) var/list/blacklisted_quirks = list(/datum/quirk/nonviolent,/datum/quirk/mute) // Quirks that will be removed upon gaining this antag. Pacifist and mute are default. var/threat = 0 // Amount of threat this antag poses, for dynamic mode + var/list/skill_modifiers + /datum/antagonist/New() GLOB.antagonists += src typecache_datum_blacklist = typecacheof(typecache_datum_blacklist) @@ -68,15 +70,19 @@ GLOBAL_LIST_EMPTY(antagonists) //Proc called when the datum is given to a mind. /datum/antagonist/proc/on_gain() - if(owner && owner.current) - if(!silent) - greet() - apply_innate_effects() - give_antag_moodies() - remove_blacklisted_quirks() - if(is_banned(owner.current) && replace_banned) - replace_banned_player() - SEND_SIGNAL(owner.current, COMSIG_MOB_ANTAG_ON_GAIN, src) + if(!(owner?.current)) + return + if(!silent) + greet() + apply_innate_effects() + give_antag_moodies() + remove_blacklisted_quirks() + if(is_banned(owner.current) && replace_banned) + replace_banned_player() + if(skill_modifiers) + for(var/A in skill_modifiers) + ADD_SINGLETON_SKILL_MODIFIER(owner, A, type) + SEND_SIGNAL(owner.current, COMSIG_MOB_ANTAG_ON_GAIN, src) /datum/antagonist/proc/is_banned(mob/M) if(!M) @@ -99,6 +105,8 @@ GLOBAL_LIST_EMPTY(antagonists) clear_antag_moodies() if(owner) LAZYREMOVE(owner.antag_datums, src) + for(var/A in skill_modifiers) + owner.remove_skill_modifier(GET_SKILL_MOD_ID(A, type)) if(!silent && owner.current) farewell() var/datum/team/team = get_team() diff --git a/code/modules/antagonists/abductor/abductor.dm b/code/modules/antagonists/abductor/abductor.dm index 44116dbe36..9132288415 100644 --- a/code/modules/antagonists/abductor/abductor.dm +++ b/code/modules/antagonists/abductor/abductor.dm @@ -21,6 +21,7 @@ landmark_type = /obj/effect/landmark/abductor/agent greet_text = "Use your stealth technology and equipment to incapacitate humans for your scientist to retrieve." show_in_antagpanel = TRUE + skill_modifiers = list(/datum/skill_modifier/job/level/wiring) /datum/antagonist/abductor/scientist name = "Abductor Scientist" @@ -29,6 +30,7 @@ landmark_type = /obj/effect/landmark/abductor/scientist greet_text = "Use your experimental console and surgical equipment to monitor your agent and experiment upon abducted humans." show_in_antagpanel = TRUE + skill_modifiers = list(/datum/skill_modifier/job/affinity/surgery) /datum/antagonist/abductor/create_team(datum/team/abductor_team/new_team) if(!new_team) diff --git a/code/modules/antagonists/clockcult/clockcult.dm b/code/modules/antagonists/clockcult/clockcult.dm index a730b52cc1..b6ed7dfe65 100644 --- a/code/modules/antagonists/clockcult/clockcult.dm +++ b/code/modules/antagonists/clockcult/clockcult.dm @@ -5,6 +5,7 @@ antagpanel_category = "Clockcult" job_rank = ROLE_SERVANT_OF_RATVAR antag_moodlet = /datum/mood_event/cult + skill_modifiers = list(/datum/skill_modifier/job/level/wiring) var/datum/action/innate/hierophant/hierophant_network = new threat = 3 var/datum/team/clockcult/clock_team diff --git a/code/modules/antagonists/ert/ert.dm b/code/modules/antagonists/ert/ert.dm index bda1fbabe6..1d773627c7 100644 --- a/code/modules/antagonists/ert/ert.dm +++ b/code/modules/antagonists/ert/ert.dm @@ -51,6 +51,7 @@ /datum/antagonist/ert/engineer role = "Engineer" outfit = /datum/outfit/ert/engineer + skill_modifiers = list(/datum/skill_modifier/job/level/wiring) /datum/antagonist/ert/engineer/amber outfit = /datum/outfit/ert/engineer/alert @@ -61,6 +62,7 @@ /datum/antagonist/ert/medic role = "Medical Officer" outfit = /datum/outfit/ert/medic + skill_modifiers = list(/datum/skill_modifier/job/affinity/surgery) /datum/antagonist/ert/medic/amber outfit = /datum/outfit/ert/medic/alert diff --git a/code/modules/antagonists/nukeop/nukeop.dm b/code/modules/antagonists/nukeop/nukeop.dm index 7510ad6997..454cde6d72 100644 --- a/code/modules/antagonists/nukeop/nukeop.dm +++ b/code/modules/antagonists/nukeop/nukeop.dm @@ -5,6 +5,7 @@ job_rank = ROLE_OPERATIVE antag_moodlet = /datum/mood_event/focused threat = 10 + skill_modifiers = list(/datum/skill_modifier/job/level/wiring) var/datum/team/nuclear/nuke_team var/always_new_team = FALSE //If not assigned a team by default ops will try to join existing ones, set this to TRUE to always create new team. var/send_to_spawnpoint = TRUE //Should the user be moved to default spawnpoint. diff --git a/code/modules/antagonists/traitor/datum_traitor.dm b/code/modules/antagonists/traitor/datum_traitor.dm index 1d30cdbf77..4422f2f174 100644 --- a/code/modules/antagonists/traitor/datum_traitor.dm +++ b/code/modules/antagonists/traitor/datum_traitor.dm @@ -4,6 +4,7 @@ antagpanel_category = "Traitor" job_rank = ROLE_TRAITOR antag_moodlet = /datum/mood_event/focused + skill_modifiers = list(/datum/skill_modifier/job/level/wiring/basic) var/special_role = ROLE_TRAITOR var/employer = "The Syndicate" var/give_objectives = TRUE diff --git a/code/modules/mob/living/brain/brain_item.dm b/code/modules/mob/living/brain/brain_item.dm index 90621ecd3f..6d3bf648f6 100644 --- a/code/modules/mob/living/brain/brain_item.dm +++ b/code/modules/mob/living/brain/brain_item.dm @@ -51,6 +51,12 @@ var/datum/brain_trauma/BT = X BT.owner = owner BT.on_gain() + if(damage > BRAIN_DAMAGE_MILD) + var/datum/skill_modifier/S + ADD_SKILL_MODIFIER_BODY(/datum/skill_modifier/brain_damage, null, C, S) + if(damage > BRAIN_DAMAGE_SEVERE) + var/datum/skill_modifier/S + ADD_SKILL_MODIFIER_BODY(/datum/skill_modifier/heavy_brain_damage, null, C, S) //Update the body's icon so it doesnt appear debrained anymore C.update_hair() @@ -66,6 +72,8 @@ if((!QDELETED(src) || C) && !no_id_transfer) transfer_identity(C) if(C) + REMOVE_SKILL_MODIFIER_BODY(/datum/skill_modifier/brain_damage, null, C) + REMOVE_SKILL_MODIFIER_BODY(/datum/skill_modifier/heavy_brain_damage, null, C) C.update_hair() /obj/item/organ/brain/prepare_eat() @@ -219,31 +227,6 @@ Insert(C) else ..() -/* TO BE REMOVED, KEPT IN CASE OF BUGS -/obj/item/organ/brain/proc/get_brain_damage() - var/brain_damage_threshold = max_integrity * BRAIN_DAMAGE_INTEGRITY_MULTIPLIER - var/offset_integrity = obj_integrity - (max_integrity - brain_damage_threshold) - . = round((1 - (offset_integrity / brain_damage_threshold)) * BRAIN_DAMAGE_DEATH, DAMAGE_PRECISION) - -/obj/item/organ/brain/proc/adjust_brain_damage(amount, maximum) - var/adjusted_amount - if(amount >= 0 && maximum) - var/brainloss = get_brain_damage() - var/new_brainloss = clamp(brainloss + amount, 0, maximum) - if(brainloss > new_brainloss) //brainloss is over the cap already - return 0 - adjusted_amount = new_brainloss - brainloss - else - adjusted_amount = amount - - adjusted_amount = round(adjusted_amount * BRAIN_DAMAGE_INTEGRITY_MULTIPLIER, DAMAGE_PRECISION) - if(adjusted_amount) - if(adjusted_amount >= DAMAGE_PRECISION) - take_damage(adjusted_amount) - else if(adjusted_amount <= -DAMAGE_PRECISION) - obj_integrity = min(max_integrity, obj_integrity-adjusted_amount) - . = adjusted_amount -*/ /obj/item/organ/brain/applyOrganDamage(var/d, var/maximum = maxHealth) . = ..() @@ -261,18 +244,28 @@ . = ..() //if we're not more injured than before, return without gambling for a trauma if(damage <= prev_damage) + if(damage < prev_damage && owner) + if(prev_damage > BRAIN_DAMAGE_MILD && damage <= BRAIN_DAMAGE_MILD) + REMOVE_SKILL_MODIFIER_BODY(/datum/skill_modifier/brain_damage, null, owner) + if(prev_damage > BRAIN_DAMAGE_SEVERE && damage <= BRAIN_DAMAGE_SEVERE) + REMOVE_SKILL_MODIFIER_BODY(/datum/skill_modifier/heavy_brain_damage, null, owner) return damage_delta = damage - prev_damage if(damage > BRAIN_DAMAGE_MILD) if(prob(damage_delta * (1 + max(0, (damage - BRAIN_DAMAGE_MILD)/100)))) //Base chance is the hit damage; for every point of damage past the threshold the chance is increased by 1% //learn how to do your bloody math properly goddamnit gain_trauma_type(BRAIN_TRAUMA_MILD) + if(prev_damage <= BRAIN_DAMAGE_MILD && owner) + var/datum/skill_modifier/S + ADD_SKILL_MODIFIER_BODY(/datum/skill_modifier/brain_damage, null, owner, S) if(damage > BRAIN_DAMAGE_SEVERE) if(prob(damage_delta * (1 + max(0, (damage - BRAIN_DAMAGE_SEVERE)/100)))) //Base chance is the hit damage; for every point of damage past the threshold the chance is increased by 1% if(prob(20)) gain_trauma_type(BRAIN_TRAUMA_SPECIAL) else gain_trauma_type(BRAIN_TRAUMA_SEVERE) - + if(prev_damage <= BRAIN_DAMAGE_SEVERE && owner) + var/datum/skill_modifier/S + ADD_SKILL_MODIFIER_BODY(/datum/skill_modifier/heavy_brain_damage, null, owner, S) if (owner) if(owner.stat < UNCONSCIOUS) //conscious or soft-crit var/brain_message diff --git a/code/modules/surgery/surgery_step.dm b/code/modules/surgery/surgery_step.dm index 57661901ae..e287b38ca1 100644 --- a/code/modules/surgery/surgery_step.dm +++ b/code/modules/surgery/surgery_step.dm @@ -57,10 +57,11 @@ surgery.step_in_progress = FALSE return FALSE if(tool) - speed_mod = tool.toolspeed + speed_mod = tool.toolspeed //faster tools mean faster surgeries, but also less experience. if(user.mind) - speed_mod = user.mind.action_skill_mod(/datum/skill/numerical/surgery, speed_mod, THRESHOLD_COMPETENT, FALSE) - if(do_after(user, time * speed_mod, target = target)) + speed_mod = user.mind.action_skill_mod(/datum/skill/numerical/surgery, speed_mod, THRESHOLD_UNTRAINED, FALSE) + var/delay = time * speed_mod + if(do_after(user, delay, target = target)) var/prob_chance = 100 if(implement_type) //this means it isn't a require hand or any item step. prob_chance = implements[implement_type] @@ -68,7 +69,10 @@ if((prob(prob_chance) || (iscyborg(user) && !silicons_obey_prob)) && chem_check(target) && !try_to_fail) if(success(user, target, target_zone, tool, surgery)) - user.mind?.auto_gain_experience(/datum/skill/numerical/surgery, SKILL_GAIN_SURGERY_PER_STEP) + var/multi = (delay/SKILL_GAIN_DELAY_DIVISOR) + if(repeatable) + multi *= 0.5 //Spammable surgeries award less experience. + user.mind?.auto_gain_experience(/datum/skill/numerical/surgery, SKILL_GAIN_SURGERY_PER_STEP * multi) advance = TRUE else if(failure(user, target, target_zone, tool, surgery)) diff --git a/tgstation.dme b/tgstation.dme index 0d14ab1254..a675b2620a 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -595,6 +595,7 @@ #include "code\datums\skills\medical.dm" #include "code\datums\skills\modifiers\job.dm" #include "code\datums\skills\modifiers\mood.dm" +#include "code\datums\skills\modifiers\organs.dm" #include "code\datums\status_effects\buffs.dm" #include "code\datums\status_effects\debuffs.dm" #include "code\datums\status_effects\gas.dm" From 6696560656da7064683a161c8204a92d5bfaa60d Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Thu, 21 May 2020 03:43:14 +0200 Subject: [PATCH 093/103] slendermen fix. (#12303) * slendermen fix. * Whops * Update dwarfism.dm --- code/__DEFINES/dcs/signals.dm | 3 ++ code/datums/elements/dwarfism.dm | 42 +++++++++++++++++++ code/datums/mutations/_mutations.dm | 3 +- code/datums/mutations/body.dm | 2 +- .../carbon/human/species_types/dwarves.dm | 3 +- tgstation.dme | 1 + 6 files changed, 50 insertions(+), 4 deletions(-) create mode 100644 code/datums/elements/dwarfism.dm diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index 045f9b74e3..d78cecf9b1 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -318,6 +318,9 @@ #define COMSIG_SPECIES_GAIN "species_gain" //from datum/species/on_species_gain(): (datum/species/new_species, datum/species/old_species) #define COMSIG_SPECIES_LOSS "species_loss" //from datum/species/on_species_loss(): (datum/species/lost_species) +// /datum/mutation signals +#define COMSIG_HUMAN_MUTATION_LOSS "human_mutation_loss" //from datum/mutation/human/on_losing(): (datum/mutation/human/lost_mutation) + /*******Component Specific Signals*******/ //Janitor #define COMSIG_TURF_IS_WET "check_turf_wet" //(): Returns bitflags of wet values. diff --git a/code/datums/elements/dwarfism.dm b/code/datums/elements/dwarfism.dm new file mode 100644 index 0000000000..fefbe4fbe7 --- /dev/null +++ b/code/datums/elements/dwarfism.dm @@ -0,0 +1,42 @@ +#define SHORT 4/5 +#define TALL 5/4 + +///Very similar to squish, but for dwarves and shorties +/datum/element/dwarfism + element_flags = ELEMENT_DETACH|ELEMENT_BESPOKE + id_arg_index = 2 + var/comsig + var/list/attached_targets = list() + +/datum/element/dwarfism/Attach(datum/target, comsig, comsig_target) + . = ..() + if(!isliving(target)) + return ELEMENT_INCOMPATIBLE + + src.comsig = comsig + + var/mob/living/L = target + if(L.lying != 0) + L.transform = L.transform.Scale(SHORT, 1) + else + L.transform = L.transform.Scale(1, SHORT) + attached_targets[target] = comsig_target + RegisterSignal(target, comsig, .proc/check_loss) //Second arg of the signal will be checked against the comsig_target. + +/datum/element/dwarfism/proc/check_loss(mob/living/L, comsig_target) + if(attached_targets[L] == comsig_target) + Detach(L) + +/datum/element/dwarfism/Detach(mob/living/L) + . = ..() + if(QDELETED(L)) + return + if(L.lying != 0) + L.transform = L.transform.Scale(TALL, 1) + else + L.transform = L.transform.Scale(1, TALL) + UnregisterSignal(L, comsig) + attached_targets -= L + +#undef SHORT +#undef TALL diff --git a/code/datums/mutations/_mutations.dm b/code/datums/mutations/_mutations.dm index 9edaa7605c..db739c5100 100644 --- a/code/datums/mutations/_mutations.dm +++ b/code/datums/mutations/_mutations.dm @@ -116,7 +116,8 @@ owner.apply_overlay(layer_used) if(power) owner.RemoveSpell(power) - qdel(src) + qdel(power) + SEND_SIGNAL(owner, COMSIG_HUMAN_MUTATION_LOSS, src) return 0 return 1 diff --git a/code/datums/mutations/body.dm b/code/datums/mutations/body.dm index 9f8c74e2db..7b438f44db 100644 --- a/code/datums/mutations/body.dm +++ b/code/datums/mutations/body.dm @@ -82,7 +82,7 @@ if(..()) return ADD_TRAIT(owner, TRAIT_DWARF, GENETIC_MUTATION) - owner.transform = owner.transform.Scale(1, 0.8) + AddElement(/datum/element/dwarfism, COMSIG_HUMAN_MUTATION_LOSS, src) passtable_on(owner, GENETIC_MUTATION) owner.visible_message("[owner] suddenly shrinks!", "Everything around you seems to grow..") diff --git a/code/modules/mob/living/carbon/human/species_types/dwarves.dm b/code/modules/mob/living/carbon/human/species_types/dwarves.dm index 8a1794a140..0a44891a70 100644 --- a/code/modules/mob/living/carbon/human/species_types/dwarves.dm +++ b/code/modules/mob/living/carbon/human/species_types/dwarves.dm @@ -33,12 +33,11 @@ GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) // var/mob/living/carbon/human/H = C H.facial_hair_style = dwarf_hair H.update_hair() - H.transform = H.transform.Scale(1, 0.8) //We use scale, and yeah. Dwarves can become gnomes with DWARFISM. + AddElement(/datum/element/dwarfism, COMSIG_SPECIES_LOSS, src) RegisterSignal(C, COMSIG_MOB_SAY, .proc/handle_speech) //We register handle_speech is being used. /datum/species/dwarf/on_species_loss(mob/living/carbon/H, datum/species/new_species) . = ..() - H.transform = H.transform.Scale(1, 1.25) //And we undo it. UnregisterSignal(H, COMSIG_MOB_SAY) //We register handle_speech is not being used. //Dwarf Name stuff diff --git a/tgstation.dme b/tgstation.dme index a675b2620a..3a34d8bd2b 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -528,6 +528,7 @@ #include "code\datums\elements\cleaning.dm" #include "code\datums\elements\dusts_on_catatonia.dm" #include "code\datums\elements\dusts_on_leaving_area.dm" +#include "code\datums\elements\dwarfism.dm" #include "code\datums\elements\earhealing.dm" #include "code\datums\elements\firestacker.dm" #include "code\datums\elements\flavor_text.dm" From 3ac61c07041ef1a98f6df71a0a3d7ee4a4126b79 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Thu, 21 May 2020 03:45:36 +0200 Subject: [PATCH 094/103] Porting tg painting code. (#12305) * Porting tg painting code. * yes. --- .../map_files/Deltastation/DeltaStation2.dmm | 425 +++++++++--------- code/__DEFINES/rust_g.dm | 1 + code/__DEFINES/vv.dm | 3 + code/controllers/subsystem/persistence.dm | 19 + code/datums/components/art.dm | 56 +++ .../mood_events/generic_negative_events.dm | 6 +- .../mood_events/generic_positive_events.dm | 14 + code/game/objects/items/crayons.dm | 27 +- .../items/stacks/sheets/sheet_types.dm | 4 + code/game/objects/items/weaponry.dm | 14 + code/game/objects/structures/artstuff.dm | 419 +++++++++++++---- code/game/objects/structures/statues.dm | 27 +- code/modules/photography/photos/frame.dm | 2 + code/modules/tgui/states/physical.dm | 27 +- icons/obj/artstuff.dmi | Bin 435 -> 908 bytes icons/obj/decals.dmi | Bin 28750 -> 35578 bytes rust_g.dll | Bin 1227776 -> 4815872 bytes tgstation.dme | 1 + tgui-next/packages/tgui/interfaces/Canvas.js | 90 ++++ tgui-next/packages/tgui/public/tgui.bundle.js | 4 +- tgui-next/packages/tgui/routes.js | 5 + 21 files changed, 831 insertions(+), 313 deletions(-) create mode 100644 code/datums/components/art.dm create mode 100644 tgui-next/packages/tgui/interfaces/Canvas.js diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 0217ff21b9..bac70021b1 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -23646,7 +23646,10 @@ /area/crew_quarters/bar/atrium) "aTH" = ( /obj/structure/table/wood, -/obj/item/reagent_containers/food/drinks/coffee, +/obj/item/reagent_containers/food/drinks/coffee{ + pixel_x = -4; + pixel_y = 2 + }, /obj/effect/turf_decal/tile/red{ dir = 1 }, @@ -60673,10 +60676,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, /obj/machinery/door/firedoor, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -60691,10 +60690,6 @@ dir = 4 }, /obj/machinery/light, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -26 - }, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, @@ -62744,43 +62739,36 @@ /turf/open/floor/plasteel/dark, /area/library) "cct" = ( -/obj/structure/table/wood, -/obj/item/flashlight/lamp, -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_x = -32 +/obj/structure/table/wood/fancy, +/obj/machinery/door/window{ + name = "Secure Art Exhibition" }, -/obj/item/radio/intercom{ - name = "Station Intercom"; - pixel_y = 26 - }, -/turf/open/floor/plasteel/dark, -/area/library) -"ccu" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/table/wood, -/obj/item/folder, -/obj/item/pen, -/obj/machinery/newscaster{ +/obj/structure/sign/painting/library_secure{ pixel_y = 32 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/carpet, +/area/library) +"ccu" = ( +/obj/structure/table/wood/fancy, +/obj/structure/window/reinforced{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/structure/window/reinforced, +/obj/structure/sign/painting/library_secure{ + pixel_y = 32 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/carpet, /area/library) "ccv" = ( -/obj/machinery/computer/libraryconsole, -/obj/structure/table/wood, -/turf/open/floor/plasteel/dark, +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/obj/machinery/camera{ + c_tag = "Library - Aft"; + dir = 2; + name = "library camera" + }, +/turf/open/floor/wood, /area/library) "ccw" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ @@ -63922,7 +63910,7 @@ /obj/structure/chair/office/dark{ dir = 8 }, -/obj/effect/landmark/start/librarian, +/obj/effect/landmark/start/assistant, /turf/open/floor/plasteel/dark, /area/library) "ceg" = ( @@ -63935,71 +63923,21 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/library) -"cei" = ( -/obj/structure/chair/comfy/black{ - dir = 8 - }, -/obj/machinery/newscaster{ - pixel_x = 32 - }, -/obj/machinery/camera{ - c_tag = "Library - Fore"; - dir = 8; - name = "library camera" - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/grimy, /area/library) "cej" = ( -/obj/machinery/photocopier, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/library) -"cek" = ( -/obj/structure/chair/office/dark{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/dark, +/obj/effect/landmark/start/librarian, +/turf/open/floor/plasteel/grimy, /area/library) "cel" = ( -/obj/structure/table/wood, -/obj/item/paper_bin, -/obj/item/pen, -/obj/machinery/status_display/evac{ - pixel_x = 32 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/structure/chair/sofa/right{ + icon_state = "sofaend_right"; dir = 8 }, -/turf/open/floor/plasteel/dark, +/obj/structure/sign/painting/library{ + pixel_x = 32 + }, +/turf/open/floor/wood, /area/library) "cem" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ @@ -65176,34 +65114,16 @@ }, /turf/open/floor/plasteel/grimy, /area/library) -"cfY" = ( -/obj/item/twohanded/required/kirbyplants/random, -/obj/machinery/light/small{ - dir = 4 +"cfZ" = ( +/obj/item/radio/intercom{ + name = "Station Intercom"; + pixel_x = -26 + }, +/obj/structure/sign/painting/library{ + pixel_y = -32 }, /turf/open/floor/wood, /area/library) -"cfZ" = ( -/obj/structure/sign/warning/nosmoking, -/turf/closed/wall, -/area/library) -"cga" = ( -/obj/machinery/door/morgue{ - name = "Private Study" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/library) "cgb" = ( /obj/structure/sign/plaques/kiddie/library{ pixel_x = -32 @@ -66351,61 +66271,28 @@ /obj/item/twohanded/required/kirbyplants/random, /turf/open/floor/wood, /area/library) -"chQ" = ( -/obj/machinery/bookbinder, -/turf/open/floor/wood, -/area/library) -"chR" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/obj/structure/bookcase/random, -/turf/open/floor/wood, -/area/library) -"chS" = ( -/obj/structure/chair/comfy/brown, -/obj/effect/landmark/start/assistant, -/turf/open/floor/wood, -/area/library) -"chT" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/library) -"chU" = ( -/obj/machinery/photocopier, -/obj/structure/extinguisher_cabinet{ - pixel_y = 32 - }, -/turf/open/floor/wood, -/area/library) "chV" = ( -/obj/machinery/light{ - dir = 1 - }, /obj/machinery/newscaster{ - pixel_y = 32 + pixel_x = -32 }, -/obj/structure/bookcase/manuals/research_and_development, -/obj/machinery/camera{ - c_tag = "Library"; - name = "library camera" - }, -/turf/open/floor/wood, +/turf/open/floor/plasteel/dark, /area/library) "chW" = ( -/obj/structure/chair/comfy/brown, -/obj/item/radio/intercom{ - name = "Station Intercom"; - pixel_y = 26 - }, -/turf/open/floor/wood, +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/grimy, /area/library) "chX" = ( -/obj/machinery/vending/coffee, -/turf/open/floor/wood, +/obj/structure/table/wood, +/obj/item/newspaper{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/reagent_containers/food/drinks/coffee{ + pixel_x = -4; + pixel_y = 2 + }, +/turf/open/floor/plasteel/dark, /area/library) "chY" = ( /obj/machinery/door/poddoor/shutters/preopen{ @@ -67294,10 +67181,6 @@ }, /turf/open/floor/plasteel/grimy, /area/library) -"cju" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/grimy, -/area/library) "cjv" = ( /obj/machinery/door/airlock/public/glass{ name = "Library Access" @@ -68920,10 +68803,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/wood, /area/library) -"cmv" = ( -/obj/machinery/holopad, -/turf/open/floor/wood, -/area/library) "cmw" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/extinguisher_cabinet{ @@ -69800,7 +69679,7 @@ /turf/open/floor/wood, /area/library) "cnP" = ( -/obj/structure/bookcase/manuals/medical, +/obj/structure/bookcase/random, /turf/open/floor/wood, /area/library) "cnQ" = ( @@ -74568,8 +74447,6 @@ /area/library) "cwr" = ( /obj/structure/easel, -/obj/item/canvas/twentythreeXnineteen, -/obj/item/canvas/twentythreeXtwentythree, /obj/item/canvas/twentythreeXtwentythree, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -78500,7 +78377,10 @@ pixel_x = 3; pixel_y = 3 }, -/obj/item/newspaper, +/obj/item/newspaper{ + pixel_x = 3; + pixel_y = 3 + }, /obj/machinery/status_display/evac{ pixel_x = -32 }, @@ -80213,7 +80093,10 @@ pixel_x = 7; pixel_y = 11 }, -/obj/item/newspaper, +/obj/item/newspaper{ + pixel_x = 3; + pixel_y = 3 + }, /obj/item/pen/red, /turf/open/floor/wood{ icon_state = "wood-broken2" @@ -110110,7 +109993,10 @@ pixel_x = 3; pixel_y = 3 }, -/obj/item/newspaper, +/obj/item/newspaper{ + pixel_x = 3; + pixel_y = 3 + }, /turf/open/floor/plating, /area/security/detectives_office/private_investigators_office) "dFu" = ( @@ -110973,7 +110859,10 @@ /area/crew_quarters/theatre/abandoned) "dGH" = ( /obj/structure/table/wood, -/obj/item/newspaper, +/obj/item/newspaper{ + pixel_x = 3; + pixel_y = 3 + }, /obj/item/clothing/head/bowler, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -125489,6 +125378,17 @@ /obj/structure/closet/crate/coffin, /turf/open/floor/plating, /area/chapel/office) +"gjg" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) "gmj" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall/r_wall, @@ -125557,6 +125457,12 @@ }, /turf/open/floor/plasteel/dark, /area/science/mixing) +"gOM" = ( +/obj/structure/sign/painting/library{ + pixel_y = -32 + }, +/turf/open/floor/wood, +/area/library) "gPv" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -125856,6 +125762,12 @@ /obj/item/integrated_circuit_printer, /turf/open/floor/plasteel/white/side, /area/science/circuit) +"jqs" = ( +/obj/structure/sign/painting/library{ + pixel_y = 32 + }, +/turf/open/floor/wood, +/area/library) "jqM" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ @@ -125974,6 +125886,17 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, /area/science/mixing) +"jVB" = ( +/obj/structure/table/wood/fancy, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/obj/structure/sign/painting/library_secure{ + pixel_y = 32 + }, +/turf/open/floor/carpet, +/area/library) "kam" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/conveyor{ @@ -126386,6 +126309,12 @@ }, /turf/open/floor/plasteel/white, /area/science/research) +"mRS" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/wood, +/area/library) "mWZ" = ( /obj/machinery/atmospherics/components/binary/pump, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -126425,6 +126354,17 @@ /obj/machinery/atmospherics/pipe/simple/general/hidden, /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) +"oek" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Library - Aft"; + dir = 2; + name = "library camera" + }, +/turf/open/floor/plasteel/grimy, +/area/library) "oHk" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -126640,6 +126580,10 @@ }, /turf/open/floor/plating, /area/science/research/abandoned) +"pLF" = ( +/obj/machinery/light, +/turf/open/floor/wood, +/area/library) "pQm" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ @@ -126929,6 +126873,15 @@ "tCh" = ( /turf/closed/wall, /area/science/misc_lab) +"tDx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/library) "tMk" = ( /turf/open/floor/plasteel/white/side{ dir = 10 @@ -127085,6 +127038,16 @@ }, /turf/open/floor/plating, /area/engine/atmos) +"vLX" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/sign/plaques/kiddie/library{ + pixel_x = 32; + pixel_y = 32 + }, +/turf/open/floor/plasteel/grimy, +/area/library) "wei" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, @@ -127104,6 +127067,19 @@ /obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel/white, /area/science/misc_lab) +"wEg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) "wFu" = ( /obj/structure/lattice, /obj/structure/grille, @@ -127292,6 +127268,13 @@ /obj/structure/fans/tiny/invisible, /turf/open/space/basic, /area/space) +"yin" = ( +/obj/structure/chair/sofa/left{ + icon_state = "sofaend_left"; + dir = 8 + }, +/turf/open/floor/wood, +/area/library) "yiv" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/neutral{ @@ -158292,7 +158275,7 @@ ccq ceg ccq chO -ceg +vLX ckQ cmr ccq @@ -158545,11 +158528,11 @@ bUt bWD bYM caH -ccr +cwq ceh -cfY -chP -cjt +caG +caG +oek ckR cms cnO @@ -158800,12 +158783,12 @@ bDl bDl bUu bWE -bYO +gjg caG -ccs -cei +mRS +cxV cfZ -chQ +caG cjt ckR cms @@ -159059,11 +159042,11 @@ bUv bWC bYR caG +jqs +cxV +gOM caG -caG -caG -chR -cjt +tDx ckR cmt cmt @@ -159316,10 +159299,10 @@ bUq bWI bYM caG -cct -cej +jqs +cxV +gOM caG -chS cjt ckR cms @@ -159573,11 +159556,11 @@ bUq bWD bYM caG -ccu -cek -cga -chT -cju +jqs +cxV +gOM +caG +cjt ckR cms cnQ @@ -159831,9 +159814,9 @@ bWD bYM caG ccv -cel +cxV +pLF caG -chU cjt ckR xuu @@ -160087,9 +160070,9 @@ bUq bWD bYS caG -caG -caG -caG +jVB +cxV +cmt chV cjt ckT @@ -160346,7 +160329,7 @@ bYM caG cct cej -caG +cxV chW cjt ckR @@ -160602,12 +160585,12 @@ bWD bYM caG ccu -cek -cga -chT -cju +cmt +cmt +ccr +cjt ckR -cmv +cmt cnU cpy cqT @@ -160856,11 +160839,11 @@ bQu bQv bUr bWD -bYM +wEg caG -ccv +chP cel -caG +yin chX cjt ckR diff --git a/code/__DEFINES/rust_g.dm b/code/__DEFINES/rust_g.dm index ccd5b92c79..d7b82c6c8e 100644 --- a/code/__DEFINES/rust_g.dm +++ b/code/__DEFINES/rust_g.dm @@ -2,6 +2,7 @@ #define RUST_G "rust_g" #define rustg_dmi_strip_metadata(fname) call(RUST_G, "dmi_strip_metadata")(fname) +#define rustg_dmi_create_png(fname,width,height,data) call(RUST_G, "dmi_create_png")(fname,width,height,data) #define rustg_git_revparse(rev) call(RUST_G, "rg_git_revparse")(rev) #define rustg_git_commit_date(rev) call(RUST_G, "rg_git_commit_date")(rev) diff --git a/code/__DEFINES/vv.dm b/code/__DEFINES/vv.dm index a364e0b93c..889e1bb1c0 100644 --- a/code/__DEFINES/vv.dm +++ b/code/__DEFINES/vv.dm @@ -122,3 +122,6 @@ // misc #define VV_HK_SPACEVINE_PURGE "spacevine_purge" + +// paintings +#define VV_HK_REMOVE_PAINTING "remove_painting" diff --git a/code/controllers/subsystem/persistence.dm b/code/controllers/subsystem/persistence.dm index 0a60c6e5d3..cd577e4ac6 100644 --- a/code/controllers/subsystem/persistence.dm +++ b/code/controllers/subsystem/persistence.dm @@ -24,6 +24,8 @@ SUBSYSTEM_DEF(persistence) var/list/saved_votes = list() var/list/obj/structure/sign/picture_frame/photo_frames var/list/obj/item/storage/photo_album/photo_albums + var/list/obj/structure/sign/painting/painting_frames = list() + var/list/paintings = list() /datum/controller/subsystem/persistence/Initialize() LoadSatchels() @@ -265,6 +267,7 @@ SUBSYSTEM_DEF(persistence) CollectAntagReputation() SaveRandomizedRecipes() SavePanicBunker() + SavePaintings() /datum/controller/subsystem/persistence/proc/LoadPanicBunker() var/bunker_path = file("data/bunker_passthrough.json") @@ -528,3 +531,19 @@ SUBSYSTEM_DEF(persistence) file_data["data"] = saved_votes[ckey] fdel(json_file) WRITE_FILE(json_file, json_encode(file_data)) + +/datum/controller/subsystem/persistence/proc/LoadPaintings() + var/json_file = file("data/paintings.json") + if(fexists(json_file)) + paintings = json_decode(file2text(json_file)) + + for(var/obj/structure/sign/painting/P in painting_frames) + P.load_persistent() + +/datum/controller/subsystem/persistence/proc/SavePaintings() + for(var/obj/structure/sign/painting/P in painting_frames) + P.save_persistent() + + var/json_file = file("data/paintings.json") + fdel(json_file) + WRITE_FILE(json_file, json_encode(paintings)) diff --git a/code/datums/components/art.dm b/code/datums/components/art.dm new file mode 100644 index 0000000000..f6d3cb6c61 --- /dev/null +++ b/code/datums/components/art.dm @@ -0,0 +1,56 @@ + +#define BAD_ART 12.5 +#define GOOD_ART 25 +#define GREAT_ART 50 + +/datum/component/art + var/impressiveness = 0 + +/datum/component/art/Initialize(impress) + impressiveness = impress + if(isobj(parent)) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/on_obj_examine) + else + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/on_other_examine) + if(isstructure(parent)) + RegisterSignal(parent, COMSIG_ATOM_ATTACK_HAND, .proc/on_attack_hand) + if(isitem(parent)) + RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, .proc/apply_moodlet) + +/datum/component/art/proc/apply_moodlet(mob/M, impress) + M.visible_message("[M] stops and looks intently at [parent].", \ + "You stop to take in [parent].") + switch(impress) + if (0 to BAD_ART) + SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "artbad", /datum/mood_event/artbad) + if (BAD_ART to GOOD_ART) + SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "artok", /datum/mood_event/artok) + if (GOOD_ART to GREAT_ART) + SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "artgood", /datum/mood_event/artgood) + if(GREAT_ART to INFINITY) + SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "artgreat", /datum/mood_event/artgreat) + + +/datum/component/art/proc/on_other_examine(datum/source, mob/M) + apply_moodlet(M, impressiveness) + +/datum/component/art/proc/on_obj_examine(datum/source, mob/M) + var/obj/O = parent + apply_moodlet(M, impressiveness *(O.obj_integrity/O.max_integrity)) + +/datum/component/art/proc/on_attack_hand(datum/source, mob/M) + to_chat(M, "You start examining [parent]...") + if(!do_after(M, 20, target = parent)) + return + on_obj_examine(source, M) + +/datum/component/art/rev + +/datum/component/art/rev/apply_moodlet(mob/M, impress) + M.visible_message("[M] stops to inspect [parent].", \ + "You take in [parent], inspecting the fine craftsmanship of the proletariat.") + + if(M.mind && M.mind.has_antag_datum(/datum/antagonist/rev)) + SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "artgreat", /datum/mood_event/artgreat) + else + SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "artbad", /datum/mood_event/artbad) diff --git a/code/datums/mood_events/generic_negative_events.dm b/code/datums/mood_events/generic_negative_events.dm index 1464927c3a..c56425b074 100644 --- a/code/datums/mood_events/generic_negative_events.dm +++ b/code/datums/mood_events/generic_negative_events.dm @@ -248,7 +248,7 @@ description = "Something I recently ate was horrifyingly disgusting.\n" mood_change = -5 timeout = 5 MINUTES - + /datum/mood_event/nanite_sadness description = "+++++++HAPPINESS SUPPRESSION+++++++\n" mood_change = -7 @@ -256,3 +256,7 @@ /datum/mood_event/nanite_sadness/add_effects(message) description = "+++++++[message]+++++++\n" +/datum/mood_event/artbad + description = "I've produced better art than that from my ass.\n" + mood_change = -2 + timeout = 1200 diff --git a/code/datums/mood_events/generic_positive_events.dm b/code/datums/mood_events/generic_positive_events.dm index 1e9a53cf57..95177f6869 100644 --- a/code/datums/mood_events/generic_positive_events.dm +++ b/code/datums/mood_events/generic_positive_events.dm @@ -182,3 +182,17 @@ description = "What a peculiar emblem. It makes me feel hopeful for my future.\n" mood_change = 5 +/datum/mood_event/artok + description = "It's nice to see people are making art around here.\n" + mood_change = 2 + timeout = 2 MINUTES + +/datum/mood_event/artgood + description = "What a thought-provoking piece of art. I'll remember that for a while.\n" + mood_change = 3 + timeout = 3 MINUTES + +/datum/mood_event/artgreat + description = "That work of art was so great it made me believe in the goodness of humanity. Says a lot in a place like this.\n" + mood_change = 4 + timeout = 4 MINUTES diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index f60edf2917..a4ed8dedd1 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -91,6 +91,11 @@ refill() +/obj/item/toy/crayon/examine(mob/user) + . = ..() + if(can_change_colour) + . += "Ctrl-click [src] while it's on your person to quickly recolour it." + /obj/item/toy/crayon/proc/refill() if(charges == -1) charges_left = 100 @@ -160,6 +165,12 @@ update_icon() return TRUE +/obj/item/toy/crayon/CtrlClick(mob/user) + if(can_change_colour && !isturf(loc) && user.canUseTopic(src, BE_CLOSE, ismonkey(user))) + select_colour(user) + else + return ..() + /obj/item/toy/crayon/proc/staticDrawables() . = list() @@ -237,14 +248,7 @@ else paint_mode = PAINT_NORMAL if("select_colour") - if(can_change_colour) - var/chosen_colour = input(usr,"","Choose Color",paint_color) as color|null - - if (!isnull(chosen_colour)) - paint_color = chosen_colour - . = TRUE - else - . = FALSE + . = can_change_colour && select_colour(usr) if("enter_text") var/txt = stripped_input(usr,"Choose what to write.", "Scribbles",default = text_buffer) @@ -254,6 +258,13 @@ drawtype = "a" update_icon() +/obj/item/toy/crayon/proc/select_colour(mob/user) + var/chosen_colour = input(user, "", "Choose Color", paint_color) as color|null + if (!isnull(chosen_colour) && user.canUseTopic(src, BE_CLOSE, ismonkey(user))) + paint_color = chosen_colour + return TRUE + return FALSE + /obj/item/toy/crayon/proc/crayon_text_strip(text) var/static/regex/crayon_r = new /regex(@"[^\w!?,.=%#&+\/\-]") return replacetext(lowertext(text), crayon_r, "") diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 5f799c2379..aebc5121cd 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -267,6 +267,7 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \ new/datum/stack_recipe("apiary", /obj/structure/beebox, 40, time = 50),\ null, \ new/datum/stack_recipe("picture frame", /obj/item/wallframe/picture, 1, time = 10),\ + new/datum/stack_recipe("painting frame", /obj/item/wallframe/painting, 1, time = 10),\ new/datum/stack_recipe("mortar", /obj/item/reagent_containers/glass/mortar, 3), \ new/datum/stack_recipe("honey frame", /obj/item/honey_frame, 5, time = 10),\ )) @@ -387,6 +388,9 @@ GLOBAL_LIST_INIT(cloth_recipes, list ( \ null, \ new/datum/stack_recipe("blindfold", /obj/item/clothing/glasses/sunglasses/blindfold, 2), \ null, \ + new/datum/stack_recipe("19x19 canvas", /obj/item/canvas/nineteenXnineteen, 3), \ + new/datum/stack_recipe("23x19 canvas", /obj/item/canvas/twentythreeXnineteen, 4), \ + new/datum/stack_recipe("23x23 canvas", /obj/item/canvas/twentythreeXtwentythree, 5), \ )) /obj/item/stack/sheet/cloth diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index d34daf5c75..aa0aa70e03 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -478,6 +478,20 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 throw_range = 2 attack_verb = list("busted") +/obj/item/statuebust/attack_self(mob/living/user) + add_fingerprint(user) + user.examinate(src) + +/obj/item/statuebust/examine(mob/living/user) + . = ..() + if(.) + return + if (!isliving(user)) + return + user.visible_message("[user] stops to admire [src].", \ + "You take in [src], admiring its fine craftsmanship.") + SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "artgood", /datum/mood_event/artgood) + /obj/item/tailclub name = "tail club" desc = "For the beating to death of lizards with their own tails." diff --git a/code/game/objects/structures/artstuff.dm b/code/game/objects/structures/artstuff.dm index 405e697d3b..98f772a116 100644 --- a/code/game/objects/structures/artstuff.dm +++ b/code/game/objects/structures/artstuff.dm @@ -35,101 +35,368 @@ else painting = null - -////////////// -// CANVASES // -////////////// - -#define AMT_OF_CANVASES 4 //Keep this up to date or shit will break. - -//To safe memory on making /icons we cache the blanks.. -GLOBAL_LIST_INIT(globalBlankCanvases, new(AMT_OF_CANVASES)) - /obj/item/canvas name = "canvas" desc = "Draw out your soul on this canvas!" icon = 'icons/obj/artstuff.dmi' icon_state = "11x11" resistance_flags = FLAMMABLE - var/whichGlobalBackup = 1 //List index + var/width = 11 + var/height = 11 + var/list/grid + var/canvas_color = "#ffffff" //empty canvas color + var/ui_x = 400 + var/ui_y = 400 + var/used = FALSE + var/painting_name //Painting name, this is set after framing. + var/finalized = FALSE //Blocks edits + var/author_ckey + var/icon_generated = FALSE + var/icon/generated_icon -/obj/item/canvas/nineteenXnineteen - icon_state = "19x19" - whichGlobalBackup = 2 + // Painting overlay offset when framed + var/framed_offset_x = 11 + var/framed_offset_y = 10 -/obj/item/canvas/twentythreeXnineteen - icon_state = "23x19" - whichGlobalBackup = 3 + pixel_x = 10 + pixel_y = 9 -/obj/item/canvas/twentythreeXtwentythree - icon_state = "23x23" - whichGlobalBackup = 4 - -//HEY YOU -//ARE YOU READING THE CODE FOR CANVASES? -//ARE YOU AWARE THEY CRASH HALF THE SERVER WHEN SOMEONE DRAWS ON THEM... -//...AND NOBODY CAN FIGURE OUT WHY? -//THEN GO ON BRAVE TRAVELER -//TRY TO FIX THEM AND REMOVE THIS CODE /obj/item/canvas/Initialize() - ..() - return INITIALIZE_HINT_QDEL //Delete on creation + . = ..() + reset_grid() -//Find the right size blank canvas -/obj/item/canvas/proc/getGlobalBackup() - . = null - if(GLOB.globalBlankCanvases[whichGlobalBackup]) - . = GLOB.globalBlankCanvases[whichGlobalBackup] - else - var/icon/I = icon(initial(icon),initial(icon_state)) - GLOB.globalBlankCanvases[whichGlobalBackup] = I - . = I +/obj/item/canvas/proc/reset_grid() + grid = new/list(width,height) + for(var/x in 1 to width) + for(var/y in 1 to height) + grid[x][y] = canvas_color +/obj/item/canvas/attack_self(mob/user) + . = ..() + ui_interact(user) +/obj/item/canvas/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, \ + datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) -//One pixel increments -/obj/item/canvas/attackby(obj/item/I, mob/user, params) - //Click info - var/list/click_params = params2list(params) - var/pixX = text2num(click_params["icon-x"]) - var/pixY = text2num(click_params["icon-y"]) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "canvas", name, ui_x, ui_y, master_ui, state) + ui.set_autoupdate(FALSE) + ui.open() - //Should always be true, otherwise you didn't click the object, but let's check because SS13~ - if(!click_params || !click_params["icon-x"] || !click_params["icon-y"]) - return - - //Cleaning one pixel with a soap or rag - if(istype(I, /obj/item/soap) || istype(I, /obj/item/reagent_containers/rag)) - //Pixel info created only when needed - var/icon/masterpiece = icon(icon,icon_state) - var/thePix = masterpiece.GetPixel(pixX,pixY) - var/icon/Ico = getGlobalBackup() - if(!Ico) - qdel(masterpiece) - return - - var/theOriginalPix = Ico.GetPixel(pixX,pixY) - if(thePix != theOriginalPix) //colour changed - DrawPixelOn(theOriginalPix,pixX,pixY) - qdel(masterpiece) - - //Drawing one pixel with a crayon - else if(istype(I, /obj/item/toy/crayon)) - var/obj/item/toy/crayon/C = I - DrawPixelOn(C.paint_color, pixX, pixY) +/obj/item/canvas/attackby(obj/item/I, mob/living/user, params) + if(user.a_intent == INTENT_HELP) + ui_interact(user) else return ..() +/obj/item/canvas/ui_data(mob/user) + . = ..() + .["grid"] = grid + .["name"] = painting_name + .["finalized"] = finalized -//Clean the whole canvas -/obj/item/canvas/attack_self(mob/user) - if(!user) +/obj/item/canvas/examine(mob/user) + . = ..() + ui_interact(user) + +/obj/item/canvas/ui_act(action, params) + . = ..() + if(. || finalized) return - var/icon/blank = getGlobalBackup() - if(blank) - //it's basically a giant etch-a-sketch - icon = blank - user.visible_message("[user] cleans the canvas.","You clean the canvas.") + var/mob/user = usr + switch(action) + if("paint") + var/obj/item/I = user.get_active_held_item() + var/color = get_paint_tool_color(I) + if(!color) + return FALSE + var/x = text2num(params["x"]) + var/y = text2num(params["y"]) + grid[x][y] = color + used = TRUE + update_icon() + . = TRUE + if("finalize") + . = TRUE + if(!finalized) + finalize(user) + +/obj/item/canvas/proc/finalize(mob/user) + finalized = TRUE + author_ckey = user.ckey + generate_proper_overlay() + try_rename(user) + +/obj/item/canvas/update_overlays() + . = ..() + if(!icon_generated) + if(used) + var/mutable_appearance/detail = mutable_appearance(icon,"[icon_state]wip") + detail.pixel_x = 1 + detail.pixel_y = 1 + . += detail + else + var/mutable_appearance/detail = mutable_appearance(generated_icon) + detail.pixel_x = 1 + detail.pixel_y = 1 + . += detail + +/obj/item/canvas/proc/generate_proper_overlay() + if(icon_generated) + return + var/png_filename = "data/paintings/temp_painting.png" + var/result = rustg_dmi_create_png(png_filename,"[width]","[height]",get_data_string()) + if(result) + CRASH("Error generating painting png : [result]") + generated_icon = new(png_filename) + icon_generated = TRUE + update_icon() + +/obj/item/canvas/proc/get_data_string() + var/list/data = list() + for(var/y in 1 to height) + for(var/x in 1 to width) + data += grid[x][y] + return data.Join("") + +//Todo make this element ? +/obj/item/canvas/proc/get_paint_tool_color(obj/item/I) + if(!I) + return + if(istype(I, /obj/item/toy/crayon)) + var/obj/item/toy/crayon/C = I + return C.paint_color + else if(istype(I, /obj/item/pen)) + var/obj/item/pen/P = I + switch(P.colour) + if("black") + return "#000000" + if("blue") + return "#0000ff" + if("red") + return "#ff0000" + return P.colour + else if(istype(I, /obj/item/soap) || istype(I, /obj/item/reagent_containers/rag)) + return canvas_color + +/obj/item/canvas/proc/try_rename(mob/user) + var/new_name = stripped_input(user,"What do you want to name the painting?") + if(!painting_name && new_name && user.canUseTopic(src,BE_CLOSE)) + painting_name = new_name + SStgui.update_uis(src) + +/obj/item/canvas/nineteenXnineteen + icon_state = "19x19" + width = 19 + height = 19 + ui_x = 600 + ui_y = 600 + pixel_x = 6 + pixel_y = 9 + framed_offset_x = 8 + framed_offset_y = 9 + +/obj/item/canvas/twentythreeXnineteen + icon_state = "23x19" + width = 23 + height = 19 + ui_x = 800 + ui_y = 600 + pixel_x = 4 + pixel_y = 10 + framed_offset_x = 6 + framed_offset_y = 8 + +/obj/item/canvas/twentythreeXtwentythree + icon_state = "23x23" + width = 23 + height = 23 + ui_x = 800 + ui_y = 800 + pixel_x = 5 + pixel_y = 9 + framed_offset_x = 5 + framed_offset_y = 6 + +/obj/item/wallframe/painting + name = "painting frame" + desc = "The perfect showcase for your favorite deathtrap memories." + icon = 'icons/obj/decals.dmi' + custom_materials = null + flags_1 = 0 + icon_state = "frame-empty" + result_path = /obj/structure/sign/painting + +/obj/structure/sign/painting + name = "Painting" + desc = "Art or \"Art\"? You decide." + icon = 'icons/obj/decals.dmi' + icon_state = "frame-empty" + buildable_sign = FALSE + var/obj/item/canvas/C + var/persistence_id + +/obj/structure/sign/painting/Initialize(mapload, dir, building) + . = ..() + SSpersistence.painting_frames += src + AddComponent(/datum/component/art, 20) + if(dir) + setDir(dir) + if(building) + pixel_x = (dir & 3)? 0 : (dir == 4 ? -30 : 30) + pixel_y = (dir & 3)? (dir ==1 ? -30 : 30) : 0 + +/obj/structure/sign/painting/Destroy() + . = ..() + SSpersistence.painting_frames -= src + +/obj/structure/sign/painting/attackby(obj/item/I, mob/user, params) + if(!C && istype(I, /obj/item/canvas)) + frame_canvas(user,I) + else if(C && !C.painting_name && istype(I,/obj/item/pen)) + try_rename(user) + else + return ..() + +/obj/structure/sign/painting/examine(mob/user) + . = ..() + if(C) + C.ui_interact(user,state = GLOB.physical_obscured_state) + +/obj/structure/sign/painting/wirecutter_act(mob/living/user, obj/item/I) + . = ..() + if(C) + C.forceMove(drop_location()) + C = null + to_chat(user, "You remove the painting from the frame.") + update_icon() + return TRUE + +/obj/structure/sign/painting/proc/frame_canvas(mob/user,obj/item/canvas/new_canvas) + if(user.transferItemToLoc(new_canvas,src)) + C = new_canvas + if(!C.finalized) + C.finalize(user) + to_chat(user,"You frame [C].") + update_icon() + +/obj/structure/sign/painting/proc/try_rename(mob/user) + if(!C.painting_name) + C.try_rename(user) + +/obj/structure/sign/painting/update_icon_state() + . = ..() + if(C && C.generated_icon) + icon_state = null + else + icon_state = "frame-empty" -#undef AMT_OF_CANVASES +/obj/structure/sign/painting/update_overlays() + . = ..() + if(C && C.generated_icon) + var/mutable_appearance/MA = mutable_appearance(C.generated_icon) + MA.pixel_x = C.framed_offset_x + MA.pixel_y = C.framed_offset_y + . += MA + var/mutable_appearance/frame = mutable_appearance(C.icon,"[C.icon_state]frame") + frame.pixel_x = C.framed_offset_x - 1 + frame.pixel_y = C.framed_offset_y - 1 + . += frame + +/obj/structure/sign/painting/proc/load_persistent() + if(!persistence_id) + return + if(!SSpersistence.paintings || !SSpersistence.paintings[persistence_id] || !length(SSpersistence.paintings[persistence_id])) + return + var/list/chosen = pick(SSpersistence.paintings[persistence_id]) + var/title = chosen["title"] + var/author = chosen["ckey"] + var/png = "data/paintings/[persistence_id]/[chosen["md5"]].png" + if(!fexists(png)) + stack_trace("Persistent painting [chosen["md5"]].png was not found in [persistence_id] directory.") + return + var/icon/I = new(png) + var/obj/item/canvas/new_canvas + var/w = I.Width() + var/h = I.Height() + for(var/T in typesof(/obj/item/canvas)) + new_canvas = T + if(initial(new_canvas.width) == w && initial(new_canvas.height) == h) + new_canvas = new T(src) + break + new_canvas.fill_grid_from_icon(I) + new_canvas.generated_icon = I + new_canvas.icon_generated = TRUE + new_canvas.finalized = TRUE + new_canvas.painting_name = title + new_canvas.author_ckey = author + C = new_canvas + update_icon() + +/obj/structure/sign/painting/proc/save_persistent() + if(!persistence_id || !C) + return + if(sanitize_filename(persistence_id) != persistence_id) + stack_trace("Invalid persistence_id - [persistence_id]") + return + var/data = C.get_data_string() + var/md5 = md5(data) + var/list/current = SSpersistence.paintings[persistence_id] + if(!current) + current = list() + for(var/list/entry in current) + if(entry["md5"] == md5) + return + var/png_directory = "data/paintings/[persistence_id]/" + var/png_path = png_directory + "[md5].png" + var/result = rustg_dmi_create_png(png_path,"[C.width]","[C.height]",data) + if(result) + CRASH("Error saving persistent painting: [result]") + current += list(list("title" = C.painting_name , "md5" = md5, "ckey" = C.author_ckey)) + SSpersistence.paintings[persistence_id] = current + +/obj/item/canvas/proc/fill_grid_from_icon(icon/I) + var/h = I.Height() + 1 + for(var/x in 1 to width) + for(var/y in 1 to height) + grid[x][y] = I.GetPixel(x,h-y) + +//Presets for art gallery mapping, for paintings to be shared across stations +/obj/structure/sign/painting/library + persistence_id = "library" + +/obj/structure/sign/painting/library_secure + persistence_id = "library_secure" + +/obj/structure/sign/painting/library_private // keep your smut away from prying eyes, or non-librarians at least + persistence_id = "library_private" + +/obj/structure/sign/painting/vv_get_dropdown() + . = ..() + VV_DROPDOWN_OPTION(VV_HK_REMOVE_PAINTING, "Remove Persistent Painting") + +/obj/structure/sign/painting/vv_do_topic(list/href_list) + . = ..() + if(href_list[VV_HK_REMOVE_PAINTING]) + if(!check_rights(NONE)) + return + var/mob/user = usr + if(!persistence_id || !C) + to_chat(user,"This is not a persistent painting.") + return + var/md5 = md5(C.get_data_string()) + var/author = C.author_ckey + var/list/current = SSpersistence.paintings[persistence_id] + if(current) + for(var/list/entry in current) + if(entry["md5"] == md5) + current -= entry + var/png = "data/paintings/[persistence_id]/[md5].png" + fdel(png) + for(var/obj/structure/sign/painting/P in SSpersistence.painting_frames) + if(P.C && md5(P.C.get_data_string()) == md5) + QDEL_NULL(P.C) + log_admin("[key_name(user)] has deleted a persistent painting made by [author].") + message_admins("[key_name_admin(user)] has deleted persistent painting made by [author].") diff --git a/code/game/objects/structures/statues.dm b/code/game/objects/structures/statues.dm index 9a6b24b472..1f9491f4cf 100644 --- a/code/game/objects/structures/statues.dm +++ b/code/game/objects/structures/statues.dm @@ -8,12 +8,11 @@ max_integrity = 100 var/oreAmount = 5 var/material_drop_type = /obj/item/stack/sheet/metal + var/impressiveness = 15 CanAtmosPass = ATMOS_PASS_DENSITY - /obj/structure/statue/attackby(obj/item/W, mob/living/user, params) add_fingerprint(user) - user.changeNext_move(CLICK_CD_MELEE) if(!(flags_1 & NODECONSTRUCT_1)) if(default_unfasten_wrench(user, W)) return @@ -36,8 +35,22 @@ return user.changeNext_move(CLICK_CD_MELEE) add_fingerprint(user) - user.visible_message("[user] rubs some dust off from the [name]'s surface.", \ - "You rub some dust off from the [name]'s surface.") + if(!do_after(user, 20, target = src)) + return + user.visible_message("[user] rubs some dust off [src].", \ + "You take in [src], rubbing some dust off its surface.") + if(!ishuman(user)) // only humans have the capacity to appreciate art + return + var/totalimpressiveness = (impressiveness *(obj_integrity/max_integrity)) + switch(totalimpressiveness) + if(GREAT_ART to 100) + SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "artgreat", /datum/mood_event/artgreat) + if (GOOD_ART to GREAT_ART) + SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "artgood", /datum/mood_event/artgood) + if (BAD_ART to GOOD_ART) + SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "artok", /datum/mood_event/artok) + if (0 to BAD_ART) + SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "artbad", /datum/mood_event/artbad) /obj/structure/statue/deconstruct(disassembled = TRUE) if(!(flags_1 & NODECONSTRUCT_1)) @@ -58,6 +71,7 @@ material_drop_type = /obj/item/stack/sheet/mineral/uranium var/last_event = 0 var/active = null + impressiveness = 25 // radiation makes an impression /obj/structure/statue/uranium/nuke name = "statue of a nuclear fission explosive" @@ -101,6 +115,7 @@ max_integrity = 200 material_drop_type = /obj/item/stack/sheet/mineral/plasma desc = "This statue is suitably made from plasma." + impressiveness = 20 /obj/structure/statue/plasma/scientist name = "statue of a scientist" @@ -151,6 +166,7 @@ max_integrity = 300 material_drop_type = /obj/item/stack/sheet/mineral/gold desc = "This is a highly valuable statue made from gold." + impressiveness = 30 /obj/structure/statue/gold/hos name = "statue of the head of security" @@ -178,6 +194,7 @@ max_integrity = 300 material_drop_type = /obj/item/stack/sheet/mineral/silver desc = "This is a valuable statue made from silver." + impressiveness = 25 /obj/structure/statue/silver/md name = "statue of a medical officer" @@ -205,6 +222,7 @@ max_integrity = 1000 material_drop_type = /obj/item/stack/sheet/mineral/diamond desc = "This is a very expensive diamond statue." + impressiveness = 60 /obj/structure/statue/diamond/captain name = "statue of THE captain." @@ -225,6 +243,7 @@ material_drop_type = /obj/item/stack/sheet/mineral/bananium desc = "A bananium statue with a small engraving:'HOOOOOOONK'." var/spam_flag = 0 + impressiveness = 65 /obj/structure/statue/bananium/clown name = "statue of a clown" diff --git a/code/modules/photography/photos/frame.dm b/code/modules/photography/photos/frame.dm index 67559c0381..11ad81ebf0 100644 --- a/code/modules/photography/photos/frame.dm +++ b/code/modules/photography/photos/frame.dm @@ -40,6 +40,7 @@ /obj/item/wallframe/picture/examine(mob/user) if(user.is_holding(src) && displayed) displayed.show(user) + SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "artok", /datum/mood_event/artok) return list() return ..() @@ -109,6 +110,7 @@ /obj/structure/sign/picture_frame/examine(mob/user) if(in_range(src, user) && framed) framed.show(user) + SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "artok", /datum/mood_event/artok) return list() return ..() diff --git a/code/modules/tgui/states/physical.dm b/code/modules/tgui/states/physical.dm index a4cea7c7c2..3b13dc5b3d 100644 --- a/code/modules/tgui/states/physical.dm +++ b/code/modules/tgui/states/physical.dm @@ -2,7 +2,7 @@ * tgui state: physical_state * * Short-circuits the default state to only check physical distance. - **/ + */ GLOBAL_DATUM_INIT(physical_state, /datum/ui_state/physical, new) @@ -22,3 +22,28 @@ GLOBAL_DATUM_INIT(physical_state, /datum/ui_state/physical, new) /mob/living/silicon/ai/physical_can_use_topic(src_object) return UI_UPDATE // AIs are not physical. + +/** + * tgui state: physical_obscured_state + * + * Short-circuits the default state to only check physical distance, being in view doesn't matter + */ + +GLOBAL_DATUM_INIT(physical_obscured_state, /datum/ui_state/physical_obscured_state, new) + +/datum/ui_state/physical_obscured_state/can_use_topic(src_object, mob/user) + . = user.shared_ui_interaction(src_object) + if(. > UI_CLOSE) + return min(., user.physical_obscured_can_use_topic(src_object)) + +/mob/proc/physical_obscured_can_use_topic(src_object) + return UI_CLOSE + +/mob/living/physical_obscured_can_use_topic(src_object) + return shared_living_ui_distance(src_object) + +/mob/living/silicon/physical_obscured_can_use_topic(src_object) + return max(UI_UPDATE, shared_living_ui_distance(src_object)) // Silicons can always see. + +/mob/living/silicon/ai/physical_obscured_can_use_topic(src_object) + return UI_UPDATE // AIs are not physical. \ No newline at end of file diff --git a/icons/obj/artstuff.dmi b/icons/obj/artstuff.dmi index ea24341f5e070e5273b55a52cec4941e46c6271a..14970b76ef2e8b94b7cf689d7d7f67de3b13de16 100644 GIT binary patch literal 908 zcmV;719SX|P)C0000pP)t-sz`(#O z6%~(2FkmPk+1c6u|Nj6pW;14HGnoKpnP!=p|Cwep%>MwHGt8N0{{WfHz`(#W|Gbv~ z0004WQchCV=-0C=2@(!C18Fc84;IeChs-Nj2> zI=D!Sbg=Ib=xGl8C`qt=eA5&h^|m|mgZmGu;nbb`0oqHi-xMOho^XW2Zm-qMWAb^i zMk`Nz^J!aRa*6U-k&AS%v>G|YyrWjv;2yNiUuEoKtVCh+S79SkxFE{9W}ake5?Ja) za19imHnu#-DrK~E3h7$7R|F*s3PX&w#rjV((jhe)n?8n|A%=C6+E$TXa(b3Ak@50dvz^WmD==)x@0}w6& zu?G0s)BF8t;L9lhKwb>+9|1%F5HA26HR;n0Y=^x*KM7E9p8-A;K&${neE>J;?S%oZ z1rVz;K-b6WDg&gdoj{kpUI;)$0HQ8H*pV;t5mW;Zn>irr12j)y+Y7ha03reKZ;JMO zC3`{^i^XDntgr8jR$=@@bpXH@{t-fwz)^`#m(Ku@wUmP-e;6MdDD`Fl z7^E9JF~Bh90W@fB?NfjWrpX+1DF7HG1%D?YK@Pxp<3%Za69dfPz2_OvvBA+^4PcoE zcdSPq01>nqzDXehn5UJJ1lGIO9RMmlTHgoLk7L?oHULe-2b};Qfy-b%0pK10S%Ae~ z?*PnH2RzCEq^|+&0#FH*z2pH5f(fE5fjgETtbeWt&=&m_O+bnx3t&Si1+eb+VVDD; z&c_*`{D&+66a$38llhne;PCDIw_T|7B{&5jn{@5}I)Dox z2vUPYkM1V`2Wx@M{C?H_0E@+HuH-)%Uey3z{GI`-1040p>HawcD7eo648Q;kzyO=? zj`r(S0KUJQ0-$|sfQu*aV|8HwOVGFkkDdc1d%kz>30W)_i^XEGSbwhOd$oS&Jp(WR i126ys)B|X|7W@Kt6GXDwuyv{c0000Wi delta 427 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

aU94Ye50l1L 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 literal 28750 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 b@q`T#&Jz+2QdjQ@BzUFtTCqaGEbM;)^6kw8 diff --git a/rust_g.dll b/rust_g.dll index 27ee495684f5c6cb884e03e1f7526830bcde6af7..f4be6e730aa7092d59801553b0f45a62cdfa920d 100644 GIT binary patch literal 4815872 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%0AGRZ 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

B1{4Jk~t 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 Y9vsJnA=c9nJ(6 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

iEu+mtp^y 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 z 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

xGQ!YL za{f@N>^9sHARuz_LiLj)*$hd8W`2f7%pMG$>_Jl{gXXO|=D9cc$6SBYeILjGRd-)j z+leX7_Sd-D-&45#(@`z`223L#yc&qn*)X_RhdlZT1;YUY-iKS|ZC1bM`;!I@i>h0-82gbGU zfeVUc{f-nw%Hmy-rX^~}QU3ykYJ@_&LQJ9G^3SHC_6h2omyYp_Olp0T3>hnqFxL9k z`q;3C6a7}RcIiCaO7w$(f%wN;SU${ZQCiGhkeX%tPuFLAp~&##X=kWE|AfShU!Pru zuuA<}Ki$8d8gue5Ig=<;Q@#d0;J0tK@6%^%scXqQfSgk1`w-XqRj*_;&ePI_yI;zbDYS z9^*WAgI1iXn^e`|i4SqUGbjW|2Mm3xapzZp#u;m6ip9LDs(RC6hE-$7Blq--- zu8Zvc9w)+qEDh&9#;&VSzv0`UetJMTh-h*<{wESm>}1 zhS%}TVz9u+!Jbt)#VmCfLvuXN|Ku&^6r-5;NPi@G=ggn)_o+j3^54ISyV-08&BD+Z z?i3PPc3E!5GZH#{hnc^ejR-U4WZDaZoh`|^bTK*aK~PT_&&7>VA=P{qFAGj zeZ(;7XY(^e3E@9+TwdrzHJ#^y2>+*o`1U>6J~!XDn4^9P)8#?mx1jx%3UzEZonH#7 zgqg2ZU%`Kp68y>n_&*u=a1Nf@Q>G?&vi|HaG3Fl+{RbHjzNqX8Ydg z0@wv`GD19OoCfy=*&_*-wSQpCING{79|J$o`5{JyJ{!yN zwPV+Mo5mu3Nb>l)wYZ>u9|)j_Z`8YEM2Up|aQy9tds7cDJ%*nk^lb0oY%dMSWEdi( zSih(|$*<63-kS~eQoD$(D&54Y_zm9}=)4ETAv}B|{&2X?@lhYnm10*RO0v6#BbLtf zM$7et09t}kbIWSeh&R`toG|=3#FBSBirbGw8@A6aD;^|qQp{8Y35Vi*i%mlW%(I+|JnW2=4e`r=o&+$WPuf=H@w zB=YLps4}VUG_Kht!|1~@fUV?U992F+svI9HYCjT2P;~9DNSqIbfrgua7XhTUU4biy zoFJ9pOrDG^QNzvLRt{d63a^c*KS+qa0!2KIEA7dRTk*H`cI1Rb*{=i}Tc>&SL>YI3 zmhj^j)@U?8T;6_O{G+1ep7!afL=a51J$z`<_HYS&2@@w0Go-i=S5d9^#>fup*SYIv z!GO_6_ym=g+D6^kdM7n+iJC2?uJUn!n!`6Yp^)I=Wy}j4xFnK%QXOs7o$8{6%abeS zBv-)t*s!!{I{f!i4QLuk8Z1-F<)*?{LmiE%<9=7dm0^Fu;j0J3Wt6J+Id|-lE6ARm zn941NpCp>j&ww!E*Y4S2JR=2VxG)$v2{thv3_zL`KUW7l5%Su*wDgJc)A(zRe%~gS}i%>E} zL!icii6QVIg;XI%_YMY1nXh#IJIH^j!x1U*ltk{{gEOKDsNRk2I`0sHXh+&aUNo%>9u;tkaTiu8Gh6c&7|h| zec=zr3PKW~Bdol39x8b~$L9;N+E4xRZhAlML7LR)m6c|%I^tAA5u*9kg$IS?A&$3C zF?A*DxQ*e@$Q2)Bv)QkHi^$u<#YH^7+Ul3AKb`U4N2F*#hHgYnzJdp=q_Wm$&iJXu zIcgK$;DZo^AY}34yu-!%k~98>6^F*wm3VLou(4c?A>sNJ#hktQYgaCRdEGQcs4kqF z;bhtL!5pae++rZ}&?B~PoF`f$Q;Ztp({8R4{@MAFY^(SGn;e43H*7|<@Op$#DNgCFWl2TE78 zLG-p@z%GDjFYPw;js+ovENMVUuQBv_zz4dnC8-&n2W)swsxczX8;6Qxj}5WIL6u5i zAhFB|2L+8JKsThq$h0&Zil|4MCoX-i*0ipN+Z7Mv+rej2% zynq)rvGY9bUx!~uL1C)&s8TAs9-?v+AX0%+A?!|rat%g_jpcGW+3@gBLZnGO_H*Mv z5N!%mf$+*^q>;-6A~~>f&{I?#A1GecjGAMzEol@xmh>riBX+7sDmKh5 z+CI04Jc6F)Nmmx@-F?W-SVQNPey_f5NIz5N9e;>nFqan5Jm->mo6Q9FkTvCr?SG$E z@i?nB{vR%R=DWSCzp?52ak$CtV{O#U~zr5fWS&Va87cWr{^8+TnVIT5~Z`+Tk#qGzWx+#mnxwL8M zF_slSy&21jSMlaeDnS{hI4g5mu@1{KNT}L0HU|b19$ZMLl*vRtiVIZrQb3?;qeeg4 z@i>P7;cyB5mj4xHv|D|cH3Qluk%0DNk_-WDb3gz5YKVTS!!`UI*GT)#jb!KDQX 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

Jq+Bj-BB_0;f|fcldL2cJTwx~-VU7|naoFiU<> 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