add harcos fegyver specializacio

This commit is contained in:
2023-10-05 21:04:42 +02:00
parent 18ab856ed9
commit dbd77a9fcf
9 changed files with 134 additions and 53 deletions
+19 -37
View File
@@ -6,35 +6,31 @@ import FajSelector from "../components/FajSelector";
import Tulajdonsagok from "../components/Tulajdonsagok";
import OsztalySelector from "../components/OsztalySelector";
import KarakterKepzettsegek from "../components/KarakterKepzettsegek";
import {
KarakterTulajdonsagok,
Tulajdonsag,
TulajdonsagokFajjal,
TulajdonsagokTotal
} from "../domain-models/tulajdonsag";
import {KarakterTulajdonsagok, TulajdonsagokFajjal} from "../domain-models/tulajdonsag";
import MasodlagosErtekek from "../components/MasodlagosErtekek";
import {
AvailableKezpettsegList, GetKepzettsegListaN,
GetNumberOfKepzettsegek, KepzettsegId, SetDefaultKepzettsegek,
AvailableKezpettsegList,
GetKepzettsegListaN,
GetNumberOfKepzettsegek,
KepzettsegId,
SetDefaultKepzettsegek,
SetDefaultTolvajKepzettsegek,
} from "../domain-models/kepzettsegek";
import {CreatePDF} from "../pdf/character.pdf";
import {KarakterDefaults} from "../domain-models/karakter";
import BasicNewLevel from "../components/BasicNewLevel";
import {CalculateMasodlagosErtekek} from "../domain-models/masodlagos_ertekek";
import {KarakterInputToPdfView} from "../pdf/karakter_pdf_view";
import {arraySetN} from "../util";
import TulajdonsagNoveles from "../components/TulajdonsagNoveles";
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 LevelUps from "../components/LevelUps";
import HarcosFegyverSpecializacio from "../components/HarcosFegyverSpecializacio";
function CreateCharacterPage() {
let [karakter, changeKarakter] = useState(KarakterDefaults)
const tulajdonsagokFajjal = TulajdonsagokFajjal(karakter.tulajdonsagok, karakter.faj)
const tulajdonsagokTotal = TulajdonsagokTotal(karakter)
const changeKepzettseg = (k: KepzettsegId[]) => changeKarakter({...karakter, kepzettsegek: k})
const changeTolvajKepzettseg = (tk?: KepzettsegId[]) => changeKarakter({...karakter, tolvajKepzettsegek: tk})
@@ -42,13 +38,6 @@ function CreateCharacterPage() {
SetDefaultKepzettsegek({...karakter, tulajdonsagok: tulajdonsagokFajjal}, changeKepzettseg)
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 levelDown = () => LevelDown(karakter, changeKarakter)
@@ -108,8 +97,16 @@ function CreateCharacterPage() {
<OsztalySelector
currentFaj={karakter.faj}
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
getKepzettsegListaN={GetKepzettsegListaN(karakter)}
numberOfKepzettsegek={GetNumberOfKepzettsegek(tulajdonsagokFajjal.t_int, karakter.faj, availableKepzettsegList.length)}
@@ -122,22 +119,7 @@ function CreateCharacterPage() {
<hr />
<MasodlagosErtekek {...CalculateMasodlagosErtekek({...karakter, tulajdonsagok: tulajdonsagokFajjal, szint: 1, hpRolls: []})} />
{karakter.hpRolls.map((_, i) => i+2).map(szint => <>
<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)}) }}
/>}
</>
)}
<LevelUps key={'level-ups'} karakter={karakter} changeKarakter={changeKarakter} />
<div className='d-grid gap-2 m-5'>
{canLevelUp && <button className='btn btn-dark btn-lg' type='button' onClick={levelUp}>Szintlépés! </button> }