genshin-world 4.1.2 → 4.3.1
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/README.md +2 -2
- package/dist/ElementDamageBonusAttributeMap-r29fkvtM.js +13 -0
- package/dist/EnemyState-DV57Bh7L.js +14 -0
- package/dist/GameDataset-B6H7oezV.js +279 -0
- package/dist/KitEventKind-CGMNB7W9.js +34 -0
- package/dist/{ReactionType-BBSdxyO3.js → ReactionType-hpFnoVev.js} +10 -16
- package/dist/TransformativeReactionType-CleFzf8J.js +15 -0
- package/dist/{addKitEffect-DBqTfm_3.js → addKitEffect-B922PsCn.js} +3 -0
- package/dist/addKitStatus-B0kqLgt1.js +9 -0
- package/dist/ainoKit-9nNWJtt8.js +111 -0
- package/dist/albedoKit-CqDSRYSS.js +133 -0
- package/dist/{alhaithamKit-Bhs-coX9.js → alhaithamKit-CPqHnLHg.js} +22 -8
- package/dist/aloyKit-mX4ue1UK.js +67 -0
- package/dist/alyoshaKit-BT4RmJiZ.js +4 -0
- package/dist/amberKit-DiseylUk.js +86 -0
- package/dist/arlecchinoKit-Ktk2qBrZ.js +17 -0
- package/dist/ayakaKit-B8lRaVEX.js +85 -0
- package/dist/{ayatoKit-BXZNajk7.js → ayatoKit-C1d3zZO0.js} +33 -4
- package/dist/baizhuKit-BahbIHOM.js +82 -0
- package/dist/barbaraKit-DyVdn4JU.js +123 -0
- package/dist/{beidouKit-sQUahtIk.js → beidouKit-DtdW2iYD.js} +39 -8
- package/dist/{bennettKit-Cr-zZ_25.js → bennettKit-DMybe5yt.js} +16 -6
- package/dist/{candaceKit-BUs_wwFU.js → candaceKit-D2JxxJ-U.js} +23 -14
- package/dist/castKitField-_74Co83C.js +23 -0
- package/dist/{characterPack-YAEqbhAX.d.ts → characterPack-COXASMYv.d.ts} +36 -9
- package/dist/characterPack-DibegH5Y.js +723 -0
- package/dist/characterPack.d.ts +1 -1
- package/dist/characterPack.js +3 -1
- package/dist/{charlotteKit-BOZiCPEb.js → charlotteKit-BHanMBgA.js} +34 -20
- package/dist/chascaKit-CF8KPyfH.js +53 -0
- package/dist/checkIsKitShieldLive-Ch8BgpHZ.js +4 -0
- package/dist/chevreuseKit-CH5xu1yJ.js +48 -0
- package/dist/{chioriKit-CxRUSHNw.js → chioriKit-CyJV9RuV.js} +4 -1
- package/dist/{chongyunKit-jrWQKRkG.js → chongyunKit-Bfp6g05V.js} +11 -15
- package/dist/citlaliKit-BFxlFfsf.js +63 -0
- package/dist/clorindeKit-CVP7rxb2.js +62 -0
- package/dist/collectKitEnergyDrops-Bt4C9o5I.js +66 -0
- package/dist/colleiKit-CCIYW8bc.js +52 -0
- package/dist/columbinaKit-CJ0as-TP.js +281 -0
- package/dist/computeFacingAngle-BaRnmfMH.js +8 -0
- package/dist/constants-C5MNdAtu.js +74 -0
- package/dist/constants-CFW7hhnp.js +187 -0
- package/dist/constants-DCZ-jxqC.js +4 -0
- package/dist/consumeKitResource-CbrNQtZP.js +18 -0
- package/dist/countKitResource-DvrWXcCc.js +5 -0
- package/dist/{createWindriseGroundPaint-BmZkGq-r.js → createWindriseGroundPaint-3I4-42A5.js} +14 -10
- package/dist/{cynoKit-DpfT5dmS.js → cynoKit-BsdVe5ip.js} +33 -8
- package/dist/dahliaKit-BvAE-bdw.js +21 -0
- package/dist/dehyaKit-DiC7yHRH.js +24 -0
- package/dist/dilucKit-C9Nz6xLi.js +167 -0
- package/dist/dionaKit-CSA9iGCG.js +69 -0
- package/dist/{doriKit-G9XTwwCP.js → doriKit-MallfU4i.js} +3 -2
- package/dist/{durinKit-BIYdUkbh.js → durinKit-Cwno0X9u.js} +7 -6
- package/dist/{emilieKit-0b2vhNtl.js → emilieKit-WNRG1HiW.js} +1 -1
- package/dist/emitKitEvent-MEMMkn9X.js +12 -0
- package/dist/escoffierKit-DC0knooj.js +96 -0
- package/dist/{eulaKit-DAENHIEx.js → eulaKit-B714Qm9u.js} +32 -16
- package/dist/{faruzanKit-BcW6D-N3.js → faruzanKit-Bnz3BRKw.js} +6 -4
- package/dist/findKitStatus-c5kVgwo6.js +4 -0
- package/dist/{fischlKit-Bm8vNmuV.js → fischlKit-BKJSDlae.js} +11 -13
- package/dist/flinsKit-CP5D22yk.js +31 -0
- package/dist/freminetKit-BKugfnRC.js +21 -0
- package/dist/{furinaKit-BREisAdJ.js → furinaKit-BGd_lLjr.js} +54 -43
- package/dist/gainKitResource-Cb8C2L3s.js +15 -0
- package/dist/gainPartyMemberEnergy-D9hiqeb4.js +12 -0
- package/dist/gamingKit-kIgqMnFq.js +26 -0
- package/dist/{ganyuKit-DLJa1t-Z.js → ganyuKit-DemmOZho.js} +31 -20
- package/dist/getActiveCharacterId-BAGBdS2c.js +10 -0
- package/dist/getBuffedCombatant-B7Fe7E_P.js +101 -0
- package/dist/getDeployedCharacterIds-ED-6JY4w.js +4 -0
- package/dist/getDeployedCombatants-BqXm9a6o.js +17 -0
- package/dist/getPartyMember-CPyR8-gA.js +9 -0
- package/dist/gorouKit-D1aEnA6A.js +154 -0
- package/dist/heizouKit-ePG5r1Cn.js +50 -0
- package/dist/huTaoKit-4-GOh-Vv.js +147 -0
- package/dist/iansanKit-CRWpDWLi.js +146 -0
- package/dist/ifaKit-DIM0kU9K.js +40 -0
- package/dist/illugaKit-D1QkAPS6.js +112 -0
- package/dist/{index-DQB91Tfq.d.ts → index-CPoeaSkB.d.ts} +19875 -7580
- package/dist/index.d.ts +4 -4
- package/dist/index.js +47247 -25551
- package/dist/ineffaKit-vPT9zyfI.js +155 -0
- package/dist/{ittoKit-CfwXkR0g.js → ittoKit-DzOW-TE9.js} +33 -12
- package/dist/jahodaKit-9YGHCAcA.js +347 -0
- package/dist/{jeanKit-Do8vx5Kp.js → jeanKit-9eNCZ6dx.js} +39 -5
- package/dist/kachinaKit-BrwrswKB.js +7 -0
- package/dist/kaeyaKit-CY35PXmA.js +92 -0
- package/dist/kavehKit-BE7gKtWP.js +34 -0
- package/dist/{kazuhaKit-C5gn8iGg.js → kazuhaKit-qOCjcrqH.js} +26 -4
- package/dist/keqingKit-BzAWT9BG.js +101 -0
- package/dist/kinichKit-CymKuu1M.js +72 -0
- package/dist/kiraraKit-DyhPmhEL.js +71 -0
- package/dist/kleeKit-BwHcJznq.js +96 -0
- package/dist/kokomiKit-CA0CzriO.js +84 -0
- package/dist/kujouSaraKit-BW83jN0G.js +96 -0
- package/dist/{kukiKit-DcARldP9.js → kukiKit-AxsqxqeV.js} +22 -10
- package/dist/lanYanKit-ttJg9kuB.js +27 -0
- package/dist/laumaKit-Byo_-u9y.js +162 -0
- package/dist/laylaKit-L2t_Rj6L.js +181 -0
- package/dist/lisaKit-BsYIJpRR.js +66 -0
- package/dist/lynetteKit-N8fgD5-q.js +40 -0
- package/dist/lyneyKit-T586Gpbd.js +43 -0
- package/dist/mavuikaKit-nJaEDdfr.js +22 -0
- package/dist/{mikaKit-C9xDhjJg.js → mikaKit-CdLY5aCh.js} +6 -2
- package/dist/mizukiKit-BEXzx_Y6.js +58 -0
- package/dist/monaKit-ONoXQhmJ.js +146 -0
- package/dist/mualaniKit-DXSW984Q.js +7 -0
- package/dist/nahidaKit-f_e4vgfj.js +113 -0
- package/dist/naviaKit-BtcUuWFE.js +140 -0
- package/dist/neferKit-12ZI_Dj4.js +30 -0
- package/dist/neuvilletteKit-l08eZ2jR.js +119 -0
- package/dist/nicoleKit-BGBQ8CMU.js +282 -0
- package/dist/nilouKit-BH5jWBqC.js +105 -0
- package/dist/{ningguangKit-N88BhNb_.js → ningguangKit-YmHdRYcn.js} +20 -12
- package/dist/noelleKit-IDYWuE-6.js +148 -0
- package/dist/odetteKit-Dw5i_A2J.js +102 -0
- package/dist/{ororonKit-DiAd2dlh.js → ororonKit-HsTfXvsW.js} +10 -4
- package/dist/pruneKit-PR-_GqAt.js +35 -0
- package/dist/{qiqiKit-DCtsriE7.js → qiqiKit-HX-bDmRf.js} +18 -1
- package/dist/{raidenKit-BBWMmPFn.js → raidenKit-DUUHQxaP.js} +19 -10
- package/dist/{razorKit-CBgdHYic.js → razorKit-BQIWQCQH.js} +44 -12
- package/dist/{readCharacterAvatar-C7FufK7J.js → readCharacterAvatar-QXdaK_b0.js} +16 -13
- package/dist/removeKitEffects--6C1cGOY.js +6 -0
- package/dist/rosariaKit-Dn-L-EAF.js +60 -0
- package/dist/sandroneKit-BwVm_e-C.js +4 -0
- package/dist/save-BONR7TY2.js +2602 -0
- package/dist/save.d.ts +2 -2
- package/dist/save.js +1 -1
- package/dist/sayuKit-CzPYsFzM.js +68 -0
- package/dist/{sceneExport-BZaF05K-.d.ts → sceneExport-BmTj9FRK.d.ts} +2 -1
- package/dist/{sceneExport-DiiIi0PM.js → sceneExport-p78Obc7R.js} +2 -1
- package/dist/sceneExport.d.ts +1 -1
- package/dist/sceneExport.js +1 -1
- package/dist/sethosKit-Dnj7Y8q0.js +7 -0
- package/dist/shenheKit-DyoqKfsa.js +153 -0
- package/dist/sigewinneKit-a6h94xdX.js +22 -0
- package/dist/spendKitResource-BMOGVq9a.js +10 -0
- package/dist/style.css +1353 -395
- package/dist/{sucroseKit-DF0jcI2y.js → sucroseKit-D2zXGz1h.js} +32 -8
- package/dist/{tartagliaKit-Bbtww18S.js → tartagliaKit-BwGA6N1Y.js} +16 -15
- package/dist/terrainTileWorker.js +3 -3
- package/dist/thomaKit-BJfMbEIx.js +96 -0
- package/dist/tighnariKit-RYM02O_t.js +46 -0
- package/dist/varesaKit-tl3QT31L.js +37 -0
- package/dist/{ventiKit-BcQkbI-z.js → ventiKit-FYuBhbPY.js} +5 -4
- package/dist/vesnaKit-CmM1CVe6.js +4 -0
- package/dist/vodyanitsaKit-7WoQIUHv.js +4 -0
- package/dist/wriothesleyKit-BtcN4_Bv.js +103 -0
- package/dist/{xianglingKit-BPQN7cxU.js → xianglingKit-BQjcNu7M.js} +9 -3
- package/dist/xianyunKit-D76nKV4f.js +108 -0
- package/dist/{xiaoKit-BDI_SODG.js → xiaoKit-DPd4UkOr.js} +36 -21
- package/dist/xilonenKit-BykTSGYe.js +42 -0
- package/dist/{xingqiuKit-Cv8JYeYO.js → xingqiuKit-BZz9JUTt.js} +35 -14
- package/dist/{xinyanKit-CffF-Er0.js → xinyanKit-DN0kCOuW.js} +41 -16
- package/dist/{yaeMikoKit-xAKYm2K6.js → yaeMikoKit-hw1By6wO.js} +17 -4
- package/dist/{yanfeiKit-C6elnkmn.js → yanfeiKit-CnIuIJrr.js} +37 -4
- package/dist/yaoyaoKit-5ny2CT69.js +202 -0
- package/dist/yelanKit-CQcriSs3.js +79 -0
- package/dist/yoimiyaKit-BlohgeOv.js +91 -0
- package/dist/yunjinKit-BJEkLGZt.js +87 -0
- package/dist/{zhongliKit-uMdKUTP-.js → zhongliKit-Cm3k5sX5.js} +21 -11
- package/dist/zibaiKit-C0elIlw8.js +63 -0
- package/package.json +10 -13
- package/dist/ainoKit-Dy3vTp3B.js +0 -28
- package/dist/albedoKit-CU5N1Hnm.js +0 -43
- package/dist/aloyKit-C7x_Jf16.js +0 -32
- package/dist/amberKit-BO7ZAQgU.js +0 -38
- package/dist/arlecchinoKit-DJawwVVl.js +0 -4
- package/dist/ayakaKit-Bu_QuYsR.js +0 -26
- package/dist/baizhuKit-8_4IzZ3A.js +0 -33
- package/dist/barbaraKit-B5DpLyHJ.js +0 -58
- package/dist/characterPack-zycIUHje.js +0 -641
- package/dist/chascaKit-C1Csj0Yf.js +0 -4
- package/dist/chevreuseKit-DDHga8Tj.js +0 -20
- package/dist/citlaliKit-sv7XrzVx.js +0 -4
- package/dist/clorindeKit-DxtRn_To.js +0 -4
- package/dist/colleiKit-CO_n9qra.js +0 -28
- package/dist/columbinaKit-DrW0EvqN.js +0 -31
- package/dist/constants-BqrUOf2M.js +0 -48
- package/dist/dahliaKit-B8fOPvvi.js +0 -16
- package/dist/dehyaKit-42tyEI0Z.js +0 -4
- package/dist/dilucKit-EwLUSPgs.js +0 -63
- package/dist/dionaKit-89B1hwYL.js +0 -48
- package/dist/escoffierKit-Da5UAvAF.js +0 -48
- package/dist/flinsKit-GUnFJdUg.js +0 -9
- package/dist/freminetKit-CpwsVmTT.js +0 -4
- package/dist/gamingKit-D9ekWGMJ.js +0 -4
- package/dist/gorouKit-DkpaGNA8.js +0 -94
- package/dist/heizouKit-B6kRXVCP.js +0 -35
- package/dist/huTaoKit-drjrzLjf.js +0 -58
- package/dist/iansanKit-RNjD9nSq.js +0 -4
- package/dist/ifaKit-CXWxCOPI.js +0 -4
- package/dist/illugaKit-BFtXIf3P.js +0 -4
- package/dist/ineffaKit-3J0FJo2E.js +0 -51
- package/dist/jahodaKit-C1sdSDfr.js +0 -97
- package/dist/kachinaKit-DWLNDpgO.js +0 -4
- package/dist/kaeyaKit-DU8Df4RE.js +0 -14
- package/dist/kavehKit-BWoAaKs4.js +0 -9
- package/dist/keqingKit-uGsb_p7t.js +0 -12
- package/dist/kinichKit-Dp3lNUJt.js +0 -22
- package/dist/kiraraKit-CCAGXouk.js +0 -43
- package/dist/kleeKit-BzcJLC2i.js +0 -48
- package/dist/kokomiKit-DBdTlTDr.js +0 -42
- package/dist/kujouSaraKit-DDE-24jd.js +0 -56
- package/dist/lanYanKit-B3lwZ7OW.js +0 -18
- package/dist/laumaKit-DkG-i0rL.js +0 -59
- package/dist/laylaKit-DYtz0tSZ.js +0 -41
- package/dist/lisaKit-CWUiiam1.js +0 -22
- package/dist/lynetteKit-BnNW81Pm.js +0 -20
- package/dist/lyneyKit-D6yTnfFv.js +0 -19
- package/dist/mavuikaKit-CUC1kHRJ.js +0 -4
- package/dist/mizukiKit-DY-gHM8N.js +0 -4
- package/dist/monaKit-B748iTEy.js +0 -26
- package/dist/mualaniKit-B-Km_dcQ.js +0 -4
- package/dist/nahidaKit-BGRc-swN.js +0 -4
- package/dist/naviaKit-CHh2VdX3.js +0 -64
- package/dist/neferKit-BTALTTiV.js +0 -4
- package/dist/neuvilletteKit-DAfX_2tC.js +0 -4
- package/dist/nicoleKit-BVjL7LI0.js +0 -4
- package/dist/nilouKit-BgM4u-hg.js +0 -52
- package/dist/noelleKit-DDewnuJ9.js +0 -48
- package/dist/pruneKit-CHkC_OSB.js +0 -4
- package/dist/rosariaKit-D_RDXpLp.js +0 -29
- package/dist/save-CEbj1mOx.js +0 -854
- package/dist/sayuKit-Hnv4iA3_.js +0 -35
- package/dist/sethosKit-8EK04AA4.js +0 -4
- package/dist/shenheKit-DqrG2I4S.js +0 -50
- package/dist/sigewinneKit-CYJyadTr.js +0 -10
- package/dist/thomaKit-Zm5AJ9Fm.js +0 -64
- package/dist/tighnariKit-CSa_Yqpp.js +0 -4
- package/dist/varesaKit-CMXLbBv9.js +0 -4
- package/dist/wriothesleyKit-CBTnYlOy.js +0 -4
- package/dist/xianyunKit-CVhuYBde.js +0 -4
- package/dist/xilonenKit-YAVOPRwm.js +0 -4
- package/dist/yaoyaoKit-CaPIIp-i.js +0 -4
- package/dist/yelanKit-Da0oQ6yu.js +0 -33
- package/dist/yoimiyaKit-DTENWB4y.js +0 -49
- package/dist/yunjinKit-PP4yeyn1.js +0 -22
- package/dist/zibaiKit-Dq6mFWSx.js +0 -4
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import "./GameDataset-B6H7oezV.js";
|
|
2
|
+
import { t as getBuffedCombatant } from "./getBuffedCombatant-B7Fe7E_P.js";
|
|
3
|
+
import { t as getPartyMember } from "./getPartyMember-CPyR8-gA.js";
|
|
4
|
+
import "./KitEventKind-CGMNB7W9.js";
|
|
5
|
+
import { t as findKitStatus } from "./findKitStatus-c5kVgwo6.js";
|
|
6
|
+
import { t as addKitStatus } from "./addKitStatus-B0kqLgt1.js";
|
|
7
|
+
import { buffKitMember, buffKitTeam, castKitSummon, checkIsInKitField, checkIsKitStatusActive, createAheadBody, createKitBody, findStandingKitSummon, startKitCooldown } from "./index.js";
|
|
8
|
+
//#region src/services/kit/characters/albedoKit.ts
|
|
9
|
+
const SOLAR_ISOTOMA_ID = "albedo-solar-isotoma";
|
|
10
|
+
const TRANSIENT_BLOSSOM_COOLDOWN_STATUS_ID = "albedo-transient-blossom-cooldown";
|
|
11
|
+
const CALCITE_MIGHT_ASCENSION = 1;
|
|
12
|
+
const CALCITE_MIGHT_HEALTH_SHARE = .5;
|
|
13
|
+
const CALCITE_MIGHT_DAMAGE_BONUS = .25;
|
|
14
|
+
const TECTONIC_TIDE_ASCENSION = 4;
|
|
15
|
+
const TECTONIC_TIDE_ELEMENTAL_MASTERY = 125;
|
|
16
|
+
const TECTONIC_TIDE_ELEMENTAL_MASTERY_SECONDS = 10;
|
|
17
|
+
const TECTONIC_TIDE_SOURCE = "albedo-tectonic-tide";
|
|
18
|
+
const ALBEDO_CONSTELLATION_1 = 1;
|
|
19
|
+
const ALBEDO_CONSTELLATION_4 = 4;
|
|
20
|
+
const CONSTELLATION_4_PLUNGING_ATTACK_BONUS = .3;
|
|
21
|
+
const CONSTELLATION_4_SECONDS = 1;
|
|
22
|
+
const CONSTELLATION_4_CHECK_SECONDS = .3;
|
|
23
|
+
const CONSTELLATION_4_CHECK_STATUS_ID = "albedo-constellation-4-check";
|
|
24
|
+
const CONSTELLATION_4_SOURCE = "albedo-constellation-4";
|
|
25
|
+
const TRANSIENT_BLOSSOM_ENERGY = 1.2;
|
|
26
|
+
const SOLAR_ISOTOMA_DEFENSE_PERCENT = .5;
|
|
27
|
+
const SOLAR_ISOTOMA_DEFENSE_SECONDS = 20;
|
|
28
|
+
const FLOWER_OF_EDEN_SOURCE = "albedo-flower-of-eden";
|
|
29
|
+
const ALBEDO_CONSTELLATION_2 = 2;
|
|
30
|
+
const FATAL_RECKONING_DEFENSE_SHARE = .3;
|
|
31
|
+
const FATAL_RECKONING_MAX_STACKS = 4;
|
|
32
|
+
const FATAL_RECKONING_SECONDS = 30;
|
|
33
|
+
const FATAL_RECKONING_STATUS_ID = "albedo-fatal-reckoning";
|
|
34
|
+
const ALBEDO_CHARACTER_ID = 10000038;
|
|
35
|
+
const addFatalReckoningStack = (kitEffectState, combatant) => {
|
|
36
|
+
const { characterId } = combatant;
|
|
37
|
+
const stacks = checkIsKitStatusActive(kitEffectState.effects, characterId, FATAL_RECKONING_STATUS_ID) ? findKitStatus(kitEffectState.effects, characterId, FATAL_RECKONING_STATUS_ID)?.stacks ?? 0 : 0;
|
|
38
|
+
addKitStatus(kitEffectState, characterId, {
|
|
39
|
+
id: FATAL_RECKONING_STATUS_ID,
|
|
40
|
+
secondsRemaining: FATAL_RECKONING_SECONDS,
|
|
41
|
+
stacks: Math.min(FATAL_RECKONING_MAX_STACKS, stacks + 1)
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
const withFatalReckoningBonus = (hit, bonus) => ({
|
|
45
|
+
...hit,
|
|
46
|
+
additiveBaseDamageBonus: (combatant) => (hit.additiveBaseDamageBonus?.(combatant) ?? 0) + bonus
|
|
47
|
+
});
|
|
48
|
+
const consumeFatalReckoningBonus = (context) => {
|
|
49
|
+
const { activeCombatant: combatant, characterIdCombatantMap, kitEffectState, party } = context;
|
|
50
|
+
const { characterId } = combatant;
|
|
51
|
+
if (combatant.constellationCount < ALBEDO_CONSTELLATION_2 || !checkIsKitStatusActive(kitEffectState.effects, characterId, FATAL_RECKONING_STATUS_ID)) return 0;
|
|
52
|
+
const status = findKitStatus(kitEffectState.effects, characterId, FATAL_RECKONING_STATUS_ID);
|
|
53
|
+
const stacks = status?.stacks ?? 0;
|
|
54
|
+
if (status) status.stacks = 0;
|
|
55
|
+
const { defense } = getBuffedCombatant(combatant, kitEffectState.effects, party, characterIdCombatantMap).attributes;
|
|
56
|
+
return stacks * FATAL_RECKONING_DEFENSE_SHARE * defense;
|
|
57
|
+
};
|
|
58
|
+
const createAlbedoKitBehaviour = ({ readHit, readHits, readParameter, readSeconds }) => {
|
|
59
|
+
const solarIsotomaAheadMetres = readParameter("solarIsotomaAheadMetres");
|
|
60
|
+
const solarIsotomaRadius = readParameter("solarIsotomaRadius");
|
|
61
|
+
const solarIsotomaSeconds = readSeconds("solarIsotomaDuration");
|
|
62
|
+
const transientBlossomCooldownSeconds = readSeconds("transientBlossomCooldown");
|
|
63
|
+
const solarIsotomaHit = readHit("solarIsotoma");
|
|
64
|
+
const transientBlossom = readHit("transientBlossom");
|
|
65
|
+
const fatalBlossoms = readHits("fatalBlossoms");
|
|
66
|
+
return {
|
|
67
|
+
burst: { onStart: (context) => {
|
|
68
|
+
const { activeCombatant: combatant, kitEffectState, party } = context;
|
|
69
|
+
const fatalReckoningBonus = consumeFatalReckoningBonus(context);
|
|
70
|
+
const blossoms = fatalReckoningBonus === 0 ? fatalBlossoms : fatalBlossoms.map((hit) => withFatalReckoningBonus(hit, fatalReckoningBonus));
|
|
71
|
+
const solarIsotoma = findStandingKitSummon(kitEffectState.effects, SOLAR_ISOTOMA_ID, combatant.characterId);
|
|
72
|
+
if (solarIsotoma && solarIsotoma.secondsRemaining > 0) castKitSummon(kitEffectState, solarIsotoma.body, solarIsotoma.combatant, blossoms, { attackTag: "ElementalBurst" });
|
|
73
|
+
if (combatant.ascension < TECTONIC_TIDE_ASCENSION) return;
|
|
74
|
+
buffKitTeam(kitEffectState, party, {
|
|
75
|
+
amount: TECTONIC_TIDE_ELEMENTAL_MASTERY,
|
|
76
|
+
attribute: "FIGHT_PROP_ELEMENT_MASTERY",
|
|
77
|
+
secondsRemaining: TECTONIC_TIDE_ELEMENTAL_MASTERY_SECONDS,
|
|
78
|
+
source: TECTONIC_TIDE_SOURCE
|
|
79
|
+
});
|
|
80
|
+
} },
|
|
81
|
+
getStrikeDamageBonus: ({ combatant, hit }, enemy) => combatant.ascension >= CALCITE_MIGHT_ASCENSION && hit === transientBlossom && enemy.health / enemy.maxHealth < CALCITE_MIGHT_HEALTH_SHARE ? CALCITE_MIGHT_DAMAGE_BONUS : 0,
|
|
82
|
+
onKitEvent: (event, { kitEffectState, party }, combatant) => {
|
|
83
|
+
if (event.kind !== "DamageTaken") return;
|
|
84
|
+
const { characterId } = combatant;
|
|
85
|
+
const { effects } = kitEffectState;
|
|
86
|
+
const solarIsotoma = findStandingKitSummon(effects, SOLAR_ISOTOMA_ID, characterId);
|
|
87
|
+
if (!solarIsotoma || solarIsotoma.secondsRemaining <= 0) return;
|
|
88
|
+
const { position } = event.enemy;
|
|
89
|
+
if (Math.hypot(position.x - solarIsotoma.body.position.x, position.z - solarIsotoma.body.position.z) > solarIsotomaRadius || !startKitCooldown(kitEffectState, characterId, TRANSIENT_BLOSSOM_COOLDOWN_STATUS_ID, transientBlossomCooldownSeconds)) return;
|
|
90
|
+
castKitSummon(kitEffectState, createKitBody(position), solarIsotoma.combatant, [transientBlossom], { attackTag: "ElementalSkill" });
|
|
91
|
+
if (combatant.constellationCount >= ALBEDO_CONSTELLATION_2) addFatalReckoningStack(kitEffectState, combatant);
|
|
92
|
+
if (combatant.constellationCount < ALBEDO_CONSTELLATION_1) return;
|
|
93
|
+
const member = getPartyMember(party, characterId);
|
|
94
|
+
member.energy = Math.min(combatant.kit.burstEnergyCost, member.energy + TRANSIENT_BLOSSOM_ENERGY);
|
|
95
|
+
},
|
|
96
|
+
onStep: ({ activeCombatant, body, kitEffectState }, combatant) => {
|
|
97
|
+
if (combatant.constellationCount < ALBEDO_CONSTELLATION_4) return;
|
|
98
|
+
if (!startKitCooldown(kitEffectState, combatant.characterId, CONSTELLATION_4_CHECK_STATUS_ID, CONSTELLATION_4_CHECK_SECONDS)) return;
|
|
99
|
+
const solarIsotoma = findStandingKitSummon(kitEffectState.effects, SOLAR_ISOTOMA_ID, combatant.characterId);
|
|
100
|
+
if (!solarIsotoma || solarIsotoma.secondsRemaining <= 0 || !checkIsInKitField({
|
|
101
|
+
centre: solarIsotoma.body.position,
|
|
102
|
+
radius: solarIsotomaRadius
|
|
103
|
+
}, body.position)) return;
|
|
104
|
+
buffKitMember(kitEffectState, activeCombatant.characterId, {
|
|
105
|
+
amount: CONSTELLATION_4_PLUNGING_ATTACK_BONUS,
|
|
106
|
+
attribute: "FIGHT_PROP_PLUNGING_ATTACK_ADD_HURT",
|
|
107
|
+
secondsRemaining: CONSTELLATION_4_SECONDS,
|
|
108
|
+
source: CONSTELLATION_4_SOURCE
|
|
109
|
+
});
|
|
110
|
+
},
|
|
111
|
+
skill: { onStart: ({ activeCombatant: combatant, body, kitEffectState }) => {
|
|
112
|
+
if (combatant.constellationCount >= ALBEDO_CONSTELLATION_1) buffKitMember(kitEffectState, combatant.characterId, {
|
|
113
|
+
amount: SOLAR_ISOTOMA_DEFENSE_PERCENT,
|
|
114
|
+
attribute: "FIGHT_PROP_DEFENSE_PERCENT",
|
|
115
|
+
secondsRemaining: SOLAR_ISOTOMA_DEFENSE_SECONDS,
|
|
116
|
+
source: FLOWER_OF_EDEN_SOURCE
|
|
117
|
+
});
|
|
118
|
+
for (const effect of kitEffectState.effects) if (effect.kind === "summon" && effect.id === SOLAR_ISOTOMA_ID) effect.secondsRemaining = 0;
|
|
119
|
+
if (combatant.constellationCount >= ALBEDO_CONSTELLATION_4) addKitStatus(kitEffectState, combatant.characterId, {
|
|
120
|
+
id: CONSTELLATION_4_CHECK_STATUS_ID,
|
|
121
|
+
secondsRemaining: solarIsotomaHit.hitmarkSeconds + CONSTELLATION_4_CHECK_SECONDS
|
|
122
|
+
});
|
|
123
|
+
castKitSummon(kitEffectState, createAheadBody(body, solarIsotomaAheadMetres), combatant, [solarIsotomaHit], {
|
|
124
|
+
attackTag: "ElementalSkill",
|
|
125
|
+
id: SOLAR_ISOTOMA_ID,
|
|
126
|
+
secondsRemaining: solarIsotomaSeconds,
|
|
127
|
+
spawnSeconds: solarIsotomaHit.hitmarkSeconds
|
|
128
|
+
});
|
|
129
|
+
} }
|
|
130
|
+
};
|
|
131
|
+
};
|
|
132
|
+
//#endregion
|
|
133
|
+
export { ALBEDO_CHARACTER_ID, createAlbedoKitBehaviour };
|
|
@@ -1,10 +1,18 @@
|
|
|
1
|
-
import "./
|
|
2
|
-
import { t as
|
|
3
|
-
import
|
|
1
|
+
import "./GameDataset-B6H7oezV.js";
|
|
2
|
+
import { t as getDeployedCharacterIds } from "./getDeployedCharacterIds-ED-6JY4w.js";
|
|
3
|
+
import "./KitEventKind-CGMNB7W9.js";
|
|
4
|
+
import { t as addKitEffect } from "./addKitEffect-B922PsCn.js";
|
|
5
|
+
import { t as findKitStatus } from "./findKitStatus-c5kVgwo6.js";
|
|
6
|
+
import { t as addKitStatus } from "./addKitStatus-B0kqLgt1.js";
|
|
7
|
+
import { t as castKitField } from "./castKitField-_74Co83C.js";
|
|
8
|
+
import { buffKitMember, castKitSummon, changeKitSkillCooldown, elementalMasteryMultiplier, scheduleKitTask, startKitCooldown } from "./index.js";
|
|
4
9
|
import { takeOne } from "@esposter/shared";
|
|
5
10
|
//#region src/services/kit/characters/alhaithamKit.ts
|
|
6
11
|
const ASCENSION_1 = 1;
|
|
7
12
|
const ASCENSION_4 = 4;
|
|
13
|
+
const CONSTELLATION_1 = 1;
|
|
14
|
+
const CONSTELLATION_1_ICD_SECONDS = 1;
|
|
15
|
+
const CONSTELLATION_1_ICD_STATUS_ID = "alhaitham-c1-cut-icd";
|
|
8
16
|
const CONSTELLATION_2 = 2;
|
|
9
17
|
const CONSTELLATION_4 = 4;
|
|
10
18
|
const CONSTELLATION_6 = 6;
|
|
@@ -84,7 +92,6 @@ const addConstellation6Buffs = (kitEffectState, characterId, overflow, buffs) =>
|
|
|
84
92
|
});
|
|
85
93
|
}
|
|
86
94
|
};
|
|
87
|
-
const elementalMasteryMultiplier = (combatant, multiplier) => combatant.attributes.attributeTotalMap["FIGHT_PROP_ELEMENT_MASTERY"] * multiplier;
|
|
88
95
|
const getSkillMirrorGain = (effects, characterId) => getMirrorCount(effects, characterId) === 0 ? 2 : 1;
|
|
89
96
|
const createAlhaithamKitBehaviour = ({ kit, readHits, readParameter, readSeconds, readSecondsList }) => {
|
|
90
97
|
const mirrorSecondsList = readSecondsList("universalityMirrorDelays");
|
|
@@ -115,7 +122,14 @@ const createAlhaithamKitBehaviour = ({ kit, readHits, readParameter, readSeconds
|
|
|
115
122
|
constellation6CriticalRate,
|
|
116
123
|
constellation6Seconds: readSeconds("constellation6Duration")
|
|
117
124
|
};
|
|
118
|
-
const projectionHitBehaviour = {
|
|
125
|
+
const projectionHitBehaviour = {
|
|
126
|
+
additiveBaseDamageBonus: (striker) => elementalMasteryMultiplier(striker, projectionElementalMasteryShare),
|
|
127
|
+
onStrike: ({ kitEffectState, party }, { combatant }) => {
|
|
128
|
+
if (combatant.constellationCount < CONSTELLATION_1) return;
|
|
129
|
+
if (!startKitCooldown(kitEffectState, combatant.characterId, CONSTELLATION_1_ICD_STATUS_ID, CONSTELLATION_1_ICD_SECONDS)) return;
|
|
130
|
+
changeKitSkillCooldown(party, combatant.characterId, -1.2);
|
|
131
|
+
}
|
|
132
|
+
};
|
|
119
133
|
const projectionAttacks = [
|
|
120
134
|
readHits("projectionAttackOneMirror", projectionHitBehaviour),
|
|
121
135
|
readHits("projectionAttackTwoMirrors", projectionHitBehaviour),
|
|
@@ -156,7 +170,7 @@ const createAlhaithamKitBehaviour = ({ kit, readHits, readParameter, readSeconds
|
|
|
156
170
|
if (isMirrorSource && ascension >= ASCENSION_1 && startKitCooldown(kitEffectState, characterId, ASCENSION_1_ICD_STATUS_ID, ascension1IcdSeconds)) gainMirrors(kitEffectState, body, combatant, 1);
|
|
157
171
|
const count = getMirrorCount(kitEffectState.effects, characterId);
|
|
158
172
|
if (count === 0 || !startKitCooldown(kitEffectState, characterId, PROJECTION_ICD_STATUS_ID, projectionCooldownSeconds)) return;
|
|
159
|
-
castKitSummon(kitEffectState, body, combatant, takeOne(projectionAttacks, count - 1));
|
|
173
|
+
castKitSummon(kitEffectState, body, combatant, takeOne(projectionAttacks, count - 1), { attackTag: "ElementalSkill" });
|
|
160
174
|
};
|
|
161
175
|
const strikeHitBehaviour = { onStrike: (context, strike) => triggerProjection(context, strike, false) };
|
|
162
176
|
const mirrorSourceHitBehaviour = { onStrike: (context, strike) => triggerProjection(context, strike, true) };
|
|
@@ -168,7 +182,7 @@ const createAlhaithamKitBehaviour = ({ kit, readHits, readParameter, readSeconds
|
|
|
168
182
|
burst: { onStart: ({ activeCombatant: combatant, body, kitEffectState, party }) => {
|
|
169
183
|
const { characterId, constellationCount } = combatant;
|
|
170
184
|
const consumed = getMirrorCount(kitEffectState.effects, characterId);
|
|
171
|
-
castKitSummon(kitEffectState, body, combatant, particularFieldHits.slice(0, burstBaseHitCount + burstHitCountPerMirror * consumed));
|
|
185
|
+
castKitSummon(kitEffectState, body, combatant, particularFieldHits.slice(0, burstBaseHitCount + burstHitCountPerMirror * consumed), { attackTag: "ElementalBurst" });
|
|
172
186
|
setMirrorCount(kitEffectState, characterId, 0);
|
|
173
187
|
if (constellationCount >= CONSTELLATION_4 && consumed > 0) for (const memberId of getDeployedCharacterIds(party)) {
|
|
174
188
|
if (memberId === characterId) continue;
|
|
@@ -192,7 +206,7 @@ const createAlhaithamKitBehaviour = ({ kit, readHits, readParameter, readSeconds
|
|
|
192
206
|
}, { id: MIRROR_REGEN_TASK_ID });
|
|
193
207
|
} },
|
|
194
208
|
chargedAttack: { hits: kit.chargedAttack.hits.map(() => mirrorSourceHitBehaviour) },
|
|
195
|
-
getStrikeDamageBonus: ({ combatant, hit }) => combatant.ascension >= ASCENSION_4 && (hit.internalCooldownTag === "ElementalBurst" || hit.internalCooldownTag === "ElementalSkill") ? Math.min(combatant
|
|
209
|
+
getStrikeDamageBonus: ({ combatant, hit }) => combatant.ascension >= ASCENSION_4 && (hit.internalCooldownTag === "ElementalBurst" || hit.internalCooldownTag === "ElementalSkill") ? Math.min(elementalMasteryMultiplier(combatant, ascension4DamagePerElementalMastery), ascension4DamageMax) : 0,
|
|
196
210
|
normalAttacks: kit.normalAttacks.map(({ hits }) => ({ hits: hits.map(() => strikeHitBehaviour) })),
|
|
197
211
|
onKitEvent: (event, { kitEffectState }, combatant) => {
|
|
198
212
|
if (event.kind !== "CharacterSwapped" || event.previousCharacterId !== combatant.characterId) return;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import "./GameDataset-B6H7oezV.js";
|
|
2
|
+
import { t as addKitEffect } from "./addKitEffect-B922PsCn.js";
|
|
3
|
+
import { t as addKitStatus } from "./addKitStatus-B0kqLgt1.js";
|
|
4
|
+
import { t as spendKitResource } from "./spendKitResource-BMOGVq9a.js";
|
|
5
|
+
import { t as gainKitResource } from "./gainKitResource-Cb8C2L3s.js";
|
|
6
|
+
import { buffKitMember, buffKitTeam, checkHasKitStatus, scheduleKitTask } from "./index.js";
|
|
7
|
+
//#region src/services/kit/characters/aloyKit.ts
|
|
8
|
+
const COIL_RUSHING_ICE_STACKS = 4;
|
|
9
|
+
const COIL_RESOURCE_ID = "aloy-coil";
|
|
10
|
+
const RUSHING_ICE_STATUS_ID = "aloy-rushing-ice";
|
|
11
|
+
const ASCENSION_1 = 1;
|
|
12
|
+
const ASCENSION_1_ATTACK_SHARE = .08;
|
|
13
|
+
const ASCENSION_1_SELF_ATTACK_SHARE = .08;
|
|
14
|
+
const ASCENSION_1_SOURCE = "aloy-ascension-1";
|
|
15
|
+
const ASCENSION_1_SELF_SOURCE = "aloy-ascension-1-self";
|
|
16
|
+
const ASCENSION_4 = 4;
|
|
17
|
+
const ASCENSION_4_CRYO_SHARE_PER_STACK = .035;
|
|
18
|
+
const ASCENSION_4_MAX_STACKS = 10;
|
|
19
|
+
const ASCENSION_4_SOURCE = "aloy-ascension-4";
|
|
20
|
+
const addCryoStacks = (kitEffectState, characterId, stacks, secondsRemaining) => buffKitMember(kitEffectState, characterId, {
|
|
21
|
+
amount: Math.min(stacks, ASCENSION_4_MAX_STACKS) * ASCENSION_4_CRYO_SHARE_PER_STACK,
|
|
22
|
+
attribute: "FIGHT_PROP_ICE_ADD_HURT",
|
|
23
|
+
secondsRemaining,
|
|
24
|
+
source: ASCENSION_4_SOURCE
|
|
25
|
+
});
|
|
26
|
+
const createAloyKitBehaviour = ({ readSeconds }) => {
|
|
27
|
+
const rushingIceSeconds = readSeconds("rushingIceDuration");
|
|
28
|
+
const addCoilStack = ({ kitEffectState, party }, { combatant }) => {
|
|
29
|
+
if (checkHasKitStatus(kitEffectState.effects, combatant.characterId, RUSHING_ICE_STATUS_ID)) return;
|
|
30
|
+
if (gainKitResource(kitEffectState, combatant.characterId, COIL_RESOURCE_ID, 1, COIL_RUSHING_ICE_STACKS) < COIL_RUSHING_ICE_STACKS) return;
|
|
31
|
+
spendKitResource(kitEffectState, combatant.characterId, COIL_RESOURCE_ID);
|
|
32
|
+
addKitEffect(kitEffectState, {
|
|
33
|
+
characterId: combatant.characterId,
|
|
34
|
+
element: "Ice",
|
|
35
|
+
kind: "infusion",
|
|
36
|
+
secondsRemaining: rushingIceSeconds
|
|
37
|
+
});
|
|
38
|
+
addKitStatus(kitEffectState, combatant.characterId, {
|
|
39
|
+
id: RUSHING_ICE_STATUS_ID,
|
|
40
|
+
secondsRemaining: rushingIceSeconds
|
|
41
|
+
});
|
|
42
|
+
if (combatant.ascension >= ASCENSION_1) {
|
|
43
|
+
buffKitTeam(kitEffectState, party, {
|
|
44
|
+
amount: ASCENSION_1_ATTACK_SHARE,
|
|
45
|
+
attribute: "FIGHT_PROP_ATTACK_PERCENT",
|
|
46
|
+
secondsRemaining: rushingIceSeconds,
|
|
47
|
+
source: ASCENSION_1_SOURCE
|
|
48
|
+
});
|
|
49
|
+
buffKitMember(kitEffectState, combatant.characterId, {
|
|
50
|
+
amount: ASCENSION_1_SELF_ATTACK_SHARE,
|
|
51
|
+
attribute: "FIGHT_PROP_ATTACK_PERCENT",
|
|
52
|
+
secondsRemaining: rushingIceSeconds,
|
|
53
|
+
source: ASCENSION_1_SELF_SOURCE
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
if (combatant.ascension < ASCENSION_4) return;
|
|
57
|
+
addCryoStacks(kitEffectState, combatant.characterId, 1, rushingIceSeconds);
|
|
58
|
+
for (let second = 1; second < ASCENSION_4_MAX_STACKS; second++) scheduleKitTask(kitEffectState, combatant.characterId, second, ({ kitEffectState: tickKitEffectState }) => addCryoStacks(tickKitEffectState, combatant.characterId, second + 1, rushingIceSeconds - second));
|
|
59
|
+
};
|
|
60
|
+
return { skill: { hits: [
|
|
61
|
+
{},
|
|
62
|
+
{ onStrike: addCoilStack },
|
|
63
|
+
{ onStrike: addCoilStack }
|
|
64
|
+
] } };
|
|
65
|
+
};
|
|
66
|
+
//#endregion
|
|
67
|
+
export { createAloyKitBehaviour };
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import "./GameDataset-B6H7oezV.js";
|
|
2
|
+
import { buffKitTeam, castKitSummon, castKitTaunt, createConstellationSkillChargeBonus, getKitMaxHealth, queueKitPassiveHit } from "./index.js";
|
|
3
|
+
//#region src/services/kit/characters/amberKit.ts
|
|
4
|
+
const EVERY_ARROW_FINDS_ITS_TARGET_ASCENSION = 1;
|
|
5
|
+
const EVERY_ARROW_FINDS_ITS_TARGET_CRITICAL_RATE = .1;
|
|
6
|
+
const CONSTELLATION_4 = 4;
|
|
7
|
+
const CONSTELLATION_4_SKILL_COOLDOWN_MULTIPLIER = .8;
|
|
8
|
+
const CONSTELLATION_1 = 1;
|
|
9
|
+
const CONSTELLATION_1_SECOND_ARROW_SHARE = .2;
|
|
10
|
+
const CONSTELLATION_6 = 6;
|
|
11
|
+
const CONSTELLATION_6_SHARE = .15;
|
|
12
|
+
const CONSTELLATION_6_SECONDS = 10;
|
|
13
|
+
const FIERY_RAIN_SOURCE = "amber-fiery-rain";
|
|
14
|
+
const addEveryArrowCriticalRate = (combatant) => {
|
|
15
|
+
const { attributeTotalMap } = combatant.attributes;
|
|
16
|
+
return {
|
|
17
|
+
...combatant,
|
|
18
|
+
attributes: {
|
|
19
|
+
...combatant.attributes,
|
|
20
|
+
attributeTotalMap: {
|
|
21
|
+
...attributeTotalMap,
|
|
22
|
+
["FIGHT_PROP_CRITICAL"]: attributeTotalMap["FIGHT_PROP_CRITICAL"] + EVERY_ARROW_FINDS_ITS_TARGET_CRITICAL_RATE
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
const widenFieryRainArrows = (arrows) => arrows.map((arrow) => ({
|
|
28
|
+
...arrow,
|
|
29
|
+
hitArea: {
|
|
30
|
+
...arrow.hitArea,
|
|
31
|
+
radius: arrow.hitArea.radius * 1.3
|
|
32
|
+
}
|
|
33
|
+
}));
|
|
34
|
+
const createAmberKitBehaviour = ({ readHit, readHits, readParameter, readSeconds }) => {
|
|
35
|
+
const bunnyExplosion = readHit("baronBunnyExplosion");
|
|
36
|
+
const bunnyMaxHealthShare = readParameter("baronBunnyMaxHealthShare");
|
|
37
|
+
const bunnySeconds = readSeconds("baronBunnySeconds");
|
|
38
|
+
const fieryRainArrows = readHits("fieryRainArrows");
|
|
39
|
+
const everyArrowFindsItsTargetFieryRainArrows = widenFieryRainArrows(fieryRainArrows);
|
|
40
|
+
let secondArrowFired = false;
|
|
41
|
+
return {
|
|
42
|
+
burst: { onStart: ({ activeCombatant: combatant, body, kitEffectState, party }) => {
|
|
43
|
+
const hasEveryArrowFindsItsTarget = combatant.ascension >= EVERY_ARROW_FINDS_ITS_TARGET_ASCENSION;
|
|
44
|
+
castKitSummon(kitEffectState, body, hasEveryArrowFindsItsTarget ? addEveryArrowCriticalRate(combatant) : combatant, hasEveryArrowFindsItsTarget ? everyArrowFindsItsTargetFieryRainArrows : fieryRainArrows, { attackTag: "ElementalBurst" });
|
|
45
|
+
if (combatant.constellationCount >= CONSTELLATION_6) {
|
|
46
|
+
const buff = {
|
|
47
|
+
amount: CONSTELLATION_6_SHARE,
|
|
48
|
+
secondsRemaining: CONSTELLATION_6_SECONDS,
|
|
49
|
+
source: FIERY_RAIN_SOURCE
|
|
50
|
+
};
|
|
51
|
+
buffKitTeam(kitEffectState, party, {
|
|
52
|
+
...buff,
|
|
53
|
+
attribute: "FIGHT_PROP_MOVE_SPEED"
|
|
54
|
+
});
|
|
55
|
+
buffKitTeam(kitEffectState, party, {
|
|
56
|
+
...buff,
|
|
57
|
+
attribute: "FIGHT_PROP_ATTACK_PERCENT"
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
} },
|
|
61
|
+
chargedAttack: {
|
|
62
|
+
hits: [{ onStrike: (context, { combatant, hit }) => {
|
|
63
|
+
if (combatant.constellationCount < CONSTELLATION_1 || secondArrowFired) return;
|
|
64
|
+
secondArrowFired = true;
|
|
65
|
+
queueKitPassiveHit(context, combatant, {
|
|
66
|
+
...hit,
|
|
67
|
+
attackTag: void 0,
|
|
68
|
+
onStrike: void 0,
|
|
69
|
+
talentMultiplier: hit.talentMultiplier * CONSTELLATION_1_SECOND_ARROW_SHARE
|
|
70
|
+
});
|
|
71
|
+
} }],
|
|
72
|
+
onStart: () => {
|
|
73
|
+
secondArrowFired = false;
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
getSkillChargeBonus: createConstellationSkillChargeBonus(CONSTELLATION_4),
|
|
77
|
+
getSkillCooldownMultiplier: ({ activeCombatant }) => activeCombatant.constellationCount >= CONSTELLATION_4 ? CONSTELLATION_4_SKILL_COOLDOWN_MULTIPLIER : 1,
|
|
78
|
+
skill: { onStart: ({ activeCombatant: combatant, body, characterIdCombatantMap, kitEffectState, party }) => castKitTaunt(kitEffectState, body, combatant, {
|
|
79
|
+
explosion: bunnyExplosion,
|
|
80
|
+
health: bunnyMaxHealthShare * getKitMaxHealth(combatant, kitEffectState.effects, party, characterIdCombatantMap),
|
|
81
|
+
secondsRemaining: bunnySeconds
|
|
82
|
+
}) }
|
|
83
|
+
};
|
|
84
|
+
};
|
|
85
|
+
//#endregion
|
|
86
|
+
export { createAmberKitBehaviour };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import "./GameDataset-B6H7oezV.js";
|
|
2
|
+
import { t as getPartyMember } from "./getPartyMember-CPyR8-gA.js";
|
|
3
|
+
import { scheduleKitTask, toKitSeconds } from "./index.js";
|
|
4
|
+
//#region src/services/kit/characters/arlecchinoKit.ts
|
|
5
|
+
const PYRO_DAMAGE_BONUS = .4;
|
|
6
|
+
const BURST_SKILL_RESET_FRAMES = 107;
|
|
7
|
+
const createArlecchinoKitBehaviour = () => ({
|
|
8
|
+
burst: { onStart: ({ activeCombatant: combatant, kitEffectState }) => scheduleKitTask(kitEffectState, combatant.characterId, toKitSeconds(BURST_SKILL_RESET_FRAMES), ({ party }) => {
|
|
9
|
+
getPartyMember(party, combatant.characterId).skillCooldownSeconds = 0;
|
|
10
|
+
}) },
|
|
11
|
+
getPassiveBonuses: () => [{
|
|
12
|
+
amount: PYRO_DAMAGE_BONUS,
|
|
13
|
+
attribute: "FIGHT_PROP_FIRE_ADD_HURT"
|
|
14
|
+
}]
|
|
15
|
+
});
|
|
16
|
+
//#endregion
|
|
17
|
+
export { createArlecchinoKitBehaviour };
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import "./GameDataset-B6H7oezV.js";
|
|
2
|
+
import { t as addKitEffect } from "./addKitEffect-B922PsCn.js";
|
|
3
|
+
import { t as findKitStatus } from "./findKitStatus-c5kVgwo6.js";
|
|
4
|
+
import { t as addKitStatus } from "./addKitStatus-B0kqLgt1.js";
|
|
5
|
+
import { castKitSummon, changeKitSkillCooldown, startKitCooldown } from "./index.js";
|
|
6
|
+
//#region src/services/kit/characters/ayakaKit.ts
|
|
7
|
+
const BLIZZARD_BLADE_SEKI_NO_TO_CONSTELLATION = 2;
|
|
8
|
+
const SENHO_INFUSION_SECONDS = 5;
|
|
9
|
+
const CONSTELLATION_1 = 1;
|
|
10
|
+
const CONSTELLATION_1_CHANCE = .5;
|
|
11
|
+
const CONSTELLATION_1_ICD_SECONDS = .1;
|
|
12
|
+
const CONSTELLATION_1_ICD_STATUS_ID = "ayaka-snowswept-sakura-icd";
|
|
13
|
+
const ASCENSION_1 = 1;
|
|
14
|
+
const AMATSUMI_KUNITSUMI_SANCTIFICATION_DAMAGE_BONUS = .3;
|
|
15
|
+
const AMATSUMI_KUNITSUMI_SANCTIFICATION_SECONDS = 6;
|
|
16
|
+
const AMATSUMI_KUNITSUMI_SANCTIFICATION_STATUS_ID = "ayaka-amatsumi-kunitsumi-sanctification";
|
|
17
|
+
const CONSTELLATION_4 = 4;
|
|
18
|
+
const CONSTELLATION_4_DEFENCE_REDUCTION = .3;
|
|
19
|
+
const CONSTELLATION_4_SECONDS = 6;
|
|
20
|
+
const CONSTELLATION_4_STATUS_ID = "ayaka-frostflake-defence-reduction";
|
|
21
|
+
const CONSTELLATION_6 = 6;
|
|
22
|
+
const USURAHI_BUTOU_DAMAGE_BONUS = 2.98;
|
|
23
|
+
const USURAHI_BUTOU_RECHARGE_SECONDS = 10;
|
|
24
|
+
const USURAHI_BUTOU_STATUS_ID = "ayaka-usurahi-butou-recharge";
|
|
25
|
+
const getFrostflakeDefenceReduction = ({ constellationCount }) => constellationCount >= CONSTELLATION_4 ? {
|
|
26
|
+
damageTakenBonus: 0,
|
|
27
|
+
defenseReduction: CONSTELLATION_4_DEFENCE_REDUCTION,
|
|
28
|
+
id: CONSTELLATION_4_STATUS_ID,
|
|
29
|
+
secondsRemaining: CONSTELLATION_4_SECONDS
|
|
30
|
+
} : void 0;
|
|
31
|
+
const withFrostflakeDefenceReduction = (hits) => hits.map((hit) => ({
|
|
32
|
+
...hit,
|
|
33
|
+
enemyStatusAfterDamage: getFrostflakeDefenceReduction
|
|
34
|
+
}));
|
|
35
|
+
const checkIsUsurahiButouOn = (effects, characterId) => {
|
|
36
|
+
const status = findKitStatus(effects, characterId, USURAHI_BUTOU_STATUS_ID);
|
|
37
|
+
return !status || status.secondsRemaining > USURAHI_BUTOU_RECHARGE_SECONDS;
|
|
38
|
+
};
|
|
39
|
+
const snowsweptSakuraHit = { onStrike: ({ kitEffectState, party, random }, { combatant }) => {
|
|
40
|
+
if (combatant.constellationCount < CONSTELLATION_1) return;
|
|
41
|
+
if (!startKitCooldown(kitEffectState, combatant.characterId, CONSTELLATION_1_ICD_STATUS_ID, CONSTELLATION_1_ICD_SECONDS)) return;
|
|
42
|
+
if (random() < CONSTELLATION_1_CHANCE) changeKitSkillCooldown(party, combatant.characterId, -.3);
|
|
43
|
+
} };
|
|
44
|
+
const chargedAttackHit = { onStrike: (context, strike, enemy) => {
|
|
45
|
+
snowsweptSakuraHit.onStrike?.(context, strike, enemy);
|
|
46
|
+
const { combatant } = strike;
|
|
47
|
+
if (combatant.constellationCount < CONSTELLATION_6) return;
|
|
48
|
+
if (findKitStatus(context.kitEffectState.effects, combatant.characterId, USURAHI_BUTOU_STATUS_ID)) return;
|
|
49
|
+
addKitStatus(context.kitEffectState, combatant.characterId, {
|
|
50
|
+
id: USURAHI_BUTOU_STATUS_ID,
|
|
51
|
+
secondsRemaining: 10.5
|
|
52
|
+
});
|
|
53
|
+
} };
|
|
54
|
+
const createAyakaKitBehaviour = ({ kit, readHits }) => {
|
|
55
|
+
const frostflakeHits = withFrostflakeDefenceReduction(readHits("frostflake"));
|
|
56
|
+
const smallFrostflakeHits = withFrostflakeDefenceReduction(readHits("smallFrostflake"));
|
|
57
|
+
return {
|
|
58
|
+
burst: { onStart: ({ activeCombatant: combatant, body, kitEffectState }) => {
|
|
59
|
+
castKitSummon(kitEffectState, body, combatant, frostflakeHits, { attackTag: "ElementalBurst" });
|
|
60
|
+
if (combatant.constellationCount < BLIZZARD_BLADE_SEKI_NO_TO_CONSTELLATION) return;
|
|
61
|
+
castKitSummon(kitEffectState, body, combatant, smallFrostflakeHits, { attackTag: "ElementalBurst" });
|
|
62
|
+
castKitSummon(kitEffectState, body, combatant, smallFrostflakeHits, { attackTag: "ElementalBurst" });
|
|
63
|
+
} },
|
|
64
|
+
chargedAttack: { hits: kit.chargedAttack.hits.map(() => chargedAttackHit) },
|
|
65
|
+
getStrikeDamageBonus: ({ attackTag, combatant }, _enemy, _party, effects) => {
|
|
66
|
+
return ((attackTag === "NormalAttack" || attackTag === "ChargedAttack") && findKitStatus(effects, combatant.characterId, AMATSUMI_KUNITSUMI_SANCTIFICATION_STATUS_ID) ? AMATSUMI_KUNITSUMI_SANCTIFICATION_DAMAGE_BONUS : 0) + (attackTag === "ChargedAttack" && combatant.constellationCount >= CONSTELLATION_6 && checkIsUsurahiButouOn(effects, combatant.characterId) ? USURAHI_BUTOU_DAMAGE_BONUS : 0);
|
|
67
|
+
},
|
|
68
|
+
normalAttacks: kit.normalAttacks.map(({ hits }) => ({ hits: hits.map(() => snowsweptSakuraHit) })),
|
|
69
|
+
onSprint: ({ activeCombatant: combatant, kitEffectState }) => addKitEffect(kitEffectState, {
|
|
70
|
+
characterId: combatant.characterId,
|
|
71
|
+
element: "Ice",
|
|
72
|
+
kind: "infusion",
|
|
73
|
+
secondsRemaining: SENHO_INFUSION_SECONDS
|
|
74
|
+
}),
|
|
75
|
+
skill: { onStart: ({ activeCombatant: combatant, kitEffectState }) => {
|
|
76
|
+
if (combatant.ascension < ASCENSION_1) return;
|
|
77
|
+
addKitStatus(kitEffectState, combatant.characterId, {
|
|
78
|
+
id: AMATSUMI_KUNITSUMI_SANCTIFICATION_STATUS_ID,
|
|
79
|
+
secondsRemaining: AMATSUMI_KUNITSUMI_SANCTIFICATION_SECONDS
|
|
80
|
+
});
|
|
81
|
+
} }
|
|
82
|
+
};
|
|
83
|
+
};
|
|
84
|
+
//#endregion
|
|
85
|
+
export { createAyakaKitBehaviour };
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { t as gainPartyMemberEnergy } from "./gainPartyMemberEnergy-D9hiqeb4.js";
|
|
2
|
+
import { t as getPartyMember } from "./getPartyMember-CPyR8-gA.js";
|
|
3
|
+
import "./KitEventKind-CGMNB7W9.js";
|
|
4
|
+
import { t as findKitStatus } from "./findKitStatus-c5kVgwo6.js";
|
|
5
|
+
import { t as addKitStatus } from "./addKitStatus-B0kqLgt1.js";
|
|
6
|
+
import { t as castKitField } from "./castKitField-_74Co83C.js";
|
|
7
|
+
import { castKitSummon, enterKitStance, scheduleKitTask } from "./index.js";
|
|
2
8
|
import { takeOne } from "@esposter/shared";
|
|
3
9
|
//#region src/services/kit/characters/ayatoKit.ts
|
|
4
10
|
const SOUKAI_KANKA_SECONDS = 6;
|
|
@@ -14,9 +20,27 @@ const CONSTELLATION_2_NAMISEN_STACKS_MAX = 5;
|
|
|
14
20
|
const CONSTELLATION_6 = 6;
|
|
15
21
|
const HELD_UNTIL_SWAP_SECONDS = Number.POSITIVE_INFINITY;
|
|
16
22
|
const NAMISEN_STATUS_ID = "ayato-namisen";
|
|
23
|
+
const ASCENSION_4 = 4;
|
|
24
|
+
const MICHIYUKU_HAGETSU_ENERGY = 2;
|
|
25
|
+
const MICHIYUKU_HAGETSU_ENERGY_CEILING = 40;
|
|
26
|
+
const MICHIYUKU_HAGETSU_ID = "ayato-michiyuku-hagetsu";
|
|
17
27
|
const CONSTELLATION_6_STATUS_ID = "ayato-constellation-6";
|
|
18
28
|
const countNamisenStacks = (effects, characterId) => findKitStatus(effects, characterId, NAMISEN_STATUS_ID)?.stacks ?? 0;
|
|
19
29
|
const getNamisenStacksMax = (combatant) => combatant.constellationCount >= CONSTELLATION_2 ? CONSTELLATION_2_NAMISEN_STACKS_MAX : NAMISEN_STACKS_MAX;
|
|
30
|
+
const castMichiyukuHagetsu = (kitEffectState, combatant) => {
|
|
31
|
+
castKitField(kitEffectState, combatant.characterId, {
|
|
32
|
+
x: 0,
|
|
33
|
+
z: 0
|
|
34
|
+
}, {
|
|
35
|
+
id: MICHIYUKU_HAGETSU_ID,
|
|
36
|
+
nextTickSeconds: 1,
|
|
37
|
+
onTick: ({ party }) => {
|
|
38
|
+
if (getPartyMember(party, combatant.characterId).energy < MICHIYUKU_HAGETSU_ENERGY_CEILING) gainPartyMemberEnergy(party, combatant, MICHIYUKU_HAGETSU_ENERGY);
|
|
39
|
+
},
|
|
40
|
+
secondsRemaining: Number.POSITIVE_INFINITY,
|
|
41
|
+
tickIntervalSeconds: 1
|
|
42
|
+
});
|
|
43
|
+
};
|
|
20
44
|
const createAyatoKitBehaviour = ({ kit, readHit, readHitFields, readParameter, readParameters, readSeconds, readSecondsList }) => {
|
|
21
45
|
const namisenShare = readParameter("namisenShare");
|
|
22
46
|
const gardenOfPuritySeconds = readParameter("gardenOfPuritySeconds");
|
|
@@ -47,7 +71,7 @@ const createAyatoKitBehaviour = ({ kit, readHit, readHitFields, readParameter, r
|
|
|
47
71
|
const constellation6 = findKitStatus(effectState.effects, characterId, CONSTELLATION_6_STATUS_ID);
|
|
48
72
|
if (!constellation6) return;
|
|
49
73
|
constellation6.secondsRemaining = 0;
|
|
50
|
-
castKitSummon(effectState, body, combatant, constellation6Hits);
|
|
74
|
+
castKitSummon(effectState, body, combatant, constellation6Hits, { attackTag: "NormalAttack" });
|
|
51
75
|
},
|
|
52
76
|
talentMultiplier
|
|
53
77
|
});
|
|
@@ -59,7 +83,7 @@ const createAyatoKitBehaviour = ({ kit, readHit, readHitFields, readParameter, r
|
|
|
59
83
|
facing,
|
|
60
84
|
height,
|
|
61
85
|
position: gardenOfPurity.centre
|
|
62
|
-
}, combatant, [bloomwaterBlade]),
|
|
86
|
+
}, combatant, [bloomwaterBlade], { attackTag: "ElementalBurst" }),
|
|
63
87
|
secondsRemaining: bloomwaterBladeFirstTickSeconds + gardenOfPuritySeconds,
|
|
64
88
|
tickIntervalSeconds: bloomwaterBladeIntervalSeconds
|
|
65
89
|
});
|
|
@@ -68,9 +92,14 @@ const createAyatoKitBehaviour = ({ kit, readHit, readHitFields, readParameter, r
|
|
|
68
92
|
burst: { onStart: ({ activeCombatant: combatant, body, kitEffectState }) => castGardenOfPurity(kitEffectState, body, combatant) },
|
|
69
93
|
getStrikeDamageBonus: ({ attackTag, combatant }, enemy) => combatant.constellationCount >= CONSTELLATION_1 && attackTag === "NormalAttack" && enemy.health / enemy.maxHealth <= CONSTELLATION_1_HEALTH_SHARE ? CONSTELLATION_1_DAMAGE_BONUS : 0,
|
|
70
94
|
onKitEvent: (event, { kitEffectState }, combatant) => {
|
|
71
|
-
if (event.kind !== "CharacterSwapped"
|
|
95
|
+
if (event.kind !== "CharacterSwapped") return;
|
|
96
|
+
if (event.characterId === combatant.characterId) {
|
|
97
|
+
for (const effect of kitEffectState.effects) if (effect.kind === "field" && effect.id === MICHIYUKU_HAGETSU_ID) effect.secondsRemaining = 0;
|
|
98
|
+
}
|
|
99
|
+
if (event.previousCharacterId !== combatant.characterId) return;
|
|
72
100
|
const namisen = findKitStatus(kitEffectState.effects, combatant.characterId, NAMISEN_STATUS_ID);
|
|
73
101
|
if (namisen) namisen.secondsRemaining = 0;
|
|
102
|
+
if (combatant.ascension >= ASCENSION_4) castMichiyukuHagetsu(kitEffectState, combatant);
|
|
74
103
|
},
|
|
75
104
|
skill: { onStart: ({ activeCombatant: combatant, kitEffectState }) => {
|
|
76
105
|
const { characterId } = combatant;
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import "./GameDataset-B6H7oezV.js";
|
|
2
|
+
import { t as getPartyMember } from "./getPartyMember-CPyR8-gA.js";
|
|
3
|
+
import "./KitEventKind-CGMNB7W9.js";
|
|
4
|
+
import { t as castKitField } from "./castKitField-_74Co83C.js";
|
|
5
|
+
import { t as getActiveCharacterId } from "./getActiveCharacterId-BAGBdS2c.js";
|
|
6
|
+
import { buffKitTeam, castKitShield, createConstellationSkillChargeBonus, getKitHitElement, getKitMaxHealth, queueKitPassiveHit, startKitCooldown } from "./index.js";
|
|
7
|
+
//#region src/services/kit/characters/baizhuKit.ts
|
|
8
|
+
const FIVE_FORTUNES_FOREVER_ASCENSION = 1;
|
|
9
|
+
const FIVE_FORTUNES_FOREVER_HEALTH_SHARE = .5;
|
|
10
|
+
const FIVE_FORTUNES_FOREVER_DENDRO_DAMAGE_BONUS = .25;
|
|
11
|
+
const CONSTELLATION_2 = 2;
|
|
12
|
+
const CONSTELLATION_2_COOLDOWN_SECONDS = 5;
|
|
13
|
+
const CONSTELLATION_2_COOLDOWN_STATUS_ID = "baizhu-constellation-2-cooldown";
|
|
14
|
+
const CONSTELLATION_2_MULTIPLIER = 2.5;
|
|
15
|
+
const CONSTELLATION_2_RADIUS = .6;
|
|
16
|
+
const CONSTELLATION_1 = 1;
|
|
17
|
+
const CONSTELLATION_4 = 4;
|
|
18
|
+
const CONSTELLATION_4_ELEMENTAL_MASTERY = 80;
|
|
19
|
+
const CONSTELLATION_4_SECONDS = 15;
|
|
20
|
+
const CONSTELLATION_4_SOURCE = "baizhu-ancient-art-of-perception";
|
|
21
|
+
const gossamerSpliceHit = {
|
|
22
|
+
attackTag: "ElementalSkill",
|
|
23
|
+
element: "Grass",
|
|
24
|
+
hitArea: {
|
|
25
|
+
angle: 2 * Math.PI,
|
|
26
|
+
height: 2,
|
|
27
|
+
radius: CONSTELLATION_2_RADIUS
|
|
28
|
+
},
|
|
29
|
+
hitmarkSeconds: 0,
|
|
30
|
+
poiseDamage: 0,
|
|
31
|
+
talentMultiplier: CONSTELLATION_2_MULTIPLIER
|
|
32
|
+
};
|
|
33
|
+
const createBaizhuKitBehaviour = ({ readHit, readParameter, readSeconds }) => {
|
|
34
|
+
const shieldMaxHealthShare = readParameter("seamlessShieldMaxHealthShare");
|
|
35
|
+
const shieldFlatHealth = readParameter("seamlessShieldFlatHealth");
|
|
36
|
+
const firstShieldSeconds = readSeconds("firstSeamlessShield");
|
|
37
|
+
const shieldSeconds = readSeconds("seamlessShield");
|
|
38
|
+
const firstRefreshSeconds = readSeconds("firstSeamlessShieldRefresh");
|
|
39
|
+
const refreshIntervalSeconds = readSeconds("seamlessShieldRefreshInterval");
|
|
40
|
+
const refreshFieldSeconds = readSeconds("seamlessShieldRefreshField");
|
|
41
|
+
const spiritvein = readHit("spiritvein");
|
|
42
|
+
const castShield = (context, combatant, secondsRemaining) => {
|
|
43
|
+
const { characterIdCombatantMap, kitEffectState, party } = context;
|
|
44
|
+
return castKitShield(context, combatant.characterId, {
|
|
45
|
+
element: "Grass",
|
|
46
|
+
explosion: {
|
|
47
|
+
combatant,
|
|
48
|
+
hit: spiritvein
|
|
49
|
+
},
|
|
50
|
+
health: shieldMaxHealthShare * getKitMaxHealth(combatant, kitEffectState.effects, party, characterIdCombatantMap) + shieldFlatHealth,
|
|
51
|
+
secondsRemaining
|
|
52
|
+
});
|
|
53
|
+
};
|
|
54
|
+
return {
|
|
55
|
+
burst: { onStart: (context) => {
|
|
56
|
+
const { activeCombatant: combatant, body, kitEffectState, party } = context;
|
|
57
|
+
castShield(context, combatant, firstShieldSeconds);
|
|
58
|
+
if (combatant.constellationCount >= CONSTELLATION_4) buffKitTeam(kitEffectState, party, {
|
|
59
|
+
amount: CONSTELLATION_4_ELEMENTAL_MASTERY,
|
|
60
|
+
attribute: "FIGHT_PROP_ELEMENT_MASTERY",
|
|
61
|
+
secondsRemaining: CONSTELLATION_4_SECONDS,
|
|
62
|
+
source: CONSTELLATION_4_SOURCE
|
|
63
|
+
});
|
|
64
|
+
castKitField(kitEffectState, combatant.characterId, body.position, {
|
|
65
|
+
nextTickSeconds: firstRefreshSeconds,
|
|
66
|
+
onTick: (tick) => castShield(tick, combatant, shieldSeconds),
|
|
67
|
+
secondsRemaining: refreshFieldSeconds,
|
|
68
|
+
tickIntervalSeconds: refreshIntervalSeconds
|
|
69
|
+
});
|
|
70
|
+
} },
|
|
71
|
+
getSkillChargeBonus: createConstellationSkillChargeBonus(CONSTELLATION_1),
|
|
72
|
+
getStrikeDamageBonus: ({ combatant, hit }, _enemy, party) => combatant.ascension >= FIVE_FORTUNES_FOREVER_ASCENSION && getKitHitElement(hit, combatant) === "Grass" && getPartyMember(party, getActiveCharacterId(party)).healthShare >= FIVE_FORTUNES_FOREVER_HEALTH_SHARE ? FIVE_FORTUNES_FOREVER_DENDRO_DAMAGE_BONUS : 0,
|
|
73
|
+
onKitEvent: (event, context, combatant) => {
|
|
74
|
+
if (event.kind !== "DamageTaken" || combatant.constellationCount < CONSTELLATION_2) return;
|
|
75
|
+
if (event.striker.characterId !== context.activeCombatant.characterId) return;
|
|
76
|
+
if (!startKitCooldown(context.kitEffectState, combatant.characterId, CONSTELLATION_2_COOLDOWN_STATUS_ID, CONSTELLATION_2_COOLDOWN_SECONDS)) return;
|
|
77
|
+
queueKitPassiveHit(context, combatant, gossamerSpliceHit, event.enemy);
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
//#endregion
|
|
82
|
+
export { createBaizhuKitBehaviour };
|