@gamebob/axon-surge 0.38.0 → 0.40.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/axon-surge.js +419 -341
- package/dist/core/GameEngineDebug.d.ts +5 -0
- package/dist/core/GameEngineDebug.d.ts.map +1 -0
- package/dist/core/GameEngineMethodsUi.d.ts.map +1 -1
- package/dist/core/GameEngineState.d.ts +2 -0
- package/dist/core/GameEngineState.d.ts.map +1 -1
- package/dist/i18n/locales.d.ts +3 -0
- package/dist/i18n/locales.d.ts.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/ui/ChallengeCompletionCinematic.d.ts.map +1 -1
- package/dist/ui/CoreRosterOverlay.d.ts +4 -0
- package/dist/ui/CoreRosterOverlay.d.ts.map +1 -1
- package/dist/ui/CoreRosterRenderer.d.ts +1 -1
- package/dist/ui/CoreRosterRenderer.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/axon-surge.js
CHANGED
|
@@ -2303,7 +2303,7 @@ class xr extends fr {
|
|
|
2303
2303
|
t.restore();
|
|
2304
2304
|
}
|
|
2305
2305
|
}
|
|
2306
|
-
class
|
|
2306
|
+
class Sr extends xr {
|
|
2307
2307
|
drawMiasmaClouds(e, t, a) {
|
|
2308
2308
|
if (this.renderer.ctx)
|
|
2309
2309
|
for (const i of e)
|
|
@@ -2341,13 +2341,13 @@ class br extends xr {
|
|
|
2341
2341
|
this.renderer.ctx.save(), this.renderer.ctx.globalAlpha = t.alpha, this.renderer.ctx.fillStyle = t.color, this.renderer.ctx.font = `900 ${t.size}px ${M}`, this.renderer.ctx.textAlign = "center", this.renderer.ctx.shadowColor = t.color, this.renderer.ctx.shadowBlur = 12, this.renderer.ctx.fillText(t.text, t.position.x, t.position.y), this.renderer.ctx.restore();
|
|
2342
2342
|
}
|
|
2343
2343
|
}
|
|
2344
|
-
const
|
|
2344
|
+
const br = {
|
|
2345
2345
|
common: p.spore,
|
|
2346
2346
|
rare: p.parasite,
|
|
2347
2347
|
epic: p.cluster,
|
|
2348
2348
|
legendary: p.core
|
|
2349
2349
|
};
|
|
2350
|
-
class Cr extends
|
|
2350
|
+
class Cr extends Sr {
|
|
2351
2351
|
drawOrbitingModifierOrbs(e) {
|
|
2352
2352
|
if (!this.renderer.ctx) return;
|
|
2353
2353
|
const { orbs: t, time: a, i18nService: i, canReroll: o = !0, rerollsRemaining: n = 1 } = e, s = this.renderer.themeManager.getPalette(), l = this.getDisplayScale();
|
|
@@ -2359,7 +2359,7 @@ class Cr extends br {
|
|
|
2359
2359
|
}
|
|
2360
2360
|
}
|
|
2361
2361
|
drawOrbitingOrb(e) {
|
|
2362
|
-
const { orb: t, time: a, palette: i, displayScale: o, i18nService: n } = e, s =
|
|
2362
|
+
const { orb: t, time: a, palette: i, displayScale: o, i18nService: n } = e, s = br[t.definition.rarity], l = t.radius + Math.sin(a * 6 + t.orbitAngle) * 3, c = this.renderer.ctx;
|
|
2363
2363
|
c.save(), c.shadowColor = s, c.shadowBlur = t.isGrabbed ? 36 : this.getOrbShadowBlur(t), this.drawOrbAura(t, l, s), this.drawOrbBody({ orb: t, pulseR: l, time: a, palette: i, rarityColor: s }), this.drawOrbLabel({ orb: t, pulseR: l, palette: i, rarityColor: s, displayScale: o, i18nService: n }), c.restore();
|
|
2364
2364
|
}
|
|
2365
2365
|
getOrbShadowBlur(e) {
|
|
@@ -2593,7 +2593,7 @@ class Rr {
|
|
|
2593
2593
|
});
|
|
2594
2594
|
}
|
|
2595
2595
|
drawParticle(e) {
|
|
2596
|
-
const { ctx: t, w: a, h: i, time: o, hue: n, secondaryHue: s, level: l, isLight: c, centerX: d, centerY: u, clearRadius: h, index: m } = e, g = m + l * 17, y = this.unitNoise(g * 1.7) * a, j = this.unitNoise(g * 2.9 + 13) * i, R = Math.hypot(y - d, j - u), k = Math.min(1, Math.max(0, (R - h) / (Math.min(a, i) * 0.28))),
|
|
2596
|
+
const { ctx: t, w: a, h: i, time: o, hue: n, secondaryHue: s, level: l, isLight: c, centerX: d, centerY: u, clearRadius: h, index: m } = e, g = m + l * 17, y = this.unitNoise(g * 1.7) * a, j = this.unitNoise(g * 2.9 + 13) * i, R = Math.hypot(y - d, j - u), k = Math.min(1, Math.max(0, (R - h) / (Math.min(a, i) * 0.28))), bt = 0.7 + Math.sin(o * (0.6 + m % 4 * 0.08) + g) * 0.3, Ct = (c ? 0.34 : 0.3) * k * bt;
|
|
2597
2597
|
t.fillStyle = `hsla(${m % 3 === 0 ? s : n}, ${c ? 82 : 78}%, ${c ? 40 : 70}%, ${Ct})`, t.beginPath(), t.arc(y, j, 0.65 + m % 3 * 0.45, 0, Math.PI * 2), t.fill();
|
|
2598
2598
|
}
|
|
2599
2599
|
unitNoise(e) {
|
|
@@ -3961,6 +3961,8 @@ const C = {
|
|
|
3961
3961
|
coreRosterSkillPoints: "EXPERIENCIA NUCLEICA",
|
|
3962
3962
|
coreRosterNext: "SIGUIENTE DESBLOQUEO",
|
|
3963
3963
|
coreRosterNoNext: "No hay otro desbloqueo definido.",
|
|
3964
|
+
coreRosterScrollUp: "Ver elevaciones anteriores",
|
|
3965
|
+
coreRosterScrollDown: "Ver más elevaciones",
|
|
3964
3966
|
coreOriginStyleDescription: "Agarra, arrastra y lanza enemigos para convertirlos en munición.",
|
|
3965
3967
|
coreLauncherTitle: "EL LANZADOR",
|
|
3966
3968
|
coreLauncherDescription: "La conciencia que convierte cada criatura en munición.",
|
|
@@ -4203,6 +4205,8 @@ const C = {
|
|
|
4203
4205
|
coreRosterSkillPoints: "NUCLEIC EXPERIENCE",
|
|
4204
4206
|
coreRosterNext: "NEXT UNLOCK",
|
|
4205
4207
|
coreRosterNoNext: "No further unlock is defined.",
|
|
4208
|
+
coreRosterScrollUp: "View previous elevations",
|
|
4209
|
+
coreRosterScrollDown: "View more elevations",
|
|
4206
4210
|
coreOriginStyleDescription: "Grab, drag, and throw enemies to turn them into ammunition.",
|
|
4207
4211
|
coreLauncherTitle: "THE LAUNCHER",
|
|
4208
4212
|
coreLauncherDescription: "The consciousness that turns every creature into ammunition.",
|
|
@@ -4405,6 +4409,8 @@ const C = {
|
|
|
4405
4409
|
coreRosterSkillPoints: "EXPÉRIENCE NUCLÉIQUE",
|
|
4406
4410
|
coreRosterNext: "PROCHAIN DÉVERROUILLAGE",
|
|
4407
4411
|
coreRosterNoNext: "Aucun autre déverrouillage n'est défini.",
|
|
4412
|
+
coreRosterScrollUp: "Voir les élévations précédentes",
|
|
4413
|
+
coreRosterScrollDown: "Voir plus d'élévations",
|
|
4408
4414
|
coreOriginStyleDescription: "Saisissez, faites glisser et lancez les ennemis pour en faire des munitions.",
|
|
4409
4415
|
coreSmasherTitle: "L'ÉCRASEUR",
|
|
4410
4416
|
coreSmasherDescription: "La conscience qui soutient que tout corps est infiniment plus utile lorsqu'il est plat.",
|
|
@@ -4592,6 +4598,8 @@ const C = {
|
|
|
4592
4598
|
coreRosterSkillPoints: "NUKLEARE ERFAHRUNG",
|
|
4593
4599
|
coreRosterNext: "NÄCHSTE FREISCHALTUNG",
|
|
4594
4600
|
coreRosterNoNext: "Keine weitere Freischaltung definiert.",
|
|
4601
|
+
coreRosterScrollUp: "Vorherige Elevationen anzeigen",
|
|
4602
|
+
coreRosterScrollDown: "Weitere Elevationen anzeigen",
|
|
4595
4603
|
coreOriginStyleDescription: "Greife, ziehe und schleudere Feinde, um sie in Munition zu verwandeln.",
|
|
4596
4604
|
coreSmasherTitle: "DER ZERMALMER",
|
|
4597
4605
|
coreSmasherDescription: "Das Bewusstsein, das behauptet, dass jeder Körper unendlich nützlicher ist, wenn er flach ist.",
|
|
@@ -4779,6 +4787,8 @@ const C = {
|
|
|
4779
4787
|
coreRosterSkillPoints: "ESPERIENZA NUCLEICA",
|
|
4780
4788
|
coreRosterNext: "PROSSIMO SBLOCCO",
|
|
4781
4789
|
coreRosterNoNext: "Nessun altro sblocco definito.",
|
|
4790
|
+
coreRosterScrollUp: "Mostra elevazioni precedenti",
|
|
4791
|
+
coreRosterScrollDown: "Mostra altre elevazioni",
|
|
4782
4792
|
coreOriginStyleDescription: "Afferra, trascina e lancia i nemici per trasformarli in munizioni.",
|
|
4783
4793
|
coreSmasherTitle: "IL FRANTUMATORE",
|
|
4784
4794
|
coreSmasherDescription: "La coscienza che sostiene che ogni corpo sia infinitamente più utile quando è piatto.",
|
|
@@ -4966,6 +4976,8 @@ const C = {
|
|
|
4966
4976
|
coreRosterSkillPoints: "EXPERIÊNCIA NUCLEICA",
|
|
4967
4977
|
coreRosterNext: "PRÓXIMO DESBLOQUEIO",
|
|
4968
4978
|
coreRosterNoNext: "Nenhum outro desbloqueio definido.",
|
|
4979
|
+
coreRosterScrollUp: "Ver elevações anteriores",
|
|
4980
|
+
coreRosterScrollDown: "Ver mais elevações",
|
|
4969
4981
|
coreOriginStyleDescription: "Agarra, arrasta e lança inimigos para transformá-los em munição.",
|
|
4970
4982
|
coreSmasherTitle: "O ESMAGADOR",
|
|
4971
4983
|
coreSmasherDescription: "A consciência que transforma um agarre num esmagamento.",
|
|
@@ -5153,6 +5165,8 @@ const C = {
|
|
|
5153
5165
|
coreRosterSkillPoints: "NUCLEAIRE ERVARING",
|
|
5154
5166
|
coreRosterNext: "VOLGENDE VRIJSPELING",
|
|
5155
5167
|
coreRosterNoNext: "Geen volgende vrijspeling gedefinieerd.",
|
|
5168
|
+
coreRosterScrollUp: "Vorige elevaties bekijken",
|
|
5169
|
+
coreRosterScrollDown: "Meer elevaties bekijken",
|
|
5156
5170
|
coreOriginStyleDescription: "Grijp, sleep en werp vijanden om ze in munitie te veranderen.",
|
|
5157
5171
|
coreSmasherTitle: "DE VERPLETTERAAR",
|
|
5158
5172
|
coreSmasherDescription: "Het bewustzijn dat een greep in een verpletterende klap verandert.",
|
|
@@ -5340,6 +5354,8 @@ const C = {
|
|
|
5340
5354
|
coreRosterSkillPoints: "NUKLEÄR ERFARENHET",
|
|
5341
5355
|
coreRosterNext: "NÄSTA UPPLÅSNING",
|
|
5342
5356
|
coreRosterNoNext: "Ingen ytterligare upplåsning definierad.",
|
|
5357
|
+
coreRosterScrollUp: "Visa tidigare elevationer",
|
|
5358
|
+
coreRosterScrollDown: "Visa fler elevationer",
|
|
5343
5359
|
coreOriginStyleDescription: "Greppa, dra och kasta fiender för att göra dem till ammunition.",
|
|
5344
5360
|
coreSmasherTitle: "MIAŻDŻYCEL",
|
|
5345
5361
|
coreSmasherDescription: "Medvetandet som förvandlar ett grepp till en krossande smäll.",
|
|
@@ -5527,6 +5543,8 @@ const C = {
|
|
|
5527
5543
|
coreRosterSkillPoints: "DOŚWIADCZENIE NUKLEICZNE",
|
|
5528
5544
|
coreRosterNext: "NASTĘPNE ODBLOKOWANIE",
|
|
5529
5545
|
coreRosterNoNext: "Nie zdefiniowano kolejnego odblokowania.",
|
|
5546
|
+
coreRosterScrollUp: "Pokaż wcześniejsze elewacje",
|
|
5547
|
+
coreRosterScrollDown: "Pokaż więcej elewacji",
|
|
5530
5548
|
coreOriginStyleDescription: "Chwytaj, przeciągaj i rzucaj wrogami, zmieniając ich w amunicję.",
|
|
5531
5549
|
coreSmasherTitle: "SANG PENGHANCUR",
|
|
5532
5550
|
coreSmasherDescription: "Świadomość, która zmienia chwyt w miażdżące uderzenie.",
|
|
@@ -5714,6 +5732,8 @@ const C = {
|
|
|
5714
5732
|
coreRosterSkillPoints: "PENGALAMAN NUKLEAT",
|
|
5715
5733
|
coreRosterNext: "PEMBUKAAN BERIKUTNYA",
|
|
5716
5734
|
coreRosterNoNext: "Belum ada pembukaan lain.",
|
|
5735
|
+
coreRosterScrollUp: "Lihat elevasi sebelumnya",
|
|
5736
|
+
coreRosterScrollDown: "Lihat elevasi lainnya",
|
|
5717
5737
|
coreOriginStyleDescription: "Tangkap, seret, dan lempar musuh untuk mengubahnya menjadi amunisi.",
|
|
5718
5738
|
coreSmasherTitle: "EZİCİ",
|
|
5719
5739
|
coreSmasherDescription: "Kesadaran yang mengubah cengkeraman menjadi hantaman penghancur.",
|
|
@@ -5901,6 +5921,8 @@ const C = {
|
|
|
5901
5921
|
coreRosterSkillPoints: "NÜKLEİK DENEYİM",
|
|
5902
5922
|
coreRosterNext: "SONRAKİ AÇILIM",
|
|
5903
5923
|
coreRosterNoNext: "Başka açılım tanımlanmadı.",
|
|
5924
|
+
coreRosterScrollUp: "Önceki yükselişleri gör",
|
|
5925
|
+
coreRosterScrollDown: "Daha fazla yükseliş gör",
|
|
5904
5926
|
coreOriginStyleDescription: "Düşmanları yakala, sürükle ve fırlat; onları mühimmata dönüştür.",
|
|
5905
5927
|
coreSmasherTitle: "КРУШИТЕЛЬ",
|
|
5906
5928
|
coreSmasherDescription: "Kavrayışı ezici bir darbeye dönüştüren bilinç.",
|
|
@@ -6088,6 +6110,8 @@ const C = {
|
|
|
6088
6110
|
coreRosterSkillPoints: "НУКЛЕИЧЕСКИЙ ОПЫТ",
|
|
6089
6111
|
coreRosterNext: "СЛЕДУЮЩЕЕ ОТКРЫТИЕ",
|
|
6090
6112
|
coreRosterNoNext: "Следующее открытие не определено.",
|
|
6113
|
+
coreRosterScrollUp: "Показать предыдущие возвышения",
|
|
6114
|
+
coreRosterScrollDown: "Показать другие возвышения",
|
|
6091
6115
|
coreOriginStyleDescription: "Хватайте, тащите и бросайте врагов, превращая их в боеприпасы.",
|
|
6092
6116
|
coreSmasherTitle: "スマッシャー",
|
|
6093
6117
|
coreSmasherDescription: "Сознание, превращающее захват в сокрушительный удар.",
|
|
@@ -6275,6 +6299,8 @@ const C = {
|
|
|
6275
6299
|
coreRosterSkillPoints: "ヌクレア経験",
|
|
6276
6300
|
coreRosterNext: "次のアンロック",
|
|
6277
6301
|
coreRosterNoNext: "次のアンロックは未定義です。",
|
|
6302
|
+
coreRosterScrollUp: "前のエレベーションを見る",
|
|
6303
|
+
coreRosterScrollDown: "さらにエレベーションを見る",
|
|
6278
6304
|
coreOriginStyleDescription: "敵をつかみ、引き寄せ、投げて弾薬に変える。",
|
|
6279
6305
|
coreSmasherTitle: "THE SMASHER",
|
|
6280
6306
|
coreSmasherDescription: "つかんだものを粉砕の一撃に変える意識。",
|
|
@@ -6462,6 +6488,8 @@ const C = {
|
|
|
6462
6488
|
coreRosterSkillPoints: "뉴클레익 경험",
|
|
6463
6489
|
coreRosterNext: "다음 해금",
|
|
6464
6490
|
coreRosterNoNext: "다음 해금은 정의되지 않았습니다.",
|
|
6491
|
+
coreRosterScrollUp: "이전 엘리베이션 보기",
|
|
6492
|
+
coreRosterScrollDown: "더 많은 엘리베이션 보기",
|
|
6465
6493
|
coreOriginStyleDescription: "적을 붙잡고 끌어당기고 던져 탄약으로 바꿉니다.",
|
|
6466
6494
|
coreSmasherTitle: "분쇄기",
|
|
6467
6495
|
coreSmasherDescription: "붙잡기를 분쇄의 일격으로 바꾸는 의식입니다.",
|
|
@@ -6649,6 +6677,8 @@ const C = {
|
|
|
6649
6677
|
coreRosterSkillPoints: "核质经验",
|
|
6650
6678
|
coreRosterNext: "下一个解锁",
|
|
6651
6679
|
coreRosterNoNext: "尚未定义下一个解锁。",
|
|
6680
|
+
coreRosterScrollUp: "查看之前的晋升",
|
|
6681
|
+
coreRosterScrollDown: "查看更多晋升",
|
|
6652
6682
|
coreOriginStyleDescription: "抓住、拖拽并投掷敌人,将其变成弹药。",
|
|
6653
6683
|
coreSmasherTitle: "粉碎者",
|
|
6654
6684
|
coreSmasherDescription: "将抓取转化为粉碎一击的意识。",
|
|
@@ -6741,6 +6771,7 @@ const C = {
|
|
|
6741
6771
|
objectivesSubtitle: "MISIÓN • DESAFÍO • LOGRO",
|
|
6742
6772
|
objectivesMissions: "MISIONES",
|
|
6743
6773
|
objectivesChallenges: "DESAFÍOS",
|
|
6774
|
+
challengeSingular: "DESAFÍO",
|
|
6744
6775
|
objectivesAchievements: "LOGROS",
|
|
6745
6776
|
objectiveSystemHint: "ELIGE TU PRÓXIMO PROPÓSITO",
|
|
6746
6777
|
objectiveNoObjectives: "SIN OBJETIVOS DISPONIBLES",
|
|
@@ -6767,6 +6798,7 @@ const C = {
|
|
|
6767
6798
|
objectivesSubtitle: "MISSION • CHALLENGE • ACHIEVEMENT",
|
|
6768
6799
|
objectivesMissions: "MISSIONS",
|
|
6769
6800
|
objectivesChallenges: "CHALLENGES",
|
|
6801
|
+
challengeSingular: "CHALLENGE",
|
|
6770
6802
|
objectivesAchievements: "ACHIEVEMENTS",
|
|
6771
6803
|
objectiveSystemHint: "CHOOSE YOUR NEXT PURPOSE",
|
|
6772
6804
|
objectiveNoObjectives: "NO OBJECTIVES AVAILABLE",
|
|
@@ -6793,6 +6825,7 @@ const C = {
|
|
|
6793
6825
|
objectivesSubtitle: "MISSION • DÉFI • SUCCÈS",
|
|
6794
6826
|
objectivesMissions: "MISSIONS",
|
|
6795
6827
|
objectivesChallenges: "DÉFIS",
|
|
6828
|
+
challengeSingular: "DÉFI",
|
|
6796
6829
|
objectivesAchievements: "SUCCÈS",
|
|
6797
6830
|
objectiveSystemHint: "CHOISISSEZ VOTRE PROCHAIN BUT",
|
|
6798
6831
|
objectiveNoObjectives: "AUCUN OBJECTIF DISPONIBLE",
|
|
@@ -6819,6 +6852,7 @@ const C = {
|
|
|
6819
6852
|
objectivesSubtitle: "MISSION • HERAUSFORDERUNG • ERFOLG",
|
|
6820
6853
|
objectivesMissions: "MISSIONEN",
|
|
6821
6854
|
objectivesChallenges: "HERAUSFORDERUNGEN",
|
|
6855
|
+
challengeSingular: "HERAUSFORDERUNG",
|
|
6822
6856
|
objectivesAchievements: "ERFOLGE",
|
|
6823
6857
|
objectiveSystemHint: "WÄHLE DEIN NÄCHSTES ZIEL",
|
|
6824
6858
|
objectiveNoObjectives: "KEINE ZIELE VERFÜGBAR",
|
|
@@ -6845,6 +6879,7 @@ const C = {
|
|
|
6845
6879
|
objectivesSubtitle: "MISSIONE • SFIDA • OBIETTIVO",
|
|
6846
6880
|
objectivesMissions: "MISSIONI",
|
|
6847
6881
|
objectivesChallenges: "SFIDE",
|
|
6882
|
+
challengeSingular: "SFIDA",
|
|
6848
6883
|
objectivesAchievements: "OBIETTIVI",
|
|
6849
6884
|
objectiveSystemHint: "SCEGLI IL TUO PROSSIMO SCOPO",
|
|
6850
6885
|
objectiveNoObjectives: "NESSUN OBIETTIVO DISPONIBILE",
|
|
@@ -6871,6 +6906,7 @@ const C = {
|
|
|
6871
6906
|
objectivesSubtitle: "MISSÃO • DESAFIO • CONQUISTA",
|
|
6872
6907
|
objectivesMissions: "MISSÕES",
|
|
6873
6908
|
objectivesChallenges: "DESAFIOS",
|
|
6909
|
+
challengeSingular: "DESAFIO",
|
|
6874
6910
|
objectivesAchievements: "CONQUISTAS",
|
|
6875
6911
|
objectiveSystemHint: "ESCOLHE O TEU PRÓXIMO PROPÓSITO",
|
|
6876
6912
|
objectiveNoObjectives: "SEM OBJETIVOS DISPONÍVEIS",
|
|
@@ -6897,6 +6933,7 @@ const C = {
|
|
|
6897
6933
|
objectivesSubtitle: "MISSIE • UITDAGING • PRESTATIE",
|
|
6898
6934
|
objectivesMissions: "MISSIES",
|
|
6899
6935
|
objectivesChallenges: "UITDAGINGEN",
|
|
6936
|
+
challengeSingular: "UITDAGING",
|
|
6900
6937
|
objectivesAchievements: "PRESTATIES",
|
|
6901
6938
|
objectiveSystemHint: "KIES JE VOLGENDE DOEL",
|
|
6902
6939
|
objectiveNoObjectives: "GEEN DOELEN BESCHIKBAAR",
|
|
@@ -6923,6 +6960,7 @@ const C = {
|
|
|
6923
6960
|
objectivesSubtitle: "UPPDRAG • UTMANING • PRESTATION",
|
|
6924
6961
|
objectivesMissions: "UPPDRAG",
|
|
6925
6962
|
objectivesChallenges: "UTMANINGAR",
|
|
6963
|
+
challengeSingular: "UTMANING",
|
|
6926
6964
|
objectivesAchievements: "PRESTATIONER",
|
|
6927
6965
|
objectiveSystemHint: "VÄLJ DITT NÄSTA MÅL",
|
|
6928
6966
|
objectiveNoObjectives: "INGA MÅL TILLGÄNGLIGA",
|
|
@@ -6949,6 +6987,7 @@ const C = {
|
|
|
6949
6987
|
objectivesSubtitle: "MISJA • WYZWANIE • OSIĄGNIĘCIE",
|
|
6950
6988
|
objectivesMissions: "MISJE",
|
|
6951
6989
|
objectivesChallenges: "WYZWANIA",
|
|
6990
|
+
challengeSingular: "WYZWANIE",
|
|
6952
6991
|
objectivesAchievements: "OSIĄGNIĘCIA",
|
|
6953
6992
|
objectiveSystemHint: "WYBIERZ NASTĘPNY CEL",
|
|
6954
6993
|
objectiveNoObjectives: "BRAK DOSTĘPNYCH CELÓW",
|
|
@@ -6975,6 +7014,7 @@ const C = {
|
|
|
6975
7014
|
objectivesSubtitle: "MISI • TANTANGAN • PENCAPAIAN",
|
|
6976
7015
|
objectivesMissions: "MISI",
|
|
6977
7016
|
objectivesChallenges: "TANTANGAN",
|
|
7017
|
+
challengeSingular: "TANTANGAN",
|
|
6978
7018
|
objectivesAchievements: "PENCAPAIAN",
|
|
6979
7019
|
objectiveSystemHint: "PILIH TUJUAN BERIKUTNYA",
|
|
6980
7020
|
objectiveNoObjectives: "TIDAK ADA TUJUAN",
|
|
@@ -7001,6 +7041,7 @@ const C = {
|
|
|
7001
7041
|
objectivesSubtitle: "GÖREV • MEYDAN OKUMA • BAŞARIM",
|
|
7002
7042
|
objectivesMissions: "GÖREVLER",
|
|
7003
7043
|
objectivesChallenges: "MEYDAN OKUMALAR",
|
|
7044
|
+
challengeSingular: "MEYDAN OKUMA",
|
|
7004
7045
|
objectivesAchievements: "BAŞARIMLAR",
|
|
7005
7046
|
objectiveSystemHint: "SONRAKİ AMACINI SEÇ",
|
|
7006
7047
|
objectiveNoObjectives: "KULLANILABİLİR HEDEF YOK",
|
|
@@ -7027,6 +7068,7 @@ const C = {
|
|
|
7027
7068
|
objectivesSubtitle: "МИССИЯ • ИСПЫТАНИЕ • ДОСТИЖЕНИЕ",
|
|
7028
7069
|
objectivesMissions: "МИССИИ",
|
|
7029
7070
|
objectivesChallenges: "ИСПЫТАНИЯ",
|
|
7071
|
+
challengeSingular: "ИСПЫТАНИЕ",
|
|
7030
7072
|
objectivesAchievements: "ДОСТИЖЕНИЯ",
|
|
7031
7073
|
objectiveSystemHint: "ВЫБЕРИТЕ СЛЕДУЮЩУЮ ЦЕЛЬ",
|
|
7032
7074
|
objectiveNoObjectives: "НЕТ ДОСТУПНЫХ ЦЕЛЕЙ",
|
|
@@ -7053,6 +7095,7 @@ const C = {
|
|
|
7053
7095
|
objectivesSubtitle: "ミッション • チャレンジ • 実績",
|
|
7054
7096
|
objectivesMissions: "ミッション",
|
|
7055
7097
|
objectivesChallenges: "チャレンジ",
|
|
7098
|
+
challengeSingular: "チャレンジ",
|
|
7056
7099
|
objectivesAchievements: "実績",
|
|
7057
7100
|
objectiveSystemHint: "次の目的を選択",
|
|
7058
7101
|
objectiveNoObjectives: "利用可能な目標はありません",
|
|
@@ -7079,6 +7122,7 @@ const C = {
|
|
|
7079
7122
|
objectivesSubtitle: "임무 • 도전 • 업적",
|
|
7080
7123
|
objectivesMissions: "임무",
|
|
7081
7124
|
objectivesChallenges: "도전",
|
|
7125
|
+
challengeSingular: "도전",
|
|
7082
7126
|
objectivesAchievements: "업적",
|
|
7083
7127
|
objectiveSystemHint: "다음 목적을 선택하세요",
|
|
7084
7128
|
objectiveNoObjectives: "사용 가능한 목표가 없습니다",
|
|
@@ -7105,6 +7149,7 @@ const C = {
|
|
|
7105
7149
|
objectivesSubtitle: "任务 • 挑战 • 成就",
|
|
7106
7150
|
objectivesMissions: "任务",
|
|
7107
7151
|
objectivesChallenges: "挑战",
|
|
7152
|
+
challengeSingular: "挑战",
|
|
7108
7153
|
objectivesAchievements: "成就",
|
|
7109
7154
|
objectiveSystemHint: "选择你的下一个目标",
|
|
7110
7155
|
objectiveNoObjectives: "没有可用目标",
|
|
@@ -7965,7 +8010,7 @@ const xa = {
|
|
|
7965
8010
|
};
|
|
7966
8011
|
for (const [r, e] of Object.entries(xa))
|
|
7967
8012
|
Object.assign(C[r], e);
|
|
7968
|
-
const
|
|
8013
|
+
const Sa = {
|
|
7969
8014
|
es: {
|
|
7970
8015
|
codexSporeLore: "Organismo tóxico que convierte el rechazo en una reunión útil.",
|
|
7971
8016
|
codexClusterLore: "Energía dopaminérgica contenida en una criatura que no sabe bajar el ritmo.",
|
|
@@ -8897,9 +8942,9 @@ const ba = {
|
|
|
8897
8942
|
codexHeavyEntryCaused6: "最后一次放电落下时,大寂静仍在寻找最弱者。它在一个已经无用的地方继续执行使命,并因此哭泣。"
|
|
8898
8943
|
}
|
|
8899
8944
|
};
|
|
8900
|
-
for (const [r, e] of Object.entries(
|
|
8945
|
+
for (const [r, e] of Object.entries(Sa))
|
|
8901
8946
|
Object.assign(C[r], e);
|
|
8902
|
-
const
|
|
8947
|
+
const ba = {
|
|
8903
8948
|
es: {
|
|
8904
8949
|
codexPiercerLore: "Criatura puntiaguda que atraviesa la materia siguiendo campos electromagnéticos.",
|
|
8905
8950
|
codexParasiteLore: "Criatura social que convierte cada encuentro en un abrazo gravitatorio."
|
|
@@ -8961,7 +9006,7 @@ const Sa = {
|
|
|
8961
9006
|
codexParasiteLore: "把每次相遇都变成引力拥抱的社交生物。"
|
|
8962
9007
|
}
|
|
8963
9008
|
};
|
|
8964
|
-
for (const [r, e] of Object.entries(
|
|
9009
|
+
for (const [r, e] of Object.entries(ba))
|
|
8965
9010
|
Object.assign(C[r], e);
|
|
8966
9011
|
const Ca = ["es", "en", "fr", "de", "it", "pt", "nl", "sv", "pl", "id", "tr", "ru", "ja", "ko", "zh"];
|
|
8967
9012
|
function re(r) {
|
|
@@ -9701,7 +9746,7 @@ class Ka {
|
|
|
9701
9746
|
}
|
|
9702
9747
|
renderSkinSelector(e, t) {
|
|
9703
9748
|
const a = t.id === "core-default" ? "DEFAULT" : t.id.replace("core-", "").replaceAll("-", " ").toUpperCase(), i = this.getSkinStatus(t);
|
|
9704
|
-
return `<button type="button" class="axon-core-skin-selector-entry ${this.getSkinStateClass(t)}" data-core-action="equip-skin" data-core-id="${e.id}" data-skin-id="${t.id}" ${this.getDisabledAttribute(t.unlocked)} aria-label="${a} · ${i}" aria-pressed="${t.selected}"><span class="axon-core-skin-portrait"><canvas class="axon-core-skin-miniature" width="120" height="120" data-skin-preview-id="${t.id}" data-skin-preview-silhouette="${t.unlocked ? "false" : "true"}" aria-hidden="true"></canvas></span
|
|
9749
|
+
return `<button type="button" class="axon-core-skin-selector-entry ${this.getSkinStateClass(t)}" data-core-action="equip-skin" data-core-id="${e.id}" data-skin-id="${t.id}" ${this.getDisabledAttribute(t.unlocked)} aria-label="${a} · ${i}" aria-pressed="${t.selected}"><span class="axon-core-skin-portrait"><canvas class="axon-core-skin-miniature" width="120" height="120" data-skin-preview-id="${t.id}" data-skin-preview-silhouette="${t.unlocked ? "false" : "true"}" aria-hidden="true"></canvas></span></button>`;
|
|
9705
9750
|
}
|
|
9706
9751
|
getSkinStatus(e) {
|
|
9707
9752
|
return e.selected ? this.i18n.translate("coreRosterSelected") : e.unlocked ? this.i18n.translate("coreRosterSelect") : this.i18n.translate("coreRosterLocked");
|
|
@@ -9712,9 +9757,6 @@ class Ka {
|
|
|
9712
9757
|
getDisabledAttribute(e) {
|
|
9713
9758
|
return e ? "" : "disabled";
|
|
9714
9759
|
}
|
|
9715
|
-
renderSelectionMark() {
|
|
9716
|
-
return '<svg class="axon-core-skin-selected-mark" viewBox="0 0 24 24" aria-hidden="true"><path d="m12 3 2.1 6.1L20 12l-5.9 2.1L12 21l-2.1-6.9L4 12l5.9-2.9L12 3Z"/></svg>';
|
|
9717
|
-
}
|
|
9718
9760
|
renderOrganicGrowthIcon() {
|
|
9719
9761
|
return '<svg viewBox="0 0 44 44" role="img" aria-hidden="true"><circle cx="22" cy="22" r="3.2"/><ellipse cx="22" cy="22" rx="17" ry="7"/><ellipse cx="22" cy="22" rx="17" ry="7" transform="rotate(60 22 22)"/><ellipse cx="22" cy="22" rx="17" ry="7" transform="rotate(-60 22 22)"/><circle class="axon-atom-electron" cx="39" cy="22" r="2.3"/><circle class="axon-atom-electron" cx="13.5" cy="7.3" r="2.3"/><circle class="axon-atom-electron" cx="13.5" cy="36.7" r="2.3"/></svg>';
|
|
9720
9762
|
}
|
|
@@ -9739,7 +9781,10 @@ class Ka {
|
|
|
9739
9781
|
}
|
|
9740
9782
|
renderSkillTree(e) {
|
|
9741
9783
|
const t = this.getWisdomProgress(e), a = e.wisdomTrack.map((i, o) => this.renderElevationRow(i, o, e.profile.wisdomLevel, t)).join("");
|
|
9742
|
-
return `<div class="axon-core-tree-layout"><section class="axon-core-elevation-ledger"><header class="axon-core-elevation-ledger-header"><div><span>${this.i18n.translate("coreRosterWisdom")}</span><strong>${e.profile.wisdomLevel}/${e.wisdomTrack.length}</strong></div><div class="axon-core-elevation-legend"><span class="is-complete">${this.i18n.translate("coreRosterCurrent")}</span><span class="is-next">${this.i18n.translate("coreRosterNext")}</span><span class="is-locked">${this.i18n.translate("coreRosterLocked")}</span></div></header><div class="axon-core-elevation-list">${a}</div></section></div>`;
|
|
9784
|
+
return `<div class="axon-core-tree-layout"><section class="axon-core-elevation-ledger"><header class="axon-core-elevation-ledger-header"><div><span>${this.i18n.translate("coreRosterWisdom")}</span><strong>${e.profile.wisdomLevel}/${e.wisdomTrack.length}</strong></div><div class="axon-core-elevation-legend"><span class="is-complete">${this.i18n.translate("coreRosterCurrent")}</span><span class="is-next">${this.i18n.translate("coreRosterNext")}</span><span class="is-locked">${this.i18n.translate("coreRosterLocked")}</span></div></header><div class="axon-core-elevation-list-shell"><button type="button" class="axon-core-elevation-scroll-button axon-core-elevation-scroll-up" data-elevation-scroll="up" aria-label="${this.i18n.translate("coreRosterScrollUp")}" hidden>${this.renderScrollArrow("up")}</button><div class="axon-core-elevation-list">${a}</div><button type="button" class="axon-core-elevation-scroll-button axon-core-elevation-scroll-down" data-elevation-scroll="down" aria-label="${this.i18n.translate("coreRosterScrollDown")}" hidden>${this.renderScrollArrow("down")}</button></div></section></div>`;
|
|
9785
|
+
}
|
|
9786
|
+
renderScrollArrow(e) {
|
|
9787
|
+
return `<svg viewBox="0 0 24 24" aria-hidden="true"><path d="m5 9 7 7 7-7" transform="${e === "up" ? "rotate(180 12 12)" : ""}"/></svg>`;
|
|
9743
9788
|
}
|
|
9744
9789
|
renderElevationRow(e, t, a, i) {
|
|
9745
9790
|
const o = this.getElevationRowState(t, a), n = this.getElevationRowStateLabel(o), s = o === "next" ? i : 0;
|
|
@@ -9810,7 +9855,9 @@ class Fa {
|
|
|
9810
9855
|
}
|
|
9811
9856
|
render() {
|
|
9812
9857
|
const e = this.roster.getSnapshots(), t = this.previewCoreId ? this.roster.getSnapshot(this.previewCoreId) : this.roster.getSelectedCore();
|
|
9813
|
-
this.stopPreview()
|
|
9858
|
+
this.stopPreview();
|
|
9859
|
+
const a = this.view === "elevations";
|
|
9860
|
+
this.container.classList.toggle("axon-core-roster-elevations-view", a), this.container.innerHTML = this.view === "elevations" ? this.renderElevationsMarkup(t) : this.renderMarkup(e, t), this.bindEvents(), this.isOpen && this.startPreview();
|
|
9814
9861
|
}
|
|
9815
9862
|
renderMarkup(e, t) {
|
|
9816
9863
|
return `<div class="axon-core-roster-shell axon-core-roster-immersive-shell axon-genetic-memory-shell">${this.renderHeader()}<p class="axon-core-roster-hint">${this.i18n.translate("coreRosterHint")}</p><div class="axon-core-roster-stage"><nav class="axon-core-roster-selector" aria-label="${this.i18n.translate("coreRosterTitle")}"><div class="axon-core-selector-heading"><span>${this.i18n.translate("coreRosterCombatProfile")}</span><small>${this.i18n.translate("coreRosterSelected")}</small></div><div class="axon-core-selector-list">${e.map((a, i) => this.renderer.renderSelector(a, i)).join("")}</div></nav><main class="axon-core-showcase" data-accent="${t.accent}">${this.renderer.renderShowcase(t)}</main></div></div>`;
|
|
@@ -9824,7 +9871,28 @@ class Fa {
|
|
|
9824
9871
|
bindEvents() {
|
|
9825
9872
|
this.container.querySelector("#axon-core-roster-close")?.addEventListener("click", this.onClose), this.container.querySelectorAll("[data-core-action]").forEach((e) => {
|
|
9826
9873
|
e.addEventListener("click", () => this.handleCoreAction(e));
|
|
9827
|
-
});
|
|
9874
|
+
}), this.bindElevationScrollControls();
|
|
9875
|
+
}
|
|
9876
|
+
bindElevationScrollControls() {
|
|
9877
|
+
const e = this.container.querySelector(".axon-core-elevation-list");
|
|
9878
|
+
e && (this.container.querySelectorAll("[data-elevation-scroll]").forEach((t) => {
|
|
9879
|
+
t.addEventListener("click", () => this.scrollElevations(e, t.dataset.elevationScroll === "up" ? -1 : 1));
|
|
9880
|
+
}), e.addEventListener("scroll", () => this.updateElevationScrollControls(e)), this.focusCurrentElevation(e), this.updateElevationScrollControls(e));
|
|
9881
|
+
}
|
|
9882
|
+
focusCurrentElevation(e) {
|
|
9883
|
+
const t = [...e.querySelectorAll(".axon-core-elevation-row")], a = e.querySelector(".axon-core-elevation-next") ?? t[t.length - 1];
|
|
9884
|
+
if (!a) return;
|
|
9885
|
+
const i = a.offsetTop - Math.max(0, (e.clientHeight - a.offsetHeight) / 2);
|
|
9886
|
+
e.scrollTop = Math.max(0, i);
|
|
9887
|
+
}
|
|
9888
|
+
scrollElevations(e, t) {
|
|
9889
|
+
e.scrollBy({ top: t * Math.max(120, e.clientHeight * 0.72), behavior: "smooth" });
|
|
9890
|
+
}
|
|
9891
|
+
updateElevationScrollControls(e) {
|
|
9892
|
+
const t = [...this.container.querySelectorAll("[data-elevation-scroll]")], a = t.find((n) => n.dataset.elevationScroll === "up"), i = t.find((n) => n.dataset.elevationScroll === "down");
|
|
9893
|
+
if (!a || !i) return;
|
|
9894
|
+
const o = e.scrollHeight > e.clientHeight + 2;
|
|
9895
|
+
a.hidden = !o, i.hidden = !o, a.disabled = e.scrollTop <= 2, i.disabled = e.scrollTop + e.clientHeight >= e.scrollHeight - 2;
|
|
9828
9896
|
}
|
|
9829
9897
|
handleCoreAction(e) {
|
|
9830
9898
|
const t = e.dataset.coreAction;
|
|
@@ -10179,7 +10247,7 @@ class Va {
|
|
|
10179
10247
|
return `
|
|
10180
10248
|
<div class="axon-title-halo">
|
|
10181
10249
|
<h1 class="axon-title">${this.i18n.translate("title")}</h1>
|
|
10182
|
-
<p class="axon-version-mark">v0.
|
|
10250
|
+
<p class="axon-version-mark">v0.40.0</p>
|
|
10183
10251
|
<button id="axon-start-btn" class="axon-start-button">${this.i18n.translate("startButton")}</button>
|
|
10184
10252
|
${this.renderSecondaryActions()}
|
|
10185
10253
|
</div>
|
|
@@ -10513,11 +10581,11 @@ class L {
|
|
|
10513
10581
|
this.accentColor = null, this.eyeProfile = "none", this.visualProfile = "default", this.variantState = {}, this.variantTrail = [], this.strategy = null;
|
|
10514
10582
|
}
|
|
10515
10583
|
}
|
|
10516
|
-
const
|
|
10584
|
+
const S = (r, e, t) => r?.[e] ?? t, Ee = (r, e) => r?.[e] ?? null, Ja = (r, e) => ({
|
|
10517
10585
|
...r.behavior,
|
|
10518
10586
|
...e?.behaviorOverrides ?? {}
|
|
10519
10587
|
}), Xa = (r, e) => e.synergyKey ?? e.behavior.synergyKey?.(r) ?? e.id, Qa = (r) => r.initialRotation === "random" ? Math.random() * Math.PI * 2 : 0, ei = (r, e) => {
|
|
10520
|
-
const t =
|
|
10588
|
+
const t = S(e, "canBeManipulatedByCore", !0);
|
|
10521
10589
|
return {
|
|
10522
10590
|
variantId: Ee(e, "id"),
|
|
10523
10591
|
variantRendererId: Ee(e, "rendererId"),
|
|
@@ -10525,15 +10593,15 @@ const b = (r, e, t) => r?.[e] ?? t, Ee = (r, e) => r?.[e] ?? null, Ja = (r, e) =
|
|
|
10525
10593
|
isGrabbed: !1,
|
|
10526
10594
|
isThrown: !1,
|
|
10527
10595
|
canBeManipulatedByCore: t,
|
|
10528
|
-
canBeDamagedByCore:
|
|
10529
|
-
canBeKilledByCoreRepelWave:
|
|
10596
|
+
canBeDamagedByCore: S(e, "canBeDamagedByCore", !0),
|
|
10597
|
+
canBeKilledByCoreRepelWave: S(e, "canBeKilledByCoreRepelWave", !1),
|
|
10530
10598
|
isGrabbable: !!r.canBeGrabbed && t,
|
|
10531
|
-
variantPulseInterval:
|
|
10599
|
+
variantPulseInterval: S(e, "pulseInterval", 0),
|
|
10532
10600
|
variantPulseTimer: 0,
|
|
10533
|
-
blocksFrontImpacts:
|
|
10534
|
-
frontCoverageArc:
|
|
10535
|
-
frontCoverageRadiusMultiplier:
|
|
10536
|
-
visualProfile:
|
|
10601
|
+
blocksFrontImpacts: S(e, "blocksFrontImpacts", !1),
|
|
10602
|
+
frontCoverageArc: S(e, "frontCoverageArc", 0),
|
|
10603
|
+
frontCoverageRadiusMultiplier: S(e, "frontCoverageRadiusMultiplier", 1),
|
|
10604
|
+
visualProfile: S(e, "visualProfile", "default"),
|
|
10537
10605
|
variantState: {},
|
|
10538
10606
|
variantTrail: []
|
|
10539
10607
|
};
|
|
@@ -10560,7 +10628,7 @@ class ti {
|
|
|
10560
10628
|
Object.assign(e, ei(t, a));
|
|
10561
10629
|
}
|
|
10562
10630
|
applyDefinition(e, t, a) {
|
|
10563
|
-
e.radius = t.radius, e.hitRadiusPadding = t.hitRadiusPadding ?? 0.2, e.color =
|
|
10631
|
+
e.radius = t.radius, e.hitRadiusPadding = t.hitRadiusPadding ?? 0.2, e.color = S(a, "color", t.color), e.accentColor = Ee(a, "accentColor"), e.eyeProfile = S(a, "eyeProfile", t.eyeProfile), e.strategy = t.impactStrategyFactory?.() ?? null, e.behavior = Ja(t, a), e.synergyKey = Xa(e, t), e.maxSpeed = t.maxSpeed * S(a, "maxSpeedMultiplier", 1), e.rotation = Qa(t);
|
|
10564
10632
|
}
|
|
10565
10633
|
applyMotion(e, t, a, i) {
|
|
10566
10634
|
e.position = { ...t };
|
|
@@ -11079,7 +11147,7 @@ const ii = (r) => ({
|
|
|
11079
11147
|
const e = r.getConfig().cluster;
|
|
11080
11148
|
r.updateConfig({ cluster: { ...e, hasHoming: !0 } });
|
|
11081
11149
|
}
|
|
11082
|
-
}),
|
|
11150
|
+
}), Si = (r) => ({
|
|
11083
11151
|
id: "piercer_aoe",
|
|
11084
11152
|
titleKey: "pu_piercer_aoe_title",
|
|
11085
11153
|
descKey: "pu_piercer_aoe_desc",
|
|
@@ -11093,7 +11161,7 @@ const ii = (r) => ({
|
|
|
11093
11161
|
const e = r.getConfig().piercer;
|
|
11094
11162
|
r.updateConfig({ piercer: { ...e, terminalAoERadius: (e.terminalAoERadius || 0) + 160 } });
|
|
11095
11163
|
}
|
|
11096
|
-
}),
|
|
11164
|
+
}), bi = (r) => ({
|
|
11097
11165
|
id: "piercer_homing",
|
|
11098
11166
|
requiredUnlockId: "piercer_homing",
|
|
11099
11167
|
requiredEnemyId: "piercer",
|
|
@@ -11131,8 +11199,8 @@ const ii = (r) => ({
|
|
|
11131
11199
|
vi(r),
|
|
11132
11200
|
fi(r),
|
|
11133
11201
|
xi(r),
|
|
11134
|
-
bi(r),
|
|
11135
11202
|
Si(r),
|
|
11203
|
+
bi(r),
|
|
11136
11204
|
Ci(r)
|
|
11137
11205
|
], Ii = (r) => [
|
|
11138
11206
|
...ui(r),
|
|
@@ -12399,17 +12467,17 @@ function xo(r) {
|
|
|
12399
12467
|
const e = /* @__PURE__ */ new Set();
|
|
12400
12468
|
for (const [t, a] of Object.entries(r))
|
|
12401
12469
|
for (const i of a)
|
|
12402
|
-
|
|
12470
|
+
So(i.id, t, i.condition.target, e);
|
|
12403
12471
|
return r;
|
|
12404
12472
|
}
|
|
12405
|
-
function
|
|
12473
|
+
function So(r, e, t, a) {
|
|
12406
12474
|
const i = `${e}:${r}`;
|
|
12407
12475
|
if (!r || a.has(i)) throw new Error(`Duplicate or empty ${e} objective: ${r}`);
|
|
12408
12476
|
if (t <= 0 || !Number.isFinite(t))
|
|
12409
12477
|
throw new Error(`Invalid ${e} objective target: ${r}`);
|
|
12410
12478
|
a.add(i);
|
|
12411
12479
|
}
|
|
12412
|
-
function
|
|
12480
|
+
function bo(r, e) {
|
|
12413
12481
|
const t = Co(e);
|
|
12414
12482
|
if (!r) return t;
|
|
12415
12483
|
try {
|
|
@@ -12494,7 +12562,7 @@ function Z(r) {
|
|
|
12494
12562
|
function ue(r) {
|
|
12495
12563
|
return Object.fromEntries(r);
|
|
12496
12564
|
}
|
|
12497
|
-
const wo = 2, qe = 1, ko = 480 * 60 * 1e3,
|
|
12565
|
+
const wo = 2, qe = 1, ko = 480 * 60 * 1e3, b = () => ({
|
|
12498
12566
|
progress: 0,
|
|
12499
12567
|
completed: !1,
|
|
12500
12568
|
claimed: !1,
|
|
@@ -12547,7 +12615,7 @@ class Oo {
|
|
|
12547
12615
|
return (e ? this.getDefinitions(e) : [...this.definitions.missions, ...this.definitions.challenges, ...this.definitions.achievements]).filter((a) => e !== "mission" || this.activeMissionIds.includes(a.id)).map((a) => this.getSnapshot(a.kind, a.id));
|
|
12548
12616
|
}
|
|
12549
12617
|
getSnapshot(e, t) {
|
|
12550
|
-
const a = this.getDefinition(e, t), i = this.progress.get(e).get(t) ??
|
|
12618
|
+
const a = this.getDefinition(e, t), i = this.progress.get(e).get(t) ?? b(), o = {
|
|
12551
12619
|
...i,
|
|
12552
12620
|
kind: e,
|
|
12553
12621
|
id: t,
|
|
@@ -12560,7 +12628,7 @@ class Oo {
|
|
|
12560
12628
|
return n.rules !== void 0 && (o.rules = n.rules), n.preset !== void 0 && (o.preset = n.preset), n.requiredCoreId !== void 0 && (o.requiredCoreId = n.requiredCoreId), n.providerId !== void 0 && (o.providerId = n.providerId), o;
|
|
12561
12629
|
}
|
|
12562
12630
|
installMission(e, t = Date.now()) {
|
|
12563
|
-
this.missionDefinitions.set(e.id, e), this.progress.get("mission").set(e.id,
|
|
12631
|
+
this.missionDefinitions.set(e.id, e), this.progress.get("mission").set(e.id, b()), this.activeMissionIds = [e.id], this.missionAssignedAt = t, this.persist(), this.notify({ kind: "mission", id: e.id, type: "rotated" });
|
|
12564
12632
|
}
|
|
12565
12633
|
canRerollMission(e = Date.now()) {
|
|
12566
12634
|
return !!(this.getSnapshots("mission")[0] && (this.missionRerolls > 0 || e - this.missionAssignedAt >= ko));
|
|
@@ -12583,13 +12651,13 @@ class Oo {
|
|
|
12583
12651
|
}
|
|
12584
12652
|
startChallenge(e, t) {
|
|
12585
12653
|
if (!this.canStartChallenge(e, t)) return !1;
|
|
12586
|
-
const a = this.progress.get("challenge").get(e) ??
|
|
12587
|
-
return this.progress.get("challenge").set(e, { ...
|
|
12654
|
+
const a = this.progress.get("challenge").get(e) ?? b();
|
|
12655
|
+
return this.progress.get("challenge").set(e, { ...b(), claims: a.claims }), this.activeChallengeId = e, this.persist(), this.notify({ kind: "challenge", id: e, type: "challenge-started" }), !0;
|
|
12588
12656
|
}
|
|
12589
12657
|
cancelActiveChallenge() {
|
|
12590
12658
|
if (!this.activeChallengeId) return;
|
|
12591
|
-
const e = this.activeChallengeId, t = this.progress.get("challenge").get(e) ??
|
|
12592
|
-
t.completed || (this.progress.get("challenge").set(e, { ...
|
|
12659
|
+
const e = this.activeChallengeId, t = this.progress.get("challenge").get(e) ?? b();
|
|
12660
|
+
t.completed || (this.progress.get("challenge").set(e, { ...b(), claims: t.claims }), this.notify({ kind: "challenge", id: e, type: "challenge-failed" })), this.activeChallengeId = null, this.persist();
|
|
12593
12661
|
}
|
|
12594
12662
|
getDefinitions(e) {
|
|
12595
12663
|
return Mo(this.definitions, this.missionDefinitions, e);
|
|
@@ -12626,10 +12694,10 @@ class Oo {
|
|
|
12626
12694
|
hydrateDefaults() {
|
|
12627
12695
|
for (const e of ["mission", "challenge", "achievement"])
|
|
12628
12696
|
for (const t of this.getDefinitions(e))
|
|
12629
|
-
this.progress.get(e).set(t.id,
|
|
12697
|
+
this.progress.get(e).set(t.id, b());
|
|
12630
12698
|
}
|
|
12631
12699
|
load() {
|
|
12632
|
-
const e =
|
|
12700
|
+
const e = bo(this.storage, this.activeMissionIds);
|
|
12633
12701
|
e.activeMissionDefinition && this.registerStoredMission(e.activeMissionDefinition), this.loadProgress("mission", e.missions), this.loadProgress("challenge", e.challenges), this.loadProgress("achievement", e.achievements), this.activeMissionIds = this.getKnownMissionIds(e.activeMissionIds), this.missionAssignedAt = e.missionAssignedAt ?? Date.now(), this.missionRerolls = typeof e.missionRerolls == "number" ? Math.max(0, Math.floor(e.missionRerolls)) : 1, this.activeChallengeId = null, this.unlockedRewardIds = new Set(e.unlockedRewardIds), e.version !== wo && this.persist();
|
|
12634
12702
|
}
|
|
12635
12703
|
getKnownMissionIds(e) {
|
|
@@ -12637,7 +12705,7 @@ class Oo {
|
|
|
12637
12705
|
return a.length > 0 ? a : this.definitions.missions.slice(0, qe).map((i) => i.id);
|
|
12638
12706
|
}
|
|
12639
12707
|
registerStoredMission(e) {
|
|
12640
|
-
this.missionDefinitions.set(e.id, e), this.progress.get("mission").set(e.id,
|
|
12708
|
+
this.missionDefinitions.set(e.id, e), this.progress.get("mission").set(e.id, b());
|
|
12641
12709
|
}
|
|
12642
12710
|
loadProgress(e, t) {
|
|
12643
12711
|
const a = this.progress.get(e);
|
|
@@ -12676,14 +12744,14 @@ class jo extends Oo {
|
|
|
12676
12744
|
}
|
|
12677
12745
|
claim(e, t) {
|
|
12678
12746
|
if (e !== "mission") return !1;
|
|
12679
|
-
const a = this.getDefinition(e, t), i = this.progress.get(e).get(t) ??
|
|
12747
|
+
const a = this.getDefinition(e, t), i = this.progress.get(e).get(t) ?? b();
|
|
12680
12748
|
if (!i.completed || i.claimed) return !1;
|
|
12681
12749
|
for (const n of a.rewards) this.applyReward(n);
|
|
12682
12750
|
const o = i.claims + 1;
|
|
12683
12751
|
return this.progress.get(e).set(t, No(e, a, i, o)), this.persist(), this.notify({ kind: e, id: t, type: "claimed" }), !0;
|
|
12684
12752
|
}
|
|
12685
12753
|
debugComplete(e, t) {
|
|
12686
|
-
const a = this.getDefinition(e, t), i = this.progress.get(e), o = i.get(t) ??
|
|
12754
|
+
const a = this.getDefinition(e, t), i = this.progress.get(e), o = i.get(t) ?? b();
|
|
12687
12755
|
return i.set(t, {
|
|
12688
12756
|
...o,
|
|
12689
12757
|
progress: a.condition.target,
|
|
@@ -12698,7 +12766,7 @@ class jo extends Oo {
|
|
|
12698
12766
|
for (const i of t) this.updateDefinition(i, a);
|
|
12699
12767
|
}
|
|
12700
12768
|
updateDefinition(e, t) {
|
|
12701
|
-
const a = this.progress.get(e.kind), i = a.get(e.id) ??
|
|
12769
|
+
const a = this.progress.get(e.kind), i = a.get(e.id) ?? b();
|
|
12702
12770
|
if (i.completed || !_o(e.condition, t)) return;
|
|
12703
12771
|
const o = Math.max(1, Math.floor(t.amount ?? 1)), n = Lo(e.condition.event, i.progress, o), s = n >= e.condition.target;
|
|
12704
12772
|
a.set(e.id, {
|
|
@@ -13643,7 +13711,7 @@ const rn = (r, e, t) => e !== r && !t.includes(e) && e.active && !e.isGrabbed &&
|
|
|
13643
13711
|
const t = e.right - e.left, a = e.bottom - e.top, i = gt(e);
|
|
13644
13712
|
let o = Me(r) * i;
|
|
13645
13713
|
return o <= t ? { x: e.left + o, y: e.top } : (o -= t, o <= a ? { x: e.right, y: e.top + o } : (o -= a, o <= t ? { x: e.right - o, y: e.bottom } : (o -= t, { x: e.left, y: e.bottom - o })));
|
|
13646
|
-
},
|
|
13714
|
+
}, Sn = (r, e) => {
|
|
13647
13715
|
const t = e.right - e.left, a = e.bottom - e.top;
|
|
13648
13716
|
return [
|
|
13649
13717
|
{
|
|
@@ -13663,14 +13731,14 @@ const rn = (r, e, t) => e !== r && !t.includes(e) && e.active && !e.isGrabbed &&
|
|
|
13663
13731
|
progress: 0.75 + (1 - Math.max(0, Math.min(1, (r.y - e.top) / a))) * 0.25
|
|
13664
13732
|
}
|
|
13665
13733
|
].reduce((o, n) => n.distance < o.distance ? n : o).progress;
|
|
13666
|
-
},
|
|
13734
|
+
}, bn = (r, e) => {
|
|
13667
13735
|
const t = Me(r);
|
|
13668
13736
|
return t < 0.25 ? 0 : t < 0.5 ? Math.PI / 2 : t < 0.75 ? Math.PI : -Math.PI / 2;
|
|
13669
13737
|
}, Cn = (r, e) => {
|
|
13670
13738
|
const t = r.variantState;
|
|
13671
13739
|
if (t.initialized === 1) return;
|
|
13672
13740
|
const a = mt(r, e.width, e.height);
|
|
13673
|
-
t.initialized = 1, t.phase = 0, t.progress =
|
|
13741
|
+
t.initialized = 1, t.phase = 0, t.progress = Sn(r.position, a), t.direction = Math.random() < 0.5 ? 1 : -1, t.remaining = 0.25, t.perimeterSpeed = 520, t.chargeSpeed = 560;
|
|
13674
13742
|
}, An = (r, e) => {
|
|
13675
13743
|
const t = r.variantState;
|
|
13676
13744
|
t.phase = 1;
|
|
@@ -13683,7 +13751,7 @@ const rn = (r, e, t) => e !== r && !t.includes(e) && e.active && !e.isGrabbed &&
|
|
|
13683
13751
|
return;
|
|
13684
13752
|
}
|
|
13685
13753
|
r.position = xn(t.progress, a), r.velocity = { x: 0, y: 0 };
|
|
13686
|
-
const o =
|
|
13754
|
+
const o = bn(t.progress);
|
|
13687
13755
|
r.rotation = (t.direction ?? 1) > 0 ? o : o + Math.PI;
|
|
13688
13756
|
}, Rn = (r, e) => {
|
|
13689
13757
|
r.isGrabbed || r.isThrown || (Cn(r, e), r.variantState.phase === 0 && In(r, e));
|
|
@@ -14077,7 +14145,7 @@ const rn = (r, e, t) => e !== r && !t.includes(e) && e.active && !e.isGrabbed &&
|
|
|
14077
14145
|
canBeDamagedByCore: !0,
|
|
14078
14146
|
canBeKilledByCoreRepelWave: !1
|
|
14079
14147
|
}
|
|
14080
|
-
],
|
|
14148
|
+
], Se = new Fo({
|
|
14081
14149
|
enemies: Kn,
|
|
14082
14150
|
variants: [...Wn, ...qn, ...$n, ...Yn, ...Fn, ...Zn],
|
|
14083
14151
|
areas: [
|
|
@@ -14156,7 +14224,7 @@ const rn = (r, e, t) => e !== r && !t.includes(e) && e.active && !e.isGrabbed &&
|
|
|
14156
14224
|
],
|
|
14157
14225
|
tutorials: Gn
|
|
14158
14226
|
});
|
|
14159
|
-
|
|
14227
|
+
Se.validate();
|
|
14160
14228
|
class Jn {
|
|
14161
14229
|
canvas;
|
|
14162
14230
|
context;
|
|
@@ -14642,19 +14710,19 @@ class vs {
|
|
|
14642
14710
|
}
|
|
14643
14711
|
function fs(r, e) {
|
|
14644
14712
|
const t = new L("mission-specimen");
|
|
14645
|
-
return xs(t, r),
|
|
14713
|
+
return xs(t, r), Ss(t, r, e), t.behavior = bs(r.behavior, e?.behaviorOverrides), t.position = { x: 0, y: 0 }, t.active = !0, t;
|
|
14646
14714
|
}
|
|
14647
14715
|
function xs(r, e) {
|
|
14648
14716
|
r.type = e.id, r.radius = e.radius;
|
|
14649
14717
|
}
|
|
14650
|
-
function
|
|
14718
|
+
function Ss(r, e, t) {
|
|
14651
14719
|
if (t) {
|
|
14652
14720
|
r.variantId = t.id, r.variantRendererId = t.rendererId ?? null, r.color = t.color ?? e.color, r.accentColor = t.accentColor ?? null, r.eyeProfile = t.eyeProfile ?? e.eyeProfile, r.visualProfile = t.visualProfile ?? "default";
|
|
14653
14721
|
return;
|
|
14654
14722
|
}
|
|
14655
14723
|
r.variantId = null, r.variantRendererId = null, r.color = e.color, r.accentColor = null, r.eyeProfile = e.eyeProfile, r.visualProfile = "default";
|
|
14656
14724
|
}
|
|
14657
|
-
function
|
|
14725
|
+
function bs(r, e) {
|
|
14658
14726
|
return { ...r, ...e ?? {} };
|
|
14659
14727
|
}
|
|
14660
14728
|
function Cs(r, e) {
|
|
@@ -14901,8 +14969,8 @@ function Ps(r) {
|
|
|
14901
14969
|
}
|
|
14902
14970
|
});
|
|
14903
14971
|
}
|
|
14904
|
-
const Ms =
|
|
14905
|
-
class
|
|
14972
|
+
const Ms = 7600;
|
|
14973
|
+
class Ds {
|
|
14906
14974
|
container;
|
|
14907
14975
|
i18n;
|
|
14908
14976
|
onClose;
|
|
@@ -14916,9 +14984,7 @@ class Os {
|
|
|
14916
14984
|
}
|
|
14917
14985
|
show(e, t) {
|
|
14918
14986
|
this.stopTimer(), this.titleKey = e, this.descriptionKey = t, this.phase = "blackout", this.isOpen = !0, this.container.style.display = "flex", this.render(), this.timer = window.setTimeout(() => {
|
|
14919
|
-
this.phase = "
|
|
14920
|
-
this.phase = "final", this.render();
|
|
14921
|
-
}, Ds);
|
|
14987
|
+
this.phase = "final", this.render();
|
|
14922
14988
|
}, Ms);
|
|
14923
14989
|
}
|
|
14924
14990
|
hide() {
|
|
@@ -14934,20 +15000,10 @@ class Os {
|
|
|
14934
15000
|
!this.titleKey || !this.descriptionKey || (this.container.dataset.phase = this.phase, this.container.innerHTML = `<div class="axon-challenge-completion-scene">
|
|
14935
15001
|
<div class="axon-challenge-completion-void"></div>
|
|
14936
15002
|
<div class="axon-challenge-completion-stars" aria-hidden="true"></div>
|
|
14937
|
-
<div class="axon-challenge-completion-echo axon-challenge-echo-one" aria-hidden="true"></div>
|
|
14938
|
-
<div class="axon-challenge-completion-echo axon-challenge-echo-two" aria-hidden="true"></div>
|
|
14939
15003
|
<div class="axon-challenge-completion-announcement">
|
|
14940
|
-
<span class="axon-challenge-completion-kicker">${this.i18n.translate("
|
|
15004
|
+
<span class="axon-challenge-completion-kicker">${this.i18n.translate("challengeSingular")}</span>
|
|
14941
15005
|
<strong>${this.i18n.translate("objectiveCompleted")}</strong>
|
|
14942
15006
|
</div>
|
|
14943
|
-
<div class="axon-challenge-completion-relic" aria-hidden="true">
|
|
14944
|
-
<span class="axon-challenge-completion-orbit axon-challenge-orbit-one"></span>
|
|
14945
|
-
<span class="axon-challenge-completion-orbit axon-challenge-orbit-two"></span>
|
|
14946
|
-
<span class="axon-challenge-completion-core"></span>
|
|
14947
|
-
<span class="axon-challenge-completion-blade"></span>
|
|
14948
|
-
<span class="axon-challenge-completion-guard"></span>
|
|
14949
|
-
<span class="axon-challenge-completion-hilt"></span>
|
|
14950
|
-
</div>
|
|
14951
15007
|
<div class="axon-challenge-completion-card">
|
|
14952
15008
|
<span class="axon-challenge-completion-card-kicker">${this.i18n.translate("objectiveCompleted")}</span>
|
|
14953
15009
|
<h2>${this.i18n.translate(this.titleKey)}</h2>
|
|
@@ -14960,7 +15016,7 @@ class Os {
|
|
|
14960
15016
|
this.timer !== null && window.clearTimeout(this.timer), this.timer = null;
|
|
14961
15017
|
}
|
|
14962
15018
|
}
|
|
14963
|
-
class
|
|
15019
|
+
class Os {
|
|
14964
15020
|
container;
|
|
14965
15021
|
i18n;
|
|
14966
15022
|
onRetry;
|
|
@@ -15002,7 +15058,7 @@ class Ns {
|
|
|
15002
15058
|
}), this.container.querySelector("[data-challenge-exit]")?.addEventListener("click", this.onExit));
|
|
15003
15059
|
}
|
|
15004
15060
|
}
|
|
15005
|
-
class
|
|
15061
|
+
class Ns {
|
|
15006
15062
|
container;
|
|
15007
15063
|
i18n;
|
|
15008
15064
|
timeoutId = null;
|
|
@@ -15021,7 +15077,7 @@ class Ls {
|
|
|
15021
15077
|
this.timeoutId !== null && window.clearTimeout(this.timeoutId), this.container.remove();
|
|
15022
15078
|
}
|
|
15023
15079
|
}
|
|
15024
|
-
class
|
|
15080
|
+
class Ls {
|
|
15025
15081
|
container;
|
|
15026
15082
|
i18n;
|
|
15027
15083
|
roster;
|
|
@@ -15107,7 +15163,7 @@ class _s {
|
|
|
15107
15163
|
this.animationFrame !== null && window.cancelAnimationFrame(this.animationFrame), this.animationFrame = null;
|
|
15108
15164
|
}
|
|
15109
15165
|
}
|
|
15110
|
-
class
|
|
15166
|
+
class _s {
|
|
15111
15167
|
constructor(e) {
|
|
15112
15168
|
this.map = e, e.addEventListener("pointerdown", this.handlePointerDown), e.addEventListener("pointermove", this.handlePointerMove), e.addEventListener("pointerup", this.handlePointerUp), e.addEventListener("pointercancel", this.handlePointerUp);
|
|
15113
15169
|
}
|
|
@@ -15133,7 +15189,7 @@ class js {
|
|
|
15133
15189
|
};
|
|
15134
15190
|
}
|
|
15135
15191
|
const me = 22;
|
|
15136
|
-
class
|
|
15192
|
+
class js {
|
|
15137
15193
|
constructor(e, t, a, i) {
|
|
15138
15194
|
this.container = e, this.i18n = t, this.memory = a, this.onNodeSelected = i;
|
|
15139
15195
|
}
|
|
@@ -15200,7 +15256,7 @@ class Bs {
|
|
|
15200
15256
|
${i}`, a.addEventListener("click", () => this.onNodeSelected(e.id)), a;
|
|
15201
15257
|
}
|
|
15202
15258
|
}
|
|
15203
|
-
class
|
|
15259
|
+
class Bs {
|
|
15204
15260
|
container;
|
|
15205
15261
|
i18n;
|
|
15206
15262
|
memory;
|
|
@@ -15214,14 +15270,14 @@ class Hs {
|
|
|
15214
15270
|
this.isOpen && e.key === "Escape" && (e.preventDefault(), this.hide(), this.onClose());
|
|
15215
15271
|
};
|
|
15216
15272
|
constructor(e, t, a, i) {
|
|
15217
|
-
this.i18n = t, this.memory = a, this.onClose = i, this.container = document.createElement("section"), this.container.className = "axon-genetic-memory", this.container.setAttribute("aria-label", this.i18n.translate("geneticMemoryTitle")), this.mapRenderer = new
|
|
15273
|
+
this.i18n = t, this.memory = a, this.onClose = i, this.container = document.createElement("section"), this.container.className = "axon-genetic-memory", this.container.setAttribute("aria-label", this.i18n.translate("geneticMemoryTitle")), this.mapRenderer = new js(this.container, this.i18n, this.memory, (o) => {
|
|
15218
15274
|
this.selectedNodeId = o, this.renderDetail();
|
|
15219
15275
|
}), this.unsubscribe = a.subscribe(() => this.render()), e.appendChild(this.container), window.addEventListener("keydown", this.handleKeyDown), this.render();
|
|
15220
15276
|
}
|
|
15221
15277
|
render() {
|
|
15222
15278
|
this.mapPan?.destroy(), this.container.innerHTML = this.renderShell(), this.container.querySelector("#axon-genetic-close")?.addEventListener("click", this.onClose), this.mapRenderer.render(this.memory.getNodes(), this.isOpen);
|
|
15223
15279
|
const e = this.container.querySelector(".axon-genetic-map");
|
|
15224
|
-
this.mapPan = e ? new
|
|
15280
|
+
this.mapPan = e ? new _s(e) : null, this.renderDetail();
|
|
15225
15281
|
}
|
|
15226
15282
|
renderShell() {
|
|
15227
15283
|
return `<div class="axon-genetic-memory-shell">
|
|
@@ -15313,11 +15369,11 @@ class Hs {
|
|
|
15313
15369
|
return e === "powerup" ? this.i18n.translate("geneticTypePowerup") : e === "passive" ? this.i18n.translate("geneticTypePassive") : e === "enemy" ? this.i18n.translate("geneticTypeEnemy") : this.i18n.translate("geneticTypeCore");
|
|
15314
15370
|
}
|
|
15315
15371
|
}
|
|
15316
|
-
function
|
|
15317
|
-
r.coreRunSummaryOverlay =
|
|
15372
|
+
function Hs(r) {
|
|
15373
|
+
r.coreRunSummaryOverlay = Us(r), r.geneticMemoryOverlay = zs(r), r.codexToast = new Ns(r.container, r.i18n), r.challengeResultOverlay = Ks(r), r.challengeCompletionCinematic = Fs(r);
|
|
15318
15374
|
}
|
|
15319
|
-
function
|
|
15320
|
-
return new
|
|
15375
|
+
function Us(r) {
|
|
15376
|
+
return new Ls({
|
|
15321
15377
|
parent: r.container,
|
|
15322
15378
|
i18n: r.i18n,
|
|
15323
15379
|
roster: r.coreRoster,
|
|
@@ -15329,13 +15385,13 @@ function zs(r) {
|
|
|
15329
15385
|
}
|
|
15330
15386
|
});
|
|
15331
15387
|
}
|
|
15332
|
-
function
|
|
15333
|
-
return new
|
|
15388
|
+
function zs(r) {
|
|
15389
|
+
return new Bs(r.container, r.i18n, r.geneticMemory, () => {
|
|
15334
15390
|
r.geneticMemoryOverlay.hide(), r.showStartMenu();
|
|
15335
15391
|
});
|
|
15336
15392
|
}
|
|
15337
|
-
function
|
|
15338
|
-
return new
|
|
15393
|
+
function Ks(r) {
|
|
15394
|
+
return new Os({
|
|
15339
15395
|
parent: r.container,
|
|
15340
15396
|
i18n: r.i18n,
|
|
15341
15397
|
onRetry: (e) => {
|
|
@@ -15346,8 +15402,8 @@ function Fs(r) {
|
|
|
15346
15402
|
}
|
|
15347
15403
|
});
|
|
15348
15404
|
}
|
|
15349
|
-
function
|
|
15350
|
-
return new
|
|
15405
|
+
function Fs(r) {
|
|
15406
|
+
return new Ds({
|
|
15351
15407
|
parent: r.container,
|
|
15352
15408
|
i18n: r.i18n,
|
|
15353
15409
|
onClose: () => {
|
|
@@ -15355,23 +15411,23 @@ function Gs(r) {
|
|
|
15355
15411
|
}
|
|
15356
15412
|
});
|
|
15357
15413
|
}
|
|
15358
|
-
function
|
|
15414
|
+
function Gs(r, e) {
|
|
15359
15415
|
({
|
|
15360
|
-
"completed:achievement": () =>
|
|
15361
|
-
"completed:challenge": () =>
|
|
15362
|
-
"challenge-failed:challenge": () =>
|
|
15416
|
+
"completed:achievement": () => Vs(r, e.id),
|
|
15417
|
+
"completed:challenge": () => Ws(r, e.id),
|
|
15418
|
+
"challenge-failed:challenge": () => qs(r, e.id),
|
|
15363
15419
|
"claimed:mission": () => r.refreshGeneratedMission(!0)
|
|
15364
15420
|
})[`${e.type}:${e.kind}`]?.();
|
|
15365
15421
|
}
|
|
15366
|
-
function
|
|
15422
|
+
function Vs(r, e) {
|
|
15367
15423
|
const t = r.objectives.getSnapshot("achievement", e);
|
|
15368
15424
|
r.objectiveToast.show(t.titleKey, t.descriptionKey);
|
|
15369
15425
|
}
|
|
15370
|
-
function
|
|
15426
|
+
function Ws(r, e) {
|
|
15371
15427
|
const t = r.objectives.getSnapshot("challenge", e);
|
|
15372
15428
|
r.challengeRunId = null, r.isRunning = !1, r.isPaused = !0, r.inputManager.forceRelease(), r.tutorialOverlay.hide(), r.clearTransientRunEntities(), r.challengeCompletionCinematic.show(t.titleKey, t.descriptionKey);
|
|
15373
15429
|
}
|
|
15374
|
-
function
|
|
15430
|
+
function qs(r, e) {
|
|
15375
15431
|
const t = r.objectives.getSnapshot("challenge", e);
|
|
15376
15432
|
if (r.isDeathSequenceActive) {
|
|
15377
15433
|
r.pendingChallengeFailureId = e;
|
|
@@ -15379,20 +15435,20 @@ function $s(r, e) {
|
|
|
15379
15435
|
}
|
|
15380
15436
|
r.challengeResultOverlay.showFailed(e, t.titleKey);
|
|
15381
15437
|
}
|
|
15382
|
-
function
|
|
15383
|
-
|
|
15438
|
+
function $s(r, e) {
|
|
15439
|
+
Ys(r), Zs(r, e), Js(r), Xs(r), Qs(r), el(r), tl(r), Hs(r), ks(r), rl(r), Wa(r), al(r), $a(r);
|
|
15384
15440
|
}
|
|
15385
|
-
function
|
|
15441
|
+
function Ys(r) {
|
|
15386
15442
|
const e = Ti();
|
|
15387
|
-
r.configManager = new N(), r.content =
|
|
15443
|
+
r.configManager = new N(), r.content = Se, r.corePreview = new Je(0, 0, r.configManager.getConfig().core), r.powerUpRegistry = new ai(r.configManager, Ii), r.geneticMemory = new W(Ri, new T(e)), r.coreRoster = new Zi(Di, r.geneticMemory, e), r.codex = new oo(po, e), r.missionGenerator = new vo(r.codex), r.bossCodex = new F(fo, e), r.objectives = new jo(Bo, e, (t) => r.applyObjectiveReward(t)), r.areaDirector = new Ho(Se), r.bossEncounter = new Ko(ht());
|
|
15388
15444
|
}
|
|
15389
|
-
function
|
|
15445
|
+
function Zs(r, e) {
|
|
15390
15446
|
r.container = e.root, r.container.classList.add("axon-game-root"), r.i18n = new Ya(e.language), r.themeManager = new pr(e.theme, r.container), r.platform = e.platform || new Za(), r.canvas = document.createElement("canvas"), r.canvas.className = "axon-canvas", r.container.appendChild(r.canvas), r.resizeCanvas(), window.addEventListener("resize", () => r.resizeCanvas());
|
|
15391
15447
|
}
|
|
15392
|
-
function
|
|
15448
|
+
function Js(r) {
|
|
15393
15449
|
r.eventBus = new At(), r.entityFactory = new ti(r.content), r.core = new Je(r.canvas.width / 2, r.canvas.height / 2, r.configManager.getConfig().core), r.inputManager = new Mt(r.canvas, r.configManager.getConfig()), r.physicsEngine = new ir(r.eventBus, r.i18n, r.entityFactory, r.configManager), r.waveDirector = new dr(r.entityFactory, new ur(r.content, r.geneticMemory), new ri(500)), r.waveDirector.setArea(r.areaDirector.getArea()), r.renderer = new ga(r.canvas, r.themeManager, r.configManager), r.juice = new ya();
|
|
15394
15450
|
}
|
|
15395
|
-
function
|
|
15451
|
+
function Xs(r) {
|
|
15396
15452
|
r.settingsModal = new Ia({
|
|
15397
15453
|
parent: r.container,
|
|
15398
15454
|
i18n: r.i18n,
|
|
@@ -15409,17 +15465,17 @@ function Qs(r) {
|
|
|
15409
15465
|
}
|
|
15410
15466
|
});
|
|
15411
15467
|
}
|
|
15412
|
-
function
|
|
15468
|
+
function Qs(r) {
|
|
15413
15469
|
r.coreInteraction = new It(r.inputManager, r.core), r.interactiveTutorial = new wa(r.entityFactory, new Ie(), null, at()), r.tutorialOverlay = new ka(r.container, r.i18n, r.interactiveTutorial), r.hud = new Pa(r.container, () => {
|
|
15414
15470
|
r.isPaused = !0, r.settingsModal.show();
|
|
15415
15471
|
}), r.hud.show();
|
|
15416
15472
|
}
|
|
15417
|
-
function
|
|
15473
|
+
function el(r) {
|
|
15418
15474
|
r.progressBar = new Ma((e) => {
|
|
15419
15475
|
r.waveDirector.wave = e, r.triggerLevelUp(e);
|
|
15420
15476
|
}), r.performanceAudit = new Da(r.container, r.debugPerformanceEnabled, r.i18n);
|
|
15421
15477
|
}
|
|
15422
|
-
function
|
|
15478
|
+
function tl(r) {
|
|
15423
15479
|
r.coreRosterOverlay = new Fa({
|
|
15424
15480
|
parent: r.container,
|
|
15425
15481
|
i18n: r.i18n,
|
|
@@ -15440,7 +15496,7 @@ function rl(r) {
|
|
|
15440
15496
|
environment: Re
|
|
15441
15497
|
});
|
|
15442
15498
|
}
|
|
15443
|
-
function
|
|
15499
|
+
function rl(r) {
|
|
15444
15500
|
r.challengesOverlay = new je({
|
|
15445
15501
|
parent: r.container,
|
|
15446
15502
|
i18n: r.i18n,
|
|
@@ -15466,7 +15522,7 @@ function al(r) {
|
|
|
15466
15522
|
getSelectedCoreId: () => r.coreRoster.getSelectedCoreId()
|
|
15467
15523
|
});
|
|
15468
15524
|
}
|
|
15469
|
-
function
|
|
15525
|
+
function al(r) {
|
|
15470
15526
|
r.unsubscribeCodex = r.codex.subscribe((e) => {
|
|
15471
15527
|
r.refreshGeneratedMission(), r.startMenu.renderContent(), e.length > 0 && r.codexToast.show();
|
|
15472
15528
|
}), r.unsubscribeBossCodex = r.bossCodex.subscribe(() => {
|
|
@@ -15474,14 +15530,35 @@ function il(r) {
|
|
|
15474
15530
|
}), r.unsubscribeCoreRoster = r.coreRoster.subscribe(() => {
|
|
15475
15531
|
r.syncSelectedCorePreview(), r.startMenu.renderContent();
|
|
15476
15532
|
}), r.unsubscribeObjectives = r.objectives.subscribe((e) => {
|
|
15477
|
-
|
|
15533
|
+
il(r), Gs(r, e);
|
|
15478
15534
|
});
|
|
15479
15535
|
}
|
|
15480
|
-
function
|
|
15536
|
+
function il(r) {
|
|
15481
15537
|
r.startMenu.renderContent(), r.missionsDrawer.render(), r.challengesOverlay.renderContent(), r.achievementsOverlay.renderContent();
|
|
15482
15538
|
}
|
|
15483
15539
|
const $e = 0.25, Q = 1.8;
|
|
15484
|
-
|
|
15540
|
+
function ol() {
|
|
15541
|
+
if (typeof window > "u" || !sl(window.location.hostname)) return null;
|
|
15542
|
+
const r = new URLSearchParams(window.location.search);
|
|
15543
|
+
return nl(r.get("debugChallengeEnd") ?? r.get("debugChallenge"));
|
|
15544
|
+
}
|
|
15545
|
+
function nl(r) {
|
|
15546
|
+
return r === "complete" || r === "completed" || r === "win" ? "complete" : r === "lost" || r === "failed" || r === "fail" ? "lost" : null;
|
|
15547
|
+
}
|
|
15548
|
+
function sl(r) {
|
|
15549
|
+
return r === "localhost" || r === "127.0.0.1";
|
|
15550
|
+
}
|
|
15551
|
+
function ll(r) {
|
|
15552
|
+
const e = r.debugChallengeResult, t = r.challengeRunId;
|
|
15553
|
+
if (!(!e || !t)) {
|
|
15554
|
+
if (e === "complete") {
|
|
15555
|
+
r.objectives.debugComplete("challenge", t);
|
|
15556
|
+
return;
|
|
15557
|
+
}
|
|
15558
|
+
r.isRunning = !1, r.isPaused = !0, r.inputManager.forceRelease(), r.tutorialOverlay.hide(), r.objectives.cancelActiveChallenge(), r.challengeRunId = null, r.clearTransientRunEntities();
|
|
15559
|
+
}
|
|
15560
|
+
}
|
|
15561
|
+
class cl {
|
|
15485
15562
|
container;
|
|
15486
15563
|
canvas;
|
|
15487
15564
|
i18n;
|
|
@@ -15554,6 +15631,7 @@ class nl {
|
|
|
15554
15631
|
debugPerformanceEnabled = typeof window < "u" && new URLSearchParams(window.location.search).has("debug");
|
|
15555
15632
|
debugBossEnabled = typeof window < "u" && (window.location.hostname === "localhost" || window.location.hostname === "127.0.0.1") && new URLSearchParams(window.location.search).has("debugBoss");
|
|
15556
15633
|
debugAchievementEnabled = typeof window < "u" && (window.location.hostname === "localhost" || window.location.hostname === "127.0.0.1") && new URLSearchParams(window.location.search).has("debugAchievement");
|
|
15634
|
+
debugChallengeResult = ol();
|
|
15557
15635
|
rerollsRemaining = 1;
|
|
15558
15636
|
score = { value: 0 };
|
|
15559
15637
|
combo = { value: 0 };
|
|
@@ -15623,25 +15701,25 @@ class nl {
|
|
|
15623
15701
|
clearTransientRunEntities() {
|
|
15624
15702
|
}
|
|
15625
15703
|
constructor(e) {
|
|
15626
|
-
|
|
15704
|
+
$s(this, e);
|
|
15627
15705
|
}
|
|
15628
15706
|
}
|
|
15629
|
-
function
|
|
15707
|
+
function dl(r, e) {
|
|
15630
15708
|
r.i18n.setLanguage(e), r.onLanguageChanged(e);
|
|
15631
15709
|
}
|
|
15632
|
-
function
|
|
15710
|
+
function ul(r, e) {
|
|
15633
15711
|
r.themeManager.setTheme(e);
|
|
15634
15712
|
}
|
|
15635
|
-
function
|
|
15713
|
+
function hl(r) {
|
|
15636
15714
|
return r.i18n.getLanguage();
|
|
15637
15715
|
}
|
|
15638
|
-
function
|
|
15716
|
+
function pl(r) {
|
|
15639
15717
|
return r.themeManager.getTheme();
|
|
15640
15718
|
}
|
|
15641
|
-
function
|
|
15719
|
+
function ml(r, e) {
|
|
15642
15720
|
r.startMenu.renderContent(), r.tutorialOverlay.updateLanguage(), r.coreRosterOverlay.updateLanguage(), r.geneticMemoryOverlay.updateLanguage(), r.coreRunSummaryOverlay.updateLanguage(), r.codexOverlay.updateLanguage(), r.codexToast.updateLanguage(), r.missionsDrawer.updateLanguage(), r.challengesOverlay.updateLanguage(), r.achievementsOverlay.updateLanguage(), r.objectiveToast.updateLanguage(), r.challengeResultOverlay.updateLanguage(), r.challengeCompletionCinematic.updateLanguage();
|
|
15643
15721
|
}
|
|
15644
|
-
function
|
|
15722
|
+
function gl(r) {
|
|
15645
15723
|
r.ambientEnemies = [];
|
|
15646
15724
|
for (let e = 0; e < 16; e++) {
|
|
15647
15725
|
const t = r.content.enemies.values().filter((l) => l.ambientSpawn && (!l.requiredUnlockId || r.geneticMemory.isUnlocked(l.requiredUnlockId))).map((l) => l.id);
|
|
@@ -15656,15 +15734,15 @@ function hl(r) {
|
|
|
15656
15734
|
r.ambientEnemies.push(s);
|
|
15657
15735
|
}
|
|
15658
15736
|
}
|
|
15659
|
-
function
|
|
15737
|
+
function yl(r) {
|
|
15660
15738
|
const e = r.coreRoster.getSelectedCore();
|
|
15661
15739
|
r.core.setMechanic(e.mechanic), r.core.setSkinId(r.coreRoster.getSelectedSkinId(e.id)), r.core.setElevationVisualLevel(r.coreRoster.getSelectedElevationVisualLevel(e.id)), r.coreInteraction.setMechanic(e.mechanic);
|
|
15662
15740
|
}
|
|
15663
|
-
function
|
|
15741
|
+
function El(r) {
|
|
15664
15742
|
const e = r.container.clientWidth || window.innerWidth, t = r.container.clientHeight || window.innerHeight, a = 1100, i = 750, o = e / Math.max(1, t);
|
|
15665
15743
|
o < 1 ? (r.canvas.width = a, r.canvas.height = Math.round(a / o)) : e < 1e3 || t < i ? (r.canvas.height = i, r.canvas.width = Math.round(i * o)) : (r.canvas.width = e, r.canvas.height = t), r.core && (r.core.position = { x: r.canvas.width / 2, y: r.canvas.height / 2 });
|
|
15666
15744
|
}
|
|
15667
|
-
class
|
|
15745
|
+
class vl {
|
|
15668
15746
|
origin;
|
|
15669
15747
|
position;
|
|
15670
15748
|
previousPosition;
|
|
@@ -15699,7 +15777,7 @@ class gl {
|
|
|
15699
15777
|
return this.origin;
|
|
15700
15778
|
}
|
|
15701
15779
|
}
|
|
15702
|
-
const
|
|
15780
|
+
const fl = {
|
|
15703
15781
|
"toxic-radius": (r) => {
|
|
15704
15782
|
const e = r.getConfig().toxicPool;
|
|
15705
15783
|
r.updateConfig({
|
|
@@ -15733,11 +15811,11 @@ const yl = {
|
|
|
15733
15811
|
r.addCoreRing(1);
|
|
15734
15812
|
}
|
|
15735
15813
|
};
|
|
15736
|
-
function
|
|
15814
|
+
function xl(r, e) {
|
|
15737
15815
|
for (const t of r.getActivePassiveEffectIds())
|
|
15738
|
-
|
|
15816
|
+
fl[t](e);
|
|
15739
15817
|
}
|
|
15740
|
-
const
|
|
15818
|
+
const Sl = {
|
|
15741
15819
|
"core-life-ring": (r) => r.addCoreRing(1),
|
|
15742
15820
|
"core-protection": (r, e) => {
|
|
15743
15821
|
const t = e.effectValue ?? 120, a = r.getConfig().core;
|
|
@@ -15778,21 +15856,21 @@ const vl = {
|
|
|
15778
15856
|
"core-skin": () => {
|
|
15779
15857
|
}
|
|
15780
15858
|
};
|
|
15781
|
-
function
|
|
15859
|
+
function bl(r, e) {
|
|
15782
15860
|
for (const t of r.getActiveWisdomEffects())
|
|
15783
|
-
t.effectId &&
|
|
15861
|
+
t.effectId && Sl[t.effectId](e, t);
|
|
15784
15862
|
}
|
|
15785
|
-
function
|
|
15786
|
-
|
|
15787
|
-
const e =
|
|
15788
|
-
|
|
15863
|
+
function Cl(r) {
|
|
15864
|
+
Al(r), Il(r);
|
|
15865
|
+
const e = Rl(r);
|
|
15866
|
+
Ml(r, e);
|
|
15789
15867
|
}
|
|
15790
|
-
function
|
|
15868
|
+
function Al(r) {
|
|
15791
15869
|
r.eventBus.on("onCoreDamaged", () => {
|
|
15792
15870
|
r.settingsModal.isHapticsEnabled() && r.platform.haptics.notification("error");
|
|
15793
15871
|
});
|
|
15794
15872
|
}
|
|
15795
|
-
function
|
|
15873
|
+
function Il(r) {
|
|
15796
15874
|
r.eventBus.on("onGameOver", () => {
|
|
15797
15875
|
if (!r.isDeathSequenceActive) {
|
|
15798
15876
|
if (r.isChallengeRun()) {
|
|
@@ -15806,27 +15884,27 @@ function Sl(r) {
|
|
|
15806
15884
|
function Ye(r) {
|
|
15807
15885
|
r.isRunning = !1, r.isPaused = !1, r.isDeathSequenceActive = !0, r.deathSequenceElapsed = 0;
|
|
15808
15886
|
}
|
|
15809
|
-
function
|
|
15887
|
+
function Rl(r) {
|
|
15810
15888
|
return {
|
|
15811
|
-
pointerDown: (e = !1) =>
|
|
15812
|
-
pointerUp: () =>
|
|
15889
|
+
pointerDown: (e = !1) => Tl(r, e),
|
|
15890
|
+
pointerUp: () => Pl(r)
|
|
15813
15891
|
};
|
|
15814
15892
|
}
|
|
15815
|
-
function
|
|
15893
|
+
function Tl(r, e) {
|
|
15816
15894
|
if (!r.isRunning || r.isPaused || r.isLevelUpActive) return;
|
|
15817
15895
|
const t = r.coreInteraction.pointerDown(r.enemies, e);
|
|
15818
|
-
|
|
15896
|
+
wl(r, t), kl(r, t, e), t && r.settingsModal.isHapticsEnabled() && r.platform.haptics.impact("light");
|
|
15819
15897
|
}
|
|
15820
|
-
function
|
|
15898
|
+
function wl(r, e) {
|
|
15821
15899
|
!e?.enemy || e.mechanic !== "launcher" && e.mechanic !== "smasher" || (r.codex.recordControlled(e.enemy.type), r.coreRoster.recordSkillEvent("controlled"), r.objectives.record({
|
|
15822
15900
|
type: "enemy-controlled",
|
|
15823
15901
|
enemyId: e.enemy.type,
|
|
15824
15902
|
coreId: r.coreRoster.getSelectedCoreId()
|
|
15825
15903
|
}));
|
|
15826
15904
|
}
|
|
15827
|
-
function
|
|
15905
|
+
function kl(r, e, t) {
|
|
15828
15906
|
e?.mechanic !== "repellent" || !e.waveOrigin || r.repelProjectiles.push(
|
|
15829
|
-
new
|
|
15907
|
+
new vl({
|
|
15830
15908
|
origin: r.core.position,
|
|
15831
15909
|
target: e.waveOrigin,
|
|
15832
15910
|
color: r.core.getColorHex(),
|
|
@@ -15836,12 +15914,12 @@ function Rl(r, e, t) {
|
|
|
15836
15914
|
})
|
|
15837
15915
|
);
|
|
15838
15916
|
}
|
|
15839
|
-
function
|
|
15917
|
+
function Pl(r) {
|
|
15840
15918
|
if (!r.isRunning || r.isPaused || r.isLevelUpActive) return;
|
|
15841
15919
|
const e = r.coreInteraction.getMechanic(), t = r.coreInteraction.pointerUp();
|
|
15842
15920
|
e === "smasher" && t && (r.pendingSmasherRelease = t), t && r.settingsModal.isHapticsEnabled() && r.platform.haptics.impact("medium");
|
|
15843
15921
|
}
|
|
15844
|
-
function
|
|
15922
|
+
function Ml(r, e) {
|
|
15845
15923
|
r.canvas.addEventListener("mousedown", (t) => {
|
|
15846
15924
|
t.button === 0 && e.pointerDown(!1);
|
|
15847
15925
|
}), r.canvas.addEventListener("mouseup", (t) => {
|
|
@@ -15850,40 +15928,40 @@ function wl(r, e) {
|
|
|
15850
15928
|
passive: !0
|
|
15851
15929
|
}), r.canvas.addEventListener("touchend", e.pointerUp, { passive: !0 }), r.canvas.addEventListener("touchcancel", e.pointerUp, { passive: !0 });
|
|
15852
15930
|
}
|
|
15853
|
-
function
|
|
15931
|
+
function Dl(r) {
|
|
15854
15932
|
r.missionsDrawer.setAvailable(!1), r.configManager.resetToDefault();
|
|
15855
15933
|
const e = r.coreRoster.getSelectedCore(), t = r.challengeRunId ? r.objectives.getActiveChallenge() : void 0;
|
|
15856
|
-
|
|
15934
|
+
Ol(r, e, t), Ll(r, e.id, t);
|
|
15857
15935
|
}
|
|
15858
|
-
function
|
|
15859
|
-
r.core.setMechanic(e.mechanic), r.core.setSkinId(r.coreRoster.getSelectedSkinId(e.id)), r.core.setElevationVisualLevel(r.coreRoster.getSelectedElevationVisualLevel(e.id)), r.coreInteraction.setMechanic(e.mechanic),
|
|
15936
|
+
function Ol(r, e, t) {
|
|
15937
|
+
r.core.setMechanic(e.mechanic), r.core.setSkinId(r.coreRoster.getSelectedSkinId(e.id)), r.core.setElevationVisualLevel(r.coreRoster.getSelectedElevationVisualLevel(e.id)), r.coreInteraction.setMechanic(e.mechanic), xl(r.geneticMemory, r.configManager), r.coreRoster.startRun(), bl(r.coreRoster, r.configManager), r.core.setConfig(r.configManager.getConfig().core), r.objectives.record({ type: "run-started", coreId: e.id }), r.score.value = 0, r.combo.value = 0, r.pendingChallengeFailureId = null, r.clearTransientRunState(), r.isDeathSequenceActive = !1, r.deathSequenceElapsed = 0, r.enemies = [], r.ambientEnemies = [], r.experienceOrbs = [], r.ecosomaOrbs = [], r.bossCatalyst = null, r.resetBossExposureBurst(), r.orbitingOrbs = [], r.isLevelUpActive = !1, r.pendingLevelUps = [], r.rerollsRemaining = t?.preset?.disableRerolls ? 0 : r.getRerollLimit(), r.waveDirector.setChallengeSpawnProfile(t?.preset?.spawnProfile ?? null), Nl(r, t);
|
|
15860
15938
|
}
|
|
15861
|
-
function
|
|
15939
|
+
function Nl(r, e) {
|
|
15862
15940
|
r.core.reset(r.canvas.width / 2, r.canvas.height / 2), r.areaDirector.reset(e?.preset?.areaId ?? "area-caldo"), r.areaDirector.setBossesDisabled(e?.preset?.disableBosses === !0), r.waveDirector.setArea(r.areaDirector.getArea()), r.enemies.push(...r.waveDirector.spawnInitialChallengeEnemies(r.canvas.width, r.canvas.height, r.core.position)), r.recordEnemyObservations(r.enemies), r.debugBossEnabled && r.areaDirector.recordKill(r.areaDirector.getKillThreshold()), r.bossEncounter.reset(), r.areaTransitionElapsed = 0, r.areaIntroElapsed = r.debugBossEnabled ? Q : 0, r.waveDirector.reset(), r.inputManager.reset(), r.hud.show(), r.hud.update(0), r.progressBar.reset(), r.isPaused = !1, r.isRunning = !0;
|
|
15863
15941
|
}
|
|
15864
|
-
function
|
|
15865
|
-
const a = t?.preset?.tutorialId, i =
|
|
15866
|
-
r.interactiveTutorial.setDefinition(i),
|
|
15942
|
+
function Ll(r, e, t) {
|
|
15943
|
+
const a = t?.preset?.tutorialId, i = _l(r, e, a, !!t);
|
|
15944
|
+
r.interactiveTutorial.setDefinition(i), jl(r, a !== void 0) ? (r.interactiveTutorial.start(r.canvas.width, r.canvas.height, r.enemies), r.tutorialOverlay.show()) : (r.interactiveTutorial.isActive = !1, r.tutorialOverlay.hide());
|
|
15867
15945
|
}
|
|
15868
|
-
function
|
|
15946
|
+
function _l(r, e, t, a) {
|
|
15869
15947
|
return a ? t ? r.content.getTutorial(t) ?? null : null : r.content.getTutorialForCore(e) ?? null;
|
|
15870
15948
|
}
|
|
15871
|
-
function
|
|
15949
|
+
function jl(r, e) {
|
|
15872
15950
|
return !r.interactiveTutorial.hasDefinition() || r.debugBossEnabled ? !1 : e || r.interactiveTutorial.isTutorialEnabled();
|
|
15873
15951
|
}
|
|
15874
|
-
function
|
|
15952
|
+
function Bl(r) {
|
|
15875
15953
|
r.clearTransientRunEntities(), r.juice.reset();
|
|
15876
15954
|
}
|
|
15877
|
-
function
|
|
15955
|
+
function Hl(r, e) {
|
|
15878
15956
|
for (let t = r.repelProjectiles.length - 1; t >= 0; t--) {
|
|
15879
15957
|
const a = r.repelProjectiles[t];
|
|
15880
|
-
(!a ||
|
|
15958
|
+
(!a || Ul(r, a, e, t)) && r.repelProjectiles.splice(t, 1);
|
|
15881
15959
|
}
|
|
15882
15960
|
}
|
|
15883
|
-
function
|
|
15884
|
-
return e.update(t) === !1 ? !1 : (r.isRepelProjectileBlocked(e) || (Math.hypot(e.target.x - r.core.position.x, e.target.y - r.core.position.y) <= r.core.getHitboxRadius() ?
|
|
15961
|
+
function Ul(r, e, t, a) {
|
|
15962
|
+
return e.update(t) === !1 ? !1 : (r.isRepelProjectileBlocked(e) || (Math.hypot(e.target.x - r.core.position.x, e.target.y - r.core.position.y) <= r.core.getHitboxRadius() ? zl(r) : Kl(r, e, a)), !0);
|
|
15885
15963
|
}
|
|
15886
|
-
function
|
|
15964
|
+
function zl(r) {
|
|
15887
15965
|
Xe.damageCore({
|
|
15888
15966
|
core: r.core,
|
|
15889
15967
|
enemies: r.enemies,
|
|
@@ -15900,7 +15978,7 @@ function Bl(r) {
|
|
|
15900
15978
|
allowProtection: !1
|
|
15901
15979
|
});
|
|
15902
15980
|
}
|
|
15903
|
-
function
|
|
15981
|
+
function Kl(r, e, t) {
|
|
15904
15982
|
const a = r.coreInteraction.resolveRepelWave(r.enemies, e.target, e.isTouch);
|
|
15905
15983
|
for (const i of a)
|
|
15906
15984
|
r.codex.recordControlled(i.type), r.objectives.record({
|
|
@@ -15920,12 +15998,12 @@ function Hl(r, e, t) {
|
|
|
15920
15998
|
isSpectral: e.isSpectral
|
|
15921
15999
|
});
|
|
15922
16000
|
}
|
|
15923
|
-
function
|
|
16001
|
+
function Fl(r, e) {
|
|
15924
16002
|
const t = e.position.x - e.previousPosition.x, a = e.position.y - e.previousPosition.y, i = t * t + a * a;
|
|
15925
16003
|
if (i <= 1e-4) return !1;
|
|
15926
16004
|
const o = Math.atan2(-a, -t);
|
|
15927
16005
|
return r.enemies.some(
|
|
15928
|
-
(n) =>
|
|
16006
|
+
(n) => Gl({
|
|
15929
16007
|
enemy: n,
|
|
15930
16008
|
projectile: e,
|
|
15931
16009
|
movementX: t,
|
|
@@ -15935,16 +16013,16 @@ function Ul(r, e) {
|
|
|
15935
16013
|
})
|
|
15936
16014
|
);
|
|
15937
16015
|
}
|
|
15938
|
-
function
|
|
16016
|
+
function Gl(r) {
|
|
15939
16017
|
const { enemy: e, projectile: t, movementX: a, movementY: i, segmentLengthSquared: o, approachAngle: n } = r;
|
|
15940
16018
|
if (!e.active || e.isDying || e.isGrabbed || e.isThrown || !e.isFrontCoverageHit(n)) return !1;
|
|
15941
16019
|
const s = e.position.x - t.previousPosition.x, l = e.position.y - t.previousPosition.y, c = Math.max(0, Math.min(1, (s * a + l * i) / o)), d = t.previousPosition.x + a * c, u = t.previousPosition.y + i * c, h = e.position.x - d, m = e.position.y - u, g = e.getFrontCoverageRadius() + t.radius;
|
|
15942
16020
|
return h * h + m * m <= g * g;
|
|
15943
16021
|
}
|
|
15944
|
-
function
|
|
16022
|
+
function Vl(r) {
|
|
15945
16023
|
r.enemies = [], r.pools = [], r.vortices = [], r.shockwaves = [], r.repelProjectiles = [], r.pendingSmasherRelease = null, r.smasherBossImpactCooldown = 0, r.particles = [], r.floatingTexts = [], r.experienceOrbs = [], r.ecosomaOrbs = [], r.orbitingOrbs = [], r.pendingLevelUps = [], r.inputManager?.forceRelease();
|
|
15946
16024
|
}
|
|
15947
|
-
function
|
|
16025
|
+
function Wl(r, e) {
|
|
15948
16026
|
if (r.deathSequenceElapsed = Math.min(ye, r.deathSequenceElapsed + e), r.juice.update(e, r.floatingTexts, r.particles), !(r.deathSequenceElapsed < ye)) {
|
|
15949
16027
|
if (r.isDeathSequenceActive = !1, r.clearTransientRunState(), r.initAmbientArena(), r.pendingChallengeFailureId) {
|
|
15950
16028
|
const t = r.pendingChallengeFailureId;
|
|
@@ -15960,27 +16038,27 @@ function Fl(r, e) {
|
|
|
15960
16038
|
r.showStartMenu();
|
|
15961
16039
|
}
|
|
15962
16040
|
}
|
|
15963
|
-
function
|
|
15964
|
-
if (r.performanceAudit.beginFrame(),
|
|
15965
|
-
|
|
15966
|
-
const t =
|
|
15967
|
-
|
|
16041
|
+
function ql(r, e) {
|
|
16042
|
+
if (r.performanceAudit.beginFrame(), $l(r), Jl(r, e) || (r.core.update(e), r.smasherBossImpactCooldown = Math.max(0, r.smasherBossImpactCooldown - e), r.coreInteraction.updateHover(r.inputManager.pointerPosition, r.isRunning && r.inputManager.hasPointerPosition, r.inputManager.lastPointerWasTouch), Xl(r, e), Ql(r, e)) || (r.areaIntroElapsed = Math.min(Q, r.areaIntroElapsed + Math.max(0, e)), tc(r, e))) return;
|
|
16043
|
+
rc(r, e), ac(r, e);
|
|
16044
|
+
const t = sc(r, e);
|
|
16045
|
+
cc(r, e), r.spawnExperienceDrops(), r.isLevelUpActive || (r.updateExperienceOrbs(e), r.updateEcosomaOrbs(e)), r.progressBar.update(e), r.hud.update(r.combo.value, Zl(r)), r.juice.update(e, r.floatingTexts, r.particles), r.enemies = r.enemies.filter((a) => a.active), G(r, r.enemies.length, t);
|
|
15968
16046
|
}
|
|
15969
|
-
function
|
|
15970
|
-
const e = r.isPaused ? "PAUSED" :
|
|
16047
|
+
function $l(r) {
|
|
16048
|
+
const e = r.isPaused ? "PAUSED" : Yl(r);
|
|
15971
16049
|
r.performanceAudit.setState(e), r.performanceAudit.setEcosomaDropChance(r.getEcosomaDropPolicy().getChance(r.progressBar.getLevel()));
|
|
15972
16050
|
}
|
|
15973
|
-
function
|
|
16051
|
+
function Yl(r) {
|
|
15974
16052
|
return r.isRunning ? "GAME" : "MENU";
|
|
15975
16053
|
}
|
|
15976
|
-
function
|
|
16054
|
+
function Zl(r) {
|
|
15977
16055
|
const e = r.objectives.getActiveChallenge();
|
|
15978
16056
|
return !e || e.condition.event !== "enemy-defeated" ? null : e.condition.target - e.progress;
|
|
15979
16057
|
}
|
|
15980
|
-
function
|
|
16058
|
+
function Jl(r, e) {
|
|
15981
16059
|
return r.areaDirector.getPhase() !== "boss" || !r.bossEncounter.isIntroPaused() ? !1 : (r.bossEncounter.update(e, r.core.position), G(r, 0), !0);
|
|
15982
16060
|
}
|
|
15983
|
-
function
|
|
16061
|
+
function Xl(r, e) {
|
|
15984
16062
|
r.isRunning && !r.isPaused && r.updateRepelProjectiles(e);
|
|
15985
16063
|
}
|
|
15986
16064
|
function G(r, e, t = 0) {
|
|
@@ -15993,22 +16071,22 @@ function G(r, e, t = 0) {
|
|
|
15993
16071
|
floatingTexts: r.floatingTexts.length
|
|
15994
16072
|
});
|
|
15995
16073
|
}
|
|
15996
|
-
function
|
|
16074
|
+
function Ql(r, e) {
|
|
15997
16075
|
if (r.isDeathSequenceActive)
|
|
15998
16076
|
return r.updateDeathSequence(e), G(r, 0), !0;
|
|
15999
16077
|
if (r.isRunning && !r.isPaused) return !1;
|
|
16000
16078
|
for (const t of r.ambientEnemies)
|
|
16001
|
-
t.update(e),
|
|
16079
|
+
t.update(e), ec(r, t);
|
|
16002
16080
|
return r.recordEnemyObservations(r.ambientEnemies), G(r, r.ambientEnemies.length), !0;
|
|
16003
16081
|
}
|
|
16004
|
-
function
|
|
16082
|
+
function ec(r, e) {
|
|
16005
16083
|
e.position.x < -40 && (e.position.x = r.canvas.width + 40), e.position.x > r.canvas.width + 40 && (e.position.x = -40), e.position.y < -40 && (e.position.y = r.canvas.height + 40), e.position.y > r.canvas.height + 40 && (e.position.y = -40);
|
|
16006
16084
|
}
|
|
16007
|
-
function
|
|
16085
|
+
function tc(r, e) {
|
|
16008
16086
|
const t = r.areaDirector.getPhase();
|
|
16009
16087
|
return t !== "reward" && t !== "transition" ? !1 : (t === "reward" ? r.updateBossReward(e) : r.updateAreaTransition(e), r.progressBar.update(e), r.juice.update(e, r.floatingTexts, r.particles), G(r, 0), !0);
|
|
16010
16088
|
}
|
|
16011
|
-
function
|
|
16089
|
+
function rc(r, e) {
|
|
16012
16090
|
const t = r.areaDirector.getPhase();
|
|
16013
16091
|
if (r.interactiveTutorial.isActive) {
|
|
16014
16092
|
r.interactiveTutorial.update({
|
|
@@ -16029,20 +16107,20 @@ function Ql(r, e) {
|
|
|
16029
16107
|
const a = r.waveDirector.update({ dt: e, activeEnemies: r.enemies, width: r.canvas.width, height: r.canvas.height, corePos: r.core.position });
|
|
16030
16108
|
a && (r.enemies.push(a), r.recordEnemyObservation(a)), r.recordEnemyObservations(r.enemies);
|
|
16031
16109
|
}
|
|
16032
|
-
function
|
|
16110
|
+
function ac(r, e) {
|
|
16033
16111
|
if (!r.isLevelUpActive) return;
|
|
16034
16112
|
r.inputManager.tryGrabOrb(r.orbitingOrbs);
|
|
16035
16113
|
const t = r.inputManager.grabbedOrb;
|
|
16036
|
-
!r.inputManager.isPointerDown && t && (t.isGrabbed = !1, r.inputManager.grabbedOrb = null),
|
|
16114
|
+
!r.inputManager.isPointerDown && t && (t.isGrabbed = !1, r.inputManager.grabbedOrb = null), ic(r);
|
|
16037
16115
|
for (const a of r.orbitingOrbs)
|
|
16038
|
-
a.isHovered = Math.hypot(r.inputManager.pointerPosition.x - a.position.x, r.inputManager.pointerPosition.y - a.position.y) <= a.radius * 1.5, a === t && r.inputManager.isPointerDown ?
|
|
16116
|
+
a.isHovered = Math.hypot(r.inputManager.pointerPosition.x - a.position.x, r.inputManager.pointerPosition.y - a.position.y) <= a.radius * 1.5, a === t && r.inputManager.isPointerDown ? oc(r, a) : a.update(e, r.core.position);
|
|
16039
16117
|
}
|
|
16040
|
-
function
|
|
16118
|
+
function ic(r) {
|
|
16041
16119
|
if (!r.inputManager.isPointerDown || r.inputManager.grabbedOrb || r.rerollsRemaining <= 0) return;
|
|
16042
16120
|
const e = r.canvas.width / 2, t = r.canvas.height / 2 + 300;
|
|
16043
16121
|
Math.hypot(r.inputManager.pointerPosition.x - e, r.inputManager.pointerPosition.y - t) <= 80 && (r.triggerReroll(), r.inputManager.consumePointerDown());
|
|
16044
16122
|
}
|
|
16045
|
-
function
|
|
16123
|
+
function oc(r, e) {
|
|
16046
16124
|
e.position = { ...r.inputManager.pointerPosition };
|
|
16047
16125
|
const t = r.core.position.x - e.position.x, a = r.core.position.y - e.position.y;
|
|
16048
16126
|
if (!(Math.hypot(t, a) > r.core.radius + e.radius)) {
|
|
@@ -16057,11 +16135,11 @@ function rc(r, e) {
|
|
|
16057
16135
|
maxLifetime: 1.6,
|
|
16058
16136
|
size: 26
|
|
16059
16137
|
});
|
|
16060
|
-
for (let i = 0; i < 45; i++) r.particles.push(
|
|
16138
|
+
for (let i = 0; i < 45; i++) r.particles.push(nc(r, e.definition.color));
|
|
16061
16139
|
r.inputManager.forceRelease(), r.orbitingOrbs = [], r.presentNextLevelUp();
|
|
16062
16140
|
}
|
|
16063
16141
|
}
|
|
16064
|
-
function
|
|
16142
|
+
function nc(r, e) {
|
|
16065
16143
|
const t = Math.random() * Math.PI * 2, a = 200 + Math.random() * 400;
|
|
16066
16144
|
return {
|
|
16067
16145
|
id: Math.random().toString(),
|
|
@@ -16074,7 +16152,7 @@ function ac(r, e) {
|
|
|
16074
16152
|
maxLifetime: 0.7
|
|
16075
16153
|
};
|
|
16076
16154
|
}
|
|
16077
|
-
function
|
|
16155
|
+
function sc(r, e) {
|
|
16078
16156
|
if (r.isLevelUpActive) return 0;
|
|
16079
16157
|
const t = r.debugPerformanceEnabled ? performance.now() : 0;
|
|
16080
16158
|
return r.physicsEngine.update({
|
|
@@ -16096,13 +16174,13 @@ function ic(r, e) {
|
|
|
16096
16174
|
smasherRelease: r.pendingSmasherRelease,
|
|
16097
16175
|
onSmasherArmBreak: () => r.inputManager.forceRelease(),
|
|
16098
16176
|
preserveSmasherCapturedEnemy: r.objectives.getActiveChallenge()?.preset?.preserveSmasherCapturedEnemy === !0,
|
|
16099
|
-
onChallengeFailure: () =>
|
|
16177
|
+
onChallengeFailure: () => lc(r)
|
|
16100
16178
|
}), r.pendingSmasherRelease = null, r.debugPerformanceEnabled ? performance.now() - t : 0;
|
|
16101
16179
|
}
|
|
16102
|
-
function
|
|
16180
|
+
function lc(r) {
|
|
16103
16181
|
r.isChallengeRun() && (r.isRunning = !1, r.isPaused = !1, r.isDeathSequenceActive = !0, r.deathSequenceElapsed = 0, r.inputManager.forceRelease(), r.tutorialOverlay.hide(), r.objectives.cancelActiveChallenge(), r.challengeRunId = null);
|
|
16104
16182
|
}
|
|
16105
|
-
function
|
|
16183
|
+
function cc(r, e) {
|
|
16106
16184
|
if (r.areaDirector.getPhase() !== "boss") return;
|
|
16107
16185
|
const t = r.bossEncounter.update(e, r.core.position);
|
|
16108
16186
|
if (t) {
|
|
@@ -16111,7 +16189,7 @@ function nc(r, e) {
|
|
|
16111
16189
|
}
|
|
16112
16190
|
r.updateBossMinionReentryPaths(), r.updateBossExposureBurst(e), r.processSmasherBossImpact(), r.processBossImpacts(), r.finishBossIfDefeated();
|
|
16113
16191
|
}
|
|
16114
|
-
function
|
|
16192
|
+
function dc(r) {
|
|
16115
16193
|
r.coreRoster.recordSkillEvent("kill"), r.combo.value >= 2 && r.coreRoster.recordSkillEvent("combo", r.combo.value), r.combo.value >= 2 && r.objectives.record({
|
|
16116
16194
|
type: "combo",
|
|
16117
16195
|
amount: r.combo.value,
|
|
@@ -16128,7 +16206,7 @@ function sc(r) {
|
|
|
16128
16206
|
size: 22
|
|
16129
16207
|
}));
|
|
16130
16208
|
}
|
|
16131
|
-
function
|
|
16209
|
+
function uc(r) {
|
|
16132
16210
|
if (r.bossEncounter.getPhase() !== "inactive") return;
|
|
16133
16211
|
const e = r.areaDirector.getArea().bossId;
|
|
16134
16212
|
if (!e) return;
|
|
@@ -16144,20 +16222,20 @@ function lc(r) {
|
|
|
16144
16222
|
targetCandidates: r.waveDirector.getBossTentacleTargets()
|
|
16145
16223
|
}), r.bossCodex.recordEncounter(t.id), r.bossCodex.recordPhase(t.id, 1), r.juice.triggerFlash(0.85), r.juice.triggerScreenShake({ x: 0, y: 1 }, 26);
|
|
16146
16224
|
}
|
|
16147
|
-
function
|
|
16225
|
+
function hc(r) {
|
|
16148
16226
|
r.enemies = [], r.pools = [], r.vortices = [], r.shockwaves = [], r.experienceOrbs = [], r.inputManager.forceRelease();
|
|
16149
16227
|
}
|
|
16150
|
-
function
|
|
16228
|
+
function pc(r) {
|
|
16151
16229
|
if (r.bossEncounter.getPhase() === "inactive") return;
|
|
16152
16230
|
let e = !1;
|
|
16153
16231
|
for (const t of r.enemies) {
|
|
16154
|
-
if (!
|
|
16232
|
+
if (!mc(t)) continue;
|
|
16155
16233
|
const a = r.bossEncounter.hit(t.position, t.type, r.core.position);
|
|
16156
16234
|
a !== "none" && (vt(r, t.position, t.color, a), t.isThrown = !1, t.triggerDissolveDeath(!1), a === "tentacle-broken" && r.bossEncounter.getPhase() === "exposed" && (e = !0));
|
|
16157
16235
|
}
|
|
16158
16236
|
e && r.releaseBossExposureBurst();
|
|
16159
16237
|
}
|
|
16160
|
-
function
|
|
16238
|
+
function mc(r) {
|
|
16161
16239
|
return r.active && r.isThrown && !r.isDying;
|
|
16162
16240
|
}
|
|
16163
16241
|
function vt(r, e, t, a) {
|
|
@@ -16176,17 +16254,17 @@ function vt(r, e, t, a) {
|
|
|
16176
16254
|
}
|
|
16177
16255
|
a === "boss-damaged" && r.juice.triggerScreenShake({ x: 0, y: 1 }, 12), a === "defeated" && r.juice.triggerFlash(1);
|
|
16178
16256
|
}
|
|
16179
|
-
function
|
|
16180
|
-
if (!
|
|
16257
|
+
function gc(r) {
|
|
16258
|
+
if (!yc(r)) return;
|
|
16181
16259
|
const e = r.inputManager.grabbedEnemy;
|
|
16182
16260
|
if (!e || !e.active || e.isDying) return;
|
|
16183
16261
|
const t = r.bossEncounter.hit(e.position, e.type, r.core.position);
|
|
16184
|
-
t !== "none" && (r.smasherBossImpactCooldown = 0.28, vt(r, e.position, e.color, t),
|
|
16262
|
+
t !== "none" && (r.smasherBossImpactCooldown = 0.28, vt(r, e.position, e.color, t), Ec(r, e, t), vc(r, e, t));
|
|
16185
16263
|
}
|
|
16186
|
-
function
|
|
16264
|
+
function yc(r) {
|
|
16187
16265
|
return r.coreInteraction.getMechanic() === "smasher" && r.smasherBossImpactCooldown <= 0;
|
|
16188
16266
|
}
|
|
16189
|
-
function
|
|
16267
|
+
function Ec(r, e, t) {
|
|
16190
16268
|
r.juice.triggerHitstop(0.08), r.juice.triggerFlash(t === "area-impact" ? 0.25 : 0.5), r.juice.triggerScreenShake(
|
|
16191
16269
|
{
|
|
16192
16270
|
x: e.position.x - r.core.position.x,
|
|
@@ -16195,7 +16273,7 @@ function mc(r, e, t) {
|
|
|
16195
16273
|
t === "area-impact" ? 8 : 14
|
|
16196
16274
|
);
|
|
16197
16275
|
}
|
|
16198
|
-
function
|
|
16276
|
+
function vc(r, e, t) {
|
|
16199
16277
|
if (t === "tentacle-broken" && r.bossEncounter.getPhase() === "exposed" && r.releaseBossExposureBurst(), !r.core.consumeSmasherImpact()) return;
|
|
16200
16278
|
r.core.startSmasherRetraction(e.position, e.color);
|
|
16201
16279
|
const a = r.inputManager.releaseGrabbedEnemy();
|
|
@@ -16246,7 +16324,7 @@ class ft {
|
|
|
16246
16324
|
}, !0;
|
|
16247
16325
|
}
|
|
16248
16326
|
}
|
|
16249
|
-
class
|
|
16327
|
+
class fc {
|
|
16250
16328
|
id;
|
|
16251
16329
|
radius = 17;
|
|
16252
16330
|
interactionRadius = 132;
|
|
@@ -16282,10 +16360,10 @@ class yc {
|
|
|
16282
16360
|
}
|
|
16283
16361
|
}
|
|
16284
16362
|
}
|
|
16285
|
-
function
|
|
16363
|
+
function xc(r, e) {
|
|
16286
16364
|
return e === "area-impact" ? 290 : e === "defeated" ? 360 : 210;
|
|
16287
16365
|
}
|
|
16288
|
-
function
|
|
16366
|
+
function Sc(r) {
|
|
16289
16367
|
r.bossExposureBurstRemaining = 26, r.bossExposureBurstAccumulator = 0.22, r.bossExposureBurstSide = 1;
|
|
16290
16368
|
const e = r.bossEncounter.getBossPosition(r.core.position);
|
|
16291
16369
|
r.shockwaves.push({
|
|
@@ -16299,7 +16377,7 @@ function vc(r) {
|
|
|
16299
16377
|
maxLifetime: 1.2
|
|
16300
16378
|
}), r.juice.triggerFlash(0.75), r.juice.triggerScreenShake({ x: 0, y: 1 }, 42);
|
|
16301
16379
|
}
|
|
16302
|
-
function
|
|
16380
|
+
function bc(r, e) {
|
|
16303
16381
|
if (r.bossEncounter.getPhase() !== "exposed") {
|
|
16304
16382
|
r.resetBossExposureBurst();
|
|
16305
16383
|
return;
|
|
@@ -16315,30 +16393,30 @@ function fc(r, e) {
|
|
|
16315
16393
|
i && (r.enemies.push(i), r.recordEnemyObservation(i)), r.bossExposureBurstRemaining -= 1;
|
|
16316
16394
|
}
|
|
16317
16395
|
}
|
|
16318
|
-
function
|
|
16396
|
+
function Cc(r) {
|
|
16319
16397
|
for (const e of r.enemies)
|
|
16320
|
-
|
|
16398
|
+
Ac(r, e) && Tc(r, e);
|
|
16321
16399
|
}
|
|
16322
|
-
function
|
|
16323
|
-
return
|
|
16400
|
+
function Ac(r, e) {
|
|
16401
|
+
return Ic(e) && Rc(r, e);
|
|
16324
16402
|
}
|
|
16325
|
-
function
|
|
16403
|
+
function Ic(r) {
|
|
16326
16404
|
return r.active && r.bossLaunchPhase === "outbound" && !r.isGrabbed && !r.isThrown && !r.wasManipulated;
|
|
16327
16405
|
}
|
|
16328
|
-
function
|
|
16406
|
+
function Rc(r, e) {
|
|
16329
16407
|
return e.position.x < -90 || e.position.x > r.canvas.width + 90 || e.position.y < -90 || e.position.y > r.canvas.height + 90;
|
|
16330
16408
|
}
|
|
16331
|
-
function
|
|
16409
|
+
function Tc(r, e) {
|
|
16332
16410
|
const t = {
|
|
16333
16411
|
x: r.core.position.x + (Math.random() - 0.5) * 140,
|
|
16334
16412
|
y: r.core.position.y + (Math.random() - 0.5) * 140
|
|
16335
16413
|
}, a = Math.atan2(t.y - e.position.y, t.x - e.position.x), i = Math.max(260, e.maxSpeed * 1.8);
|
|
16336
16414
|
e.bossLaunchPhase = "reentry", e.velocity = { x: Math.cos(a) * i, y: Math.sin(a) * i }, e.launchDelay = 0.05;
|
|
16337
16415
|
}
|
|
16338
|
-
function
|
|
16416
|
+
function wc(r) {
|
|
16339
16417
|
r.bossExposureBurstRemaining = 0, r.bossExposureBurstAccumulator = 0, r.bossExposureBurstSide = 1;
|
|
16340
16418
|
}
|
|
16341
|
-
function
|
|
16419
|
+
function kc(r) {
|
|
16342
16420
|
if (r.bossEncounter.getPhase() !== "defeated") return;
|
|
16343
16421
|
const e = r.areaDirector.getArea().bossId;
|
|
16344
16422
|
if (!e) return;
|
|
@@ -16349,9 +16427,9 @@ function Rc(r) {
|
|
|
16349
16427
|
coreId: r.coreRoster.getSelectedCoreId()
|
|
16350
16428
|
}), r.areaDirector.beginReward(), r.bossCodex.recordVictory(e);
|
|
16351
16429
|
const a = r.getBossRewardPosition();
|
|
16352
|
-
r.bossCatalyst = new
|
|
16430
|
+
r.bossCatalyst = new fc(a), Pc(r, a, t.ecosomaDropMin, t.ecosomaDropMax), Mc(r);
|
|
16353
16431
|
}
|
|
16354
|
-
function
|
|
16432
|
+
function Pc(r, e, t, a) {
|
|
16355
16433
|
const i = Math.max(3, Math.floor(t ?? 3)), o = Math.max(i, Math.floor(a ?? 5)), n = i + Math.floor(Math.random() * (o - i + 1));
|
|
16356
16434
|
for (let s = 0; s < n; s++) {
|
|
16357
16435
|
const l = s * Math.PI * 2 / n, c = 24 + Math.random() * 28;
|
|
@@ -16363,30 +16441,30 @@ function Tc(r, e, t, a) {
|
|
|
16363
16441
|
);
|
|
16364
16442
|
}
|
|
16365
16443
|
}
|
|
16366
|
-
function
|
|
16444
|
+
function Mc(r) {
|
|
16367
16445
|
r.enemies = [], r.pools = [], r.vortices = [], r.shockwaves = [], r.repelProjectiles = [], r.bossEncounter.reset(), r.resetBossExposureBurst(), r.juice.triggerFlash(1);
|
|
16368
16446
|
}
|
|
16369
|
-
function
|
|
16447
|
+
function Dc(r) {
|
|
16370
16448
|
const e = r.bossEncounter.getBossPosition(r.core.position), t = e.x - r.core.position.x, a = e.y - r.core.position.y, i = Math.hypot(t, a), o = Math.min(r.canvas.width, r.canvas.height) * 0.3, n = i > o ? o / i : 1, s = 28;
|
|
16371
16449
|
return {
|
|
16372
16450
|
x: Math.max(s, Math.min(r.canvas.width - s, r.core.position.x + t * n)),
|
|
16373
16451
|
y: Math.max(s, Math.min(r.canvas.height - s, r.core.position.y + a * n))
|
|
16374
16452
|
};
|
|
16375
16453
|
}
|
|
16376
|
-
function
|
|
16454
|
+
function Oc(r, e) {
|
|
16377
16455
|
if (r.bossCatalyst?.active && (r.tryCollectCatalyst(), r.bossCatalyst.update(e, r.core.position, r.core.getHitboxRadius()), !r.bossCatalyst.active && r.bossCatalyst.absorbedByCore)) {
|
|
16378
16456
|
const t = r.areaDirector.getArea().bossId;
|
|
16379
16457
|
t && r.bossCodex.recordDropCollected(t), r.areaDirector.beginTransition(), r.areaTransitionElapsed = 0, r.juice.triggerFlash(0.75);
|
|
16380
16458
|
}
|
|
16381
16459
|
r.updateEcosomaOrbs(e), r.juice.update(e, r.floatingTexts, r.particles);
|
|
16382
16460
|
}
|
|
16383
|
-
function
|
|
16461
|
+
function Nc(r) {
|
|
16384
16462
|
const e = r.bossCatalyst;
|
|
16385
16463
|
if (!e || !e.active || e.isAbsorbing) return;
|
|
16386
16464
|
const t = r.configManager.getConfig().magnet, a = Math.hypot(r.core.position.x - e.position.x, r.core.position.y - e.position.y), i = Math.hypot(r.inputManager.pointerPosition.x - e.position.x, r.inputManager.pointerPosition.y - e.position.y);
|
|
16387
16465
|
(a <= r.core.getHitboxRadius() + t.corePickupRadius || i <= Math.max(t.psionicRadius + t.pickupRadius + e.radius, e.interactionRadius)) && e.beginAbsorption();
|
|
16388
16466
|
}
|
|
16389
|
-
function
|
|
16467
|
+
function Lc(r, e) {
|
|
16390
16468
|
if (r.areaTransitionElapsed = Math.min(r.areaTransitionDuration, r.areaTransitionElapsed + Math.max(0, e)), r.updateEcosomaOrbs(e), !(r.areaTransitionElapsed < r.areaTransitionDuration) && r.areaDirector.completeTransition()) {
|
|
16391
16469
|
const t = r.areaDirector.getArea();
|
|
16392
16470
|
r.coreRoster.setRunArea(t.areaNumber ?? 1, t.experienceMultiplier), r.coreRoster.recordSkillEvent("area"), r.objectives.record({
|
|
@@ -16396,15 +16474,15 @@ function Dc(r, e) {
|
|
|
16396
16474
|
}), r.waveDirector.setArea(t), r.areaIntroElapsed = 0, r.bossEncounter.reset(), r.bossCatalyst = null, r.clearArenaForBoss(), r.juice.triggerFlash(0.65);
|
|
16397
16475
|
}
|
|
16398
16476
|
}
|
|
16399
|
-
const
|
|
16477
|
+
const _c = (r, e, t) => `${Math.floor(r / t)}:${Math.floor(e / t)}`, xt = (r, e) => {
|
|
16400
16478
|
const t = /* @__PURE__ */ new Map();
|
|
16401
16479
|
for (const a of r) {
|
|
16402
16480
|
if (!a.active || a.isAbsorbing || a.isMerging) continue;
|
|
16403
|
-
const i =
|
|
16481
|
+
const i = _c(a.position.x, a.position.y, e), o = t.get(i);
|
|
16404
16482
|
o ? o.push(a) : t.set(i, [a]);
|
|
16405
16483
|
}
|
|
16406
16484
|
return t;
|
|
16407
|
-
}, ee = (r) => !r.active || r.isAbsorbing || r.isMerging,
|
|
16485
|
+
}, ee = (r) => !r.active || r.isAbsorbing || r.isMerging, jc = (r, e) => {
|
|
16408
16486
|
if (r.length < 2 || e <= 0) return;
|
|
16409
16487
|
const t = xt(r, e);
|
|
16410
16488
|
for (const a of r) {
|
|
@@ -16413,18 +16491,18 @@ const Oc = (r, e, t) => `${Math.floor(r / t)}:${Math.floor(e / t)}`, xt = (r, e)
|
|
|
16413
16491
|
for (let n = -1; n <= 1; n++)
|
|
16414
16492
|
for (let s = -1; s <= 1; s++) {
|
|
16415
16493
|
const l = t.get(`${i + n}:${o + s}`);
|
|
16416
|
-
l &&
|
|
16494
|
+
l && Bc(a, l, e);
|
|
16417
16495
|
}
|
|
16418
16496
|
}
|
|
16419
|
-
},
|
|
16497
|
+
}, Bc = (r, e, t) => {
|
|
16420
16498
|
for (const a of e) {
|
|
16421
16499
|
if (a === r || ee(a)) continue;
|
|
16422
16500
|
const i = Math.hypot(a.position.x - r.position.x, a.position.y - r.position.y), o = Math.min(12, Math.max(0, Math.max(r.radius, a.radius) - r.getBaseRadius()));
|
|
16423
16501
|
i <= t + o && r.mergeWith(a);
|
|
16424
16502
|
}
|
|
16425
|
-
},
|
|
16503
|
+
}, Hc = (r, e, t) => {
|
|
16426
16504
|
const a = e.magneticAttractionDistance;
|
|
16427
|
-
if (!
|
|
16505
|
+
if (!Uc(r, e)) return;
|
|
16428
16506
|
const i = xt(r, a);
|
|
16429
16507
|
for (const o of r) {
|
|
16430
16508
|
if (ee(o)) continue;
|
|
@@ -16432,7 +16510,7 @@ const Oc = (r, e, t) => `${Math.floor(r / t)}:${Math.floor(e / t)}`, xt = (r, e)
|
|
|
16432
16510
|
for (let l = -1; l <= 1; l++)
|
|
16433
16511
|
for (let c = -1; c <= 1; c++) {
|
|
16434
16512
|
const d = i.get(`${n + l}:${s + c}`);
|
|
16435
|
-
d &&
|
|
16513
|
+
d && zc({
|
|
16436
16514
|
orb: o,
|
|
16437
16515
|
bucket: d,
|
|
16438
16516
|
distanceLimit: a,
|
|
@@ -16441,7 +16519,7 @@ const Oc = (r, e, t) => `${Math.floor(r / t)}:${Math.floor(e / t)}`, xt = (r, e)
|
|
|
16441
16519
|
});
|
|
16442
16520
|
}
|
|
16443
16521
|
}
|
|
16444
|
-
},
|
|
16522
|
+
}, Uc = (r, e) => r.length >= 2 && e.magneticAttractionDistance > 0 && e.magneticAttractionStrength > 0, zc = (r) => {
|
|
16445
16523
|
const { orb: e, bucket: t, distanceLimit: a, strength: i, dt: o } = r;
|
|
16446
16524
|
for (const n of t) {
|
|
16447
16525
|
if (n === e || ee(n) || n.id <= e.id) continue;
|
|
@@ -16450,12 +16528,12 @@ const Oc = (r, e, t) => `${Math.floor(r / t)}:${Math.floor(e / t)}`, xt = (r, e)
|
|
|
16450
16528
|
const d = i * (1 - c / a) ** 2 * o, u = s / c, h = l / c;
|
|
16451
16529
|
e.velocity.x += u * d, e.velocity.y += h * d, n.velocity.x -= u * d, n.velocity.y -= h * d;
|
|
16452
16530
|
}
|
|
16453
|
-
},
|
|
16531
|
+
}, Kc = (r, e) => {
|
|
16454
16532
|
const t = Math.log2(r), a = Math.min(e.maxRadius, e.baseRadius + t * e.radiusGrowthPerLevel);
|
|
16455
16533
|
let i = p.experience;
|
|
16456
16534
|
return r >= e.blueThreshold && (i = p.experienceBlue), r >= e.yellowThreshold && (i = p.experienceYellow), r >= e.redThreshold && (i = p.experienceRed), { radius: a, color: i };
|
|
16457
16535
|
};
|
|
16458
|
-
class
|
|
16536
|
+
class Fc {
|
|
16459
16537
|
constructor(e) {
|
|
16460
16538
|
this.config = e;
|
|
16461
16539
|
}
|
|
@@ -16486,7 +16564,7 @@ class Uc {
|
|
|
16486
16564
|
return e.velocity = { x: o / s * l, y: n / s * l }, !1;
|
|
16487
16565
|
}
|
|
16488
16566
|
}
|
|
16489
|
-
const
|
|
16567
|
+
const Gc = {
|
|
16490
16568
|
mergeDistance: 34,
|
|
16491
16569
|
magneticAttractionDistance: 190,
|
|
16492
16570
|
magneticAttractionStrength: 900,
|
|
@@ -16498,7 +16576,7 @@ const zc = {
|
|
|
16498
16576
|
yellowThreshold: 32,
|
|
16499
16577
|
redThreshold: 256
|
|
16500
16578
|
};
|
|
16501
|
-
class
|
|
16579
|
+
class be {
|
|
16502
16580
|
id;
|
|
16503
16581
|
position;
|
|
16504
16582
|
velocity;
|
|
@@ -16513,8 +16591,8 @@ class Se {
|
|
|
16513
16591
|
absorbedByCore = !1;
|
|
16514
16592
|
config;
|
|
16515
16593
|
lifecycle;
|
|
16516
|
-
constructor(e, t = 1, a =
|
|
16517
|
-
this.id = `xp_${Date.now()}_${Math.random()}`, this.position = { ...e }, this.value = Math.max(1, t), this.config = a, this.lifecycle = new
|
|
16594
|
+
constructor(e, t = 1, a = Gc) {
|
|
16595
|
+
this.id = `xp_${Date.now()}_${Math.random()}`, this.position = { ...e }, this.value = Math.max(1, t), this.config = a, this.lifecycle = new Fc(a), this.radius = a.baseRadius, this.color = p.experience, this.updateAppearance();
|
|
16518
16596
|
const i = Math.random() * Math.PI * 2, o = 25 + Math.random() * 45;
|
|
16519
16597
|
this.velocity = {
|
|
16520
16598
|
x: Math.cos(i) * o,
|
|
@@ -16522,10 +16600,10 @@ class Se {
|
|
|
16522
16600
|
};
|
|
16523
16601
|
}
|
|
16524
16602
|
static mergeNearby(e, t) {
|
|
16525
|
-
|
|
16603
|
+
jc(e, t);
|
|
16526
16604
|
}
|
|
16527
16605
|
static attractNearby(e, t, a) {
|
|
16528
|
-
|
|
16606
|
+
Hc(e, t, a);
|
|
16529
16607
|
}
|
|
16530
16608
|
beginAbsorption() {
|
|
16531
16609
|
this.active && (this.isAbsorbing = !0);
|
|
@@ -16558,7 +16636,7 @@ class Se {
|
|
|
16558
16636
|
}
|
|
16559
16637
|
}
|
|
16560
16638
|
updateAppearance() {
|
|
16561
|
-
const e =
|
|
16639
|
+
const e = Kc(this.value, this.config);
|
|
16562
16640
|
this.radius = e.radius, this.color = e.color;
|
|
16563
16641
|
}
|
|
16564
16642
|
getBaseRadius() {
|
|
@@ -16568,7 +16646,7 @@ class Se {
|
|
|
16568
16646
|
this.lifecycle.beginMerge(this, e);
|
|
16569
16647
|
}
|
|
16570
16648
|
}
|
|
16571
|
-
class
|
|
16649
|
+
class St {
|
|
16572
16650
|
id;
|
|
16573
16651
|
definition;
|
|
16574
16652
|
position = { x: 0, y: 0 };
|
|
@@ -16585,22 +16663,22 @@ class bt {
|
|
|
16585
16663
|
this.active && !this.isGrabbed && !this.isHovered && (this.orbitAngle += e * 0.25, this.position.x = t.x + Math.cos(this.orbitAngle) * this.orbitDistance, this.position.y = t.y + Math.sin(this.orbitAngle) * this.orbitDistance);
|
|
16586
16664
|
}
|
|
16587
16665
|
}
|
|
16588
|
-
function
|
|
16666
|
+
function Vc(r, e) {
|
|
16589
16667
|
r.objectives.record({
|
|
16590
16668
|
type: "level-reached",
|
|
16591
16669
|
amount: e,
|
|
16592
16670
|
coreId: r.coreRoster.getSelectedCoreId()
|
|
16593
16671
|
}), r.pendingLevelUps.push(e), r.isLevelUpActive || r.presentNextLevelUp();
|
|
16594
16672
|
}
|
|
16595
|
-
function
|
|
16673
|
+
function Wc(r) {
|
|
16596
16674
|
const e = r.pendingLevelUps.shift();
|
|
16597
16675
|
if (e === void 0) {
|
|
16598
16676
|
r.isLevelUpActive = !1;
|
|
16599
16677
|
return;
|
|
16600
16678
|
}
|
|
16601
|
-
r.isLevelUpActive = !0, r.inputManager.forceRelease(), r.juice.triggerFlash(0.3), r.juice.triggerScreenShake({ x: 0, y: 1 }, 8),
|
|
16679
|
+
r.isLevelUpActive = !0, r.inputManager.forceRelease(), r.juice.triggerFlash(0.3), r.juice.triggerScreenShake({ x: 0, y: 1 }, 8), qc(r, e), r.orbitingOrbs = $c(r), r.rerollsRemaining = r.isChallengeRun() ? 0 : r.getRerollLimit();
|
|
16602
16680
|
}
|
|
16603
|
-
function
|
|
16681
|
+
function qc(r, e) {
|
|
16604
16682
|
r.floatingTexts.push({
|
|
16605
16683
|
id: Math.random().toString(),
|
|
16606
16684
|
text: r.i18n.translate("levelUpChoose", { level: e }),
|
|
@@ -16626,26 +16704,26 @@ function Gc(r, e) {
|
|
|
16626
16704
|
});
|
|
16627
16705
|
}
|
|
16628
16706
|
}
|
|
16629
|
-
function
|
|
16707
|
+
function $c(r) {
|
|
16630
16708
|
const e = r.powerUpRegistry.getRandomOptions(3, r.geneticMemory, r.waveDirector.getAvailableEnemyIds(), r.coreRoster.getSelectedCoreId());
|
|
16631
|
-
return e.map((t, a) => new
|
|
16709
|
+
return e.map((t, a) => new St("orb_" + Date.now() + "_" + a, t, a * Math.PI * 2 / e.length));
|
|
16632
16710
|
}
|
|
16633
|
-
function
|
|
16711
|
+
function Yc(r) {
|
|
16634
16712
|
for (const e of r.enemies)
|
|
16635
16713
|
e.experienceDropPending && (e.experienceDropPending = !1, r.codex.recordKill(e.type, e.codexDeathSourceType), r.objectives.record({
|
|
16636
16714
|
type: "enemy-defeated",
|
|
16637
16715
|
enemyId: e.type,
|
|
16638
16716
|
...e.variantId ? { variantId: e.variantId } : {},
|
|
16639
16717
|
coreId: r.coreRoster.getSelectedCoreId()
|
|
16640
|
-
}), r.experienceOrbs.push(new
|
|
16718
|
+
}), r.experienceOrbs.push(new be(e.position, 1, r.configManager.getConfig().experience)), r.getEcosomaDropPolicy().shouldDrop(r.progressBar.getLevel()) && r.ecosomaOrbs.push(new ft(e.position)));
|
|
16641
16719
|
}
|
|
16642
|
-
function
|
|
16720
|
+
function Zc(r, e) {
|
|
16643
16721
|
r.codex.recordSeen(e.type), e.variantId && r.isEnemyVisible(e) && r.codex.recordVariant(e.type, e.variantId);
|
|
16644
16722
|
}
|
|
16645
|
-
function
|
|
16723
|
+
function Jc(r, e) {
|
|
16646
16724
|
for (const t of e) t.active && !t.isDying && r.recordEnemyObservation(t);
|
|
16647
16725
|
}
|
|
16648
|
-
function
|
|
16726
|
+
function Xc(r, e) {
|
|
16649
16727
|
const t = e.getHitRadius();
|
|
16650
16728
|
return e.position.x >= -t && e.position.x <= r.canvas.width + t && e.position.y >= -t && e.position.y <= r.canvas.height + t;
|
|
16651
16729
|
}
|
|
@@ -16661,26 +16739,26 @@ class Ze {
|
|
|
16661
16739
|
return t >= 0 && t < this.getChance(e);
|
|
16662
16740
|
}
|
|
16663
16741
|
}
|
|
16664
|
-
function
|
|
16742
|
+
function Qc(r, e) {
|
|
16665
16743
|
const t = r.configManager.getConfig();
|
|
16666
|
-
|
|
16667
|
-
for (const a of r.experienceOrbs)
|
|
16744
|
+
be.attractNearby(r.experienceOrbs, t.experience, e), be.mergeNearby(r.experienceOrbs, t.experience.mergeDistance);
|
|
16745
|
+
for (const a of r.experienceOrbs) ed(r, a, e, t.magnet);
|
|
16668
16746
|
r.experienceOrbs = r.experienceOrbs.filter((a) => a.active);
|
|
16669
16747
|
}
|
|
16670
|
-
function
|
|
16748
|
+
function ed(r, e, t, a) {
|
|
16671
16749
|
if (e.active) {
|
|
16672
16750
|
if (e.isMerging) {
|
|
16673
16751
|
e.update(t, r.core.position, r.core.getHitboxRadius(), a.absorptionSpeed);
|
|
16674
16752
|
return;
|
|
16675
16753
|
}
|
|
16676
|
-
|
|
16754
|
+
td(r, e, a) && e.beginAbsorption(), e.update(t, r.core.position, r.core.getHitboxRadius(), a.absorptionSpeed), !e.active && e.absorbedByCore && rd(r, e);
|
|
16677
16755
|
}
|
|
16678
16756
|
}
|
|
16679
|
-
function
|
|
16757
|
+
function td(r, e, t) {
|
|
16680
16758
|
const a = Math.hypot(r.core.position.x - e.position.x, r.core.position.y - e.position.y), i = Math.hypot(r.inputManager.pointerPosition.x - e.position.x, r.inputManager.pointerPosition.y - e.position.y);
|
|
16681
16759
|
return a <= r.core.getHitboxRadius() + t.corePickupRadius || i <= t.psionicRadius + t.pickupRadius + e.radius;
|
|
16682
16760
|
}
|
|
16683
|
-
function
|
|
16761
|
+
function rd(r, e) {
|
|
16684
16762
|
r.progressBar.addExperience(e.value), r.juice.triggerFlash(0.12), r.floatingTexts.push({
|
|
16685
16763
|
id: Math.random().toString(),
|
|
16686
16764
|
text: r.i18n.translate("experienceCollected", { amount: e.value }),
|
|
@@ -16693,14 +16771,14 @@ function Qc(r, e) {
|
|
|
16693
16771
|
size: 18
|
|
16694
16772
|
});
|
|
16695
16773
|
}
|
|
16696
|
-
function
|
|
16774
|
+
function ad(r, e) {
|
|
16697
16775
|
const { magnet: t, ecosoma: a } = r.configManager.getConfig();
|
|
16698
|
-
for (const i of r.ecosomaOrbs)
|
|
16776
|
+
for (const i of r.ecosomaOrbs) id({ engine: r, orb: i, dt: e, magnet: t, ecosoma: a });
|
|
16699
16777
|
r.ecosomaOrbs = r.ecosomaOrbs.filter((i) => i.active);
|
|
16700
16778
|
}
|
|
16701
|
-
function
|
|
16779
|
+
function id(r) {
|
|
16702
16780
|
const { engine: e, orb: t, dt: a, magnet: i, ecosoma: o } = r;
|
|
16703
|
-
t.active && (
|
|
16781
|
+
t.active && (od(e, t, i) && t.beginAbsorption(), t.update(a, e.core.position, e.core.getHitboxRadius(), o), !t.active && t.absorbedByCore && (e.geneticMemory.collectEcosoma(t.value), e.objectives.record({ type: "ecosoma-collected", amount: t.value }), e.juice.triggerFlash(0.18), e.floatingTexts.push({
|
|
16704
16782
|
id: Math.random().toString(),
|
|
16705
16783
|
text: e.i18n.translate("ecosomaCollected", { amount: t.value }),
|
|
16706
16784
|
position: { ...e.core.position },
|
|
@@ -16712,11 +16790,11 @@ function td(r) {
|
|
|
16712
16790
|
size: 17
|
|
16713
16791
|
})));
|
|
16714
16792
|
}
|
|
16715
|
-
function
|
|
16793
|
+
function od(r, e, t) {
|
|
16716
16794
|
const a = Math.hypot(r.core.position.x - e.position.x, r.core.position.y - e.position.y), i = Math.hypot(r.inputManager.pointerPosition.x - e.position.x, r.inputManager.pointerPosition.y - e.position.y);
|
|
16717
16795
|
return a <= r.core.getHitboxRadius() + t.corePickupRadius || i <= t.psionicRadius + t.pickupRadius + e.radius;
|
|
16718
16796
|
}
|
|
16719
|
-
function
|
|
16797
|
+
function nd(r) {
|
|
16720
16798
|
const e = r.configManager.getConfig().ecosoma;
|
|
16721
16799
|
return r.debugPerformanceEnabled ? new Ze({
|
|
16722
16800
|
...e,
|
|
@@ -16725,20 +16803,20 @@ function ad(r) {
|
|
|
16725
16803
|
maxDropChance: $e
|
|
16726
16804
|
}) : new Ze(e);
|
|
16727
16805
|
}
|
|
16728
|
-
function
|
|
16806
|
+
function sd(r) {
|
|
16729
16807
|
if (r.rerollsRemaining <= 0) return;
|
|
16730
16808
|
r.rerollsRemaining -= 1, r.juice.triggerFlash(0.4);
|
|
16731
16809
|
const e = r.powerUpRegistry.getRandomOptions(3, r.geneticMemory, r.waveDirector.getAvailableEnemyIds(), r.coreRoster.getSelectedCoreId());
|
|
16732
16810
|
r.orbitingOrbs = e.map((t, a) => {
|
|
16733
16811
|
const i = a * Math.PI * 2 / e.length;
|
|
16734
|
-
return new
|
|
16812
|
+
return new St(`orb_${Date.now()}_${a}`, t, i);
|
|
16735
16813
|
});
|
|
16736
16814
|
}
|
|
16737
|
-
function
|
|
16815
|
+
function ld(r) {
|
|
16738
16816
|
const e = r.debugPerformanceEnabled ? performance.now() : 0;
|
|
16739
|
-
r.renderer.render(
|
|
16817
|
+
r.renderer.render(cd(r)), ud(r), r.performanceAudit.finishRender(e);
|
|
16740
16818
|
}
|
|
16741
|
-
function
|
|
16819
|
+
function cd(r) {
|
|
16742
16820
|
const e = {
|
|
16743
16821
|
core: r.core,
|
|
16744
16822
|
enemies: r.getRenderList(),
|
|
@@ -16757,13 +16835,13 @@ function nd(r) {
|
|
|
16757
16835
|
experienceProgress: r.progressBar.getProgress(),
|
|
16758
16836
|
levelUpPulse: r.progressBar.getLevelUpPulse(),
|
|
16759
16837
|
levelUpActive: r.isLevelUpActive,
|
|
16760
|
-
areaVisual:
|
|
16838
|
+
areaVisual: dd(r),
|
|
16761
16839
|
boss: r.bossEncounter.getSnapshot(r.core.position),
|
|
16762
16840
|
bossCatalyst: r.bossCatalyst
|
|
16763
16841
|
};
|
|
16764
16842
|
return r.isRunning && r.interactiveTutorial.isActive && (e.tutorial = r.interactiveTutorial), r.isDeathSequenceActive && (e.deathSequenceProgress = r.deathSequenceElapsed / ye), e;
|
|
16765
16843
|
}
|
|
16766
|
-
function
|
|
16844
|
+
function dd(r) {
|
|
16767
16845
|
const e = r.areaDirector.getPhase();
|
|
16768
16846
|
return {
|
|
16769
16847
|
areaId: r.areaDirector.getAreaId(),
|
|
@@ -16775,7 +16853,7 @@ function sd(r) {
|
|
|
16775
16853
|
entryProgress: r.isRunning && e === "area" ? Math.min(1, r.areaIntroElapsed / Q) : 1
|
|
16776
16854
|
};
|
|
16777
16855
|
}
|
|
16778
|
-
function
|
|
16856
|
+
function ud(r) {
|
|
16779
16857
|
r.isLevelUpActive && r.orbitingOrbs.length > 0 && r.renderer.drawings.drawOrbitingModifierOrbs({
|
|
16780
16858
|
orbs: r.orbitingOrbs,
|
|
16781
16859
|
time: r.core.pulsePhase,
|
|
@@ -16784,207 +16862,207 @@ function ld(r) {
|
|
|
16784
16862
|
rerollsRemaining: r.rerollsRemaining
|
|
16785
16863
|
});
|
|
16786
16864
|
}
|
|
16787
|
-
function
|
|
16865
|
+
function hd(r) {
|
|
16788
16866
|
return r.isRunning ? r.enemies : r.isDeathSequenceActive ? [] : r.ambientEnemies;
|
|
16789
16867
|
}
|
|
16790
|
-
function
|
|
16868
|
+
function pd(r) {
|
|
16791
16869
|
return r.debugRerollsEnabled ? 99 : 1;
|
|
16792
16870
|
}
|
|
16793
|
-
function
|
|
16871
|
+
function md(r, e = !1) {
|
|
16794
16872
|
if (!e && r.objectives.getSnapshots("mission").length > 0) return;
|
|
16795
16873
|
const t = r.missionGenerator.generate();
|
|
16796
16874
|
t && r.objectives.installMission(t);
|
|
16797
16875
|
}
|
|
16798
|
-
function
|
|
16876
|
+
function gd(r) {
|
|
16799
16877
|
if (!r.objectives.canRerollMission()) return;
|
|
16800
16878
|
const e = r.missionGenerator.generate();
|
|
16801
16879
|
e && r.objectives.rerollMission(e);
|
|
16802
16880
|
}
|
|
16803
|
-
function
|
|
16881
|
+
function yd(r) {
|
|
16804
16882
|
r.missionsDrawer.setAvailable(!0), r.startMenu.show();
|
|
16805
16883
|
}
|
|
16806
|
-
function
|
|
16807
|
-
r.objectives.startChallenge(e, r.coreRoster.getSelectedCoreId()) && (r.challengeRunId = e, r.challengesOverlay.hide(), r.startGame());
|
|
16884
|
+
function Ed(r, e) {
|
|
16885
|
+
r.objectives.startChallenge(e, r.coreRoster.getSelectedCoreId()) && (r.challengeRunId = e, r.challengesOverlay.hide(), r.startGame(), ll(r));
|
|
16808
16886
|
}
|
|
16809
|
-
function
|
|
16887
|
+
function vd(r) {
|
|
16810
16888
|
return r.challengeRunId !== null;
|
|
16811
16889
|
}
|
|
16812
|
-
function
|
|
16890
|
+
function fd(r, e) {
|
|
16813
16891
|
if (e.type === "ecosoma") {
|
|
16814
16892
|
r.geneticMemory.collectEcosoma(e.amount);
|
|
16815
16893
|
return;
|
|
16816
16894
|
}
|
|
16817
16895
|
e.type === "powerup" && r.geneticMemory.grantUnlock(e.unlockId);
|
|
16818
16896
|
}
|
|
16819
|
-
function
|
|
16897
|
+
function xd(r) {
|
|
16820
16898
|
r.gameLoop.stop(), r.performanceAudit.destroy(), r.coreRosterOverlay.destroy(), r.geneticMemoryOverlay.destroy(), r.coreRunSummaryOverlay.destroy(), r.challengeResultOverlay.destroy(), r.challengeCompletionCinematic.destroy(), r.unsubscribeCodex?.(), r.unsubscribeBossCodex?.(), r.unsubscribeCoreRoster?.(), r.codexOverlay.destroy(), r.codexToast.destroy(), r.missionsDrawer.destroy(), r.challengesOverlay.destroy(), r.achievementsOverlay.destroy(), r.objectiveToast.destroy(), r.unsubscribeObjectives?.(), window.removeEventListener("keydown", r.handleLanguageHold), window.removeEventListener("keydown", r.handleDebugAchievement), window.removeEventListener("keyup", r.handleLanguageRelease), r.canvas.remove();
|
|
16821
16899
|
}
|
|
16822
|
-
class
|
|
16900
|
+
class Sd extends cl {
|
|
16823
16901
|
constructor(e) {
|
|
16824
16902
|
super(e);
|
|
16825
16903
|
}
|
|
16826
16904
|
setLanguage(e) {
|
|
16827
|
-
|
|
16905
|
+
dl(this, e);
|
|
16828
16906
|
}
|
|
16829
16907
|
setTheme(e) {
|
|
16830
|
-
|
|
16908
|
+
ul(this, e);
|
|
16831
16909
|
}
|
|
16832
16910
|
getLanguage() {
|
|
16833
|
-
return
|
|
16911
|
+
return hl(this);
|
|
16834
16912
|
}
|
|
16835
16913
|
getTheme() {
|
|
16836
|
-
return
|
|
16914
|
+
return pl(this);
|
|
16837
16915
|
}
|
|
16838
16916
|
onLanguageChanged(e) {
|
|
16839
|
-
|
|
16917
|
+
ml(this);
|
|
16840
16918
|
}
|
|
16841
16919
|
initAmbientArena() {
|
|
16842
|
-
|
|
16920
|
+
gl(this);
|
|
16843
16921
|
}
|
|
16844
16922
|
syncSelectedCorePreview() {
|
|
16845
|
-
|
|
16923
|
+
yl(this);
|
|
16846
16924
|
}
|
|
16847
16925
|
resizeCanvas() {
|
|
16848
|
-
|
|
16926
|
+
El(this);
|
|
16849
16927
|
}
|
|
16850
16928
|
setupEvents() {
|
|
16851
|
-
|
|
16929
|
+
Cl(this);
|
|
16852
16930
|
}
|
|
16853
16931
|
startGame() {
|
|
16854
|
-
|
|
16932
|
+
Dl(this);
|
|
16855
16933
|
}
|
|
16856
16934
|
clearTransientRunState() {
|
|
16857
|
-
|
|
16935
|
+
Bl(this);
|
|
16858
16936
|
}
|
|
16859
16937
|
updateRepelProjectiles(e) {
|
|
16860
|
-
|
|
16938
|
+
Hl(this, e);
|
|
16861
16939
|
}
|
|
16862
16940
|
isRepelProjectileBlocked(e) {
|
|
16863
|
-
return
|
|
16941
|
+
return Fl(this, e);
|
|
16864
16942
|
}
|
|
16865
16943
|
clearTransientRunEntities() {
|
|
16866
|
-
|
|
16944
|
+
Vl(this);
|
|
16867
16945
|
}
|
|
16868
16946
|
updateDeathSequence(e) {
|
|
16869
|
-
|
|
16947
|
+
Wl(this, e);
|
|
16870
16948
|
}
|
|
16871
16949
|
update(e) {
|
|
16872
|
-
|
|
16950
|
+
ql(this, e);
|
|
16873
16951
|
}
|
|
16874
16952
|
handleEnemyKill() {
|
|
16875
|
-
|
|
16953
|
+
dc(this);
|
|
16876
16954
|
}
|
|
16877
16955
|
startBossIfReady() {
|
|
16878
|
-
|
|
16956
|
+
uc(this);
|
|
16879
16957
|
}
|
|
16880
16958
|
clearArenaForBoss() {
|
|
16881
|
-
|
|
16959
|
+
hc(this);
|
|
16882
16960
|
}
|
|
16883
16961
|
processBossImpacts() {
|
|
16884
|
-
|
|
16962
|
+
pc(this);
|
|
16885
16963
|
}
|
|
16886
16964
|
processSmasherBossImpact() {
|
|
16887
|
-
|
|
16965
|
+
gc(this);
|
|
16888
16966
|
}
|
|
16889
16967
|
getBossImpactRadius(e) {
|
|
16890
|
-
return
|
|
16968
|
+
return xc(this, e);
|
|
16891
16969
|
}
|
|
16892
16970
|
releaseBossExposureBurst() {
|
|
16893
|
-
|
|
16971
|
+
Sc(this);
|
|
16894
16972
|
}
|
|
16895
16973
|
updateBossExposureBurst(e) {
|
|
16896
|
-
|
|
16974
|
+
bc(this, e);
|
|
16897
16975
|
}
|
|
16898
16976
|
updateBossMinionReentryPaths() {
|
|
16899
|
-
|
|
16977
|
+
Cc(this);
|
|
16900
16978
|
}
|
|
16901
16979
|
resetBossExposureBurst() {
|
|
16902
|
-
|
|
16980
|
+
wc(this);
|
|
16903
16981
|
}
|
|
16904
16982
|
finishBossIfDefeated() {
|
|
16905
|
-
|
|
16983
|
+
kc(this);
|
|
16906
16984
|
}
|
|
16907
16985
|
getBossRewardPosition() {
|
|
16908
|
-
return
|
|
16986
|
+
return Dc(this);
|
|
16909
16987
|
}
|
|
16910
16988
|
updateBossReward(e) {
|
|
16911
|
-
|
|
16989
|
+
Oc(this, e);
|
|
16912
16990
|
}
|
|
16913
16991
|
tryCollectCatalyst() {
|
|
16914
|
-
|
|
16992
|
+
Nc(this);
|
|
16915
16993
|
}
|
|
16916
16994
|
updateAreaTransition(e) {
|
|
16917
|
-
|
|
16995
|
+
Lc(this, e);
|
|
16918
16996
|
}
|
|
16919
16997
|
triggerLevelUp(e) {
|
|
16920
|
-
|
|
16998
|
+
Vc(this, e);
|
|
16921
16999
|
}
|
|
16922
17000
|
presentNextLevelUp() {
|
|
16923
|
-
|
|
17001
|
+
Wc(this);
|
|
16924
17002
|
}
|
|
16925
17003
|
spawnExperienceDrops() {
|
|
16926
|
-
|
|
17004
|
+
Yc(this);
|
|
16927
17005
|
}
|
|
16928
17006
|
recordEnemyObservation(e) {
|
|
16929
|
-
|
|
17007
|
+
Zc(this, e);
|
|
16930
17008
|
}
|
|
16931
17009
|
recordEnemyObservations(e) {
|
|
16932
|
-
|
|
17010
|
+
Jc(this, e);
|
|
16933
17011
|
}
|
|
16934
17012
|
isEnemyVisible(e) {
|
|
16935
|
-
return
|
|
17013
|
+
return Xc(this, e);
|
|
16936
17014
|
}
|
|
16937
17015
|
updateExperienceOrbs(e) {
|
|
16938
|
-
|
|
17016
|
+
Qc(this, e);
|
|
16939
17017
|
}
|
|
16940
17018
|
updateEcosomaOrbs(e) {
|
|
16941
|
-
|
|
17019
|
+
ad(this, e);
|
|
16942
17020
|
}
|
|
16943
17021
|
getEcosomaDropPolicy() {
|
|
16944
|
-
return
|
|
17022
|
+
return nd(this);
|
|
16945
17023
|
}
|
|
16946
17024
|
triggerReroll() {
|
|
16947
|
-
|
|
17025
|
+
sd(this);
|
|
16948
17026
|
}
|
|
16949
17027
|
render() {
|
|
16950
|
-
|
|
17028
|
+
ld(this);
|
|
16951
17029
|
}
|
|
16952
17030
|
getRenderList() {
|
|
16953
|
-
return
|
|
17031
|
+
return hd(this);
|
|
16954
17032
|
}
|
|
16955
17033
|
getRerollLimit() {
|
|
16956
|
-
return
|
|
17034
|
+
return pd(this);
|
|
16957
17035
|
}
|
|
16958
17036
|
refreshGeneratedMission(e = !1) {
|
|
16959
|
-
|
|
17037
|
+
md(this, e);
|
|
16960
17038
|
}
|
|
16961
17039
|
rerollMission() {
|
|
16962
|
-
|
|
17040
|
+
gd(this);
|
|
16963
17041
|
}
|
|
16964
17042
|
showStartMenu() {
|
|
16965
|
-
|
|
17043
|
+
yd(this);
|
|
16966
17044
|
}
|
|
16967
17045
|
startChallenge(e) {
|
|
16968
|
-
|
|
17046
|
+
Ed(this, e);
|
|
16969
17047
|
}
|
|
16970
17048
|
isChallengeRun() {
|
|
16971
|
-
return
|
|
17049
|
+
return vd(this);
|
|
16972
17050
|
}
|
|
16973
17051
|
applyObjectiveReward(e) {
|
|
16974
|
-
|
|
17052
|
+
fd(this, e);
|
|
16975
17053
|
}
|
|
16976
17054
|
destroy() {
|
|
16977
|
-
|
|
17055
|
+
xd(this);
|
|
16978
17056
|
}
|
|
16979
17057
|
}
|
|
16980
|
-
function
|
|
16981
|
-
return new
|
|
17058
|
+
function bd(r) {
|
|
17059
|
+
return new Sd(r);
|
|
16982
17060
|
}
|
|
16983
17061
|
export {
|
|
16984
17062
|
Za as BrowserPlatform,
|
|
16985
|
-
|
|
17063
|
+
Sd as GameEngine,
|
|
16986
17064
|
Ca as LANGUAGES,
|
|
16987
17065
|
pr as ThemeManager,
|
|
16988
|
-
|
|
17066
|
+
bd as createAxonSurge,
|
|
16989
17067
|
re as isLanguage
|
|
16990
17068
|
};
|