mirror of
https://github.com/morbalint/kemkas.git
synced 2026-07-17 19:03:46 +00:00
add harcos fegyver specializacio
This commit is contained in:
@@ -5,10 +5,9 @@
|
|||||||
- PDF pretty: Tamadas bonuszok +10/+5
|
- PDF pretty: Tamadas bonuszok +10/+5
|
||||||
|
|
||||||
## Level up
|
## Level up
|
||||||
- Faji szint korlatok
|
|
||||||
- Harcos fegyver specializáció választás szintlépéskor (free text)
|
|
||||||
- Kalóz kritikus fegyver választás szintlépéskor (free text)
|
- Kalóz kritikus fegyver választás szintlépéskor (free text)
|
||||||
- Tolvaj 9.ik szinttől tiltott képzettségek
|
- Tolvaj 9.ik szinttől tiltott képzettségek
|
||||||
|
- multiclass characters
|
||||||
|
|
||||||
## PDF
|
## PDF
|
||||||
- specialis kepessegek 2ik oldalra nyomtatasa
|
- specialis kepessegek 2ik oldalra nyomtatasa
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ function UjMento(props : {tipus: MentoTipus, ujMentok: Mentok, regiMentok: Mento
|
|||||||
}
|
}
|
||||||
|
|
||||||
function BasicNewLevel(props: {
|
function BasicNewLevel(props: {
|
||||||
karakter: KarakterInputs
|
karakter: Pick<KarakterInputs, 'osztaly' | 'tulajdonsagok' | 'hpRolls'>
|
||||||
szint: number
|
szint: number
|
||||||
changeRolledHP: (hp: number) => void,
|
changeRolledHP: (hp: number) => void,
|
||||||
}) {
|
}) {
|
||||||
@@ -45,9 +45,6 @@ function BasicNewLevel(props: {
|
|||||||
const isTBincreased = TBdiff.length > 0 && TBdiff.some(x => x > 0)
|
const isTBincreased = TBdiff.length > 0 && TBdiff.some(x => x > 0)
|
||||||
|
|
||||||
return <>
|
return <>
|
||||||
<div className='row'>
|
|
||||||
<h5 className='col align-self-center'>{szint}. Szint</h5>
|
|
||||||
</div>
|
|
||||||
<div className='row'>
|
<div className='row'>
|
||||||
<div className='col-lg-6'>
|
<div className='col-lg-6'>
|
||||||
<div className='row m-2'>
|
<div className='row m-2'>
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
import React from "react";
|
||||||
|
|
||||||
|
function HarcosFegyverSpecializacio(props: {specialization: string, existingSpecializations: string[], changeSpecialization: (specialization: string) => void }) {
|
||||||
|
const {specialization, existingSpecializations, changeSpecialization} = props
|
||||||
|
const hasError = existingSpecializations.filter(x => x === specialization).length > 1
|
||||||
|
return <>
|
||||||
|
<div className='row m-2'>
|
||||||
|
<label className='col-md-2 col-sm-3 col-form-label' >Fegyver specializáció</label>
|
||||||
|
<input className='col form-control'
|
||||||
|
value={specialization}
|
||||||
|
onChange={(e) => changeSpecialization(e.target.value)}/>
|
||||||
|
{hasError && <span className='form-field-error'>Már választottad ezt a specializaciót!</span>}
|
||||||
|
</div>
|
||||||
|
</>
|
||||||
|
}
|
||||||
|
|
||||||
|
export default HarcosFegyverSpecializacio
|
||||||
@@ -35,10 +35,8 @@ function InternalKepzettsegekSelector(props: {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return <>
|
return <>
|
||||||
<div className='row'>
|
<div className='row m-2'>
|
||||||
<div className='col-lg-2 col-md-12'>
|
<label className='col-lg-2 col-md-12 col-form-label'>{title}</label>
|
||||||
<label className='col-form-label text-body-emphasis'>{title}</label>
|
|
||||||
</div>
|
|
||||||
<div className='col'>
|
<div className='col'>
|
||||||
{klist.map((idx) =>
|
{klist.map((idx) =>
|
||||||
<KepzettsegSelector
|
<KepzettsegSelector
|
||||||
@@ -64,7 +62,7 @@ function KarakterKepzettsegek (props: {
|
|||||||
}) {
|
}) {
|
||||||
const { kepzettsegek, numberOfKepzettsegek, getKepzettsegListaN, changeKepzettsegek, tolvajKepzettsegek, changeTolvajKepzettsegek} = props
|
const { kepzettsegek, numberOfKepzettsegek, getKepzettsegListaN, changeKepzettsegek, tolvajKepzettsegek, changeTolvajKepzettsegek} = props
|
||||||
|
|
||||||
// TODO: Eszakinak es Kaloznak hajozas, Birodalminak Alikmia, vagy Meregkeveres, Etuniainak Lovaglas
|
// TODO: Birodalmi tolvajnal az Alikmia, vagy Meregkeveres kezelese
|
||||||
|
|
||||||
const getTolvajKepzettsegListaN = (n: number) : Kepzettseg[] => {
|
const getTolvajKepzettsegListaN = (n: number) : Kepzettseg[] => {
|
||||||
const tolvajKepzettsegekWithoutN = [...tolvajKepzettsegek.slice(0, n), ...tolvajKepzettsegek.slice(n+1)]
|
const tolvajKepzettsegekWithoutN = [...tolvajKepzettsegek.slice(0, n), ...tolvajKepzettsegek.slice(n+1)]
|
||||||
|
|||||||
@@ -0,0 +1,68 @@
|
|||||||
|
import React from "react";
|
||||||
|
import {KarakterInputs} from "../domain-models/karakter";
|
||||||
|
import BasicNewLevel from "./BasicNewLevel";
|
||||||
|
import TulajdonsagNoveles from "./TulajdonsagNoveles";
|
||||||
|
import {Tulajdonsag, TulajdonsagokTotal} from "../domain-models/tulajdonsag";
|
||||||
|
import {arraySetN} from "../util";
|
||||||
|
import {Osztaly} from "../domain-models/osztaly";
|
||||||
|
import HarcosFegyverSpecializacio from "./HarcosFegyverSpecializacio";
|
||||||
|
|
||||||
|
function LevelUp(props: {szint: number, karakter: KarakterInputs, changeTulajdonsagNoveles: (t: Tulajdonsag) => void, changeRolledHP: (rolledHP: number) => void, changeHarcosSpec: (spec: string) => void}) {
|
||||||
|
const {szint, karakter, changeTulajdonsagNoveles, changeRolledHP, changeHarcosSpec} = props
|
||||||
|
|
||||||
|
const specializationIndex = Math.floor((szint-1) / 2)
|
||||||
|
console.log('Specialization index: ' + specializationIndex.toString())
|
||||||
|
const specialization = karakter.harcosSpecializaciok[specializationIndex]
|
||||||
|
console.log(specialization)
|
||||||
|
|
||||||
|
return <div key={`level-up-${szint}`}>
|
||||||
|
<div className='row mt-3'>
|
||||||
|
<h5 className='col align-self-center'>{szint}. Szint</h5>
|
||||||
|
</div>
|
||||||
|
{szint % 4 === 0 && <TulajdonsagNoveles
|
||||||
|
tulajdonsagok={karakter.tulajdonsagok}
|
||||||
|
szint={szint}
|
||||||
|
tulajdonsagNovelesek={karakter.tulajdonsagNovelesek}
|
||||||
|
changeTulajdonsagNoveles={changeTulajdonsagNoveles}
|
||||||
|
/>}
|
||||||
|
<BasicNewLevel
|
||||||
|
szint={szint}
|
||||||
|
karakter={karakter}
|
||||||
|
changeRolledHP={changeRolledHP}
|
||||||
|
/>
|
||||||
|
{karakter.osztaly === Osztaly.Harcos && szint % 2 === 1 &&
|
||||||
|
<HarcosFegyverSpecializacio specialization={specialization} existingSpecializations={karakter.harcosSpecializaciok} changeSpecialization={changeHarcosSpec} />}
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
|
||||||
|
export function LevelUps(props: {karakter: KarakterInputs, changeKarakter: (inputs: KarakterInputs) => void}){
|
||||||
|
const {karakter, changeKarakter} = props;
|
||||||
|
|
||||||
|
const tulajdonsagokAtSzint = (szint: number) => TulajdonsagokTotal({...karakter, tulajdonsagNovelesek: karakter.tulajdonsagNovelesek.slice(0, Math.floor(szint / 4))})
|
||||||
|
|
||||||
|
const changeRolledHPAtSzint = (szint: number) => (newHProll: number) => {
|
||||||
|
changeKarakter({...karakter, hpRolls: arraySetN(karakter.hpRolls, szint-2, newHProll)})
|
||||||
|
console.log(karakter)
|
||||||
|
}
|
||||||
|
const changeTulajdonsagNovelesAtSzint = (szint: number) => (t: Tulajdonsag) => { changeKarakter({...karakter, tulajdonsagNovelesek: arraySetN(karakter.tulajdonsagNovelesek, Math.floor((szint / 4)-1), t)}) }
|
||||||
|
|
||||||
|
const changeHarcosSpecializacioAtSzint = (szint: number) => (spec: string) => {
|
||||||
|
changeKarakter({...karakter, harcosSpecializaciok: arraySetN(karakter.harcosSpecializaciok, Math.floor((szint-1) / 2), spec)})
|
||||||
|
}
|
||||||
|
|
||||||
|
return <>
|
||||||
|
{karakter.hpRolls.map((_, i) => i+2).map(szint => <>
|
||||||
|
<LevelUp
|
||||||
|
key={`level-up-${szint}`}
|
||||||
|
szint={szint}
|
||||||
|
karakter={{...karakter, tulajdonsagok: tulajdonsagokAtSzint(szint)}}
|
||||||
|
changeTulajdonsagNoveles={changeTulajdonsagNovelesAtSzint(szint)}
|
||||||
|
changeRolledHP={changeRolledHPAtSzint(szint)}
|
||||||
|
changeHarcosSpec={changeHarcosSpecializacioAtSzint(szint)}
|
||||||
|
/>
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
</>
|
||||||
|
}
|
||||||
|
|
||||||
|
export default LevelUps
|
||||||
@@ -1,5 +1,12 @@
|
|||||||
import React from "react";
|
import React from "react";
|
||||||
import {KarakterTulajdonsagok, Tulajdonsag, TulajdonsagIDs, TulajdonsagLabel} from "../domain-models/tulajdonsag";
|
import {
|
||||||
|
KarakterTulajdonsagok,
|
||||||
|
Modifier,
|
||||||
|
Tulajdonsag,
|
||||||
|
TulajdonsagIDs,
|
||||||
|
TulajdonsagLabel
|
||||||
|
} from "../domain-models/tulajdonsag";
|
||||||
|
import {SignedNumberToText} from "./Helpers";
|
||||||
|
|
||||||
function TulajdonsagNoveles(props: {tulajdonsagok: KarakterTulajdonsagok, szint: number, tulajdonsagNovelesek: Tulajdonsag[], changeTulajdonsagNoveles: (tulajdonsag: Tulajdonsag) => void}) {
|
function TulajdonsagNoveles(props: {tulajdonsagok: KarakterTulajdonsagok, szint: number, tulajdonsagNovelesek: Tulajdonsag[], changeTulajdonsagNoveles: (tulajdonsag: Tulajdonsag) => void}) {
|
||||||
const {tulajdonsagok, szint, tulajdonsagNovelesek, changeTulajdonsagNoveles} = props
|
const {tulajdonsagok, szint, tulajdonsagNovelesek, changeTulajdonsagNoveles} = props
|
||||||
@@ -21,7 +28,7 @@ function TulajdonsagNoveles(props: {tulajdonsagok: KarakterTulajdonsagok, szint:
|
|||||||
<div className='col-lg-6'>
|
<div className='col-lg-6'>
|
||||||
<div className='row m-2'>
|
<div className='row m-2'>
|
||||||
<label className='col-sm-6 col-8 col-form-label'>Új {TulajdonsagLabel(tulajdonsagNoveles)}{' '}</label>
|
<label className='col-sm-6 col-8 col-form-label'>Új {TulajdonsagLabel(tulajdonsagNoveles)}{' '}</label>
|
||||||
<span className='col col-form-label'>{tulajdonsagok[tulajdonsagNoveles]}</span>
|
<span className='col col-form-label'>{tulajdonsagok[tulajdonsagNoveles]} ({SignedNumberToText(Modifier(tulajdonsagok[tulajdonsagNoveles]))})</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ export interface KarakterInputs {
|
|||||||
szint: number
|
szint: number
|
||||||
hpRolls: number[],
|
hpRolls: number[],
|
||||||
tulajdonsagNovelesek: Tulajdonsag[],
|
tulajdonsagNovelesek: Tulajdonsag[],
|
||||||
|
harcosSpecializaciok: string[],
|
||||||
|
kalozKritikus: string[],
|
||||||
}
|
}
|
||||||
|
|
||||||
export const KarakterDefaults: KarakterInputs = {
|
export const KarakterDefaults: KarakterInputs = {
|
||||||
@@ -30,5 +32,7 @@ export const KarakterDefaults: KarakterInputs = {
|
|||||||
kepzettsegek: [],
|
kepzettsegek: [],
|
||||||
szint: 1,
|
szint: 1,
|
||||||
hpRolls: [],
|
hpRolls: [],
|
||||||
tulajdonsagNovelesek: []
|
tulajdonsagNovelesek: [],
|
||||||
|
harcosSpecializaciok: ['szablya'],
|
||||||
|
kalozKritikus: [],
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import {dAny} from "./kockak";
|
|||||||
import {TulajdonsagIDs, TulajdonsagokTotal} from "./tulajdonsag";
|
import {TulajdonsagIDs, TulajdonsagokTotal} from "./tulajdonsag";
|
||||||
import {KarakterInputs} from "./karakter";
|
import {KarakterInputs} from "./karakter";
|
||||||
import {GetFajDetails} from "./faj";
|
import {GetFajDetails} from "./faj";
|
||||||
|
import {Osztaly} from "./osztaly";
|
||||||
|
|
||||||
|
|
||||||
export function LevelUp(karakter: KarakterInputs, changeKarakter: (input: KarakterInputs) => void) {
|
export function LevelUp(karakter: KarakterInputs, changeKarakter: (input: KarakterInputs) => void) {
|
||||||
@@ -21,7 +22,11 @@ export function LevelUp(karakter: KarakterInputs, changeKarakter: (input: Karakt
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
changeKarakter({...karakter, szint, hpRolls, tulajdonsagNovelesek})
|
let harcosSpecializaciok = karakter.harcosSpecializaciok
|
||||||
|
if(karakter.osztaly === Osztaly.Harcos && szint % 2 === 1) {
|
||||||
|
harcosSpecializaciok = [...harcosSpecializaciok, "szablya"]
|
||||||
|
}
|
||||||
|
changeKarakter({...karakter, szint, hpRolls, tulajdonsagNovelesek, harcosSpecializaciok})
|
||||||
}
|
}
|
||||||
|
|
||||||
export function LevelDown(karakter: KarakterInputs, changeKarakter: (input: KarakterInputs) => void) {
|
export function LevelDown(karakter: KarakterInputs, changeKarakter: (input: KarakterInputs) => void) {
|
||||||
@@ -31,7 +36,11 @@ export function LevelDown(karakter: KarakterInputs, changeKarakter: (input: Kara
|
|||||||
}
|
}
|
||||||
const szint = karakter.szint - 1
|
const szint = karakter.szint - 1
|
||||||
const hpRolls = karakter.hpRolls.slice(0, -1)
|
const hpRolls = karakter.hpRolls.slice(0, -1)
|
||||||
changeKarakter({...karakter, szint, hpRolls, tulajdonsagNovelesek})
|
let harcosSpecializaciok = karakter.harcosSpecializaciok
|
||||||
|
if (karakter.osztaly === Osztaly.Harcos && szint % 2 === 0) {
|
||||||
|
harcosSpecializaciok = harcosSpecializaciok.slice(0, -1)
|
||||||
|
}
|
||||||
|
changeKarakter({...karakter, szint, hpRolls, tulajdonsagNovelesek, harcosSpecializaciok})
|
||||||
}
|
}
|
||||||
|
|
||||||
export function CanLevelUp(karakter: Pick<KarakterInputs, 'szint' | 'faj' | 'osztaly'>): boolean {
|
export function CanLevelUp(karakter: Pick<KarakterInputs, 'szint' | 'faj' | 'osztaly'>): boolean {
|
||||||
|
|||||||
@@ -6,35 +6,31 @@ import FajSelector from "../components/FajSelector";
|
|||||||
import Tulajdonsagok from "../components/Tulajdonsagok";
|
import Tulajdonsagok from "../components/Tulajdonsagok";
|
||||||
import OsztalySelector from "../components/OsztalySelector";
|
import OsztalySelector from "../components/OsztalySelector";
|
||||||
import KarakterKepzettsegek from "../components/KarakterKepzettsegek";
|
import KarakterKepzettsegek from "../components/KarakterKepzettsegek";
|
||||||
import {
|
import {KarakterTulajdonsagok, TulajdonsagokFajjal} from "../domain-models/tulajdonsag";
|
||||||
KarakterTulajdonsagok,
|
|
||||||
Tulajdonsag,
|
|
||||||
TulajdonsagokFajjal,
|
|
||||||
TulajdonsagokTotal
|
|
||||||
} from "../domain-models/tulajdonsag";
|
|
||||||
import MasodlagosErtekek from "../components/MasodlagosErtekek";
|
import MasodlagosErtekek from "../components/MasodlagosErtekek";
|
||||||
import {
|
import {
|
||||||
AvailableKezpettsegList, GetKepzettsegListaN,
|
AvailableKezpettsegList,
|
||||||
GetNumberOfKepzettsegek, KepzettsegId, SetDefaultKepzettsegek,
|
GetKepzettsegListaN,
|
||||||
|
GetNumberOfKepzettsegek,
|
||||||
|
KepzettsegId,
|
||||||
|
SetDefaultKepzettsegek,
|
||||||
SetDefaultTolvajKepzettsegek,
|
SetDefaultTolvajKepzettsegek,
|
||||||
} from "../domain-models/kepzettsegek";
|
} from "../domain-models/kepzettsegek";
|
||||||
import {CreatePDF} from "../pdf/character.pdf";
|
import {CreatePDF} from "../pdf/character.pdf";
|
||||||
import {KarakterDefaults} from "../domain-models/karakter";
|
import {KarakterDefaults} from "../domain-models/karakter";
|
||||||
import BasicNewLevel from "../components/BasicNewLevel";
|
|
||||||
import {CalculateMasodlagosErtekek} from "../domain-models/masodlagos_ertekek";
|
import {CalculateMasodlagosErtekek} from "../domain-models/masodlagos_ertekek";
|
||||||
import {KarakterInputToPdfView} from "../pdf/karakter_pdf_view";
|
import {KarakterInputToPdfView} from "../pdf/karakter_pdf_view";
|
||||||
import {arraySetN} from "../util";
|
|
||||||
import TulajdonsagNoveles from "../components/TulajdonsagNoveles";
|
|
||||||
import JellemSelector from "../components/JellemSelector";
|
import JellemSelector from "../components/JellemSelector";
|
||||||
import {LevelUp, LevelDown, CanLevelUp} from "../domain-models/level";
|
import {CanLevelUp, LevelDown, LevelUp} from "../domain-models/level";
|
||||||
import {Card} from "react-bootstrap";
|
import {Card} from "react-bootstrap";
|
||||||
|
import LevelUps from "../components/LevelUps";
|
||||||
|
import HarcosFegyverSpecializacio from "../components/HarcosFegyverSpecializacio";
|
||||||
|
|
||||||
function CreateCharacterPage() {
|
function CreateCharacterPage() {
|
||||||
|
|
||||||
let [karakter, changeKarakter] = useState(KarakterDefaults)
|
let [karakter, changeKarakter] = useState(KarakterDefaults)
|
||||||
|
|
||||||
const tulajdonsagokFajjal = TulajdonsagokFajjal(karakter.tulajdonsagok, karakter.faj)
|
const tulajdonsagokFajjal = TulajdonsagokFajjal(karakter.tulajdonsagok, karakter.faj)
|
||||||
const tulajdonsagokTotal = TulajdonsagokTotal(karakter)
|
|
||||||
|
|
||||||
const changeKepzettseg = (k: KepzettsegId[]) => changeKarakter({...karakter, kepzettsegek: k})
|
const changeKepzettseg = (k: KepzettsegId[]) => changeKarakter({...karakter, kepzettsegek: k})
|
||||||
const changeTolvajKepzettseg = (tk?: KepzettsegId[]) => changeKarakter({...karakter, tolvajKepzettsegek: tk})
|
const changeTolvajKepzettseg = (tk?: KepzettsegId[]) => changeKarakter({...karakter, tolvajKepzettsegek: tk})
|
||||||
@@ -42,13 +38,6 @@ function CreateCharacterPage() {
|
|||||||
SetDefaultKepzettsegek({...karakter, tulajdonsagok: tulajdonsagokFajjal}, changeKepzettseg)
|
SetDefaultKepzettsegek({...karakter, tulajdonsagok: tulajdonsagokFajjal}, changeKepzettseg)
|
||||||
const availableKepzettsegList = AvailableKezpettsegList(karakter.osztaly)
|
const availableKepzettsegList = AvailableKezpettsegList(karakter.osztaly)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const changeHProllAtSzint = (szint: number) => (newHProll: number) => {
|
|
||||||
changeKarakter({...karakter, hpRolls: arraySetN(karakter.hpRolls, szint-2, newHProll)})
|
|
||||||
console.log(karakter)
|
|
||||||
}
|
|
||||||
|
|
||||||
const levelUp = () => LevelUp(karakter, changeKarakter)
|
const levelUp = () => LevelUp(karakter, changeKarakter)
|
||||||
const levelDown = () => LevelDown(karakter, changeKarakter)
|
const levelDown = () => LevelDown(karakter, changeKarakter)
|
||||||
|
|
||||||
@@ -108,8 +97,16 @@ function CreateCharacterPage() {
|
|||||||
<OsztalySelector
|
<OsztalySelector
|
||||||
currentFaj={karakter.faj}
|
currentFaj={karakter.faj}
|
||||||
currentOsztaly={karakter.osztaly}
|
currentOsztaly={karakter.osztaly}
|
||||||
changeOsztaly={(o: Osztaly) => changeKarakter({...karakter, osztaly: o})}
|
changeOsztaly={(o: Osztaly) => changeKarakter({...karakter, osztaly: o, harcosSpecializaciok: o === Osztaly.Harcos ? ['szablya'] : []})}
|
||||||
/>
|
/>
|
||||||
|
{karakter.osztaly === Osztaly.Harcos &&
|
||||||
|
<div className='mb-6'>
|
||||||
|
<HarcosFegyverSpecializacio
|
||||||
|
specialization={karakter.harcosSpecializaciok[0]}
|
||||||
|
existingSpecializations={karakter.harcosSpecializaciok}
|
||||||
|
changeSpecialization={(spec: string) => changeKarakter({...karakter, harcosSpecializaciok: [spec, ...karakter.harcosSpecializaciok.slice(1)]})}
|
||||||
|
/>
|
||||||
|
</div>}
|
||||||
<KarakterKepzettsegek
|
<KarakterKepzettsegek
|
||||||
getKepzettsegListaN={GetKepzettsegListaN(karakter)}
|
getKepzettsegListaN={GetKepzettsegListaN(karakter)}
|
||||||
numberOfKepzettsegek={GetNumberOfKepzettsegek(tulajdonsagokFajjal.t_int, karakter.faj, availableKepzettsegList.length)}
|
numberOfKepzettsegek={GetNumberOfKepzettsegek(tulajdonsagokFajjal.t_int, karakter.faj, availableKepzettsegList.length)}
|
||||||
@@ -122,22 +119,7 @@ function CreateCharacterPage() {
|
|||||||
<hr />
|
<hr />
|
||||||
<MasodlagosErtekek {...CalculateMasodlagosErtekek({...karakter, tulajdonsagok: tulajdonsagokFajjal, szint: 1, hpRolls: []})} />
|
<MasodlagosErtekek {...CalculateMasodlagosErtekek({...karakter, tulajdonsagok: tulajdonsagokFajjal, szint: 1, hpRolls: []})} />
|
||||||
|
|
||||||
{karakter.hpRolls.map((_, i) => i+2).map(szint => <>
|
<LevelUps key={'level-ups'} karakter={karakter} changeKarakter={changeKarakter} />
|
||||||
<BasicNewLevel
|
|
||||||
key={`level-${szint}`}
|
|
||||||
szint={szint}
|
|
||||||
karakter={karakter}
|
|
||||||
changeRolledHP={changeHProllAtSzint(szint)}
|
|
||||||
/>
|
|
||||||
{szint % 4 === 0 && <TulajdonsagNoveles
|
|
||||||
key={`tulajdonsag-noveles-${szint}`}
|
|
||||||
tulajdonsagok={tulajdonsagokTotal}
|
|
||||||
szint={szint}
|
|
||||||
tulajdonsagNovelesek={karakter.tulajdonsagNovelesek}
|
|
||||||
changeTulajdonsagNoveles={(t: Tulajdonsag) => { changeKarakter({...karakter, tulajdonsagNovelesek: arraySetN(karakter.tulajdonsagNovelesek, Math.floor((szint / 4)-1), t)}) }}
|
|
||||||
/>}
|
|
||||||
</>
|
|
||||||
)}
|
|
||||||
|
|
||||||
<div className='d-grid gap-2 m-5'>
|
<div className='d-grid gap-2 m-5'>
|
||||||
{canLevelUp && <button className='btn btn-dark btn-lg' type='button' onClick={levelUp}>Szintlépés! ⇧</button> }
|
{canLevelUp && <button className='btn btn-dark btn-lg' type='button' onClick={levelUp}>Szintlépés! ⇧</button> }
|
||||||
|
|||||||
Reference in New Issue
Block a user