From d225d4800b0e8908f27088cee8d51016f5e003d9 Mon Sep 17 00:00:00 2001 From: AnturK Date: Wed, 7 Sep 2016 10:15:45 +0200 Subject: [PATCH] Station Goals (#20009) * goals initial * Revamps Meteor Shield Minor UI touchups. Fixes DNA Vault completion check. * Allows admins to varedit goal completion. Does not clear dna probe on upload. * Missed icons and template. * Spelling, proper attackby returns * Meteor shield emag effect only works when it's active. * Admin panel for station goals. * Some visual feedback and spans. * Announcement now shows the goal name. * Fixes * Fixes and adminlog * Tgui build * Moves the information to intercept report except for admin spawned ones. --- code/__DEFINES/misc.dm | 2 + code/_globalvars/lists/objects.dm | 4 +- code/controllers/subsystem/ticker.dm | 3 +- code/game/gamemodes/game_mode.dm | 31 ++ code/game/gamemodes/meteor/meteors.dm | 2 + code/modules/admin/admin_verbs.dm | 1 + code/modules/admin/topic.dm | 17 ++ code/modules/admin/verbs/randomverbs.dm | 16 + code/modules/cargo/console.dm | 2 +- code/modules/cargo/packs.dm | 59 +++- code/modules/station_goals/bsa.dm | 321 +++++++++++++++++++++ code/modules/station_goals/dna_vault.dm | 276 ++++++++++++++++++ code/modules/station_goals/shield.dm | 181 ++++++++++++ code/modules/station_goals/station_goal.dm | 64 ++++ icons/effects/beam.dmi | Bin 10740 -> 10800 bytes icons/obj/lavaland/cannon.dmi | Bin 0 -> 34466 bytes icons/obj/machines/dna_vault.dmi | Bin 0 -> 33625 bytes icons/obj/machines/satellite.dmi | Bin 0 -> 650 bytes tgstation.dme | 4 + tgui/assets/tgui.js | 31 +- tgui/src/interfaces/bsa.ract | 20 ++ tgui/src/interfaces/dna_vault.ract | 22 ++ tgui/src/interfaces/sat_control.ract | 21 ++ 23 files changed, 1057 insertions(+), 20 deletions(-) create mode 100644 code/modules/station_goals/bsa.dm create mode 100644 code/modules/station_goals/dna_vault.dm create mode 100644 code/modules/station_goals/shield.dm create mode 100644 code/modules/station_goals/station_goal.dm create mode 100644 icons/obj/lavaland/cannon.dmi create mode 100644 icons/obj/machines/dna_vault.dmi create mode 100644 icons/obj/machines/satellite.dmi create mode 100644 tgui/src/interfaces/bsa.ract create mode 100644 tgui/src/interfaces/dna_vault.ract create mode 100644 tgui/src/interfaces/sat_control.ract diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 5f74640f7e7..f8804aead4c 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -529,3 +529,5 @@ var/global/list/ghost_others_options = list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE // Caps for NTNet logging. Less than 10 would make logging useless anyway, more than 500 may make the log browser too laggy. Defaults to 100 unless user changes it. #define MAX_NTNET_LOGS 300 #define MIN_NTNET_LOGS 10 +//TODO Move to a pref +#define STATION_GOAL_BUDGET 1 \ No newline at end of file diff --git a/code/_globalvars/lists/objects.dm b/code/_globalvars/lists/objects.dm index b5014ec7c91..28e55d7e03f 100644 --- a/code/_globalvars/lists/objects.dm +++ b/code/_globalvars/lists/objects.dm @@ -23,5 +23,5 @@ var/global/list/apcs_list = list() //list of all Area Power Controller machi var/global/list/tracked_implants = list() //list of all current implants that are tracked to work out what sort of trek everyone is on. Sadly not on lavaworld not implemented... var/global/list/poi_list = list() //list of points of interest for observe/follow var/global/list/pinpointer_list = list() //list of all pinpointers. Used to change stuff they are pointing to all at once. -// A list of all zombie_infection organs, for any mass "animation" -var/global/list/zombie_infection_list = list() +var/global/list/zombie_infection_list = list() // A list of all zombie_infection organs, for any mass "animation" +var/global/list/meteor_list = list() // List of all meteors. \ No newline at end of file diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index 450367ce2e7..cdc90a8bb3f 100644 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -55,7 +55,6 @@ var/datum/subsystem/ticker/ticker var/maprotatechecked = 0 - /datum/subsystem/ticker/New() NEW_SS_GLOBAL(ticker) @@ -443,6 +442,8 @@ var/datum/subsystem/ticker/ticker for(var/i in total_antagonists) log_game("[i]s[total_antagonists[i]].") + mode.declare_station_goal_completion() + //Adds the del() log to world.log in a format condensable by the runtime condenser found in tools if(SSgarbage.didntgc.len) var/dellog = "" diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index cc7b43a6adb..09ca3b85fab 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -41,6 +41,8 @@ var/const/waittime_l = 600 var/const/waittime_h = 1800 // started at 1800 + var/list/datum/station_goal/station_goals = list() + /datum/game_mode/proc/announce() //Shows the gamemode's name and a fast description. world << "The gamemode is: [name]!" @@ -87,6 +89,7 @@ if(report) spawn (rand(waittime_l, waittime_h)) send_intercept(0) + generate_station_goals() start_state = new /datum/station_state() start_state.count(1) return 1 @@ -279,6 +282,12 @@ for(var/V in possible_modes) intercepttext += i_text.build(V) + if(station_goals.len) + intercepttext += "Special Orders for [station_name()]:" + for(var/datum/station_goal/G in station_goals) + G.on_report() + intercepttext += G.get_report() + print_command_report(intercepttext, "Central Command Status Summary") priority_announce("A summary has been copied and printed to all communications consoles.", "Enemy communication intercepted. Security level elevated.", 'sound/AI/intercept.ogg') if(security_level < SEC_LEVEL_BLUE) @@ -532,3 +541,25 @@ ticker.mode.remove_gangster(newborgie, 0, remove_bosses=1) ticker.mode.remove_hog_follower(newborgie, 0) remove_servant_of_ratvar(newborgie.current, TRUE) + + +/datum/game_mode/proc/generate_station_goals() + var/list/possible = list() + for(var/T in subtypesof(/datum/station_goal)) + var/datum/station_goal/G = T + if(config_tag in initial(G.gamemode_blacklist)) + continue + //if(num_players() < initial(G.required_crew)) + // continue + possible += T + var/goal_weights = 0 + while(possible.len && goal_weights < STATION_GOAL_BUDGET) + var/datum/station_goal/picked = pick_n_take(possible) + goal_weights += initial(picked.weight) + station_goals += new picked + + +/datum/game_mode/proc/declare_station_goal_completion() + for(var/V in station_goals) + var/datum/station_goal/G = V + G.print_result() \ No newline at end of file diff --git a/code/game/gamemodes/meteor/meteors.dm b/code/game/gamemodes/meteor/meteors.dm index 9fa58377691..a1272ee75da 100644 --- a/code/game/gamemodes/meteor/meteors.dm +++ b/code/game/gamemodes/meteor/meteors.dm @@ -118,11 +118,13 @@ get_hit() /obj/effect/meteor/Destroy() + meteor_list -= src walk(src,0) //this cancels the walk_towards() proc . = ..() /obj/effect/meteor/New() ..() + meteor_list += src if(SSaugury) SSaugury.register_doom(src, threat) SpinAnimation() diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 3b64aa6a72c..c67f8d1c3b2 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -145,6 +145,7 @@ var/list/admin_verbs_debug = list( /client/proc/cmd_display_del_log, /client/proc/reset_latejoin_spawns, /client/proc/create_outfits, + /client/proc/modify_goals, /client/proc/debug_huds, /client/proc/map_template_load, /client/proc/map_template_upload, diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 0f88f315ee3..610ee769dc3 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -2255,3 +2255,20 @@ SD.r_code = code message_admins("[key_name_admin(usr)] has set the self-destruct \ code to \"[code]\".") + + else if(href_list["add_station_goal"]) + if(!check_rights(R_ADMIN)) + return + var/list/type_choices = typesof(/datum/station_goal) + var/picked = input("Choose goal type") in type_choices|null + if(!picked) + return + var/datum/station_goal/G = new picked() + if(picked == /datum/station_goal) + var/newname = input("Enter goal name:") as text + G.name = newname + var/description = input("Enter centcom message contents:") as message + G.report_message = description + message_admins("[key_name(usr)] created \"[G.name]\" station goal.") + ticker.mode.station_goals += G + modify_goals() diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index eadb377ea2f..1008453f85b 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -1137,3 +1137,19 @@ var/list/datum/outfit/custom_outfits = list() //Admin created outfits H.regenerate_icons() #undef ON_PURRBATION + +/client/proc/modify_goals() + set category = "Debug" + set name = "Modify station goals" + + if(!check_rights(R_ADMIN)) + return + + holder.modify_goals() + +/datum/admins/proc/modify_goals() + var/dat = "" + for(var/datum/station_goal/S in ticker.mode.station_goals) + dat += "[S.name] - Announce | Remove
" + dat += "
Add New Goal" + usr << browse(dat, "window=goals;size=400x400") \ No newline at end of file diff --git a/code/modules/cargo/console.dm b/code/modules/cargo/console.dm index 761b2e15a21..ae759a49bf8 100644 --- a/code/modules/cargo/console.dm +++ b/code/modules/cargo/console.dm @@ -61,7 +61,7 @@ "name" = P.group, "packs" = list() ) - if((P.hidden && !emagged) || (P.contraband && !contraband)) + if((P.hidden && !emagged) || (P.contraband && !contraband) || (P.special && !P.special_enabled)) continue data["supplies"][P.group]["packs"] += list(list( "name" = P.name, diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index 444b71099cd..ab41d3cae8b 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -1,4 +1,4 @@ -/datum/supply_pack +datum/supply_pack var/name = "Crate" var/group = "" var/hidden = FALSE @@ -9,6 +9,8 @@ var/crate_name = "crate" var/crate_type = /obj/structure/closet/crate var/dangerous = FALSE // Should we message admins? + var/special = FALSE //Event/Station Goals/Admin enabled packs + var/special_enabled = FALSE /datum/supply_pack/proc/generate(turf/T) var/obj/structure/closet/crate/C = new crate_type(T) @@ -1532,3 +1534,58 @@ /obj/item/toy/crayon/rainbow, /obj/item/toy/crayon/rainbow) crate_name= "art supply crate" + + +/datum/supply_pack/misc/bsa + name = "Bluespace Artillery Parts" + cost = 15000 + special = TRUE + contains = list(/obj/item/weapon/circuitboard/machine/bsa/front, + /obj/item/weapon/circuitboard/machine/bsa/middle, + /obj/item/weapon/circuitboard/machine/bsa/back, + /obj/item/weapon/circuitboard/machine/computer/bsa_control + ) + crate_name= "bluespace artillery parts crate" + +/datum/supply_pack/misc/dna_vault + name = "DNA Vault Parts" + cost = 12000 + special = TRUE + contains = list( + /obj/item/weapon/circuitboard/machine/dna_vault + ) + crate_name= "dna vault parts crate" + +/datum/supply_pack/misc/dna_probes + name = "DNA Vault Samplers" + cost = 3000 + special = TRUE + contains = list(/obj/item/device/dna_probe, + /obj/item/device/dna_probe, + /obj/item/device/dna_probe, + /obj/item/device/dna_probe, + /obj/item/device/dna_probe + ) + crate_name= "dna samplers crate" + + +/datum/supply_pack/misc/shield_sat + name = "Shield Generator Satellite" + cost = 3000 + special = TRUE + contains = list( + /obj/machinery/satellite/meteor_shield, + /obj/machinery/satellite/meteor_shield, + /obj/machinery/satellite/meteor_shield + ) + crate_name= "shield sat crate" + + +/datum/supply_pack/misc/shield_sat_control + name = "Shield System Control Board" + cost = 5000 + special = TRUE + contains = list( + /obj/item/weapon/circuitboard/machine/computer/sat_control + ) + crate_name= "shield control board crate" \ No newline at end of file diff --git a/code/modules/station_goals/bsa.dm b/code/modules/station_goals/bsa.dm new file mode 100644 index 00000000000..77e69582ef0 --- /dev/null +++ b/code/modules/station_goals/bsa.dm @@ -0,0 +1,321 @@ +// Crew has to build a bluespace cannon +// Cargo orders part for high price +// Requires high amount of power +// Requires high level stock parts +/datum/station_goal/bluespace_cannon + name = "Bluespace Artillery" + +/datum/station_goal/bluespace_cannon/get_report() + return {"Our military presence is inadequate in your sector. + We need you to construct BSA-[rand(0-99)] Artillery position aboard your station. + + Base parts should be availible for shipping by your cargo shuttle. + -Nanotrasen Naval Command"} + +/datum/station_goal/bluespace_cannon/on_report() + //Unlock BSA parts + var/datum/supply_pack/misc/bsa/P = SSshuttle.supply_packs[/datum/supply_pack/misc/bsa] + P.special_enabled = TRUE + +/datum/station_goal/bluespace_cannon/check_completion() + if(..()) + return TRUE + var/obj/machinery/bsa/full/B = locate() + if(B && !B.stat) + return TRUE + return FALSE + +/obj/machinery/bsa + icon = 'icons/obj/machines/particle_accelerator.dmi' + density = 1 + anchored = 1 + +/obj/machinery/bsa/back + name = "Bluespace Artillery Generator" + desc = "Generates cannon pulse. Needs to be linked with a fusor. " + icon_state = "power_box" + +/obj/machinery/bsa/back/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/device/multitool)) + var/obj/item/device/multitool/M = W + M.buffer = src + user << "You store linkage information in [W]'s buffer." + else + return ..() + +/obj/machinery/bsa/front + name = "Bluespace Artillery Bore" + desc = "Do not stand in front of cannon during operation. Needs to be linked with a fusor." + icon_state = "emitter_center" + +/obj/machinery/bsa/front/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/device/multitool)) + var/obj/item/device/multitool/M = W + M.buffer = src + user << "You store linkage information in [W]'s buffer." + else + return ..() + +/obj/machinery/bsa/middle + name = "Bluespace Artillery Fusor" + desc = "Contents classifed by Nanotrasen Naval Command. Needs to be linked with the other BSA parts using multitool." + icon_state = "fuel_chamber" + var/obj/machinery/bsa/back/back + var/obj/machinery/bsa/front/front + +/obj/machinery/bsa/middle/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/device/multitool)) + var/obj/item/device/multitool/M = W + if(M.buffer) + if(istype(M.buffer,/obj/machinery/bsa/back)) + back = M.buffer + M.buffer = null + user << "You link [src] with [back]." + else if(istype(M.buffer,/obj/machinery/bsa/front)) + front = M.buffer + M.buffer = null + user << "You link [src] with [front]." + else + return ..() + +/obj/machinery/bsa/middle/proc/check_completion() + if(!front || !back) + return "No linked parts detected!" + if(front.y != y || back.y != y || !(front.x > x && back.x < x || front.x < x && back.x > x) || front.z != z || back.z != z) + return "Parts misaligned!" + if(!has_space()) + return "Not enough free space!" + +/obj/machinery/bsa/middle/proc/has_space() + var/cannon_dir = get_cannon_direction() + var/x_min + var/x_max + switch(cannon_dir) + if(EAST) + x_min = x - 4 //replace with defines later + x_max = x + 6 + if(WEST) + x_min = x + 4 + x_max = x - 6 + + for(var/turf/T in block(locate(x_min,y-1,z),locate(x_max,y+1,z))) + if(T.density || istype(T, /turf/open/space)) + return FALSE + return TRUE + +/obj/machinery/bsa/middle/proc/get_cannon_direction() + if(front.x > x && back.x < x) + return EAST + else if(front.x < x && back.x > x) + return WEST + + +/obj/machinery/bsa/full + name = "Bluespace Artillery" + desc = "Long range bluespace artillery." + icon = 'icons/obj/lavaland/cannon.dmi' + icon_state = "orbital_cannon1" + unsecuring_tool = null + var/static/image/top_layer = null + var/ex_power = 3 + var/power_used_per_shot = 2000000 //enough to kil standard apc - todo : make this use wires instead and scale explosion power with it + pixel_y = -32 + pixel_x = -192 + bound_width = 352 + bound_x = -192 + appearance_flags = NONE //Removes default TILE_BOUND + +/obj/machinery/bsa/full/proc/get_front_turf() + switch(dir) + if(WEST) + return locate(x - 6,y,z) + if(EAST) + return locate(x + 4,y,z) + return get_turf(src) + +/obj/machinery/bsa/full/proc/get_back_turf() + switch(dir) + if(WEST) + return locate(x + 4,y,z) + if(EAST) + return locate(x - 6,y,z) + return get_turf(src) + +/obj/machinery/bsa/full/proc/get_target_turf() + switch(dir) + if(WEST) + return locate(1,y,z) + if(EAST) + return locate(world.maxx,y,z) + return get_turf(src) + +/obj/machinery/bsa/full/New(loc,cannon_direction = WEST) + ..() + switch(cannon_direction) + if(WEST) + dir = WEST + pixel_x = -192 + top_layer = image("icons/obj/lavaland/orbital_cannon.dmi", "top_west") + top_layer.layer = ABOVE_MOB_LAYER + icon_state = "cannon_west" + if(EAST) + dir = EAST + top_layer = image("icons/obj/lavaland/orbital_cannon.dmi", "top_east") + top_layer.layer = ABOVE_MOB_LAYER + icon_state = "cannon_east" + add_overlay(top_layer) + +/obj/machinery/bsa/full/proc/fire() + var/turf/point = get_front_turf() + for(var/turf/T in getline(get_step(point,dir),get_target_turf())) + T.ex_act(1) + point.Beam(get_target_turf(),icon_state="bsa_beam",icon='icons/effects/beam.dmi',time=50,maxdistance = world.maxx) //ZZZAP + + +/obj/structure/filler + name = "big machinery part" + density = 1 + anchored = 1 + invisibility = INVISIBILITY_ABSTRACT + var/obj/machinery/parent + +/obj/structure/filler/ex_act() + return + +/obj/item/weapon/circuitboard/machine/bsa/back + name = "circuit board (Bluespace Artillery Generator)" + build_path = /obj/machinery/bsa/back + origin_tech = "engineering=2;combat=2;bluespace=2" //No freebies! + req_components = list( + /obj/item/weapon/stock_parts/capacitor/quadratic = 5, + /obj/item/stack/cable_coil = 2) + +/obj/item/weapon/circuitboard/machine/bsa/middle + name = "circuit board (Bluespace Artillery Fusor)" + build_path = /obj/machinery/bsa/middle + origin_tech = "engineering=2;combat=2;bluespace=2" + req_components = list( + /obj/item/weapon/ore/bluespace_crystal = 20, + /obj/item/stack/cable_coil = 2) + +/obj/item/weapon/circuitboard/machine/bsa/front + name = "circuit board (Bluespace Artillery Bore)" + build_path = /obj/machinery/bsa/front + origin_tech = "engineering=2;combat=2;bluespace=2" + req_components = list( + /obj/item/weapon/stock_parts/manipulator/femto = 5, + /obj/item/stack/cable_coil = 2) + +/obj/item/weapon/circuitboard/machine/computer/bsa_control + name = "circuit board (Bluespace Artillery Controls)" + build_path = /obj/machinery/computer/bsa_control + origin_tech = "engineering=2;combat=2;bluespace=2" + +/obj/machinery/computer/bsa_control + name = "Bluespace Artillery Control" + var/obj/machinery/bsa/full/cannon + var/ready = FALSE + var/notice + var/target + use_power = 0 + circuit = /obj/machinery/computer/bsa_control + icon = 'icons/obj/machines/particle_accelerator.dmi' + icon_state = "control_boxp" + var/area_aim = FALSE //should also show areas for targeting + +/obj/machinery/computer/bsa_control/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = physical_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "bsa", name, 400, 305, master_ui, state) + ui.open() + +/obj/machinery/computer/bsa_control/ui_data() + var/list/data = list() + data["ready"] = ready + data["connected"] = cannon + data["notice"] = notice + if(target) + data["target"] = get_target_name() + return data + +/obj/machinery/computer/bsa_control/ui_act(action, params) + if(..()) + return + switch(action) + if("build") + cannon = deploy() + . = TRUE + if("fire") + fire(usr) + . = TRUE + if("recalibrate") + calibrate(usr) + . = TRUE + update_icon() + +/obj/machinery/computer/bsa_control/proc/calibrate(mob/user) + var/list/gps_locators = list() + for(var/obj/item/device/gps/G in GPS_list) //nulls on the list somehow + gps_locators[G.gpstag] = G + + var/list/options = gps_locators + if(area_aim) + options += teleportlocs + var/V = input(user,"Select target", "Select target",null) in options|null + target = options[V] + + +/obj/machinery/computer/bsa_control/proc/get_target_name() + if(istype(target,/area)) + var/area/A = target + return A.name + else if(istype(target,/obj/item/device/gps)) + var/obj/item/device/gps/G = target + return G.gpstag + +/obj/machinery/computer/bsa_control/proc/get_impact_turf() + if(istype(target,/area)) + return pick(get_area_turfs(target)) + else if(istype(target,/obj/item/device/gps)) + return get_turf(target) + +/obj/machinery/computer/bsa_control/proc/fire(mob/user) + if(cannon.stat) + notice = "Cannon unpowered!" + return + notice = null + cannon.use_power(cannon.power_used_per_shot) + cannon.fire() + ready = FALSE + var/turf/bullseye = get_impact_turf() + message_admins("[key_name_admin(usr)] has launched an artillery strike.") + explosion(bullseye,cannon.ex_power,cannon.ex_power*2,cannon.ex_power*4) + addtimer(src,"ready_cannon",600) + +/obj/machinery/computer/bsa_control/proc/ready_cannon() + ready = TRUE + +/obj/machinery/computer/bsa_control/proc/deploy(force=FALSE) + var/obj/machinery/bsa/full/prebuilt = locate() in range(7) //In case of adminspawn + if(prebuilt) + ready = TRUE + return prebuilt + + var/obj/machinery/bsa/middle/centerpiece = locate() in range(7) + if(!centerpiece) + notice = "No BSA parts detected nearby." + return null + notice = centerpiece.check_completion() + if(notice) + return null + //Totally nanite construction system not an immersion breaking spawning + var/datum/effect_system/smoke_spread/s = new + s.set_up(4, 1, get_turf(centerpiece), 0) + s.start() + var/obj/machinery/bsa/full/cannon = new(get_turf(centerpiece),cannon_direction=centerpiece.get_cannon_direction()) + qdel(centerpiece.front) + qdel(centerpiece.back) + qdel(centerpiece) + ready = TRUE + return cannon diff --git a/code/modules/station_goals/dna_vault.dm b/code/modules/station_goals/dna_vault.dm new file mode 100644 index 00000000000..6de3312238f --- /dev/null +++ b/code/modules/station_goals/dna_vault.dm @@ -0,0 +1,276 @@ +//Crew has to create dna vault +// Cargo can order DNA samplers + DNA vault boards +// DNA vault requires x animals ,y plants, z human dna +// DNA vaults require high tier stock parts and cold +// After completion each crewmember can receive single upgrade chosen out of 2 for the mob. +#define VAULT_TOXIN "Toxin Adaptation" +#define VAULT_NOBREATH "Lung Enhancement" +#define VAULT_FIREPROOF "Thermal Regulation" +#define VAULT_STUNTIME "Neural Repathing" +#define VAULT_ARMOUR "Bone Reinforcment" + +/datum/station_goal/dna_vault + name = "DNA Vault" + var/animal_count + var/human_count + var/plant_count + +/datum/station_goal/dna_vault/New() + ..() + animal_count = rand(15,20) //might be too few given ~15 roundstart stationside ones + human_count = rand(round(0.75 * ticker.totalPlayersReady) , ticker.totalPlayersReady) // 75%+ roundstart population. + var/non_standard_plants = non_standard_plants_count() + plant_count = rand(round(0.7 * non_standard_plants),round(0.9 * non_standard_plants)) + +/datum/station_goal/dna_vault/proc/non_standard_plants_count() + . = 0 + for(var/T in subtypesof(/obj/item/seeds)) //put a cache if it's used anywhere else + var/obj/item/seeds/S = T + if(initial(S.rarity) > 0) + .++ + +/datum/station_goal/dna_vault/get_report() + return {"Our long term prediction systems say there's 99% chance of system-wide cataclysm in near future. + We need you to construct DNA Vault aboard your station. + + DNA Vault needs to contain samples of: + [animal_count] unique animal data + [plant_count] unique non-standard plant data + [human_count] unique sapient humanoid DNA data + + Base vault parts should be availible for shipping by your cargo shuttle."} + + +/datum/station_goal/dna_vault/on_report() + var/datum/supply_pack/P = SSshuttle.supply_packs[/datum/supply_pack/misc/dna_vault] + P.special_enabled = TRUE + + P = SSshuttle.supply_packs[/datum/supply_pack/misc/dna_probes] + P.special_enabled = TRUE + +/datum/station_goal/dna_vault/check_completion() + if(..()) + return TRUE + for(var/obj/machinery/dna_vault/V in machines) + if(V.animals.len >= animal_count && V.plants.len >= plant_count && V.dna >= human_count) + return TRUE + return FALSE + + +/obj/item/device/dna_probe + name = "DNA Sampler" + desc = "Can be used to take chemical and genetic samples of pretty much anything." + icon = 'icons/obj/syringe.dmi' + item_state = "hypo" + icon_state = "hypo" + flags = NOBLUDGEON + var/list/animals = list() + var/list/plants = list() + var/list/dna = list() + +/obj/item/device/dna_probe/proc/clear_data() + animals = list() + plants = list() + dna = list() + +var/list/non_simple_animals = typecacheof(list(/mob/living/carbon/monkey,/mob/living/carbon/alien)) + +/obj/item/device/dna_probe/afterattack(atom/target, mob/user, proximity) + ..() + if(!proximity || !target) + return + //tray plants + if(istype(target,/obj/machinery/hydroponics)) + var/obj/machinery/hydroponics/H = target + if(!H.myseed) + return + if(!H.harvest)// So it's bit harder. + user << "Plants needs to be ready to harvest to perform full data scan." //Because space dna is actually magic + return + if(plants[H.myseed.type]) + user << "Plant data already present in local storage." + return + plants[H.myseed.type] = 1 + user << "Plant data added to local storage." + + //animals + if(isanimal(target) || is_type_in_typecache(target,non_simple_animals)) + if(isanimal(target)) + var/mob/living/simple_animal/A = target + if(!A.healable)//simple approximation of being animal not a robot or similar + user << "No compatibile DNA detected" + return + if(animals[target.type]) + user << "Animal data already present in local storage." + return + animals[target.type] = 1 + user << "Animal data added to local storage." + + //humans + if(ishuman(target)) + var/mob/living/carbon/human/H = target + if(dna[H.dna.uni_identity]) + user << "Humanoid data already present in local storage." + return + dna[H.dna.uni_identity] = 1 + user << "Humanoid data added to local storage." + + +/obj/item/weapon/circuitboard/machine/dna_vault + name = "circuit board (DNA Vault)" + build_path = /obj/machinery/dna_vault + origin_tech = "engineering=2;combat=2;bluespace=2" //No freebies! + req_components = list( + /obj/item/weapon/stock_parts/capacitor/quadratic = 5, + /obj/item/stack/cable_coil = 2) + +/obj/machinery/dna_vault + name = "DNA Vault" + desc = "Break glass in case of apocalypse." + icon = 'icons/obj/machines/dna_vault.dmi' + icon_state = "vault" + density = 1 + anchored = 1 + idle_power_usage = 5000 + pixel_x = -32 + pixel_y = -64 + luminosity = 1 + + //High defaults so it's not completed automatically if there's no station goal + var/animals_max = 100 + var/plants_max = 100 + var/dna_max = 100 + var/list/animals = list() + var/list/plants = list() + var/list/dna = list() + + var/completed = FALSE + var/list/power_lottery = list() + + var/list/obj/structure/fillers = list() + +/obj/machinery/dna_vault/New() + //TODO: Replace this,bsa and gravgen with some big machinery datum + var/list/occupied = list() + for(var/direct in list(EAST,WEST,SOUTHEAST,SOUTHWEST)) + occupied += get_step(src,direct) + occupied += locate(x+1,y-2,z) + occupied += locate(x-1,y-2,z) + + for(var/T in occupied) + var/obj/structure/filler/F = new(T) + F.parent = src + fillers += F + + if(ticker.mode) + for(var/datum/station_goal/dna_vault/G in ticker.mode.station_goals) + animals_max = G.animal_count + plants_max = G.plant_count + dna_max = G.human_count + break + +/obj/machinery/dna_vault/Destroy() + for(var/V in fillers) + var/obj/structure/filler/filler = V + filler.parent = null + qdel(filler) + . = ..() + + +/obj/machinery/dna_vault/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = physical_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + roll_powers(user) + ui = new(user, src, ui_key, "dna_vault", name, 350, 400, master_ui, state) + ui.open() + + +/obj/machinery/dna_vault/proc/roll_powers(mob/user) + if(user in power_lottery) + return + var/list/L = list() + var/list/possible_powers = list(VAULT_TOXIN,VAULT_NOBREATH,VAULT_FIREPROOF,VAULT_STUNTIME,VAULT_ARMOUR) + L += pick_n_take(possible_powers) + L += pick_n_take(possible_powers) + power_lottery[user] = L + +/obj/machinery/dna_vault/ui_data(mob/user) //TODO Make it % bars maybe + var/list/data = list() + data["plants"] = plants.len + data["plants_max"] = plants_max + data["animals"] = animals.len + data["animals_max"] = animals_max + data["dna"] = dna.len + data["dna_max"] = dna_max + data["completed"] = completed + data["used"] = TRUE + data["choiceA"] = "" + data["choiceB"] = "" + if(user && completed) + var/list/L = power_lottery[user] + if(L && L.len) + data["used"] = FALSE + data["choiceA"] = L[1] + data["choiceB"] = L[2] + return data + +/obj/machinery/dna_vault/ui_act(action, params) + if(..()) + return + switch(action) + if("gene") + upgrade(usr,params["choice"]) + . = TRUE + +/obj/machinery/dna_vault/proc/check_goal() + if(plants.len >= plants_max && animals.len >= animals_max && dna.len >= dna_max) + completed = TRUE + + +/obj/machinery/dna_vault/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/device/dna_probe)) + var/obj/item/device/dna_probe/P = I + var/uploaded = 0 + for(var/plant in P.plants) + if(!plants[plant]) + uploaded++ + plants[plant] = 1 + for(var/animal in P.animals) + if(!animals[animal]) + uploaded++ + animals[animal] = 1 + for(var/ui in P.dna) + if(!dna[ui]) + uploaded++ + dna[ui] = 1 + check_goal() + user << "[uploaded] new datapoints uploaded." + else + return ..() + + + +/obj/machinery/dna_vault/proc/upgrade(mob/living/carbon/human/H,upgrade_type) + if(!(upgrade_type in power_lottery[H])) + return + var/datum/species/S = H.dna.species + switch(upgrade_type) + if(VAULT_TOXIN) + H << "You feel resistant to airborne toxins." + S.tox_breath_dam_min = 0 + S.tox_breath_dam_max = 0 + S.specflags |= VIRUSIMMUNE + if(VAULT_NOBREATH) + H << "Your lungs feel great." + S.specflags |= NOBREATH + if(VAULT_FIREPROOF) + H << "Your feel fireproof." + S.burnmod = 0.5 + S.heatmod = 0 + if(VAULT_STUNTIME) + H << "Nothing can keep you down for long." + S.stunmod = 0.5 + if(VAULT_ARMOUR) + H << "Your feel tough." + S.armor = 30 + power_lottery[H] = list() \ No newline at end of file diff --git a/code/modules/station_goals/shield.dm b/code/modules/station_goals/shield.dm new file mode 100644 index 00000000000..357cc426e15 --- /dev/null +++ b/code/modules/station_goals/shield.dm @@ -0,0 +1,181 @@ +//Station Shield +// A chain of satellites encircles the station +// Satellites be actived to generate a shield that will block unorganic matter from passing it. +/datum/station_goal/station_shield + name = "Station Shield" + var/coverage_goal = 500 + +/datum/station_goal/station_shield/get_report() + return {"The station is located in a zone full of space debris. + We have a prototype shielding system you will deploy to reduce collision related accidents. + + You can order the satellites and control systems through cargo shuttle. + "} + + +/datum/station_goal/station_shield/on_report() + //Unlock + var/datum/supply_pack/P = SSshuttle.supply_packs[/datum/supply_pack/misc/shield_sat] + P.special_enabled = TRUE + + P = SSshuttle.supply_packs[/datum/supply_pack/misc/shield_sat_control] + P.special_enabled = TRUE + +/datum/station_goal/station_shield/check_completion() + if(..()) + return TRUE + if(get_coverage() >= coverage_goal) + return TRUE + return FALSE + +/datum/station_goal/proc/get_coverage() + var/list/coverage = list() + for(var/obj/machinery/satellite/meteor_shield/A in machines) + if(!A.active || A.z != ZLEVEL_STATION) + continue + coverage |= view(A.kill_range,A) + return coverage.len + +/obj/item/weapon/circuitboard/machine/computer/sat_control + name = "circuit board (Satellite Network Control)" + build_path = /obj/machinery/computer/sat_control + origin_tech = "engineering=3" + +/obj/machinery/computer/sat_control + name = "Satellite control" + desc = "Used to control the satellite network." + circuit = /obj/item/weapon/circuitboard/machine/computer/sat_control + var/notice + +/obj/machinery/computer/sat_control/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = physical_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "sat_control", name, 400, 305, master_ui, state) + ui.open() + +/obj/machinery/computer/sat_control/ui_act(action, params) + if(..()) + return + switch(action) + if("toggle") + toggle(text2num(params["id"])) + . = TRUE + +/obj/machinery/computer/sat_control/proc/toggle(id) + for(var/obj/machinery/satellite/S in machines) + if(S.id == id && S.z == z) + S.toggle() + +/obj/machinery/computer/sat_control/ui_data() + var/list/data = list() + + data["satellites"] = list() + for(var/obj/machinery/satellite/S in machines) + data["satellites"] += list(list( + "id" = S.id, + "active" = S.active, + "mode" = S.mode + )) + data["notice"] = notice + + + var/datum/station_goal/station_shield/G = locate() in ticker.mode.station_goals + if(G) + data["meteor_shield"] = 1 + data["meteor_shield_coverage"] = G.get_coverage() + data["meteor_shield_coverage_max"] = G.coverage_goal + return data + + +/obj/machinery/satellite + name = "Defunct Satellite" + desc = "" + icon = 'icons/obj/machines/satellite.dmi' + icon_state = "sat_inactive" + var/mode = "NTPROBEV0.8" + var/active = FALSE + density = 1 + var/static/gid = 0 + var/id = 0 + +/obj/machinery/satellite/New() + ..() + id = gid++ + +/obj/machinery/satellite/interact(mob/user) + toggle(user) + +/obj/machinery/satellite/proc/toggle(mob/user) + if(!active && !isinspace()) + if(user) + user << "You can only active the [src] in space." + return FALSE + if(user) + user << "You [active ? "deactivate": "activate"] the [src]" + active = !active + if(active) + animate(src, pixel_y = 2, time = 10, loop = -1) + anchored = 1 + else + animate(src, pixel_y = 0, time = 10) + anchored = 0 + update_icon() + +/obj/machinery/satellite/update_icon() + icon_state = active ? "sat_active" : "sat_inactive" + +/obj/machinery/satellite/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/device/multitool)) + user << "// NTSAT-[id] // Mode : [active ? "PRIMARY" : "STANDBY"] //[emagged ? "DEBUG_MODE //" : ""]" + else + return ..() + +/obj/machinery/satellite/meteor_shield + name = "Meteor Shield Satellite" + desc = "Meteor Point Defense Satellite" + mode = "M-SHIELD" + var/kill_range = 10 + +/obj/machinery/satellite/meteor_shield/proc/space_los(meteor) + for(var/turf/T in getline(src,meteor)) + if(!istype(T, /turf/open/space)) + return FALSE + return TRUE + +/obj/machinery/satellite/meteor_shield/process() + if(!active) + return + for(var/obj/effect/meteor/M in meteor_list) + if(M.z != z) + continue + if(get_dist(M,src) > kill_range) + continue + if(!emagged && space_los(M)) + Beam(get_turf(M),time=5,maxdistance=kill_range) + qdel(M) + +/obj/machinery/satellite/meteor_shield/toggle(user) + if(!..(user)) + return FALSE + if(emagged) + if(active) + change_meteor_chance(2) + else + change_meteor_chance(0.5) + +/obj/machinery/satellite/meteor_shield/proc/change_meteor_chance(mod) + var/datum/round_event_control/E = locate(/datum/round_event_control/meteor_wave) in SSevent.control + if(E) + E.weight *= mod + +/obj/machinery/satellite/meteor_shield/Destroy() + . = ..() + if(active && emagged) + change_meteor_chance(0.5) + +/obj/machinery/satellite/meteor_shield/emag_act() + if(!emagged) + emagged = 1 + if(active) + change_meteor_chance(2) diff --git a/code/modules/station_goals/station_goal.dm b/code/modules/station_goals/station_goal.dm new file mode 100644 index 00000000000..daf6ee7dd1f --- /dev/null +++ b/code/modules/station_goals/station_goal.dm @@ -0,0 +1,64 @@ +//TODO +// Admin button to override with your own +// Sabotage objective for tators +// Multiple goals with less impact but more department focused + +/datum/station_goal + var/name = "Generic Goal" + var/weight = 1 //In case of multiple goals later. + var/required_crew = 10 + var/list/gamemode_blacklist = list() + var/completed = FALSE + var/report_message = "Complete this goal." + +/datum/station_goal/proc/send_report() + priority_announce("Priority Nanotrasen directive received. Project \"[name]\" details inbound.", "Incoming Priority Message", 'sound/AI/commandreport.ogg') + print_command_report(get_report(),"Nanotrasen Directive [pick(phonetic_alphabet)] \Roman[rand(1,50)]") + on_report() + +/datum/station_goal/proc/on_report() + //Additional unlocks/changes go here + return + +/datum/station_goal/proc/get_report() + return report_message + +/datum/station_goal/proc/check_completion() + return completed + +/datum/station_goal/proc/print_result() + if(check_completion()) + world << "Station Goal : [name] : Completed!" + else + world << "Station Goal : [name] : Failed!" + +/datum/station_goal/Destroy() + ticker.mode.station_goals -= src + . = ..() + +/datum/station_goal/Topic(href, href_list) + ..() + + if(!check_rights(R_ADMIN)) + return + + if(href_list["announce"]) + on_report() + send_report() + else if(href_list["remove"]) + qdel(src) + +/* +//Crew has to create alien intelligence detector +// Requires a lot of minerals +// Dish requires a lot of power +// Needs five? AI's for decoding purposes +/datum/station_goal/seti + name = "SETI Project" + +//Crew Sweep +//Blood samples and special scans of amount of people on roundstart manifest. +//Should keep sec busy. +//Maybe after completion you'll get some ling detecting gear or some station wide DNA scan ? + +*/ \ No newline at end of file diff --git a/icons/effects/beam.dmi b/icons/effects/beam.dmi index 7434915c0eb541914377f7062a3ef72c820b5a85..d41b9403fa25d6d2bca5722e0f5fda28db8ecf1b 100644 GIT binary patch literal 10800 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

&00kHd3#qT=DIsdA)AQ8%$>^ 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 literal 0 HcmV?d00001 diff --git a/icons/obj/machines/dna_vault.dmi b/icons/obj/machines/dna_vault.dmi new file mode 100644 index 0000000000000000000000000000000000000000..35503336d427a84260d9374c1451183d4bea9b76 GIT binary patch literal 33625 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ʃz33N9j{FQbOdgjSa}H&OtzcA-z}i#MpVY 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 YEw1k;yD3{22?+R7l2endk~RzaKU2{U=>Px# literal 0 HcmV?d00001 diff --git a/icons/obj/machines/satellite.dmi b/icons/obj/machines/satellite.dmi new file mode 100644 index 0000000000000000000000000000000000000000..efe3dade763878fb1ad128a0a0bbea84bb34a008 GIT binary patch literal 650 zcmV;50(Jd~P)IDj!u#0|o#900DGTPE!Ct=GbNc004A)R9JLGWpiV4X>fFD zZ*Bkpc$`yKaB_9`^iy#0_2eo`Eh^5;&r`5fFwryM;w;ZhDainGjE%TBGg33tGfE(w z;*!LYR3KBSII$!?F}WnOELDk%GbOXA7$|7S#hF%=n41b=qbSYH!>?Fb!PU<|D? z=_$s&cyfIJ00BBlL_t(YiS1NtZ-X!lWFB^Ea7ka3z9=nyrT_mA&ZJeft$|8>*`)0x z1R}cgITt62{_zX(_TvKZX9YYBJo*=gcaQ!G5F-)B0H&XS0URh0*qEe;Knm(W5d+JR zU%3ql7|0rkwN}#Sb!OHl;WTa8XErbzPo}fHfdu#w5o>p*ZHp2!M=T1Y1z8EUz)M)o z+oNV)tv6-4tr|Q#Q0(^g8b?`-aWHCTsO$Q0BsCCpz^8M)!EuHI44)NR?#~zJuH+mA zEyATPi-`(Q*a7kG1mu*jpP>Te4rMWI7w~P+jm%#Ze1Oc(9k)1ZZQ;)0==1Bb#*Kq3 zRg{b0#0KB*t`33QFGo}@a{FRpx&0J7XVrn#xH|a3+7Am-+1!fhoYoEpL{dpE!|rMC kFrZloOUiv_{T@UJAC4IjenyJ-M*si-07*qoM6N<$f_{(z%>V!Z literal 0 HcmV?d00001 diff --git a/tgstation.dme b/tgstation.dme index 649225dd5bd..ef6de0d8c5e 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1818,6 +1818,10 @@ #include "code\modules\spells\spell_types\trigger.dm" #include "code\modules\spells\spell_types\turf_teleport.dm" #include "code\modules\spells\spell_types\wizard.dm" +#include "code\modules\station_goals\bsa.dm" +#include "code\modules\station_goals\dna_vault.dm" +#include "code\modules\station_goals\shield.dm" +#include "code\modules\station_goals\station_goal.dm" #include "code\modules\stock_market\articles.dm" #include "code\modules\stock_market\computer.dm" #include "code\modules\stock_market\events.dm" diff --git a/tgui/assets/tgui.js b/tgui/assets/tgui.js index 47ef698d7f9..ec8b0ce7eed 100644 --- a/tgui/assets/tgui.js +++ b/tgui/assets/tgui.js @@ -1,15 +1,16 @@ -require=function t(e,n,a){function r(o,s){if(!n[o]){if(!e[o]){var u="function"==typeof require&&require;if(!s&&u)return u(o,!0);if(i)return i(o,!0);var p=Error("Cannot find module '"+o+"'");throw p.code="MODULE_NOT_FOUND",p}var c=n[o]={exports:{}};e[o][0].call(c.exports,function(t){var n=e[o][1][t];return r(n?n:t)},c,c.exports,t,e,n,a)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;o2?p[2]:void 0,l=Math.min((void 0===c?o:r(c,o))-u,o-s),f=1;for(s>u&&u+l>s&&(f=-1,u+=l-1,s+=l-1);l-- >0;)u in n?n[s]=n[u]:delete n[s],s+=f,u+=f;return n}},{76:76,79:79,80:80}],6:[function(t,e,n){"use strict";var a=t(80),r=t(76),i=t(79);e.exports=[].fill||function(t){for(var e=a(this),n=i(e.length),o=arguments,s=o.length,u=r(s>1?o[1]:void 0,n),p=s>2?o[2]:void 0,c=void 0===p?n:r(p,n);c>u;)e[u++]=t;return e}},{76:76,79:79,80:80}],7:[function(t,e,n){var a=t(78),r=t(79),i=t(76);e.exports=function(t){return function(e,n,o){var s,u=a(e),p=r(u.length),c=i(o,p);if(t&&n!=n){for(;p>c;)if(s=u[c++],s!=s)return!0}else for(;p>c;c++)if((t||c in u)&&u[c]===n)return t||c;return!t&&-1}}},{76:76,78:78,79:79}],8:[function(t,e,n){var a=t(17),r=t(34),i=t(80),o=t(79),s=t(9);e.exports=function(t){var e=1==t,n=2==t,u=3==t,p=4==t,c=6==t,l=5==t||c;return function(f,d,h){for(var m,v,g=i(f),b=r(g),y=a(d,h,3),_=o(b.length),x=0,w=e?s(f,_):n?s(f,0):void 0;_>x;x++)if((l||x in b)&&(m=b[x],v=y(m,x,g),t))if(e)w[x]=v;else if(v)switch(t){case 3:return!0;case 5:return m;case 6:return x;case 2:w.push(m)}else if(p)return!1;return c?-1:u||p?p:w}}},{17:17,34:34,79:79,80:80,9:9}],9:[function(t,e,n){var a=t(38),r=t(36),i=t(83)("species");e.exports=function(t,e){var n;return r(t)&&(n=t.constructor,"function"!=typeof n||n!==Array&&!r(n.prototype)||(n=void 0),a(n)&&(n=n[i],null===n&&(n=void 0))),new(void 0===n?Array:n)(e)}},{36:36,38:38,83:83}],10:[function(t,e,n){var a=t(11),r=t(83)("toStringTag"),i="Arguments"==a(function(){return arguments}());e.exports=function(t){var e,n,o;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=(e=Object(t))[r])?n:i?a(e):"Object"==(o=a(e))&&"function"==typeof e.callee?"Arguments":o}},{11:11,83:83}],11:[function(t,e,n){var a={}.toString;e.exports=function(t){return a.call(t).slice(8,-1)}},{}],12:[function(t,e,n){"use strict";var a=t(46),r=t(31),i=t(60),o=t(17),s=t(69),u=t(18),p=t(27),c=t(42),l=t(44),f=t(82)("id"),d=t(30),h=t(38),m=t(65),v=t(19),g=Object.isExtensible||h,b=v?"_s":"size",y=0,_=function(t,e){if(!h(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!d(t,f)){if(!g(t))return"F";if(!e)return"E";r(t,f,++y)}return"O"+t[f]},x=function(t,e){var n,a=_(e);if("F"!==a)return t._i[a];for(n=t._f;n;n=n.n)if(n.k==e)return n};e.exports={getConstructor:function(t,e,n,r){var c=t(function(t,i){s(t,c,e),t._i=a.create(null),t._f=void 0,t._l=void 0,t[b]=0,void 0!=i&&p(i,n,t[r],t)});return i(c.prototype,{clear:function(){for(var t=this,e=t._i,n=t._f;n;n=n.n)n.r=!0,n.p&&(n.p=n.p.n=void 0),delete e[n.i];t._f=t._l=void 0,t[b]=0},"delete":function(t){var e=this,n=x(e,t);if(n){var a=n.n,r=n.p;delete e._i[n.i],n.r=!0,r&&(r.n=a),a&&(a.p=r),e._f==n&&(e._f=a),e._l==n&&(e._l=r),e[b]--}return!!n},forEach:function(t){for(var e,n=o(t,arguments.length>1?arguments[1]:void 0,3);e=e?e.n:this._f;)for(n(e.v,e.k,this);e&&e.r;)e=e.p},has:function(t){return!!x(this,t)}}),v&&a.setDesc(c.prototype,"size",{get:function(){return u(this[b])}}),c},def:function(t,e,n){var a,r,i=x(t,e);return i?i.v=n:(t._l=i={i:r=_(e,!0),k:e,v:n,p:a=t._l,n:void 0,r:!1},t._f||(t._f=i),a&&(a.n=i),t[b]++,"F"!==r&&(t._i[r]=i)),t},getEntry:x,setStrong:function(t,e,n){c(t,e,function(t,e){this._t=t,this._k=e,this._l=void 0},function(){for(var t=this,e=t._k,n=t._l;n&&n.r;)n=n.p;return t._t&&(t._l=n=n?n.n:t._t._f)?"keys"==e?l(0,n.k):"values"==e?l(0,n.v):l(0,[n.k,n.v]):(t._t=void 0,l(1))},n?"entries":"values",!n,!0),m(e)}}},{17:17,18:18,19:19,27:27,30:30,31:31,38:38,42:42,44:44,46:46,60:60,65:65,69:69,82:82}],13:[function(t,e,n){var a=t(27),r=t(10);e.exports=function(t){return function(){if(r(this)!=t)throw TypeError(t+"#toJSON isn't generic");var e=[];return a(this,!1,e.push,e),e}}},{10:10,27:27}],14:[function(t,e,n){"use strict";var a=t(31),r=t(60),i=t(4),o=t(38),s=t(69),u=t(27),p=t(8),c=t(30),l=t(82)("weak"),f=Object.isExtensible||o,d=p(5),h=p(6),m=0,v=function(t){return t._l||(t._l=new g)},g=function(){this.a=[]},b=function(t,e){return d(t.a,function(t){return t[0]===e})};g.prototype={get:function(t){var e=b(this,t);return e?e[1]:void 0},has:function(t){return!!b(this,t)},set:function(t,e){var n=b(this,t);n?n[1]=e:this.a.push([t,e])},"delete":function(t){var e=h(this.a,function(e){return e[0]===t});return~e&&this.a.splice(e,1),!!~e}},e.exports={getConstructor:function(t,e,n,a){var i=t(function(t,r){s(t,i,e),t._i=m++,t._l=void 0,void 0!=r&&u(r,n,t[a],t)});return r(i.prototype,{"delete":function(t){return o(t)?f(t)?c(t,l)&&c(t[l],this._i)&&delete t[l][this._i]:v(this)["delete"](t):!1},has:function(t){return o(t)?f(t)?c(t,l)&&c(t[l],this._i):v(this).has(t):!1}}),i},def:function(t,e,n){return f(i(e))?(c(e,l)||a(e,l,{}),e[l][t._i]=n):v(t).set(e,n),t},frozenStore:v,WEAK:l}},{27:27,30:30,31:31,38:38,4:4,60:60,69:69,8:8,82:82}],15:[function(t,e,n){"use strict";var a=t(29),r=t(22),i=t(61),o=t(60),s=t(27),u=t(69),p=t(38),c=t(24),l=t(43),f=t(66);e.exports=function(t,e,n,d,h,m){var v=a[t],g=v,b=h?"set":"add",y=g&&g.prototype,_={},x=function(t){var e=y[t];i(y,t,"delete"==t?function(t){return m&&!p(t)?!1:e.call(this,0===t?0:t)}:"has"==t?function(t){return m&&!p(t)?!1:e.call(this,0===t?0:t)}:"get"==t?function(t){return m&&!p(t)?void 0:e.call(this,0===t?0:t)}:"add"==t?function(t){return e.call(this,0===t?0:t),this}:function(t,n){return e.call(this,0===t?0:t,n),this})};if("function"==typeof g&&(m||y.forEach&&!c(function(){(new g).entries().next()}))){var w,k=new g,P=k[b](m?{}:-0,1)!=k,E=c(function(){k.has(1)}),C=l(function(t){new g(t)});C||(g=e(function(e,n){u(e,g,t);var a=new v;return void 0!=n&&s(n,h,a[b],a),a}),g.prototype=y,y.constructor=g),m||k.forEach(function(t,e){w=1/e===-(1/0)}),(E||w)&&(x("delete"),x("has"),h&&x("get")),(w||P)&&x(b),m&&y.clear&&delete y.clear}else g=d.getConstructor(e,t,h,b),o(g.prototype,n);return f(g,t),_[t]=g,r(r.G+r.W+r.F*(g!=v),_),m||d.setStrong(g,t,h),g}},{22:22,24:24,27:27,29:29,38:38,43:43,60:60,61:61,66:66,69:69}],16:[function(t,e,n){var a=e.exports={version:"1.2.6"};"number"==typeof __e&&(__e=a)},{}],17:[function(t,e,n){var a=t(2);e.exports=function(t,e,n){if(a(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,a){return t.call(e,n,a)};case 3:return function(n,a,r){return t.call(e,n,a,r)}}return function(){return t.apply(e,arguments)}}},{2:2}],18:[function(t,e,n){e.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},{}],19:[function(t,e,n){e.exports=!t(24)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},{24:24}],20:[function(t,e,n){var a=t(38),r=t(29).document,i=a(r)&&a(r.createElement);e.exports=function(t){return i?r.createElement(t):{}}},{29:29,38:38}],21:[function(t,e,n){var a=t(46);e.exports=function(t){var e=a.getKeys(t),n=a.getSymbols;if(n)for(var r,i=n(t),o=a.isEnum,s=0;i.length>s;)o.call(t,r=i[s++])&&e.push(r);return e}},{46:46}],22:[function(t,e,n){var a=t(29),r=t(16),i=t(31),o=t(61),s=t(17),u="prototype",p=function(t,e,n){var c,l,f,d,h=t&p.F,m=t&p.G,v=t&p.S,g=t&p.P,b=t&p.B,y=m?a:v?a[e]||(a[e]={}):(a[e]||{})[u],_=m?r:r[e]||(r[e]={}),x=_[u]||(_[u]={});m&&(n=e);for(c in n)l=!h&&y&&c in y,f=(l?y:n)[c],d=b&&l?s(f,a):g&&"function"==typeof f?s(Function.call,f):f,y&&!l&&o(y,c,f),_[c]!=f&&i(_,c,d),g&&x[c]!=f&&(x[c]=f)};a.core=r,p.F=1,p.G=2,p.S=4,p.P=8,p.B=16,p.W=32,e.exports=p},{16:16,17:17,29:29,31:31,61:61}],23:[function(t,e,n){var a=t(83)("match");e.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[a]=!1,!"/./"[t](e)}catch(r){}}return!0}},{83:83}],24:[function(t,e,n){e.exports=function(t){try{return!!t()}catch(e){return!0}}},{}],25:[function(t,e,n){"use strict";var a=t(31),r=t(61),i=t(24),o=t(18),s=t(83);e.exports=function(t,e,n){var u=s(t),p=""[t];i(function(){var e={};return e[u]=function(){return 7},7!=""[t](e)})&&(r(String.prototype,t,n(o,u,p)),a(RegExp.prototype,u,2==e?function(t,e){return p.call(t,this,e)}:function(t){return p.call(t,this)}))}},{18:18,24:24,31:31,61:61,83:83}],26:[function(t,e,n){"use strict";var a=t(4);e.exports=function(){var t=a(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},{4:4}],27:[function(t,e,n){var a=t(17),r=t(40),i=t(35),o=t(4),s=t(79),u=t(84);e.exports=function(t,e,n,p){var c,l,f,d=u(t),h=a(n,p,e?2:1),m=0;if("function"!=typeof d)throw TypeError(t+" is not iterable!");if(i(d))for(c=s(t.length);c>m;m++)e?h(o(l=t[m])[0],l[1]):h(t[m]);else for(f=d.call(t);!(l=f.next()).done;)r(f,h,l.value,e)}},{17:17,35:35,4:4,40:40,79:79,84:84}],28:[function(t,e,n){var a=t(78),r=t(46).getNames,i={}.toString,o="object"==typeof window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(t){try{return r(t)}catch(e){return o.slice()}};e.exports.get=function(t){return o&&"[object Window]"==i.call(t)?s(t):r(a(t))}},{46:46,78:78}],29:[function(t,e,n){var a=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=a)},{}],30:[function(t,e,n){var a={}.hasOwnProperty;e.exports=function(t,e){return a.call(t,e)}},{}],31:[function(t,e,n){var a=t(46),r=t(59);e.exports=t(19)?function(t,e,n){return a.setDesc(t,e,r(1,n))}:function(t,e,n){return t[e]=n,t}},{19:19,46:46,59:59}],32:[function(t,e,n){e.exports=t(29).document&&document.documentElement},{29:29}],33:[function(t,e,n){e.exports=function(t,e,n){var a=void 0===n;switch(e.length){case 0:return a?t():t.call(n);case 1:return a?t(e[0]):t.call(n,e[0]);case 2:return a?t(e[0],e[1]):t.call(n,e[0],e[1]);case 3:return a?t(e[0],e[1],e[2]):t.call(n,e[0],e[1],e[2]);case 4:return a?t(e[0],e[1],e[2],e[3]):t.call(n,e[0],e[1],e[2],e[3])}return t.apply(n,e)}},{}],34:[function(t,e,n){var a=t(11);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==a(t)?t.split(""):Object(t)}},{11:11}],35:[function(t,e,n){var a=t(45),r=t(83)("iterator"),i=Array.prototype;e.exports=function(t){return void 0!==t&&(a.Array===t||i[r]===t)}},{45:45,83:83}],36:[function(t,e,n){var a=t(11);e.exports=Array.isArray||function(t){return"Array"==a(t)}},{11:11}],37:[function(t,e,n){var a=t(38),r=Math.floor;e.exports=function(t){return!a(t)&&isFinite(t)&&r(t)===t}},{38:38}],38:[function(t,e,n){e.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},{}],39:[function(t,e,n){var a=t(38),r=t(11),i=t(83)("match");e.exports=function(t){var e;return a(t)&&(void 0!==(e=t[i])?!!e:"RegExp"==r(t))}},{11:11,38:38,83:83}],40:[function(t,e,n){var a=t(4);e.exports=function(t,e,n,r){try{return r?e(a(n)[0],n[1]):e(n)}catch(i){var o=t["return"];throw void 0!==o&&a(o.call(t)),i}}},{4:4}],41:[function(t,e,n){"use strict";var a=t(46),r=t(59),i=t(66),o={};t(31)(o,t(83)("iterator"),function(){return this}),e.exports=function(t,e,n){t.prototype=a.create(o,{next:r(1,n)}),i(t,e+" Iterator")}},{31:31,46:46,59:59,66:66,83:83}],42:[function(t,e,n){"use strict";var a=t(48),r=t(22),i=t(61),o=t(31),s=t(30),u=t(45),p=t(41),c=t(66),l=t(46).getProto,f=t(83)("iterator"),d=!([].keys&&"next"in[].keys()),h="@@iterator",m="keys",v="values",g=function(){return this};e.exports=function(t,e,n,b,y,_,x){p(n,e,b);var w,k,P=function(t){if(!d&&t in A)return A[t];switch(t){case m:return function(){return new n(this,t)};case v:return function(){return new n(this,t)}}return function(){return new n(this,t)}},E=e+" Iterator",C=y==v,S=!1,A=t.prototype,O=A[f]||A[h]||y&&A[y],T=O||P(y);if(O){var M=l(T.call(new t));c(M,E,!0),!a&&s(A,h)&&o(M,f,g),C&&O.name!==v&&(S=!0,T=function(){return O.call(this)})}if(a&&!x||!d&&!S&&A[f]||o(A,f,T),u[e]=T,u[E]=g,y)if(w={values:C?T:P(v),keys:_?T:P(m),entries:C?P("entries"):T},x)for(k in w)k in A||i(A,k,w[k]);else r(r.P+r.F*(d||S),e,w);return w}},{22:22,30:30,31:31,41:41,45:45,46:46,48:48,61:61,66:66,83:83}],43:[function(t,e,n){var a=t(83)("iterator"),r=!1;try{var i=[7][a]();i["return"]=function(){r=!0},Array.from(i,function(){throw 2})}catch(o){}e.exports=function(t,e){if(!e&&!r)return!1;var n=!1;try{var i=[7],o=i[a]();o.next=function(){n=!0},i[a]=function(){return o},t(i)}catch(s){}return n}},{83:83}],44:[function(t,e,n){e.exports=function(t,e){return{value:e,done:!!t}}},{}],45:[function(t,e,n){e.exports={}},{}],46:[function(t,e,n){var a=Object;e.exports={create:a.create,getProto:a.getPrototypeOf,isEnum:{}.propertyIsEnumerable,getDesc:a.getOwnPropertyDescriptor,setDesc:a.defineProperty,setDescs:a.defineProperties,getKeys:a.keys,getNames:a.getOwnPropertyNames,getSymbols:a.getOwnPropertySymbols,each:[].forEach}},{}],47:[function(t,e,n){var a=t(46),r=t(78);e.exports=function(t,e){for(var n,i=r(t),o=a.getKeys(i),s=o.length,u=0;s>u;)if(i[n=o[u++]]===e)return n}},{46:46,78:78}],48:[function(t,e,n){e.exports=!1},{}],49:[function(t,e,n){e.exports=Math.expm1||function(t){return 0==(t=+t)?t:t>-1e-6&&1e-6>t?t+t*t/2:Math.exp(t)-1}},{}],50:[function(t,e,n){e.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&1e-8>t?t-t*t/2:Math.log(1+t)}},{}],51:[function(t,e,n){e.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:0>t?-1:1}},{}],52:[function(t,e,n){var a,r,i,o=t(29),s=t(75).set,u=o.MutationObserver||o.WebKitMutationObserver,p=o.process,c=o.Promise,l="process"==t(11)(p),f=function(){var t,e,n;for(l&&(t=p.domain)&&(p.domain=null,t.exit());a;)e=a.domain,n=a.fn,e&&e.enter(),n(),e&&e.exit(),a=a.next;r=void 0,t&&t.enter()};if(l)i=function(){p.nextTick(f)};else if(u){var d=1,h=document.createTextNode("");new u(f).observe(h,{characterData:!0}),i=function(){h.data=d=-d}}else i=c&&c.resolve?function(){c.resolve().then(f)}:function(){s.call(o,f)};e.exports=function(t){var e={fn:t,next:void 0,domain:l&&p.domain};r&&(r.next=e),a||(a=e,i()),r=e}},{11:11,29:29,75:75}],53:[function(t,e,n){var a=t(46),r=t(80),i=t(34);e.exports=t(24)(function(){var t=Object.assign,e={},n={},a=Symbol(),r="abcdefghijklmnopqrst";return e[a]=7,r.split("").forEach(function(t){n[t]=t}),7!=t({},e)[a]||Object.keys(t({},n)).join("")!=r})?function(t,e){for(var n=r(t),o=arguments,s=o.length,u=1,p=a.getKeys,c=a.getSymbols,l=a.isEnum;s>u;)for(var f,d=i(o[u++]),h=c?p(d).concat(c(d)):p(d),m=h.length,v=0;m>v;)l.call(d,f=h[v++])&&(n[f]=d[f]);return n}:Object.assign},{24:24,34:34,46:46,80:80}],54:[function(t,e,n){var a=t(22),r=t(16),i=t(24);e.exports=function(t,e){var n=(r.Object||{})[t]||Object[t],o={};o[t]=e(n),a(a.S+a.F*i(function(){n(1)}),"Object",o)}},{16:16,22:22,24:24}],55:[function(t,e,n){var a=t(46),r=t(78),i=a.isEnum;e.exports=function(t){return function(e){for(var n,o=r(e),s=a.getKeys(o),u=s.length,p=0,c=[];u>p;)i.call(o,n=s[p++])&&c.push(t?[n,o[n]]:o[n]);return c}}},{46:46,78:78}],56:[function(t,e,n){var a=t(46),r=t(4),i=t(29).Reflect;e.exports=i&&i.ownKeys||function(t){var e=a.getNames(r(t)),n=a.getSymbols;return n?e.concat(n(t)):e}},{29:29,4:4,46:46}],57:[function(t,e,n){"use strict";var a=t(58),r=t(33),i=t(2);e.exports=function(){for(var t=i(this),e=arguments.length,n=Array(e),o=0,s=a._,u=!1;e>o;)(n[o]=arguments[o++])===s&&(u=!0);return function(){var a,i=this,o=arguments,p=o.length,c=0,l=0;if(!u&&!p)return r(t,n,i);if(a=n.slice(),u)for(;e>c;c++)a[c]===s&&(a[c]=o[l++]);for(;p>l;)a.push(o[l++]);return r(t,a,i)}}},{2:2,33:33,58:58}],58:[function(t,e,n){e.exports=t(29)},{29:29}],59:[function(t,e,n){e.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},{}],60:[function(t,e,n){var a=t(61);e.exports=function(t,e){for(var n in e)a(t,n,e[n]);return t}},{61:61}],61:[function(t,e,n){var a=t(29),r=t(31),i=t(82)("src"),o="toString",s=Function[o],u=(""+s).split(o);t(16).inspectSource=function(t){return s.call(t)},(e.exports=function(t,e,n,o){"function"==typeof n&&(n.hasOwnProperty(i)||r(n,i,t[e]?""+t[e]:u.join(e+"")),n.hasOwnProperty("name")||r(n,"name",e)),t===a?t[e]=n:(o||delete t[e],r(t,e,n))})(Function.prototype,o,function(){return"function"==typeof this&&this[i]||s.call(this)})},{16:16,29:29,31:31,82:82}],62:[function(t,e,n){e.exports=function(t,e){var n=e===Object(e)?function(t){return e[t]}:e;return function(e){return(e+"").replace(t,n)}}},{}],63:[function(t,e,n){e.exports=Object.is||function(t,e){return t===e?0!==t||1/t===1/e:t!=t&&e!=e}},{}],64:[function(t,e,n){var a=t(46).getDesc,r=t(38),i=t(4),o=function(t,e){if(i(t),!r(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,n,r){try{r=t(17)(Function.call,a(Object.prototype,"__proto__").set,2),r(e,[]),n=!(e instanceof Array)}catch(i){n=!0}return function(t,e){return o(t,e),n?t.__proto__=e:r(t,e),t}}({},!1):void 0),check:o}},{17:17,38:38,4:4,46:46}],65:[function(t,e,n){"use strict";var a=t(29),r=t(46),i=t(19),o=t(83)("species");e.exports=function(t){var e=a[t];i&&e&&!e[o]&&r.setDesc(e,o,{configurable:!0,get:function(){return this}})}},{19:19,29:29,46:46,83:83}],66:[function(t,e,n){var a=t(46).setDesc,r=t(30),i=t(83)("toStringTag");e.exports=function(t,e,n){t&&!r(t=n?t:t.prototype,i)&&a(t,i,{configurable:!0,value:e})}},{30:30,46:46,83:83}],67:[function(t,e,n){var a=t(29),r="__core-js_shared__",i=a[r]||(a[r]={});e.exports=function(t){return i[t]||(i[t]={})}},{29:29}],68:[function(t,e,n){var a=t(4),r=t(2),i=t(83)("species");e.exports=function(t,e){var n,o=a(t).constructor;return void 0===o||void 0==(n=a(o)[i])?e:r(n)}},{2:2,4:4,83:83}],69:[function(t,e,n){e.exports=function(t,e,n){if(!(t instanceof e))throw TypeError(n+": use the 'new' operator!");return t}},{}],70:[function(t,e,n){var a=t(77),r=t(18);e.exports=function(t){return function(e,n){var i,o,s=r(e)+"",u=a(n),p=s.length;return 0>u||u>=p?t?"":void 0:(i=s.charCodeAt(u),55296>i||i>56319||u+1===p||(o=s.charCodeAt(u+1))<56320||o>57343?t?s.charAt(u):i:t?s.slice(u,u+2):(i-55296<<10)+(o-56320)+65536)}}},{18:18,77:77}],71:[function(t,e,n){var a=t(39),r=t(18);e.exports=function(t,e,n){if(a(e))throw TypeError("String#"+n+" doesn't accept regex!");return r(t)+""}},{18:18,39:39}],72:[function(t,e,n){var a=t(79),r=t(73),i=t(18);e.exports=function(t,e,n,o){var s=i(t)+"",u=s.length,p=void 0===n?" ":n+"",c=a(e);if(u>=c)return s;""==p&&(p=" ");var l=c-u,f=r.call(p,Math.ceil(l/p.length));return f.length>l&&(f=f.slice(0,l)),o?f+s:s+f}},{18:18,73:73,79:79}],73:[function(t,e,n){"use strict";var a=t(77),r=t(18);e.exports=function(t){var e=r(this)+"",n="",i=a(t);if(0>i||i==1/0)throw RangeError("Count can't be negative");for(;i>0;(i>>>=1)&&(e+=e))1&i&&(n+=e);return n}},{18:18,77:77}],74:[function(t,e,n){var a=t(22),r=t(18),i=t(24),o=" \n\x0B\f\r   ᠎              \u2028\u2029\ufeff",s="["+o+"]",u="​…",p=RegExp("^"+s+s+"*"),c=RegExp(s+s+"*$"),l=function(t,e){var n={};n[t]=e(f),a(a.P+a.F*i(function(){return!!o[t]()||u[t]()!=u}),"String",n)},f=l.trim=function(t,e){return t=r(t)+"",1&e&&(t=t.replace(p,"")),2&e&&(t=t.replace(c,"")),t};e.exports=l},{18:18,22:22,24:24}],75:[function(t,e,n){var a,r,i,o=t(17),s=t(33),u=t(32),p=t(20),c=t(29),l=c.process,f=c.setImmediate,d=c.clearImmediate,h=c.MessageChannel,m=0,v={},g="onreadystatechange",b=function(){var t=+this;if(v.hasOwnProperty(t)){var e=v[t];delete v[t],e()}},y=function(t){b.call(t.data)};f&&d||(f=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return v[++m]=function(){s("function"==typeof t?t:Function(t),e)},a(m),m},d=function(t){delete v[t]},"process"==t(11)(l)?a=function(t){l.nextTick(o(b,t,1))}:h?(r=new h,i=r.port2,r.port1.onmessage=y,a=o(i.postMessage,i,1)):c.addEventListener&&"function"==typeof postMessage&&!c.importScripts?(a=function(t){c.postMessage(t+"","*")},c.addEventListener("message",y,!1)):a=g in p("script")?function(t){u.appendChild(p("script"))[g]=function(){u.removeChild(this),b.call(t)}}:function(t){setTimeout(o(b,t,1),0)}),e.exports={set:f,clear:d}},{11:11,17:17,20:20,29:29,32:32,33:33}],76:[function(t,e,n){var a=t(77),r=Math.max,i=Math.min;e.exports=function(t,e){return t=a(t),0>t?r(t+e,0):i(t,e)}},{77:77}],77:[function(t,e,n){var a=Math.ceil,r=Math.floor;e.exports=function(t){return isNaN(t=+t)?0:(t>0?r:a)(t)}},{}],78:[function(t,e,n){var a=t(34),r=t(18);e.exports=function(t){return a(r(t))}},{18:18,34:34}],79:[function(t,e,n){var a=t(77),r=Math.min;e.exports=function(t){return t>0?r(a(t),9007199254740991):0}},{77:77}],80:[function(t,e,n){var a=t(18);e.exports=function(t){return Object(a(t))}},{18:18}],81:[function(t,e,n){var a=t(38);e.exports=function(t,e){if(!a(t))return t;var n,r;if(e&&"function"==typeof(n=t.toString)&&!a(r=n.call(t)))return r;if("function"==typeof(n=t.valueOf)&&!a(r=n.call(t)))return r;if(!e&&"function"==typeof(n=t.toString)&&!a(r=n.call(t)))return r;throw TypeError("Can't convert object to primitive value")}},{38:38}],82:[function(t,e,n){var a=0,r=Math.random();e.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++a+r).toString(36))}},{}],83:[function(t,e,n){var a=t(67)("wks"),r=t(82),i=t(29).Symbol;e.exports=function(t){return a[t]||(a[t]=i&&i[t]||(i||r)("Symbol."+t))}},{29:29,67:67,82:82}],84:[function(t,e,n){var a=t(10),r=t(83)("iterator"),i=t(45);e.exports=t(16).getIteratorMethod=function(t){return void 0!=t?t[r]||t["@@iterator"]||i[a(t)]:void 0}},{10:10,16:16,45:45,83:83}],85:[function(t,e,n){"use strict";var a,r=t(46),i=t(22),o=t(19),s=t(59),u=t(32),p=t(20),c=t(30),l=t(11),f=t(33),d=t(24),h=t(4),m=t(2),v=t(38),g=t(80),b=t(78),y=t(77),_=t(76),x=t(79),w=t(34),k=t(82)("__proto__"),P=t(8),E=t(7)(!1),C=Object.prototype,S=Array.prototype,A=S.slice,O=S.join,T=r.setDesc,M=r.getDesc,R=r.setDescs,j={};o||(a=!d(function(){return 7!=T(p("div"),"a",{get:function(){return 7}}).a}),r.setDesc=function(t,e,n){if(a)try{return T(t,e,n)}catch(r){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(h(t)[e]=n.value),t},r.getDesc=function(t,e){if(a)try{return M(t,e)}catch(n){}return c(t,e)?s(!C.propertyIsEnumerable.call(t,e),t[e]):void 0},r.setDescs=R=function(t,e){h(t);for(var n,a=r.getKeys(e),i=a.length,o=0;i>o;)r.setDesc(t,n=a[o++],e[n]);return t}),i(i.S+i.F*!o,"Object",{getOwnPropertyDescriptor:r.getDesc,defineProperty:r.setDesc,defineProperties:R});var L="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(","),N=L.concat("length","prototype"),F=L.length,D=function(){var t,e=p("iframe"),n=F,a=">";for(e.style.display="none",u.appendChild(e),e.src="javascript:",t=e.contentWindow.document,t.open(),t.write("