From b278841e5c9b4e2d28736cd958ee15b2fe40bb34 Mon Sep 17 00:00:00 2001 From: Balint Morasz Date: Tue, 24 Oct 2023 23:41:57 +0200 Subject: [PATCH] fix picking specializations --- src/components/HarcosFegyverSpecializacio.tsx | 10 ++++++---- src/components/KalozKritikus.tsx | 19 +++++++++---------- src/components/LevelUps.tsx | 1 - src/domain-models/level.ts | 11 +++++++++-- 4 files changed, 24 insertions(+), 17 deletions(-) diff --git a/src/components/HarcosFegyverSpecializacio.tsx b/src/components/HarcosFegyverSpecializacio.tsx index 7f0ecee..14ca12f 100644 --- a/src/components/HarcosFegyverSpecializacio.tsx +++ b/src/components/HarcosFegyverSpecializacio.tsx @@ -15,20 +15,22 @@ function HarcosFegyverSpecializacio(props: { szint } = props const fegyver = GetFegyver(specialization) - const hasError = existingSpecializations.filter(x => x === specialization).length > (szint < 9 ? 1 : 2) + const pickableFegyverek = fegyverek.data.filter(f => f.Id === specialization || existingSpecializations.filter(x => x === f.Id).length < (szint < 9 ? 1 : 2)) + const kozelharciPickable = pickableFegyverek.filter(f => f.Type === 'kozelharci') + const tavolsagiPickable = pickableFegyverek.filter(f => f.Type === 'lofegyver') + return <>
{fegyver == null && Ismeretlen fegyver: {specialization}} - {hasError && Már {szint < 9 ? '' : 'kétszer is'} választottad ezt a fegyvert!}
} diff --git a/src/components/KalozKritikus.tsx b/src/components/KalozKritikus.tsx index bf71d53..8c7bc2d 100644 --- a/src/components/KalozKritikus.tsx +++ b/src/components/KalozKritikus.tsx @@ -14,20 +14,19 @@ function KalozKritikus(props: { changeKrit, szint } = props - const hasError = existingKrits.filter(x => x === kritFegyverId).length > (szint < 9 ? 1 : 2) - const fegyverek = AllowedFegyver(Osztaly.Kaloz, []) + const fegyverek = AllowedFegyver(Osztaly.Kaloz, []).filter(f => f.Id === kritFegyverId || existingKrits.filter(x => x === f.Id).length < (szint < 9 ? 1 : 2)) + return <>
- {hasError && Már {szint < 9 ? '' : 'kétszer is'} választottad ezt a fegyvert!} + + {fegyverek.filter(f => f.Type === 'kozelharci').map(f => )} + + + {fegyverek.filter(f => f.Type === 'lofegyver').map(f => )} + +
} diff --git a/src/components/LevelUps.tsx b/src/components/LevelUps.tsx index f13d409..9a2fec7 100644 --- a/src/components/LevelUps.tsx +++ b/src/components/LevelUps.tsx @@ -31,7 +31,6 @@ function LevelUp(props: { const specializationIndex = Math.floor((szint-1) / 2) const specialization = karakter.harcosSpecializaciok[specializationIndex] - console.log(specialization) const kritIndex = kalozKritIndex(szint) const krit = karakter.kalozKritikus[kritIndex] diff --git a/src/domain-models/level.ts b/src/domain-models/level.ts index d6278ed..147faa2 100644 --- a/src/domain-models/level.ts +++ b/src/domain-models/level.ts @@ -4,7 +4,12 @@ import {TulajdonsagIDs, TulajdonsagokTotal} from "./tulajdonsag"; import {KarakterInputs} from "./karakter"; import {GetFajDetails} from "./faj"; import {Osztaly} from "./osztaly"; +import fegyverek from "./fegyver.json" +import {AllowedFegyver} from "./allowed-fegyver"; +export function PickableSpecializationFilter(existingSpecilizations: string[], szint: number) { + return (fegyver: {Id: string}) => existingSpecilizations.filter(x => x === fegyver.Id).length < (szint < 9 ? 1 : 2) +} export function LevelUp(karakter: KarakterInputs, changeKarakter: (input: KarakterInputs) => void) { const tulajdonsagokTotal = TulajdonsagokTotal(karakter) @@ -24,11 +29,13 @@ export function LevelUp(karakter: KarakterInputs, changeKarakter: (input: Karakt } let harcosSpecializaciok = karakter.harcosSpecializaciok if(karakter.osztaly === Osztaly.Harcos && szint % 2 === 1) { - harcosSpecializaciok = [...harcosSpecializaciok, "csatabard"] + const nextPickableFegyverId = fegyverek.data.filter(PickableSpecializationFilter(karakter.harcosSpecializaciok, karakter.szint))[0].Id + harcosSpecializaciok = [...harcosSpecializaciok, nextPickableFegyverId] } let kalozKritikus = karakter.kalozKritikus if(karakter.osztaly === Osztaly.Kaloz && szint % 3 === 0) { - kalozKritikus = [...kalozKritikus, "szablya"] + const nextPickableFegyverId = AllowedFegyver(Osztaly.Kaloz, []).filter(PickableSpecializationFilter(karakter.kalozKritikus, szint))[0].Id + kalozKritikus = [...kalozKritikus, nextPickableFegyverId] } changeKarakter({...karakter, szint, hpRolls, tulajdonsagNovelesek, harcosSpecializaciok, kalozKritikus}) }