add kaloz kritikus fegyverek
This commit is contained in:
@@ -3,18 +3,15 @@
|
|||||||
## Fixes
|
## Fixes
|
||||||
- Kötelező képezettségek - Birodalmi tolvaj
|
- Kötelező képezettségek - Birodalmi tolvaj
|
||||||
- PDF pretty: Tamadas bonuszok +10/+5
|
- PDF pretty: Tamadas bonuszok +10/+5
|
||||||
|
|
||||||
## Level up
|
|
||||||
- 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
|
## Features
|
||||||
- specialis kepessegek 2ik oldalra nyomtatasa
|
- specialis kepessegek 2ik oldalra nyomtatasa
|
||||||
|
- multiclass characters
|
||||||
|
|
||||||
## Epics
|
## Epics
|
||||||
- Backend
|
- Backend
|
||||||
- Varazslatok
|
- Varazslatok
|
||||||
- Felszerelés
|
- Felszerelés
|
||||||
- Klikkelésre dobás
|
|
||||||
- KéM 2.0-ra felkészülés
|
- KéM 2.0-ra felkészülés
|
||||||
|
- Klikkelésre dobás
|
||||||
|
|||||||
@@ -1,15 +1,25 @@
|
|||||||
import React from "react";
|
import React from "react";
|
||||||
|
|
||||||
function HarcosFegyverSpecializacio(props: {specialization: string, existingSpecializations: string[], changeSpecialization: (specialization: string) => void }) {
|
function HarcosFegyverSpecializacio(props: {
|
||||||
const {specialization, existingSpecializations, changeSpecialization} = props
|
specialization: string,
|
||||||
const hasError = existingSpecializations.filter(x => x === specialization).length > 1
|
existingSpecializations: string[],
|
||||||
|
changeSpecialization: (specialization: string) => void
|
||||||
|
szint: number
|
||||||
|
}) {
|
||||||
|
const {
|
||||||
|
specialization,
|
||||||
|
existingSpecializations,
|
||||||
|
changeSpecialization,
|
||||||
|
szint
|
||||||
|
} = props
|
||||||
|
const hasError = existingSpecializations.filter(x => x === specialization).length > (szint < 9 ? 1 : 2)
|
||||||
return <>
|
return <>
|
||||||
<div className='row m-2'>
|
<div className='row m-2'>
|
||||||
<label className='col-md-2 col-sm-3 col-form-label' >Fegyver specializáció</label>
|
<label className='col-md-2 col-sm-3 col-form-label' >Fegyver specializáció</label>
|
||||||
<input className='col form-control'
|
<input className='col form-control'
|
||||||
value={specialization}
|
value={specialization}
|
||||||
onChange={(e) => changeSpecialization(e.target.value)}/>
|
onChange={(e) => changeSpecialization(e.target.value)}/>
|
||||||
{hasError && <span className='form-field-error'>Már választottad ezt a specializaciót!</span>}
|
{hasError && <span className='form-field-error'>Már {szint < 9 ? '' : 'kétszer is'} választottad ezt a fegyvert!</span>}
|
||||||
</div>
|
</div>
|
||||||
</>
|
</>
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
import React from "react";
|
||||||
|
|
||||||
|
function KalozKritikus(props: {
|
||||||
|
krit: string,
|
||||||
|
existingKrits: string[],
|
||||||
|
changeKrit: (specialization: string) => void,
|
||||||
|
szint: number
|
||||||
|
}) {
|
||||||
|
const {
|
||||||
|
krit,
|
||||||
|
existingKrits,
|
||||||
|
changeKrit,
|
||||||
|
szint
|
||||||
|
} = props
|
||||||
|
const hasError = existingKrits.filter(x => x === krit).length > (szint < 9 ? 1 : 2)
|
||||||
|
return <>
|
||||||
|
<div className='row m-2'>
|
||||||
|
<label className='col-md-2 col-sm-3 col-form-label'>Kritikus</label>
|
||||||
|
<input className='col form-control'
|
||||||
|
value={krit}
|
||||||
|
onChange={(e) => changeKrit(e.target.value)}/>
|
||||||
|
{hasError && <span className='form-field-error'>Már {szint < 9 ? '' : 'kétszer is'} választottad ezt a fegyvert!</span>}
|
||||||
|
</div>
|
||||||
|
</>
|
||||||
|
}
|
||||||
|
|
||||||
|
export default KalozKritikus
|
||||||
@@ -6,14 +6,30 @@ import {Tulajdonsag, TulajdonsagokTotal} from "../domain-models/tulajdonsag";
|
|||||||
import {arraySetN} from "../util";
|
import {arraySetN} from "../util";
|
||||||
import {Osztaly} from "../domain-models/osztaly";
|
import {Osztaly} from "../domain-models/osztaly";
|
||||||
import HarcosFegyverSpecializacio from "./HarcosFegyverSpecializacio";
|
import HarcosFegyverSpecializacio from "./HarcosFegyverSpecializacio";
|
||||||
|
import KalozKritikus from "./KalozKritikus";
|
||||||
|
|
||||||
function LevelUp(props: {szint: number, karakter: KarakterInputs, changeTulajdonsagNoveles: (t: Tulajdonsag) => void, changeRolledHP: (rolledHP: number) => void, changeHarcosSpec: (spec: string) => void}) {
|
function LevelUp(props: {
|
||||||
const {szint, karakter, changeTulajdonsagNoveles, changeRolledHP, changeHarcosSpec} = props
|
szint: number,
|
||||||
|
karakter: KarakterInputs,
|
||||||
|
changeTulajdonsagNoveles: (t: Tulajdonsag) => void,
|
||||||
|
changeRolledHP: (rolledHP: number) => void,
|
||||||
|
changeHarcosSpec: (spec: string) => void,
|
||||||
|
changeKalozKritikus: (krit: string) => void,
|
||||||
|
}) {
|
||||||
|
const {
|
||||||
|
szint,
|
||||||
|
karakter,
|
||||||
|
changeTulajdonsagNoveles,
|
||||||
|
changeRolledHP,
|
||||||
|
changeHarcosSpec,
|
||||||
|
changeKalozKritikus,
|
||||||
|
} = props
|
||||||
|
|
||||||
const specializationIndex = Math.floor((szint-1) / 2)
|
const specializationIndex = Math.floor((szint-1) / 2)
|
||||||
console.log('Specialization index: ' + specializationIndex.toString())
|
console.log('Specialization index: ' + specializationIndex.toString())
|
||||||
const specialization = karakter.harcosSpecializaciok[specializationIndex]
|
const specialization = karakter.harcosSpecializaciok[specializationIndex]
|
||||||
console.log(specialization)
|
console.log(specialization)
|
||||||
|
const krit = karakter.kalozKritikus[Math.floor(szint/3)]
|
||||||
|
|
||||||
return <div key={`level-up-${szint}`}>
|
return <div key={`level-up-${szint}`}>
|
||||||
<div className='row mt-3'>
|
<div className='row mt-3'>
|
||||||
@@ -31,7 +47,21 @@ function LevelUp(props: {szint: number, karakter: KarakterInputs, changeTulajdon
|
|||||||
changeRolledHP={changeRolledHP}
|
changeRolledHP={changeRolledHP}
|
||||||
/>
|
/>
|
||||||
{karakter.osztaly === Osztaly.Harcos && szint % 2 === 1 &&
|
{karakter.osztaly === Osztaly.Harcos && szint % 2 === 1 &&
|
||||||
<HarcosFegyverSpecializacio specialization={specialization} existingSpecializations={karakter.harcosSpecializaciok} changeSpecialization={changeHarcosSpec} />}
|
<HarcosFegyverSpecializacio
|
||||||
|
specialization={specialization}
|
||||||
|
existingSpecializations={karakter.harcosSpecializaciok}
|
||||||
|
changeSpecialization={changeHarcosSpec}
|
||||||
|
szint={szint}
|
||||||
|
/>
|
||||||
|
}
|
||||||
|
{karakter.osztaly === Osztaly.Kaloz && szint % 3 === 0 &&
|
||||||
|
<KalozKritikus
|
||||||
|
krit={krit}
|
||||||
|
existingKrits={karakter.kalozKritikus}
|
||||||
|
changeKrit={changeKalozKritikus}
|
||||||
|
szint={szint}
|
||||||
|
/>
|
||||||
|
}
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -50,6 +80,10 @@ export function LevelUps(props: {karakter: KarakterInputs, changeKarakter: (inpu
|
|||||||
changeKarakter({...karakter, harcosSpecializaciok: arraySetN(karakter.harcosSpecializaciok, Math.floor((szint-1) / 2), spec)})
|
changeKarakter({...karakter, harcosSpecializaciok: arraySetN(karakter.harcosSpecializaciok, Math.floor((szint-1) / 2), spec)})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const changeKalozKritikusAtSzint = (szint: number) => (spec: string) => {
|
||||||
|
changeKarakter({...karakter, kalozKritikus: arraySetN(karakter.kalozKritikus, Math.floor(szint / 3), spec)})
|
||||||
|
}
|
||||||
|
|
||||||
return <>
|
return <>
|
||||||
{karakter.hpRolls.map((_, i) => i+2).map(szint => <>
|
{karakter.hpRolls.map((_, i) => i+2).map(szint => <>
|
||||||
<LevelUp
|
<LevelUp
|
||||||
@@ -59,6 +93,7 @@ export function LevelUps(props: {karakter: KarakterInputs, changeKarakter: (inpu
|
|||||||
changeTulajdonsagNoveles={changeTulajdonsagNovelesAtSzint(szint)}
|
changeTulajdonsagNoveles={changeTulajdonsagNovelesAtSzint(szint)}
|
||||||
changeRolledHP={changeRolledHPAtSzint(szint)}
|
changeRolledHP={changeRolledHPAtSzint(szint)}
|
||||||
changeHarcosSpec={changeHarcosSpecializacioAtSzint(szint)}
|
changeHarcosSpec={changeHarcosSpecializacioAtSzint(szint)}
|
||||||
|
changeKalozKritikus={changeKalozKritikusAtSzint(szint)}
|
||||||
/>
|
/>
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@@ -28,11 +28,11 @@ export const KarakterDefaults: KarakterInputs = {
|
|||||||
kor: 20,
|
kor: 20,
|
||||||
jellem: 'S',
|
jellem: 'S',
|
||||||
tulajdonsagok: TulajdonsagDefaults,
|
tulajdonsagok: TulajdonsagDefaults,
|
||||||
osztaly: Osztaly.Harcos,
|
osztaly: Osztaly.Kaloz,
|
||||||
kepzettsegek: [],
|
kepzettsegek: [],
|
||||||
szint: 1,
|
szint: 1,
|
||||||
hpRolls: [],
|
hpRolls: [],
|
||||||
tulajdonsagNovelesek: [],
|
tulajdonsagNovelesek: [],
|
||||||
harcosSpecializaciok: ['szablya'],
|
harcosSpecializaciok: [],
|
||||||
kalozKritikus: [],
|
kalozKritikus: ['szablya'],
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,9 +24,13 @@ export function LevelUp(karakter: KarakterInputs, changeKarakter: (input: Karakt
|
|||||||
}
|
}
|
||||||
let harcosSpecializaciok = karakter.harcosSpecializaciok
|
let harcosSpecializaciok = karakter.harcosSpecializaciok
|
||||||
if(karakter.osztaly === Osztaly.Harcos && szint % 2 === 1) {
|
if(karakter.osztaly === Osztaly.Harcos && szint % 2 === 1) {
|
||||||
harcosSpecializaciok = [...harcosSpecializaciok, "szablya"]
|
harcosSpecializaciok = [...harcosSpecializaciok, "Csatabárd"]
|
||||||
}
|
}
|
||||||
changeKarakter({...karakter, szint, hpRolls, tulajdonsagNovelesek, harcosSpecializaciok})
|
let kalozKritikus = karakter.kalozKritikus
|
||||||
|
if(karakter.osztaly === Osztaly.Kaloz && szint % 3 === 0) {
|
||||||
|
kalozKritikus = [...kalozKritikus, "Szablya"]
|
||||||
|
}
|
||||||
|
changeKarakter({...karakter, szint, hpRolls, tulajdonsagNovelesek, harcosSpecializaciok, kalozKritikus})
|
||||||
}
|
}
|
||||||
|
|
||||||
export function LevelDown(karakter: KarakterInputs, changeKarakter: (input: KarakterInputs) => void) {
|
export function LevelDown(karakter: KarakterInputs, changeKarakter: (input: KarakterInputs) => void) {
|
||||||
|
|||||||
@@ -97,7 +97,13 @@ function CreateCharacterPage() {
|
|||||||
<OsztalySelector
|
<OsztalySelector
|
||||||
currentFaj={karakter.faj}
|
currentFaj={karakter.faj}
|
||||||
currentOsztaly={karakter.osztaly}
|
currentOsztaly={karakter.osztaly}
|
||||||
changeOsztaly={(o: Osztaly) => changeKarakter({...karakter, osztaly: o, harcosSpecializaciok: o === Osztaly.Harcos ? ['szablya'] : []})}
|
changeOsztaly={(o: Osztaly) =>
|
||||||
|
changeKarakter({
|
||||||
|
...karakter,
|
||||||
|
osztaly: o,
|
||||||
|
harcosSpecializaciok: o === Osztaly.Harcos ? ['kard'] : [],
|
||||||
|
kalozKritikus: o === Osztaly.Kaloz ? ['szablya'] : [],
|
||||||
|
})}
|
||||||
/>
|
/>
|
||||||
{karakter.osztaly === Osztaly.Harcos &&
|
{karakter.osztaly === Osztaly.Harcos &&
|
||||||
<div className='mb-6'>
|
<div className='mb-6'>
|
||||||
@@ -105,6 +111,7 @@ function CreateCharacterPage() {
|
|||||||
specialization={karakter.harcosSpecializaciok[0]}
|
specialization={karakter.harcosSpecializaciok[0]}
|
||||||
existingSpecializations={karakter.harcosSpecializaciok}
|
existingSpecializations={karakter.harcosSpecializaciok}
|
||||||
changeSpecialization={(spec: string) => changeKarakter({...karakter, harcosSpecializaciok: [spec, ...karakter.harcosSpecializaciok.slice(1)]})}
|
changeSpecialization={(spec: string) => changeKarakter({...karakter, harcosSpecializaciok: [spec, ...karakter.harcosSpecializaciok.slice(1)]})}
|
||||||
|
szint={1}
|
||||||
/>
|
/>
|
||||||
</div>}
|
</div>}
|
||||||
<KarakterKepzettsegek
|
<KarakterKepzettsegek
|
||||||
|
|||||||
Reference in New Issue
Block a user