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

View file

@ -1,5 +1,6 @@
interface TeamElement {
id: number
opposite_id: number
name: {
en: 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
}