From 542c845c23ce30392be79486450c38123351b5c0 Mon Sep 17 00:00:00 2001 From: Balint Morasz Date: Sun, 22 Oct 2023 23:59:54 +0200 Subject: [PATCH] allow harcos to wield specialized exotic weapon --- src/components/Felszereles.tsx | 12 ++++++++---- src/components/KalozKritikus.tsx | 5 +++-- src/domain-models/allowed-fegyver.ts | 24 ++++++++++++++++++++++++ src/domain-models/fegyver.json | 2 +- src/domain-models/osztaly.ts | 22 +--------------------- src/pages/CreateCharacter.tsx | 9 +++++---- tsconfig.json | 5 +++-- 7 files changed, 45 insertions(+), 34 deletions(-) create mode 100644 src/domain-models/allowed-fegyver.ts diff --git a/src/components/Felszereles.tsx b/src/components/Felszereles.tsx index 6572a14..84e3d4b 100644 --- a/src/components/Felszereles.tsx +++ b/src/components/Felszereles.tsx @@ -1,11 +1,12 @@ import React from "react"; import {Fegyver, KarakterFelszereles, PancelTypeLabel} from "../domain-models/felszereles"; -import {Osztaly, OsztalyAllowedFegyver} from '../domain-models/osztaly' +import {Osztaly} from '../domain-models/osztaly' import {AllowedPancelTypes} from '../domain-models/allowed-pancel-types' import pancelok from '../domain-models/pancel.json' import pajzsok from '../domain-models/pajzs.json' import fegyverek from '../domain-models/fegyver.json' import {arraySetN} from "../util"; +import {AllowedFegyver} from "../domain-models/allowed-fegyver"; export function FegyverLabel(fegyver: Fegyver): string { return `${fegyver.Name}${fegyver.Ketkezes ? '+' : ''}${fegyver.Egzotikus ? '(E)' : ''} | ${ @@ -15,13 +16,13 @@ export function FegyverLabel(fegyver: Fegyver): string { fegyver.Range > 0 ? ` | táv: ${fegyver.Range}` : ''}` } -function Felszereles(props: {felszereles: KarakterFelszereles, changeFelszereles: (felszereles: KarakterFelszereles) => void, osztaly: Osztaly}) { - const { felszereles, changeFelszereles, osztaly } = props; +function Felszereles(props: {felszereles: KarakterFelszereles, changeFelszereles: (felszereles: KarakterFelszereles) => void, osztaly: Osztaly, harcosSpec: Fegyver['Id'][]}) { + const { felszereles, changeFelszereles, osztaly, harcosSpec } = props; const allowedPancelTypes = AllowedPancelTypes([osztaly]) const valasztottFegyverek = felszereles.fegyverIDk .map((id, idx) => ({idx, fegyver: fegyverek.data.find(f => f.Id === id)})).filter((x) => x.fegyver != null).map(({idx, fegyver}) => ({idx, fegyver: fegyver as Fegyver})) - const osztalyAllowedFegyverek = OsztalyAllowedFegyver(osztaly) + const osztalyAllowedFegyverek = AllowedFegyver(osztaly, harcosSpec) const allowedFegyverek = [...osztalyAllowedFegyverek, ...valasztottFegyverek.filter(({idx, fegyver}) => !osztalyAllowedFegyverek.map(f => f.Id).includes(fegyver.Id)).map(({fegyver}) => fegyver)] const changeFegyver = (idx: number, newID: string) => { const found = fegyverek.data.find(x => x.Id === newID) @@ -33,6 +34,9 @@ function Felszereles(props: {felszereles: KarakterFelszereles, changeFelszereles } return <> +
+
Felszerelés
+