Merge branch 'MadeBaruna:main' into main
|
@ -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;
|
||||
|
||||
|
|
|
@ -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: [
|
||||
{
|
||||
|
|
|
@ -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',
|
||||
},
|
||||
],
|
||||
};
|
||||
|
|
|
@ -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],
|
||||
|
|
|
@ -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',
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
|
|
1498
src/data/characterData/arlecchino.json
Normal 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',
|
||||
|
|
|
@ -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,
|
||||
},
|
||||
];
|
||||
|
|
|
@ -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,
|
||||
},
|
||||
};
|
||||
|
|
|
@ -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,
|
||||
},
|
||||
],
|
||||
];
|
||||
|
|
|
@ -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,
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
||||
|
|
|
@ -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 = '';
|
||||
|
|
148
src/routes/achievement/_VersionSelect.svelte
Normal 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>
|
|
@ -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
|
||||
|
|
|
@ -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`);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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');
|
||||
|
||||
|
|
BIN
static/images/banners/Conjuring Chiaroscuro 2.png
Normal file
After Width: | Height: | Size: 537 KiB |
BIN
static/images/banners/Decree of the Deeps 2.png
Normal file
After Width: | Height: | Size: 124 KiB |
BIN
static/images/banners/Epitome Invocation 62.png
Normal file
After Width: | Height: | Size: 82 KiB |
BIN
static/images/banners/Epitome Invocation 63.png
Normal file
After Width: | Height: | Size: 388 KiB |
BIN
static/images/banners/Epitome Invocation 64.png
Normal file
After Width: | Height: | Size: 389 KiB |
BIN
static/images/banners/From Ashes Reborn 3.png
Normal file
After Width: | Height: | Size: 604 KiB |
BIN
static/images/banners/Immaculate Pulse 3.png
Normal file
After Width: | Height: | Size: 593 KiB |
BIN
static/images/banners/Leaves in the Wind 4.png
Normal file
After Width: | Height: | Size: 107 KiB |
BIN
static/images/banners/The Hearth's Ashen Shadow 1.png
Normal file
After Width: | Height: | Size: 571 KiB |
BIN
static/images/characters/arlecchino.png
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
static/images/characters/full/arlecchino.png
Normal file
After Width: | Height: | Size: 1.6 MiB |
BIN
static/images/events/Conjuring Chiaroscuro 2.png
Normal file
After Width: | Height: | Size: 537 KiB |
BIN
static/images/events/Decree of the Deeps 2.jpg
Normal file
After Width: | Height: | Size: 124 KiB |
BIN
static/images/events/Epitome Invocation 62.jpg
Normal file
After Width: | Height: | Size: 82 KiB |
BIN
static/images/events/Epitome Invocation 63.png
Normal file
After Width: | Height: | Size: 388 KiB |
BIN
static/images/events/Epitome Invocation 64.png
Normal file
After Width: | Height: | Size: 389 KiB |
BIN
static/images/events/Feline Fotress Furrdyssey_.jpg
Normal file
After Width: | Height: | Size: 44 KiB |
BIN
static/images/events/From Ashes Reborn 3.png
Normal file
After Width: | Height: | Size: 604 KiB |
BIN
static/images/events/Immaculate Pulse 3.png
Normal file
After Width: | Height: | Size: 593 KiB |
After Width: | Height: | Size: 318 KiB |
After Width: | Height: | Size: 372 KiB |
BIN
static/images/events/Leaves in the Wind 4.jpg
Normal file
After Width: | Height: | Size: 107 KiB |
BIN
static/images/events/Rolling Crossfire.jpg
Normal file
After Width: | Height: | Size: 72 KiB |
BIN
static/images/events/SpeciallyShapedSaurianSearch.png
Normal file
After Width: | Height: | Size: 280 KiB |
BIN
static/images/events/The Great Fayz Reaction Debate.jpg
Normal file
After Width: | Height: | Size: 64 KiB |
BIN
static/images/events/The Hearths Ashen Shadow 1.png
Normal file
After Width: | Height: | Size: 571 KiB |
BIN
static/images/events/The Realms Rocked.jpg
Normal file
After Width: | Height: | Size: 312 KiB |
BIN
static/images/events/Windtrace Seekers and Strategy.png
Normal file
After Width: | Height: | Size: 286 KiB |
BIN
static/images/home/arlecchino lyney.png
Normal file
After Width: | Height: | Size: 313 KiB |
BIN
static/images/home/baizhu wanderer.png
Normal file
After Width: | Height: | Size: 440 KiB |
BIN
static/images/home/neuvillette kazuha.png
Normal file
After Width: | Height: | Size: 314 KiB |
BIN
static/images/items/fading_candle.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
static/images/items/fragment_of_a_golden_melody.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
static/images/items/ruined_hilt.png
Normal file
After Width: | Height: | Size: 4.4 KiB |
BIN
static/images/items/splintered_hilt.png
Normal file
After Width: | Height: | Size: 5.5 KiB |
BIN
static/images/items/still_smoldering_hilt.png
Normal file
After Width: | Height: | Size: 8 KiB |
BIN
static/images/skills/arlecchino/constellation_1.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
static/images/skills/arlecchino/constellation_2.png
Normal file
After Width: | Height: | Size: 2.6 KiB |