mirror of
https://github.com/morbalint/kemkas.git
synced 2026-07-18 03:13:46 +00:00
add kaloz kritikus fegyverek
This commit is contained in:
@@ -1,15 +1,25 @@
|
||||
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
|
||||
function HarcosFegyverSpecializacio(props: {
|
||||
specialization: string,
|
||||
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 <>
|
||||
<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>}
|
||||
{hasError && <span className='form-field-error'>Már {szint < 9 ? '' : 'kétszer is'} választottad ezt a fegyvert!</span>}
|
||||
</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 {Osztaly} from "../domain-models/osztaly";
|
||||
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}) {
|
||||
const {szint, karakter, changeTulajdonsagNoveles, changeRolledHP, changeHarcosSpec} = props
|
||||
function LevelUp(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)
|
||||
console.log('Specialization index: ' + specializationIndex.toString())
|
||||
const specialization = karakter.harcosSpecializaciok[specializationIndex]
|
||||
console.log(specialization)
|
||||
const krit = karakter.kalozKritikus[Math.floor(szint/3)]
|
||||
|
||||
return <div key={`level-up-${szint}`}>
|
||||
<div className='row mt-3'>
|
||||
@@ -31,7 +47,21 @@ function LevelUp(props: {szint: number, karakter: KarakterInputs, changeTulajdon
|
||||
changeRolledHP={changeRolledHP}
|
||||
/>
|
||||
{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>
|
||||
}
|
||||
|
||||
@@ -50,6 +80,10 @@ export function LevelUps(props: {karakter: KarakterInputs, changeKarakter: (inpu
|
||||
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 <>
|
||||
{karakter.hpRolls.map((_, i) => i+2).map(szint => <>
|
||||
<LevelUp
|
||||
@@ -59,6 +93,7 @@ export function LevelUps(props: {karakter: KarakterInputs, changeKarakter: (inpu
|
||||
changeTulajdonsagNoveles={changeTulajdonsagNovelesAtSzint(szint)}
|
||||
changeRolledHP={changeRolledHPAtSzint(szint)}
|
||||
changeHarcosSpec={changeHarcosSpecializacioAtSzint(szint)}
|
||||
changeKalozKritikus={changeKalozKritikusAtSzint(szint)}
|
||||
/>
|
||||
</>
|
||||
)}
|
||||
|
||||
@@ -28,11 +28,11 @@ export const KarakterDefaults: KarakterInputs = {
|
||||
kor: 20,
|
||||
jellem: 'S',
|
||||
tulajdonsagok: TulajdonsagDefaults,
|
||||
osztaly: Osztaly.Harcos,
|
||||
osztaly: Osztaly.Kaloz,
|
||||
kepzettsegek: [],
|
||||
szint: 1,
|
||||
hpRolls: [],
|
||||
tulajdonsagNovelesek: [],
|
||||
harcosSpecializaciok: ['szablya'],
|
||||
kalozKritikus: [],
|
||||
harcosSpecializaciok: [],
|
||||
kalozKritikus: ['szablya'],
|
||||
}
|
||||
|
||||
@@ -24,9 +24,13 @@ export function LevelUp(karakter: KarakterInputs, changeKarakter: (input: Karakt
|
||||
}
|
||||
let harcosSpecializaciok = karakter.harcosSpecializaciok
|
||||
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) {
|
||||
|
||||
@@ -97,7 +97,13 @@ function CreateCharacterPage() {
|
||||
<OsztalySelector
|
||||
currentFaj={karakter.faj}
|
||||
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 &&
|
||||
<div className='mb-6'>
|
||||
@@ -105,6 +111,7 @@ function CreateCharacterPage() {
|
||||
specialization={karakter.harcosSpecializaciok[0]}
|
||||
existingSpecializations={karakter.harcosSpecializaciok}
|
||||
changeSpecialization={(spec: string) => changeKarakter({...karakter, harcosSpecializaciok: [spec, ...karakter.harcosSpecializaciok.slice(1)]})}
|
||||
szint={1}
|
||||
/>
|
||||
</div>}
|
||||
<KarakterKepzettsegek
|
||||
|
||||
Reference in New Issue
Block a user