import React from "react"; import KepzettsegSelector from "./KepzettsegSelector"; import { Kepzettseg, Kepzettsegek, KepzettsegId, TolvajKepzettsegList, } from "../domain-models/kepzettsegek"; import {arraySetN} from "../util"; function InternalKepzettsegekSelector(props: { title: string, numberOfKepzettseg: number, getKepzettsegListaN: (n: number) => Kepzettseg[], kepzettsegek: KepzettsegId[], changeKepzettsegek: (newKepzettsegek: KepzettsegId[]) => void }) { const {title, numberOfKepzettseg, getKepzettsegListaN, kepzettsegek, changeKepzettsegek} = props const klist = Array.from(new Array(numberOfKepzettseg).keys()) const preCalculated: { kepzettsegek: Kepzettseg[], changeKepzettseg: (newKepzettseg: KepzettsegId) => void, selected: Kepzettseg, }[] = []; for (let i = 0; i < numberOfKepzettseg; i++) { preCalculated.push({ kepzettsegek: getKepzettsegListaN(i), selected: Kepzettsegek[kepzettsegek[i]], changeKepzettseg: (newKepzettseg: KepzettsegId) => changeKepzettsegek(arraySetN(kepzettsegek, i, newKepzettseg)) }) } return <>
{klist.map((idx) => ) }
} function KarakterKepzettsegek (props: { availableKepzettsegList: Kepzettseg[], numberOfKepzettsegek: number kepzettsegek: KepzettsegId[], changeKepzettsegek: (newKepzettsegek: KepzettsegId[]) => void tolvajKepzettsegek: KepzettsegId[], changeTolvajKepzettsegek: (newKepzettsegek: KepzettsegId[]) => void }) { const { kepzettsegek, numberOfKepzettsegek, availableKepzettsegList, changeKepzettsegek, tolvajKepzettsegek, changeTolvajKepzettsegek} = props // TODO: Eszakinak es Kaloznak hajozas, Birodalminak Alikmia, vagy Meregkeveres, Etuniainak Lovaglas const getKepzettsegListaN = (n: number) => { const kepzettsegekWithoutN = [...kepzettsegek.slice(0, n), ...kepzettsegek.slice(n+1)] return availableKepzettsegList.filter(x => !kepzettsegekWithoutN.includes(x.Id) && !tolvajKepzettsegek.includes(x.Id)) } const getTolvajKepzettsegListaN = (n: number) : Kepzettseg[] => { const tolvajKepzettsegekWithoutN = [...tolvajKepzettsegek.slice(0, n), ...tolvajKepzettsegek.slice(n+1)] return TolvajKepzettsegList.filter(x => !kepzettsegek.includes(x.Id) && !tolvajKepzettsegekWithoutN.includes(x.Id)) } return <> {tolvajKepzettsegek.length > 0 && } } export default KarakterKepzettsegek