Skip to content

Commit

Permalink
Add support for placeholder artifacts and materials
Browse files Browse the repository at this point in the history
  • Loading branch information
Tibowl committed Mar 18, 2022
1 parent 022737b commit 34c1d6a
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 14 deletions.
20 changes: 12 additions & 8 deletions src/commands/artifacts/artifact.ts
Expand Up @@ -73,15 +73,15 @@ Note: this command supports fuzzy search.`,
if (arti == undefined)
return sendMessage(source, "Unable to find artifact")

await simplePaginator(source, (relativePage, currentPage, maxPages) => this.getArti(arti, relativePage, currentPage, maxPages), 1 + arti.artis.length)
await simplePaginator(source, (relativePage, currentPage, maxPages) => this.getArti(arti, relativePage, currentPage, maxPages), 1 + (arti.artis?.length ?? 0))
return undefined
}

getArtiSetsPages(): string[] {
const { data } = client
const artis = Object.entries(data.artifacts)
.sort(([an, a], [bn, b]) => Math.max(...b.levels) - Math.max(...a.levels) || Math.min(...a.levels) - Math.min(...b.levels) || an.localeCompare(bn))
.map(([name, info]) => `**${name}**: ${Math.min(...info.levels)}★ ~ ${Math.max(...info.levels)}★`)
.sort(([an, a], [bn, b]) => !b.levels ? -1 : !a.levels ? 1 : Math.max(...b.levels) - Math.max(...a.levels) || Math.min(...a.levels) - Math.min(...b.levels) || an.localeCompare(bn))
.map(([name, info]) => `**${name}**${info.levels ? `: ${Math.min(...info.levels)}★ ~ ${Math.max(...info.levels)}` : " (Not yet released)"}`)

const pages: string[] = []
let paging = "", c = 0
Expand Down Expand Up @@ -115,17 +115,21 @@ Note: this command supports fuzzy search.`,
const { data } = client
const embed = new MessageEmbed()
.setColor(Colors.AQUA)
.setThumbnail(getLink(set.artis.find(x => x.icon)?.icon ?? "img/unknown.png"))
.setThumbnail(getLink(set.artis?.find(x => x.icon)?.icon ?? "img/unknown.png"))
.setURL(`${data.baseURL}artifacts/${urlify(set.name, false)}`)
.setFooter(`Page ${currentPage} / ${maxPages}`)

if (relativePage == 0) {
for (const bonus of set.bonuses)
for (const bonus of set.bonuses ?? [])
embed.addField(`${bonus.count}-Set Bonus`, bonus.desc)

embed.setTitle(`${set.name}: Set info`)
.addField("Possible levels", set.levels.map(k => k + "★").join(", "))
.setDescription(`This set contains ${set.artis.length} artifacts`)
if (set.levels)
embed.addField("Possible levels", set.levels.map(k => k + "★").join(", "))
if (set.artis)
embed.setDescription(`This set contains ${set.artis.length} artifacts`)
if (set.note)
embed.setDescription(set.note)


const guides = client.data.getGuides("artifact", set.name).map(({ guide, page }) => getLinkToGuide(guide, page)).join("\n")
Expand All @@ -136,7 +140,7 @@ Note: this command supports fuzzy search.`,
return embed
}

if (relativePage <= set.artis.length) {
if (set.artis && relativePage <= set.artis.length) {
const arti = set.artis[relativePage - 1]
const mainStats = data.artifactMainStats[arti.type]
const total = mainStats.map(m => m.weight).reduce((a, b) => a+b, 0)
Expand Down
2 changes: 1 addition & 1 deletion src/commands/misc/material.ts
Expand Up @@ -90,7 +90,7 @@ Note: this command supports fuzzy search.`,
getMaterialsPages(): string[] {
const { data } = client
const materials = Object.entries(data.materials)
.map(([name, material]) => `**${material.category}**: ${material.stars?`${material.stars}★ `:""}${data.emoji(name, true)}`)
.map(([name, material]) => `**${material.category ?? "Unknown"}**: ${material.stars?`${material.stars}★ `:""}${data.emoji(name, true)}`)

const pages: string[] = []
let paging = "", c = 0
Expand Down
2 changes: 2 additions & 0 deletions src/data/gamedata/artifacts.json
Expand Up @@ -1705,6 +1705,7 @@
},
"Vermillion Hereafter": {
"name": "Vermillion Hereafter",
"note": "*Unreleased artifact set, coming in 2.6*",
"levels": [
4,
5
Expand All @@ -1722,6 +1723,7 @@
},
"Echoes of an Offering": {
"name": "Echoes of an Offering",
"note": "*Unreleased artifact set, coming in 2.6*",
"levels": [
4,
5
Expand Down
2 changes: 1 addition & 1 deletion src/data/gamedata/materials.json
Expand Up @@ -7887,7 +7887,7 @@
},
"Starshroom": {
"name": "Starshroom",
"desc": "*Upcoming material in 2.6*\nA fungus with a cap that resembles a five-pointed [...]",
"desc": "*Upcoming material in 2.6*\nA fungus with a cap that resembles a five-pointed star. It is quite handy indeed [...]",
"type": "Cooking Ingredient",
"category": "Teyvat's Resources",
"icon": "https://i.imgur.com/BdqjxJO.png"
Expand Down
9 changes: 5 additions & 4 deletions src/utils/Types.ts
Expand Up @@ -263,10 +263,11 @@ interface User {

// Game data
export interface Artifact {
name: string
levels: number[]
bonuses: Bonus[]
artis: Arti[]
name: string
note?: string
levels?: number[]
bonuses?: Bonus[]
artis?: Arti[]
}

export interface Arti {
Expand Down

0 comments on commit 34c1d6a

Please sign in to comment.