Add artifact list

This commit is contained in:
Made Baruna 2021-08-04 01:36:51 +07:00
parent 0f0268e09e
commit e0c9a3ba74
No known key found for this signature in database
GPG key ID: 5AA5DA16AA5DCEAD
52 changed files with 1014 additions and 3 deletions

View file

@ -50,7 +50,6 @@
function changeLocale(lang) {
locale.set(lang);
}
</script>
<div
@ -108,7 +107,7 @@
{mobile}
{segment}
on:clicked={close}
active={['items', 'achievement', 'reminder', 'furnishing', 'weapons'].includes(segment)}
active={['items', 'achievement', 'reminder', 'furnishing', 'weapons', 'artifacts'].includes(segment)}
image="/images/items.png"
label={$t('sidebar.database')}
items={[
@ -117,6 +116,7 @@
{ label: $t('sidebar.reminder'), href: '/reminder' },
{ label: $t('sidebar.furnishing'), href: '/furnishing' },
{ label: $t('sidebar.weapons'), href: '/weapons' },
{ label: $t('sidebar.artifacts'), href: '/artifacts' },
]}
/>
<SidebarItem
@ -203,5 +203,4 @@
@apply rounded-xl;
}
}
</style>

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

629
src/data/domain.js Normal file
View file

@ -0,0 +1,629 @@
export const domains = {
midsummer_courtyard: {
name: 'Midsummer Courtyard',
domains: [
{
s: 5001,
id: 'domain_of_blessing_fires_of_purification_i',
name: 'Domain of Blessing: Fires of Purification I',
ar: 1,
level: 34,
reward: { adventureExp: '100', mora: '1525', friendshipExp: '15' },
monsters: [
{ id: 'cryo_slime', name: 'Cryo Slime', count: 3 },
{ id: 'hydro_slime', name: 'Hydro Slime', count: 7 },
{ id: 'hilichurl', name: 'Hilichurl', count: 14 },
{ id: 'cryo_abyss_mage', name: 'Cryo Abyss Mage', count: 1 },
],
disorder: ['When Melt is triggered, an Energy Blast will occur, dealing DMG to surrounding opponents.'],
},
{
s: 5002,
id: 'domain_of_blessing_fires_of_purification_ii',
name: 'Domain of Blessing: Fires of Purification II',
ar: 25,
level: 47,
reward: { adventureExp: '100', mora: '1700', friendshipExp: '15' },
monsters: [
{ id: 'electro_slime', name: 'Electro Slime', count: 11 },
{ id: 'fatui_electro_cicin_mage', name: 'Fatui Electro Cicin Mage', count: 1 },
],
disorder: [
'When Overloaded is triggered, an Energy Blast will occur, dealing DMG to surrounding opponents.',
'When Superconduct is triggered, you will be hit by a powerful blast, causing your character to take DMG.',
],
},
{
s: 5003,
id: 'domain_of_blessing_fires_of_purification_iii',
name: 'Domain of Blessing: Fires of Purification III',
ar: 30,
level: 59,
reward: { adventureExp: '100', mora: '1850', friendshipExp: '15' },
monsters: [
{ id: 'cryo_slime', name: 'Cryo Slime', count: 13 },
{ id: 'cryo_abyss_mage', name: 'Cryo Abyss Mage', count: 1 },
],
disorder: [
'When Melt is triggered, an Energy Blast will occur, dealing DMG to surrounding opponents.',
'When Superconduct is triggered, you will be hit by a powerful blast, causing your character to take DMG.',
],
},
{
s: 5004,
id: 'domain_of_blessing_fires_of_purification_iv',
name: 'Domain of Blessing: Fires of Purification IV',
ar: 35,
level: 69,
reward: { adventureExp: '100', mora: '2025', friendshipExp: '20' },
monsters: [
{ id: 'hydro_slime', name: 'Hydro Slime', count: 13 },
{ id: 'hydro_abyss_mage', name: 'Hydro Abyss Mage', count: 1 },
{ id: 'hydro_samachurl', name: 'Hydro Samachurl', count: 1 },
],
disorder: [
'When Vaporize is triggered, an Energy Blast will occur, dealing DMG to surrounding opponents.',
'When Electro-Charged is triggered, you will be hit by a powerful blast, causing your character to take DMG.',
],
},
{
s: 5005,
id: 'domain_of_blessing_fires_of_purification_v',
name: 'Domain of Blessing: Fires of Purification V',
ar: 40,
level: 80,
reward: { adventureExp: '100', mora: '2200', friendshipExp: '20' },
monsters: [
{ id: 'large_cryo_slime', name: 'Large Cryo Slime', count: 3 },
{ id: 'cryo_abyss_mage', name: 'Cryo Abyss Mage', count: 2 },
],
disorder: [
'When Melt is triggered, an Energy Blast will occur, dealing DMG to surrounding opponents.',
'When Superconduct is triggered, you will be hit by a powerful blast, causing your character to take DMG.',
],
},
{
s: 5006,
id: 'domain_of_blessing_fires_of_purification_vi',
name: 'Domain of Blessing: Fires of Purification VI',
ar: 45,
level: 90,
reward: { adventureExp: '100', mora: '2525', friendshipExp: '20' },
monsters: [
{ id: 'large_electro_slime', name: 'Large Electro Slime', count: 3 },
{ id: 'mutant_electro_slime', name: 'Mutant Electro Slime', count: 2 },
{ id: 'fatui_electro_cicin_mage', name: 'Fatui Electro Cicin Mage', count: 2 },
],
disorder: [
'When Overloaded is triggered, an Energy Blast will occur, dealing DMG to surrounding opponents.',
'When Superconduct is triggered, you will be hit by a powerful blast, causing your character to take DMG.',
],
},
],
artifacts: ['adventurer', 'resolution_of_sojourner', 'thundering_fury', 'thundersoother'],
},
valley_of_remembrance: {
name: 'Valley of Remembrance',
domains: [
{
s: 5008,
id: 'domain_of_blessing_dance_of_steel_i',
name: 'Domain of Blessing: Dance of Steel I',
ar: 25,
level: 47,
reward: { adventureExp: '100', mora: '1700', friendshipExp: '15' },
monsters: [{ id: 'treasure_hoarder', name: 'Treasure Hoarder', count: 23 }],
disorder: ['Physical DMG dealt by all party members increased by 75%.'],
},
{
s: 5009,
id: 'domain_of_blessing_dance_of_steel_ii',
name: 'Domain of Blessing: Dance of Steel II',
ar: 30,
level: 59,
reward: { adventureExp: '100', mora: '1850', friendshipExp: '15' },
monsters: [
{ id: 'treasure_hoarder', name: 'Treasure Hoarder', count: 15 },
{ id: 'fatui_pyro_agent', name: 'Fatui Pyro Agent', count: 1 },
],
disorder: ['Physical DMG dealt by all party members increased by 75%.'],
},
{
s: 5010,
id: 'domain_of_blessing_dance_of_steel_iii',
name: 'Domain of Blessing: Dance of Steel III',
ar: 35,
level: 69,
reward: { adventureExp: '100', mora: '2025', friendshipExp: '20' },
monsters: [
{ id: 'treasure_hoarder', name: 'Treasure Hoarder', count: 18 },
{ id: 'fatui_pyro_agent', name: 'Fatui Pyro Agent', count: 1 },
{ id: 'fatui_electro_cicin_mage', name: 'Fatui Electro Cicin Mage', count: 1 },
],
disorder: ['Physical DMG dealt by all party members increased by 75%.'],
},
{
s: 5011,
id: 'domain_of_blessing_dance_of_steel_iv',
name: 'Domain of Blessing: Dance of Steel IV',
ar: 40,
level: 80,
reward: { adventureExp: '100', mora: '2200', friendshipExp: '20' },
monsters: [
{ id: 'treasure_hoarder', name: 'Treasure Hoarder', count: 5 },
{ id: 'fatui_pyro_agent', name: 'Fatui Pyro Agent', count: 1 },
{ id: 'fatui_electro_cicin_mage', name: 'Fatui Electro Cicin Mage', count: 1 },
],
disorder: ['Physical DMG dealt by all party members increased by 75%.'],
},
{
s: 5012,
id: 'domain_of_blessing_dance_of_steel_v',
name: 'Domain of Blessing: Dance of Steel V',
ar: 45,
level: 90,
reward: { adventureExp: '100', mora: '2525', friendshipExp: '20' },
monsters: [
{ id: 'treasure_hoarder_cryo_potioneer', name: 'Treasure Hoarder Cryo Potioneer', count: 3 },
{ id: 'fatui_pyro_agent', name: 'Fatui Pyro Agent', count: 1 },
{ id: 'fatui_electro_cicin_mage', name: 'Fatui Electro Cicin Mage', count: 1 },
],
disorder: ['Physical DMG dealt by all party members increased by 75%.'],
},
],
artifacts: ['traveling_doctor', 'tiny_miracle', 'viridescent_venerer', 'maiden_beloved'],
},
ridge_watch: {
name: 'Ridge Watch',
domains: [
{
s: 5014,
id: 'domain_of_blessing_unyielding_i',
name: 'Domain of Blessing: Unyielding I',
ar: 30,
level: 59,
reward: { adventureExp: '100', mora: '1850', friendshipExp: '15' },
monsters: [
{ id: 'pyro_slime', name: 'Pyro Slime', count: 2 },
{ id: 'large_pyro_slime', name: 'Large Pyro Slime', count: 4 },
{ id: 'hilichurl_berserker', name: 'Hilichurl Berserker', count: 4 },
],
disorder: [
"A backlash will occur when opponents hit a character protected by a shield, unleashing a shockwave originating at the attacking opponent's position that deals one instance of AoE DMG. Can occur once every 2s.",
],
},
{
s: 5015,
id: 'domain_of_blessing_unyielding_ii',
name: 'Domain of Blessing: Unyielding II',
ar: 35,
level: 69,
reward: { adventureExp: '100', mora: '2025', friendshipExp: '20' },
monsters: [
{ id: 'hilichurl_berserker', name: 'Hilichurl Berserker', count: 4 },
{ id: 'blazing_axe_mitachurl', name: 'Blazing Axe Mitachurl', count: 3 },
{ id: 'large_pyro_slime', name: 'Large Pyro Slime', count: 1 },
],
disorder: [
"A backlash will occur when opponents hit a character protected by a shield, unleashing a shockwave originating at the attacking opponent's position that deals one instance of AoE DMG. Can occur once every 2s.",
],
},
{
s: 5016,
id: 'domain_of_blessing_unyielding_iii',
name: 'Domain of Blessing: Unyielding III',
ar: 40,
level: 80,
reward: { adventureExp: '100', mora: '2200', friendshipExp: '20' },
monsters: [
{ id: 'large_pyro_slime', name: 'Large Pyro Slime', count: 5 },
{ id: 'blazing_axe_mitachurl', name: 'Blazing Axe Mitachurl', count: 4 },
{ id: 'rock_shieldwall_mitachurl', name: 'Rock Shieldwall Mitachurl', count: 1 },
],
disorder: [
"A backlash will occur when opponents hit a character protected by a shield, unleashing a shockwave originating at the attacking opponent's position that deals one instance of AoE DMG. Can occur once every 2s.",
'',
],
},
{
s: 5017,
id: 'domain_of_blessing_unyielding_iv',
name: 'Domain of Blessing: Unyielding IV',
ar: 45,
level: 90,
reward: { adventureExp: '100', mora: '2525', friendshipExp: '20' },
monsters: [
{ id: 'geovishap_(hydro)', name: 'Geovishap (Hydro)', count: 1 },
{ id: 'geovishap_(electro)', name: 'Geovishap (Electro)', count: 1 },
],
disorder: [
"A backlash will occur when opponents hit a character protected by a shield, unleashing a shockwave originating at the attacking opponent's position that deals one instance of AoE DMG. Can occur once every 2s.",
'',
],
},
],
artifacts: ['brave_heart', 'martial_artist', 'tenacity_of_the_millelith', 'pale_flame'],
},
domain_of_guyun: {
name: 'Domain of Guyun',
domains: [
{
s: 5100,
id: 'domain_of_blessing_spring_i',
name: 'Domain of Blessing: Spring I',
ar: 1,
level: 34,
reward: { adventureExp: '100', mora: '1525', friendshipExp: '15' },
monsters: [
{ id: 'hydro_slime', name: 'Hydro Slime', count: 21 },
{ id: 'large_hydro_slime', name: 'Large Hydro Slime', count: 6 },
{ id: 'hydro_abyss_mage', name: 'Hydro Abyss Mage', count: 1 },
],
disorder: ['Electro-Charged DMG increased by 150%, and its AoE is increased by 100%.'],
},
{
s: 5101,
id: 'domain_of_blessing_spring_ii',
name: 'Domain of Blessing: Spring II',
ar: 25,
level: 47,
reward: { adventureExp: '100', mora: '1700', friendshipExp: '15' },
monsters: [
{ id: 'pyro_slime', name: 'Pyro Slime', count: 16 },
{ id: 'large_pyro_slime', name: 'Large Pyro Slime', count: 5 },
{ id: 'pyro_abyss_mage', name: 'Pyro Abyss Mage', count: 1 },
],
disorder: ['When Overloaded is triggered, an Energy Blast will occur, dealing DMG to surrounding opponents.'],
},
{
s: 5102,
id: 'domain_of_blessing_spring_iii',
name: 'Domain of Blessing: Spring III',
ar: 30,
level: 59,
reward: { adventureExp: '100', mora: '1850', friendshipExp: '15' },
monsters: [
{ id: 'cryo_slime', name: 'Cryo Slime', count: 15 },
{ id: 'large_cryo_slime', name: 'Large Cryo Slime', count: 4 },
{ id: 'cryo_abyss_mage', name: 'Cryo Abyss Mage', count: 1 },
],
disorder: ['When Superconduct is triggered, an Energy Blast will occur, dealing DMG to surrounding opponents.'],
},
{
s: 5103,
id: 'domain_of_blessing_spring_iv',
name: 'Domain of Blessing: Spring IV',
ar: 35,
level: 69,
reward: { adventureExp: '100', mora: '2025', friendshipExp: '20' },
monsters: [
{ id: 'hydro_slime', name: 'Hydro Slime', count: 5 },
{ id: 'large_hydro_slime', name: 'Large Hydro Slime', count: 6 },
{ id: 'hilichurl', name: 'Hilichurl', count: 6 },
{ id: 'hydro_samachurl', name: 'Hydro Samachurl', count: 2 },
{ id: 'hydro_abyss_mage', name: 'Hydro Abyss Mage', count: 1 },
],
disorder: ['Electro-Charged DMG increased by 150%, and its AoE is increased by 100%.'],
},
{
s: 5104,
id: 'domain_of_blessing_spring_v',
name: 'Domain of Blessing: Spring V',
ar: 40,
level: 80,
reward: { adventureExp: '100', mora: '2200', friendshipExp: '20' },
monsters: [
{ id: 'pyro_abyss_mage', name: 'Pyro Abyss Mage', count: 1 },
{ id: 'ruin_guard', name: 'Ruin Guard', count: 2 },
],
disorder: [
'When Overloaded is triggered, an Energy Blast will occur, dealing DMG to surrounding opponents.',
'When Melt is triggered, you will be hit by a powerful blast, causing your character to take DMG.',
'When Vaporize is triggered, you will be hit by a powerful blast, causing your character to take DMG.',
],
},
{
s: 5105,
id: 'domain_of_blessing_spring_vi',
name: 'Domain of Blessing: Spring VI',
ar: 45,
level: 90,
reward: { adventureExp: '100', mora: '2525', friendshipExp: '20' },
monsters: [
{ id: 'ruin_hunter', name: 'Ruin Hunter', count: 1 },
{ id: 'hilichurl', name: 'Hilichurl', count: 2 },
{ id: 'cryo_abyss_mage', name: 'Cryo Abyss Mage', count: 2 },
],
disorder: [
'When Superconduct is triggered, an Energy Blast will occur, dealing DMG to surrounding opponents.',
'When Melt is triggered, you will be hit by a powerful blast, causing your character to take DMG.',
'When Vaporize is triggered, you will be hit by a powerful blast, causing your character to take DMG.',
],
},
],
artifacts: ['lucky_dog', 'brave_heart', 'archaic_petra', 'retracing_bolide'],
},
hidden_palace_of_zhou_formula: {
name: 'Hidden Palace of Zhou Formula',
domains: [
{
s: 5107,
id: 'domain_of_blessing_frost_i',
name: 'Domain of Blessing: Frost I',
ar: 30,
level: 59,
reward: { adventureExp: '100', mora: '1850', friendshipExp: '15' },
monsters: [
{ id: 'large_electro_slime', name: 'Large Electro Slime', count: 6 },
{ id: 'hydro_slime', name: 'Hydro Slime', count: 8 },
{ id: 'large_hydro_slime', name: 'Large Hydro Slime', count: 6 },
],
disorder: [
'The duration of the Frozen status effect is greatly increased.',
'When Superconduct is triggered, an Energy Blast will occur, dealing DMG to surrounding opponents.',
],
},
{
s: 5108,
id: 'domain_of_blessing_frost_ii',
name: 'Domain of Blessing: Frost II',
ar: 35,
level: 69,
reward: { adventureExp: '100', mora: '2025', friendshipExp: '20' },
monsters: [
{ id: 'large_pyro_slime', name: 'Large Pyro Slime', count: 4 },
{ id: 'blazing_axe_mitachurl', name: 'Blazing Axe Mitachurl', count: 2 },
{ id: 'pyro_abyss_mage', name: 'Pyro Abyss Mage', count: 2 },
],
disorder: [
'When Melt is triggered, an Energy Blast will occur, dealing DMG to surrounding opponents.',
'When Overloaded is triggered, you will be hit by a powerful blast, causing your character to take DMG.',
],
},
{
s: 5109,
id: 'domain_of_blessing_frost_iii',
name: 'Domain of Blessing: Frost III',
ar: 40,
level: 80,
reward: { adventureExp: '100', mora: '2200', friendshipExp: '20' },
monsters: [
{ id: 'large_electro_slime', name: 'Large Electro Slime', count: 3 },
{ id: 'hilichurl_fighter', name: 'Hilichurl Fighter', count: 2 },
{ id: 'large_electro_slime', name: 'Large Electro Slime', count: 3 },
{ id: 'hilichurl_fighter', name: 'Hilichurl Fighter', count: 2 },
{ id: 'large_electro_slime', name: 'Large Electro Slime', count: 5 },
{ id: 'fatui_electro_cicin_mage', name: 'Fatui Electro Cicin Mage', count: 1 },
],
disorder: [
'When Superconduct is triggered, an Energy Blast will occur, dealing DMG to surrounding opponents.',
'When Overloaded is triggered, you will be hit by a powerful blast, causing your character to take DMG.',
],
},
{
s: 5110,
id: 'domain_of_blessing_frost_iv',
name: 'Domain of Blessing: Frost IV',
ar: 45,
level: 90,
reward: { adventureExp: '100', mora: '2525', friendshipExp: '20' },
monsters: [
{ id: 'large_pyro_slime', name: 'Large Pyro Slime', count: 2 },
{ id: 'blazing_axe_mitachurl', name: 'Blazing Axe Mitachurl', count: 2 },
{ id: 'pyro_abyss_mage', name: 'Pyro Abyss Mage', count: 2 },
],
disorder: [
'When Melt is triggered, an Energy Blast will occur, dealing DMG to surrounding opponents.',
'When Overloaded is triggered, you will be hit by a powerful blast, causing your character to take DMG.',
],
},
],
artifacts: ['defenders_will', 'martial_artist', 'crimson_witch_of_flames', 'lavawalker'],
},
clear_pool_and_mountain_cavern: {
name: 'Clear Pool and Mountain Cavern',
domains: [
{
s: 5112,
id: 'domain_of_blessing_stone_chamber_i',
name: 'Domain of Blessing: Stone Chamber I',
ar: 35,
level: 69,
reward: { adventureExp: '100', mora: '2025', friendshipExp: '20' },
monsters: [
{ id: 'cryo_abyss_mage', name: 'Cryo Abyss Mage', count: 1 },
{ id: 'pyro_abyss_mage', name: 'Pyro Abyss Mage', count: 2 },
],
disorder: ['Geo DMG dealt by all party members increased by 75%.'],
},
{
s: 5113,
id: 'domain_of_blessing_stone_chamber_ii',
name: 'Domain of Blessing: Stone Chamber II',
ar: 40,
level: 80,
reward: { adventureExp: '100', mora: '2200', friendshipExp: '20' },
monsters: [
{ id: 'cryo_abyss_mage', name: 'Cryo Abyss Mage', count: 2 },
{ id: 'pyro_abyss_mage', name: 'Pyro Abyss Mage', count: 1 },
],
disorder: ['Geo DMG dealt by all party members increased by 75%.'],
},
{
s: 5114,
id: 'domain_of_blessing_stone_chamber_iii',
name: 'Domain of Blessing: Stone Chamber III',
ar: 45,
level: 90,
reward: { adventureExp: '100', mora: '2525', friendshipExp: '20' },
monsters: [
{ id: 'cryo_abyss_mage', name: 'Cryo Abyss Mage', count: 1 },
{ id: 'pyro_abyss_mage', name: 'Pyro Abyss Mage', count: 1 },
{ id: 'hydro_abyss_mage', name: 'Hydro Abyss Mage', count: 1 },
],
disorder: ['Geo DMG dealt by all party members increased by 75%.'],
},
],
artifacts: ['gambler', 'scholar', 'bloodstained_chivalry', 'noblesse_oblige'],
},
peak_of_vindagnyr: {
name: 'Peak of Vindagnyr',
domains: [
{
s: 5120,
id: 'domain_of_blessing_elegaic_rime_i',
name: 'Domain of Blessing: Elegaic Rime I',
ar: 30,
level: 59,
reward: { adventureExp: '100', mora: '1850', friendshipExp: '15' },
monsters: [
{ id: 'cryo_slime', name: 'Cryo Slime', count: 10 },
{ id: 'large_cryo_slime', name: 'Large Cryo Slime', count: 2 },
{ id: 'ice_shieldwall_mitachurl', name: 'Ice Shieldwall Mitachurl', count: 2 },
],
disorder: [
'Characters in the challenge will continuously accumulate Sheer Cold, and will lose HP after Sheer Cold reaches its limit.',
'The platforms in this challenge will intermittently switch between the Subzero and Warm statuses.',
"The areas affected by the Warm status will diminish Sheer Cold. The areas affected by the Subzero status will accelerate Sheer Cold's accumulation.",
],
},
{
s: 5121,
id: 'domain_of_blessing_elegaic_rime_ii',
name: 'Domain of Blessing: Elegaic Rime II',
ar: 35,
level: 69,
reward: { adventureExp: '100', mora: '2025', friendshipExp: '20' },
monsters: [
{ id: 'cryo_slime', name: 'Cryo Slime', count: 3 },
{ id: 'large_cryo_slime', name: 'Large Cryo Slime', count: 2 },
{ id: 'cryo_hilichurl_grenadier', name: 'Cryo Hilichurl Grenadier', count: 3 },
{ id: 'ice_shieldwall_mitachurl', name: 'Ice Shieldwall Mitachurl', count: 2 },
],
disorder: [
'Characters in the challenge will continuously accumulate Sheer Cold, and will lose HP after Sheer Cold reaches its limit.',
'The platforms in this challenge will intermittently switch between the Subzero and Warm statuses.',
"The areas affected by the Warm status will diminish Sheer Cold. The areas affected by the Subzero status will accelerate Sheer Cold's accumulation.",
],
},
{
s: 5122,
id: 'domain_of_blessing_elegaic_rime_iii',
name: 'Domain of Blessing: Elegaic Rime III',
ar: 40,
level: 80,
reward: { adventureExp: '100', mora: '2200', friendshipExp: '20' },
monsters: [
{ id: 'large_cryo_slime', name: 'Large Cryo Slime', count: 2 },
{ id: 'cryo_hilichurl_grenadier', name: 'Cryo Hilichurl Grenadier', count: 2 },
{ id: 'ice_shieldwall_mitachurl', name: 'Ice Shieldwall Mitachurl', count: 3 },
{ id: 'cryo_abyss_mage', name: 'Cryo Abyss Mage', count: 1 },
],
disorder: [
'Characters in the challenge will continuously accumulate Sheer Cold, and will lose HP after Sheer Cold reaches its limit.',
'The platforms in this challenge will intermittently switch between the Subzero and Warm statuses.',
"The areas affected by the Warm status will diminish Sheer Cold. The areas affected by the Subzero status will accelerate Sheer Cold's accumulation.",
],
},
{
s: 5123,
id: 'domain_of_blessing_elegaic_rime_iv',
name: 'Domain of Blessing: Elegaic Rime IV',
ar: 45,
level: 90,
reward: { adventureExp: '100', mora: '2525', friendshipExp: '20' },
monsters: [
{ id: 'cryo_abyss_mage', name: 'Cryo Abyss Mage', count: 1 },
{ id: 'frostarm_lawachurl', name: 'Frostarm Lawachurl', count: 1 },
],
disorder: [
'Characters in the challenge will continuously accumulate Sheer Cold, and will lose HP after Sheer Cold reaches its limit.',
'The platforms in this challenge will intermittently switch between the Subzero and Warm statuses.',
"The areas affected by the Warm status will diminish Sheer Cold. The areas affected by the Subzero status will accelerate Sheer Cold's accumulation.",
],
},
],
artifacts: ['defenders_will', 'gambler', 'blizzard_strayer', 'heart_of_depth'],
},
'momiji-dyed_court': {
name: 'Momiji-Dyed Court',
domains: [
{
s: 5200,
id: 'domain_of_blessing_autumn_hunt_i',
name: 'Domain of Blessing: Autumn Hunt I',
ar: 30,
level: 59,
reward: { adventureExp: '100', mora: '1850', friendshipExp: '15' },
monsters: [
{ id: 'electro_hilichurl_grenadier', name: 'Electro Hilichurl Grenadier', count: 3 },
{ id: 'hilichurl_berserker', name: 'Hilichurl Berserker', count: 3 },
{ id: 'electro_slime', name: 'Electro Slime', count: 3 },
{ id: 'electro_hilichurl_shooter', name: 'Electro Hilichurl Shooter', count: 3 },
{ id: 'crackling_axe_mitachurl', name: 'Crackling Axe Mitachurl', count: 1 },
],
disorder: [
'The platforms in this challenge will intermittently switch between the Flame Boon and Frost Boon statuses. Characters will obtain different effects depending on the status of the platform they are on.',
'Flame Boon: active characters will gain a 60% Pyro DMG Bonus.',
'Frost Boon: active characters will gain a 60% Cryo DMG Bonus.',
],
},
{
s: 5201,
id: 'domain_of_blessing_autumn_hunt_ii',
name: 'Domain of Blessing: Autumn Hunt II',
ar: 35,
level: 69,
reward: { adventureExp: '100', mora: '2025', friendshipExp: '20' },
monsters: [
{ id: 'large_electro_slime', name: 'Large Electro Slime', count: 3 },
{ id: 'electro_hilichurl_shooter', name: 'Electro Hilichurl Shooter', count: 3 },
{ id: 'mutant_electro_slime', name: 'Mutant Electro Slime', count: 2 },
{ id: 'crackling_axe_mitachurl', name: 'Crackling Axe Mitachurl', count: 1 },
],
disorder: [
'The platforms in this challenge will intermittently switch between the Flame Boon and Frost Boon statuses. Characters will obtain different effects depending on the status of the platform they are on.',
'Flame Boon: active characters will gain a 60% Pyro DMG Bonus.',
'Frost Boon: active characters will gain a 60% Cryo DMG Bonus.',
],
},
{
s: 5202,
id: 'domain_of_blessing_autumn_hunt_iii',
name: 'Domain of Blessing: Autumn Hunt III',
ar: 40,
level: 80,
reward: { adventureExp: '100', mora: '2200', friendshipExp: '20' },
monsters: [
{ id: 'large_electro_slime', name: 'Large Electro Slime', count: 4 },
{ id: 'mutant_electro_slime', name: 'Mutant Electro Slime', count: 1 },
{ id: 'electro_abyss_mage', name: 'Electro Abyss Mage', count: 2 },
],
disorder: [
'The platforms in this challenge will intermittently switch between the Flame Boon and Frost Boon statuses. Characters will obtain different effects depending on the status of the platform they are on.',
'Flame Boon: active characters will gain a 60% Pyro DMG Bonus.',
'Frost Boon: active characters will gain a 60% Cryo DMG Bonus.',
],
},
{
s: 5203,
id: 'domain_of_blessing_autumn_hunt_iv',
name: 'Domain of Blessing: Autumn Hunt IV',
ar: 45,
level: 90,
reward: { adventureExp: '100', mora: '2525', friendshipExp: '20' },
monsters: [
{ id: 'large_electro_slime', name: 'Large Electro Slime', count: 2 },
{ id: 'thunderhelm_lawachurl', name: 'Thunderhelm Lawachurl', count: 1 },
{ id: 'electro_abyss_mage', name: 'Electro Abyss Mage', count: 1 },
],
disorder: [
'The platforms in this challenge will intermittently switch between the Flame Boon and Frost Boon statuses. Characters will obtain different effects depending on the status of the platform they are on.',
'Flame Boon: active characters will gain a 60% Pyro DMG Bonus.',
'Frost Boon: active characters will gain a 60% Cryo DMG Bonus.',
],
},
],
artifacts: ['resolution_of_sojourner', 'tiny_miracle', 'shimenawas_reminiscence', 'emblem_of_severed_fate'],
},
};

View file

@ -12,6 +12,7 @@
"timeline": "Timeline",
"furnishing": "Furnishing",
"weapons": "Weapons",
"artifacts": "Artifacts",
"settings": "Settings",
"donate": "Donate"
},
@ -715,5 +716,15 @@
"asc": "ASC",
"lvl": "LVL",
"baseAtk": "Base ATK"
},
"artifact": {
"title": "Artifact List",
"name": "Name",
"maxRarity": "Max★",
"bonus2": "2 Set Bonus",
"bonus4": "4 Set Bonus",
"domain": "Domain",
"artifact": "Artifact",
"setPiece": "{piece} Set Bonus"
}
}

View file

@ -0,0 +1,91 @@
<script context="module">
import data from '../../data/artifacts/en.json';
export async function preload(page) {
const { id } = page.params;
const artifact = data[id];
return { id, artifact };
}
</script>
<script>
import { onMount } from 'svelte';
import { mdiChevronRight, mdiCircle, mdiStar } from '@mdi/js';
import { locale, t } from 'svelte-i18n';
import Icon from '../../components/Icon.svelte';
import { domains } from '../../data/domain.js';
import Button from '../../components/Button.svelte';
const rarityList = {
1: 'text-white',
2: 'text-green-400',
3: 'text-primary',
4: 'text-rare-from',
5: 'text-legendary-from',
};
export let id;
export let artifact;
let images = [];
async function changeLocale(locale) {
const _data = await import(`../../data/artifacts/${locale}.json`);
artifact = _data.default[id];
}
onMount(async () => {
locale.subscribe((val) => {
changeLocale(val);
});
const maxPiece = artifact.setPiece[artifact.setPiece.length - 1];
if (maxPiece === 1) {
images = [`${id}_circlet.png`];
} else {
images = ['flower', 'plume', 'sands', 'goblet', 'circlet'].map((e) => `${id}_${e}.png`);
}
});
$: rarity = artifact.rarity[artifact.rarity.length - 1];
</script>
<svelte:head>
<title>{artifact.name} - Paimon.moe</title>
</svelte:head>
<div class="lg:ml-64 pt-20 lg:pt-8 max-w-screen-xl md:pl-4">
<div class="flex flex-col items-start">
<div class="px-4">
<h1 class="font-display font-black text-4xl md:text-5xl text-white">{artifact.name}</h1>
<div class="{rarityList[rarity]} text-2xl flex items-center z-0 -mt-2 md:-mt-4">
{#each [...new Array(rarity)] as _}
<Icon path={mdiStar} />
{/each}
<Icon path={mdiCircle} size={0.4} className="mx-2 mt-1" color="white" />
<p class="text-base text-white font-semibold mt-1">{$t(`artifact.artifact`)}</p>
</div>
</div>
<div class="px-4 pt-4 flex flex-wrap space-x-2">
{#each images as image}
<img src="/images/artifacts/{image}" alt={id} class="w-24 h-24" />
{/each}
</div>
<div class="px-4 pt-4 flex flex-col space-y-2 max-w-xl w-full">
{#each artifact.bonuses as bonus, i}
<div class="bg-background rounded-xl p-4 text-white">
<p class="font-bold mb-1 text-primary">{$t('artifact.setPiece', { values: { piece: (i + 1) * 2 } })}</p>
<p>{bonus}</p>
</div>
{/each}
{#if artifact.domain}
<a
href="/domains/{artifact.domain}"
class="flex justify-end items-center self-end lg:self-start text-white mt-4
bg-item rounded-xl py-2 px-4 hover:bg-background transition-colors duration-100"
>
{$t('artifact.domain')}: {domains[artifact.domain].name}
<Icon path={mdiChevronRight} />
</a>
{/if}
</div>
</div>
</div>

View file

@ -0,0 +1,181 @@
<script context="module">
import data from '../../data/artifacts/en.json';
export async function preload() {
return { data };
}
</script>
<script>
import { onMount } from 'svelte';
import { locale, t } from 'svelte-i18n';
import TableHeader from '../../components/Table/TableHeader.svelte';
import { domains } from '../../data/domain.js';
export let data;
let artifactList = [];
let artifacts = [];
let sortBy = 'maxRarity';
let sortOrder = false;
const rarity = {
2: 'text-green-400',
3: 'text-primary',
4: 'text-rare-from',
5: 'text-legendary-from',
};
function sort(by) {
if (sortBy === by) {
sortOrder = !sortOrder;
} else {
sortBy = by;
}
doSort();
}
function process() {
const _artifacts = [];
for (const [id, artifact] of Object.entries(data)) {
_artifacts.push({
id,
name: artifact.name,
maxRarity: artifact.rarity[artifact.rarity.length - 1],
bonus2: artifact.bonuses[0],
bonus4: artifact.bonuses[1] || '-',
domain: artifact.domain ? domains[artifact.domain].name : '-',
image: artifact.setPiece[0] === 1 ? `${artifact.id}_circlet.png` : `${artifact.id}_flower.png`,
});
}
artifactList = _artifacts;
doSort();
artifacts = artifactList;
}
process();
function doSort() {
if (sortBy === 'maxRarity') {
artifactList.sort((a, b) => a.domain.localeCompare(b.domain));
}
artifactList.sort((a, b) => {
switch (sortBy) {
case 'name':
if (sortOrder) {
return a.name.localeCompare(b.name);
} else {
return b.name.localeCompare(a.name);
}
case 'bonus2':
if (sortOrder) {
return a.bonus2.localeCompare(b.bonus2);
} else {
return b.bonus2.localeCompare(a.bonus2);
}
case 'bonus4':
if (sortOrder) {
return a.bonus4.localeCompare(b.bonus4);
} else {
return b.bonus4.localeCompare(a.bonus4);
}
case 'domain':
if (sortOrder) {
return a.domain.localeCompare(b.domain);
} else {
return b.domain.localeCompare(a.domain);
}
case 'maxRarity':
if (sortOrder) {
return a.maxRarity - b.maxRarity;
} else {
return b.maxRarity - a.maxRarity;
}
}
});
artifacts = artifactList;
}
async function changeLocale(locale) {
const _data = await import(`../../data/artifacts/${locale}.json`);
data = _data.default;
process();
}
onMount(async () => {
locale.subscribe((val) => {
changeLocale(val);
});
});
</script>
<svelte:head>
<title>Artifact List - Paimon.moe</title>
<meta name="description" content="Genshin Impact Artifact list" />
<meta property="og:description" content="Genshin Impact Artifact list" />
</svelte:head>
<div class="lg:ml-64 pt-20 lg:pt-8">
<h1 class="font-display px-4 md:px-8 font-black text-5xl text-white">{$t('artifact.title')}</h1>
<div class="block overflow-x-auto whitespace-no-wrap pb-8">
<div class="px-4 md:px-8 table max-w-full">
<table class="w-full block p-4 bg-item rounded-xl">
<thead>
<TableHeader />
<TableHeader on:click={() => sort('name')} sort={sortBy === 'name'} order={sortOrder}>
{$t('artifact.name')}
</TableHeader>
<TableHeader on:click={() => sort('maxRarity')} sort={sortBy === 'maxRarity'} order={sortOrder}>
{$t('artifact.maxRarity')}
</TableHeader>
<TableHeader on:click={() => sort('bonus2')} sort={sortBy === 'bonus2'} order={sortOrder}>
{$t('artifact.bonus2')}
</TableHeader>
<TableHeader on:click={() => sort('bonus4')} sort={sortBy === 'bonus4'} order={sortOrder}>
{$t('artifact.bonus4')}
</TableHeader>
<TableHeader on:click={() => sort('domain')} sort={sortBy === 'domain'} order={sortOrder}>
{$t('artifact.domain')}
</TableHeader>
</thead>
<tbody class="text-white">
{#each artifacts as artifact (artifact.id)}
<a href="/artifacts/{artifact.id}" style="display: contents;">
<tr class="cursor-pointer hover:bg-background">
<td class="border-gray-700 border-t py-1 text-center h-12 align-middle">
<img
src="/images/artifacts/{artifact.image}"
alt={artifact.id}
class="inline"
style="min-width: 60px; height: 60px;"
/>
</td>
<td class="border-gray-700 border-t py-1 pl-4 pr-2 align-middle">
{artifact.name}
</td>
<td
class="border-gray-700 border-t py-1 text-center text-2xl align-middle {rarity[artifact.maxRarity]}"
>
</td>
<td class="border-gray-700 border-t py-2 pl-4 max-w-xs whitespace-normal align-middle">
{artifact.bonus2}
</td>
<td
class="border-gray-700 border-t py-2 pl-4 max-w-xs whitespace-normal align-middle text-sm"
style="min-width: 320px;"
>
{artifact.bonus4}
</td>
<td class="border-gray-700 border-t py-1 pl-4 align-middle">
{artifact.domain}
</td>
</tr>
</a>
{/each}
</tbody>
</table>
</div>
</div>
</div>

View file

@ -0,0 +1,93 @@
<script context="module">
import artifacts from '../../data/artifacts/en.json';
import { domains } from '../../data/domain.js';
export async function preload(page) {
const { id } = page.params;
const domain = domains[id];
return { id, artifacts, domain };
}
</script>
<script>
import { onMount } from 'svelte';
import { mdiChevronRight, mdiCircle, mdiClose, mdiStar } from '@mdi/js';
import { locale, t } from 'svelte-i18n';
import Icon from '../../components/Icon.svelte';
import Button from '../../components/Button.svelte';
export let id;
export let artifacts;
export let domain;
let currentArtifacts = [];
function process() {
const _artifacts = [];
for (const item of domain.artifacts) {
const artifact = artifacts[item];
_artifacts.push({
id: artifact.id,
name: artifact.name,
rarity: artifact.rarity[artifact.rarity.length - 1],
});
}
_artifacts.sort((a, b) => b.rarity - a.rarity);
currentArtifacts = _artifacts;
}
async function changeLocale(locale) {
const _data = await import(`../../data/artifacts/${locale}.json`);
artifacts = _data.default;
process();
}
onMount(async () => {
locale.subscribe((val) => {
changeLocale(val);
});
process();
});
</script>
<svelte:head>
<title>{domain.name} - Paimon.moe</title>
</svelte:head>
<div class="lg:ml-64 pt-20 lg:pt-8 max-w-screen-xl md:pl-4">
<div class="flex flex-col items-start">
<div class="px-4">
<h1 class="font-display font-black text-4xl md:text-5xl text-white">{domain.name}</h1>
</div>
<div class="px-4 mt-4 grid md:grid-cols-2 gap-2 max-w-2xl w-full">
{#each currentArtifacts as artifact (artifact.id)}
<div class="bg-background rounded-xl p-2 text-white flex items-center">
<img src="/images/artifacts/{artifact.id}_flower.png" alt={id} class="w-12 h-12 mr-2" />
<p>{artifact.name}</p>
</div>
{/each}
</div>
<div class="px-4 mt-4 flex flex-col space-y-2 max-w-2xl w-full">
{#each domain.domains as dungeon}
<div class="bg-background rounded-xl p-4 text-white flex flex-col">
<p class="font-bold">{dungeon.name}</p>
<div class="flex space-x-4">
<p class="text-primary">AR {dungeon.ar}</p>
<p class="text-primary">LEVEL {dungeon.level}</p>
</div>
<div class="flex flex-wrap mt-4 -mx-2 -mb-2">
{#each dungeon.monsters as monster}
<div class="flex rounded-xl bg-item overflow-hidden items-center m-2">
<img src="/images/monsters/{monster.id}.png" alt={monster.id} class="w-12 h-12 mr-2" />
<div class="pr-2">
<p class="text-sm">{monster.name}</p>
<p class="text-sm"><Icon className="-mt-1" path={mdiClose} size={0.7} />{monster.count}</p>
</div>
</div>
{/each}
</div>
</div>
{/each}
</div>
</div>
</div>

Binary file not shown.

After

(image error) Size: 73 KiB

Binary file not shown.

After

(image error) Size: 73 KiB

Binary file not shown.

After

(image error) Size: 45 KiB

Binary file not shown.

After

(image error) Size: 80 KiB

Binary file not shown.

After

(image error) Size: 43 KiB

Binary file not shown.

After

(image error) Size: 49 KiB

Binary file not shown.

After

(image error) Size: 78 KiB

Binary file not shown.

After

(image error) Size: 78 KiB

Binary file not shown.

After

(image error) Size: 34 KiB

Binary file not shown.

After

(image error) Size: 108 KiB

Binary file not shown.

After

(image error) Size: 66 KiB

Binary file not shown.

After

(image error) Size: 95 KiB

Binary file not shown.

After

(image error) Size: 107 KiB

Binary file not shown.

After

(image error) Size: 107 KiB

Binary file not shown.

After

(image error) Size: 64 KiB

Binary file not shown.

After

(image error) Size: 75 KiB

Binary file not shown.

After

(image error) Size: 64 KiB

Binary file not shown.

After

(image error) Size: 36 KiB

Binary file not shown.

After

(image error) Size: 78 KiB

Binary file not shown.

After

(image error) Size: 48 KiB

Binary file not shown.

After

(image error) Size: 73 KiB

Binary file not shown.

After

(image error) Size: 70 KiB

Binary file not shown.

After

(image error) Size: 45 KiB

Binary file not shown.

After

(image error) Size: 56 KiB

Binary file not shown.

After

(image error) Size: 50 KiB

Binary file not shown.

After

(image error) Size: 38 KiB

Binary file not shown.

After

(image error) Size: 40 KiB

Binary file not shown.

After

(image error) Size: 42 KiB

Binary file not shown.

After

(image error) Size: 73 KiB

Binary file not shown.

After

(image error) Size: 86 KiB

Binary file not shown.

After

(image error) Size: 94 KiB

Binary file not shown.

After

(image error) Size: 93 KiB

Binary file not shown.

After

(image error) Size: 55 KiB

Binary file not shown.

After

(image error) Size: 66 KiB