├── src ├── locales │ ├── pl-PL │ │ ├── accounts │ │ │ ├── device-auth.json │ │ │ ├── general.json │ │ │ ├── remove-account.json │ │ │ ├── auth-code.json │ │ │ └── exchange-code.json │ │ ├── account-management │ │ │ ├── eula.json │ │ │ ├── vbucks-information.json │ │ │ ├── redeem-codes.json │ │ │ ├── epic-settings.json │ │ │ └── devices-auth.json │ │ ├── stw-operations │ │ │ ├── save-quests.json │ │ │ ├── homebase-name.json │ │ │ ├── urns.json │ │ │ ├── unlock.json │ │ │ └── auto-kick.json │ │ ├── zones.json │ │ └── history.json │ ├── pt-BR │ │ ├── accounts │ │ │ ├── device-auth.json │ │ │ ├── general.json │ │ │ ├── remove-account.json │ │ │ ├── auth-code.json │ │ │ └── exchange-code.json │ │ ├── stw-operations │ │ │ ├── save-quests.json │ │ │ ├── homebase-name.json │ │ │ ├── urns.json │ │ │ ├── unlock.json │ │ │ └── auto-kick.json │ │ ├── account-management │ │ │ ├── vbucks-information.json │ │ │ ├── eula.json │ │ │ ├── redeem-codes.json │ │ │ ├── epic-settings.json │ │ │ └── devices-auth.json │ │ ├── zones.json │ │ └── history.json │ ├── en-US │ │ ├── accounts │ │ │ ├── device-auth.json │ │ │ ├── general.json │ │ │ ├── remove-account.json │ │ │ ├── auth-code.json │ │ │ └── exchange-code.json │ │ ├── account-management │ │ │ ├── eula.json │ │ │ ├── vbucks-information.json │ │ │ ├── redeem-codes.json │ │ │ ├── epic-settings.json │ │ │ └── devices-auth.json │ │ ├── stw-operations │ │ │ ├── save-quests.json │ │ │ ├── homebase-name.json │ │ │ ├── urns.json │ │ │ ├── unlock.json │ │ │ └── auto-kick.json │ │ ├── zones.json │ │ └── history.json │ ├── es-419 │ │ ├── accounts │ │ │ ├── device-auth.json │ │ │ ├── general.json │ │ │ ├── remove-account.json │ │ │ ├── auth-code.json │ │ │ └── exchange-code.json │ │ ├── account-management │ │ │ ├── eula.json │ │ │ ├── vbucks-information.json │ │ │ ├── redeem-codes.json │ │ │ ├── epic-settings.json │ │ │ └── devices-auth.json │ │ ├── stw-operations │ │ │ ├── save-quests.json │ │ │ ├── homebase-name.json │ │ │ ├── urns.json │ │ │ ├── unlock.json │ │ │ └── auto-kick.json │ │ ├── zones.json │ │ └── history.json │ ├── it-IT │ │ ├── accounts │ │ │ ├── device-auth.json │ │ │ ├── remove-account.json │ │ │ ├── general.json │ │ │ ├── auth-code.json │ │ │ └── exchange-code.json │ │ ├── zones.json │ │ ├── account-management │ │ │ ├── eula.json │ │ │ ├── vbucks-information.json │ │ │ ├── redeem-codes.json │ │ │ ├── epic-settings.json │ │ │ └── devices-auth.json │ │ ├── stw-operations │ │ │ ├── save-quests.json │ │ │ ├── homebase-name.json │ │ │ ├── urns.json │ │ │ ├── unlock.json │ │ │ └── auto-kick.json │ │ └── history.json │ ├── ru-RU │ │ ├── accounts │ │ │ ├── device-auth.json │ │ │ ├── general.json │ │ │ ├── remove-account.json │ │ │ ├── auth-code.json │ │ │ └── exchange-code.json │ │ ├── stw-operations │ │ │ ├── save-quests.json │ │ │ ├── homebase-name.json │ │ │ ├── unlock.json │ │ │ ├── urns.json │ │ │ └── auto-kick.json │ │ ├── zones.json │ │ ├── account-management │ │ │ ├── eula.json │ │ │ ├── vbucks-information.json │ │ │ ├── redeem-codes.json │ │ │ ├── epic-settings.json │ │ │ └── devices-auth.json │ │ └── history.json │ └── zh-CN │ │ ├── accounts │ │ ├── device-auth.json │ │ ├── general.json │ │ ├── remove-account.json │ │ ├── auth-code.json │ │ └── exchange-code.json │ │ ├── account-management │ │ ├── eula.json │ │ ├── vbucks-information.json │ │ ├── redeem-codes.json │ │ ├── epic-settings.json │ │ └── devices-auth.json │ │ ├── stw-operations │ │ ├── urns.json │ │ ├── save-quests.json │ │ ├── unlock.json │ │ ├── homebase-name.json │ │ └── auto-kick.json │ │ ├── zones.json │ │ ├── history.json │ │ └── advanced-mode │ │ └── matchmaking-track.json ├── config │ ├── constants │ │ ├── colors.ts │ │ ├── examples.ts │ │ ├── fortnite │ │ │ ├── party.ts │ │ │ ├── quests.ts │ │ │ └── founder.ts │ │ ├── bots.ts │ │ ├── xpboosts.ts │ │ ├── mcp.ts │ │ ├── tags.ts │ │ ├── automation.ts │ │ └── settings.ts │ ├── about │ │ └── links.ts │ └── fortnite │ │ └── links.ts ├── kernel │ ├── preload-actions │ │ ├── schedules │ │ │ └── index.ts │ │ └── mcp │ │ │ └── index.ts │ ├── core │ │ └── mcp │ │ │ └── index.ts │ └── startup │ │ └── groups.ts ├── _assets │ ├── fndb.png │ ├── aerial-launcher.png │ └── aerial-launcher-transparent.png ├── lib │ ├── notifications.ts │ ├── validations │ │ ├── schemas │ │ │ ├── fortnite │ │ │ │ ├── auth.ts │ │ │ │ └── clients.ts │ │ │ ├── matchmaking.ts │ │ │ ├── groups.ts │ │ │ ├── auto-pin-urns-data.ts │ │ │ ├── auto-llamas.ts │ │ │ ├── redeem-codes.ts │ │ │ ├── friends.ts │ │ │ └── tags.ts │ │ ├── properties.ts │ │ └── resources.ts │ ├── timers.ts │ ├── statuses.ts │ ├── parsers │ │ ├── texts.ts │ │ └── numbers.ts │ └── electron-notifications.ts ├── types │ ├── services │ │ ├── caldera.d.ts │ │ ├── friends.d.ts │ │ ├── errors.d.ts │ │ ├── storefront.d.ts │ │ └── mcp │ │ │ ├── index.d.ts │ │ │ └── storage-transfer.d.ts │ ├── authentication.d.ts │ ├── utils.d.ts │ ├── tags.d.ts │ ├── groups.d.ts │ ├── friends.d.ts │ ├── notifications.d.ts │ ├── auto-llamas.d.ts │ ├── urns.d.ts │ ├── redeem-codes.d.ts │ ├── party.d.ts │ ├── settings.d.ts │ └── accounts.d.ts ├── data │ └── survivors.json ├── hooks │ ├── language.ts │ ├── ui │ │ └── sidebars.ts │ ├── management │ │ ├── eula.ts │ │ └── unlock.ts │ ├── advanced-mode │ │ └── matchmaking.ts │ └── groups.ts ├── services │ ├── endpoints │ │ ├── repository.ts │ │ ├── storefront.ts │ │ ├── store.ts │ │ ├── advanced-mode │ │ │ └── world-info.ts │ │ ├── matchmaking.ts │ │ ├── caldera.ts │ │ └── fulfillment.ts │ └── config │ │ ├── repository.ts │ │ ├── party.ts │ │ ├── friends.ts │ │ ├── base-game.ts │ │ ├── caldera.ts │ │ ├── store.ts │ │ ├── matchmaking.ts │ │ ├── fulfillment.ts │ │ ├── storefront.ts │ │ └── public-account.ts ├── locale.ts ├── components │ ├── ui │ │ ├── skeleton.tsx │ │ └── extended │ │ │ └── separator.tsx │ └── navigations │ │ └── breadcrumb │ │ └── home.tsx ├── state │ ├── ui │ │ └── sidebars │ │ │ └── history.ts │ ├── settings │ │ ├── language.ts │ │ ├── tags.ts │ │ └── groups.ts │ ├── stw-operations │ │ ├── xpboosts │ │ │ └── forms │ │ │ │ └── consume-teammate.ts │ │ ├── claimed-rewards.ts │ │ ├── unlock.ts │ │ ├── homebase-name.ts │ │ └── save-quests.ts │ ├── advanced-mode │ │ ├── world-info │ │ │ ├── files.ts │ │ │ ├── current.ts │ │ │ └── home │ │ │ │ └── data.ts │ │ └── matchmaking-track │ │ │ └── base.ts │ └── accounts │ │ └── add.ts ├── bootstrap │ └── components │ │ ├── load-tags.tsx │ │ ├── load-friends.tsx │ │ ├── advanced-mode │ │ ├── load-matchmaking-path.tsx │ │ └── load-world-info-files.tsx │ │ └── load-auto-llamas.tsx └── routes │ ├── settings │ └── -app-settings │ │ └── -index.tsx │ └── -index │ └── -header-navigation.tsx ├── .github ├── FUNDING.yml └── workflows │ └── release.yml ├── icon.ico ├── icon.png ├── app-preview.jpg ├── icon-transparent.ico ├── icon-transparent.png ├── assets └── images │ ├── brxp.png │ ├── fndb.png │ ├── bluglo.png │ ├── ventures.png │ ├── logos │ ├── psn.png │ ├── xbl.png │ └── epicgames.png │ ├── rarities │ ├── c.png │ ├── r.png │ ├── er.png │ ├── sr.png │ ├── uc.png │ └── vr.png │ ├── vindertech.png │ ├── world │ ├── dtb.png │ ├── dte.png │ ├── eac.png │ ├── ets.png │ ├── htm.png │ ├── htr.png │ ├── ptp.png │ ├── rtd.png │ ├── rtl.png │ ├── rts.png │ ├── stn.png │ ├── tts.png │ ├── alert.png │ ├── atlas.png │ ├── dungeon.png │ ├── horde.png │ ├── launch.png │ ├── medic.png │ ├── quest.png │ ├── radar.png │ ├── refuel.png │ ├── rescue.png │ ├── rocket.png │ ├── atlas-c2.png │ ├── atlas-c3.png │ ├── atlas-c4.png │ ├── dtb-group.png │ ├── dte-alpha.png │ ├── ets-group.png │ ├── frostnite.png │ ├── mini-boss.png │ ├── question.png │ ├── resupply.png │ ├── rtd-group.png │ ├── rtl-group.png │ ├── rts-group.png │ ├── atlas-group.png │ ├── beta-storm.png │ ├── storm-shield.png │ ├── atlas-c2-group.png │ ├── atlas-c3-group.png │ └── atlas-c4-group.png │ ├── elements │ ├── Fire.png │ ├── Energy.png │ ├── Nature.png │ ├── Water.png │ └── Physical.png │ ├── aerial-launcher.png │ ├── traps │ ├── floor_tar.png │ ├── ceiling_gas.png │ ├── floor_freeze.png │ ├── floor_health.png │ ├── floor_spikes.png │ ├── floor_ward.png │ ├── wall_cannons.png │ ├── wall_darts.png │ ├── wall_light.png │ ├── wall_speaker.png │ ├── floor_campfire.png │ ├── floor_defender.png │ ├── floor_launcher.png │ ├── wall_electric.png │ ├── wall_launcher.png │ ├── ceiling_falling.png │ ├── floor_flamegrill.png │ ├── floor_spikes_wood.png │ ├── wall_mechstructor.png │ ├── wall_wood_spikes.png │ ├── ceiling_electric_aoe.png │ ├── floor_hoverboard_speed.png │ ├── floor_player_jump_pad.png │ ├── ceiling_electric_single.png │ └── floor_player_jump_pad_free_direction.png │ ├── difficulties │ ├── lock.png │ ├── red-skull.png │ ├── black-skull.png │ ├── green-skull.png │ ├── orange-skull.png │ └── yellow-skull.png │ ├── ingredients │ ├── bacon.png │ ├── herbs.png │ ├── honey.png │ ├── planks.png │ ├── resin.png │ ├── flowers.png │ ├── obsidian.png │ ├── ore_coal.png │ ├── batteries.png │ ├── duct_tape.png │ ├── improvised.png │ ├── malachite.png │ ├── nuts_bolts.png │ ├── ore_alloy.png │ ├── ore_copper.png │ ├── ore_silver.png │ ├── powder_t01.png │ ├── powder_t02.png │ ├── powder_t03.png │ ├── powder_t04.png │ ├── powder_t05.png │ ├── powder_t06.png │ ├── twine_t01.png │ ├── twine_t02.png │ ├── twine_t03.png │ ├── twine_t04.png │ ├── twine_t05.png │ ├── twine_t06.png │ ├── blast_powder.png │ ├── crystal_moonglow.png │ ├── crystal_quartz.png │ ├── crystal_rainbow.png │ ├── crystal_sunbeam.png │ ├── ore_brightcore.png │ ├── ore_spectrolite.png │ ├── rare_mechanism.png │ ├── rare_powercell.png │ ├── crystal_shadowshard.png │ ├── mechanical_parts_t01.png │ ├── mechanical_parts_t02.png │ ├── mechanical_parts_t03.png │ ├── mechanical_parts_t04.png │ ├── mechanical_parts_t05.png │ └── mechanical_parts_t06.png │ ├── resources │ ├── heroxp.png │ ├── phoenixxp.png │ ├── eventscaling.png │ ├── metalitemdata.png │ ├── personnelxp.png │ ├── reagent_c_t01.png │ ├── reagent_c_t02.png │ ├── reagent_c_t03.png │ ├── reagent_c_t04.png │ ├── reagent_traps.png │ ├── schematicxp.png │ ├── smallxpboost.png │ ├── stoneitemdata.png │ ├── wooditemdata.png │ ├── reagent_people.png │ ├── reagent_weapons.png │ ├── currency_mtxswap.png │ ├── currency_xrayllama.png │ ├── phoenixxp_reward.png │ ├── smallxpboost_gift.png │ ├── voucher_basicpack.png │ ├── voucher_generic_hero.png │ ├── voucher_generic_trap.png │ ├── voucher_herobuyback.png │ ├── voucher_item_buyback.png │ ├── eventcurrency_founders.png │ ├── eventcurrency_scaling.png │ ├── reagent_evolverarity_r.png │ ├── reagent_evolverarity_sr.png │ ├── reagent_evolverarity_vr.png │ ├── reagent_promotion_traps.png │ ├── specialcurrency_daily.png │ ├── voucher_cardpack_bronze.png │ ├── voucher_generic_hero_c.png │ ├── voucher_generic_hero_er.png │ ├── voucher_generic_hero_r.png │ ├── voucher_generic_hero_sr.png │ ├── voucher_generic_hero_uc.png │ ├── voucher_generic_hero_vr.png │ ├── voucher_generic_manager.png │ ├── voucher_generic_melee.png │ ├── voucher_generic_melee_c.png │ ├── voucher_generic_melee_r.png │ ├── voucher_generic_ranged.png │ ├── voucher_generic_trap_c.png │ ├── voucher_generic_trap_r.png │ ├── voucher_generic_trap_sr.png │ ├── voucher_generic_trap_uc.png │ ├── voucher_generic_trap_vr.png │ ├── voucher_generic_worker.png │ ├── reagent_promotion_heroes.png │ ├── reagent_promotion_weapons.png │ ├── voucher_cardpack_jackpot.png │ ├── voucher_generic_defender.png │ ├── voucher_generic_manager_c.png │ ├── voucher_generic_manager_r.png │ ├── voucher_generic_melee_er.png │ ├── voucher_generic_melee_sr.png │ ├── voucher_generic_melee_uc.png │ ├── voucher_generic_melee_vr.png │ ├── voucher_generic_ranged_c.png │ ├── voucher_generic_ranged_er.png │ ├── voucher_generic_ranged_r.png │ ├── voucher_generic_ranged_sr.png │ ├── voucher_generic_ranged_uc.png │ ├── voucher_generic_ranged_vr.png │ ├── voucher_generic_weapon_r.png │ ├── voucher_generic_weapon_sr.png │ ├── voucher_generic_weapon_vr.png │ ├── voucher_generic_worker_c.png │ ├── voucher_generic_worker_er.png │ ├── voucher_generic_worker_r.png │ ├── voucher_generic_worker_sr.png │ ├── voucher_generic_worker_uc.png │ ├── voucher_generic_worker_vr.png │ ├── reagent_alteration_ele_fire.png │ ├── reagent_alteration_ele_water.png │ ├── reagent_alteration_generic.png │ ├── reagent_alteration_upgrade_r.png │ ├── reagent_promotion_survivors.png │ ├── voucher_generic_defender_c.png │ ├── voucher_generic_defender_r.png │ ├── voucher_generic_defender_sr.png │ ├── voucher_generic_defender_uc.png │ ├── voucher_generic_defender_vr.png │ ├── voucher_generic_manager_er.png │ ├── voucher_generic_manager_sr.png │ ├── voucher_generic_manager_uc.png │ ├── voucher_generic_manager_vr.png │ ├── voucher_generic_schematic_c.png │ ├── voucher_generic_schematic_er.png │ ├── voucher_generic_schematic_r.png │ ├── voucher_generic_schematic_sr.png │ ├── voucher_generic_schematic_uc.png │ ├── voucher_generic_schematic_vr.png │ ├── reagent_alteration_ele_nature.png │ ├── reagent_alteration_upgrade_sr.png │ ├── reagent_alteration_upgrade_uc.png │ ├── reagent_alteration_upgrade_vr.png │ └── reagent_alteration_gameplay_generic.png │ ├── eventcurrency_founders.png │ ├── modifiers │ ├── Powerful Axes.png │ ├── gm_trap_buff.png │ ├── Powerful Swords.png │ ├── Powerful Tools.png │ ├── gm_hero_tech_buff.png │ ├── positive-low-grav.png │ ├── gm_ninja_damage_buff.png │ ├── ventures-escalation.png │ ├── ventures-rage-meter.png │ ├── GM_Phoenix_SuperHeroic.png │ ├── GM_Phoenix_SuperNinja.png │ ├── gm_enemy_hideonminimap.png │ ├── gm_outlander_tech_buff.png │ ├── gm_soldier_damage_buff.png │ ├── negative-enemy-ricochet.png │ ├── ventures-bouncy-husks.png │ ├── ventures-super-treasure.png │ ├── GM_Phoenix_CloseQuarters.png │ ├── GM_Phoenix_SuperOutlander.png │ ├── gm_enemy_ondeath_areaheal.png │ ├── gm_ninja_abilityrate_buff.png │ ├── gm_ninja_jumpheight_buff.png │ ├── gm_ninja_sword_damagebuff.png │ ├── gm_outlander_damage_buff.png │ ├── gm_player_smg_damage_buff.png │ ├── negative-ondeath-explode.png │ ├── GM_Phoenix_SuperConstructor.png │ ├── elementalzonefireenableitem.png │ ├── elementalzonewaterenableitem.png │ ├── gm_basehusk_ondeath_explode.png │ ├── gm_constructor_damage_buff.png │ ├── gm_player_bluntdamage_buff.png │ ├── gm_player_energy_damagebuff.png │ ├── gm_player_pistol_damagebuff.png │ ├── gm_player_shotgun_damagebuff.png │ ├── gm_soldier_abilityrate_buff.png │ ├── gm_soldier_assaultrifle_buff.png │ ├── negative-onlowhealth-enrage.png │ ├── elementalzonenatureenableitem.png │ ├── gm_constructor_buildcost_buff.png │ ├── gm_enemy_ondmgdealt_lifeleech.png │ ├── gm_enemy_onhitweakenbuildings.png │ ├── gm_player_explosive_damagebuff.png │ ├── gm_player_meleeknockback_buff.png │ ├── gm_player_ondmgdealt_lifeleech.png │ ├── positive-hardware-constructors.png │ ├── gm_enemy_ondeath_applyspeedmods.png │ ├── gm_enemy_ondeath_spawndamagepool.png │ ├── gm_enemy_ondmgdealt_slowdownfoe.png │ ├── gm_enemy_ondmgreceived_speedbuff.png │ ├── gm_player_axesscythesdamage_buff.png │ ├── gm_player_onshielddestroyed_aoe.png │ ├── gm_player_sniperrifle_damagebuff.png │ ├── gm_player_spearsworddamage_buff.png │ ├── minibossenableprimarymissionitem.png │ ├── gm_player_assaultrifle_damage_buff.png │ ├── gm_basehusk_ondmgdealt_metalcorrosion.png │ ├── gm_enemy_ondeath_spawnplayerslowpool.png │ └── gm_enemy_ondeath_spawnenemyrangeresistpool.png │ ├── random │ ├── pensive-cowboy.png │ └── donald-duck-angry.gif │ ├── survivors │ ├── worker_joel_ur.png │ ├── worker_karolina_ur.png │ └── unique-leads │ │ ├── managerdoctor_sr_treky.png │ │ ├── managerinventor_sr_rad.png │ │ ├── managerdoctor_sr_kingsly.png │ │ ├── managerdoctor_sr_noctor.png │ │ ├── managerengineer_sr_maths.png │ │ ├── managerengineer_sr_sobs.png │ │ ├── managerexplorer_sr_birdie.png │ │ ├── managerexplorer_sr_eagle.png │ │ ├── managergadgeteer_sr_fixer.png │ │ ├── managergadgeteer_sr_flak.png │ │ ├── managergadgeteer_sr_zapps.png │ │ ├── managerinventor_sr_square.png │ │ ├── managersoldier_sr_malcolm.png │ │ ├── managersoldier_sr_ramsie.png │ │ ├── managertrainer_sr_jumpy.png │ │ ├── managertrainer_sr_raider.png │ │ ├── managerengineer_sr_countess.png │ │ ├── managersoldier_sr_princess.png │ │ ├── managertrainer_sr_yoglattes.png │ │ ├── managerexplorer_sr_spacebound.png │ │ ├── managerinventor_sr_frequency.png │ │ ├── managermartialartist_sr_dragon.png │ │ ├── managermartialartist_sr_tiger.png │ │ └── managermartialartist_sr_samurai.png │ └── currency │ ├── eventcurrency_candy.png │ ├── eventcurrency_lunar.png │ ├── eventcurrency_spring.gif │ ├── eventcurrency_summer.gif │ ├── campaign_event_currency.gif │ ├── eventcurrency_adventure.png │ ├── eventcurrency_roadtrip.png │ ├── eventcurrency_snowballs.png │ └── eventcurrency_blockbuster.png ├── .eslintrc.json ├── components.json ├── postcss.config.js ├── index.html └── tsconfig.json /src/locales/pl-PL/accounts/device-auth.json: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /src/locales/pt-BR/accounts/device-auth.json: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /src/locales/en-US/accounts/device-auth.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /src/locales/es-419/accounts/device-auth.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /src/locales/it-IT/accounts/device-auth.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /src/locales/ru-RU/accounts/device-auth.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /src/locales/zh-CN/accounts/device-auth.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: [Ciensprog] 2 | ko_fi: ciensprog 3 | -------------------------------------------------------------------------------- /src/config/constants/colors.ts: -------------------------------------------------------------------------------- 1 | export const defaultColor = '#A3A3A3' 2 | -------------------------------------------------------------------------------- /icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/icon.ico -------------------------------------------------------------------------------- /icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/icon.png -------------------------------------------------------------------------------- /src/kernel/preload-actions/schedules/index.ts: -------------------------------------------------------------------------------- 1 | export * from './request-accounts' 2 | -------------------------------------------------------------------------------- /app-preview.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/app-preview.jpg -------------------------------------------------------------------------------- /src/config/constants/examples.ts: -------------------------------------------------------------------------------- 1 | export const exampleCode = '79ebb4c00887455e810f83dda1cc8dfe' 2 | -------------------------------------------------------------------------------- /icon-transparent.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/icon-transparent.ico -------------------------------------------------------------------------------- /icon-transparent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/icon-transparent.png -------------------------------------------------------------------------------- /src/_assets/fndb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/src/_assets/fndb.png -------------------------------------------------------------------------------- /assets/images/brxp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/brxp.png -------------------------------------------------------------------------------- /assets/images/fndb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/fndb.png -------------------------------------------------------------------------------- /assets/images/bluglo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/bluglo.png -------------------------------------------------------------------------------- /assets/images/ventures.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ventures.png -------------------------------------------------------------------------------- /src/lib/notifications.ts: -------------------------------------------------------------------------------- 1 | // eslint-disable-next-line import/no-unresolved 2 | export { toast } from 'sonner' 3 | -------------------------------------------------------------------------------- /assets/images/logos/psn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/logos/psn.png -------------------------------------------------------------------------------- /assets/images/logos/xbl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/logos/xbl.png -------------------------------------------------------------------------------- /assets/images/rarities/c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/rarities/c.png -------------------------------------------------------------------------------- /assets/images/rarities/r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/rarities/r.png -------------------------------------------------------------------------------- /assets/images/vindertech.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/vindertech.png -------------------------------------------------------------------------------- /assets/images/world/dtb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/world/dtb.png -------------------------------------------------------------------------------- /assets/images/world/dte.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/world/dte.png -------------------------------------------------------------------------------- /assets/images/world/eac.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/world/eac.png -------------------------------------------------------------------------------- /assets/images/world/ets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/world/ets.png -------------------------------------------------------------------------------- /assets/images/world/htm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/world/htm.png -------------------------------------------------------------------------------- /assets/images/world/htr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/world/htr.png -------------------------------------------------------------------------------- /assets/images/world/ptp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/world/ptp.png -------------------------------------------------------------------------------- /assets/images/world/rtd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/world/rtd.png -------------------------------------------------------------------------------- /assets/images/world/rtl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/world/rtl.png -------------------------------------------------------------------------------- /assets/images/world/rts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/world/rts.png -------------------------------------------------------------------------------- /assets/images/world/stn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/world/stn.png -------------------------------------------------------------------------------- /assets/images/world/tts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/world/tts.png -------------------------------------------------------------------------------- /assets/images/elements/Fire.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/elements/Fire.png -------------------------------------------------------------------------------- /assets/images/rarities/er.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/rarities/er.png -------------------------------------------------------------------------------- /assets/images/rarities/sr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/rarities/sr.png -------------------------------------------------------------------------------- /assets/images/rarities/uc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/rarities/uc.png -------------------------------------------------------------------------------- /assets/images/rarities/vr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/rarities/vr.png -------------------------------------------------------------------------------- /assets/images/world/alert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/world/alert.png -------------------------------------------------------------------------------- /assets/images/world/atlas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/world/atlas.png -------------------------------------------------------------------------------- /assets/images/world/dungeon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/world/dungeon.png -------------------------------------------------------------------------------- /assets/images/world/horde.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/world/horde.png -------------------------------------------------------------------------------- /assets/images/world/launch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/world/launch.png -------------------------------------------------------------------------------- /assets/images/world/medic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/world/medic.png -------------------------------------------------------------------------------- /assets/images/world/quest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/world/quest.png -------------------------------------------------------------------------------- /assets/images/world/radar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/world/radar.png -------------------------------------------------------------------------------- /assets/images/world/refuel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/world/refuel.png -------------------------------------------------------------------------------- /assets/images/world/rescue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/world/rescue.png -------------------------------------------------------------------------------- /assets/images/world/rocket.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/world/rocket.png -------------------------------------------------------------------------------- /src/_assets/aerial-launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/src/_assets/aerial-launcher.png -------------------------------------------------------------------------------- /src/lib/validations/schemas/fortnite/auth.ts: -------------------------------------------------------------------------------- 1 | export enum LauncherAuthError { 2 | login = 'launcher-auth-login', 3 | } 4 | -------------------------------------------------------------------------------- /assets/images/aerial-launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/aerial-launcher.png -------------------------------------------------------------------------------- /assets/images/elements/Energy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/elements/Energy.png -------------------------------------------------------------------------------- /assets/images/elements/Nature.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/elements/Nature.png -------------------------------------------------------------------------------- /assets/images/elements/Water.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/elements/Water.png -------------------------------------------------------------------------------- /assets/images/logos/epicgames.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/logos/epicgames.png -------------------------------------------------------------------------------- /assets/images/traps/floor_tar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/traps/floor_tar.png -------------------------------------------------------------------------------- /assets/images/world/atlas-c2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/world/atlas-c2.png -------------------------------------------------------------------------------- /assets/images/world/atlas-c3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/world/atlas-c3.png -------------------------------------------------------------------------------- /assets/images/world/atlas-c4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/world/atlas-c4.png -------------------------------------------------------------------------------- /assets/images/world/dtb-group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/world/dtb-group.png -------------------------------------------------------------------------------- /assets/images/world/dte-alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/world/dte-alpha.png -------------------------------------------------------------------------------- /assets/images/world/ets-group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/world/ets-group.png -------------------------------------------------------------------------------- /assets/images/world/frostnite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/world/frostnite.png -------------------------------------------------------------------------------- /assets/images/world/mini-boss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/world/mini-boss.png -------------------------------------------------------------------------------- /assets/images/world/question.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/world/question.png -------------------------------------------------------------------------------- /assets/images/world/resupply.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/world/resupply.png -------------------------------------------------------------------------------- /assets/images/world/rtd-group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/world/rtd-group.png -------------------------------------------------------------------------------- /assets/images/world/rtl-group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/world/rtl-group.png -------------------------------------------------------------------------------- /assets/images/world/rts-group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/world/rts-group.png -------------------------------------------------------------------------------- /src/config/constants/fortnite/party.ts: -------------------------------------------------------------------------------- 1 | export enum PartyRole { 2 | CAPTAIN = 'CAPTAIN', 3 | MEMBER = 'MEMBER', 4 | } 5 | -------------------------------------------------------------------------------- /src/types/services/caldera.d.ts: -------------------------------------------------------------------------------- 1 | export type AntiCheatProviderResponse = { 2 | jwt: string 3 | provider: string 4 | } 5 | -------------------------------------------------------------------------------- /assets/images/difficulties/lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/difficulties/lock.png -------------------------------------------------------------------------------- /assets/images/elements/Physical.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/elements/Physical.png -------------------------------------------------------------------------------- /assets/images/ingredients/bacon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/bacon.png -------------------------------------------------------------------------------- /assets/images/ingredients/herbs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/herbs.png -------------------------------------------------------------------------------- /assets/images/ingredients/honey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/honey.png -------------------------------------------------------------------------------- /assets/images/ingredients/planks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/planks.png -------------------------------------------------------------------------------- /assets/images/ingredients/resin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/resin.png -------------------------------------------------------------------------------- /assets/images/resources/heroxp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/heroxp.png -------------------------------------------------------------------------------- /assets/images/traps/ceiling_gas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/traps/ceiling_gas.png -------------------------------------------------------------------------------- /assets/images/traps/floor_freeze.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/traps/floor_freeze.png -------------------------------------------------------------------------------- /assets/images/traps/floor_health.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/traps/floor_health.png -------------------------------------------------------------------------------- /assets/images/traps/floor_spikes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/traps/floor_spikes.png -------------------------------------------------------------------------------- /assets/images/traps/floor_ward.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/traps/floor_ward.png -------------------------------------------------------------------------------- /assets/images/traps/wall_cannons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/traps/wall_cannons.png -------------------------------------------------------------------------------- /assets/images/traps/wall_darts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/traps/wall_darts.png -------------------------------------------------------------------------------- /assets/images/traps/wall_light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/traps/wall_light.png -------------------------------------------------------------------------------- /assets/images/traps/wall_speaker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/traps/wall_speaker.png -------------------------------------------------------------------------------- /assets/images/world/atlas-group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/world/atlas-group.png -------------------------------------------------------------------------------- /assets/images/world/beta-storm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/world/beta-storm.png -------------------------------------------------------------------------------- /assets/images/world/storm-shield.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/world/storm-shield.png -------------------------------------------------------------------------------- /assets/images/ingredients/flowers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/flowers.png -------------------------------------------------------------------------------- /assets/images/ingredients/obsidian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/obsidian.png -------------------------------------------------------------------------------- /assets/images/ingredients/ore_coal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/ore_coal.png -------------------------------------------------------------------------------- /assets/images/resources/phoenixxp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/phoenixxp.png -------------------------------------------------------------------------------- /assets/images/traps/floor_campfire.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/traps/floor_campfire.png -------------------------------------------------------------------------------- /assets/images/traps/floor_defender.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/traps/floor_defender.png -------------------------------------------------------------------------------- /assets/images/traps/floor_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/traps/floor_launcher.png -------------------------------------------------------------------------------- /assets/images/traps/wall_electric.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/traps/wall_electric.png -------------------------------------------------------------------------------- /assets/images/traps/wall_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/traps/wall_launcher.png -------------------------------------------------------------------------------- /assets/images/world/atlas-c2-group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/world/atlas-c2-group.png -------------------------------------------------------------------------------- /assets/images/world/atlas-c3-group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/world/atlas-c3-group.png -------------------------------------------------------------------------------- /assets/images/world/atlas-c4-group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/world/atlas-c4-group.png -------------------------------------------------------------------------------- /src/config/constants/bots.ts: -------------------------------------------------------------------------------- 1 | export const bots = [ 2 | { 3 | name: 'AK47', 4 | server: '209.133.196.106', 5 | }, 6 | ] 7 | -------------------------------------------------------------------------------- /assets/images/difficulties/red-skull.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/difficulties/red-skull.png -------------------------------------------------------------------------------- /assets/images/eventcurrency_founders.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/eventcurrency_founders.png -------------------------------------------------------------------------------- /assets/images/ingredients/batteries.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/batteries.png -------------------------------------------------------------------------------- /assets/images/ingredients/duct_tape.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/duct_tape.png -------------------------------------------------------------------------------- /assets/images/ingredients/improvised.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/improvised.png -------------------------------------------------------------------------------- /assets/images/ingredients/malachite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/malachite.png -------------------------------------------------------------------------------- /assets/images/ingredients/nuts_bolts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/nuts_bolts.png -------------------------------------------------------------------------------- /assets/images/ingredients/ore_alloy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/ore_alloy.png -------------------------------------------------------------------------------- /assets/images/ingredients/ore_copper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/ore_copper.png -------------------------------------------------------------------------------- /assets/images/ingredients/ore_silver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/ore_silver.png -------------------------------------------------------------------------------- /assets/images/ingredients/powder_t01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/powder_t01.png -------------------------------------------------------------------------------- /assets/images/ingredients/powder_t02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/powder_t02.png -------------------------------------------------------------------------------- /assets/images/ingredients/powder_t03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/powder_t03.png -------------------------------------------------------------------------------- /assets/images/ingredients/powder_t04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/powder_t04.png -------------------------------------------------------------------------------- /assets/images/ingredients/powder_t05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/powder_t05.png -------------------------------------------------------------------------------- /assets/images/ingredients/powder_t06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/powder_t06.png -------------------------------------------------------------------------------- /assets/images/ingredients/twine_t01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/twine_t01.png -------------------------------------------------------------------------------- /assets/images/ingredients/twine_t02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/twine_t02.png -------------------------------------------------------------------------------- /assets/images/ingredients/twine_t03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/twine_t03.png -------------------------------------------------------------------------------- /assets/images/ingredients/twine_t04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/twine_t04.png -------------------------------------------------------------------------------- /assets/images/ingredients/twine_t05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/twine_t05.png -------------------------------------------------------------------------------- /assets/images/ingredients/twine_t06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/twine_t06.png -------------------------------------------------------------------------------- /assets/images/modifiers/Powerful Axes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/Powerful Axes.png -------------------------------------------------------------------------------- /assets/images/modifiers/gm_trap_buff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/gm_trap_buff.png -------------------------------------------------------------------------------- /assets/images/random/pensive-cowboy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/random/pensive-cowboy.png -------------------------------------------------------------------------------- /assets/images/resources/eventscaling.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/eventscaling.png -------------------------------------------------------------------------------- /assets/images/resources/metalitemdata.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/metalitemdata.png -------------------------------------------------------------------------------- /assets/images/resources/personnelxp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/personnelxp.png -------------------------------------------------------------------------------- /assets/images/resources/reagent_c_t01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/reagent_c_t01.png -------------------------------------------------------------------------------- /assets/images/resources/reagent_c_t02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/reagent_c_t02.png -------------------------------------------------------------------------------- /assets/images/resources/reagent_c_t03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/reagent_c_t03.png -------------------------------------------------------------------------------- /assets/images/resources/reagent_c_t04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/reagent_c_t04.png -------------------------------------------------------------------------------- /assets/images/resources/reagent_traps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/reagent_traps.png -------------------------------------------------------------------------------- /assets/images/resources/schematicxp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/schematicxp.png -------------------------------------------------------------------------------- /assets/images/resources/smallxpboost.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/smallxpboost.png -------------------------------------------------------------------------------- /assets/images/resources/stoneitemdata.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/stoneitemdata.png -------------------------------------------------------------------------------- /assets/images/resources/wooditemdata.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/wooditemdata.png -------------------------------------------------------------------------------- /assets/images/traps/ceiling_falling.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/traps/ceiling_falling.png -------------------------------------------------------------------------------- /assets/images/traps/floor_flamegrill.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/traps/floor_flamegrill.png -------------------------------------------------------------------------------- /assets/images/traps/floor_spikes_wood.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/traps/floor_spikes_wood.png -------------------------------------------------------------------------------- /assets/images/traps/wall_mechstructor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/traps/wall_mechstructor.png -------------------------------------------------------------------------------- /assets/images/traps/wall_wood_spikes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/traps/wall_wood_spikes.png -------------------------------------------------------------------------------- /assets/images/difficulties/black-skull.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/difficulties/black-skull.png -------------------------------------------------------------------------------- /assets/images/difficulties/green-skull.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/difficulties/green-skull.png -------------------------------------------------------------------------------- /assets/images/difficulties/orange-skull.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/difficulties/orange-skull.png -------------------------------------------------------------------------------- /assets/images/difficulties/yellow-skull.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/difficulties/yellow-skull.png -------------------------------------------------------------------------------- /assets/images/ingredients/blast_powder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/blast_powder.png -------------------------------------------------------------------------------- /assets/images/modifiers/Powerful Swords.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/Powerful Swords.png -------------------------------------------------------------------------------- /assets/images/modifiers/Powerful Tools.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/Powerful Tools.png -------------------------------------------------------------------------------- /assets/images/random/donald-duck-angry.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/random/donald-duck-angry.gif -------------------------------------------------------------------------------- /assets/images/resources/reagent_people.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/reagent_people.png -------------------------------------------------------------------------------- /assets/images/resources/reagent_weapons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/reagent_weapons.png -------------------------------------------------------------------------------- /assets/images/survivors/worker_joel_ur.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/survivors/worker_joel_ur.png -------------------------------------------------------------------------------- /src/_assets/aerial-launcher-transparent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/src/_assets/aerial-launcher-transparent.png -------------------------------------------------------------------------------- /src/config/constants/xpboosts.ts: -------------------------------------------------------------------------------- 1 | export const individualLimitBoostedXP = 864191 2 | 3 | export const maxAmountLimitedTo = 2000 // Max is 2484 4 | -------------------------------------------------------------------------------- /src/kernel/core/mcp/index.ts: -------------------------------------------------------------------------------- 1 | export { MCPClientQuestLogin } from './client-quest-login' 2 | export { MCPHomebaseName } from './homebase-name' 3 | -------------------------------------------------------------------------------- /assets/images/currency/eventcurrency_candy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/currency/eventcurrency_candy.png -------------------------------------------------------------------------------- /assets/images/currency/eventcurrency_lunar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/currency/eventcurrency_lunar.png -------------------------------------------------------------------------------- /assets/images/ingredients/crystal_moonglow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/crystal_moonglow.png -------------------------------------------------------------------------------- /assets/images/ingredients/crystal_quartz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/crystal_quartz.png -------------------------------------------------------------------------------- /assets/images/ingredients/crystal_rainbow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/crystal_rainbow.png -------------------------------------------------------------------------------- /assets/images/ingredients/crystal_sunbeam.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/crystal_sunbeam.png -------------------------------------------------------------------------------- /assets/images/ingredients/ore_brightcore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/ore_brightcore.png -------------------------------------------------------------------------------- /assets/images/ingredients/ore_spectrolite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/ore_spectrolite.png -------------------------------------------------------------------------------- /assets/images/ingredients/rare_mechanism.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/rare_mechanism.png -------------------------------------------------------------------------------- /assets/images/ingredients/rare_powercell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/rare_powercell.png -------------------------------------------------------------------------------- /assets/images/modifiers/gm_hero_tech_buff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/gm_hero_tech_buff.png -------------------------------------------------------------------------------- /assets/images/modifiers/positive-low-grav.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/positive-low-grav.png -------------------------------------------------------------------------------- /assets/images/resources/currency_mtxswap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/currency_mtxswap.png -------------------------------------------------------------------------------- /assets/images/resources/currency_xrayllama.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/currency_xrayllama.png -------------------------------------------------------------------------------- /assets/images/resources/phoenixxp_reward.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/phoenixxp_reward.png -------------------------------------------------------------------------------- /assets/images/resources/smallxpboost_gift.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/smallxpboost_gift.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_basicpack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_basicpack.png -------------------------------------------------------------------------------- /assets/images/survivors/worker_karolina_ur.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/survivors/worker_karolina_ur.png -------------------------------------------------------------------------------- /assets/images/traps/ceiling_electric_aoe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/traps/ceiling_electric_aoe.png -------------------------------------------------------------------------------- /assets/images/traps/floor_hoverboard_speed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/traps/floor_hoverboard_speed.png -------------------------------------------------------------------------------- /assets/images/traps/floor_player_jump_pad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/traps/floor_player_jump_pad.png -------------------------------------------------------------------------------- /assets/images/currency/eventcurrency_spring.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/currency/eventcurrency_spring.gif -------------------------------------------------------------------------------- /assets/images/currency/eventcurrency_summer.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/currency/eventcurrency_summer.gif -------------------------------------------------------------------------------- /assets/images/modifiers/gm_ninja_damage_buff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/gm_ninja_damage_buff.png -------------------------------------------------------------------------------- /assets/images/modifiers/ventures-escalation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/ventures-escalation.png -------------------------------------------------------------------------------- /assets/images/modifiers/ventures-rage-meter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/ventures-rage-meter.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_hero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_hero.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_trap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_trap.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_herobuyback.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_herobuyback.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_item_buyback.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_item_buyback.png -------------------------------------------------------------------------------- /assets/images/traps/ceiling_electric_single.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/traps/ceiling_electric_single.png -------------------------------------------------------------------------------- /src/types/authentication.d.ts: -------------------------------------------------------------------------------- 1 | export type AuthenticationByDeviceProperties = { 2 | accountId: string 3 | deviceId: string 4 | secret: string 5 | } 6 | -------------------------------------------------------------------------------- /src/types/utils.d.ts: -------------------------------------------------------------------------------- 1 | export type StringUnion = 2 | | Values 3 | // eslint-disable-next-line @typescript-eslint/ban-types 4 | | (string & {}) 5 | -------------------------------------------------------------------------------- /assets/images/currency/campaign_event_currency.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/currency/campaign_event_currency.gif -------------------------------------------------------------------------------- /assets/images/currency/eventcurrency_adventure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/currency/eventcurrency_adventure.png -------------------------------------------------------------------------------- /assets/images/currency/eventcurrency_roadtrip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/currency/eventcurrency_roadtrip.png -------------------------------------------------------------------------------- /assets/images/currency/eventcurrency_snowballs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/currency/eventcurrency_snowballs.png -------------------------------------------------------------------------------- /assets/images/ingredients/crystal_shadowshard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/crystal_shadowshard.png -------------------------------------------------------------------------------- /assets/images/ingredients/mechanical_parts_t01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/mechanical_parts_t01.png -------------------------------------------------------------------------------- /assets/images/ingredients/mechanical_parts_t02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/mechanical_parts_t02.png -------------------------------------------------------------------------------- /assets/images/ingredients/mechanical_parts_t03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/mechanical_parts_t03.png -------------------------------------------------------------------------------- /assets/images/ingredients/mechanical_parts_t04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/mechanical_parts_t04.png -------------------------------------------------------------------------------- /assets/images/ingredients/mechanical_parts_t05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/mechanical_parts_t05.png -------------------------------------------------------------------------------- /assets/images/ingredients/mechanical_parts_t06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/ingredients/mechanical_parts_t06.png -------------------------------------------------------------------------------- /assets/images/modifiers/GM_Phoenix_SuperHeroic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/GM_Phoenix_SuperHeroic.png -------------------------------------------------------------------------------- /assets/images/modifiers/GM_Phoenix_SuperNinja.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/GM_Phoenix_SuperNinja.png -------------------------------------------------------------------------------- /assets/images/modifiers/gm_enemy_hideonminimap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/gm_enemy_hideonminimap.png -------------------------------------------------------------------------------- /assets/images/modifiers/gm_outlander_tech_buff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/gm_outlander_tech_buff.png -------------------------------------------------------------------------------- /assets/images/modifiers/gm_soldier_damage_buff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/gm_soldier_damage_buff.png -------------------------------------------------------------------------------- /assets/images/modifiers/negative-enemy-ricochet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/negative-enemy-ricochet.png -------------------------------------------------------------------------------- /assets/images/modifiers/ventures-bouncy-husks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/ventures-bouncy-husks.png -------------------------------------------------------------------------------- /assets/images/modifiers/ventures-super-treasure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/ventures-super-treasure.png -------------------------------------------------------------------------------- /assets/images/resources/eventcurrency_founders.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/eventcurrency_founders.png -------------------------------------------------------------------------------- /assets/images/resources/eventcurrency_scaling.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/eventcurrency_scaling.png -------------------------------------------------------------------------------- /assets/images/resources/reagent_evolverarity_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/reagent_evolverarity_r.png -------------------------------------------------------------------------------- /assets/images/resources/reagent_evolverarity_sr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/reagent_evolverarity_sr.png -------------------------------------------------------------------------------- /assets/images/resources/reagent_evolverarity_vr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/reagent_evolverarity_vr.png -------------------------------------------------------------------------------- /assets/images/resources/reagent_promotion_traps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/reagent_promotion_traps.png -------------------------------------------------------------------------------- /assets/images/resources/specialcurrency_daily.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/specialcurrency_daily.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_cardpack_bronze.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_cardpack_bronze.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_hero_c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_hero_c.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_hero_er.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_hero_er.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_hero_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_hero_r.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_hero_sr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_hero_sr.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_hero_uc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_hero_uc.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_hero_vr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_hero_vr.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_manager.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_manager.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_melee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_melee.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_melee_c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_melee_c.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_melee_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_melee_r.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_ranged.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_ranged.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_trap_c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_trap_c.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_trap_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_trap_r.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_trap_sr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_trap_sr.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_trap_uc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_trap_uc.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_trap_vr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_trap_vr.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_worker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_worker.png -------------------------------------------------------------------------------- /src/config/constants/mcp.ts: -------------------------------------------------------------------------------- 1 | export const claimingRewardsDelayRange = { 2 | min: 0, 3 | max: 5, 4 | } 5 | export const defaultClaimingRewardsDelay = 1.4 6 | -------------------------------------------------------------------------------- /assets/images/currency/eventcurrency_blockbuster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/currency/eventcurrency_blockbuster.png -------------------------------------------------------------------------------- /assets/images/modifiers/GM_Phoenix_CloseQuarters.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/GM_Phoenix_CloseQuarters.png -------------------------------------------------------------------------------- /assets/images/modifiers/GM_Phoenix_SuperOutlander.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/GM_Phoenix_SuperOutlander.png -------------------------------------------------------------------------------- /assets/images/modifiers/gm_enemy_ondeath_areaheal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/gm_enemy_ondeath_areaheal.png -------------------------------------------------------------------------------- /assets/images/modifiers/gm_ninja_abilityrate_buff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/gm_ninja_abilityrate_buff.png -------------------------------------------------------------------------------- /assets/images/modifiers/gm_ninja_jumpheight_buff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/gm_ninja_jumpheight_buff.png -------------------------------------------------------------------------------- /assets/images/modifiers/gm_ninja_sword_damagebuff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/gm_ninja_sword_damagebuff.png -------------------------------------------------------------------------------- /assets/images/modifiers/gm_outlander_damage_buff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/gm_outlander_damage_buff.png -------------------------------------------------------------------------------- /assets/images/modifiers/gm_player_smg_damage_buff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/gm_player_smg_damage_buff.png -------------------------------------------------------------------------------- /assets/images/modifiers/negative-ondeath-explode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/negative-ondeath-explode.png -------------------------------------------------------------------------------- /assets/images/resources/reagent_promotion_heroes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/reagent_promotion_heroes.png -------------------------------------------------------------------------------- /assets/images/resources/reagent_promotion_weapons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/reagent_promotion_weapons.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_cardpack_jackpot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_cardpack_jackpot.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_defender.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_defender.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_manager_c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_manager_c.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_manager_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_manager_r.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_melee_er.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_melee_er.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_melee_sr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_melee_sr.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_melee_uc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_melee_uc.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_melee_vr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_melee_vr.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_ranged_c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_ranged_c.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_ranged_er.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_ranged_er.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_ranged_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_ranged_r.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_ranged_sr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_ranged_sr.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_ranged_uc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_ranged_uc.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_ranged_vr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_ranged_vr.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_weapon_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_weapon_r.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_weapon_sr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_weapon_sr.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_weapon_vr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_weapon_vr.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_worker_c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_worker_c.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_worker_er.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_worker_er.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_worker_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_worker_r.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_worker_sr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_worker_sr.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_worker_uc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_worker_uc.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_worker_vr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_worker_vr.png -------------------------------------------------------------------------------- /assets/images/modifiers/GM_Phoenix_SuperConstructor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/GM_Phoenix_SuperConstructor.png -------------------------------------------------------------------------------- /assets/images/modifiers/elementalzonefireenableitem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/elementalzonefireenableitem.png -------------------------------------------------------------------------------- /assets/images/modifiers/elementalzonewaterenableitem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/elementalzonewaterenableitem.png -------------------------------------------------------------------------------- /assets/images/modifiers/gm_basehusk_ondeath_explode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/gm_basehusk_ondeath_explode.png -------------------------------------------------------------------------------- /assets/images/modifiers/gm_constructor_damage_buff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/gm_constructor_damage_buff.png -------------------------------------------------------------------------------- /assets/images/modifiers/gm_player_bluntdamage_buff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/gm_player_bluntdamage_buff.png -------------------------------------------------------------------------------- /assets/images/modifiers/gm_player_energy_damagebuff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/gm_player_energy_damagebuff.png -------------------------------------------------------------------------------- /assets/images/modifiers/gm_player_pistol_damagebuff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/gm_player_pistol_damagebuff.png -------------------------------------------------------------------------------- /assets/images/modifiers/gm_player_shotgun_damagebuff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/gm_player_shotgun_damagebuff.png -------------------------------------------------------------------------------- /assets/images/modifiers/gm_soldier_abilityrate_buff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/gm_soldier_abilityrate_buff.png -------------------------------------------------------------------------------- /assets/images/modifiers/gm_soldier_assaultrifle_buff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/gm_soldier_assaultrifle_buff.png -------------------------------------------------------------------------------- /assets/images/modifiers/negative-onlowhealth-enrage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/negative-onlowhealth-enrage.png -------------------------------------------------------------------------------- /assets/images/resources/reagent_alteration_ele_fire.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/reagent_alteration_ele_fire.png -------------------------------------------------------------------------------- /assets/images/resources/reagent_alteration_ele_water.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/reagent_alteration_ele_water.png -------------------------------------------------------------------------------- /assets/images/resources/reagent_alteration_generic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/reagent_alteration_generic.png -------------------------------------------------------------------------------- /assets/images/resources/reagent_alteration_upgrade_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/reagent_alteration_upgrade_r.png -------------------------------------------------------------------------------- /assets/images/resources/reagent_promotion_survivors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/reagent_promotion_survivors.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_defender_c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_defender_c.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_defender_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_defender_r.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_defender_sr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_defender_sr.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_defender_uc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_defender_uc.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_defender_vr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_defender_vr.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_manager_er.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_manager_er.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_manager_sr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_manager_sr.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_manager_uc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_manager_uc.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_manager_vr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_manager_vr.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_schematic_c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_schematic_c.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_schematic_er.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_schematic_er.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_schematic_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_schematic_r.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_schematic_sr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_schematic_sr.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_schematic_uc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_schematic_uc.png -------------------------------------------------------------------------------- /assets/images/resources/voucher_generic_schematic_vr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/voucher_generic_schematic_vr.png -------------------------------------------------------------------------------- /assets/images/modifiers/elementalzonenatureenableitem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/elementalzonenatureenableitem.png -------------------------------------------------------------------------------- /assets/images/modifiers/gm_constructor_buildcost_buff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/gm_constructor_buildcost_buff.png -------------------------------------------------------------------------------- /assets/images/modifiers/gm_enemy_ondmgdealt_lifeleech.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/gm_enemy_ondmgdealt_lifeleech.png -------------------------------------------------------------------------------- /assets/images/modifiers/gm_enemy_onhitweakenbuildings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/gm_enemy_onhitweakenbuildings.png -------------------------------------------------------------------------------- /assets/images/modifiers/gm_player_explosive_damagebuff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/gm_player_explosive_damagebuff.png -------------------------------------------------------------------------------- /assets/images/modifiers/gm_player_meleeknockback_buff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/gm_player_meleeknockback_buff.png -------------------------------------------------------------------------------- /assets/images/modifiers/gm_player_ondmgdealt_lifeleech.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/gm_player_ondmgdealt_lifeleech.png -------------------------------------------------------------------------------- /assets/images/modifiers/positive-hardware-constructors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/positive-hardware-constructors.png -------------------------------------------------------------------------------- /assets/images/resources/reagent_alteration_ele_nature.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/reagent_alteration_ele_nature.png -------------------------------------------------------------------------------- /assets/images/resources/reagent_alteration_upgrade_sr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/reagent_alteration_upgrade_sr.png -------------------------------------------------------------------------------- /assets/images/resources/reagent_alteration_upgrade_uc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/reagent_alteration_upgrade_uc.png -------------------------------------------------------------------------------- /assets/images/resources/reagent_alteration_upgrade_vr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/reagent_alteration_upgrade_vr.png -------------------------------------------------------------------------------- /assets/images/modifiers/gm_enemy_ondeath_applyspeedmods.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/gm_enemy_ondeath_applyspeedmods.png -------------------------------------------------------------------------------- /assets/images/modifiers/gm_enemy_ondeath_spawndamagepool.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/gm_enemy_ondeath_spawndamagepool.png -------------------------------------------------------------------------------- /assets/images/modifiers/gm_enemy_ondmgdealt_slowdownfoe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/gm_enemy_ondmgdealt_slowdownfoe.png -------------------------------------------------------------------------------- /assets/images/modifiers/gm_enemy_ondmgreceived_speedbuff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/gm_enemy_ondmgreceived_speedbuff.png -------------------------------------------------------------------------------- /assets/images/modifiers/gm_player_axesscythesdamage_buff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/gm_player_axesscythesdamage_buff.png -------------------------------------------------------------------------------- /assets/images/modifiers/gm_player_onshielddestroyed_aoe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/gm_player_onshielddestroyed_aoe.png -------------------------------------------------------------------------------- /assets/images/modifiers/gm_player_sniperrifle_damagebuff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/gm_player_sniperrifle_damagebuff.png -------------------------------------------------------------------------------- /assets/images/modifiers/gm_player_spearsworddamage_buff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/gm_player_spearsworddamage_buff.png -------------------------------------------------------------------------------- /assets/images/modifiers/minibossenableprimarymissionitem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/minibossenableprimarymissionitem.png -------------------------------------------------------------------------------- /assets/images/traps/floor_player_jump_pad_free_direction.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/traps/floor_player_jump_pad_free_direction.png -------------------------------------------------------------------------------- /src/kernel/preload-actions/mcp/index.ts: -------------------------------------------------------------------------------- 1 | export * from './claim-rewards' 2 | export * from './client-quest-login' 3 | export * from './homebase-name' 4 | export * from './unlock' 5 | -------------------------------------------------------------------------------- /assets/images/modifiers/gm_player_assaultrifle_damage_buff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/gm_player_assaultrifle_damage_buff.png -------------------------------------------------------------------------------- /assets/images/resources/reagent_alteration_gameplay_generic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/resources/reagent_alteration_gameplay_generic.png -------------------------------------------------------------------------------- /assets/images/survivors/unique-leads/managerdoctor_sr_treky.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/survivors/unique-leads/managerdoctor_sr_treky.png -------------------------------------------------------------------------------- /assets/images/survivors/unique-leads/managerinventor_sr_rad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/survivors/unique-leads/managerinventor_sr_rad.png -------------------------------------------------------------------------------- /assets/images/modifiers/gm_basehusk_ondmgdealt_metalcorrosion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/gm_basehusk_ondmgdealt_metalcorrosion.png -------------------------------------------------------------------------------- /assets/images/modifiers/gm_enemy_ondeath_spawnplayerslowpool.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/gm_enemy_ondeath_spawnplayerslowpool.png -------------------------------------------------------------------------------- /assets/images/survivors/unique-leads/managerdoctor_sr_kingsly.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/survivors/unique-leads/managerdoctor_sr_kingsly.png -------------------------------------------------------------------------------- /assets/images/survivors/unique-leads/managerdoctor_sr_noctor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/survivors/unique-leads/managerdoctor_sr_noctor.png -------------------------------------------------------------------------------- /assets/images/survivors/unique-leads/managerengineer_sr_maths.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/survivors/unique-leads/managerengineer_sr_maths.png -------------------------------------------------------------------------------- /assets/images/survivors/unique-leads/managerengineer_sr_sobs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/survivors/unique-leads/managerengineer_sr_sobs.png -------------------------------------------------------------------------------- /assets/images/survivors/unique-leads/managerexplorer_sr_birdie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/survivors/unique-leads/managerexplorer_sr_birdie.png -------------------------------------------------------------------------------- /assets/images/survivors/unique-leads/managerexplorer_sr_eagle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/survivors/unique-leads/managerexplorer_sr_eagle.png -------------------------------------------------------------------------------- /assets/images/survivors/unique-leads/managergadgeteer_sr_fixer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/survivors/unique-leads/managergadgeteer_sr_fixer.png -------------------------------------------------------------------------------- /assets/images/survivors/unique-leads/managergadgeteer_sr_flak.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/survivors/unique-leads/managergadgeteer_sr_flak.png -------------------------------------------------------------------------------- /assets/images/survivors/unique-leads/managergadgeteer_sr_zapps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/survivors/unique-leads/managergadgeteer_sr_zapps.png -------------------------------------------------------------------------------- /assets/images/survivors/unique-leads/managerinventor_sr_square.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/survivors/unique-leads/managerinventor_sr_square.png -------------------------------------------------------------------------------- /assets/images/survivors/unique-leads/managersoldier_sr_malcolm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/survivors/unique-leads/managersoldier_sr_malcolm.png -------------------------------------------------------------------------------- /assets/images/survivors/unique-leads/managersoldier_sr_ramsie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/survivors/unique-leads/managersoldier_sr_ramsie.png -------------------------------------------------------------------------------- /assets/images/survivors/unique-leads/managertrainer_sr_jumpy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/survivors/unique-leads/managertrainer_sr_jumpy.png -------------------------------------------------------------------------------- /assets/images/survivors/unique-leads/managertrainer_sr_raider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/survivors/unique-leads/managertrainer_sr_raider.png -------------------------------------------------------------------------------- /src/lib/validations/schemas/matchmaking.ts: -------------------------------------------------------------------------------- 1 | import { z } from 'zod' 2 | 3 | export const matchmakingSchema = z.unknown() 4 | export const matchmakingsSchema = z.array(matchmakingSchema) 5 | -------------------------------------------------------------------------------- /assets/images/survivors/unique-leads/managerengineer_sr_countess.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/survivors/unique-leads/managerengineer_sr_countess.png -------------------------------------------------------------------------------- /assets/images/survivors/unique-leads/managersoldier_sr_princess.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/survivors/unique-leads/managersoldier_sr_princess.png -------------------------------------------------------------------------------- /assets/images/survivors/unique-leads/managertrainer_sr_yoglattes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/survivors/unique-leads/managertrainer_sr_yoglattes.png -------------------------------------------------------------------------------- /src/lib/timers.ts: -------------------------------------------------------------------------------- 1 | export async function sleep(time: number) { 2 | await new Promise((resolve) => { 3 | setTimeout(() => { 4 | resolve() 5 | }, time * 1000) 6 | }) 7 | } 8 | -------------------------------------------------------------------------------- /assets/images/modifiers/gm_enemy_ondeath_spawnenemyrangeresistpool.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/modifiers/gm_enemy_ondeath_spawnenemyrangeresistpool.png -------------------------------------------------------------------------------- /assets/images/survivors/unique-leads/managerexplorer_sr_spacebound.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/survivors/unique-leads/managerexplorer_sr_spacebound.png -------------------------------------------------------------------------------- /assets/images/survivors/unique-leads/managerinventor_sr_frequency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/survivors/unique-leads/managerinventor_sr_frequency.png -------------------------------------------------------------------------------- /assets/images/survivors/unique-leads/managermartialartist_sr_dragon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/survivors/unique-leads/managermartialartist_sr_dragon.png -------------------------------------------------------------------------------- /assets/images/survivors/unique-leads/managermartialartist_sr_tiger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/survivors/unique-leads/managermartialartist_sr_tiger.png -------------------------------------------------------------------------------- /src/lib/validations/schemas/groups.ts: -------------------------------------------------------------------------------- 1 | import { z } from 'zod' 2 | 3 | export const groupSchema = z.array(z.string().min(1)) 4 | export const groupsSchema = z.record(z.string().min(1), groupSchema) 5 | -------------------------------------------------------------------------------- /assets/images/survivors/unique-leads/managermartialartist_sr_samurai.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ciensprog/Aerial-Launcher/HEAD/assets/images/survivors/unique-leads/managermartialartist_sr_samurai.png -------------------------------------------------------------------------------- /src/types/services/friends.d.ts: -------------------------------------------------------------------------------- 1 | export type FetchFriendResponse = { 2 | accountId: string 3 | groups: Array 4 | alias: string 5 | note: string 6 | favorite: boolean 7 | created: string 8 | } 9 | -------------------------------------------------------------------------------- /src/locales/zh-CN/account-management/eula.json: -------------------------------------------------------------------------------- 1 | { 2 | "good-to-know": "了解更多:", 3 | "link": "您可以访问 <2>https://www.epicgames.com/account/eula-history 并点击页面底部的 “我同意 ”按钮:", 4 | "placeholder": "生成的 EULA 链接" 5 | } 6 | -------------------------------------------------------------------------------- /src/locales/pl-PL/account-management/eula.json: -------------------------------------------------------------------------------- 1 | { 2 | "good-to-know": "Warto wiedzieć:", 3 | "link": "Możesz przejść do <2>https://www.epicgames.com/account/eula-history i kliknąć przycisk \"Zgadzam się\" na dole strony:" 4 | } -------------------------------------------------------------------------------- /src/types/tags.d.ts: -------------------------------------------------------------------------------- 1 | import { z } from 'zod' 2 | 3 | import { tagSchema, tagsSchema } from '../lib/validations/schemas/tags' 4 | 5 | export type Tag = z.infer 6 | export type TagRecord = z.infer 7 | -------------------------------------------------------------------------------- /src/locales/zh-CN/account-management/vbucks-information.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "每个选定账户的V币信息。", 3 | "form": { 4 | "submit-button": "显示信息" 5 | }, 6 | "results": { 7 | "title": "{{total}} 个账户的V币汇总" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/locales/zh-CN/accounts/general.json: -------------------------------------------------------------------------------- 1 | { 2 | "notifications": { 3 | "new-account": { 4 | "success": "新账户已添加:{{name}}", 5 | "error": "未知错误", 6 | "launcher-auth-login": "无法添加账户,请检查凭据是否有效" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/types/services/errors.d.ts: -------------------------------------------------------------------------------- 1 | export type CommonErrorResponse = { 2 | errorCode: string 3 | errorMessage: string 4 | intent: string 5 | messageVars: Array 6 | numericErrorCode: number 7 | originatingService: string 8 | } 9 | -------------------------------------------------------------------------------- /src/lib/validations/schemas/auto-pin-urns-data.ts: -------------------------------------------------------------------------------- 1 | import { z } from 'zod' 2 | 3 | export const autoPinUrnsServerDataSchema = z.boolean() 4 | export const autoPinUrnsDataSchema = z.record( 5 | z.string(), 6 | autoPinUrnsServerDataSchema 7 | ) 8 | -------------------------------------------------------------------------------- /src/types/services/storefront.d.ts: -------------------------------------------------------------------------------- 1 | import { z } from 'zod' 2 | 3 | import { storefrontCatalogSchema } from '../../lib/validations/schemas/storefront' 4 | 5 | export type StorefrontCatalogResponse = z.infer< 6 | typeof storefrontCatalogSchema 7 | > 8 | -------------------------------------------------------------------------------- /src/config/constants/tags.ts: -------------------------------------------------------------------------------- 1 | export enum BulkTags { 2 | ALL = 'all', 3 | ALL_ACCOUNTS = 'all accounts', 4 | BULK = 'bulk', 5 | } 6 | 7 | export function getBulkTags() { 8 | return [BulkTags.ALL, BulkTags.ALL_ACCOUNTS, BulkTags.BULK] 9 | } 10 | -------------------------------------------------------------------------------- /src/locales/zh-CN/stw-operations/urns.json: -------------------------------------------------------------------------------- 1 | { 2 | "note": "注意:仅在地牢赛季期间有效。", 3 | "description": "此功能将在每次通过启动器完成任务时自动固定“Urn Your Keep”任务。这样你们就可以随时跟踪缺少的骨灰罐,而不必在每次运行前手动固定它。", 4 | "options": { 5 | "urns": "骨灰罐", 6 | "mini-bosses": "小头目" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/data/survivors.json: -------------------------------------------------------------------------------- 1 | { 2 | "worker_joel_ur": { 3 | "gender": 1, 4 | "name": "Joel", 5 | "portrait": null 6 | }, 7 | "worker_karolina_ur": { 8 | "gender": 2, 9 | "name": "Karolina", 10 | "portrait": null 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/locales/zh-CN/stw-operations/save-quests.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "保存所选账户的任务进度。(备注:中途退出游戏且保存游戏进度已不可用,但本项目可用于未上线时领取STW每日任务)", 3 | "form": { 4 | "submit-button": "保存任务" 5 | }, 6 | "notifications": { 7 | "saved": "任务进度已保存" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/locales/pl-PL/stw-operations/save-quests.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Zapisz progres zadań na wybranch kontach.", 3 | "form": { 4 | "submit-button": "Zapisz progres" 5 | }, 6 | "notifications": { 7 | "saved": "Postęp zadań został zapisany" 8 | } 9 | } -------------------------------------------------------------------------------- /src/locales/zh-CN/stw-operations/unlock.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "如果您想解锁风暴护盾防御奖励(如幸存者小队槽位、防御者等),即使防御任务尚未完成,此功能可使其可用。", 3 | "note": "注意:这样做不会获得 V-Bucks 或完成风暴盾防御,您只能获得上述奖励。", 4 | "form": { 5 | "submit-button": "解锁", 6 | "clear-button": "清除选择" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/locales/zh-CN/account-management/redeem-codes.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "在每个选定的账户上兑换代码。", 3 | "form": { 4 | "input": { 5 | "placeholder": "设置要兑换的代码(使用换行)。" 6 | }, 7 | "redeem-button": "兑换代码", 8 | "clear-button": "清除表单" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/locales/zh-CN/stw-operations/homebase-name.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "更新所选账户的基地名称(游戏中不再可见)。", 3 | "form": { 4 | "placeholder": "设置基地名称", 5 | "submit-button": "更新基地名称" 6 | }, 7 | "notifications": { 8 | "updated": "基地名称已更新" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/locales/zh-CN/accounts/remove-account.json: -------------------------------------------------------------------------------- 1 | { 2 | "form": { 3 | "label": "您是否要移除 <2>{{name}} 账户?", 4 | "submit-button": "是的,移除选定的账户" 5 | }, 6 | "notifications": { 7 | "remove": { 8 | "success": "账户 {{name}} 已被移除" 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/locales/zh-CN/zones.json: -------------------------------------------------------------------------------- 1 | { 2 | "ventures": "冒险(V)", 3 | "33A2311D4AE64B361CCE27BC9F313C8B": "荒木石林(T1)", 4 | "D477605B4FA48648107B649CE97FCF27": "普兰克顿(T2)", 5 | "E6ECBD064B153234656CB4BDE6743870": "坎尼山谷(T3)", 6 | "D9A801C5444D1C74D1B7DAB5C7C12C5B": "麻峰(T4)" 7 | } 8 | -------------------------------------------------------------------------------- /src/types/groups.d.ts: -------------------------------------------------------------------------------- 1 | import { z } from 'zod' 2 | 3 | import { 4 | groupSchema, 5 | groupsSchema, 6 | } from '../lib/validations/schemas/groups' 7 | 8 | export type Group = z.infer 9 | export type GroupRecord = z.infer 10 | -------------------------------------------------------------------------------- /src/config/constants/fortnite/quests.ts: -------------------------------------------------------------------------------- 1 | export enum QuestEventRepeatable { 2 | DangerInTheMist = 'Quest:genericquest_killmistmonsters_repeatable', 3 | UrnYourKeep = 'Quest:starlightquest_destroy_urns', 4 | ExorcismByElimination = 'Quest:starlightquest_kill_minibosses', 5 | } 6 | -------------------------------------------------------------------------------- /src/hooks/language.ts: -------------------------------------------------------------------------------- 1 | import { useLanguageStore } from '../state/settings/language' 2 | 3 | export function useLanguage() { 4 | return useLanguageStore() 5 | } 6 | 7 | export function useGetAppLanguage() { 8 | return useLanguageStore((state) => state.language) 9 | } 10 | -------------------------------------------------------------------------------- /src/locales/en-US/account-management/eula.json: -------------------------------------------------------------------------------- 1 | { 2 | "good-to-know": "Good To Know:", 3 | "link": "You can go to <2>https://www.epicgames.com/account/eula-history and click the \"I Agree\" button at the bottom of the page:", 4 | "placeholder": "Generated link to EULA" 5 | } 6 | -------------------------------------------------------------------------------- /src/locales/zh-CN/history.json: -------------------------------------------------------------------------------- 1 | { 2 | "history": { 3 | "note": "注意:这是一个临时历史记录,每次关闭后重置", 4 | "empty": "已领取奖励的历史记录" 5 | }, 6 | "summary": { 7 | "note": "注意:此摘要基于您的临时历史记录。", 8 | "empty": "已领取奖励历史记录的摘要", 9 | "all-accounts": "所有账户的摘要" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/types/friends.d.ts: -------------------------------------------------------------------------------- 1 | import { z } from 'zod' 2 | 3 | import { 4 | friendSchema, 5 | friendsSchema, 6 | } from '../lib/validations/schemas/friends' 7 | 8 | export type Friend = z.infer 9 | export type FriendRecord = z.infer 10 | -------------------------------------------------------------------------------- /src/locales/it-IT/zones.json: -------------------------------------------------------------------------------- 1 | { 2 | "ventures": "Venture", 3 | "33A2311D4AE64B361CCE27BC9F313C8B": "Pietralegno", 4 | "D477605B4FA48648107B649CE97FCF27": "Tavolaccia", 5 | "E6ECBD064B153234656CB4BDE6743870": "Vallarguta", 6 | "D9A801C5444D1C74D1B7DAB5C7C12C5B": "Montespago" 7 | } 8 | -------------------------------------------------------------------------------- /src/locales/pt-BR/stw-operations/save-quests.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Salvar o progresso das missões das contas selecionadas.", 3 | "form": { 4 | "submit-button": "Salvar Missões" 5 | }, 6 | "notifications": { 7 | "saved": "O progresso das missões foi salvo" 8 | } 9 | } -------------------------------------------------------------------------------- /src/types/notifications.d.ts: -------------------------------------------------------------------------------- 1 | export type RewardsNotification = { 2 | accolades: { 3 | totalMissionXPRedeemed: number 4 | totalQuestXPRedeemed: number 5 | } 6 | accountId: string 7 | createdAt: string 8 | id: string 9 | rewards: Record 10 | } 11 | -------------------------------------------------------------------------------- /src/locales/en-US/stw-operations/save-quests.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Save quests progression of the selected accounts.", 3 | "form": { 4 | "submit-button": "Save Quests" 5 | }, 6 | "notifications": { 7 | "saved": "Quests progression has been saved" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/locales/en-US/zones.json: -------------------------------------------------------------------------------- 1 | { 2 | "ventures": "Ventures", 3 | "33A2311D4AE64B361CCE27BC9F313C8B": "Stonewood", 4 | "D477605B4FA48648107B649CE97FCF27": "Plankerton", 5 | "E6ECBD064B153234656CB4BDE6743870": "Canny Valley", 6 | "D9A801C5444D1C74D1B7DAB5C7C12C5B": "Twine Peaks" 7 | } 8 | -------------------------------------------------------------------------------- /src/locales/es-419/account-management/eula.json: -------------------------------------------------------------------------------- 1 | { 2 | "good-to-know": "Bueno Saber:", 3 | "link": "Puedes ir a <2>https://www.epicgames.com/account/eula-history y hacer clic en el botón \"Acepto\" ubicado al final de la página:", 4 | "placeholder": "Enlace generado al EULA" 5 | } 6 | -------------------------------------------------------------------------------- /src/locales/it-IT/account-management/eula.json: -------------------------------------------------------------------------------- 1 | { 2 | "good-to-know": "Buono a sapersi:", 3 | "link": "Puoi andare su <2>https://www.epicgames.com/account/eula-history e cliccare il bottone \"Accetto\" in basso nella pagina per:", 4 | "placeholder": "Link generato per l'EULA" 5 | } 6 | -------------------------------------------------------------------------------- /src/locales/pl-PL/zones.json: -------------------------------------------------------------------------------- 1 | { 2 | "ventures": "Wyprawy", 3 | "33A2311D4AE64B361CCE27BC9F313C8B": "Kamienny Las", 4 | "D477605B4FA48648107B649CE97FCF27": "Deskogród", 5 | "E6ECBD064B153234656CB4BDE6743870": "Dolina Samowitości", 6 | "D9A801C5444D1C74D1B7DAB5C7C12C5B": "Twine Peaks" 7 | } -------------------------------------------------------------------------------- /src/locales/pt-BR/account-management/vbucks-information.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Informações de V-Bucks em cada conta selecionada.", 3 | "form": { 4 | "submit-button": "Exibir Informações" 5 | }, 6 | "results": { 7 | "title": "Resumo de V-Bucks em {{total}} Conta(s)" 8 | } 9 | } -------------------------------------------------------------------------------- /src/locales/pt-BR/zones.json: -------------------------------------------------------------------------------- 1 | { 2 | "ventures": "Aventura", 3 | "33A2311D4AE64B361CCE27BC9F313C8B": "Floresta Pétra", 4 | "D477605B4FA48648107B649CE97FCF27": "Plankerton", 5 | "E6ECBD064B153234656CB4BDE6743870": "Canny Valley", 6 | "D9A801C5444D1C74D1B7DAB5C7C12C5B": "Twine Peaks" 7 | } -------------------------------------------------------------------------------- /src/locales/ru-RU/stw-operations/save-quests.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Сохраняйте прогресс квестов на выбранных аккаунтах.", 3 | "form": { 4 | "submit-button": "Сохранить квесты" 5 | }, 6 | "notifications": { 7 | "saved": "Прогресс квестов сохранено" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/locales/pt-BR/account-management/eula.json: -------------------------------------------------------------------------------- 1 | { 2 | "good-to-know": "Importante Saber:", 3 | "link": "Você pode acessar <2>https://www.epicgames.com/account/eula-history e clicar no botão \"Eu Concordo\" na parte inferior da página:", 4 | "placeholder": "Link gerado para o EULA" 5 | } 6 | -------------------------------------------------------------------------------- /src/locales/ru-RU/zones.json: -------------------------------------------------------------------------------- 1 | { 2 | "ventures": "Зона Храбрости", 3 | "33A2311D4AE64B361CCE27BC9F313C8B": "Камнелесье", 4 | "D477605B4FA48648107B649CE97FCF27": "Планкертон", 5 | "E6ECBD064B153234656CB4BDE6743870": "Вещая Долина", 6 | "D9A801C5444D1C74D1B7DAB5C7C12C5B": "Линч Пикс" 7 | } 8 | -------------------------------------------------------------------------------- /src/locales/en-US/account-management/vbucks-information.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "V-Bucks information on each selected accounts.", 3 | "form": { 4 | "submit-button": "Show Information" 5 | }, 6 | "results": { 7 | "title": "V-Bucks Summary On {{total}} Account/s" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/locales/es-419/stw-operations/save-quests.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Guardar progreso de misiones de las cuentas seleccionadas.", 3 | "form": { 4 | "submit-button": "Guardar Misiones" 5 | }, 6 | "notifications": { 7 | "saved": "Progreso de misiones guardado" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/locales/it-IT/stw-operations/save-quests.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Salva il progresso fatto nelle sfide degli account selezionati.", 3 | "form": { 4 | "submit-button": "Salva Sfide" 5 | }, 6 | "notifications": { 7 | "saved": "Il progresso è stato salvato" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/locales/pl-PL/account-management/vbucks-information.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Informacje o V-Dolcach na każdym z wybranych kont.", 3 | "form": { 4 | "submit-button": "Pokaż informacje" 5 | }, 6 | "results": { 7 | "title": "Podsumowanie V-Dolców na {{total}} koncie/kontach" 8 | } 9 | } -------------------------------------------------------------------------------- /src/locales/ru-RU/account-management/eula.json: -------------------------------------------------------------------------------- 1 | { 2 | "good-to-know": "Полезная Информация:", 3 | "link": "Вы можете перейти по ссылке <2>https://www.epicgames.com/account/eula-history и нажать кнопку \"Я согласен\" внизу страницы:", 4 | "placeholder": "Сгенерированная ссылка на EULA" 5 | } 6 | -------------------------------------------------------------------------------- /src/locales/es-419/zones.json: -------------------------------------------------------------------------------- 1 | { 2 | "ventures": "Aventuras", 3 | "33A2311D4AE64B361CCE27BC9F313C8B": "Bosque Pedregoso", 4 | "D477605B4FA48648107B649CE97FCF27": "Villa Tablón", 5 | "E6ECBD064B153234656CB4BDE6743870": "Valle Latoso", 6 | "D9A801C5444D1C74D1B7DAB5C7C12C5B": "Cumbres Leñosas" 7 | } 8 | -------------------------------------------------------------------------------- /src/locales/it-IT/account-management/vbucks-information.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Informazioni V-Bucks su ogni account selezionato.", 3 | "form": { 4 | "submit-button": "Mostra Informazioni" 5 | }, 6 | "results": { 7 | "title": "Resoconto V-Bucks Su {{total}} Account" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/locales/pl-PL/accounts/general.json: -------------------------------------------------------------------------------- 1 | { 2 | "notifications": { 3 | "new-account": { 4 | "success": "Dodano nowe konto: {{name}}", 5 | "error": "Nieznany błąd", 6 | "launcher-auth-login": "Nie można dodać konta, sprawdź, czy dane uwierzytelniające są prawidłowe" 7 | } 8 | } 9 | } -------------------------------------------------------------------------------- /src/locales/ru-RU/account-management/vbucks-information.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Информация о В-баксах на выбранных аккаунтов .", 3 | "form": { 4 | "submit-button": "Показать Информацию" 5 | }, 6 | "results": { 7 | "title": "Сводка По В-баксам На Аккаунтах {{total}}" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/locales/zh-CN/accounts/auth-code.json: -------------------------------------------------------------------------------- 1 | { 2 | "guide": { 3 | "title": "如何获取账号授权码:", 4 | "steps": { 5 | "1": "<0>步骤 1: 您必须登录到您的 Epic Games 账户:<3>{{url}}", 6 | "2": "<0>步骤 2: 点击<3>此链接或下面的按钮(生成授权码),这将在您的浏览器中打开一个包含授权代码的 JSON 格式响应的新标签页:" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/hooks/ui/sidebars.ts: -------------------------------------------------------------------------------- 1 | import { useUISidebarHistoryStore } from '../../state/ui/sidebars/history' 2 | 3 | export function useUISidebarHistory() { 4 | const { changeVisibility, visibility } = useUISidebarHistoryStore() 5 | 6 | return { 7 | changeVisibility, 8 | visibility, 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/locales/en-US/accounts/general.json: -------------------------------------------------------------------------------- 1 | { 2 | "notifications": { 3 | "new-account": { 4 | "success": "New account added: {{name}}", 5 | "error": "Unknown error", 6 | "launcher-auth-login": "Unable to add account, please check if the credentials are valid" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/locales/ru-RU/accounts/general.json: -------------------------------------------------------------------------------- 1 | { 2 | "notifications": { 3 | "new-account": { 4 | "success": "Добавлен новый аккаунт: {{name}}", 5 | "error": "Неизвестная Ошибка", 6 | "launcher-auth-login": "Невозможно добавить аккаунт, проверьте введные данные." 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/locales/es-419/account-management/vbucks-information.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Información de V-Bucks de las cuentas seleccionadas.", 3 | "form": { 4 | "submit-button": "Mostrar Información" 5 | }, 6 | "results": { 7 | "title": "Resumen de V-Bucks en {{total}} Cuenta/s" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/locales/pl-PL/accounts/remove-account.json: -------------------------------------------------------------------------------- 1 | { 2 | "form": { 3 | "label": "Czy chcesz usunąć konto <2>{{name}}?", 4 | "submit-button": "Tak, usuń wybrane konto" 5 | }, 6 | "notifications": { 7 | "remove": { 8 | "success": "Konto {{name}} zostało usunięte" 9 | } 10 | } 11 | } -------------------------------------------------------------------------------- /src/locales/pt-BR/accounts/general.json: -------------------------------------------------------------------------------- 1 | { 2 | "notifications": { 3 | "new-account": { 4 | "success": "Nova conta adicionada: {{name}}", 5 | "error": "Erro desconhecido", 6 | "launcher-auth-login": "Não foi possível adicionar a conta, verifique se as credenciais são válidas" 7 | } 8 | } 9 | } -------------------------------------------------------------------------------- /src/locales/zh-CN/account-management/epic-settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "form": { 3 | "generate-button": "生成链接", 4 | "open-button": "<0>打开账户设置 <1 />" 5 | }, 6 | "notifications": { 7 | "clipboard": "链接已复制到剪贴板", 8 | "success": "Epic Games 设置链接已生成", 9 | "error": "处理您的请求时发生错误" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/services/endpoints/repository.ts: -------------------------------------------------------------------------------- 1 | import type { RepositoryReleaseListResponse } from '../../types/services/repository' 2 | 3 | import { repositoryService } from '../config/repository' 4 | 5 | export function getAppReleases() { 6 | return repositoryService.get('/releases') 7 | } 8 | -------------------------------------------------------------------------------- /src/locales/pt-BR/accounts/remove-account.json: -------------------------------------------------------------------------------- 1 | { 2 | "form": { 3 | "label": "Você deseja remover a conta <2>{{name}}?", 4 | "submit-button": "Sim, remover conta selecionada" 5 | }, 6 | "notifications": { 7 | "remove": { 8 | "success": "A conta {{name}} foi removida" 9 | } 10 | } 11 | } -------------------------------------------------------------------------------- /src/locales/ru-RU/accounts/remove-account.json: -------------------------------------------------------------------------------- 1 | { 2 | "form": { 3 | "label": "Вы хотите убрать аккаунт <2>{{name}}?", 4 | "submit-button": "Да, убрать выбранный аккаунт" 5 | }, 6 | "notifications": { 7 | "remove": { 8 | "success": "Аккаунт {{name}} был удален" 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/locales/en-US/accounts/remove-account.json: -------------------------------------------------------------------------------- 1 | { 2 | "form": { 3 | "label": "Do you want to remove <2>{{name}} account?", 4 | "submit-button": "Yes, remove account selected" 5 | }, 6 | "notifications": { 7 | "remove": { 8 | "success": "Account {{name}} was removed" 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/locales/es-419/accounts/general.json: -------------------------------------------------------------------------------- 1 | { 2 | "notifications": { 3 | "new-account": { 4 | "success": "Nueva cuenta añadida: {{name}}", 5 | "error": "Error desconocido", 6 | "launcher-auth-login": "No se puede agregar la cuenta, verifique si las credenciales son válidas" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/services/config/repository.ts: -------------------------------------------------------------------------------- 1 | import axios from 'axios' 2 | 3 | import packageJson from '../../../package.json' 4 | 5 | /** 6 | * Repository Service 7 | */ 8 | 9 | export const repositoryService = axios.create({ 10 | baseURL: `https://api.github.com/repos/${packageJson.author.name}/Aerial-Launcher`, 11 | }) 12 | -------------------------------------------------------------------------------- /src/locales/en-US/account-management/redeem-codes.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Redeem codes on each selected accounts.", 3 | "form": { 4 | "input": { 5 | "placeholder": "Set codes to redeem (use newline)." 6 | }, 7 | "redeem-button": "Redeem Codes", 8 | "clear-button": "Clear Form" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/locales/it-IT/accounts/remove-account.json: -------------------------------------------------------------------------------- 1 | { 2 | "form": { 3 | "label": "Sei sicuro di voler rimuovere l'account <2>{{name}}?", 4 | "submit-button": "Sì, sono sicuro" 5 | }, 6 | "notifications": { 7 | "remove": { 8 | "success": "L'account {{name}} è stato rimosso" 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/locales/es-419/accounts/remove-account.json: -------------------------------------------------------------------------------- 1 | { 2 | "form": { 3 | "label": "¿Quieres remover la cuenta <2>{{name}}?", 4 | "submit-button": "Si, remover la cuenta seleccionada" 5 | }, 6 | "notifications": { 7 | "remove": { 8 | "success": "La cuenta {{name}} fue removida" 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/locales/it-IT/accounts/general.json: -------------------------------------------------------------------------------- 1 | { 2 | "notifications": { 3 | "new-account": { 4 | "success": "Nuovo account aggiunto: {{name}}", 5 | "error": "Errore sconosciuto", 6 | "launcher-auth-login": "Impossibile aggiungere l'account, per favore verifica che le credenziali siano corrette" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/locales/pl-PL/account-management/redeem-codes.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Zrealizuj kody na każdym z wybranych kont.", 3 | "form": { 4 | "input": { 5 | "placeholder": "Ustaw kody do realizacji (użyj nowej linii)." 6 | }, 7 | "redeem-button": "Wykorzystaj kody", 8 | "clear-button": "Wyczyść formularz" 9 | } 10 | } -------------------------------------------------------------------------------- /src/types/auto-llamas.d.ts: -------------------------------------------------------------------------------- 1 | import { z } from 'zod' 2 | 3 | import { 4 | autoLlamasDataRecordSchema, 5 | autoLlamasDataSchema, 6 | } from '../lib/validations/schemas/auto-llamas' 7 | 8 | export type AutoLlamasData = z.infer 9 | export type AutoLlamasRecord = z.infer 10 | -------------------------------------------------------------------------------- /src/config/constants/fortnite/founder.ts: -------------------------------------------------------------------------------- 1 | export enum FounderEdition { 2 | STANDARD = 'Quest:foundersquest_getrewards_0_1', 3 | DELUXE = 'Quest:foundersquest_getrewards_1_2', 4 | SUPER_DELUXE = 'Quest:foundersquest_getrewards_2_3', 5 | LIMITED = 'Quest:foundersquest_getrewards_3_4', 6 | ULTIMATE = 'Quest:foundersquest_getrewards_4_5', 7 | } 8 | -------------------------------------------------------------------------------- /src/config/constants/automation.ts: -------------------------------------------------------------------------------- 1 | export enum AutomationStatusType { 2 | LISTENING = 'listening', 3 | LOADING = 'loading', 4 | ISSUE = 'issue', 5 | DISCONNECTED = 'disconnected', 6 | ERROR = 'error', 7 | } 8 | 9 | export const missionIntervalRange = { 10 | min: 1, 11 | max: 5, 12 | } 13 | export const defaultMissionInterval = 3 14 | -------------------------------------------------------------------------------- /src/locales/it-IT/account-management/redeem-codes.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Riscatta codici su ogni account selezionato.", 3 | "form": { 4 | "input": { 5 | "placeholder": "Imposta codici da riscattare (usa linea nuova)." 6 | }, 7 | "redeem-button": "Riscatta Codice", 8 | "clear-button": "Svuota Documento" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/locales/pt-BR/account-management/redeem-codes.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Resgatar códigos em cada conta selecionada.", 3 | "form": { 4 | "input": { 5 | "placeholder": "Insira os códigos para resgatar (use uma nova linha)." 6 | }, 7 | "redeem-button": "Resgatar Códigos", 8 | "clear-button": "Limpar Formulário" 9 | } 10 | } -------------------------------------------------------------------------------- /src/locales/en-US/stw-operations/homebase-name.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Update homebase name (no longer visible in game) of the selected accounts.", 3 | "form": { 4 | "placeholder": "Set a homebase name", 5 | "submit-button": "Update Homebase Name" 6 | }, 7 | "notifications": { 8 | "updated": "Homebase name updated" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/locales/ru-RU/account-management/redeem-codes.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Активация кодов на выбранных аккаунта.", 3 | "form": { 4 | "input": { 5 | "placeholder": "Вставьте коды для активации (используйте новую строку)." 6 | }, 7 | "redeem-button": "Активировать коды", 8 | "clear-button": "Очистить форму" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/locales/es-419/account-management/redeem-codes.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Reclamar códigos en las cuentas seleccionadas.", 3 | "form": { 4 | "input": { 5 | "placeholder": "Ingresa los códigos a reclamar (usa nueva línea)." 6 | }, 7 | "redeem-button": "Reclamar Códigos", 8 | "clear-button": "Limpiar Formulario" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/locales/en-US/history.json: -------------------------------------------------------------------------------- 1 | { 2 | "history": { 3 | "note": "Note: This is a temporal history.", 4 | "empty": "Claimed Rewards History" 5 | }, 6 | "summary": { 7 | "note": "Note: This summary is based on your temporal history.", 8 | "empty": "Summary Of Claimed Rewards History", 9 | "all-accounts": "Summary of all accounts" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/locales/it-IT/stw-operations/homebase-name.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Aggiorna nome casabase (non più visibile in gioco) degli account selezionati.", 3 | "form": { 4 | "placeholder": "Imposta un nome casabase", 5 | "submit-button": "Aggiorna Nome Casabase" 6 | }, 7 | "notifications": { 8 | "updated": "Nome casabase aggiornato" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/types/urns.d.ts: -------------------------------------------------------------------------------- 1 | import type { 2 | autoPinUrnsDataSchema, 3 | autoPinUrnsServerDataSchema, 4 | } from '../lib/validations/schemas/auto-pin-urns-data' 5 | 6 | import { z } from 'zod' 7 | 8 | export type AutoPinUrnDataList = z.infer 9 | export type AutoPinUrnDataValue = z.infer< 10 | typeof autoPinUrnsServerDataSchema 11 | > 12 | -------------------------------------------------------------------------------- /src/lib/statuses.ts: -------------------------------------------------------------------------------- 1 | import type { AccountData } from '../types/accounts' 2 | 3 | export function getStatusProvider(provider: AccountData['provider']) { 4 | const statusProvider = { 5 | null: 'Unknown Provider', 6 | undefined: 'Loading...', 7 | } 8 | 9 | return typeof provider === 'string' 10 | ? provider 11 | : statusProvider[`${provider}`] 12 | } 13 | -------------------------------------------------------------------------------- /src/locales/pl-PL/stw-operations/homebase-name.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Zaktualizuj nazwę bazy głównej (nie jest już widoczna w grze) wybranych kont.", 3 | "form": { 4 | "placeholder": "Ustaw nazwę bazy głównej", 5 | "submit-button": "Zaktualizuj nazwę bazy głównej" 6 | }, 7 | "notifications": { 8 | "updated": "Nazwa bazy głównej zaktualizowana" 9 | } 10 | } -------------------------------------------------------------------------------- /src/locales/ru-RU/history.json: -------------------------------------------------------------------------------- 1 | { 2 | "history": { 3 | "note": "Примечание: Это временная история.", 4 | "empty": "История собранных наград" 5 | }, 6 | "summary": { 7 | "note": "Примечание: Эта сводка основана на вашей временной истории", 8 | "empty": "Сводка по истории собранных наград", 9 | "all-accounts": "Сводка по всем аккаунтам" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/lib/parsers/texts.ts: -------------------------------------------------------------------------------- 1 | export function parseRedeemCodes(value: string) { 2 | const newValue = (value ?? '') 3 | .replace(/[^\w\n]+/gi, '') 4 | .replace(/\n+/g, '\n') 5 | const codes = newValue 6 | .split('\n') 7 | .map((item) => item.trim()) 8 | .filter((item) => item.length > 0) 9 | const noRepeated = [...new Set(codes)] 10 | 11 | return noRepeated 12 | } 13 | -------------------------------------------------------------------------------- /src/locales/pl-PL/history.json: -------------------------------------------------------------------------------- 1 | { 2 | "history": { 3 | "note": "Uwaga: Jest to historia tymczasowa.", 4 | "empty": "Historia zdobytych nagród" 5 | }, 6 | "summary": { 7 | "note": "Uwaga: To podsumowanie opiera się na twojej historii tymczasowej.", 8 | "empty": "Podsumowanie historii zdobytych nagród", 9 | "all-accounts": "Podsumowanie wszystkich kont" 10 | } 11 | } -------------------------------------------------------------------------------- /src/locales/ru-RU/stw-operations/homebase-name.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Обновить название главной базы (которое больше не отображается в игре) на выбранных аккаунтов.", 3 | "form": { 4 | "placeholder": "Установите имя главной базы", 5 | "submit-button": "Обновить имя главной базы" 6 | }, 7 | "notifications": { 8 | "updated": "Обновлено имя главной базы" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/locales/es-419/stw-operations/homebase-name.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Actualizar el nombre de la base (ya no es visible en el juego) de las cuentas seleccionadas.", 3 | "form": { 4 | "placeholder": "Ingresar un nombre de base", 5 | "submit-button": "Actualizar Nombre De La Base" 6 | }, 7 | "notifications": { 8 | "updated": "Nombre de la base actualizado" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/locales/pt-BR/history.json: -------------------------------------------------------------------------------- 1 | { 2 | "history": { 3 | "note": "Nota: Este é um histórico temporário.", 4 | "empty": "Histórico de Recompensas Resgatadas" 5 | }, 6 | "summary": { 7 | "note": "Nota: Este resumo é baseado no seu histórico temporário.", 8 | "empty": "Resumo do Histórico de Recompensas Resgatadas", 9 | "all-accounts": "Resumo de todas as contas" 10 | } 11 | } -------------------------------------------------------------------------------- /src/lib/validations/properties.ts: -------------------------------------------------------------------------------- 1 | import type { AccountData } from '../../types/accounts' 2 | 3 | export function checkIfCustomDisplayNameIsValid( 4 | customDisplayName: AccountData['customDisplayName'] 5 | ): customDisplayName is string { 6 | return ( 7 | Boolean(customDisplayName) && 8 | typeof customDisplayName === 'string' && 9 | customDisplayName.trim() !== '' 10 | ) 11 | } 12 | -------------------------------------------------------------------------------- /src/locale.ts: -------------------------------------------------------------------------------- 1 | import i18n, { use } from 'i18next' 2 | import { initReactI18next } from 'react-i18next' 3 | 4 | import { defaultAppLanguage } from './config/constants/settings' 5 | 6 | import { Language, resources } from './locales/resources' 7 | 8 | use(initReactI18next).init({ 9 | resources, 10 | lng: defaultAppLanguage, 11 | fallbackLng: Language.English, 12 | }) 13 | 14 | export { i18n } 15 | -------------------------------------------------------------------------------- /src/locales/es-419/history.json: -------------------------------------------------------------------------------- 1 | { 2 | "history": { 3 | "note": "Nota: Este es un historial temporal.", 4 | "empty": "Historial de Recompensas Reclamadas" 5 | }, 6 | "summary": { 7 | "note": "Nota: Este resumen se basa en tu historial temporal.", 8 | "empty": "Resumen del Historial de Recompensas Reclamadas", 9 | "all-accounts": "Resumen de todas las cuentas" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/locales/pl-PL/accounts/auth-code.json: -------------------------------------------------------------------------------- 1 | { 2 | "guide": { 3 | "title": "Jak uzyskać kod:", 4 | "steps": { 5 | "1": "<0>Krok 1: Musisz zalogować się na swoje konto Epic Games: <3>{{url}}", 6 | "2": "<0>Krok 2: Kliknij na <3>ten link lub przycisk poniżej (Uzyskaj Kod), otworzy on nową kartę w przeglądarce z odpowiedzią formatu json z kodem autoryzacyjnym:" 7 | } 8 | } 9 | } -------------------------------------------------------------------------------- /src/locales/pt-BR/stw-operations/homebase-name.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Atualize o nome da base principal (não mais visível no jogo) das contas selecionadas.", 3 | "form": { 4 | "placeholder": "Definir um nome para a base principal", 5 | "submit-button": "Atualizar nome da base principal" 6 | }, 7 | "notifications": { 8 | "updated": "Nome da base principal atualizado" 9 | } 10 | } -------------------------------------------------------------------------------- /src/components/ui/skeleton.tsx: -------------------------------------------------------------------------------- 1 | import type { HTMLAttributes } from 'react' 2 | 3 | import { cn } from '../../lib/utils' 4 | 5 | function Skeleton({ 6 | className, 7 | ...props 8 | }: HTMLAttributes) { 9 | return ( 10 |
14 | ) 15 | } 16 | 17 | export { Skeleton } 18 | -------------------------------------------------------------------------------- /src/lib/validations/schemas/fortnite/clients.ts: -------------------------------------------------------------------------------- 1 | import { z } from 'zod' 2 | 3 | /** 4 | * Schema for client credential 5 | */ 6 | export const clientCredentialSchema = z.object({ 7 | clientId: z.string().length(32), 8 | secret: z.string().length(32), 9 | auth: z.string().length(88), 10 | }) 11 | 12 | export const defaultClientCredentialSchema = z.object({ 13 | use: clientCredentialSchema, 14 | }) 15 | -------------------------------------------------------------------------------- /src/state/ui/sidebars/history.ts: -------------------------------------------------------------------------------- 1 | import { create } from 'zustand' 2 | 3 | export type UISidebarHistoryState = { 4 | visibility: boolean 5 | 6 | changeVisibility: (value: boolean) => void 7 | } 8 | 9 | export const useUISidebarHistoryStore = create()( 10 | (set) => ({ 11 | visibility: false, 12 | 13 | changeVisibility: (visibility) => set({ visibility }), 14 | }) 15 | ) 16 | -------------------------------------------------------------------------------- /src/locales/ru-RU/accounts/auth-code.json: -------------------------------------------------------------------------------- 1 | { 2 | "guide": { 3 | "title": "Как получить код:", 4 | "steps": { 5 | "1": "<0>Шаг 1: Вам необходимо войти в свой аккаунт Epic Games.: <3>{{url}}", 6 | "2": "<0>Шаг 2: Нажать на <3>эту ссылку или нажав кнопку ниже (Получить код), откроется новая вкладка в браузере с ответом в формате JSON с кодом авторизации:" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/locales/en-US/account-management/epic-settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "form": { 3 | "generate-button": "Generate Link", 4 | "open-button": "<0>Open Account Settings <1 />" 5 | }, 6 | "notifications": { 7 | "clipboard": "Link has been copied into clipboard", 8 | "success": "Epic Games settings link has been generated", 9 | "error": "An error occurred while processing your request" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/locales/en-US/stw-operations/urns.json: -------------------------------------------------------------------------------- 1 | { 2 | "note": "Note: Only works during dungeon seasons.", 3 | "description": "This feature will automatically pin \"Urn Your Keep\" quest every time it claims it (with the launcher). So you guys can always have track of the urns you are missing and don't bother pinning it before every run.", 4 | "options": { 5 | "urns": "Urns", 6 | "mini-bosses": "Mini-Bosses" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/locales/it-IT/history.json: -------------------------------------------------------------------------------- 1 | { 2 | "history": { 3 | "note": "Nota: Questa cronologia è temporanea.", 4 | "empty": "Cronologia Ricompense Riscattate" 5 | }, 6 | "summary": { 7 | "note": "Nota: Questo Resoconto è basato sulla tua cronologia temporanea.", 8 | "empty": "Resoconto Della Cronologia Delle Ricompense Riscattate", 9 | "all-accounts": "Resoconto di tutti gli account" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/locales/pl-PL/account-management/epic-settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "form": { 3 | "generate-button": "Wygeneruj Link", 4 | "open-button": "<0>Otwórz ustawienia konta <1 />" 5 | }, 6 | "notifications": { 7 | "clipboard": "Link został skopiowany do schowka", 8 | "success": "Link do ustawień Epic Games został wygenerowany", 9 | "error": "Podczas przetwarzania Twojego żądania wystąpił błąd" 10 | } 11 | } -------------------------------------------------------------------------------- /src/locales/ru-RU/account-management/epic-settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "form": { 3 | "generate-button": "Создать ссылку", 4 | "open-button": "<0>Открыть настройки аккаунта <1 />" 5 | }, 6 | "notifications": { 7 | "clipboard": "Ссылка была скопирована в буфер обмена", 8 | "success": "Создана ссылка на настройки Epic Games", 9 | "error": "При обработке вашего запроса произошла ошибка" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/locales/en-US/accounts/auth-code.json: -------------------------------------------------------------------------------- 1 | { 2 | "guide": { 3 | "title": "How to get the code:", 4 | "steps": { 5 | "1": "<0>Step 1: You must sign in to your Epic Games account: <3>{{url}}", 6 | "2": "<0>Step 2: Click on <3>this link or in button below (Get Code), this will be open a new tab in your browser with a json format response with your authorization code:" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/locales/pt-BR/accounts/auth-code.json: -------------------------------------------------------------------------------- 1 | { 2 | "guide": { 3 | "title": "Como obter o código:", 4 | "steps": { 5 | "1": "<0>Passo 1: Você deve fazer login na sua conta Epic Games: <3>{{url}}", 6 | "2": "<0>Passo 2: Clique neste <3>link ou no botão abaixo (Obter Código), isso abrirá uma nova aba no seu navegador com uma resposta em formato json contendo seu authorization code:" 7 | } 8 | } 9 | } -------------------------------------------------------------------------------- /src/locales/zh-CN/accounts/exchange-code.json: -------------------------------------------------------------------------------- 1 | { 2 | "form": { 3 | "generate-code": { 4 | "input": { 5 | "placeholder": "生成的账号授权码将显示在此处" 6 | }, 7 | "submit-button": "生成授权码" 8 | } 9 | }, 10 | "notifications": { 11 | "generate-code": { 12 | "success": "账号授权码已生成并复制到剪贴板", 13 | "error": "尝试生成账号授权码时发生错误,请稍后再试" 14 | }, 15 | "clipboard": "账号授权码已复制到剪贴板" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "browser": true, 4 | "es6": true, 5 | "node": true 6 | }, 7 | "extends": [ 8 | "eslint:recommended", 9 | "plugin:@typescript-eslint/eslint-recommended", 10 | "plugin:@typescript-eslint/recommended", 11 | "plugin:import/recommended", 12 | "plugin:import/electron", 13 | "plugin:import/typescript" 14 | ], 15 | "parser": "@typescript-eslint/parser" 16 | } 17 | -------------------------------------------------------------------------------- /components.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://ui.shadcn.com/schema.json", 3 | "style": "default", 4 | "rsc": false, 5 | "tsx": true, 6 | "tailwind": { 7 | "config": "tailwind.config.js", 8 | "css": "src/globals.css", 9 | "baseColor": "neutral", 10 | "cssVariables": true, 11 | "prefix": "" 12 | }, 13 | "aliases": { 14 | "components": "@/components", 15 | "utils": "@/lib/utils" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/locales/es-419/stw-operations/urns.json: -------------------------------------------------------------------------------- 1 | { 2 | "note": "Nota: Sólo funciona en temporada de Mazmorras.", 3 | "description": "Esta funcionalidad automáticamente fijará la misión \"Urn Your Keep\" cada vez que se reclame (con Aerial). Así que siempre podrán estar pendiente de las urnas que falten y evitar fijar manualmente en cada partida.", 4 | "options": { 5 | "urns": "Urnas", 6 | "mini-bosses": "Mini-Jefes" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/locales/pt-BR/account-management/epic-settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "form": { 3 | "generate-button": "Gerar Link", 4 | "open-button": "<0>Abrir Configurações da Conta <1 />" 5 | }, 6 | "notifications": { 7 | "clipboard": "O link foi copiado para a área de transferência", 8 | "success": "O link para as configurações da Epic Games foi gerado", 9 | "error": "Ocorreu um erro ao processar sua solicitação" 10 | } 11 | } -------------------------------------------------------------------------------- /src/services/endpoints/storefront.ts: -------------------------------------------------------------------------------- 1 | import type { StorefrontCatalogResponse } from '../../types/services/storefront' 2 | 3 | import { storefrontService } from '../config/storefront' 4 | 5 | export function getCatalog({ accessToken }: { accessToken: string }) { 6 | return storefrontService.get('/catalog', { 7 | headers: { 8 | Authorization: `bearer ${accessToken}`, 9 | }, 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /src/lib/parsers/numbers.ts: -------------------------------------------------------------------------------- 1 | export function compactNumber( 2 | value?: bigint | number | Intl.StringNumericLiteral 3 | ) { 4 | return Intl.NumberFormat('en-US', { 5 | notation: 'compact', 6 | maximumFractionDigits: 3, 7 | }).format(value ?? 0) 8 | } 9 | 10 | export function numberWithCommaSeparator( 11 | value?: bigint | number | Intl.StringNumericLiteral 12 | ) { 13 | return Intl.NumberFormat('en-US').format(value ?? 0) 14 | } 15 | -------------------------------------------------------------------------------- /src/locales/it-IT/stw-operations/urns.json: -------------------------------------------------------------------------------- 1 | { 2 | "note": "Nota: Funziona soltanto durante l'evento Dungeons.", 3 | "description": "Questa funzione fisserà automaticamente la sfida \"Urn Your Keep\" ogni volta che la reclama (con il launcher). Così voi ragazzi avrete sempre traccia delle rovine che vi mancano e non dovrete fissarle ogni volta prima di avviarle.", 4 | "options": { 5 | "urns": "Rovine", 6 | "mini-bosses": "Mini-Boss" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/locales/pt-BR/stw-operations/urns.json: -------------------------------------------------------------------------------- 1 | { 2 | "note": "Nota: Funciona apenas durante as temporadas de masmorras.", 3 | "description": "Este recurso fixará automaticamente a missão \"Urnas do Tesouro\" toda vez que ela for reivindicada (com o launcher). Assim, vocês sempre podem acompanhar as urnas que estão faltando e não precisam fixá-la antes de cada partida.", 4 | "options": { 5 | "urns": "Urnas", 6 | "mini-bosses": "Mini-Chefes" 7 | } 8 | } -------------------------------------------------------------------------------- /src/locales/en-US/stw-operations/unlock.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "This feature is useful if you want to unlock shield defense rewards like survivor squad slots, defenders, etc. even if they haven't been completed yet.", 3 | "note": "Note: This will NOT claim V-Bucks or complete your stormshield defenses, you will only get the rewards mentioned above.", 4 | "form": { 5 | "submit-button": "Unlock", 6 | "clear-button": "Clear Selections" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/locales/es-419/account-management/epic-settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "form": { 3 | "generate-button": "Generar Enlace", 4 | "open-button": "<0>Abrir Configuración De La Cuenta <1 />" 5 | }, 6 | "notifications": { 7 | "clipboard": "El enlace se ha copiado en el portapapeles", 8 | "success": "Se ha generado el enlace de configuración de Epic Games", 9 | "error": "Ocurrió un error mientras se procesaba la petición" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/locales/es-419/accounts/auth-code.json: -------------------------------------------------------------------------------- 1 | { 2 | "guide": { 3 | "title": "Cómo obtener el código:", 4 | "steps": { 5 | "1": "<0>Paso 1: Debes iniciar sesión en tu cuenta de Epic Games: <3>{{url}}", 6 | "2": "<0>Paso 2: Clic en <3>este enlace o en el botón de abajo (Obtener Código), esto abrirá una nueva pestaña en tu navegador con una respuesta en formato json con tu código de autorización:" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/locales/it-IT/accounts/auth-code.json: -------------------------------------------------------------------------------- 1 | { 2 | "guide": { 3 | "title": "Come ottenere il codice:", 4 | "steps": { 5 | "1": "<0>Passo 1: Devi accedere al tuo account Epic Games: <3>{{url}}", 6 | "2": "<0>Passo 2: Clicca su <3>questo link o nel codice sottostante (Ottieni Codice), questo aprirà una nuova pagina sul tuo browser con un documento json contenente il tuo codice di autorizzazione:" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/lib/validations/schemas/auto-llamas.ts: -------------------------------------------------------------------------------- 1 | import { z } from 'zod' 2 | 3 | export const autoLlamasDataSchema = z.object({ 4 | accountId: z.string().min(1), 5 | actions: z.object({ 6 | survivors: z.boolean().default(false), 7 | 'free-llamas': z.boolean().default(false), 8 | 'use-token': z.boolean().default(false), 9 | }), 10 | }) 11 | export const autoLlamasDataRecordSchema = z.record( 12 | z.string(), 13 | autoLlamasDataSchema 14 | ) 15 | -------------------------------------------------------------------------------- /src/locales/pl-PL/stw-operations/urns.json: -------------------------------------------------------------------------------- 1 | { 2 | "note": "Uwaga: Działa tylko podczas sezonów w których są Lochy.", 3 | "description": "Ta funkcja automatycznie przypnie zadanie 'Skarby w urnach' za każdym razem, gdy zostanie ono odebrane (za pomocą launchera). Dzięki temu zawsze będziecie mogli śledzić brakujące urny i nie musicie przypinać zadania przed każdą rozgrywką.", 4 | "options": { 5 | "urns": "Urny", 6 | "mini-bosses": "Mini-Bossowie" 7 | } 8 | } -------------------------------------------------------------------------------- /src/services/endpoints/store.ts: -------------------------------------------------------------------------------- 1 | import { storeAccessService } from '../config/store' 2 | 3 | export function storeRequestAccess({ 4 | accessToken, 5 | accountId, 6 | }: { 7 | accessToken: string 8 | accountId: string 9 | }) { 10 | return storeAccessService.post( 11 | `/request_access/${accountId}`, 12 | {}, 13 | { 14 | headers: { 15 | Authorization: `bearer ${accessToken}`, 16 | }, 17 | } 18 | ) 19 | } 20 | -------------------------------------------------------------------------------- /src/types/redeem-codes.d.ts: -------------------------------------------------------------------------------- 1 | import { z } from 'zod' 2 | 3 | import { RedeemCodesStatus } from '../state/management/redeem-code' 4 | 5 | import { redeemCodeAccountSchema } from '../lib/validations/schemas/redeem-codes' 6 | 7 | export type RedeemCodeAccountResponse = z.infer< 8 | typeof redeemCodeAccountSchema 9 | > 10 | 11 | export type RedeemCodeAccountNotification = { 12 | accountId: string 13 | code: string 14 | status: RedeemCodesStatus 15 | } 16 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | 'postcss-preset-mantine': {}, 6 | 'postcss-simple-vars': { 7 | variables: { 8 | 'mantine-breakpoint-xs': '36em', 9 | 'mantine-breakpoint-sm': '48em', 10 | 'mantine-breakpoint-md': '62em', 11 | 'mantine-breakpoint-lg': '75em', 12 | 'mantine-breakpoint-xl': '88em', 13 | }, 14 | }, 15 | }, 16 | } 17 | -------------------------------------------------------------------------------- /src/locales/it-IT/account-management/epic-settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "form": { 3 | "generate-button": "Genera Link", 4 | "open-button": "<0>Apri Impostazioni Account <1 />" 5 | }, 6 | "notifications": { 7 | "clipboard": "Il link è stato copiato negli appunti", 8 | "success": "Il link per le impostazioni di Epic Games è stato generato", 9 | "error": "Si è verificato un errore nel tentativo di portare a termine la tua richiesta" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/locales/pl-PL/stw-operations/unlock.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Ta funkcja jest przydatna, jeśli chcesz odblokować nagrody za obronę burzowej tarczy, takie jak sloty oddziałów ocaleńców, obrońców itp., nawet jeśli nie zostały jeszcze ukończone.", 3 | "note": "Uwaga: To NIE odbierze V-Dolców ani nie dokończy obron burzowej tarczy, otrzymasz tylko wspomniane wyżej nagrody.", 4 | "form": { 5 | "submit-button": "Odblokuj", 6 | "clear-button": "Wyczyść wybór" 7 | } 8 | } -------------------------------------------------------------------------------- /src/locales/ru-RU/stw-operations/unlock.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Эта функция полезна, если вы хотите разблокировать награды за защиту щита, такие как места в отряде выживших, защитники и т.д., даже если они еще не были пройдены.", 3 | "note": "Примечание: Это не приведет к получению В-баксов или закрытию щитов, вы получите только награды, упомянутые выше.", 4 | "form": { 5 | "submit-button": "Разблокировать", 6 | "clear-button": "Очистить Выбранное" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/services/endpoints/advanced-mode/world-info.ts: -------------------------------------------------------------------------------- 1 | import type { WorldInfoData } from '../../../types/services/advanced-mode/world-info' 2 | 3 | import { baseGameService } from '../../config/base-game' 4 | 5 | export function getWorldInfoData({ 6 | accessToken, 7 | }: { 8 | accessToken: string 9 | }) { 10 | return baseGameService.get('/world/info', { 11 | headers: { 12 | Authorization: `bearer ${accessToken}`, 13 | }, 14 | }) 15 | } 16 | -------------------------------------------------------------------------------- /src/state/settings/language.ts: -------------------------------------------------------------------------------- 1 | import { create } from 'zustand' 2 | 3 | import { Language } from '../../locales/resources' 4 | 5 | export type LanguageState = { 6 | language: Language | null 7 | 8 | updateLanguage: (language: Language | null) => void 9 | } 10 | 11 | export const useLanguageStore = create()((set) => ({ 12 | language: null, // Language.English 13 | 14 | updateLanguage: (language) => { 15 | set({ language }) 16 | }, 17 | })) 18 | -------------------------------------------------------------------------------- /src/locales/ru-RU/stw-operations/urns.json: -------------------------------------------------------------------------------- 1 | { 2 | "note": "Примечание: Работает только во время сезонов подземелий.", 3 | "description": "Эта функция автоматически закрепляет задание \"Не бей баклуши-бей урны\" каждый раз, когда оно выполняется (с помощью лаунчера). Таким образом,вы всегда можете отслеживать, сколько урн вам не хватает, и не утруждать себя закреплением перед каждым запуском.", 4 | "options": { 5 | "urns": "Урны", 6 | "mini-bosses": "Минибоссы" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/lib/validations/resources.ts: -------------------------------------------------------------------------------- 1 | export function isEvoMat(key: string) { 2 | return ( 3 | key.includes('reagent_c_t01') || 4 | key.includes('reagent_c_t02') || 5 | key.includes('reagent_c_t03') || 6 | key.includes('reagent_c_t04') 7 | ) 8 | } 9 | 10 | export function isLegendaryOrMythicSurvivor(itemId: string) { 11 | return ( 12 | itemId.includes('workerbasic_sr') || 13 | (itemId.startsWith('Worker:manager') && itemId.includes('_sr_')) 14 | ) 15 | } 16 | -------------------------------------------------------------------------------- /src/state/stw-operations/xpboosts/forms/consume-teammate.ts: -------------------------------------------------------------------------------- 1 | import { create } from 'zustand' 2 | 3 | export type XPBoostsConsumeTeammateFormState = { 4 | isSubmitting: boolean 5 | 6 | updateIsSubmitting: (value: boolean) => void 7 | } 8 | 9 | export const useXPBoostsConsumeTeammateFormStore = 10 | create()((set) => ({ 11 | isSubmitting: false, 12 | 13 | updateIsSubmitting: (isSubmitting: boolean) => set({ isSubmitting }), 14 | })) 15 | -------------------------------------------------------------------------------- /src/types/services/mcp/index.d.ts: -------------------------------------------------------------------------------- 1 | export type MCPResponse = Record 2 | 3 | export type MCPClientQuestLoginResponse = { 4 | notifications?: Array 5 | } 6 | 7 | export * from './activate-consumable.d' 8 | export * from './claim-rewards.d' 9 | export * from './purchase-catalog-entry.d' 10 | export * from './query-profile-main.d' 11 | export * from './query-profile-storage.d' 12 | export * from './query-profile.d' 13 | export * from './storage-transfer.d' 14 | -------------------------------------------------------------------------------- /src/hooks/management/eula.ts: -------------------------------------------------------------------------------- 1 | import { useShallow } from 'zustand/react/shallow' 2 | 3 | import { useEULAStatusStore } from '../../state/accounts/eula' 4 | 5 | export function useEULAData() { 6 | const { data, updateEULAAccountStatus } = useEULAStatusStore( 7 | useShallow((state) => ({ 8 | data: state.data, 9 | updateEULAAccountStatus: state.updateEULAAccountStatus, 10 | })) 11 | ) 12 | 13 | return { 14 | data, 15 | 16 | updateEULAAccountStatus, 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/config/about/links.ts: -------------------------------------------------------------------------------- 1 | import packageJson from '../../../package.json' 2 | 3 | export const repositoryURL = `https://github.com/${packageJson.author.name}/Aerial-Launcher` 4 | 5 | export const repositoryReleasesURL = `https://github.com/${packageJson.author.name}/Aerial-Launcher/releases` 6 | 7 | export const supportDiscordServerURL = 'https://discord.gg/QUVFA8GePH' 8 | 9 | export const repositoryAssetsURL = `https://raw.githubusercontent.com/${packageJson.author.name}/Aerial-Launcher/main/assets` 10 | -------------------------------------------------------------------------------- /src/locales/it-IT/stw-operations/unlock.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Questa funzione è utile se vuoi sbloccare le ricompense delle difese scudo-antitempesta come gli slot squadra dei superstiti, difensori, ecc. anche se non sono state ancora completate.", 3 | "note": "Nota: Questo NON sbloccherà V-Bucks o completerà le vostre difese scudo-antitempesta, otterrete soltanto le ricompense elencate sopra.", 4 | "form": { 5 | "submit-button": "Sblocca", 6 | "clear-button": "Svuota Selezione" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/locales/pt-BR/stw-operations/unlock.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Este recurso é útil se você quiser desbloquear recompensas de defesa do escudo, como slots de esquadrão de sobreviventes, defensores, etc., mesmo que não tenham sido concluídas ainda.", 3 | "note": "Nota: Isso NÃO reivindicará V-Bucks nem completará suas defesas do escudo antitempestade, você receberá apenas as recompensas mencionadas acima.", 4 | "form": { 5 | "submit-button": "Desbloquear", 6 | "clear-button": "Limpar Seleções" 7 | } 8 | } -------------------------------------------------------------------------------- /src/state/advanced-mode/world-info/files.ts: -------------------------------------------------------------------------------- 1 | import type { WorldInfoFileData } from '../../../types/data/advanced-mode/world-info' 2 | 3 | import { create } from 'zustand' 4 | 5 | export type WorldInfoFilesState = { 6 | files: Array 7 | 8 | setFiles: (value: Array) => void 9 | } 10 | 11 | export const useWorldInfoFilesStore = create()( 12 | (set) => ({ 13 | files: [], 14 | 15 | setFiles: (files) => set({ files }), 16 | }) 17 | ) 18 | -------------------------------------------------------------------------------- /src/types/services/mcp/storage-transfer.d.ts: -------------------------------------------------------------------------------- 1 | export type MCPStorageTransferItem = { 2 | itemId: string 3 | quantity: number 4 | toStorage: boolean 5 | newItemIdHint: '' 6 | } 7 | 8 | export type MCPStorageTransferResponse = { 9 | profileRevision: number 10 | profileId: 'theater0' 11 | profileChangesBaseRevision: number 12 | profileCommandRevision: number 13 | serverTime: string 14 | responseVersion: number 15 | profileChanges: Array 16 | multiUpdate: Array 17 | } 18 | -------------------------------------------------------------------------------- /src/lib/validations/schemas/redeem-codes.ts: -------------------------------------------------------------------------------- 1 | import { z } from 'zod' 2 | 3 | export const redeemCodeAccountSchema = z.object({ 4 | offerId: z.string().min(1), 5 | accountId: z.string().min(1), 6 | identityId: z.string().min(1), 7 | details: z.array( 8 | z.object({ 9 | entitlementId: z.string().min(1), 10 | entitlementName: z.string().min(1), 11 | itemId: z.string().min(1), 12 | namespace: z.string().min(1), 13 | country: z.string().min(1), 14 | }) 15 | ), 16 | }) 17 | -------------------------------------------------------------------------------- /src/services/config/party.ts: -------------------------------------------------------------------------------- 1 | import axios from 'axios' 2 | 3 | import { Manifest } from '../../kernel/core/manifest' 4 | 5 | /** 6 | * Party Service 7 | */ 8 | 9 | export const partyService = axios.create({ 10 | baseURL: 11 | 'https://party-service-prod.ol.epicgames.com/party/api/v1/Fortnite', 12 | }) 13 | 14 | partyService.interceptors.request.use(async (config) => { 15 | const userAgent = await Manifest.getUserAgent() 16 | 17 | config.headers.setUserAgent(userAgent) 18 | 19 | return config 20 | }) 21 | -------------------------------------------------------------------------------- /src/state/advanced-mode/matchmaking-track/base.ts: -------------------------------------------------------------------------------- 1 | import type { MatchmakingTrackPath } from '../../../types/data/advanced-mode/matchmaking' 2 | 3 | import { create } from 'zustand' 4 | 5 | export type MatchmakingPathState = { 6 | path: MatchmakingTrackPath 7 | 8 | setPath: (value: MatchmakingTrackPath) => void 9 | } 10 | 11 | export const useMatchmakingPathStore = create()( 12 | (set) => ({ 13 | path: null, 14 | 15 | setPath: (files) => set({ path: files }), 16 | }) 17 | ) 18 | -------------------------------------------------------------------------------- /src/types/party.d.ts: -------------------------------------------------------------------------------- 1 | export type AddNewFriendNotification = 2 | | { 3 | data: null 4 | displayName: string 5 | errorMessage: number | string | null 6 | success: false 7 | } 8 | | { 9 | data: { 10 | accountId: string 11 | displayName: string 12 | } 13 | displayName: string 14 | errorMessage: null 15 | success: true 16 | } 17 | 18 | export type InviteNotification = { 19 | accountId: string 20 | type: 'friend-request' | 'invite' 21 | } 22 | -------------------------------------------------------------------------------- /src/locales/es-419/stw-operations/unlock.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Esta funcionalidad es útil si quieres desbloquear las recompensas de las defensas de escudo como espacios de escuadrones de supervivientes, defensores, etc aunque aún no se hayan realizado.", 3 | "note": "Nota: Esto NO reclamará V-Bucks ni completará tus defensas de escudo contra tormentas, solo obtendrás las recompensas mencionadas anteriormente.", 4 | "form": { 5 | "submit-button": "Desbloquear", 6 | "clear-button": "Limpiar Selecciones" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/locales/zh-CN/account-management/devices-auth.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "选择一个账户并管理您创建的设备授权。用户代理、创建时间和最后访问时间将显示以下信息:位置、IP地址和日期。", 3 | "form": { 4 | "submit-button": "请求设备授权" 5 | }, 6 | "results": { 7 | "title": "找到的设备:<1>{{total}}", 8 | "item": { 9 | "created": "创建时间", 10 | "last-access": "最后访问时间" 11 | } 12 | }, 13 | "notifications": { 14 | "no-devices": "未找到设备", 15 | "success": "设备ID {{deviceId}} 已成功移除", 16 | "error": "尝试移除设备ID {{deviceId}} 时发生错误" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/services/config/friends.ts: -------------------------------------------------------------------------------- 1 | import axios from 'axios' 2 | 3 | import { Manifest } from '../../kernel/core/manifest' 4 | 5 | /** 6 | * Friends Service 7 | */ 8 | 9 | export const friendsService = axios.create({ 10 | baseURL: 11 | 'https://friends-public-service-prod.ol.epicgames.com/friends/api/v1', 12 | }) 13 | 14 | friendsService.interceptors.request.use(async (config) => { 15 | const userAgent = await Manifest.getUserAgent() 16 | 17 | config.headers.setUserAgent(userAgent) 18 | 19 | return config 20 | }) 21 | -------------------------------------------------------------------------------- /src/services/config/base-game.ts: -------------------------------------------------------------------------------- 1 | import axios from 'axios' 2 | 3 | import { Manifest } from '../../kernel/core/manifest' 4 | 5 | /** 6 | * Base Game Service 7 | */ 8 | 9 | export const baseGameService = axios.create({ 10 | baseURL: 11 | 'https://fngw-mcp-gc-livefn.ol.epicgames.com/fortnite/api/game/v2', 12 | }) 13 | 14 | baseGameService.interceptors.request.use(async (config) => { 15 | const userAgent = await Manifest.getUserAgent() 16 | 17 | config.headers.setUserAgent(userAgent) 18 | 19 | return config 20 | }) 21 | -------------------------------------------------------------------------------- /src/services/config/caldera.ts: -------------------------------------------------------------------------------- 1 | import axios from 'axios' 2 | 3 | import { Manifest } from '../../kernel/core/manifest' 4 | 5 | /** 6 | * Caldera Service 7 | */ 8 | 9 | export const calderaService = axios.create({ 10 | baseURL: 11 | 'https://caldera-service-prod.ecosec.on.epicgames.com/caldera/api/v1/launcher', 12 | }) 13 | 14 | calderaService.interceptors.request.use(async (config) => { 15 | const userAgent = await Manifest.getUserAgent() 16 | 17 | config.headers.setUserAgent(userAgent) 18 | 19 | return config 20 | }) 21 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Release 2 | on: 3 | push: 4 | tags: 5 | - 'v*' 6 | 7 | jobs: 8 | publish: 9 | name: Create release 10 | runs-on: windows-2022 11 | steps: 12 | - uses: actions/checkout@v2 13 | - uses: actions/setup-node@master 14 | with: 15 | node-version: 20.12.0 16 | - name: Install dependencies 17 | run: npm install 18 | - name: Publishing 19 | run: npm run publish 20 | env: 21 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 22 | -------------------------------------------------------------------------------- /src/services/config/store.ts: -------------------------------------------------------------------------------- 1 | import axios from 'axios' 2 | 3 | import { Manifest } from '../../kernel/core/manifest' 4 | 5 | /** 6 | * Store Access Service 7 | */ 8 | 9 | export const storeAccessService = axios.create({ 10 | baseURL: 11 | 'https://fngw-mcp-gc-livefn.ol.epicgames.com/fortnite/api/storeaccess/v1', 12 | }) 13 | 14 | storeAccessService.interceptors.request.use(async (config) => { 15 | const userAgent = await Manifest.getUserAgent() 16 | 17 | config.headers.setUserAgent(userAgent) 18 | 19 | return config 20 | }) 21 | -------------------------------------------------------------------------------- /src/bootstrap/components/load-tags.tsx: -------------------------------------------------------------------------------- 1 | import { useEffect } from 'react' 2 | 3 | import { useTagsStore } from '../../state/settings/tags' 4 | 5 | export function LoadTags() { 6 | const updateTags = useTagsStore((state) => state.updateTags) 7 | 8 | useEffect(() => { 9 | const listener = window.electronAPI.responseTags(async (tags) => { 10 | updateTags(tags) 11 | }) 12 | 13 | window.electronAPI.requestTags() 14 | 15 | return () => { 16 | listener.removeListener() 17 | } 18 | }, []) 19 | 20 | return null 21 | } 22 | -------------------------------------------------------------------------------- /src/services/config/matchmaking.ts: -------------------------------------------------------------------------------- 1 | import axios from 'axios' 2 | 3 | import { Manifest } from '../../kernel/core/manifest' 4 | 5 | /** 6 | * Matchmaking Service 7 | */ 8 | 9 | export const matchmakingService = axios.create({ 10 | baseURL: 11 | 'https://fngw-mcp-gc-livefn.ol.epicgames.com/fortnite/api/matchmaking/session', 12 | }) 13 | 14 | matchmakingService.interceptors.request.use(async (config) => { 15 | const userAgent = await Manifest.getUserAgent() 16 | 17 | config.headers.setUserAgent(userAgent) 18 | 19 | return config 20 | }) 21 | -------------------------------------------------------------------------------- /src/services/config/fulfillment.ts: -------------------------------------------------------------------------------- 1 | import axios from 'axios' 2 | 3 | import { Manifest } from '../../kernel/core/manifest' 4 | 5 | /** 6 | * Fulfillment Service 7 | */ 8 | 9 | export const fulfillmentService = axios.create({ 10 | baseURL: 11 | 'https://fulfillment-public-service-prod.ol.epicgames.com/fulfillment/api/public', 12 | }) 13 | 14 | fulfillmentService.interceptors.request.use(async (config) => { 15 | const userAgent = await Manifest.getUserAgent() 16 | 17 | config.headers.setUserAgent(userAgent) 18 | 19 | return config 20 | }) 21 | -------------------------------------------------------------------------------- /src/services/config/storefront.ts: -------------------------------------------------------------------------------- 1 | import axios from 'axios' 2 | 3 | import { Manifest } from '../../kernel/core/manifest' 4 | 5 | /** 6 | * Storefront Service 7 | */ 8 | 9 | export const storefrontService = axios.create({ 10 | baseURL: 11 | 'https://fortnite-public-service-prod11.ol.epicgames.com/fortnite/api/storefront/v2', 12 | }) 13 | 14 | storefrontService.interceptors.request.use(async (config) => { 15 | const userAgent = await Manifest.getUserAgent() 16 | 17 | config.headers.setUserAgent(userAgent) 18 | 19 | return config 20 | }) 21 | -------------------------------------------------------------------------------- /src/hooks/management/unlock.ts: -------------------------------------------------------------------------------- 1 | import { useShallow } from 'zustand/react/shallow' 2 | 3 | import { useUnlockStatusStore } from '../../state/accounts/unlock' 4 | 5 | export function useUnlockStatusData() { 6 | const { data, updateUnlockStatus, clearData } = useUnlockStatusStore( 7 | useShallow((state) => ({ 8 | data: state.data, 9 | updateUnlockStatus: state.updateUnlockStatus, 10 | clearData: state.clearData, 11 | })) 12 | ) 13 | 14 | return { 15 | data, 16 | 17 | updateUnlockStatus, 18 | clearData, 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/services/endpoints/matchmaking.ts: -------------------------------------------------------------------------------- 1 | import type { MatchmakingTrackResponse } from '../../types/data/advanced-mode/matchmaking' 2 | 3 | import { matchmakingService } from '../config/matchmaking' 4 | 5 | export function findPlayer({ 6 | accessToken, 7 | accountId, 8 | }: { 9 | accessToken: string 10 | accountId: string 11 | }) { 12 | return matchmakingService.get( 13 | `/findPlayer/${accountId}`, 14 | { 15 | headers: { 16 | Authorization: `bearer ${accessToken}`, 17 | }, 18 | } 19 | ) 20 | } 21 | -------------------------------------------------------------------------------- /src/services/config/public-account.ts: -------------------------------------------------------------------------------- 1 | import axios from 'axios' 2 | 3 | import { Manifest } from '../../kernel/core/manifest' 4 | 5 | /** 6 | * Public Account Service 7 | */ 8 | 9 | export const publicAccountService = axios.create({ 10 | baseURL: 11 | 'https://account-public-service-prod.ol.epicgames.com/account/api/public/account', 12 | }) 13 | 14 | publicAccountService.interceptors.request.use(async (config) => { 15 | const userAgent = await Manifest.getUserAgent() 16 | 17 | config.headers.setUserAgent(userAgent) 18 | 19 | return config 20 | }) 21 | -------------------------------------------------------------------------------- /src/locales/ru-RU/accounts/exchange-code.json: -------------------------------------------------------------------------------- 1 | { 2 | "form": { 3 | "generate-code": { 4 | "input": { 5 | "placeholder": "Созданный код будет отображен здесь" 6 | }, 7 | "submit-button": "Создать код обмена" 8 | } 9 | }, 10 | "notifications": { 11 | "generate-code": { 12 | "success": "Код обмена был создан и скопирован в буфер обмена", 13 | "error": "Произошла ошибка при попытке создания кода обмена, попробуйте еще раз позже" 14 | }, 15 | "clipboard": "Код обмена был скопирован в буфер обмена" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/state/stw-operations/claimed-rewards.ts: -------------------------------------------------------------------------------- 1 | import type { RewardsNotification } from '../../types/notifications' 2 | 3 | import { create } from 'zustand' 4 | 5 | export type ClaimedRewardsState = { 6 | data: Array 7 | 8 | updateData: (value: Array) => void 9 | } 10 | 11 | export const useClaimedRewardsStore = create()( 12 | (set) => ({ 13 | data: [] as Array, 14 | 15 | updateData: (data) => 16 | set((state) => ({ data: [...state.data, ...data] })), 17 | }) 18 | ) 19 | -------------------------------------------------------------------------------- /src/locales/en-US/accounts/exchange-code.json: -------------------------------------------------------------------------------- 1 | { 2 | "form": { 3 | "generate-code": { 4 | "input": { 5 | "placeholder": "Generated code will be displayed here" 6 | }, 7 | "submit-button": "Generate Exchange Code" 8 | } 9 | }, 10 | "notifications": { 11 | "generate-code": { 12 | "success": "Exchange code has been generated and copied into clipboard", 13 | "error": "An error has occurred trying generate exchange code, try again later" 14 | }, 15 | "clipboard": "Exchange code has been copied into clipboard" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/locales/zh-CN/stw-operations/auto-kick.json: -------------------------------------------------------------------------------- 1 | { 2 | "description1": "“自动踢出”将监听您选择的账户上的事件,并在检测到比赛结束时运行踢出程序。踢出:对局结算时自动退出对局;领取:自动领取对局结束后的奖励;转移材料:自动从仓库补充建材", 3 | "description2": "另外,请记住踢出是智能的。如果您的账户在同一个队伍中,则无需在两个账户上启用自动踢,您的两个账户都会根据情况被踢出/离开(如果您启用了自动领取功能,还会领取奖励)。", 4 | "description3": "备注:1.队长开启自动踢出会解散队伍。2.领取奖励偶发卡在领取奖励但没有实际内容界面的BUG,需重启游戏。", 5 | "statuses": { 6 | "listening": "正在监听", 7 | "credential-error": "凭据错误", 8 | "disconnected": "已断开连接" 9 | }, 10 | "options": { 11 | "kick": "踢出", 12 | "claim": "领取", 13 | "transfer-mats": "转移材料" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/locales/pl-PL/accounts/exchange-code.json: -------------------------------------------------------------------------------- 1 | { 2 | "form": { 3 | "generate-code": { 4 | "input": { 5 | "placeholder": "Wygenerowany kod zostanie wyświetlony tutaj" 6 | }, 7 | "submit-button": "Generuj Exchange Code" 8 | } 9 | }, 10 | "notifications": { 11 | "generate-code": { 12 | "success": "Exchange code został wygenerowany i skopiowany do schowka", 13 | "error": "Wystąpił błąd podczas próby wygenerowania exchange code, spróbuj ponownie później" 14 | }, 15 | "clipboard": "Exchange code został skopiowany do schowka" 16 | } 17 | } -------------------------------------------------------------------------------- /src/locales/pt-BR/accounts/exchange-code.json: -------------------------------------------------------------------------------- 1 | { 2 | "form": { 3 | "generate-code": { 4 | "input": { 5 | "placeholder": "O código gerado será exibido aqui" 6 | }, 7 | "submit-button": "Gerar Exchange Code" 8 | } 9 | }, 10 | "notifications": { 11 | "generate-code": { 12 | "success": "Exchange Code foi gerado e copiado para a área de transferência", 13 | "error": "Ocorreu um erro ao tentar gerar o Exchange Code, tente novamente mais tarde" 14 | }, 15 | "clipboard": "O Exchange Codo foi copiado para a área de transferência" 16 | } 17 | } -------------------------------------------------------------------------------- /src/config/fortnite/links.ts: -------------------------------------------------------------------------------- 1 | import { defaultFortniteClient } from './clients' 2 | 3 | export const epicGamesLoginURL = 'https://www.epicgames.com/id/login' 4 | export const epicGamesAuthorizationCodeURL = `https://www.epicgames.com/id/api/redirect?clientId=${defaultFortniteClient.use.clientId}&responseType=code` 5 | 6 | export function epicGamesAccountSettingsURL(exchangeCode: string) { 7 | return `https://www.epicgames.com/id/exchange?exchangeCode=${exchangeCode}` 8 | } 9 | 10 | export function stwNewsProfileURL(displayName: string) { 11 | return `https://stw.news/${displayName}` 12 | } 13 | -------------------------------------------------------------------------------- /src/routes/settings/-app-settings/-index.tsx: -------------------------------------------------------------------------------- 1 | import { Card, CardContent } from '../../../components/ui/card' 2 | import { Separator } from '../../../components/ui/separator' 3 | import { AppSettingsBaseForm } from './-base-form' 4 | import { LanguageSelector } from './-language' 5 | 6 | export function AppSettings() { 7 | return ( 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | ) 18 | } 19 | -------------------------------------------------------------------------------- /src/bootstrap/components/load-friends.tsx: -------------------------------------------------------------------------------- 1 | import { useEffect } from 'react' 2 | 3 | import { usePartyFriendsForm } from '../../hooks/stw-operations/party' 4 | 5 | export function LoadFriends() { 6 | const { syncFriends } = usePartyFriendsForm() 7 | 8 | useEffect(() => { 9 | const listener = window.electronAPI.notificationLoadFriends( 10 | async (friends) => { 11 | syncFriends(friends) 12 | } 13 | ) 14 | 15 | window.electronAPI.loadFriends() 16 | 17 | return () => { 18 | listener.removeListener() 19 | } 20 | }, []) 21 | 22 | return null 23 | } 24 | -------------------------------------------------------------------------------- /src/routes/-index/-header-navigation.tsx: -------------------------------------------------------------------------------- 1 | import { useTranslation } from 'react-i18next' 2 | 3 | import { 4 | Breadcrumb, 5 | BreadcrumbItem, 6 | BreadcrumbList, 7 | BreadcrumbPage, 8 | } from '../../components/ui/breadcrumb' 9 | 10 | export function HeaderNavigation() { 11 | const { t } = useTranslation(['general']) 12 | 13 | return ( 14 | 15 | 16 | 17 | {t('go-to-current-alerts')} 18 | 19 | 20 | 21 | ) 22 | } 23 | -------------------------------------------------------------------------------- /src/lib/validations/schemas/friends.ts: -------------------------------------------------------------------------------- 1 | import { z } from 'zod' 2 | 3 | export const friendSchema = z.object({ 4 | accountId: z.string().min(1), 5 | displayName: z.string().min(1), 6 | invitations: z.number().transform((value) => { 7 | const newValue = parseInt(`${value}`) 8 | 9 | if (newValue <= 0 || Number.isNaN(newValue)) { 10 | return 0 11 | } 12 | 13 | if (newValue > Number.MAX_SAFE_INTEGER) { 14 | return Number.MAX_SAFE_INTEGER 15 | } 16 | 17 | return newValue 18 | }), 19 | }) 20 | export const friendsSchema = z.record(z.string().min(1), friendSchema) 21 | -------------------------------------------------------------------------------- /src/state/stw-operations/unlock.ts: -------------------------------------------------------------------------------- 1 | import { create } from 'zustand' 2 | 3 | export type UnlockState = { 4 | accounts: Array 5 | tags: Array 6 | 7 | updateAccounts: (accountIds: Array) => void 8 | updateTags: (tags: Array) => void 9 | } 10 | 11 | export const useUnlockStore = create()((set) => ({ 12 | accounts: [], 13 | tags: [], 14 | 15 | updateAccounts: (accountIds) => 16 | set({ 17 | accounts: [...new Set(accountIds)], 18 | }), 19 | updateTags: (tags) => 20 | set({ 21 | tags: [...new Set(tags)], 22 | }), 23 | })) 24 | -------------------------------------------------------------------------------- /src/lib/validations/schemas/tags.ts: -------------------------------------------------------------------------------- 1 | import Color from 'color' 2 | import { z } from 'zod' 3 | 4 | export const colorSchema = z.custom<`#${string}`>((value: string) => { 5 | try { 6 | Color(value).hex() 7 | 8 | return true 9 | 10 | // eslint-disable-next-line @typescript-eslint/no-unused-vars 11 | } catch (error) { 12 | // 13 | } 14 | 15 | return false 16 | }) 17 | 18 | export const tagSchema = z.object({ 19 | name: z.string().min(1), 20 | color: colorSchema.nullable(), 21 | }) 22 | export const tagsSchema = z.record( 23 | z.string().min(1), 24 | colorSchema.nullable() 25 | ) 26 | -------------------------------------------------------------------------------- /src/locales/it-IT/accounts/exchange-code.json: -------------------------------------------------------------------------------- 1 | { 2 | "form": { 3 | "generate-code": { 4 | "input": { 5 | "placeholder": "Il codice generato verrà mostrato qui" 6 | }, 7 | "submit-button": "Genera Codice Exchange" 8 | } 9 | }, 10 | "notifications": { 11 | "generate-code": { 12 | "success": "Il codice exchange è stato generato e copiato negli appunti", 13 | "error": "Si è verificato un errore nel tentativo di generare il tuo codice exchange, riprova più tardi" 14 | }, 15 | "clipboard": "Il codice exchange è stato copiato negli appunti" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/services/endpoints/caldera.ts: -------------------------------------------------------------------------------- 1 | import type { AntiCheatProviderResponse } from '../../types/services/caldera' 2 | 3 | import { calderaService } from '../config/caldera' 4 | 5 | export function getAntiCheatProvider({ 6 | accountId: account_id, 7 | exchangeCode: exchange_code, 8 | }: { 9 | accountId: string 10 | exchangeCode: string 11 | }) { 12 | return calderaService.post('/racp', { 13 | account_id, 14 | exchange_code, 15 | epic_app: 'fortnite', 16 | test_mode: false, 17 | nvidia: false, 18 | luna: false, 19 | salmon: false, 20 | }) 21 | } 22 | -------------------------------------------------------------------------------- /src/services/endpoints/fulfillment.ts: -------------------------------------------------------------------------------- 1 | import type { RedeemCodeAccountResponse } from '../../types/redeem-codes' 2 | 3 | import { fulfillmentService } from '../config/fulfillment' 4 | 5 | export function redeemCodeAccount({ 6 | accessToken, 7 | accountId, 8 | code, 9 | }: { 10 | accessToken: string 11 | accountId: string 12 | code: string 13 | }) { 14 | return fulfillmentService.post( 15 | `/accounts/${accountId}/codes/${code}`, 16 | {}, 17 | { 18 | headers: { 19 | Authorization: `bearer ${accessToken}`, 20 | }, 21 | } 22 | ) 23 | } 24 | -------------------------------------------------------------------------------- /src/locales/zh-CN/advanced-mode/matchmaking-track.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "检查这是否是您正在寻找的用户,并请求他们的匹配信息。", 3 | "note": "默认路径文件:", 4 | "form": { 5 | "recently": { 6 | "label": "注意:这些玩家信息是临时存储的" 7 | }, 8 | "submit-button": "创建匹配文件" 9 | }, 10 | "results": { 11 | "notes": "备注:", 12 | "options": { 13 | "public-stats": "该用户已禁用“公开游戏统计数据”,无法显示更多信息。", 14 | "continuation": "当然,您仍然可以生成文件。" 15 | } 16 | }, 17 | "notifications": { 18 | "file": { 19 | "updated": "文件已成功更新" 20 | }, 21 | "player": { 22 | "not-playing": "指定的玩家可能没有执行任务" 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/locales/es-419/accounts/exchange-code.json: -------------------------------------------------------------------------------- 1 | { 2 | "form": { 3 | "generate-code": { 4 | "input": { 5 | "placeholder": "El código generado se mostrará aquí" 6 | }, 7 | "submit-button": "Generar Código de Intercambio" 8 | } 9 | }, 10 | "notifications": { 11 | "generate-code": { 12 | "success": "El código de intercambio ha sido generado y se ha copiado en el portapapeles", 13 | "error": "Ocurrió un error al intentar generar el código, por favor intenta más tarde" 14 | }, 15 | "clipboard": "El código de intercambio se ha copiado en el portapapeles" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/state/stw-operations/homebase-name.ts: -------------------------------------------------------------------------------- 1 | import { create } from 'zustand' 2 | 3 | export type HomebaseNameState = { 4 | accounts: Array 5 | tags: Array 6 | 7 | updateAccounts: (accountIds: Array) => void 8 | updateTags: (tags: Array) => void 9 | } 10 | 11 | export const useHomebaseNameStore = create()((set) => ({ 12 | accounts: [], 13 | tags: [], 14 | 15 | updateAccounts: (accountIds) => 16 | set({ 17 | accounts: [...new Set(accountIds)], 18 | }), 19 | updateTags: (tags) => 20 | set({ 21 | tags: [...new Set(tags)], 22 | }), 23 | })) 24 | -------------------------------------------------------------------------------- /src/types/settings.d.ts: -------------------------------------------------------------------------------- 1 | import { z } from 'zod' 2 | 3 | import { 4 | appLanguageSchema, 5 | customizableMenuSettingsSchema, 6 | devSettingsSchema, 7 | settingsSchema, 8 | } from '../lib/validations/schemas/settings' 9 | 10 | export type AppLanguageSettings = z.infer 11 | export type Settings = z.infer 12 | export type DevSettings = z.infer 13 | 14 | export type CustomizableMenuSettings = z.infer< 15 | typeof customizableMenuSettingsSchema 16 | > 17 | 18 | export type LanguageResponse = { 19 | language: Language 20 | generatedFile: boolean 21 | } 22 | -------------------------------------------------------------------------------- /src/bootstrap/components/advanced-mode/load-matchmaking-path.tsx: -------------------------------------------------------------------------------- 1 | import { useEffect } from 'react' 2 | 3 | import { useMatchmakingPath } from '../../../hooks/advanced-mode/matchmaking' 4 | 5 | export function LoadMatchmakingPath() { 6 | const { setPath } = useMatchmakingPath() 7 | 8 | useEffect(() => { 9 | const listener = window.electronAPI.notificationMatchmakingPath( 10 | async (response) => { 11 | setPath(response) 12 | } 13 | ) 14 | 15 | window.electronAPI.requestMatchmakingPath() 16 | 17 | return () => { 18 | listener.removeListener() 19 | } 20 | }, []) 21 | 22 | return null 23 | } 24 | -------------------------------------------------------------------------------- /src/bootstrap/components/advanced-mode/load-world-info-files.tsx: -------------------------------------------------------------------------------- 1 | import { useEffect } from 'react' 2 | 3 | import { useWorldInfoFilesActions } from '../../../hooks/advanced-mode/world-info' 4 | 5 | export function LoadWorldInfoFiles() { 6 | const { setFiles } = useWorldInfoFilesActions() 7 | 8 | useEffect(() => { 9 | const listener = window.electronAPI.responseWorldInfoFiles( 10 | async (response) => { 11 | setFiles(response) 12 | } 13 | ) 14 | 15 | window.electronAPI.requestWorldInfoFiles() 16 | 17 | return () => { 18 | listener.removeListener() 19 | } 20 | }, []) 21 | 22 | return null 23 | } 24 | -------------------------------------------------------------------------------- /src/kernel/startup/groups.ts: -------------------------------------------------------------------------------- 1 | import type { GroupRecord } from '../../types/groups' 2 | 3 | import { ElectronAPIEventKeys } from '../../config/constants/main-process' 4 | 5 | import { MainWindow } from './windows/main' 6 | import { DataDirectory } from './data-directory' 7 | 8 | export class GroupsManager { 9 | static async load() { 10 | const { groups } = await DataDirectory.getGroupsFile() 11 | 12 | MainWindow.instance.webContents.send( 13 | ElectronAPIEventKeys.OnLoadGroups, 14 | groups 15 | ) 16 | } 17 | 18 | static async update(groups: GroupRecord) { 19 | await DataDirectory.updateGroupsFile(groups) 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/state/settings/tags.ts: -------------------------------------------------------------------------------- 1 | import type { TagRecord } from '../../types/tags' 2 | 3 | import { create } from 'zustand' 4 | 5 | import { sortTags } from '../../lib/utils' 6 | 7 | export type TagsState = { 8 | tags: TagRecord 9 | updateTags: (tags: TagRecord, overwrite?: boolean) => void 10 | } 11 | 12 | export const useTagsStore = create()((set) => ({ 13 | tags: {}, 14 | 15 | updateTags: (tags, overwrite) => 16 | set((state) => ({ 17 | tags: sortTags( 18 | overwrite 19 | ? tags 20 | : { 21 | ...state.tags, 22 | ...tags, 23 | } 24 | ), 25 | })), 26 | })) 27 | -------------------------------------------------------------------------------- /src/state/accounts/add.ts: -------------------------------------------------------------------------------- 1 | import { create } from 'zustand' 2 | 3 | export type AddAccountsLoadingsState = { 4 | authorizationCode: boolean 5 | deviceAuth: boolean 6 | exchangeCode: boolean 7 | } 8 | 9 | export type AddAccountsState = AddAccountsLoadingsState & { 10 | updateLoadingStatus: ( 11 | type: keyof AddAccountsLoadingsState, 12 | value: boolean 13 | ) => void 14 | } 15 | 16 | export const useAddAccountsStore = create()((set) => ({ 17 | authorizationCode: false, 18 | deviceAuth: false, 19 | exchangeCode: false, 20 | 21 | updateLoadingStatus: (type, value) => { 22 | set({ 23 | [type]: value, 24 | }) 25 | }, 26 | })) 27 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | Aerial Launcher 10 | 11 | 14 |
18 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "lib": ["dom", "dom.iterable", "esnext"], 5 | "module": "commonjs", 6 | "strict": true, 7 | "allowJs": true, 8 | "skipLibCheck": true, 9 | "esModuleInterop": true, 10 | "downlevelIteration": true, 11 | "allowSyntheticDefaultImports": true, 12 | "strictNullChecks": true, 13 | "noImplicitAny": true, 14 | "sourceMap": true, 15 | "jsx": "react-jsx", 16 | "outDir": "dist", 17 | "moduleResolution": "node", 18 | "resolveJsonModule": true, 19 | "baseUrl": ".", 20 | "paths": { 21 | "@/*": ["./src/*"] 22 | } 23 | }, 24 | "exclude": ["node_modules"] 25 | } 26 | -------------------------------------------------------------------------------- /src/types/accounts.d.ts: -------------------------------------------------------------------------------- 1 | import { z } from 'zod' 2 | 3 | import { 4 | accountBasicInformationSchema, 5 | accountDataListSchema, 6 | accountDataSchema, 7 | accountListSchema, 8 | } from '../lib/validations/schemas/accounts' 9 | 10 | export type AccountBasicInfo = z.infer< 11 | typeof accountBasicInformationSchema 12 | > 13 | export type AccountData = z.infer 14 | export type AccountList = z.infer 15 | export type AccountDataList = z.infer 16 | export type AccountDataRecord = Record 17 | 18 | export type SyncAccountDataResponse = { 19 | accountId: string 20 | data: Partial 21 | } 22 | -------------------------------------------------------------------------------- /src/components/navigations/breadcrumb/home.tsx: -------------------------------------------------------------------------------- 1 | import { Link } from '@tanstack/react-router' 2 | import { useTranslation } from 'react-i18next' 3 | 4 | import { 5 | BreadcrumbItem, 6 | BreadcrumbLink, 7 | } from '../../../components/ui/breadcrumb' 8 | 9 | import { whatIsThis } from '../../../lib/callbacks' 10 | 11 | export function HomeBreadcrumb() { 12 | const { t } = useTranslation(['general']) 13 | 14 | return ( 15 | 16 | 17 | 21 | {t('go-to-current-alerts')} 22 | 23 | 24 | 25 | ) 26 | } 27 | -------------------------------------------------------------------------------- /src/locales/en-US/account-management/devices-auth.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Select an account and manage your devices auth created. User Agent, Creation and Last Access are displayed with information on: Location, IP Address and Date.", 3 | "form": { 4 | "submit-button": "Request Devices Auth" 5 | }, 6 | "results": { 7 | "title": "Devices Found: <1>{{total}}", 8 | "item": { 9 | "created": "Created", 10 | "last-access": "Last Access" 11 | } 12 | }, 13 | "notifications": { 14 | "no-devices": "No devices found", 15 | "success": "DeviceId {{deviceId}} was removed successfully", 16 | "error": "An error occurred while trying to remove deviceId: {{deviceId}}" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/config/constants/settings.ts: -------------------------------------------------------------------------------- 1 | import { Language } from '../../locales/resources' 2 | 3 | export const defaultAppLanguage: Language = Language.English 4 | export const availableLanguages: Array<{ 5 | id: Language 6 | title: string 7 | completed?: boolean 8 | }> = [ 9 | { 10 | id: Language.English, 11 | title: 'English', 12 | }, 13 | { 14 | id: Language.Spanish, 15 | title: 'Español', 16 | }, 17 | { 18 | id: Language.Chinese, 19 | title: '简体中文', 20 | }, 21 | { 22 | id: Language.Russian, 23 | title: 'Русский', 24 | }, 25 | { 26 | id: Language.Portuguese, 27 | title: 'Português', 28 | }, 29 | { 30 | id: Language.Polish, 31 | title: 'Polski', 32 | }, 33 | ] 34 | -------------------------------------------------------------------------------- /src/locales/en-US/stw-operations/auto-kick.json: -------------------------------------------------------------------------------- 1 | { 2 | "description1": "Auto-kick will listen to the events on your selected accounts and run kicking process when it detects the match has ended.", 3 | "description2": "Also, remember kicking is intelligent. There's no need of enabling two autokick's on your accounts if they are in the same party, both of your accounts will get kicked/leave (and claim rewards if you had auto-claim active) depending on the case.", 4 | "statuses": { 5 | "listening": "Listening", 6 | "credential-error": "Credential Error", 7 | "disconnected": "Disconnected" 8 | }, 9 | "options": { 10 | "kick": "Kick", 11 | "claim": "Claim", 12 | "transfer-mats": "Transfer mats" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/locales/ru-RU/account-management/devices-auth.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Выберите аккаунт и управляйте авторизацией устройств. User Agent, создание и последний доступ отображаются с информацией об: Местоположении, IP-адресе и Дате", 3 | "form": { 4 | "submit-button": "Запросить авторизацию устройств" 5 | }, 6 | "results": { 7 | "title": "Найдено устройств: <1>{{total}}", 8 | "item": { 9 | "created": "Создано", 10 | "last-access": "Последний Доступ" 11 | } 12 | }, 13 | "notifications": { 14 | "no-devices": "Устройства не найдены", 15 | "success": "DeviceId {{deviceId}} был успешно удален", 16 | "error": "Произошла ошибка при попытке удалить deviceID: {{deviceId}}" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/locales/pl-PL/stw-operations/auto-kick.json: -------------------------------------------------------------------------------- 1 | { 2 | "description1": "Auto-wyrzucanie nasłuchuje zdarzeń na wybranych kontach i uruchamia proces wyrzucenia, gdy wykryje zakończenie meczu.", 3 | "description2": "Pamiętaj, że auto-wyrzucanie działa inteligentnie. Nie musisz włączać go na dwóch kontach, jeśli należą do tej samej drużyny – oba konta zostaną wyrzucone lub opuszczą mecz (i odbiorą nagrody, jeśli aktywne było auto-odbieranie), w zależności od sytuacji.", 4 | "statuses": { 5 | "listening": "Nasłuchiwanie", 6 | "credential-error": "Błąd logowania", 7 | "disconnected": "Rozłączony" 8 | }, 9 | "options": { 10 | "kick": "Wyrzuć", 11 | "claim": "Odbierz", 12 | "transfer-mats": "Przenieś materiały" 13 | } 14 | } -------------------------------------------------------------------------------- /src/locales/it-IT/stw-operations/auto-kick.json: -------------------------------------------------------------------------------- 1 | { 2 | "description1": "Auto-caccia ascolterà gli eventi sugli account selezionati e avvierà il processo di caccia quando riconosce la fine della missione.", 3 | "description2": "Inoltre, ricorda che cacciare è intelligente. Non c'è bisogno di attivare due auto-caccia sui tuoi account se sono nello stesso party, entrambi verranno cacciati/usciranno (e reclameranno le ricompense se l'auto-claim è attivo), a dipendere dal caso.", 4 | "statuses": { 5 | "listening": "In Ascolto", 6 | "credential-error": "Errore Credenziali", 7 | "disconnected": "Disconnesso" 8 | }, 9 | "options": { 10 | "kick": "Caccia", 11 | "claim": "Reclama", 12 | "transfer-mats": "Trasferisci Materiali" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/locales/pt-BR/account-management/devices-auth.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Selecione uma conta e gerencie as autenticações de dispositivos criadas. Agente do Usuário, Criação e Último Acesso são exibidos com informações sobre: Localização, Endereço IP e Data.", 3 | "form": { 4 | "submit-button": "Solicitar Devices Auth" 5 | }, 6 | "results": { 7 | "title": "Dispositivos Encontrados: <1>{{total}}", 8 | "item": { 9 | "created": "Criado", 10 | "last-access": "Último Acesso" 11 | } 12 | }, 13 | "notifications": { 14 | "no-devices": "Nenhum dispositivo encontrado", 15 | "success": "DeviceId {{deviceId}} foi removido com sucesso", 16 | "error": "Ocorreu um erro ao tentar remover o dispositivo: {{deviceId}}" 17 | } 18 | } -------------------------------------------------------------------------------- /src/hooks/advanced-mode/matchmaking.ts: -------------------------------------------------------------------------------- 1 | import { useShallow } from 'zustand/react/shallow' 2 | 3 | import { useMatchmakingPathStore } from '../../state/advanced-mode/matchmaking-track/base' 4 | import { useMatchmakingRecentlyPlayersStore } from '../../state/advanced-mode/matchmaking-track/temp-players' 5 | 6 | export function useMatchmakingPath() { 7 | return useMatchmakingPathStore( 8 | useShallow((state) => ({ 9 | path: state.path, 10 | setPath: state.setPath, 11 | })) 12 | ) 13 | } 14 | 15 | export function useMatchmakingPlayersPath() { 16 | return useMatchmakingRecentlyPlayersStore( 17 | useShallow((state) => ({ 18 | players: state.players, 19 | updateRecentlyPlayers: state.updateRecentlyPlayers, 20 | })) 21 | ) 22 | } 23 | -------------------------------------------------------------------------------- /src/lib/electron-notifications.ts: -------------------------------------------------------------------------------- 1 | import type { IpcRendererEvent } from 'electron' 2 | 3 | import { ipcRenderer } from 'electron' 4 | 5 | import { ElectronAPIEventKeys } from '../config/constants/main-process' 6 | 7 | export function createElectronNotification< 8 | Params extends Array, 9 | >(config: { key: ElectronAPIEventKeys }) { 10 | return (callback: (...args: Params) => Promise) => { 11 | const customCallback = (_: IpcRendererEvent, ...args: Params) => { 12 | callback(...args).catch(() => {}) 13 | } 14 | const rendererInstance = ipcRenderer.on(config.key, customCallback) 15 | 16 | return { 17 | removeListener: () => 18 | rendererInstance.removeListener(config.key, customCallback), 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/bootstrap/components/load-auto-llamas.tsx: -------------------------------------------------------------------------------- 1 | import { useEffect } from 'react' 2 | import { useShallow } from 'zustand/react/shallow' 3 | 4 | import { useAutoLlamaStore } from '../../state/stw-operations/auto/llamas' 5 | 6 | export function LoadAutoLlamas() { 7 | const { addAccounts } = useAutoLlamaStore( 8 | useShallow((state) => ({ 9 | addAccounts: state.addAccounts, 10 | })) 11 | ) 12 | 13 | useEffect(() => { 14 | const listener = window.electronAPI.autoLlamasLoadAccountsResponse( 15 | async (accounts) => { 16 | addAccounts(accounts) 17 | } 18 | ) 19 | 20 | window.electronAPI.autoLlamasLoadAccounts() 21 | 22 | return () => { 23 | listener.removeListener() 24 | } 25 | }, []) 26 | 27 | return null 28 | } 29 | -------------------------------------------------------------------------------- /src/locales/pt-BR/stw-operations/auto-kick.json: -------------------------------------------------------------------------------- 1 | { 2 | "description1": "Auto-expulsar ouvirá os eventos nas contas selecionadas e iniciará o processo de expulsão quando detectar que a partida terminou.", 3 | "description2": "Além disso, lembre-se de que a expulsão é inteligente. Não há necessidade de ativar dois auto-expulsar em suas contas se elas estiverem no mesmo grupo, ambas as contas serão expulsas/sairão (e coletará as recompensas se você tiver o auto-coletar ativo), dependendo do caso.", 4 | "statuses": { 5 | "listening": "Ouvindo", 6 | "credential-error": "Erro de Credenciais", 7 | "disconnected": "Desconectado" 8 | }, 9 | "options": { 10 | "kick": "Expulsar", 11 | "claim": "Coletar", 12 | "transfer-mats": "Transferir materiais" 13 | } 14 | } -------------------------------------------------------------------------------- /src/hooks/groups.ts: -------------------------------------------------------------------------------- 1 | import { useShallow } from 'zustand/react/shallow' 2 | 3 | import { useGroupsStore } from '../state/settings/groups' 4 | 5 | export function useGetGroups() { 6 | const { groupList, registerGroups, updateGroupTags } = useGroupsStore( 7 | useShallow((state) => ({ 8 | groupList: state.groups, 9 | 10 | registerGroups: state.registerGroups, 11 | updateGroupTags: state.updateGroupTags, 12 | })) 13 | ) 14 | const groupsArray = Object.entries(groupList) 15 | 16 | const getGroupTagsByAccountId = (accountId: string) => { 17 | return groupList[accountId] ?? [] 18 | } 19 | 20 | return { 21 | groupsArray, 22 | groupList, 23 | 24 | getGroupTagsByAccountId, 25 | registerGroups, 26 | updateGroupTags, 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/locales/es-419/stw-operations/auto-kick.json: -------------------------------------------------------------------------------- 1 | { 2 | "description1": "Auto-kick estará a la espera de eventos en las cuentas seleccionadas and ejecutará el proceso de expulsión cuando detecte que la partida ha finalizado.", 3 | "description2": "También, recuerda que la expulsión es inteligente. No hay necesidad de habilitar dos auto-kick en tus cuentas si están en el mismo grupo, ambas cuentas serán expulsadas (y reclamarán la recompensa si tenías activado el auto-claim) dependiendo del caso.", 4 | "statuses": { 5 | "listening": "Escuchando", 6 | "credential-error": "Error de Credencial", 7 | "disconnected": "Desconectado" 8 | }, 9 | "options": { 10 | "kick": "Expulsar", 11 | "claim": "Reclamar", 12 | "transfer-mats": "Transferir mats" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/locales/es-419/account-management/devices-auth.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Selecciona una cuenta y administra tus dispositivos de autenticación creados. El Agente de Usuario, Creado y Último Acceso son mostrados con la información: Ubicación, Dirección IP y Fecha.", 3 | "form": { 4 | "submit-button": "Solicitar Dispositivos" 5 | }, 6 | "results": { 7 | "title": "Dispositivos Encontrados: <1>{{total}}", 8 | "item": { 9 | "created": "Creado", 10 | "last-access": "Último Acceso" 11 | } 12 | }, 13 | "notifications": { 14 | "no-devices": "No se encontrado dispositivos", 15 | "success": "DeviceId {{deviceId}} fue removido exitosamente", 16 | "error": "Ocurrió un error mientras se intentaba remover el deviceId: {{deviceId}}" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/state/stw-operations/save-quests.ts: -------------------------------------------------------------------------------- 1 | import { create } from 'zustand' 2 | 3 | export type SaveQuestsState = { 4 | accounts: Array 5 | claimState: boolean 6 | tags: Array 7 | 8 | changeClaimState: (claimState: boolean) => void 9 | updateAccounts: (accountIds: Array) => void 10 | updateTags: (tags: Array) => void 11 | } 12 | 13 | export const useSaveQuestsStore = create()((set) => ({ 14 | accounts: [], 15 | claimState: false, 16 | tags: [], 17 | 18 | changeClaimState: (claimState) => set({ claimState }), 19 | updateAccounts: (accountIds) => 20 | set({ 21 | accounts: [...new Set(accountIds)], 22 | }), 23 | updateTags: (tags) => 24 | set({ 25 | tags: [...new Set(tags)], 26 | }), 27 | })) 28 | -------------------------------------------------------------------------------- /src/locales/it-IT/account-management/devices-auth.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Seleziona un account e gestisci le autorizzazioni per i dispositivi create. L'User Agent, la Creazione e l'Ultimo Accesso sono mostrati con informazioni su: Posizione, Indirizzo IP e la Data.", 3 | "form": { 4 | "submit-button": "Richiedi Autorizzazioni Dispositivi" 5 | }, 6 | "results": { 7 | "title": "Dispositivi Trovati: <1>{{total}}", 8 | "item": { 9 | "created": "Creato", 10 | "last-access": "Ultimo Accesso" 11 | } 12 | }, 13 | "notifications": { 14 | "no-devices": "Nessun dispositivo trovato", 15 | "success": "DeviceId {{deviceId}} rimosso con successo", 16 | "error": "Si è verificato un errore nel tentativo di rimuovere deviceId: {{deviceId}}" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/locales/pl-PL/account-management/devices-auth.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Wybierz konto i zarządzaj urządzeniami, dla których utworzono uwierzytelnianie. Wyświetlane są: agent użytkownika, data utworzenia i ostatni dostęp, wraz z informacjami o lokalizacji, adresie IP i dacie.", 3 | "form": { 4 | "submit-button": "Pokaż uwierzytelnione urządzenia" 5 | }, 6 | "results": { 7 | "title": "Znalezione urządzenia <1>{{total}}", 8 | "item": { 9 | "created": "Utworzono", 10 | "last-access": "Ostatni dostęp" 11 | } 12 | }, 13 | "notifications": { 14 | "no-devices": "Nie znaleziono urządzeń", 15 | "success": "Id urządzenia {{deviceId}} zostało usunięte pomyślnie", 16 | "error": "Wystąpił błąd podczas próby usunięcia Id urządzenia: {{deviceId}}" 17 | } 18 | } -------------------------------------------------------------------------------- /src/components/ui/extended/separator.tsx: -------------------------------------------------------------------------------- 1 | import { PropsWithChildren } from 'react' 2 | 3 | import { Separator as BaseSeparator } from '../separator' 4 | 5 | import { cn } from '../../../lib/utils' 6 | 7 | export function SeparatorWithTitle({ 8 | children, 9 | className, 10 | classNameContainer, 11 | }: PropsWithChildren<{ 12 | className?: string 13 | classNameContainer?: string 14 | }>) { 15 | return ( 16 | 19 |
25 | {children} 26 |
27 |
28 | ) 29 | } 30 | -------------------------------------------------------------------------------- /src/state/settings/groups.ts: -------------------------------------------------------------------------------- 1 | import type { GroupRecord } from '../../types/groups' 2 | 3 | import { create } from 'zustand' 4 | 5 | export type GroupsState = { 6 | groups: GroupRecord 7 | 8 | registerGroups: (groups: GroupRecord) => void 9 | updateGroupTags: (accountId: string, tags: Array) => void 10 | } 11 | 12 | export const useGroupsStore = create()((set) => ({ 13 | groups: {}, 14 | 15 | registerGroups: (groups) => set({ groups }), 16 | updateGroupTags: (accountId, tags) => 17 | set((state) => { 18 | const data = { 19 | groups: { 20 | ...state.groups, 21 | [accountId]: [...new Set(tags)], 22 | }, 23 | } 24 | 25 | window.electronAPI.updateGroups(data.groups) 26 | 27 | return data 28 | }), 29 | })) 30 | -------------------------------------------------------------------------------- /src/state/advanced-mode/world-info/current.ts: -------------------------------------------------------------------------------- 1 | import type { WorldInfoData } from '../../../types/services/advanced-mode/world-info' 2 | 3 | import { create } from 'zustand' 4 | 5 | export type CurrentWorldInfoState = { 6 | data: WorldInfoData | null 7 | isFetching: boolean 8 | isSaving: boolean 9 | 10 | setData: (value: WorldInfoData | null) => void 11 | setIsFetching: (value: boolean) => void 12 | setIsSaving: (value: boolean) => void 13 | } 14 | 15 | export const useCurrentWorldInfoStore = create()( 16 | (set) => ({ 17 | data: null, 18 | isFetching: false, 19 | isSaving: false, 20 | 21 | setData: (data) => set({ data }), 22 | setIsFetching: (isFetching) => set({ isFetching }), 23 | setIsSaving: (isSaving) => set({ isSaving }), 24 | }) 25 | ) 26 | -------------------------------------------------------------------------------- /src/state/advanced-mode/world-info/home/data.ts: -------------------------------------------------------------------------------- 1 | import type { WorldInfo } from '../../../../types/data/advanced-mode/world-info' 2 | 3 | import { Collection } from '@discordjs/collection' 4 | import { create } from 'zustand' 5 | 6 | export type WorldInfoState = { 7 | data: WorldInfo 8 | isFetching: boolean 9 | isReloading: boolean 10 | 11 | setWorldInfoData: (value: WorldInfo) => void 12 | updateWorldInfoLoading: ( 13 | key: 'isFetching' | 'isReloading', 14 | value: boolean 15 | ) => void 16 | } 17 | 18 | export const useWorldInfoStore = create()((set) => ({ 19 | data: new Collection(), 20 | isFetching: false, 21 | isReloading: false, 22 | 23 | setWorldInfoData: (data) => set({ data }), 24 | updateWorldInfoLoading: (key, value) => set({ [key]: value }), 25 | })) 26 | -------------------------------------------------------------------------------- /src/locales/ru-RU/stw-operations/auto-kick.json: -------------------------------------------------------------------------------- 1 | { 2 | "description1": "Программа АвтоКик прослушает события на выбранных вами аккаунтах и запустит процесс кика при обнаружения что матч закончился.", 3 | "description2": "Кроме того, помните, что АвтоКик разумен. Нет необходимости включать два режима автоматического кика в ваших аккаунтах, если они находятся в одной группе, оба ваших аккаунта будут кикнуты / покинут группу (и вы получите награду, если у была активирована функция автоматического сбора) в зависимости от ситуации.", 4 | "statuses": { 5 | "listening": "Прослушивание", 6 | "credential-error": "Ошибка данных", 7 | "disconnected": "Отсоединение" 8 | }, 9 | "options": { 10 | "kick": "Выгнать", 11 | "claim": "Собрать", 12 | "transfer-mats": "Перенести материалы" 13 | } 14 | } 15 | --------------------------------------------------------------------------------