diff --git a/transformers/CharacterTransformer.tsx b/transformers/CharacterTransformer.tsx new file mode 100644 index 00000000..e342a62a --- /dev/null +++ b/transformers/CharacterTransformer.tsx @@ -0,0 +1,40 @@ +import * as Element from './ElementTransformer' + +// Transforms API response to Party object +export function toObject(data: any): Character { + return { + type: 'character', + id: data.id, + granblueId: data.granblue_id, + characterId: data.character_id, + name: { + en: data.name.en, + ja: data.name.jp, + }, + element: Element.toObject(data.element), + rarity: data.rarity, + proficiency: data.proficiency, + gender: data.gender, + race: data.race, + hp: { + min: data.hp.min, + max: data.hp.max, + flb: data.hp.max_hp_flb, + ulb: data.hp.max_hp_ulb, + }, + atk: { + min: data.atk.min, + max: data.atk.max, + flb: data.atk.max_atk_flb, + ulb: data.atk.max_atk_ulb, + }, + uncap: { + flb: data.uncap.flb, + ulb: data.uncap.ulb, + }, + awakenings: data.awakenings.map((awakening: any) => + Awakening.toObject(awakening) + ), + special: data.special, + } +} diff --git a/transformers/SummonTransformer.tsx b/transformers/SummonTransformer.tsx new file mode 100644 index 00000000..ac53a0b6 --- /dev/null +++ b/transformers/SummonTransformer.tsx @@ -0,0 +1,36 @@ +import * as Element from './ElementTransformer' + +// Transforms API response to Party object +export function toObject(data: any): Summon { + return { + type: 'summon', + id: data.id, + granblueId: data.granblue_id, + name: { + en: data.name.en, + ja: data.name.jp, + }, + element: Element.toObject(data.element), + rarity: data.rarity, + maxLevel: data.max_level, + hp: { + min: data.hp.min, + max: data.hp.max, + flb: data.hp.max_hp_flb, + ulb: data.hp.max_hp_ulb, + xlb: data.hp.max_hp_xlb, + }, + atk: { + min: data.atk.min, + max: data.atk.max, + flb: data.atk.max_atk_flb, + ulb: data.atk.max_atk_ulb, + xlb: data.atk.max_atk_xlb, + }, + uncap: { + flb: data.uncap.flb, + ulb: data.uncap.ulb, + xlb: data.uncap.xlb, + }, + } +} diff --git a/transformers/WeaponTransformer.tsx b/transformers/WeaponTransformer.tsx new file mode 100644 index 00000000..da083b93 --- /dev/null +++ b/transformers/WeaponTransformer.tsx @@ -0,0 +1,42 @@ +import * as Element from './ElementTransformer' + +// Transforms API response to Party object +export function toObject(data: any): Weapon { + return { + type: 'weapon', + id: data.id, + granblueId: data.granblue_id, + name: { + en: data.name.en, + ja: data.name.jp, + }, + element: Element.toObject(data.element), + rarity: data.rarity, + proficiency: data.proficiency, + series: data.series, + maxLevel: data.max_level, + maxSkillLevel: data.max_skill_level, + hp: { + min: data.hp.min, + max: data.hp.max, + flb: data.hp.max_hp_flb, + ulb: data.hp.max_hp_ulb, + }, + atk: { + min: data.atk.min, + max: data.atk.max, + flb: data.atk.max_atk_flb, + ulb: data.atk.max_atk_ulb, + }, + uncap: { + flb: data.uncap.flb, + ulb: data.uncap.ulb, + }, + ax: data.ax, + axType: data.ax_type, + awakenings: data.awakenings.map((awakening: any) => + Awakening.toObject(awakening) + ), + maxAwakeningLevel: data.max_awakening_level, + } +} diff --git a/types/Character.d.ts b/types/Character.d.ts index 3ecedb6c..0ac0e92d 100644 --- a/types/Character.d.ts +++ b/types/Character.d.ts @@ -1,27 +1,27 @@ interface Character { type: 'character' - id: string - granblue_id: string - character_id: readonly number[] - element: number + granblueId: string + characterId: number[] + element: GranblueElement rarity: number gender: number - max_level: number name: { [key: string]: string en: string ja: string } hp: { - min_hp: number - max_hp: number - max_hp_flb: number + min: number + max: number + flb: number + ulb: number } atk: { - min_atk: number - max_atk: number - max_atk_flb: number + min: number + max: number + flb: number + ulb: number } uncap: { flb: boolean @@ -33,6 +33,5 @@ interface Character { } proficiency: number[] awakenings: Awakening[] - position?: number special: boolean } diff --git a/types/Summon.d.ts b/types/Summon.d.ts index 0f6de332..f1e26cf6 100644 --- a/types/Summon.d.ts +++ b/types/Summon.d.ts @@ -1,33 +1,32 @@ interface Summon { type: 'summon' - id: string - granblue_id: number - element: number - max_level: number + granblueId: string + element: GranblueElement + maxLevel: number + rarity: number name: { [key: string]: string en: string ja: string } hp: { - min_hp: number - max_hp: number - max_hp_flb: number - max_hp_ulb: number - max_hp_xlb: number + min: number + max: number + flb: number + ulb: number + xlb: number } atk: { - min_atk: number - max_atk: number - max_atk_flb: number - max_atk_ulb: number - max_atk_xlb: number + min: number + max: number + flb: number + ulb: number + xlb: number } uncap: { flb: boolean ulb: boolean xlb: boolean } - position?: number } diff --git a/types/Weapon.d.ts b/types/Weapon.d.ts index 87236933..5f51b475 100644 --- a/types/Weapon.d.ts +++ b/types/Weapon.d.ts @@ -1,16 +1,16 @@ interface Weapon { type: 'weapon' - id: string - granblue_id: number - element: number + granblueId: number + element: GranblueElement proficiency: number - max_level: number - max_skill_level: number - max_awakening_level: number + rarity: number + maxLevel: number + maxSkillLevel: number + maxAwakeningLevel: number series: number ax: boolean - ax_type: number + axType: number awakenings: Awakening[] name: { [key: string]: string @@ -18,20 +18,19 @@ interface Weapon { ja: string } hp: { - min_hp: number - max_hp: number - max_hp_flb: number - max_hp_ulb: number + min: number + max: number + flb: number + ulb: number } atk: { - min_atk: number - max_atk: number - max_atk_flb: number - max_atk_ulb: number + min: number + max: number + flb: number + ulb: number } uncap: { flb: boolean ulb: boolean } - position?: number }