Merge branch 'MadeBaruna:main' into main

This commit is contained in:
Kreisler 2024-05-25 14:18:45 -05:00 committed by GitHub
commit 7b6e635b11
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
111 changed files with 2503 additions and 313 deletions

View file

@ -167,7 +167,7 @@
url.searchParams.append('lang', 'en-us');
url.hash = '';
url.host = 'hk4e-api-os.mihoyo.com';
url.pathname = 'event/gacha_info/api/getGachaLog';
url.pathname = 'gacha_info/api/getGachaLog';
currentBanner = type.name;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1149,6 +1149,74 @@ export const banners = {
// version: '4.5',
// timezoneDependent: true,
// },
{
name: 'Decree of the Deeps',
image: 2,
shortName: 'Neuvillette',
start: '2024-04-02 18:00:00',
end: '2024-04-23 14:59:00',
color: '#72fefd',
featured: ['neuvillette', 'kaedehara_kazuha'],
featuredRare: ['barbara', 'xingqiu', 'yanfei'],
version: '4.5',
},
// {
// name: 'Leaves in the Wind',
// image: 4,
// shortName: 'Kazuha',
// start: '2024-04-02 18:00:00',
// end: '2024-04-23 14:59:00',
// color: '#8FFFDE',
// featured: ['neuvillette', 'kaedehara_kazuha'],
// featuredRare: ['barbara', 'xingqiu', 'yanfei'],
// version: '4.5',
// },
{
name: "The Hearth's Ashen Shadow",
image: 1,
shortName: 'Arlecchino',
start: '2024-04-24 06:00:00',
end: '2024-05-14 17:59:00',
color: '#f8f8f8',
featured: ['arlecchino', 'lyney'],
featuredRare: ['freminet', 'lynette', 'xiangling'],
version: '4.6',
timezoneDependent: true,
},
// {
// name: 'Conjuring Chiaroscuro',
// image: 2,
// shortName: 'Lyney',
// start: '2024-04-24 06:00:00',
// end: '2024-05-14 17:59:00',
// color: '#fcc6c8',
// featured: ['arlecchino', 'lyney'],
// featuredRare: ['freminet', 'lynette', 'xiangling'],
// version: '4.6',
// timezoneDependent: true,
// },
{
name: 'From Ashes Reborn',
image: 3,
shortName: 'Wanderer',
start: '2024-05-14 18:00:00',
end: '2024-06-04 14:59:00',
color: '#31cae1',
featured: ['wanderer', 'baizhu'],
featuredRare: ['layla', 'faruzan', 'beidou'],
version: '4.6',
},
// {
// name: 'Immaculate Pulse',
// image: 3,
// shortName: 'Baizhu',
// start: '2024-05-14 18:00:00',
// end: '2024-06-04 14:59:00',
// color: '#8fdaa0',
// featured: ['wanderer', 'baizhu'],
// featuredRare: ['layla', 'faruzan', 'beidou'],
// version: '4.6',
// },
],
weapons: [
{
@ -1903,6 +1971,46 @@ export const banners = {
version: '4.5',
timezoneDependent: true,
},
{
name: 'Epitome Invocation',
image: 62,
shortName: 'Eternal',
start: '2024-04-02 18:00:00',
end: '2024-04-23 14:59:00',
color: '#eae5e1',
featured: ['tome_of_the_eternal_flow', 'freedom-sworn'],
featuredRare: ['wine_and_song', 'mitternachts_waltz', 'the_flute', 'favonius_greatsword', 'favonius_lance'],
version: '4.5',
},
{
name: 'Epitome Invocation',
image: 63,
shortName: 'Crimson',
start: '2024-04-24 06:00:00',
end: '2024-05-14 17:59:00',
color: '#ffb169',
featured: ['crimson_moons_semblance', 'the_first_great_magic'],
featuredRare: [
'the_dockhands_assistant',
'portable_power_saw',
'dragons_bane',
'eye_of_perception',
'favonius_warbow',
],
version: '4.6',
timezoneDependent: true,
},
{
name: 'Epitome Invocation',
image: 64,
shortName: 'Tulaytullah',
start: '2024-05-14 18:00:00',
end: '2024-06-04 14:59:00',
color: '#eae5e1',
featured: ['tulaytullahs_remembrance', 'jadefalls_splendor'],
featuredRare: ['prospectors_drill', 'range_gauge', 'favonius_sword', 'rainslasher', 'sacrificial_fragments'],
version: '4.6',
},
],
chronicled: [
{

View file

@ -903,4 +903,78 @@ export const bannersDual = {
timezoneDependent: true,
},
],
'Decree of the Deeps 2': [
{
name: 'Decree of the Deeps',
image: 2,
shortName: 'Neuvillette',
start: '2024-04-02 18:00:00',
end: '2024-04-23 14:59:00',
color: '#72fefd',
featured: ['neuvillette', 'kaedehara_kazuha'],
featuredRare: ['barbara', 'xingqiu', 'yanfei'],
version: '4.5',
},
{
name: 'Leaves in the Wind',
image: 4,
shortName: 'Kazuha',
start: '2024-04-02 18:00:00',
end: '2024-04-23 14:59:00',
color: '#8FFFDE',
featured: ['neuvillette', 'kaedehara_kazuha'],
featuredRare: ['barbara', 'xingqiu', 'yanfei'],
version: '4.5',
},
],
"The Hearth's Ashen Shadow 1": [
{
name: "The Hearth's Ashen Shadow",
image: 1,
shortName: 'Arlecchino',
start: '2024-04-24 06:00:00',
end: '2024-05-14 17:59:00',
color: '#f8f8f8',
featured: ['arlecchino', 'lyney'],
featuredRare: ['freminet', 'lynette', 'xiangling'],
version: '4.6',
timezoneDependent: true,
},
{
name: 'Conjuring Chiaroscuro',
image: 2,
shortName: 'Lyney',
start: '2024-04-24 06:00:00',
end: '2024-05-14 17:59:00',
color: '#fcc6c8',
featured: ['arlecchino', 'lyney'],
featuredRare: ['freminet', 'lynette', 'xiangling'],
version: '4.6',
timezoneDependent: true,
},
],
'From Ashes Reborn 3': [
{
name: 'From Ashes Reborn',
image: 3,
shortName: 'Wanderer',
start: '2024-05-14 18:00:00',
end: '2024-06-04 14:59:00',
color: '#31cae1',
featured: ['wanderer', 'baizhu'],
featuredRare: ['layla', 'faruzan', 'beidou'],
version: '4.6',
},
{
name: 'Immaculate Pulse',
image: 3,
shortName: 'Baizhu',
start: '2024-05-14 18:00:00',
end: '2024-06-04 14:59:00',
color: '#8fdaa0',
featured: ['wanderer', 'baizhu'],
featuredRare: ['layla', 'faruzan', 'beidou'],
version: '4.6',
},
],
};

View file

@ -48,6 +48,7 @@ export const birthdays = {
amber: [8, 10],
navia: [8, 16],
chiori: [8, 17],
arlecchino: [8, 22],
ningguang: [8, 26],
mona: [8, 31],
chongyun: [9, 7],

View file

@ -5080,55 +5080,4 @@ export const builds = {
},
},
},
lyney: {
roles: {
TBD: {
recommended: false,
weapons: [],
artifacts: [],
mainStats: {
sands: ['TBD'],
goblet: ['TBD'],
circlet: ['TBD'],
},
subStats: ['TBD'],
talent: ['TBD'],
note: 'TBD',
},
},
},
lynette: {
roles: {
TBD: {
recommended: false,
weapons: [],
artifacts: [],
mainStats: {
sands: ['TBD'],
goblet: ['TBD'],
circlet: ['TBD'],
},
subStats: ['TBD'],
talent: ['TBD'],
note: 'TBD',
},
},
},
freminet: {
roles: {
TBD: {
recommended: false,
weapons: [],
artifacts: [],
mainStats: {
sands: ['TBD'],
goblet: ['TBD'],
circlet: ['TBD'],
},
subStats: ['TBD'],
talent: ['TBD'],
note: 'TBD',
},
},
},
};

File diff suppressed because it is too large Load diff

View file

@ -729,6 +729,151 @@ export const characters = {
},
element: elements.geo,
},
arlecchino: {
id: 'arlecchino',
name: 'Arlecchino',
rarity: 5,
weapon: weapons.polearm,
stats: {
hp: 13103,
atk: 342,
def: 765,
},
ascension: [
{
items: [
{
item: itemList.agnidus_agate_sliver,
amount: 1,
},
{
item: itemList.none,
amount: null,
},
{
item: itemList.rainbow_rose,
amount: 3,
},
{
item: itemList.recruits_insignia,
amount: 3,
},
],
mora: 20000,
},
{
items: [
{
item: itemList.agnidus_agate_fragment,
amount: 3,
},
{
item: itemList.fragment_of_a_golden_melody,
amount: 2,
},
{
item: itemList.rainbow_rose,
amount: 10,
},
{
item: itemList.recruits_insignia,
amount: 15,
},
],
mora: 40000,
},
{
items: [
{
item: itemList.agnidus_agate_fragment,
amount: 6,
},
{
item: itemList.fragment_of_a_golden_melody,
amount: 4,
},
{
item: itemList.rainbow_rose,
amount: 20,
},
{
item: itemList.sergeants_insignia,
amount: 12,
},
],
mora: 60000,
},
{
items: [
{
item: itemList.agnidus_agate_chunk,
amount: 3,
},
{
item: itemList.fragment_of_a_golden_melody,
amount: 8,
},
{
item: itemList.rainbow_rose,
amount: 30,
},
{
item: itemList.sergeants_insignia,
amount: 18,
},
],
mora: 80000,
},
{
items: [
{
item: itemList.agnidus_agate_chunk,
amount: 6,
},
{
item: itemList.fragment_of_a_golden_melody,
amount: 12,
},
{
item: itemList.rainbow_rose,
amount: 45,
},
{
item: itemList.lieutenants_insignia,
amount: 12,
},
],
mora: 100000,
},
{
items: [
{
item: itemList.agnidus_agate_gemstone,
amount: 6,
},
{
item: itemList.fragment_of_a_golden_melody,
amount: 20,
},
{
item: itemList.rainbow_rose,
amount: 60,
},
{
item: itemList.lieutenants_insignia,
amount: 24,
},
],
mora: 120000,
},
],
material: {
material: [itemList.recruits_insignia, itemList.sergeants_insignia, itemList.lieutenants_insignia],
book: [itemList.teachings_of_order, itemList.guide_to_order, itemList.philosophies_of_order],
boss: itemList.fading_candle,
},
element: elements.pyro,
},
baizhu: {
id: 'baizhu',
name: 'Baizhu',

View file

@ -1683,4 +1683,92 @@ export const events = [
url: 'https://www.hoyolab.com/article/25833336',
showOnHome: true,
},
{
name: 'Rolling Crossfire',
pos: '0% 40%',
image: 'Rolling Crossfire.jpg',
start: '2024-04-01 10:00:00',
end: '2024-04-11 03:59:59',
color: '#8bd7f1',
zoom: '250%',
url: 'https://www.hoyolab.com/article/26498562',
showOnHome: true,
},
{
name: 'Feline Fotress Furrdyssey',
pos: '0% 40%',
image: 'Feline Fotress Furrdyssey_.jpg',
start: '2024-04-08 10:00:00',
end: '2024-04-18 03:59:59',
color: '#eecaa3',
zoom: '150%',
url: 'https://www.hoyolab.com/article/26498562',
showOnHome: true,
},
{
name: 'Ley Line Overflow',
pos: '0% 20%',
image: 'leyline_overflow.jpg',
start: '2024-04-15 04:00:00',
end: '2024-04-22 03:59:59',
color: '#5baced',
zoom: '200%',
url: 'https://www.hoyolab.com/article/26435017',
showOnHome: true,
},
{
name: 'Vibro-Crystal Applications',
pos: '0% 25%',
image: 'vibro_crysta_research.jpg',
start: '2024-04-28 10:00:00',
end: '2024-05-09 03:59:59',
color: '#64a3f3',
zoom: '220%',
url: 'https://www.hoyolab.com/article/27519785',
showOnHome: true,
},
{
name: 'Iridescent Arataki Rockin for Life Tour de Force of Awesomeness',
pos: '30% 30%',
image: 'Iridescent Arataki Rockin_for Life Tour de Force of Awesomeness.png',
start: '2024-05-06 10:00:00',
end: '2024-05-27 03:59:59',
color: '#eae0e4',
zoom: '170%',
url: 'https://www.hoyolab.com/article/28116868',
showOnHome: true,
},
{
name: 'Windtrace: Seekers and Strategy',
pos: '0% 75%',
image: 'Windtrace Seekers and Strategy.png',
start: '2024-05-14 10:00:00',
end: '2024-05-27 03:59:59',
color: '#ffeaac',
zoom: '220%',
url: 'https://www.hoyolab.com/article/28436119',
showOnHome: true,
},
{
name: 'Specially-Shaped Saurian Search',
pos: '0% 40%',
image: 'SpeciallyShapedSaurianSearch.png',
start: '2024-05-22 10:00:00',
end: '2024-06-03 03:59:59',
color: '#9cfe95',
zoom: '100%',
url: 'https://www.hoyolab.com/article/28345218',
showOnHome: true,
},
{
name: 'Overflowing Mastery',
pos: '0% 50%',
image: 'overflowing_mastery.jpg',
start: '2024-05-27 04:00:00',
end: '2024-06-03 03:59:59',
color: '#f5debc',
zoom: '200%',
url: 'https://www.hoyolab.com/article/28345218',
showOnHome: true,
},
];

View file

@ -1485,4 +1485,26 @@ export const itemList = {
name: 'Chasmlight Fin',
rarity: 4,
},
fragment_of_a_golden_melody: {
id: 'fragment_of_a_golden_melody',
name: 'Fragment of a Golden Melody',
rarity: 4,
},
fading_candle: { id: 'fading_candle', name: 'Fading Candle' },
ruined_hilt: {
id: 'ruined_hilt',
name: 'Ruined Hilt',
rarity: 2,
},
splintered_hilt: {
id: 'splintered_hilt',
name: 'Splintered Hilt',
rarity: 3,
},
still_smoldering_hilt: {
id: 'still_smoldering_hilt',
name: 'Still-Smoldering Hilt',
rarity: 4,
},
};

View file

@ -1,68 +1,22 @@
export const eventsData = [
[
{
name: 'Of Kites and New Sights',
pos: '0% 50%',
image: 'Of Kites and New Sights.png',
start: '2024-02-24 04:00:00',
end: '2024-03-13 03:59:59',
color: '#8fbcff',
zoom: '200%',
url: 'https://www.hoyolab.com/article/24708406',
name: 'Specially-Shaped Saurian Search',
pos: '0% 40%',
image: 'SpeciallyShapedSaurianSearch.png',
start: '2024-05-22 10:00:00',
end: '2024-06-03 03:59:59',
color: '#9cfe95',
zoom: '100%',
url: 'https://www.hoyolab.com/article/28345218',
showOnHome: true,
},
],
[
{
name: 'Triumphant Frenzy',
pos: '0% 40%',
image: 'Triumphant Frenzy.png',
start: '2024-02-15 10:00:00',
end: '2024-02-26 03:59:59',
color: '#d6b0b7',
zoom: '200%',
url: 'https://www.hoyolab.com/article/24683799',
showOnHome: true,
},
{
name: 'Ley Line Overflow',
pos: '0% 20%',
image: 'leyline_overflow.jpg',
start: '2024-03-04 04:00:00',
end: '2024-03-11 03:59:59',
color: '#5baced',
zoom: '200%',
url: 'https://www.hoyolab.com/article/24708406',
showOnHome: true,
},
],
[
{
name: 'Vibrant Harriers Aloft in Spring Breeze',
pos: '0% 30%',
image: 'Vibrant Harriers Aloft in Spring Breeze.png',
start: '2024-02-05 10:00:00',
end: '2024-02-26 03:59:59',
color: '#f4c580',
zoom: '200%',
url: 'https://www.hoyolab.com/article/24683838',
showOnHome: true,
},
{
name: 'Journey Through Hilinigmatic Terrain',
pos: '0% 40%',
image: 'Journey Through Hilinigmatic Terrain.png',
start: '2024-02-29 10:00:00',
end: '2024-03-11 03:59:59',
color: '#cbd2b7',
zoom: '200%',
url: 'https://www.hoyolab.com/article/24708406',
showOnHome: true,
},
{
name: 'The Great Fays Reaction Debate',
pos: '30% 20%',
image: 'The Great Fays Reaction Debate.png',
pos: '0% 30%',
image: 'The Great Fayz Reaction Debate.jpg',
start: '2024-03-22 10:00:00',
end: '2024-04-03 03:59:59',
color: '#6edeca',
@ -70,30 +24,41 @@ export const eventsData = [
url: 'https://www.hoyolab.com/article/25833336',
showOnHome: true,
},
{
name: 'Feline Fotress Furrdyssey',
pos: '0% 40%',
image: 'Feline Fotress Furrdyssey_.jpg',
start: '2024-04-08 10:00:00',
end: '2024-04-18 03:59:59',
color: '#eecaa3',
zoom: '150%',
url: 'https://www.hoyolab.com/article/26498562',
showOnHome: true,
},
{
name: 'Iridescent Arataki Rockin for Life Tour de Force of Awesomeness',
pos: '30% 30%',
image: 'Iridescent Arataki Rockin_for Life Tour de Force of Awesomeness.png',
start: '2024-05-06 10:00:00',
end: '2024-05-27 03:59:59',
color: '#eae0e4',
zoom: '170%',
url: 'https://www.hoyolab.com/article/28116868',
showOnHome: true,
},
{
name: 'Overflowing Mastery',
pos: '0% 50%',
image: 'overflowing_mastery.jpg',
start: '2024-05-27 04:00:00',
end: '2024-06-03 03:59:59',
color: '#f5debc',
zoom: '200%',
url: 'https://www.hoyolab.com/article/28345218',
showOnHome: true,
},
],
[
{
name: 'May Fortune Find You - Daily Login',
pos: '0% 0%',
image: 'daily_login.jpg',
start: '2024-02-03 04:00:00',
end: '2024-02-18 03:59:59',
color: '#F18B53',
zoom: '100%',
url: 'https://www.hoyolab.com/article/24683799',
showOnHome: true,
},
{
name: 'Receiver of Friends From Afar',
pos: '0% 40%',
image: 'Receiver of Friends From Afar.png',
start: '2024-02-21 10:00:00',
end: '2024-03-04 03:59:59',
color: '#f5d377',
zoom: '200%',
url: 'https://www.hoyolab.com/article/24708406',
showOnHome: true,
},
{
name: 'Alchemical Ascension',
pos: '30% 20%',
@ -105,31 +70,52 @@ export const eventsData = [
url: 'https://www.hoyolab.com/article/25852855',
showOnHome: true,
},
{
name: 'Rolling Crossfire',
pos: '0% 40%',
image: 'Rolling Crossfire.jpg',
start: '2024-04-01 10:00:00',
end: '2024-04-11 03:59:59',
color: '#8bd7f1',
zoom: '250%',
url: 'https://www.hoyolab.com/article/26498562',
showOnHome: true,
},
{
name: 'Ley Line Overflow',
pos: '0% 20%',
image: 'leyline_overflow.jpg',
start: '2024-04-15 04:00:00',
end: '2024-04-22 03:59:59',
color: '#5baced',
zoom: '200%',
url: 'https://www.hoyolab.com/article/26435017',
showOnHome: true,
},
{
name: 'Vibro-Crystal Applications',
pos: '0% 25%',
image: 'vibro_crysta_research.jpg',
start: '2024-04-28 10:00:00',
end: '2024-05-09 03:59:59',
color: '#64a3f3',
zoom: '220%',
url: 'https://www.hoyolab.com/article/27519785',
showOnHome: true,
},
{
name: 'Windtrace: Seekers and Strategy',
pos: '0% 75%',
image: 'Windtrace Seekers and Strategy.png',
start: '2024-05-14 10:00:00',
end: '2024-05-27 03:59:59',
color: '#ffeaac',
zoom: '220%',
url: 'https://www.hoyolab.com/article/28436119',
showOnHome: true,
},
],
[
{
name: 'The Crane Soars Skyward - Xianyun Banner',
pos: '40% 15%',
zoom: '200%',
image: 'The Crane Soars Skyward 1.png',
start: '2024-01-31 06:00:00',
end: '2024-02-20 17:59:00',
color: '#affcd1',
url: 'https://www.hoyolab.com/article/24683839',
showOnHome: true,
timezoneDependent: true,
},
{
name: 'Invitation to Mundane Life - Xiao Banner',
pos: '40% 15%',
zoom: '200%',
image: 'Invitation to Mundane Life 5.png',
start: '2024-02-20 18:00:00',
end: '2024-03-12 14:59:00',
color: '#25d7b8',
url: 'https://www.hoyolab.com/article/24708380',
showOnHome: true,
},
{
name: 'Of Silken Clouds Woven - Chiori Banner',
pos: '0% 10%',
@ -142,31 +128,42 @@ export const eventsData = [
showOnHome: true,
timezoneDependent: true,
},
],
[
{
name: "The Moongrass' Enlightenment - Nahida Banner",
pos: '40% 15%',
name: 'Decree of the Deeps - Neuvillette Banner',
pos: '0% 10%',
zoom: '150%',
image: 'Decree of the Deeps 2.jpg',
start: '2024-04-02 18:00:00',
end: '2024-04-23 14:59:00',
color: '#72fefd',
url: 'https://www.hoyolab.com/article/26434736',
showOnHome: true,
},
{
name: "The Hearth's Ashen Shadow - Arlecchino Banner",
pos: '20% 15%',
zoom: '200%',
image: 'The Moongrass Enlightenment 3.png',
start: '2024-01-31 06:00:00',
end: '2024-02-20 17:59:00',
color: '#b8db94',
url: 'https://www.hoyolab.com/article/24683839',
image: 'The Hearths Ashen Shadow 1.png',
start: '2024-04-24 06:00:00',
end: '2024-05-14 17:59:00',
color: '#f8f8f8',
url: 'https://www.hoyolab.com/article/27519521',
showOnHome: true,
timezoneDependent: true,
},
{
name: 'Everbloom Violet - Yae Miko Banner',
pos: '40% 15%',
name: 'From Ashes Reborn - Wanderer Banner',
pos: '20% 20%',
zoom: '200%',
image: 'Everbloom Violet 4.png',
start: '2024-02-20 18:00:00',
end: '2024-03-12 14:59:00',
color: '#ffd1f9',
url: 'https://www.hoyolab.com/article/24708380',
image: 'From Ashes Reborn 3.png',
start: '2024-05-14 18:00:00',
end: '2024-06-04 14:59:00',
color: '#31cae1',
url: 'https://www.hoyolab.com/article/28344952',
showOnHome: true,
},
],
[
{
name: "Oni's Royale - Itto Banner",
pos: '0% 15%',
@ -179,31 +176,42 @@ export const eventsData = [
showOnHome: true,
timezoneDependent: true,
},
],
[
{
name: 'Epitome Invocation - Weapon Banner',
pos: '30% 35%',
name: 'Leaves in the Wind - Kazuha Banner',
pos: '0% 10%',
zoom: '150%',
image: 'Epitome Invocation 59.png',
start: '2024-01-31 06:00:00',
end: '2024-02-20 17:59:00',
color: '#FFAA4B',
url: 'https://www.hoyolab.com/article/24683839',
image: 'Leaves in the Wind 4.jpg',
start: '2024-04-02 18:00:00',
end: '2024-04-23 14:59:00',
color: '#8FFFDE',
url: 'https://www.hoyolab.com/article/26434736',
showOnHome: true,
},
{
name: 'Leaves in the Wind - Lyney Banner',
pos: '0% 10%',
zoom: '150%',
image: 'Conjuring Chiaroscuro 2.png',
start: '2024-04-24 06:00:00',
end: '2024-05-14 17:59:00',
color: '#fcc6c8',
url: 'https://www.hoyolab.com/article/27519521',
showOnHome: true,
timezoneDependent: true,
},
{
name: 'Epitome Invocation - Weapon Banner',
pos: '30% 35%',
zoom: '150%',
image: 'Epitome Invocation 60.png',
start: '2024-02-20 18:00:00',
end: '2024-03-12 14:59:00',
color: '#FFAA4B',
url: 'https://www.hoyolab.com/article/24708380',
name: 'Immaculate Pulse - Baizhu Banner',
pos: '20% 15%',
zoom: '200%',
image: 'Immaculate Pulse 3.png',
start: '2024-05-14 18:00:00',
end: '2024-06-04 14:59:00',
color: '#8fdaa0',
url: 'https://www.hoyolab.com/article/28344952',
showOnHome: true,
},
],
[
{
name: 'Epitome Invocation - Weapon Banner',
pos: '30% 35%',
@ -216,6 +224,41 @@ export const eventsData = [
showOnHome: true,
timezoneDependent: true,
},
{
name: 'Epitome Invocation - Weapon Banner',
pos: '30% 35%',
zoom: '150%',
image: 'Epitome Invocation 62.jpg',
start: '2024-04-02 18:00:00',
end: '2024-04-23 14:59:00',
color: '#FFAA4B',
url: 'https://www.hoyolab.com/article/26434736',
showOnHome: true,
},
{
name: 'Epitome Invocation - Weapon Banner',
pos: '30% 15%',
zoom: '150%',
image: 'Epitome Invocation 63.png',
start: '2024-04-24 06:00:00',
end: '2024-05-14 17:59:00',
color: '#FFAA4B',
url: 'https://www.hoyolab.com/article/27519521',
showOnHome: true,
timezoneDependent: true,
},
{
name: 'Epitome Invocation - Weapon Banner',
pos: '30% 50%',
zoom: '150%',
image: 'Epitome Invocation 64.png',
start: '2024-05-14 18:00:00',
end: '2024-06-04 14:59:00',
color: '#FFAA4B',
url: 'https://www.hoyolab.com/article/28344952',
showOnHome: true,
timezoneDependent: true,
},
],
[
{
@ -236,44 +279,63 @@ export const eventsData = [
name: 'Spiral Abyss',
image: 'spiral_abyss.jpg',
pos: '50% 20%',
start: '2024-02-01 04:00:00',
end: '2024-02-16 04:00:00',
start: '2024-03-16 04:00:00',
end: '2024-04-01 04:00:00',
color: '#4299E1',
description:
"When a character receives healing, it will be counted. When the count reaches a total of 16, a shockwave will be unleashed at the character's position, dealing True DMG to nearby opponents and clearing the count. 1 such shockwave can be unleashed every 8s.",
"When characters create Geo Constructs, unleash a shockwave at the character's location, dealing True DMG to nearby opponents. 1 such shockwave can be unleashed every 6s.",
},
{
name: 'Spiral Abyss',
image: 'spiral_abyss.jpg',
pos: '50% 20%',
start: '2024-02-16 04:00:00',
end: '2024-03-01 04:00:00',
start: '2024-04-01 04:00:00',
end: '2024-04-16 04:00:00',
color: '#4299E1',
description:
"After the active character's Plunging Attacks hit opponents, the character's Plunging Attack DMG is increased by 20% for 8s. This effect can be triggered once every 0.1s. Max 3 stacks. Each stack's duration is counted independently. This effect will be cleared if the character leaves the field.",
'When a character deals Geo DMG to an opponent, this instance will be counted for the character. 1 count can be gained every 0.1s. When the count reaches 3, this character will receive a Gravel Mark, granting them 50% Geo DMG Bonus for 10s.',
},
{
name: 'Spiral Abyss',
image: 'spiral_abyss.jpg',
pos: '50% 20%',
start: '2024-03-01 04:00:00',
end: '2024-03-16 04:00:00',
start: '2024-04-16 04:00:00',
end: '2024-05-01 04:00:00',
color: '#4299E1',
description:
"After the active character's Plunging Attacks hit opponents, unleash a shockwave at the character's location, dealing True DMG to nearby opponents. 1 such shockwave can be unleashed every 2s.",
"After a character triggers a Swirl reaction, all party members' Normal, Charged, and Plunging Attack DMG is increased by 20% for 10s. This effect can be triggered once every 0.1s. Max 3 stacks. Each stack's duration is counted independently.",
},
{
name: 'Spiral Abyss',
image: 'spiral_abyss.jpg',
pos: '50% 20%',
start: '2024-05-01 04:00:00',
end: '2024-05-16 04:00:00',
color: '#4299E1',
description:
"When a character triggers Vaporize, Overloaded, Melt, Burning, Burgeon, Pyro Swirl, or Pyro Crystallize reactions on an opponent, the opponent's All Elemental RES and Physical RES is reduced by 30% for 4s.",
},
{
name: 'Spiral Abyss',
image: 'spiral_abyss.jpg',
pos: '50% 20%',
start: '2024-05-16 04:00:00',
end: '2024-06-01 04:00:00',
color: '#4299E1',
description: "When a character receives healing, the character's ATK increases by 50% for 3s.",
},
{
name: 'Spiral Abyss',
image: 'spiral_abyss.jpg',
pos: '50% 20%',
start: '2024-06-01 04:00:00',
end: '2024-06-16 04:00:00',
color: '#4299E1',
description:
"When a character's HP value increases or decreases, that character gains a 16% increased All Elemental and Physical DMG Bonus for 8s. This effect can stack up to 3 times, and the duration of each stack is counted independently.",
},
],
[
{
name: "Paimon's Bargain - Beidou & Noelle, and Royal",
pos: '0% 50%',
zoom: '150%',
start: '2024-02-01 04:00:00',
end: '2024-03-01 04:00:00',
color: '#B6A1EA',
image: 'paimon_bargain.png',
description: 'Now selling: Beidou & Noelle, and Royal Weapons.',
},
{
name: "Paimon's Bargain - Ningguang, Xingqiu, and Blackcliff",
pos: '0% 50%',
@ -284,18 +346,28 @@ export const eventsData = [
image: 'paimon_bargain.png',
description: 'Now selling: Ningguang, Xingqiu, and Blackcliff Weapons.',
},
{
name: "Paimon's Bargain - Razor, Amber, and Royal",
pos: '0% 50%',
zoom: '150%',
start: '2024-04-01 04:00:00',
end: '2024-05-01 04:00:00',
color: '#B6A1EA',
image: 'paimon_bargain.png',
description: 'Now selling: Razor, Amber, and Royal Weapons.',
},
{
name: "Paimon's Bargain - Bennett, Lisa, and Blackcliff",
pos: '0% 50%',
zoom: '150%',
start: '2024-05-01 04:00:00',
end: '2024-06-01 04:00:00',
color: '#B6A1EA',
image: 'paimon_bargain.png',
description: 'Now selling: Bennett, Lisa, and Blackcliff Weapons.',
},
],
[
{
name: 'Battle Pass - Vivid Flight',
pos: '0% 45%',
image: 'Vivid Flight.png',
start: '2024-01-31 06:00:00',
end: '2024-03-11 03:59:59',
color: '#e2b87f',
url: 'https://www.hoyolab.com/article/24727988',
timezoneDependent: true,
},
{
name: 'Battle Pass - Arcane Amassing',
pos: '0% 45%',
@ -306,5 +378,15 @@ export const eventsData = [
url: 'https://www.hoyolab.com/article/25833336',
timezoneDependent: true,
},
{
name: 'Battle Pass - The Realms Rocked',
pos: '0% 45%',
image: 'The Realms Rocked.jpg',
start: '2024-04-24 06:00:00',
end: '2024-06-03 03:59:59',
color: '#8176e9',
url: 'https://www.hoyolab.com/article/27519785',
timezoneDependent: true,
},
],
];

View file

@ -13267,4 +13267,116 @@ export const weaponList = {
},
],
},
crimson_moons_semblance: {
id: 'crimson_moons_semblance',
name: "Crimson Moon's Semblance",
rarity: 5,
atk: 48,
secondary: 'CRIT Rate',
type: weapons.polearm,
ascension: [
{
items: [
{
item: itemList.broken_goblet_of_the_pristine_sea,
amount: 5,
},
{
item: itemList.ruined_hilt,
amount: 5,
},
{
item: itemList.meshing_gear,
amount: 3,
},
],
mora: 10000,
},
{
items: [
{
item: itemList.wine_goblet_of_the_pristine_sea,
amount: 5,
},
{
item: itemList.ruined_hilt,
amount: 18,
},
{
item: itemList.meshing_gear,
amount: 12,
},
],
mora: 20000,
},
{
items: [
{
item: itemList.wine_goblet_of_the_pristine_sea,
amount: 9,
},
{
item: itemList.splintered_hilt,
amount: 9,
},
{
item: itemList.mechanical_spur_gear,
amount: 9,
},
],
mora: 30000,
},
{
items: [
{
item: itemList.silver_goblet_of_the_pristine_sea,
amount: 5,
},
{
item: itemList.splintered_hilt,
amount: 18,
},
{
item: itemList.mechanical_spur_gear,
amount: 14,
},
],
mora: 45000,
},
{
items: [
{
item: itemList.silver_goblet_of_the_pristine_sea,
amount: 9,
},
{
item: itemList.still_smoldering_hilt,
amount: 14,
},
{
item: itemList.artificed_dynamic_gear,
amount: 9,
},
],
mora: 55000,
},
{
items: [
{
item: itemList.golden_goblet_of_the_pristine_sea,
amount: 6,
},
{
item: itemList.still_smoldering_hilt,
amount: 27,
},
{
item: itemList.artificed_dynamic_gear,
amount: 18,
},
],
mora: 65000,
},
],
},
};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -13,25 +13,25 @@
const dispatch = createEventDispatcher();
const featured = {
arataki_itto: {
name: 'Arataki Itto',
baizhu: {
name: 'Baizhu',
rarity: 'legendary',
count: 0,
average: '...',
percentage: '...',
},
chiori: {
name: 'Chiori',
wanderer: {
name: 'Wanderer',
rarity: 'legendary',
count: 0,
average: '...',
percentage: '...',
},
};
const bannerId = 300062;
const image = 'itto chiori.png';
const bannerId = 300065;
const image = 'baizhu wanderer.png';
const width = 800;
const height = 394;
const height = 403;
let loading = true;
let user = '';

View file

@ -0,0 +1,148 @@
<script>
import { createEventDispatcher } from 'svelte';
import { fade } from 'svelte/transition';
import { mdiChevronDown, mdiCheck } from '@mdi/js';
import Icon from '../../components/Icon.svelte';
const dispatch = createEventDispatcher();
export let className = '';
export let placeholder = 'Version';
export let disabled = false;
export let value = [];
let selected = new Set();
const versions = [
'1.0',
'1.1',
'1.2',
'1.3',
'1.4',
'1.5',
'1.6',
'2.0',
'2.1',
'2.2',
'2.3',
'2.4',
'2.5',
'2.6',
'2.7',
'2.8',
'3.0',
'3.1',
'3.2',
'3.3',
'3.4',
'3.5',
'3.6',
'3.7',
'3.8',
'4.0',
'4.1',
'4.2',
'4.3',
'4.4',
'4.5',
'4.6',
].reduce((acc, version) => {
const parent = version.split('.')[0];
if (!acc[parent]) acc[parent] = [];
acc[parent].push(version);
return acc;
}, {});
const options = Object.entries(versions);
let active = 0;
let label = '';
let focused = false;
let container;
function toggleOptions() {
focused = !focused;
}
function select(version) {
if (selected.has(version)) {
selected.delete(version);
} else {
selected.add(version);
}
selected = selected;
value = [...selected];
dispatch('change');
return;
}
function selectParent(index) {
active = index;
}
function onWindowClick(event) {
if (!container) return;
const eventTarget = event.path && event.path.length > 0 ? event.path[0] : event.target;
if (container.contains(eventTarget)) return;
focused = false;
}
$: if (selected.size === 1) {
label = selected.values().next().value;
} else {
label = `${selected.size} selected`;
}
$: nothingSelected = selected.size === 0;
$: classes = focused ? 'border-primary' : 'border-transparent';
$: iconClasses = focused ? 'transform rotate-180' : '';
</script>
<svelte:window on:click={onWindowClick} />
<div class={`select-none relative ${className}`} bind:this={container}>
<button
class="flex w-full relative items-center px-4 bg-background rounded-2xl h-14 focus:outline-none focus:border-primary border-2 border-transparent ease-in duration-100 {disabled
? 'cursor-not-allowed'
: 'cursor-pointer'} {classes}"
{disabled}
on:click={toggleOptions}
>
<span class={nothingSelected ? 'text-gray-500' : 'text-white'}>{nothingSelected ? placeholder : label}</span>
<Icon path={mdiChevronDown} color="white" className={`absolute right-0 mr-4 duration-100 ease-in ${iconClasses}`} />
</button>
{#if focused}
<div
transition:fade={{ duration: 100 }}
class="bg-item rounded-2xl absolute mt-2 py-2 px-2 w-full z-50 flex gap-2 flex-col text-white shadow-xl border border-background"
>
<div class="flex gap-1">
{#each options as [parent], index}
<button
on:click={() => selectParent(index)}
class="px-2 py-1 rounded-lg flex-1 hover:ring-2 ring-primary duration-100 {index === active
? 'bg-primary text-black'
: 'bg-black/50'}">v{parent}</button
>
{/each}
</div>
<div class="h-[1px] bg-black/30" />
<div class="grid grid-cols-4 gap-1">
{#each options[active][1] as ver}
<button
on:click={() => select(ver)}
class="px-2 py-1 rounded-lg flex-1 hover:ring-2 ring-primary duration-100 {selected.has(ver)
? 'bg-primary text-black'
: 'bg-black/50'}">{ver}</button
>
{/each}
</div>
</div>
{/if}
</div>
<style lang="postcss">
.hovered {
@apply text-white !important;
@apply bg-primary;
}
</style>

View file

@ -15,6 +15,7 @@
import Button from '../../components/Button.svelte';
import Icon from '../../components/Icon.svelte';
import Select from '../../components/Select.svelte';
import VersionSelect from './_VersionSelect.svelte';
import { pushToast } from '../../stores/toast';
import Ad from '../../components/Ad.svelte';
@ -41,42 +42,6 @@
let nameFilter = '';
let sortedAchievements = Object.entries(data).sort((a, b) => a[1].order - b[1].order);
const versions = [
'1.0',
'1.1',
'1.2',
'1.3',
'1.4',
'1.5',
'1.6',
'2.0',
'2.1',
'2.2',
'2.3',
'2.4',
'2.5',
'2.6',
'2.7',
'2.8',
'3.0',
'3.1',
'3.2',
'3.3',
'3.4',
'3.5',
'3.6',
'3.7',
'3.8',
'4.0',
'4.1',
'4.2',
'4.3',
'4.4',
'4.5',
].map((e) => ({
label: e,
value: e,
}));
let versionFilter = [];
const types = [
@ -203,7 +168,7 @@
activeIndex = index;
const filterVersion = versionFilter.length > 0;
const filteredVersion = versionFilter.map((e) => e.value);
const filteredVersion = versionFilter;
let filterComission = [];
for (const e of typeFilter) {
@ -426,12 +391,10 @@
class="pl-4 w-full min-h-full pr-4 text-white placeholder-gray-500 leading-none bg-transparent border-none focus:outline-none"
/>
</div>
<Select
multiselect
options={versions}
bind:selected={versionFilter}
<VersionSelect
bind:value={versionFilter}
placeholder={$t('achievement.version')}
className="w-full md:w-40"
className="w-full md:w-48"
on:change={updateSelectFilter}
/>
<Select

View file

@ -1,6 +1,6 @@
<script context="module">
export async function load({ fetch }) {
const promoted = ['arataki_itto', 'yun_jin', 'gorou', 'dori'];
const promoted = ['wanderer', 'beidou', 'faruzan', 'layla'];
const builds = {};
for (const p of promoted) {
const response = await fetch(`/characters/build/${p}.json`);

View file

@ -237,10 +237,10 @@
url.searchParams.append('lang', 'en-us');
url.hash = '';
url.host = 'hk4e-api-os.hoyoverse.com';
url.pathname = 'event/gacha_info/api/getGachaLog';
url.pathname = 'gacha_info/api/getGachaLog';
if ($server === 'China') {
url.host = 'hk4e-api.mihoyo.com';
url.host = 'public-operation-hk4e.mihoyo.com';
}
currentBanner = type.name;

View file

@ -7,7 +7,7 @@ const IMAGE_CACHE = `cacheimg${IMAGE_CACHE_VER}`;
const IMAGE_URL = `${self.location.origin}/images/`;
const changelog = ['Fix global wish stats page for chronicled wish banner', 'Add chronicled wish banner'];
const changelog = ['Update banners', 'Update timeline'];
const channel = new BroadcastChannel('paimonmoe-sw');

Binary file not shown.

After

Width:  |  Height:  |  Size: 537 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 388 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 389 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 604 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 593 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 571 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 537 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 388 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 389 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 604 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 593 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 372 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 280 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 571 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 312 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 286 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 313 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 440 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 314 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Some files were not shown because too many files have changed in this diff Show more