genshin-world 4.1.2 → 4.2.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.
Files changed (140) hide show
  1. package/package.json +8 -8
  2. package/dist/ReactionType-BBSdxyO3.js +0 -47
  3. package/dist/addKitEffect-DBqTfm_3.js +0 -17
  4. package/dist/ainoKit-Dy3vTp3B.js +0 -28
  5. package/dist/albedoKit-CU5N1Hnm.js +0 -43
  6. package/dist/alhaithamKit-Bhs-coX9.js +0 -212
  7. package/dist/aloyKit-C7x_Jf16.js +0 -32
  8. package/dist/amberKit-BO7ZAQgU.js +0 -38
  9. package/dist/arlecchinoKit-DJawwVVl.js +0 -4
  10. package/dist/ayakaKit-Bu_QuYsR.js +0 -26
  11. package/dist/ayatoKit-BXZNajk7.js +0 -108
  12. package/dist/baizhuKit-8_4IzZ3A.js +0 -33
  13. package/dist/barbaraKit-B5DpLyHJ.js +0 -58
  14. package/dist/beidouKit-sQUahtIk.js +0 -59
  15. package/dist/bennettKit-Cr-zZ_25.js +0 -66
  16. package/dist/candaceKit-BUs_wwFU.js +0 -84
  17. package/dist/characterPack-YAEqbhAX.d.ts +0 -116
  18. package/dist/characterPack-zycIUHje.js +0 -641
  19. package/dist/characterPack.d.ts +0 -2
  20. package/dist/characterPack.js +0 -1
  21. package/dist/charlotteKit-BOZiCPEb.js +0 -90
  22. package/dist/chascaKit-C1Csj0Yf.js +0 -4
  23. package/dist/chevreuseKit-DDHga8Tj.js +0 -20
  24. package/dist/chioriKit-CxRUSHNw.js +0 -28
  25. package/dist/chongyunKit-jrWQKRkG.js +0 -104
  26. package/dist/citlaliKit-sv7XrzVx.js +0 -4
  27. package/dist/clorindeKit-DxtRn_To.js +0 -4
  28. package/dist/colleiKit-CO_n9qra.js +0 -28
  29. package/dist/columbinaKit-DrW0EvqN.js +0 -31
  30. package/dist/constants--ARZpp1u.js +0 -49
  31. package/dist/constants-BqrUOf2M.js +0 -48
  32. package/dist/constants-CSFiwyHy.js +0 -46
  33. package/dist/createWindriseGroundPaint-BmZkGq-r.js +0 -295
  34. package/dist/cynoKit-DpfT5dmS.js +0 -179
  35. package/dist/dahliaKit-B8fOPvvi.js +0 -16
  36. package/dist/dehyaKit-42tyEI0Z.js +0 -4
  37. package/dist/dilucKit-EwLUSPgs.js +0 -63
  38. package/dist/dionaKit-89B1hwYL.js +0 -48
  39. package/dist/doriKit-G9XTwwCP.js +0 -24
  40. package/dist/durinKit-BIYdUkbh.js +0 -49
  41. package/dist/emilieKit-0b2vhNtl.js +0 -21
  42. package/dist/escoffierKit-Da5UAvAF.js +0 -48
  43. package/dist/eulaKit-DAENHIEx.js +0 -129
  44. package/dist/faruzanKit-BcW6D-N3.js +0 -71
  45. package/dist/fischlKit-Bm8vNmuV.js +0 -98
  46. package/dist/flinsKit-GUnFJdUg.js +0 -9
  47. package/dist/freminetKit-CpwsVmTT.js +0 -4
  48. package/dist/furinaKit-BREisAdJ.js +0 -279
  49. package/dist/gamingKit-D9ekWGMJ.js +0 -4
  50. package/dist/ganyuKit-DLJa1t-Z.js +0 -74
  51. package/dist/gorouKit-DkpaGNA8.js +0 -94
  52. package/dist/heizouKit-B6kRXVCP.js +0 -35
  53. package/dist/huTaoKit-drjrzLjf.js +0 -58
  54. package/dist/iansanKit-RNjD9nSq.js +0 -4
  55. package/dist/ifaKit-CXWxCOPI.js +0 -4
  56. package/dist/illugaKit-BFtXIf3P.js +0 -4
  57. package/dist/index-DQB91Tfq.d.ts +0 -19820
  58. package/dist/index.d.ts +0 -4
  59. package/dist/index.js +0 -29218
  60. package/dist/ineffaKit-3J0FJo2E.js +0 -51
  61. package/dist/ittoKit-CfwXkR0g.js +0 -112
  62. package/dist/jahodaKit-C1sdSDfr.js +0 -97
  63. package/dist/jeanKit-Do8vx5Kp.js +0 -56
  64. package/dist/kachinaKit-DWLNDpgO.js +0 -4
  65. package/dist/kaeyaKit-DU8Df4RE.js +0 -14
  66. package/dist/kavehKit-BWoAaKs4.js +0 -9
  67. package/dist/kazuhaKit-C5gn8iGg.js +0 -55
  68. package/dist/keqingKit-uGsb_p7t.js +0 -12
  69. package/dist/kinichKit-Dp3lNUJt.js +0 -22
  70. package/dist/kiraraKit-CCAGXouk.js +0 -43
  71. package/dist/kleeKit-BzcJLC2i.js +0 -48
  72. package/dist/kokomiKit-DBdTlTDr.js +0 -42
  73. package/dist/kujouSaraKit-DDE-24jd.js +0 -56
  74. package/dist/kukiKit-DcARldP9.js +0 -59
  75. package/dist/lanYanKit-B3lwZ7OW.js +0 -18
  76. package/dist/laumaKit-DkG-i0rL.js +0 -59
  77. package/dist/laylaKit-DYtz0tSZ.js +0 -41
  78. package/dist/linneaKit-DlVhnbGM.js +0 -4
  79. package/dist/lisaKit-CWUiiam1.js +0 -22
  80. package/dist/lohenKit-D-uagI_g.js +0 -4
  81. package/dist/lynetteKit-BnNW81Pm.js +0 -20
  82. package/dist/lyneyKit-D6yTnfFv.js +0 -19
  83. package/dist/mavuikaKit-CUC1kHRJ.js +0 -4
  84. package/dist/mikaKit-C9xDhjJg.js +0 -17
  85. package/dist/mizukiKit-DY-gHM8N.js +0 -4
  86. package/dist/monaKit-B748iTEy.js +0 -26
  87. package/dist/mualaniKit-B-Km_dcQ.js +0 -4
  88. package/dist/nahidaKit-BGRc-swN.js +0 -4
  89. package/dist/naviaKit-CHh2VdX3.js +0 -64
  90. package/dist/neferKit-BTALTTiV.js +0 -4
  91. package/dist/neuvilletteKit-DAfX_2tC.js +0 -4
  92. package/dist/nicoleKit-BVjL7LI0.js +0 -4
  93. package/dist/nilouKit-BgM4u-hg.js +0 -52
  94. package/dist/ningguangKit-N88BhNb_.js +0 -105
  95. package/dist/noelleKit-DDewnuJ9.js +0 -48
  96. package/dist/ororonKit-DiAd2dlh.js +0 -86
  97. package/dist/pruneKit-CHkC_OSB.js +0 -4
  98. package/dist/qiqiKit-DCtsriE7.js +0 -88
  99. package/dist/raidenKit-BBWMmPFn.js +0 -144
  100. package/dist/razorKit-CBgdHYic.js +0 -90
  101. package/dist/readCharacterAvatar-C7FufK7J.js +0 -292
  102. package/dist/rosariaKit-D_RDXpLp.js +0 -29
  103. package/dist/save-CEbj1mOx.js +0 -854
  104. package/dist/save.d.ts +0 -2
  105. package/dist/save.js +0 -1
  106. package/dist/sayuKit-Hnv4iA3_.js +0 -35
  107. package/dist/sceneExport-BZaF05K-.d.ts +0 -70
  108. package/dist/sceneExport-DiiIi0PM.js +0 -27
  109. package/dist/sceneExport.d.ts +0 -2
  110. package/dist/sceneExport.js +0 -1
  111. package/dist/sethosKit-8EK04AA4.js +0 -4
  112. package/dist/shenheKit-DqrG2I4S.js +0 -50
  113. package/dist/sigewinneKit-CYJyadTr.js +0 -10
  114. package/dist/skirkKit-BDjoFGAq.js +0 -10
  115. package/dist/style.css +0 -3612
  116. package/dist/sucroseKit-DF0jcI2y.js +0 -101
  117. package/dist/tartagliaKit-Bbtww18S.js +0 -136
  118. package/dist/terrainTileWorker.d.ts +0 -1
  119. package/dist/terrainTileWorker.js +0 -81
  120. package/dist/thomaKit-Zm5AJ9Fm.js +0 -64
  121. package/dist/tighnariKit-CSa_Yqpp.js +0 -4
  122. package/dist/varesaKit-CMXLbBv9.js +0 -4
  123. package/dist/varkaKit-C8_HlTVH.js +0 -4
  124. package/dist/ventiKit-BcQkbI-z.js +0 -52
  125. package/dist/wandererKit-CQM691sn.js +0 -9
  126. package/dist/wriothesleyKit-CBTnYlOy.js +0 -4
  127. package/dist/xianglingKit-BPQN7cxU.js +0 -108
  128. package/dist/xianyunKit-CVhuYBde.js +0 -4
  129. package/dist/xiaoKit-BDI_SODG.js +0 -90
  130. package/dist/xilonenKit-YAVOPRwm.js +0 -4
  131. package/dist/xingqiuKit-Cv8JYeYO.js +0 -106
  132. package/dist/xinyanKit-CffF-Er0.js +0 -120
  133. package/dist/yaeMikoKit-xAKYm2K6.js +0 -44
  134. package/dist/yanfeiKit-C6elnkmn.js +0 -86
  135. package/dist/yaoyaoKit-CaPIIp-i.js +0 -4
  136. package/dist/yelanKit-Da0oQ6yu.js +0 -33
  137. package/dist/yoimiyaKit-DTENWB4y.js +0 -49
  138. package/dist/yunjinKit-PP4yeyn1.js +0 -22
  139. package/dist/zhongliKit-uMdKUTP-.js +0 -100
  140. package/dist/zibaiKit-Dq6mFWSx.js +0 -4
@@ -1,2 +0,0 @@
1
- import { A as chooseCharacterTermsFile, a as decodeCharacterTerms, f as CHARACTER_PACK_INDEX_PATH, i as readCharacterNames, j as chooseCharacterPackModel, n as resolveCharacterPackTextures, t as GAME_DATA_BLOB_PATH, u as CHARACTER_MODEL_PATH, y as CHARACTER_TERMS_PATH } from "./characterPack-YAEqbhAX.js";
2
- export { CHARACTER_MODEL_PATH, CHARACTER_PACK_INDEX_PATH, CHARACTER_TERMS_PATH, GAME_DATA_BLOB_PATH, chooseCharacterPackModel, chooseCharacterTermsFile, decodeCharacterTerms, readCharacterNames, resolveCharacterPackTextures };
@@ -1 +0,0 @@
1
- export { T as CHARACTER_MODEL_PATH, D as CHARACTER_PACK_INDEX_PATH, P as CHARACTER_TERMS_PATH, t as GAME_DATA_BLOB_PATH, G as chooseCharacterPackModel, S as chooseCharacterTermsFile, b as decodeCharacterTerms, i as readCharacterNames, n as resolveCharacterPackTextures } from "./characterPack-zycIUHje.js";
@@ -1,90 +0,0 @@
1
- import { h as SUMMON_LINGER_SECONDS } from "./constants-BqrUOf2M.js";
2
- import { castKitField, castKitSummon, changeKitMemberHealth, createAheadBody, getDeployedCharacterIds, scheduleKitTask, startKitCooldown } from "./index.js";
3
- import { takeOne } from "@esposter/shared";
4
- //#region src/services/kit/characters/charlotteKit.ts
5
- const THORN_COOLDOWN_STATUS_ID = "charlotte-thorn-cooldown";
6
- const SNAPPY_MARK_STATUS_ID = "charlotte-snappy-silhouette";
7
- const SNAPPY_MARK_INTERVAL_SECONDS = 1.5;
8
- const SNAPPY_MARK_CAP = 5;
9
- const BURST_OFFSET_METRES = 4.5;
10
- const BURST_HEAL_RADIUS = 7;
11
- const healTeam = (context, caster, flatHealth, attackShare) => {
12
- const healedHealth = flatHealth + attackShare * caster.attributes.attack;
13
- for (const characterId of getDeployedCharacterIds(context.party)) changeKitMemberHealth(context, caster, characterId, healedHealth);
14
- };
15
- const createCharlotteKitBehaviour = ({ kit, readHit, readHits, readParameter, readSeconds }) => {
16
- const thorn = readHit("thorn");
17
- const thornHitmarkSeconds = readSeconds("thornHitmark");
18
- const thornCooldownSeconds = readParameter("spiritbreathThornCooldownSeconds");
19
- const snappyMarkHit = readHit("snappyMark");
20
- const snappyMarkSeconds = readSeconds("snappyMark");
21
- const kameraHits = readHits("kamera");
22
- const burstHitmarkSeconds = takeOne(kit.elementalBurst.hits).hitmarkSeconds;
23
- const stillPhotoFlatHealth = readParameter("stillPhotoFlatHealth");
24
- const stillPhotoAttackShare = readParameter("stillPhotoAttackShare");
25
- const kameraFlatHealth = readParameter("kameraFlatHealth");
26
- const kameraAttackShare = readParameter("kameraAttackShare");
27
- let markedCount = 0;
28
- const createSnappyMark = () => ({
29
- damageTakenBonus: 0,
30
- id: SNAPPY_MARK_STATUS_ID,
31
- nextTickSeconds: SNAPPY_MARK_INTERVAL_SECONDS,
32
- secondsRemaining: snappyMarkSeconds,
33
- tickIntervalSeconds: SNAPPY_MARK_INTERVAL_SECONDS
34
- });
35
- return {
36
- burst: { onStart: ({ activeCombatant: combatant, body, kitEffectState }) => {
37
- const { characterId } = combatant;
38
- const castCentre = createAheadBody(body, BURST_OFFSET_METRES).position;
39
- castKitSummon(kitEffectState, body, combatant, kameraHits);
40
- scheduleKitTask(kitEffectState, characterId, burstHitmarkSeconds, (tick) => healTeam(tick, combatant, stillPhotoFlatHealth, stillPhotoAttackShare));
41
- for (const { hitmarkSeconds } of kameraHits) castKitField(kitEffectState, characterId, castCentre, {
42
- nextTickSeconds: hitmarkSeconds,
43
- onTick: (tick) => changeKitMemberHealth(tick, combatant, tick.activeCombatant.characterId, kameraFlatHealth + kameraAttackShare * combatant.attributes.attack),
44
- radius: BURST_HEAL_RADIUS,
45
- secondsRemaining: hitmarkSeconds + SUMMON_LINGER_SECONDS,
46
- tickIntervalSeconds: 1
47
- });
48
- } },
49
- chargedAttack: { onStart: ({ activeCombatant: combatant, kitEffectState }, target) => {
50
- if (!target) return;
51
- const { characterId } = combatant;
52
- const { position } = target;
53
- const thornBody = {
54
- facing: 0,
55
- height: 0,
56
- position: {
57
- x: position.x,
58
- z: position.z
59
- }
60
- };
61
- scheduleKitTask(kitEffectState, characterId, thornHitmarkSeconds, ({ kitEffectState: effectState }) => {
62
- if (!startKitCooldown(effectState, characterId, THORN_COOLDOWN_STATUS_ID, thornCooldownSeconds)) return;
63
- castKitSummon(effectState, thornBody, combatant, [thorn]);
64
- });
65
- } },
66
- onKitEvent: (event, { kitEffectState }, combatant) => {
67
- if (event.kind !== "StatusTicked" || event.status.id !== SNAPPY_MARK_STATUS_ID) return;
68
- const { enemy } = event;
69
- castKitSummon(kitEffectState, {
70
- facing: 0,
71
- height: 0,
72
- position: {
73
- x: enemy.position.x,
74
- z: enemy.position.z
75
- }
76
- }, combatant, [snappyMarkHit], { target: enemy });
77
- },
78
- skill: {
79
- hits: [{ enemyStatus: () => {
80
- markedCount++;
81
- return markedCount <= SNAPPY_MARK_CAP ? createSnappyMark() : void 0;
82
- } }],
83
- onStart: () => {
84
- markedCount = 0;
85
- }
86
- }
87
- };
88
- };
89
- //#endregion
90
- export { createCharlotteKitBehaviour };
@@ -1,4 +0,0 @@
1
- //#region src/services/kit/characters/chascaKit.ts
2
- const createChascaKitBehaviour = () => ({});
3
- //#endregion
4
- export { createChascaKitBehaviour };
@@ -1,20 +0,0 @@
1
- import { t as ReactionType } from "./ReactionType-BBSdxyO3.js";
2
- import { addKitStatus, checkHasKitStatus, removeKitEffects } from "./index.js";
3
- //#region src/services/kit/characters/chevreuseKit.ts
4
- const OVERCHARGED_BALL_STATUS_ID = "chevreuse-overcharged-ball";
5
- const createChevreuseKitBehaviour = () => ({
6
- onKitEvent: (event, { kitEffectState }, combatant) => {
7
- if (event.kind !== "ReactionTriggered" || !event.reactions.some(({ reactionType }) => reactionType === ReactionType.Overloaded)) return;
8
- if (checkHasKitStatus(kitEffectState.effects, combatant.characterId, OVERCHARGED_BALL_STATUS_ID)) return;
9
- addKitStatus(kitEffectState, combatant.characterId, {
10
- id: OVERCHARGED_BALL_STATUS_ID,
11
- secondsRemaining: Number.POSITIVE_INFINITY
12
- });
13
- },
14
- skillHolds: [{ variant: {
15
- checkIsActive: ({ activeCombatant: combatant, kitEffectState }) => checkHasKitStatus(kitEffectState.effects, combatant.characterId, OVERCHARGED_BALL_STATUS_ID),
16
- onStart: ({ kitEffectState }) => removeKitEffects(kitEffectState, (effect) => effect.kind === "status" && effect.id === OVERCHARGED_BALL_STATUS_ID)
17
- } }]
18
- });
19
- //#endregion
20
- export { createChevreuseKitBehaviour };
@@ -1,28 +0,0 @@
1
- import { castKitSummon } from "./index.js";
2
- import { takeOne } from "@esposter/shared";
3
- //#region src/services/kit/characters/chioriKit.ts
4
- const createDefenseShareBehaviour = (defenseShare) => ({ additiveBaseDamageBonus: ({ attributes }) => defenseShare * attributes.defense });
5
- const castTamoto = (hits, secondsRemaining) => ({ activeCombatant: combatant, body, kitEffectState }) => {
6
- castKitSummon(kitEffectState, body, combatant, hits, { secondsRemaining });
7
- };
8
- const createChioriKitBehaviour = ({ readHits, readParameter, readSecondsList }) => {
9
- const sweepHitBehaviour = createDefenseShareBehaviour(readParameter("sweepDefenseShare"));
10
- const tamotoHitBehaviour = createDefenseShareBehaviour(readParameter("tamotoDefenseShare"));
11
- const burstHitBehaviour = createDefenseShareBehaviour(readParameter("burstDefenseShare"));
12
- const pressTamotoHits = readHits("pressTamotoAttacks", tamotoHitBehaviour);
13
- const holdTamotoHits = readHits("holdTamotoAttacks", tamotoHitBehaviour);
14
- const tamotoSecondsList = readSecondsList("tamotoEnds");
15
- return {
16
- burst: { hits: [burstHitBehaviour] },
17
- skill: {
18
- hits: [sweepHitBehaviour],
19
- onStart: castTamoto(pressTamotoHits, takeOne(tamotoSecondsList, 0))
20
- },
21
- skillHolds: [{
22
- hits: [sweepHitBehaviour],
23
- onStart: castTamoto(holdTamotoHits, takeOne(tamotoSecondsList, 1))
24
- }]
25
- };
26
- };
27
- //#endregion
28
- export { createChioriKitBehaviour };
@@ -1,104 +0,0 @@
1
- import "./characterPack-zycIUHje.js";
2
- import { t as addKitEffect } from "./addKitEffect-DBqTfm_3.js";
3
- import { l as MELEE_WEAPON_TYPES } from "./constants-BqrUOf2M.js";
4
- import { castKitField, castKitSummon, gainPartyMemberEnergy, getPartyMember, selectAttackTarget, startKitCooldown } from "./index.js";
5
- import { takeOne } from "@esposter/shared";
6
- //#region src/services/kit/characters/chongyunKit.ts
7
- const FIELD_RADIUS = 8;
8
- const FIELD_OFFSET_METRES = 1.5;
9
- const FIELD_TICK_SECONDS = 1;
10
- const FIELD_TICK_MARGIN_SECONDS = .1;
11
- const STEADY_BREATHING_ASCENSION = 1;
12
- const STEADY_BREATHING_NORMAL_ATTACK_SPEED_BONUS = .08;
13
- const RIMECHASER_BLADE_ASCENSION = 4;
14
- const RIMECHASER_BLADE_STATUS_ID = "chongyun-rimechaser-blade";
15
- const RIMECHASER_BLADE_CRYO_RESISTANCE_REDUCTION = .1;
16
- const RIMECHASER_BLADE_STATUS_SECONDS = 8;
17
- const ICE_UNLEASHED_CONSTELLATION = 1;
18
- const ATMOSPHERIC_REVOLUTION_CONSTELLATION = 2;
19
- const ATMOSPHERIC_REVOLUTION_COOLDOWN_MULTIPLIER = .85;
20
- const FROZEN_SKIES_CONSTELLATION = 4;
21
- const FROZEN_SKIES_ENERGY = 1;
22
- const FROZEN_SKIES_COOLDOWN_STATUS_ID = "chongyun-frozen-skies-cooldown";
23
- const FROZEN_SKIES_COOLDOWN_SECONDS = 2;
24
- const RALLY_OF_FOUR_BLADES_CONSTELLATION = 6;
25
- const RALLY_OF_FOUR_BLADES_DAMAGE_BONUS = .15;
26
- const FROST_FIELD_ID = "chongyun-frost-field";
27
- const checkIsFrostField = (effect) => effect.kind === "field" && effect.id === FROST_FIELD_ID;
28
- const createChongyunKitBehaviour = ({ kit, readHit, readHits, readParameter }) => {
29
- const infusionSeconds = readParameter("infusionSeconds");
30
- const skillHitmarkSeconds = takeOne(kit.elementalSkill.hits).hitmarkSeconds;
31
- const fieldSeconds = readParameter("frostFieldSeconds") + skillHitmarkSeconds + FIELD_TICK_MARGIN_SECONDS;
32
- const rimechaserBladeHit = readHit("rimechaserBlade", { enemyStatus: () => ({
33
- damageTakenBonus: 0,
34
- id: RIMECHASER_BLADE_STATUS_ID,
35
- resistanceReduction: { ["Ice"]: RIMECHASER_BLADE_CRYO_RESISTANCE_REDUCTION },
36
- secondsRemaining: RIMECHASER_BLADE_STATUS_SECONDS
37
- }) });
38
- const iceUnleashedHits = readHits("iceUnleashed");
39
- const burstBladeHits = kit.elementalBurst.hits;
40
- const rallyOfFourBladesHit = readHit("rallyOfFourBlades");
41
- const fourthStrike = kit.normalAttacks.at(-1);
42
- const infuse = (kitEffectState, { ascension }, { characterId, weaponType }) => {
43
- if (weaponType === void 0 || !MELEE_WEAPON_TYPES.has(weaponType)) return;
44
- addKitEffect(kitEffectState, {
45
- characterId,
46
- element: "Ice",
47
- kind: "infusion",
48
- ...ascension >= STEADY_BREATHING_ASCENSION && { normalAttackSpeedBonus: STEADY_BREATHING_NORMAL_ATTACK_SPEED_BONUS },
49
- secondsRemaining: infusionSeconds
50
- });
51
- };
52
- return {
53
- burst: { onStart: ({ activeCombatant: combatant, body, kitEffectState }) => {
54
- if (combatant.constellationCount >= RALLY_OF_FOUR_BLADES_CONSTELLATION) castKitSummon(kitEffectState, body, combatant, [rallyOfFourBladesHit]);
55
- } },
56
- getStrikeDamageBonus: ({ combatant, hit }, enemy, party) => combatant.constellationCount >= RALLY_OF_FOUR_BLADES_CONSTELLATION && (burstBladeHits.includes(hit) || hit === rallyOfFourBladesHit) && enemy.health / enemy.maxHealth < getPartyMember(party, combatant.characterId).healthShare ? RALLY_OF_FOUR_BLADES_DAMAGE_BONUS : 0,
57
- onKitEvent: (event, { activeCombatant, body, enemyMap, kitEffectState, party }, combatant) => {
58
- const { ascension, characterId, constellationCount } = combatant;
59
- if (event.kind === "CharacterSwapped") {
60
- if (kitEffectState.effects.some((effect) => checkIsFrostField(effect))) infuse(kitEffectState, combatant, activeCombatant);
61
- } else if (event.kind === "EffectExpired") {
62
- const { effect } = event;
63
- if (!checkIsFrostField(effect) || effect.characterId !== characterId || ascension < RIMECHASER_BLADE_ASCENSION) return;
64
- const { centre, radius } = effect;
65
- const enemy = selectAttackTarget({
66
- angle: 2 * Math.PI,
67
- height: Number.POSITIVE_INFINITY,
68
- radius
69
- }, {
70
- facing: 0,
71
- height: 0,
72
- position: centre
73
- }, enemyMap.values());
74
- castKitSummon(kitEffectState, {
75
- facing: 0,
76
- height: 0,
77
- position: enemy?.position ?? centre
78
- }, combatant, [rimechaserBladeHit]);
79
- } else if (event.kind === "NormalAttackLanded") {
80
- if (activeCombatant.characterId === characterId && constellationCount >= ICE_UNLEASHED_CONSTELLATION && event.action === fourthStrike) castKitSummon(kitEffectState, body, combatant, iceUnleashedHits);
81
- } else if (event.kind === "DamageTaken") {
82
- if (constellationCount < FROZEN_SKIES_CONSTELLATION || event.striker.characterId !== characterId || activeCombatant.characterId !== characterId || !event.enemy.elementalState.auras.has("Cryo") || !startKitCooldown(kitEffectState, characterId, FROZEN_SKIES_COOLDOWN_STATUS_ID, FROZEN_SKIES_COOLDOWN_SECONDS)) return;
83
- gainPartyMemberEnergy(party, combatant, FROZEN_SKIES_ENERGY);
84
- }
85
- },
86
- skill: { onStart: ({ activeCombatant: combatant, body, kitEffectState }) => {
87
- for (const effect of kitEffectState.effects) if (checkIsFrostField(effect)) effect.secondsRemaining = 0;
88
- castKitField(kitEffectState, combatant.characterId, {
89
- x: body.position.x - Math.sin(body.facing) * FIELD_OFFSET_METRES,
90
- z: body.position.z - Math.cos(body.facing) * FIELD_OFFSET_METRES
91
- }, {
92
- ...combatant.constellationCount >= ATMOSPHERIC_REVOLUTION_CONSTELLATION && { cooldownMultiplier: ATMOSPHERIC_REVOLUTION_COOLDOWN_MULTIPLIER },
93
- id: FROST_FIELD_ID,
94
- nextTickSeconds: skillHitmarkSeconds,
95
- onTick: ({ activeCombatant, kitEffectState: tickEffectState }) => infuse(tickEffectState, combatant, activeCombatant),
96
- radius: FIELD_RADIUS,
97
- secondsRemaining: fieldSeconds,
98
- tickIntervalSeconds: FIELD_TICK_SECONDS
99
- });
100
- } }
101
- };
102
- };
103
- //#endregion
104
- export { createChongyunKitBehaviour };
@@ -1,4 +0,0 @@
1
- //#region src/services/kit/characters/citlaliKit.ts
2
- const createCitlaliKitBehaviour = () => ({});
3
- //#endregion
4
- export { createCitlaliKitBehaviour };
@@ -1,4 +0,0 @@
1
- //#region src/services/kit/characters/clorindeKit.ts
2
- const createClorindeKitBehaviour = () => ({});
3
- //#endregion
4
- export { createClorindeKitBehaviour };
@@ -1,28 +0,0 @@
1
- import { v as UNBOUNDED_FIELD_RADIUS } from "./constants-BqrUOf2M.js";
2
- import { castKitField, castKitSummon } from "./index.js";
3
- import { takeOne } from "@esposter/shared";
4
- //#region src/services/kit/characters/colleiKit.ts
5
- const createColleiKitBehaviour = ({ kit, readHit, readSeconds }) => {
6
- const explosionHitmarkSeconds = takeOne(kit.elementalBurst.hits).hitmarkSeconds;
7
- const leap = readHit("leap");
8
- const leapFirstTickSeconds = readSeconds("leapFirstTick");
9
- const leapTickIntervalSeconds = readSeconds("leapTickInterval");
10
- const trumpCardKittySeconds = readSeconds("trumpCardKitty");
11
- return { burst: { onStart: ({ activeCombatant: combatant, body: { facing, height, position }, kitEffectState }) => {
12
- const field = castKitField(kitEffectState, combatant.characterId, position, {
13
- nextTickSeconds: leapFirstTickSeconds,
14
- onTick: ({ kitEffectState: tickEffectState }) => {
15
- castKitSummon(tickEffectState, {
16
- facing,
17
- height,
18
- position: field.centre
19
- }, combatant, [leap]);
20
- },
21
- radius: UNBOUNDED_FIELD_RADIUS,
22
- secondsRemaining: explosionHitmarkSeconds + trumpCardKittySeconds,
23
- tickIntervalSeconds: leapTickIntervalSeconds
24
- });
25
- } } };
26
- };
27
- //#endregion
28
- export { createColleiKitBehaviour };
@@ -1,31 +0,0 @@
1
- import { castKitField, castKitSummon } from "./index.js";
2
- import { takeOne } from "@esposter/shared";
3
- //#region src/services/kit/characters/columbinaKit.ts
4
- const COLUMBINA_SKILL_FIELD_ID = "columbina-gravity-interference";
5
- const createColumbinaKitBehaviour = ({ kit, readHit, readParameter, readSeconds }) => {
6
- const skillDotHit = readHit("skillDot");
7
- const skillDotFirstTickSeconds = readSeconds("skillDotFirstTick");
8
- const skillDotIntervalSeconds = readSeconds("skillDotInterval");
9
- const skillDurationSeconds = readParameter("skillDurationSeconds") + takeOne(kit.elementalSkill.hits).hitmarkSeconds;
10
- const castSkillField = (kitEffectState, body, combatant) => {
11
- const field = castKitField(kitEffectState, combatant.characterId, body.position, {
12
- id: COLUMBINA_SKILL_FIELD_ID,
13
- isFollowing: true,
14
- nextTickSeconds: skillDotFirstTickSeconds,
15
- onTick: ({ kitEffectState: tickKitEffectState }) => castKitSummon(tickKitEffectState, {
16
- facing: 0,
17
- height: 0,
18
- position: field.centre
19
- }, combatant, [skillDotHit]),
20
- secondsRemaining: skillDurationSeconds,
21
- tickIntervalSeconds: skillDotIntervalSeconds
22
- });
23
- };
24
- return { skill: { onStart: ({ activeCombatant: combatant, body, kitEffectState }) => {
25
- const standingField = kitEffectState.effects.find((effect) => effect.kind === "field" && effect.id === COLUMBINA_SKILL_FIELD_ID && effect.characterId === combatant.characterId);
26
- if (standingField === void 0) castSkillField(kitEffectState, body, combatant);
27
- else standingField.secondsRemaining = skillDurationSeconds;
28
- } } };
29
- };
30
- //#endregion
31
- export { createColumbinaKitBehaviour };
@@ -1,49 +0,0 @@
1
- import { MmdBoneName } from "genshin-engine";
2
- //#region src/services/character/avatar/constants.ts
3
- const AVATAR_COMPONENT = "playergirl";
4
- const AVATAR_TEXTURE_FOLDER = "Texture2D";
5
- const AVATAR_TEXTURE_SLOTS = [
6
- {
7
- isColour: false,
8
- slot: "_FaceMapTex"
9
- },
10
- {
11
- isColour: false,
12
- slot: "_LightMapTex"
13
- },
14
- {
15
- isColour: true,
16
- slot: "_MTMap"
17
- },
18
- {
19
- isColour: true,
20
- slot: "_MainTex"
21
- },
22
- {
23
- isColour: true,
24
- slot: "_PackedShadowRampTex"
25
- }
26
- ];
27
- const AVATAR_HUMANOID_MMD_NAME_MAP = {
28
- Chest: MmdBoneName.Upper2,
29
- Head: MmdBoneName.Head,
30
- Hips: MmdBoneName.Lower,
31
- LeftFoot: MmdBoneName.LeftAnkle,
32
- LeftHand: MmdBoneName.LeftWrist,
33
- LeftLowerArm: MmdBoneName.LeftElbow,
34
- LeftLowerLeg: MmdBoneName.LeftKnee,
35
- LeftShoulder: MmdBoneName.LeftShoulder,
36
- LeftUpperArm: MmdBoneName.LeftArm,
37
- LeftUpperLeg: MmdBoneName.LeftLeg,
38
- Neck: MmdBoneName.Neck,
39
- RightFoot: MmdBoneName.RightAnkle,
40
- RightHand: MmdBoneName.RightWrist,
41
- RightLowerArm: MmdBoneName.RightElbow,
42
- RightLowerLeg: MmdBoneName.RightKnee,
43
- RightShoulder: MmdBoneName.RightShoulder,
44
- RightUpperArm: MmdBoneName.RightArm,
45
- RightUpperLeg: MmdBoneName.RightLeg,
46
- Spine: MmdBoneName.Upper
47
- };
48
- //#endregion
49
- export { AVATAR_TEXTURE_SLOTS as i, AVATAR_HUMANOID_MMD_NAME_MAP as n, AVATAR_TEXTURE_FOLDER as r, AVATAR_COMPONENT as t };
@@ -1,48 +0,0 @@
1
- import "./characterPack-zycIUHje.js";
2
- import { t as ReactionType } from "./ReactionType-BBSdxyO3.js";
3
- import { LocomotionState } from "genshin-engine";
4
- //#region src/services/kit/constants.ts
5
- const KIT_FRAMES_PER_SECOND = 60;
6
- const STRIKE_TARGETING_AREA = Object.freeze({
7
- angle: 2 * Math.PI,
8
- height: 6,
9
- radius: 5
10
- });
11
- const SKILL_TARGETING_AREA = Object.freeze({
12
- angle: 2 * Math.PI,
13
- height: 10,
14
- radius: 15
15
- });
16
- const ON_FOOT_LOCOMOTION_STATES = [
17
- LocomotionState.Idle,
18
- LocomotionState.Run,
19
- LocomotionState.Sprint,
20
- LocomotionState.Walk
21
- ];
22
- const AIRBORNE_LOCOMOTION_STATES = [LocomotionState.Fall, LocomotionState.Jump];
23
- const CHARGED_ATTACK_HOLD_SECONDS = .3;
24
- const NORMAL_ATTACK_RESET_SECONDS = .5;
25
- const PLUNGE_COLLISION_SECONDS = .3;
26
- const HIGH_PLUNGE_MIN_HEIGHT = 2.4;
27
- const ALTITUDE_LIMIT = 2;
28
- const ALTITUDE_COEFFICIENT = .2;
29
- const TARGET_DISTANCE_WEIGHT = .7;
30
- const TARGET_ANGLE_WEIGHT = .3;
31
- const ENEMY_STRIKE_TALENT_MULTIPLIER = 1;
32
- const SUMMON_LINGER_SECONDS = .1;
33
- const UNBOUNDED_FIELD_RADIUS = Number.POSITIVE_INFINITY;
34
- const ELECTRO_REACTION_TYPES = /* @__PURE__ */ new Set([
35
- ReactionType.Aggravate,
36
- ReactionType.ElectroCharged,
37
- ReactionType.Hyperbloom,
38
- ReactionType.Overloaded,
39
- ReactionType.Quicken,
40
- ReactionType.Superconduct
41
- ]);
42
- const MELEE_WEAPON_TYPES = /* @__PURE__ */ new Set([
43
- "WEAPON_CLAYMORE",
44
- "WEAPON_POLE",
45
- "WEAPON_SWORD_ONE_HAND"
46
- ]);
47
- //#endregion
48
- export { TARGET_DISTANCE_WEIGHT as _, ELECTRO_REACTION_TYPES as a, KIT_FRAMES_PER_SECOND as c, ON_FOOT_LOCOMOTION_STATES as d, PLUNGE_COLLISION_SECONDS as f, TARGET_ANGLE_WEIGHT as g, SUMMON_LINGER_SECONDS as h, CHARGED_ATTACK_HOLD_SECONDS as i, MELEE_WEAPON_TYPES as l, STRIKE_TARGETING_AREA as m, ALTITUDE_COEFFICIENT as n, ENEMY_STRIKE_TALENT_MULTIPLIER as o, SKILL_TARGETING_AREA as p, ALTITUDE_LIMIT as r, HIGH_PLUNGE_MIN_HEIGHT as s, AIRBORNE_LOCOMOTION_STATES as t, NORMAL_ATTACK_RESET_SECONDS as u, UNBOUNDED_FIELD_RADIUS as v };
@@ -1,46 +0,0 @@
1
- //#region src/services/constants.ts
2
- const TILE_SELECTION_CAPACITY = 512;
3
- const TERRAIN_WORKER_COUNT = 2;
4
- const MAX_PENDING_TILE_COUNT = 8;
5
- const FINEST_TILE_LEVEL = 0;
6
- const ORIGIN_SHIFT_THRESHOLD = 1024;
7
- const ORIGIN_SHIFT_STEP = 512;
8
- const WATER_SURFACE_SIZE = 3200;
9
- const GRASS_CAPTURE_SIZE = 160;
10
- const GRASS_CAPTURE_RESOLUTION = 512;
11
- const GRASS_RECAPTURE_DISTANCE = 20;
12
- const GRASS_BLADE_SEGMENT_COUNT = 3;
13
- const CLOUD_DRIFT_PER_WIND = .012;
14
- const REGION_REACH = 1500;
15
- const REGION_RECHECK_DISTANCE = 64;
16
- const AREA_WEATHER_CHANGE_SECONDS = 300;
17
- const DATA_FETCH_TIMEOUT_MS = 1e4;
18
- const DATA_FETCH_RETRY_MS = 5e3;
19
- const TUNING_TINT_RANGE = .1;
20
- const TUNING_TINT_CHANNELS = [
21
- {
22
- key: "0",
23
- name: "red"
24
- },
25
- {
26
- key: "1",
27
- name: "green"
28
- },
29
- {
30
- key: "2",
31
- name: "blue"
32
- }
33
- ];
34
- const FIXED_STEP_SECONDS = 1 / 60;
35
- const WORLD_RANDOM_SEED = 1;
36
- const CAMERA_FRAME_PRIORITY = -1;
37
- const SHADOW_FRAME_PRIORITY = 1;
38
- const BODY_SHADOW_CASCADES = 2;
39
- const ENEMY_POSE_LENGTH = 3;
40
- const CASTER_REDRAW_DISTANCE = .25;
41
- const CASTER_REDRAW_ANGLE = .1;
42
- const CHARACTER_PLACEHOLDER_COLOR = 15262420;
43
- const UNDRAWN_EFFECTS_MESH_REGEX = /^Eff_/u;
44
- const UNDRAWN_STAGE_PLANES_MESH_REGEX = /^Stages_(?:DecalCube|Plane)_/u;
45
- //#endregion
46
- export { WORLD_RANDOM_SEED as A, TERRAIN_WORKER_COUNT as C, UNDRAWN_EFFECTS_MESH_REGEX as D, TUNING_TINT_RANGE as E, UNDRAWN_STAGE_PLANES_MESH_REGEX as O, SHADOW_FRAME_PRIORITY as S, TUNING_TINT_CHANNELS as T, MAX_PENDING_TILE_COUNT as _, CASTER_REDRAW_DISTANCE as a, REGION_REACH as b, DATA_FETCH_RETRY_MS as c, FINEST_TILE_LEVEL as d, FIXED_STEP_SECONDS as f, GRASS_RECAPTURE_DISTANCE as g, GRASS_CAPTURE_SIZE as h, CASTER_REDRAW_ANGLE as i, WATER_SURFACE_SIZE as k, DATA_FETCH_TIMEOUT_MS as l, GRASS_CAPTURE_RESOLUTION as m, BODY_SHADOW_CASCADES as n, CHARACTER_PLACEHOLDER_COLOR as o, GRASS_BLADE_SEGMENT_COUNT as p, CAMERA_FRAME_PRIORITY as r, CLOUD_DRIFT_PER_WIND as s, AREA_WEATHER_CHANGE_SECONDS as t, ENEMY_POSE_LENGTH as u, ORIGIN_SHIFT_STEP as v, TILE_SELECTION_CAPACITY as w, REGION_RECHECK_DISTANCE as x, ORIGIN_SHIFT_THRESHOLD as y };