Create elementalizeAetherialMastery.tsx

This method elementalizes aetherial mastery strings based on a GridCharacter. Also add the opposite element's ID to TeamElement.
This commit is contained in:
Justin Edmund 2023-01-05 20:47:48 -08:00
parent 0f30c73964
commit 5fd5411bc4
3 changed files with 63 additions and 0 deletions

View file

@ -1,5 +1,6 @@
export const allElement: TeamElement = { export const allElement: TeamElement = {
id: -1, id: -1,
opposite_id: -1,
name: { name: {
en: 'All', en: 'All',
ja: '全s', ja: '全s',
@ -9,6 +10,7 @@ export const allElement: TeamElement = {
export const elements: TeamElement[] = [ export const elements: TeamElement[] = [
{ {
id: 0, id: 0,
opposite_id: 0,
name: { name: {
en: 'Null', en: 'Null',
ja: '無', ja: '無',
@ -16,6 +18,7 @@ export const elements: TeamElement[] = [
}, },
{ {
id: 1, id: 1,
opposite_id: 4,
name: { name: {
en: 'Wind', en: 'Wind',
ja: '風', ja: '風',
@ -23,6 +26,7 @@ export const elements: TeamElement[] = [
}, },
{ {
id: 2, id: 2,
opposite_id: 1,
name: { name: {
en: 'Fire', en: 'Fire',
ja: '火', ja: '火',
@ -30,6 +34,7 @@ export const elements: TeamElement[] = [
}, },
{ {
id: 3, id: 3,
opposite_id: 2,
name: { name: {
en: 'Water', en: 'Water',
ja: '水', ja: '水',
@ -37,6 +42,7 @@ export const elements: TeamElement[] = [
}, },
{ {
id: 4, id: 4,
opposite_id: 3,
name: { name: {
en: 'Earth', en: 'Earth',
ja: '土', ja: '土',
@ -44,6 +50,7 @@ export const elements: TeamElement[] = [
}, },
{ {
id: 5, id: 5,
opposite_id: 6,
name: { name: {
en: 'Dark', en: 'Dark',
ja: '闇', ja: '闇',
@ -51,6 +58,7 @@ export const elements: TeamElement[] = [
}, },
{ {
id: 6, id: 6,
opposite_id: 5,
name: { name: {
en: 'Light', en: 'Light',
ja: '光', ja: '光',

View file

@ -1,5 +1,6 @@
interface TeamElement { interface TeamElement {
id: number id: number
opposite_id: number
name: { name: {
en: string en: string
ja: string ja: string

View file

@ -0,0 +1,54 @@
import { elements } from '~data/elements'
import { aetherialMastery } from '~data/overMastery'
export default function elementalizeAetherialMastery(
gridCharacter: GridCharacter
) {
const elementalized = aetherialMastery.map((modifier) => {
const element = elements.find(
(element) => element.id === gridCharacter.object.element
)
const oppositeElement = elements.find(
(element) => element.id === element.opposite_id
)
const newModifier = modifier
if (element && oppositeElement && modifier.name.en.includes('{Element}')) {
if (modifier.id === 3) {
newModifier.name.en = newModifier.name.en.replace(
'{Element}',
element.name.en
)
newModifier.name.ja = newModifier.name.ja.replace(
'{Element}',
element.name.ja
)
} else if (modifier.id === 4) {
newModifier.name.en = newModifier.name.en.replace(
'{Element}',
oppositeElement.name.en
)
newModifier.name.ja = newModifier.name.ja.replace(
'{Element}',
oppositeElement.name.ja
)
}
}
return newModifier
})
elementalized.unshift({
id: 0,
name: {
en: 'No aetherial mastery',
ja: 'エーテリアルプラス',
},
slug: 'no-mastery',
minValue: 0,
maxValue: 0,
fractional: false,
})
return elementalized
}