Bug fixes and content updates (#270)

* Fix character hovercard z-index

* Allow unauth users to edit their remixed parties

* Adds ultimate_mastery and renamed master_level to defs

* Add granblue_id to weapon keys

* Add granblue_id to AX skills

* Add granblue_id to data-granblue-id

* Added bugfixes to update notes

* Fix types where ItemSelect is used

These need an empty `granblue_id`
This commit is contained in:
Justin Edmund 2023-03-17 01:35:49 -07:00 committed by GitHub
parent 86248c82f5
commit bd838305e6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
20 changed files with 156 additions and 15 deletions

View file

@ -41,6 +41,7 @@ const AwakeningSelect = (props: Props) => {
en: 'No awakening', en: 'No awakening',
ja: '覚醒なし', ja: '覚醒なし',
}, },
granblue_id: '',
slug: 'no-awakening', slug: 'no-awakening',
minValue: 0, minValue: 0,
maxValue: 0, maxValue: 0,

View file

@ -219,7 +219,7 @@ const AXSelect = (props: Props) => {
if (modifierSet == 0) { if (modifierSet == 0) {
axOptionElements = axOptions.map((ax, i) => { axOptionElements = axOptions.map((ax, i) => {
return ( return (
<SelectItem key={i} value={ax.id}> <SelectItem key={i} value={ax.id} data-granblue-id={ax.granblue_id}>
{ax.name[locale]} {ax.name[locale]}
</SelectItem> </SelectItem>
) )

View file

@ -12,6 +12,7 @@ import { accountState, initialAccountState } from '~utils/accountState'
import { appState, initialAppState } from '~utils/appState' import { appState, initialAppState } from '~utils/appState'
import { getLocalId } from '~utils/localId' import { getLocalId } from '~utils/localId'
import { retrieveLocaleCookies } from '~utils/retrieveCookies' import { retrieveLocaleCookies } from '~utils/retrieveCookies'
import { setEditKey, storeEditKey } from '~utils/userToken'
import { import {
DropdownMenu, DropdownMenu,
@ -196,6 +197,13 @@ const Header = () => {
.remix({ shortcode: partySnapshot.shortcode, body: body }) .remix({ shortcode: partySnapshot.shortcode, body: body })
.then((response) => { .then((response) => {
const remix = response.data.party const remix = response.data.party
// Store the edit key in local storage
if (remix.edit_key) {
storeEditKey(remix.id, remix.edit_key)
setEditKey(remix.id, remix.user)
}
router.push(`/p/${remix.shortcode}`) router.push(`/p/${remix.shortcode}`)
setRemixToastOpen(true) setRemixToastOpen(true)
}) })

View file

@ -1,3 +1,7 @@
div[data-radix-popper-content-wrapper] {
z-index: 10 !important;
}
.HovercardContent { .HovercardContent {
animation: scaleIn $duration-zoom ease-out; animation: scaleIn $duration-zoom ease-out;
transform-origin: var(--radix-hover-card-content-transform-origin); transform-origin: var(--radix-hover-card-content-transform-origin);

View file

@ -3,7 +3,6 @@ import { getCookie } from 'cookies-next'
import { useRouter } from 'next/router' import { useRouter } from 'next/router'
import { subscribe, useSnapshot } from 'valtio' import { subscribe, useSnapshot } from 'valtio'
import clonedeep from 'lodash.clonedeep' import clonedeep from 'lodash.clonedeep'
import ls from 'local-storage'
import PartySegmentedControl from '~components/PartySegmentedControl' import PartySegmentedControl from '~components/PartySegmentedControl'
import PartyDetails from '~components/PartyDetails' import PartyDetails from '~components/PartyDetails'
@ -17,7 +16,7 @@ import { appState, initialAppState } from '~utils/appState'
import { getLocalId } from '~utils/localId' import { getLocalId } from '~utils/localId'
import { GridType } from '~utils/enums' import { GridType } from '~utils/enums'
import { retrieveCookies } from '~utils/retrieveCookies' import { retrieveCookies } from '~utils/retrieveCookies'
import { setEditKey, unsetEditKey } from '~utils/userToken' import { setEditKey, storeEditKey, unsetEditKey } from '~utils/userToken'
import type { DetailsObject } from '~types' import type { DetailsObject } from '~types'
@ -240,10 +239,6 @@ const Party = (props: Props) => {
return team return team
} }
const storeEditKey = (id: string, key: string) => {
ls(id, key)
}
const storeCharacters = (list: Array<GridCharacter>) => { const storeCharacters = (list: Array<GridCharacter>) => {
list.forEach((object: GridCharacter) => { list.forEach((object: GridCharacter) => {
if (object.position != null) if (object.position != null)

View file

@ -54,6 +54,7 @@ const RingSelect = ({ gridCharacter, sendValues }: Props) => {
ja: 'EXリミットボーナスなし', ja: 'EXリミットボーナスなし',
}, },
id: 0, id: 0,
granblue_id: '',
slug: 'no-bonus', slug: 'no-bonus',
minValue: 0, minValue: 0,
maxValue: 0, maxValue: 0,

View file

@ -64,7 +64,7 @@ const UpdatesPage = () => {
character: ['3040451000', '3040452000', '3040453000', '3040454000'], character: ['3040451000', '3040452000', '3040453000', '3040454000'],
weapon: ['1040914600', '1040116800', '1040515900', '1040712300'], weapon: ['1040914600', '1040116800', '1040515900', '1040712300'],
}} }}
numNotes={5} numNotes={7}
/> />
<ContentUpdate <ContentUpdate
version="2023-02L" version="2023-02L"

View file

@ -79,7 +79,11 @@ const WeaponKeySelect = React.forwardRef<HTMLButtonElement, Props>(
keys[index].length > 0 && keys[index].length > 0 &&
keys[index].sort(sortByOrder).map((item, i) => { keys[index].sort(sortByOrder).map((item, i) => {
return ( return (
<SelectItem key={i} value={item.id}> <SelectItem
key={i}
value={item.id}
data-granblue-id={item.granblue_id}
>
{item.name.en} {item.name.en}
</SelectItem> </SelectItem>
) )

View file

@ -9,6 +9,7 @@ export type Awakening = {
export const characterAwakening: ItemSkill[] = [ export const characterAwakening: ItemSkill[] = [
{ {
id: 1, id: 1,
granblue_id: '',
name: { name: {
en: 'Balanced', en: 'Balanced',
ja: 'バランス', ja: 'バランス',
@ -20,6 +21,7 @@ export const characterAwakening: ItemSkill[] = [
}, },
{ {
id: 2, id: 2,
granblue_id: '',
name: { name: {
en: 'Attack', en: 'Attack',
ja: '攻撃', ja: '攻撃',
@ -31,6 +33,7 @@ export const characterAwakening: ItemSkill[] = [
}, },
{ {
id: 3, id: 3,
granblue_id: '',
name: { name: {
en: 'Defense', en: 'Defense',
ja: '防御', ja: '防御',
@ -42,6 +45,7 @@ export const characterAwakening: ItemSkill[] = [
}, },
{ {
id: 4, id: 4,
granblue_id: '',
name: { name: {
en: 'Multiattack', en: 'Multiattack',
ja: '連続攻撃', ja: '連続攻撃',
@ -56,6 +60,7 @@ export const characterAwakening: ItemSkill[] = [
export const weaponAwakening: ItemSkill[] = [ export const weaponAwakening: ItemSkill[] = [
{ {
id: 1, id: 1,
granblue_id: '',
name: { name: {
en: 'Attack', en: 'Attack',
ja: '攻撃', ja: '攻撃',
@ -67,6 +72,7 @@ export const weaponAwakening: ItemSkill[] = [
}, },
{ {
id: 2, id: 2,
granblue_id: '',
name: { name: {
en: 'Defense', en: 'Defense',
ja: '防御', ja: '防御',
@ -78,6 +84,7 @@ export const weaponAwakening: ItemSkill[] = [
}, },
{ {
id: 3, id: 3,
granblue_id: '',
name: { name: {
en: 'Special', en: 'Special',
ja: '特殊', ja: '特殊',

View file

@ -6,6 +6,7 @@ const ax: ItemSkill[][] = [
ja: '攻撃', ja: '攻撃',
}, },
id: 0, id: 0,
granblue_id: '1589',
slug: 'atk', slug: 'atk',
minValue: 1, minValue: 1,
maxValue: 3.5, maxValue: 3.5,
@ -18,6 +19,7 @@ const ax: ItemSkill[][] = [
ja: '奥義ダメ', ja: '奥義ダメ',
}, },
id: 3, id: 3,
granblue_id: '1591',
slug: 'ca-dmg', slug: 'ca-dmg',
minValue: 2, minValue: 2,
maxValue: 4, maxValue: 4,
@ -30,6 +32,7 @@ const ax: ItemSkill[][] = [
ja: 'DA確率', ja: 'DA確率',
}, },
id: 5, id: 5,
granblue_id: '1596',
slug: 'da', slug: 'da',
minValue: 1, minValue: 1,
maxValue: 2, maxValue: 2,
@ -42,6 +45,7 @@ const ax: ItemSkill[][] = [
ja: 'TA確率', ja: 'TA確率',
}, },
id: 6, id: 6,
granblue_id: '1597',
slug: 'ta', slug: 'ta',
minValue: 1, minValue: 1,
maxValue: 2, maxValue: 2,
@ -54,6 +58,7 @@ const ax: ItemSkill[][] = [
ja: 'アビ上限', ja: 'アビ上限',
}, },
id: 7, id: 7,
granblue_id: '1588',
slug: 'skill-cap', slug: 'skill-cap',
minValue: 1, minValue: 1,
maxValue: 2, maxValue: 2,
@ -68,6 +73,7 @@ const ax: ItemSkill[][] = [
ja: '防御', ja: '防御',
}, },
id: 1, id: 1,
granblue_id: '1590',
slug: 'def', slug: 'def',
minValue: 1, minValue: 1,
maxValue: 8, maxValue: 8,
@ -80,6 +86,7 @@ const ax: ItemSkill[][] = [
ja: 'HP', ja: 'HP',
}, },
id: 2, id: 2,
granblue_id: '1588',
slug: 'hp', slug: 'hp',
minValue: 1, minValue: 1,
maxValue: 3, maxValue: 3,
@ -92,6 +99,7 @@ const ax: ItemSkill[][] = [
ja: '弱体耐性', ja: '弱体耐性',
}, },
id: 9, id: 9,
granblue_id: '1593',
slug: 'debuff', slug: 'debuff',
minValue: 1, minValue: 1,
maxValue: 3, maxValue: 3,
@ -104,6 +112,7 @@ const ax: ItemSkill[][] = [
ja: '回復性能', ja: '回復性能',
}, },
id: 10, id: 10,
granblue_id: '1595',
slug: 'healing', slug: 'healing',
minValue: 2, minValue: 2,
maxValue: 5, maxValue: 5,
@ -116,6 +125,7 @@ const ax: ItemSkill[][] = [
ja: '背水', ja: '背水',
}, },
id: 11, id: 11,
granblue_id: '1601',
slug: 'enmity', slug: 'enmity',
minValue: 1, minValue: 1,
maxValue: 3, maxValue: 3,
@ -129,6 +139,7 @@ const ax: ItemSkill[][] = [
ja: 'HP', ja: 'HP',
}, },
id: 2, id: 2,
granblue_id: '1588',
slug: 'hp', slug: 'hp',
minValue: 1, minValue: 1,
maxValue: 11, maxValue: 11,
@ -141,6 +152,7 @@ const ax: ItemSkill[][] = [
ja: '防御', ja: '防御',
}, },
id: 1, id: 1,
granblue_id: '1590',
slug: 'def', slug: 'def',
minValue: 1, minValue: 1,
maxValue: 3, maxValue: 3,
@ -153,6 +165,7 @@ const ax: ItemSkill[][] = [
ja: '弱体耐性', ja: '弱体耐性',
}, },
id: 9, id: 9,
granblue_id: '1593',
slug: 'debuff', slug: 'debuff',
minValue: 1, minValue: 1,
maxValue: 3, maxValue: 3,
@ -165,6 +178,7 @@ const ax: ItemSkill[][] = [
ja: '回復性能', ja: '回復性能',
}, },
id: 10, id: 10,
granblue_id: '1595',
slug: 'healing', slug: 'healing',
minValue: 2, minValue: 2,
maxValue: 5, maxValue: 5,
@ -177,6 +191,7 @@ const ax: ItemSkill[][] = [
ja: '渾身', ja: '渾身',
}, },
id: 12, id: 12,
granblue_id: '1600',
slug: 'stamina', slug: 'stamina',
minValue: 1, minValue: 1,
maxValue: 3, maxValue: 3,
@ -190,6 +205,7 @@ const ax: ItemSkill[][] = [
ja: '奥義ダメ', ja: '奥義ダメ',
}, },
id: 3, id: 3,
granblue_id: '1591',
slug: 'ca-dmg', slug: 'ca-dmg',
minValue: 2, minValue: 2,
maxValue: 8.5, maxValue: 8.5,
@ -202,6 +218,7 @@ const ax: ItemSkill[][] = [
ja: '攻撃', ja: '攻撃',
}, },
id: 0, id: 0,
granblue_id: '1589',
slug: 'atk', slug: 'atk',
minValue: 1, minValue: 1,
maxValue: 1.5, maxValue: 1.5,
@ -214,6 +231,7 @@ const ax: ItemSkill[][] = [
ja: '全属性攻撃力', ja: '全属性攻撃力',
}, },
id: 13, id: 13,
granblue_id: '1594',
slug: 'ele-atk', slug: 'ele-atk',
minValue: 1, minValue: 1,
maxValue: 5, maxValue: 5,
@ -226,6 +244,7 @@ const ax: ItemSkill[][] = [
ja: '奥義上限', ja: '奥義上限',
}, },
id: 8, id: 8,
granblue_id: '1599',
slug: 'ca-cap', slug: 'ca-cap',
minValue: 1, minValue: 1,
maxValue: 2, maxValue: 2,
@ -238,6 +257,7 @@ const ax: ItemSkill[][] = [
ja: '渾身', ja: '渾身',
}, },
id: 12, id: 12,
granblue_id: '1600',
slug: 'stamina', slug: 'stamina',
minValue: 1, minValue: 1,
maxValue: 3, maxValue: 3,
@ -251,6 +271,7 @@ const ax: ItemSkill[][] = [
ja: '連撃率', ja: '連撃率',
}, },
id: 4, id: 4,
granblue_id: '1592',
slug: 'ta', slug: 'ta',
minValue: 1, minValue: 1,
maxValue: 4, maxValue: 4,
@ -263,6 +284,7 @@ const ax: ItemSkill[][] = [
ja: '奥義ダメ', ja: '奥義ダメ',
}, },
id: 3, id: 3,
granblue_id: '1591',
slug: 'ca-dmg', slug: 'ca-dmg',
minValue: 2, minValue: 2,
maxValue: 4, maxValue: 4,
@ -275,6 +297,7 @@ const ax: ItemSkill[][] = [
ja: '全属性攻撃力', ja: '全属性攻撃力',
}, },
id: 13, id: 13,
granblue_id: '1594',
slug: 'ele-atk', slug: 'ele-atk',
minValue: 1, minValue: 1,
maxValue: 5, maxValue: 5,
@ -287,6 +310,7 @@ const ax: ItemSkill[][] = [
ja: 'DA確率', ja: 'DA確率',
}, },
id: 5, id: 5,
granblue_id: '1596',
slug: 'da', slug: 'da',
minValue: 1, minValue: 1,
maxValue: 2, maxValue: 2,
@ -299,6 +323,7 @@ const ax: ItemSkill[][] = [
ja: 'TA確率', ja: 'TA確率',
}, },
id: 6, id: 6,
granblue_id: '1597',
slug: 'ta', slug: 'ta',
minValue: 1, minValue: 1,
maxValue: 2, maxValue: 2,
@ -315,6 +340,7 @@ const ax: ItemSkill[][] = [
ja: '攻撃', ja: '攻撃',
}, },
id: 0, id: 0,
granblue_id: '1589',
slug: 'atk', slug: 'atk',
minValue: 1, minValue: 1,
maxValue: 3.5, maxValue: 3.5,
@ -327,6 +353,7 @@ const ax: ItemSkill[][] = [
ja: '奥義ダメ', ja: '奥義ダメ',
}, },
id: 3, id: 3,
granblue_id: '1591',
slug: 'ca-dmg', slug: 'ca-dmg',
minValue: 2, minValue: 2,
maxValue: 8.5, maxValue: 8.5,
@ -339,6 +366,7 @@ const ax: ItemSkill[][] = [
ja: '連撃確率', ja: '連撃確率',
}, },
id: 4, id: 4,
granblue_id: '1592',
slug: 'ta', slug: 'ta',
minValue: 1.5, minValue: 1.5,
maxValue: 4, maxValue: 4,
@ -351,6 +379,7 @@ const ax: ItemSkill[][] = [
ja: '通常ダメ上限', ja: '通常ダメ上限',
}, },
id: 14, id: 14,
granblue_id: '1722',
slug: 'na-dmg', slug: 'na-dmg',
minValue: 0.5, minValue: 0.5,
maxValue: 1.5, maxValue: 1.5,
@ -363,6 +392,7 @@ const ax: ItemSkill[][] = [
ja: 'アビ与ダメ上昇', ja: 'アビ与ダメ上昇',
}, },
id: 15, id: 15,
granblue_id: '1719',
slug: 'skill-supp', slug: 'skill-supp',
minValue: 1, minValue: 1,
maxValue: 5, maxValue: 5,
@ -376,6 +406,7 @@ const ax: ItemSkill[][] = [
ja: '防御', ja: '防御',
}, },
id: 1, id: 1,
granblue_id: '1590',
slug: 'def', slug: 'def',
minValue: 1, minValue: 1,
maxValue: 8, maxValue: 8,
@ -388,6 +419,7 @@ const ax: ItemSkill[][] = [
ja: '属性ダメ軽減', ja: '属性ダメ軽減',
}, },
id: 17, id: 17,
granblue_id: '1721',
slug: 'ele-def', slug: 'ele-def',
minValue: 1, minValue: 1,
maxValue: 5, maxValue: 5,
@ -400,6 +432,7 @@ const ax: ItemSkill[][] = [
ja: '弱体耐性', ja: '弱体耐性',
}, },
id: 9, id: 9,
granblue_id: '1593',
slug: 'debuff', slug: 'debuff',
minValue: 1, minValue: 1,
maxValue: 3, maxValue: 3,
@ -412,6 +445,7 @@ const ax: ItemSkill[][] = [
ja: '回復性能', ja: '回復性能',
}, },
id: 10, id: 10,
granblue_id: '1595',
slug: 'healing', slug: 'healing',
minValue: 2, minValue: 2,
maxValue: 5, maxValue: 5,
@ -424,6 +458,7 @@ const ax: ItemSkill[][] = [
ja: '背水', ja: '背水',
}, },
id: 11, id: 11,
granblue_id: '1601',
slug: 'enmity', slug: 'enmity',
minValue: 1, minValue: 1,
maxValue: 3, maxValue: 3,
@ -437,6 +472,7 @@ const ax: ItemSkill[][] = [
ja: 'HP', ja: 'HP',
}, },
id: 2, id: 2,
granblue_id: '1588',
slug: 'hp', slug: 'hp',
minValue: 1, minValue: 1,
maxValue: 11, maxValue: 11,
@ -449,6 +485,7 @@ const ax: ItemSkill[][] = [
ja: '属性ダメ軽減', ja: '属性ダメ軽減',
}, },
id: 17, id: 17,
granblue_id: '1721',
slug: 'ele-def', slug: 'ele-def',
minValue: 1, minValue: 1,
maxValue: 5, maxValue: 5,
@ -461,6 +498,7 @@ const ax: ItemSkill[][] = [
ja: '弱体耐性', ja: '弱体耐性',
}, },
id: 9, id: 9,
granblue_id: '1593',
slug: 'debuff', slug: 'debuff',
minValue: 1, minValue: 1,
maxValue: 3, maxValue: 3,
@ -473,6 +511,7 @@ const ax: ItemSkill[][] = [
ja: '回復性能', ja: '回復性能',
}, },
id: 10, id: 10,
granblue_id: '1595',
slug: 'healing', slug: 'healing',
minValue: 2, minValue: 2,
maxValue: 5, maxValue: 5,
@ -485,6 +524,7 @@ const ax: ItemSkill[][] = [
ja: '渾身', ja: '渾身',
}, },
id: 12, id: 12,
granblue_id: '1600',
slug: 'stamina', slug: 'stamina',
minValue: 1, minValue: 1,
maxValue: 3, maxValue: 3,
@ -498,6 +538,7 @@ const ax: ItemSkill[][] = [
ja: '奥義ダメ', ja: '奥義ダメ',
}, },
id: 3, id: 3,
granblue_id: '1591',
slug: 'ca-dmg', slug: 'ca-dmg',
minValue: 2, minValue: 2,
maxValue: 8.5, maxValue: 8.5,
@ -510,6 +551,7 @@ const ax: ItemSkill[][] = [
ja: '連撃率', ja: '連撃率',
}, },
id: 4, id: 4,
granblue_id: '1592',
slug: 'ta', slug: 'ta',
minValue: 1.5, minValue: 1.5,
maxValue: 4, maxValue: 4,
@ -522,6 +564,7 @@ const ax: ItemSkill[][] = [
ja: 'アビ与ダメ上昇', ja: 'アビ与ダメ上昇',
}, },
id: 15, id: 15,
granblue_id: '1719',
slug: 'skill-supp', slug: 'skill-supp',
minValue: 1, minValue: 1,
maxValue: 5, maxValue: 5,
@ -533,6 +576,7 @@ const ax: ItemSkill[][] = [
ja: '奥義与ダメ上昇', ja: '奥義与ダメ上昇',
}, },
id: 16, id: 16,
granblue_id: '1720',
slug: 'ca-supp', slug: 'ca-supp',
minValue: 1, minValue: 1,
maxValue: 5, maxValue: 5,
@ -544,6 +588,7 @@ const ax: ItemSkill[][] = [
ja: '渾身', ja: '渾身',
}, },
id: 12, id: 12,
granblue_id: '1600',
slug: 'stamina', slug: 'stamina',
minValue: 1, minValue: 1,
maxValue: 3, maxValue: 3,
@ -557,6 +602,7 @@ const ax: ItemSkill[][] = [
ja: '連撃率', ja: '連撃率',
}, },
id: 4, id: 4,
granblue_id: '1592',
slug: 'ta', slug: 'ta',
minValue: 1, minValue: 1,
maxValue: 4, maxValue: 4,
@ -569,6 +615,7 @@ const ax: ItemSkill[][] = [
ja: '奥義与ダメ上昇', ja: '奥義与ダメ上昇',
}, },
id: 16, id: 16,
granblue_id: '1720',
slug: 'ca-supp', slug: 'ca-supp',
minValue: 1, minValue: 1,
maxValue: 5, maxValue: 5,
@ -580,6 +627,7 @@ const ax: ItemSkill[][] = [
ja: '通常ダメ上限', ja: '通常ダメ上限',
}, },
id: 14, id: 14,
granblue_id: '1722',
slug: 'na-cap', slug: 'na-cap',
minValue: 0.5, minValue: 0.5,
maxValue: 1.5, maxValue: 1.5,
@ -592,6 +640,7 @@ const ax: ItemSkill[][] = [
ja: '渾身', ja: '渾身',
}, },
id: 12, id: 12,
granblue_id: '1600',
slug: 'stamina', slug: 'stamina',
minValue: 1, minValue: 1,
maxValue: 3, maxValue: 3,
@ -603,6 +652,7 @@ const ax: ItemSkill[][] = [
ja: '背水', ja: '背水',
}, },
id: 11, id: 11,
granblue_id: '1601',
slug: 'enmity', slug: 'enmity',
minValue: 1, minValue: 1,
maxValue: 3, maxValue: 3,
@ -618,6 +668,7 @@ const ax: ItemSkill[][] = [
ja: '攻撃', ja: '攻撃',
}, },
id: 0, id: 0,
granblue_id: '1589',
slug: 'atk', slug: 'atk',
minValue: 1, minValue: 1,
maxValue: 3.5, maxValue: 3.5,
@ -630,6 +681,7 @@ const ax: ItemSkill[][] = [
ja: '奥義ダメ', ja: '奥義ダメ',
}, },
id: 3, id: 3,
granblue_id: '1591',
slug: 'ca-dmg', slug: 'ca-dmg',
minValue: 2, minValue: 2,
maxValue: 4, maxValue: 4,
@ -642,6 +694,7 @@ const ax: ItemSkill[][] = [
ja: 'DA確率', ja: 'DA確率',
}, },
id: 5, id: 5,
granblue_id: '1596',
slug: 'da', slug: 'da',
minValue: 1, minValue: 1,
maxValue: 2, maxValue: 2,
@ -654,6 +707,7 @@ const ax: ItemSkill[][] = [
ja: 'TA確率', ja: 'TA確率',
}, },
id: 6, id: 6,
granblue_id: '1597',
slug: 'ta', slug: 'ta',
minValue: 1, minValue: 1,
maxValue: 2, maxValue: 2,
@ -666,6 +720,7 @@ const ax: ItemSkill[][] = [
ja: 'アビ上限', ja: 'アビ上限',
}, },
id: 7, id: 7,
granblue_id: '1588',
slug: 'skill-cap', slug: 'skill-cap',
minValue: 1, minValue: 1,
maxValue: 2, maxValue: 2,
@ -680,6 +735,7 @@ const ax: ItemSkill[][] = [
ja: '防御', ja: '防御',
}, },
id: 1, id: 1,
granblue_id: '1590',
slug: 'def', slug: 'def',
minValue: 1, minValue: 1,
maxValue: 8, maxValue: 8,
@ -692,6 +748,7 @@ const ax: ItemSkill[][] = [
ja: 'HP', ja: 'HP',
}, },
id: 2, id: 2,
granblue_id: '1588',
slug: 'hp', slug: 'hp',
minValue: 1, minValue: 1,
maxValue: 3, maxValue: 3,
@ -704,6 +761,7 @@ const ax: ItemSkill[][] = [
ja: '弱体耐性', ja: '弱体耐性',
}, },
id: 9, id: 9,
granblue_id: '1593',
slug: 'debuff', slug: 'debuff',
minValue: 1, minValue: 1,
maxValue: 3, maxValue: 3,
@ -716,6 +774,7 @@ const ax: ItemSkill[][] = [
ja: '回復性能', ja: '回復性能',
}, },
id: 10, id: 10,
granblue_id: '1595',
slug: 'healing', slug: 'healing',
minValue: 2, minValue: 2,
maxValue: 5, maxValue: 5,
@ -728,6 +787,7 @@ const ax: ItemSkill[][] = [
ja: '背水', ja: '背水',
}, },
id: 11, id: 11,
granblue_id: '1601',
slug: 'enmity', slug: 'enmity',
minValue: 1, minValue: 1,
maxValue: 3, maxValue: 3,
@ -741,6 +801,7 @@ const ax: ItemSkill[][] = [
ja: 'HP', ja: 'HP',
}, },
id: 2, id: 2,
granblue_id: '1588',
slug: 'hp', slug: 'hp',
minValue: 1, minValue: 1,
maxValue: 11, maxValue: 11,
@ -753,6 +814,7 @@ const ax: ItemSkill[][] = [
ja: '防御', ja: '防御',
}, },
id: 1, id: 1,
granblue_id: '1590',
slug: 'def', slug: 'def',
minValue: 1, minValue: 1,
maxValue: 3, maxValue: 3,
@ -765,6 +827,7 @@ const ax: ItemSkill[][] = [
ja: '弱体耐性', ja: '弱体耐性',
}, },
id: 9, id: 9,
granblue_id: '1593',
slug: 'debuff', slug: 'debuff',
minValue: 1, minValue: 1,
maxValue: 3, maxValue: 3,
@ -777,6 +840,7 @@ const ax: ItemSkill[][] = [
ja: '回復性能', ja: '回復性能',
}, },
id: 10, id: 10,
granblue_id: '1595',
slug: 'healing', slug: 'healing',
minValue: 2, minValue: 2,
maxValue: 5, maxValue: 5,
@ -789,6 +853,7 @@ const ax: ItemSkill[][] = [
ja: '渾身', ja: '渾身',
}, },
id: 12, id: 12,
granblue_id: '1600',
slug: 'stamina', slug: 'stamina',
minValue: 1, minValue: 1,
maxValue: 3, maxValue: 3,
@ -802,6 +867,7 @@ const ax: ItemSkill[][] = [
ja: '奥義ダメ', ja: '奥義ダメ',
}, },
id: 3, id: 3,
granblue_id: '1591',
slug: 'ca-dmg', slug: 'ca-dmg',
minValue: 2, minValue: 2,
maxValue: 8.5, maxValue: 8.5,
@ -814,6 +880,7 @@ const ax: ItemSkill[][] = [
ja: '攻撃', ja: '攻撃',
}, },
id: 0, id: 0,
granblue_id: '1589',
slug: 'atk', slug: 'atk',
minValue: 1, minValue: 1,
maxValue: 1.5, maxValue: 1.5,
@ -826,6 +893,7 @@ const ax: ItemSkill[][] = [
ja: '全属性攻撃力', ja: '全属性攻撃力',
}, },
id: 13, id: 13,
granblue_id: '1594',
slug: 'ele-atk', slug: 'ele-atk',
minValue: 1, minValue: 1,
maxValue: 5, maxValue: 5,
@ -838,6 +906,7 @@ const ax: ItemSkill[][] = [
ja: '奥義上限', ja: '奥義上限',
}, },
id: 8, id: 8,
granblue_id: '1599',
slug: 'ca-dmg', slug: 'ca-dmg',
minValue: 1, minValue: 1,
maxValue: 2, maxValue: 2,
@ -850,6 +919,7 @@ const ax: ItemSkill[][] = [
ja: '渾身', ja: '渾身',
}, },
id: 12, id: 12,
granblue_id: '1600',
slug: 'stamina', slug: 'stamina',
minValue: 1, minValue: 1,
maxValue: 3, maxValue: 3,
@ -863,6 +933,7 @@ const ax: ItemSkill[][] = [
ja: '連撃率', ja: '連撃率',
}, },
id: 4, id: 4,
granblue_id: '1592',
slug: 'ta', slug: 'ta',
minValue: 1, minValue: 1,
maxValue: 4, maxValue: 4,
@ -875,6 +946,7 @@ const ax: ItemSkill[][] = [
ja: '奥義ダメ', ja: '奥義ダメ',
}, },
id: 3, id: 3,
granblue_id: '1591',
slug: 'ca-dmg', slug: 'ca-dmg',
minValue: 2, minValue: 2,
maxValue: 4, maxValue: 4,
@ -887,6 +959,7 @@ const ax: ItemSkill[][] = [
ja: '全属性攻撃力', ja: '全属性攻撃力',
}, },
id: 13, id: 13,
granblue_id: '1594',
slug: 'ele-atk', slug: 'ele-atk',
minValue: 1, minValue: 1,
maxValue: 5, maxValue: 5,
@ -899,6 +972,7 @@ const ax: ItemSkill[][] = [
ja: 'DA確率', ja: 'DA確率',
}, },
id: 5, id: 5,
granblue_id: '1596',
slug: 'da', slug: 'da',
minValue: 1, minValue: 1,
maxValue: 2, maxValue: 2,
@ -911,6 +985,7 @@ const ax: ItemSkill[][] = [
ja: 'TA確率', ja: 'TA確率',
}, },
id: 6, id: 6,
granblue_id: '1597',
slug: 'ta', slug: 'ta',
minValue: 1, minValue: 1,
maxValue: 2, maxValue: 2,
@ -921,10 +996,11 @@ const ax: ItemSkill[][] = [
}, },
{ {
name: { name: {
en: 'EXP Up', en: 'EXP Gain',
ja: 'EXP UP', ja: 'EXP UP',
}, },
id: 18, id: 18,
granblue_id: '1837',
slug: 'exp', slug: 'exp',
minValue: 5, minValue: 5,
maxValue: 10, maxValue: 10,
@ -933,10 +1009,11 @@ const ax: ItemSkill[][] = [
}, },
{ {
name: { name: {
en: 'Rupies', en: 'Rupie Gain',
ja: '獲得ルピ', ja: '獲得ルピ',
}, },
id: 19, id: 19,
granblue_id: '1838',
slug: 'rupie', slug: 'rupie',
minValue: 10, minValue: 10,
maxValue: 20, maxValue: 20,

View file

@ -5,6 +5,7 @@ const overMasteryPrimary: ItemSkill[] = [
ja: '攻撃', ja: '攻撃',
}, },
id: 1, id: 1,
granblue_id: '',
slug: 'atk', slug: 'atk',
minValue: 300, minValue: 300,
maxValue: 3000, maxValue: 3000,
@ -18,6 +19,7 @@ const overMasteryPrimary: ItemSkill[] = [
ja: 'HP', ja: 'HP',
}, },
id: 2, id: 2,
granblue_id: '',
slug: 'hp', slug: 'hp',
minValue: 150, minValue: 150,
maxValue: 1500, maxValue: 1500,
@ -34,6 +36,7 @@ const overMasterySecondary: ItemSkill[] = [
ja: '弱体成功率', ja: '弱体成功率',
}, },
id: 3, id: 3,
granblue_id: '',
slug: 'debuff-success', slug: 'debuff-success',
minValue: 6, minValue: 6,
maxValue: 15, maxValue: 15,
@ -47,6 +50,7 @@ const overMasterySecondary: ItemSkill[] = [
ja: 'アビダメ上限', ja: 'アビダメ上限',
}, },
id: 4, id: 4,
granblue_id: '',
slug: 'skill-cap', slug: 'skill-cap',
minValue: 6, minValue: 6,
maxValue: 15, maxValue: 15,
@ -60,6 +64,7 @@ const overMasterySecondary: ItemSkill[] = [
ja: '奥義ダメージ', ja: '奥義ダメージ',
}, },
id: 5, id: 5,
granblue_id: '',
slug: 'ca-dmg', slug: 'ca-dmg',
minValue: 10, minValue: 10,
maxValue: 30, maxValue: 30,
@ -73,6 +78,7 @@ const overMasterySecondary: ItemSkill[] = [
ja: '奥義ダメージ上限', ja: '奥義ダメージ上限',
}, },
id: 6, id: 6,
granblue_id: '',
slug: 'ca-cap', slug: 'ca-cap',
minValue: 6, minValue: 6,
maxValue: 15, maxValue: 15,
@ -86,6 +92,7 @@ const overMasterySecondary: ItemSkill[] = [
ja: '渾身', ja: '渾身',
}, },
id: 7, id: 7,
granblue_id: '',
slug: 'stamina', slug: 'stamina',
minValue: 1, minValue: 1,
maxValue: 10, maxValue: 10,
@ -99,6 +106,7 @@ const overMasterySecondary: ItemSkill[] = [
ja: '背水', ja: '背水',
}, },
id: 8, id: 8,
granblue_id: '',
slug: 'enmity', slug: 'enmity',
minValue: 1, minValue: 1,
maxValue: 10, maxValue: 10,
@ -112,6 +120,7 @@ const overMasterySecondary: ItemSkill[] = [
ja: 'クリティカル確率', ja: 'クリティカル確率',
}, },
id: 9, id: 9,
granblue_id: '',
slug: 'crit', slug: 'crit',
minValue: 10, minValue: 10,
maxValue: 30, maxValue: 30,
@ -128,6 +137,7 @@ const overMasteryTertiary: ItemSkill[] = [
ja: 'ダブルアタック確率', ja: 'ダブルアタック確率',
}, },
id: 10, id: 10,
granblue_id: '',
slug: 'da', slug: 'da',
minValue: 6, minValue: 6,
maxValue: 15, maxValue: 15,
@ -141,6 +151,7 @@ const overMasteryTertiary: ItemSkill[] = [
ja: 'トリプルアタック確率', ja: 'トリプルアタック確率',
}, },
id: 11, id: 11,
granblue_id: '',
slug: 'ta', slug: 'ta',
minValue: 1, minValue: 1,
maxValue: 10, maxValue: 10,
@ -154,6 +165,7 @@ const overMasteryTertiary: ItemSkill[] = [
ja: '防御', ja: '防御',
}, },
id: 12, id: 12,
granblue_id: '',
slug: 'def', slug: 'def',
minValue: 6, minValue: 6,
maxValue: 20, maxValue: 20,
@ -167,6 +179,7 @@ const overMasteryTertiary: ItemSkill[] = [
ja: '回復性能', ja: '回復性能',
}, },
id: 13, id: 13,
granblue_id: '',
slug: 'heal', slug: 'heal',
minValue: 3, minValue: 3,
maxValue: 30, maxValue: 30,
@ -180,6 +193,7 @@ const overMasteryTertiary: ItemSkill[] = [
ja: '弱体耐性', ja: '弱体耐性',
}, },
id: 14, id: 14,
granblue_id: '',
slug: 'debuff-resist', slug: 'debuff-resist',
minValue: 6, minValue: 6,
maxValue: 15, maxValue: 15,
@ -193,6 +207,7 @@ const overMasteryTertiary: ItemSkill[] = [
ja: '回避', ja: '回避',
}, },
id: 15, id: 15,
granblue_id: '',
slug: 'dodge', slug: 'dodge',
minValue: 1, minValue: 1,
maxValue: 10, maxValue: 10,
@ -215,6 +230,7 @@ export const aetherialMastery: ItemSkill[] = [
ja: 'ダブルアタック確率', ja: 'ダブルアタック確率',
}, },
id: 1, id: 1,
granblue_id: '',
slug: 'da', slug: 'da',
minValue: 10, minValue: 10,
maxValue: 17, maxValue: 17,
@ -227,6 +243,7 @@ export const aetherialMastery: ItemSkill[] = [
ja: 'トリプルアタック確率', ja: 'トリプルアタック確率',
}, },
id: 2, id: 2,
granblue_id: '',
slug: 'ta', slug: 'ta',
minValue: 5, minValue: 5,
maxValue: 12, maxValue: 12,
@ -239,6 +256,7 @@ export const aetherialMastery: ItemSkill[] = [
ja: '{属性}攻撃', ja: '{属性}攻撃',
}, },
id: 3, id: 3,
granblue_id: '',
slug: 'element-atk', slug: 'element-atk',
minValue: 15, minValue: 15,
maxValue: 22, maxValue: 22,
@ -251,6 +269,7 @@ export const aetherialMastery: ItemSkill[] = [
ja: '{属性}軽減', ja: '{属性}軽減',
}, },
id: 4, id: 4,
granblue_id: '',
slug: 'element-resist', slug: 'element-resist',
minValue: 5, minValue: 5,
maxValue: 12, maxValue: 12,
@ -263,6 +282,7 @@ export const aetherialMastery: ItemSkill[] = [
ja: '渾身', ja: '渾身',
}, },
id: 5, id: 5,
granblue_id: '',
slug: 'stamina', slug: 'stamina',
minValue: 5, minValue: 5,
maxValue: 12, maxValue: 12,
@ -275,6 +295,7 @@ export const aetherialMastery: ItemSkill[] = [
ja: '背水', ja: '背水',
}, },
id: 6, id: 6,
granblue_id: '',
slug: 'enmity', slug: 'enmity',
minValue: 5, minValue: 5,
maxValue: 12, maxValue: 12,
@ -287,6 +308,7 @@ export const aetherialMastery: ItemSkill[] = [
ja: '与ダメ上昇', ja: '与ダメ上昇',
}, },
id: 7, id: 7,
granblue_id: '',
slug: 'supplemental', slug: 'supplemental',
minValue: 5, minValue: 5,
maxValue: 12, maxValue: 12,
@ -299,6 +321,7 @@ export const aetherialMastery: ItemSkill[] = [
ja: 'クリティカル', ja: 'クリティカル',
}, },
id: 8, id: 8,
granblue_id: '',
slug: 'crit', slug: 'crit',
minValue: 18, minValue: 18,
maxValue: 35, maxValue: 35,
@ -311,6 +334,7 @@ export const aetherialMastery: ItemSkill[] = [
ja: 'カウンター(回避)', ja: 'カウンター(回避)',
}, },
id: 9, id: 9,
granblue_id: '',
slug: 'counter-dodge', slug: 'counter-dodge',
minValue: 5, minValue: 5,
maxValue: 12, maxValue: 12,
@ -323,6 +347,7 @@ export const aetherialMastery: ItemSkill[] = [
ja: 'カウンター(被ダメ)', ja: 'カウンター(被ダメ)',
}, },
id: 10, id: 10,
granblue_id: '',
slug: 'counter-dmg', slug: 'counter-dmg',
minValue: 10, minValue: 10,
maxValue: 17, maxValue: 17,
@ -338,6 +363,7 @@ export const permanentMastery: ItemSkill[] = [
ja: 'LB強化回数上限', ja: 'LB強化回数上限',
}, },
id: 1, id: 1,
granblue_id: '',
slug: 'star-cap', slug: 'star-cap',
minValue: 10, minValue: 10,
maxValue: 10, maxValue: 10,
@ -350,6 +376,7 @@ export const permanentMastery: ItemSkill[] = [
ja: '攻撃', ja: '攻撃',
}, },
id: 2, id: 2,
granblue_id: '',
slug: 'atk', slug: 'atk',
minValue: 10, minValue: 10,
maxValue: 10, maxValue: 10,
@ -362,6 +389,7 @@ export const permanentMastery: ItemSkill[] = [
ja: 'HP', ja: 'HP',
}, },
id: 3, id: 3,
granblue_id: '',
slug: 'hp', slug: 'hp',
minValue: 10, minValue: 10,
maxValue: 10, maxValue: 10,
@ -374,6 +402,7 @@ export const permanentMastery: ItemSkill[] = [
ja: 'ダメージ上限', ja: 'ダメージ上限',
}, },
id: 4, id: 4,
granblue_id: '',
slug: 'dmg-cap', slug: 'dmg-cap',
minValue: 5, minValue: 5,
maxValue: 5, maxValue: 5,

View file

@ -24,7 +24,9 @@
"Added Ultimate Mastery skills for classes: Berserker, Apsaras, Nekomancer, Kengo", "Added Ultimate Mastery skills for classes: Berserker, Apsaras, Nekomancer, Kengo",
"Added raids for Dread Barrage", "Added raids for Dread Barrage",
"Renamed \"Guild Wars\" in raid list to \"Unite and Fight\"", "Renamed \"Guild Wars\" in raid list to \"Unite and Fight\"",
"Fixed sorting of raids for Dread Barrage and Unite and Fight" "Fixed sorting of raids for Dread Barrage and Unite and Fight",
"Fixed character hovercard showing up behind class image",
"Fixed an issue where users couldn't edit remixed teams"
] ]
}, },
"2023-02-U2": { "2023-02-U2": {

View file

@ -24,7 +24,9 @@
"「ベルセルク」「アプサラス」「黒猫道士」「剣豪」の極致の証スキルを追加", "「ベルセルク」「アプサラス」「黒猫道士」「剣豪」の極致の証スキルを追加",
"ドレッドバラージュのマルチバトルをリストに追加", "ドレッドバラージュのマルチバトルをリストに追加",
"英語のリストに\"Guild Wars\"のラベルを\"Unite and Fight\"に変更", "英語のリストに\"Guild Wars\"のラベルを\"Unite and Fight\"に変更",
"「ドレッドバラージュ」と「星の古戦場」のマルチバトルを並び替えました" "「ドレッドバラージュ」と「星の古戦場」のマルチバトルを並び替えました",
"キャラクタータブにキャラクター用のハバーカードがジョブ画像の下に表示する不具合を修正",
"リミックスされた編成を編集できない不具合を修正"
] ]
}, },
"2023-02-U2": { "2023-02-U2": {

View file

@ -5,6 +5,7 @@ interface ItemSkill {
ja: string ja: string
} }
id: number id: number
granblue_id: string
slug: string slug: string
minValue: number minValue: number
maxValue: number maxValue: number

3
types/Job.d.ts vendored
View file

@ -2,7 +2,8 @@ interface Job {
id: string id: string
granblue_id: string granblue_id: string
row: string row: string
ml: boolean master_level: boolean
ultimate_mastery: boolean
order: number order: number
name: { name: {
[key: string]: string [key: string]: string

2
types/Party.d.ts vendored
View file

@ -20,6 +20,8 @@ interface Party {
chain_count?: number chain_count?: number
source_party?: Party source_party?: Party
job: Job job: Job
master_level?: number
ultimate_mastery?: number
job_skills: JobSkillObject job_skills: JobSkillObject
accessory: JobAccessory accessory: JobAccessory
shortcode: string shortcode: string

View file

@ -1,5 +1,6 @@
interface WeaponKey { interface WeaponKey {
id: string id: string
granblue_id: string
name: { name: {
[key: string]: string [key: string]: string
en: string en: string

View file

@ -6,7 +6,8 @@ const emptyJob: Job = {
id: '-1', id: '-1',
granblue_id: '-1', granblue_id: '-1',
row: '', row: '',
ml: false, master_level: false,
ultimate_mastery: false,
order: 0, order: 0,
name: { name: {
en: '', en: '',

View file

@ -40,6 +40,7 @@ export default function elementalizeAetherialMastery(
elementalized.unshift({ elementalized.unshift({
id: 0, id: 0,
granblue_id: '',
name: { name: {
en: 'No aetherial mastery', en: 'No aetherial mastery',
ja: 'エーテリアルプラス', ja: 'エーテリアルプラス',

View file

@ -26,6 +26,10 @@ export const setHeaders = (
} }
} }
export const storeEditKey = (id: string, key: string) => {
ls(id, key)
}
export const setEditKey = (id: string, user?: User) => { export const setEditKey = (id: string, user?: User) => {
if (!user) { if (!user) {
const edit_key = get<string>(id) const edit_key = get<string>(id)