import React from "react"; import {ChangeOsztalyAtSzint, Karakter2E} from "../domain-models/karakter2E"; import BasicNewLevel from "./BasicNewLevel"; import TulajdonsagNoveles from "./TulajdonsagNoveles"; import {Tulajdonsag2E, TulajdonsagokTotal} from "../domain-models/tulajdonsag2E"; import {arraySetN} from "../../util"; import {Osztaly2E} from "../domain-models/osztaly2E"; import KalozKritikus from "./KalozKritikus"; import HarcosFegyverSpecializacio from "./HarcosFegyverSpec"; import MultiClassOsztalySelector2E from "./MultiClassOsztalySelector2E"; import {getClassLevels} from "../domain-models/szintlepes"; import KepzettsegSelector from "../display-components/KepzettsegSelector2E"; import {GetAvailableKepzettsegek} from "../domain-models/kepzettsegek2E"; import { Kepzettsegek, KepzettsegId } from "../domain-models/kepzettsegek2E.data" function LevelUp(props: { szint: number, osztaly: Osztaly2E, karakter: Karakter2E, changeTulajdonsagNoveles: (t: Tulajdonsag2E) => void, changeRolledHP: (rolledHP: number) => void, changeKalozKritikus: (krit: string) => void, changeOsztaly: (osztaly: Osztaly2E) => void, changeExtraTolvajKepzettseg: (kepzettseg: KepzettsegId) => void, }) { const { szint, osztaly, karakter, changeTulajdonsagNoveles, changeRolledHP, changeKalozKritikus, changeOsztaly, changeExtraTolvajKepzettseg } = props const classLevels = getClassLevels(karakter.szintlepesek) const harcosSzint = classLevels[Osztaly2E.Harcos] const kalozSzint = classLevels[Osztaly2E.Tengeresz] const tolvajSzint = classLevels[Osztaly2E.Tolvaj] const szintlepes = karakter.szintlepesek[szint-1]; return

{szint}. Szint

{osztaly !== Osztaly2E.Druida && } {szint % 4 === 0 && } {osztaly === Osztaly2E.Harcos && harcosSzint % 2 === 1 && } {osztaly === Osztaly2E.Tengeresz && kalozSzint % 3 === 0 && x.kalozKritikus)} changeKrit={changeKalozKritikus} szint={kalozSzint} /> } {osztaly === Osztaly2E.Tolvaj && (tolvajSzint === 5 || tolvajSzint === 9) && szintlepes.tolvajExtraKepzettseg != null &&
}
} export function LevelUps(props: {karakter: Karakter2E, changeKarakter: (inputs: Karakter2E) => void}){ const {karakter, changeKarakter} = props; const tulajdonsagokAtSzint = (szint: number) => TulajdonsagokTotal({...karakter, szintlepesek: karakter.szintlepesek.slice(0, szint)}) const changeRolledHPAtSzint = (szint: number) => (newHProll: number) => { changeKarakter({...karakter, szintlepesek: arraySetN(karakter.szintlepesek, szint-1, {...karakter.szintlepesek[szint-1], HProll: newHProll})}) console.log(karakter) } const changeTulajdonsagNovelesAtSzint = (szint: number) => { return (t: Tulajdonsag2E) => { changeKarakter({...karakter, szintlepesek: arraySetN(karakter.szintlepesek, szint-1, { ...karakter.szintlepesek[szint-1], tulajdonsagNoveles: t }) }) }; } const changeKalozKritikusAtSzint = (szint: number) => { return (krit: string) => { changeKarakter({ ...karakter, szintlepesek: arraySetN(karakter.szintlepesek, szint-1, { ...karakter.szintlepesek[szint-1], kalozKritikus: krit }) }) }; } const changeExtraTolvajKepzettseg = (szint: number) => { return (k: KepzettsegId) => { changeKarakter({ ...karakter, szintlepesek: arraySetN(karakter.szintlepesek, szint-1, { ...karakter.szintlepesek[szint-1], tolvajExtraKepzettseg: k, }) }) } } const levels = karakter.szintlepesek.map((_, i) => i+1); return <> {levels.slice(1).map(szint => changeKarakter(ChangeOsztalyAtSzint(karakter, o, szint))} changeExtraTolvajKepzettseg={changeExtraTolvajKepzettseg(szint)} /> )} } export default LevelUps