fix kaloz kritIndex & refactor all Id

This commit is contained in:
2023-10-22 11:28:57 +02:00
parent 40d53467b3
commit 49826d1059
10 changed files with 88 additions and 85 deletions
+8 -8
View File
@@ -19,12 +19,12 @@ function Felszereles(props: {felszereles: KarakterFelszereles, changeFelszereles
const { felszereles, changeFelszereles, osztaly } = props; const { felszereles, changeFelszereles, osztaly } = props;
const allowedPancelTypes = AllowedPancelTypes([osztaly]) const allowedPancelTypes = AllowedPancelTypes([osztaly])
const valasztottFegyverek = felszereles.fegyverIDk const valasztottFegyverek = felszereles.fegyverIDk
.map((id, idx) => ({idx, fegyver: fegyverek.data.find(f => f.ID === id)})).filter((x) => x.fegyver != null).map(({idx, fegyver}) => ({idx, fegyver: fegyver as Fegyver})) .map((id, idx) => ({idx, fegyver: fegyverek.data.find(f => f.Id === id)})).filter((x) => x.fegyver != null).map(({idx, fegyver}) => ({idx, fegyver: fegyver as Fegyver}))
const osztalyAllowedFegyverek = OsztalyAllowedFegyver(osztaly) const osztalyAllowedFegyverek = OsztalyAllowedFegyver(osztaly)
const allowedFegyverek = [...osztalyAllowedFegyverek, ...valasztottFegyverek.filter(({idx, fegyver}) => !osztalyAllowedFegyverek.map(f => f.ID).includes(fegyver.ID)).map(({fegyver}) => fegyver)] const allowedFegyverek = [...osztalyAllowedFegyverek, ...valasztottFegyverek.filter(({idx, fegyver}) => !osztalyAllowedFegyverek.map(f => f.Id).includes(fegyver.Id)).map(({fegyver}) => fegyver)]
const changeFegyver = (idx: number, newID: string) => { const changeFegyver = (idx: number, newID: string) => {
const found = fegyverek.data.find(x => x.ID === newID) const found = fegyverek.data.find(x => x.Id === newID)
if (!found) { if (!found) {
console.log('Nem létező fegyver ID: ', newID) console.log('Nem létező fegyver ID: ', newID)
return return
@@ -40,7 +40,7 @@ function Felszereles(props: {felszereles: KarakterFelszereles, changeFelszereles
{ {
allowedPancelTypes.map(pancelType => ( allowedPancelTypes.map(pancelType => (
<optgroup key={pancelType} label={PancelTypeLabel(pancelType)}> <optgroup key={pancelType} label={PancelTypeLabel(pancelType)}>
{pancelok['pancel'].filter(p => p.Type === pancelType).map(p => <option key={p.ID} value={p.ID}>{`${p.Name} (+${p.VO} VO) - ${p.Price} at`}</option>)} {pancelok['pancel'].filter(p => p.Type === pancelType).map(p => <option key={p.Id} value={p.Id}>{`${p.Name} (+${p.VO} VO) - ${p.Price} at`}</option>)}
</optgroup> </optgroup>
)) ))
} }
@@ -50,18 +50,18 @@ function Felszereles(props: {felszereles: KarakterFelszereles, changeFelszereles
<label className='col-md-2 col-sm-3 col-form-label'>Hordott pajzs</label> <label className='col-md-2 col-sm-3 col-form-label'>Hordott pajzs</label>
<select className='col form-select' value={felszereles.pajzsID} onChange={e => changeFelszereles({...felszereles, pajzsID: e.target.value === 'nincs' ? undefined : e.target.value})}> <select className='col form-select' value={felszereles.pajzsID} onChange={e => changeFelszereles({...felszereles, pajzsID: e.target.value === 'nincs' ? undefined : e.target.value})}>
<option key={'nincs'} value={'nincs'}>Nincs</option> <option key={'nincs'} value={'nincs'}>Nincs</option>
{allowedPancelTypes.length > 0 && (pajzsok['pajzs'].map(p => <option key={p.ID} value={p.ID}>{`${p.Name} (+${p.VO} VO) - ${p.Price} at`}</option>))} {allowedPancelTypes.length > 0 && (pajzsok['pajzs'].map(p => <option key={p.Id} value={p.Id}>{`${p.Name} (+${p.VO} VO) - ${p.Price} at`}</option>))}
</select> </select>
</div> </div>
{valasztottFegyverek.map(({idx, fegyver}) => ( {valasztottFegyverek.map(({idx, fegyver}) => (
<div key={`fegyver-${idx}`} className='row m-2'> <div key={`fegyver-${idx}`} className='row m-2'>
<label className='col-md-2 col-sm-3 col-form-label'>Fegyver</label> <label className='col-md-2 col-sm-3 col-form-label'>Fegyver</label>
<select className='col form-select' value={fegyver.ID} onChange={e => changeFegyver(idx, e.target.value)}> <select className='col form-select' value={fegyver.Id} onChange={e => changeFegyver(idx, e.target.value)}>
<optgroup label="Közelharci"> <optgroup label="Közelharci">
{allowedFegyverek.filter(f => f.Type === 'kozelharci').map(f => <option key={f.ID} value={f.ID}>{FegyverLabel(f)}</option>)} {allowedFegyverek.filter(f => f.Type === 'kozelharci').map(f => <option key={f.Id} value={f.Id}>{FegyverLabel(f)}</option>)}
</optgroup> </optgroup>
<optgroup label="Távolsági"> <optgroup label="Távolsági">
{allowedFegyverek.filter(f => f.Type === 'lofegyver').map(f => <option key={f.ID} value={f.ID}>{FegyverLabel(f)}</option>)} {allowedFegyverek.filter(f => f.Type === 'lofegyver').map(f => <option key={f.Id} value={f.Id}>{FegyverLabel(f)}</option>)}
</optgroup> </optgroup>
</select> </select>
<button className='col-md-2 col-sm-3 btn btn-outline-dark btn-lg ms-2' type='button' onClick={() => changeFelszereles({...felszereles, fegyverIDk: [...felszereles.fegyverIDk.slice(0, idx), ...felszereles.fegyverIDk.slice(idx+1)]})}>Elvesz</button> <button className='col-md-2 col-sm-3 btn btn-outline-dark btn-lg ms-2' type='button' onClick={() => changeFelszereles({...felszereles, fegyverIDk: [...felszereles.fegyverIDk.slice(0, idx), ...felszereles.fegyverIDk.slice(idx+1)]})}>Elvesz</button>
@@ -19,12 +19,12 @@ function HarcosFegyverSpecializacio(props: {
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>
<select className='col form-select' value={fegyver?.ID || defaultFegyverID} onChange={e => changeSpecialization(e.target.value)}> <select className='col form-select' value={fegyver?.Id || defaultFegyverID} onChange={e => changeSpecialization(e.target.value)}>
<optgroup label="Közelharci"> <optgroup label="Közelharci">
{fegyverek.data.filter(f => f.Type === 'kozelharci').map(f => <option key={f.ID} value={f.ID}>{f.Name}</option>)} {fegyverek.data.filter(f => f.Type === 'kozelharci').map(f => <option key={f.Id} value={f.Id}>{f.Name}</option>)}
</optgroup> </optgroup>
<optgroup label="Távolsági"> <optgroup label="Távolsági">
{fegyverek.data.filter(f => f.Type === 'lofegyver').map(f => <option key={f.ID} value={f.ID}>{f.Name}</option>)} {fegyverek.data.filter(f => f.Type === 'lofegyver').map(f => <option key={f.Id} value={f.Id}>{f.Name}</option>)}
</optgroup> </optgroup>
</select> </select>
{fegyver == null && <span className='form-field-error'>Ismeretlen fegyver: {specialization}</span>} {fegyver == null && <span className='form-field-error'>Ismeretlen fegyver: {specialization}</span>}
+8 -7
View File
@@ -1,28 +1,29 @@
import React from "react"; import React from "react";
import fegyverek from "../domain-models/fegyver.json" import {Osztaly, OsztalyAllowedFegyver} from "../domain-models/osztaly";
function KalozKritikus(props: { function KalozKritikus(props: {
krit: string, kritFegyverId: string,
existingKrits: string[], existingKrits: string[],
changeKrit: (krit: string) => void, changeKrit: (krit: string) => void,
szint: number szint: number
}) { }) {
const { const {
krit, kritFegyverId,
existingKrits, existingKrits,
changeKrit, changeKrit,
szint szint
} = props } = props
const hasError = existingKrits.filter(x => x === krit).length > (szint < 9 ? 1 : 2) const hasError = existingKrits.filter(x => x === kritFegyverId).length > (szint < 9 ? 1 : 2)
const fegyverek = OsztalyAllowedFegyver(Osztaly.Kaloz)
return <> return <>
<div className='row m-2'> <div className='row m-2'>
<label className='col-md-2 col-sm-3 col-form-label'>Kritikus</label> <label className='col-md-2 col-sm-3 col-form-label'>Kritikus</label>
<select className='col form-select' value={krit} onChange={e => changeKrit(e.target.value)}> <select className='col form-select' value={kritFegyverId} onChange={e => changeKrit(e.target.value)}>
<optgroup label="Közelharci"> <optgroup label="Közelharci">
{fegyverek.data.filter(f => f.Type === 'kozelharci').map(f => <option key={f.ID} value={f.ID}>{f.Name}</option>)} {fegyverek.filter(f => f.Type === 'kozelharci').map(f => <option key={f.Id} value={f.Id}>{f.Name}</option>)}
</optgroup> </optgroup>
<optgroup label="Távolsági"> <optgroup label="Távolsági">
{fegyverek.data.filter(f => f.Type === 'lofegyver').map(f => <option key={f.ID} value={f.ID}>{f.Name}</option>)} {fegyverek.filter(f => f.Type === 'lofegyver').map(f => <option key={f.Id} value={f.Id}>{f.Name}</option>)}
</optgroup> </optgroup>
</select> </select>
{hasError && <span className='form-field-error'>Már {szint < 9 ? '' : 'kétszer is'} választottad ezt a fegyvert!</span>} {hasError && <span className='form-field-error'>Már {szint < 9 ? '' : 'kétszer is'} választottad ezt a fegyvert!</span>}
+8 -6
View File
@@ -8,6 +8,10 @@ import {Osztaly} from "../domain-models/osztaly";
import HarcosFegyverSpecializacio from "./HarcosFegyverSpecializacio"; import HarcosFegyverSpecializacio from "./HarcosFegyverSpecializacio";
import KalozKritikus from "./KalozKritikus"; import KalozKritikus from "./KalozKritikus";
function kalozKritIndex(szint: number) {
return Math.floor(szint/3)-1
}
function LevelUp(props: { function LevelUp(props: {
szint: number, szint: number,
karakter: KarakterInputs, karakter: KarakterInputs,
@@ -26,12 +30,10 @@ function LevelUp(props: {
} = props } = props
const specializationIndex = Math.floor((szint-1) / 2) const specializationIndex = Math.floor((szint-1) / 2)
console.log('Specialization index: ' + specializationIndex.toString())
const specialization = karakter.harcosSpecializaciok[specializationIndex] const specialization = karakter.harcosSpecializaciok[specializationIndex]
console.log(specialization) console.log(specialization)
const kritIndex = Math.floor(szint/3)-1 const kritIndex = kalozKritIndex(szint)
const krit = karakter.kalozKritikus[kritIndex] const krit = karakter.kalozKritikus[kritIndex]
console.log(`kaloz krit @${szint}: ${krit}`)
return <div key={`level-up-${szint}`}> return <div key={`level-up-${szint}`}>
<div className='row mt-3'> <div className='row mt-3'>
@@ -58,7 +60,7 @@ function LevelUp(props: {
} }
{karakter.osztaly === Osztaly.Kaloz && szint % 3 === 0 && !!krit && {karakter.osztaly === Osztaly.Kaloz && szint % 3 === 0 && !!krit &&
<KalozKritikus <KalozKritikus
krit={krit} kritFegyverId={krit}
existingKrits={karakter.kalozKritikus} existingKrits={karakter.kalozKritikus}
changeKrit={changeKalozKritikus} changeKrit={changeKalozKritikus}
szint={szint} szint={szint}
@@ -82,8 +84,8 @@ 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) => { const changeKalozKritikusAtSzint = (szint: number) => (krit: string) => {
changeKarakter({...karakter, kalozKritikus: arraySetN(karakter.kalozKritikus, Math.floor(szint / 3), spec)}) changeKarakter({...karakter, kalozKritikus: arraySetN(karakter.kalozKritikus, kalozKritIndex(szint), krit)})
} }
return <> return <>
+33 -33
View File
@@ -1,7 +1,7 @@
{ {
"data": [ "data": [
{ {
"ID": "alabard", "Id": "alabard",
"Name": "Alabárd és más szálfegyverek", "Name": "Alabárd és más szálfegyverek",
"Type": "kozelharci", "Type": "kozelharci",
"Ketkezes": true, "Ketkezes": true,
@@ -15,7 +15,7 @@
"Range": 0 "Range": 0
}, },
{ {
"ID": "bot", "Id": "bot",
"Name": "Bot", "Name": "Bot",
"Type": "kozelharci", "Type": "kozelharci",
"Ketkezes": false, "Ketkezes": false,
@@ -29,7 +29,7 @@
"Range": 0 "Range": 0
}, },
{ {
"ID": "bunko", "Id": "bunko",
"Name": "Bunkó", "Name": "Bunkó",
"Type": "kozelharci", "Type": "kozelharci",
"Ketkezes": false, "Ketkezes": false,
@@ -43,7 +43,7 @@
"Range": 0 "Range": 0
}, },
{ {
"ID": "buzogany", "Id": "buzogany",
"Name": "Buzogány és láncos buzogány", "Name": "Buzogány és láncos buzogány",
"Type": "kozelharci", "Type": "kozelharci",
"Ketkezes": false, "Ketkezes": false,
@@ -57,7 +57,7 @@
"Range": 0 "Range": 0
}, },
{ {
"ID": "csatabard", "Id": "csatabard",
"Name": "Csatabárd", "Name": "Csatabárd",
"Type": "kozelharci", "Type": "kozelharci",
"Ketkezes": false, "Ketkezes": false,
@@ -71,7 +71,7 @@
"Range": 0 "Range": 0
}, },
{ {
"ID": "csatabard_2", "Id": "csatabard_2",
"Name": "Kétkezes csatabárd", "Name": "Kétkezes csatabárd",
"Type": "kozelharci", "Type": "kozelharci",
"Ketkezes": true, "Ketkezes": true,
@@ -85,7 +85,7 @@
"Range": 0 "Range": 0
}, },
{ {
"ID": "csakany", "Id": "csakany",
"Name": "Csákány", "Name": "Csákány",
"Type": "kozelharci", "Type": "kozelharci",
"Ketkezes": true, "Ketkezes": true,
@@ -99,7 +99,7 @@
"Range": 0 "Range": 0
}, },
{ {
"ID": "darda", "Id": "darda",
"Name": "Dárda", "Name": "Dárda",
"Type": "kozelharci", "Type": "kozelharci",
"Ketkezes": true, "Ketkezes": true,
@@ -113,7 +113,7 @@
"Range": 0 "Range": 0
}, },
{ {
"ID": "fejsze", "Id": "fejsze",
"Name": "Fejsze", "Name": "Fejsze",
"Type": "kozelharci", "Type": "kozelharci",
"Ketkezes": false, "Ketkezes": false,
@@ -127,7 +127,7 @@
"Range": 10 "Range": 10
}, },
{ {
"ID": "torpe_fejsze", "Id": "torpe_fejsze",
"Name": "Törpe fejsze", "Name": "Törpe fejsze",
"Type": "kozelharci", "Type": "kozelharci",
"Ketkezes": false, "Ketkezes": false,
@@ -141,7 +141,7 @@
"Range": 0 "Range": 0
}, },
{ {
"ID": "handzsar", "Id": "handzsar",
"Name": "Handzsár", "Name": "Handzsár",
"Type": "kozelharci", "Type": "kozelharci",
"Ketkezes": true, "Ketkezes": true,
@@ -155,7 +155,7 @@
"Range": 0 "Range": 0
}, },
{ {
"ID": "harci_kalapacs", "Id": "harci_kalapacs",
"Name": "Harci kalapács", "Name": "Harci kalapács",
"Type": "kozelharci", "Type": "kozelharci",
"Ketkezes": false, "Ketkezes": false,
@@ -169,7 +169,7 @@
"Range": 0 "Range": 0
}, },
{ {
"ID": "harci_kalapacs_2", "Id": "harci_kalapacs_2",
"Name": "Kétkezes harci kalapács", "Name": "Kétkezes harci kalapács",
"Type": "kozelharci", "Type": "kozelharci",
"Ketkezes": true, "Ketkezes": true,
@@ -183,7 +183,7 @@
"Range": 0 "Range": 0
}, },
{ {
"ID": "fattyu_kard", "Id": "fattyu_kard",
"Name": "Fattyú kard", "Name": "Fattyú kard",
"Type": "kozelharci", "Type": "kozelharci",
"Ketkezes": false, "Ketkezes": false,
@@ -197,7 +197,7 @@
"Range": 0 "Range": 0
}, },
{ {
"ID": "rovid_kard", "Id": "rovid_kard",
"Name": "Rövid kard", "Name": "Rövid kard",
"Type": "kozelharci", "Type": "kozelharci",
"Ketkezes": false, "Ketkezes": false,
@@ -211,7 +211,7 @@
"Range": 0 "Range": 0
}, },
{ {
"ID": "hosszu_kard", "Id": "hosszu_kard",
"Name": "Hosszú kard", "Name": "Hosszú kard",
"Type": "kozelharci", "Type": "kozelharci",
"Ketkezes": false, "Ketkezes": false,
@@ -225,7 +225,7 @@
"Range": 0 "Range": 0
}, },
{ {
"ID": "kard_2", "Id": "kard_2",
"Name": "Kétkezes kard", "Name": "Kétkezes kard",
"Type": "kozelharci", "Type": "kozelharci",
"Ketkezes": true, "Ketkezes": true,
@@ -239,7 +239,7 @@
"Range": 0 "Range": 0
}, },
{ {
"ID": "kasza", "Id": "kasza",
"Name": "Kasza", "Name": "Kasza",
"Type": "kozelharci", "Type": "kozelharci",
"Ketkezes": true, "Ketkezes": true,
@@ -253,7 +253,7 @@
"Range": 0 "Range": 0
}, },
{ {
"ID": "landzsa", "Id": "landzsa",
"Name": "Lándzsa", "Name": "Lándzsa",
"Type": "kozelharci", "Type": "kozelharci",
"Ketkezes": false, "Ketkezes": false,
@@ -267,7 +267,7 @@
"Range": 20 "Range": 20
}, },
{ {
"ID": "sarlo", "Id": "sarlo",
"Name": "Sarló", "Name": "Sarló",
"Type": "kozelharci", "Type": "kozelharci",
"Ketkezes": false, "Ketkezes": false,
@@ -281,7 +281,7 @@
"Range": 0 "Range": 0
}, },
{ {
"ID": "szablya", "Id": "szablya",
"Name": "Szablya", "Name": "Szablya",
"Type": "kozelharci", "Type": "kozelharci",
"Ketkezes": false, "Ketkezes": false,
@@ -295,7 +295,7 @@
"Range": 0 "Range": 0
}, },
{ {
"ID": "szigony", "Id": "szigony",
"Name": "Háromágú szigony", "Name": "Háromágú szigony",
"Type": "kozelharci", "Type": "kozelharci",
"Ketkezes": false, "Ketkezes": false,
@@ -309,7 +309,7 @@
"Range": 10 "Range": 10
}, },
{ {
"ID": "tor", "Id": "tor",
"Name": "Tőr", "Name": "Tőr",
"Type": "kozelharci", "Type": "kozelharci",
"Ketkezes": false, "Ketkezes": false,
@@ -323,7 +323,7 @@
"Range": 10 "Range": 10
}, },
{ {
"ID": "ostor", "Id": "ostor",
"Name": "Ostor", "Name": "Ostor",
"Type": "kozelharci", "Type": "kozelharci",
"Ketkezes": false, "Ketkezes": false,
@@ -337,7 +337,7 @@
"Range": 0 "Range": 0
}, },
{ {
"ID": "okol", "Id": "okol",
"Name": "Ököl", "Name": "Ököl",
"Type": "kozelharci", "Type": "kozelharci",
"Ketkezes": false, "Ketkezes": false,
@@ -352,7 +352,7 @@
}, },
{ {
"ID": "dobodarda", "Id": "dobodarda",
"Name": "Dobódárda", "Name": "Dobódárda",
"Type": "lofegyver", "Type": "lofegyver",
"Ketkezes": false, "Ketkezes": false,
@@ -366,7 +366,7 @@
"Range": 30 "Range": 30
}, },
{ {
"ID": "dobotu", "Id": "dobotu",
"Name": "Dobótű", "Name": "Dobótű",
"Type": "lofegyver", "Type": "lofegyver",
"Ketkezes": false, "Ketkezes": false,
@@ -380,7 +380,7 @@
"Range": 20 "Range": 20
}, },
{ {
"ID": "rovid_ij", "Id": "rovid_ij",
"Name": "Rövid íj", "Name": "Rövid íj",
"Type": "lofegyver", "Type": "lofegyver",
"Ketkezes": true, "Ketkezes": true,
@@ -394,7 +394,7 @@
"Range": 60 "Range": 60
}, },
{ {
"ID": "hosszu_ij", "Id": "hosszu_ij",
"Name": "Hosszú íj", "Name": "Hosszú íj",
"Type": "lofegyver", "Type": "lofegyver",
"Ketkezes": true, "Ketkezes": true,
@@ -408,7 +408,7 @@
"Range": 70 "Range": 70
}, },
{ {
"ID": "visszacsapo_ij", "Id": "visszacsapo_ij",
"Name": "Visszacsapó íj", "Name": "Visszacsapó íj",
"Type": "lofegyver", "Type": "lofegyver",
"Ketkezes": true, "Ketkezes": true,
@@ -422,7 +422,7 @@
"Range": 110 "Range": 110
}, },
{ {
"ID": "parittya", "Id": "parittya",
"Name": "Parittya", "Name": "Parittya",
"Type": "lofegyver", "Type": "lofegyver",
"Ketkezes": true, "Ketkezes": true,
@@ -436,7 +436,7 @@
"Range": 50 "Range": 50
}, },
{ {
"ID": "konnyu_szamszerij", "Id": "konnyu_szamszerij",
"Name": "Könnyű számszeríj", "Name": "Könnyű számszeríj",
"Type": "lofegyver", "Type": "lofegyver",
"Ketkezes": true, "Ketkezes": true,
@@ -450,7 +450,7 @@
"Range": 80 "Range": 80
}, },
{ {
"ID": "nehez_szamszerij", "Id": "nehez_szamszerij",
"Name": "Nehéz számszeríj", "Name": "Nehéz számszeríj",
"Type": "lofegyver", "Type": "lofegyver",
"Ketkezes": true, "Ketkezes": true,
+6 -6
View File
@@ -7,7 +7,7 @@ export type PancelType = 'konnyu' | 'kozepes' | 'nehez'
export const PancelTypes: PancelType[] = ['konnyu', 'kozepes', 'nehez'] export const PancelTypes: PancelType[] = ['konnyu', 'kozepes', 'nehez']
export interface Pancel { export interface Pancel {
ID: string, Id: string,
Name: string, Name: string,
Type: PancelType Type: PancelType
VO: number, VO: number,
@@ -15,7 +15,7 @@ export interface Pancel {
} }
export interface Pajzs { export interface Pajzs {
ID: string, Id: string,
Name: string, Name: string,
Type: 'pajzs' Type: 'pajzs'
VO: number, VO: number,
@@ -23,7 +23,7 @@ export interface Pajzs {
} }
export interface Fegyver { export interface Fegyver {
ID: string, Id: string,
Name: string, Name: string,
Type: 'kozelharci' | 'lofegyver' Type: 'kozelharci' | 'lofegyver'
Ketkezes: boolean, Ketkezes: boolean,
@@ -69,7 +69,7 @@ export function GetPancel(id?: string): Pancel | undefined {
if (id == null) { if (id == null) {
return undefined return undefined
} }
const filteredPancel = pancelok['pancel'].filter(p => p.ID === id) as Pancel[] const filteredPancel = pancelok['pancel'].filter(p => p.Id === id) as Pancel[]
return filteredPancel.length > 0 ? filteredPancel[0] : undefined return filteredPancel.length > 0 ? filteredPancel[0] : undefined
} }
@@ -86,12 +86,12 @@ export function GetPajzs(id?: string): Pajzs | undefined {
if (id == null) { if (id == null) {
return undefined return undefined
} }
const filtered = pajzsok['pajzs'].filter(p => p.ID === id) as Pajzs[] const filtered = pajzsok['pajzs'].filter(p => p.Id === id) as Pajzs[]
return filtered.length > 0 ? filtered[0] : undefined return filtered.length > 0 ? filtered[0] : undefined
} }
export function GetFegyver(id: string): Fegyver | undefined { export function GetFegyver(id: string): Fegyver | undefined {
return fegyverek.data.find(f => f.ID === id) as Fegyver | undefined return fegyverek.data.find(f => f.Id === id) as Fegyver | undefined
} }
export function GetFegyverek(ids: string[]): Fegyver[] { export function GetFegyverek(ids: string[]): Fegyver[] {
+5 -5
View File
@@ -17,14 +17,14 @@ export enum Osztaly {
export function OsztalyAllowedFegyver(o: Osztaly): Fegyver[] { export function OsztalyAllowedFegyver(o: Osztaly): Fegyver[] {
const fegyverek = fegyverDB.data.map(x => x as Fegyver) const fegyverek = fegyverDB.data.map(x => x as Fegyver)
const nemEgzotikus = fegyverek.filter(f => !f.Egzotikus) const nemEgzotikus = fegyverek.filter(f => !f.Egzotikus)
const varazslo = fegyverek.filter(f => ['okol', 'bot', 'bunko', 'tor', 'parittya', 'dobotu'].includes(f.ID)) const varazslo = fegyverek.filter(f => ['okol', 'bot', 'bunko', 'tor', 'parittya', 'dobotu'].includes(f.Id))
const tolvaj = fegyverek.filter(f => ['okol', 'tor', 'parittya', 'rovid_ij', 'dobotu', 'konnyu_szamszerij', 'nehez_szamszerij', 'szablya', 'hosszu_kard', 'rovid_kard' ].includes(f.ID)) const tolvaj = fegyverek.filter(f => ['okol', 'tor', 'parittya', 'rovid_ij', 'dobotu', 'konnyu_szamszerij', 'nehez_szamszerij', 'szablya', 'hosszu_kard', 'rovid_kard' ].includes(f.Id))
switch (o) { switch (o) {
case Osztaly.Amazon: case Osztaly.Amazon:
case Osztaly.Harcos: case Osztaly.Harcos:
case Osztaly.Barbar: case Osztaly.Barbar:
case Osztaly.Kaloz: return nemEgzotikus; case Osztaly.Kaloz: return nemEgzotikus;
case Osztaly.Ijasz: return [...nemEgzotikus, fegyverDB.data.find(f => f.ID === 'visszacsapo_ij') as Fegyver] case Osztaly.Ijasz: return [...nemEgzotikus, fegyverDB.data.find(f => f.Id === 'visszacsapo_ij') as Fegyver]
// Note: Isteni fegyver barmi lehet istentol foggoen // Note: Isteni fegyver barmi lehet istentol foggoen
case Osztaly.Pap: return fegyverek; case Osztaly.Pap: return fegyverek;
case Osztaly.Tolvaj: return tolvaj; case Osztaly.Tolvaj: return tolvaj;
@@ -210,7 +210,7 @@ export function OsztalySpecialSkills(osztaly: Osztaly) : Skill[] {
{ {
Id: 's_harcos_kaloz_kritikus', Id: 's_harcos_kaloz_kritikus',
Name: 'Kritikus', Name: 'Kritikus',
Description: 'Minden harmadik szinten kiválaszthatnak egy fegyvert, amivel könnyebben okoznak kritikus sebesülést, tehát pl. csatabárddal 20 helyett 19-20-on, hoszszúkarddal 19-20 helyett 18-20-on, szablyával 18-20 helyett 17-20-on, stb. Ez a képesség 9. szintig fegyverenként csak egyszer választható.' Description: 'Minden harmadik szinten kiválaszthatnak egy fegyvert, amivel könnyebben okoznak kritikus sebesülést, tehát pl. csatabárddal 20 helyett 19-20-on, hosszúkarddal 19-20 helyett 18-20-on, szablyával 18-20 helyett 17-20-on, stb. Ez a képesség 9. szintig fegyverenként csak egyszer választható.'
}] }]
case Osztaly.Barbar: return [ case Osztaly.Barbar: return [
{ {
@@ -339,7 +339,7 @@ export function OsztalySkillsTordelt(osztaly: Osztaly) : Skill[] {
Id: 's_harcos_kaloz_kritikus', Id: 's_harcos_kaloz_kritikus',
Name: 'Kritikus', Name: 'Kritikus',
Description: 'Minden harmadik szinten kiválaszthatnak egy fegyvert, amivel könnyebben okoznak\n' + Description: 'Minden harmadik szinten kiválaszthatnak egy fegyvert, amivel könnyebben okoznak\n' +
'kritikus sebesülést, tehát pl. csatabárddal 20 helyett 19-20-on, hoszszúkarddal 19-20\n' + 'kritikus sebesülést, tehát pl. csatabárddal 20 helyett 19-20-on, hosszúkarddal 19-20\n' +
'helyett 18-20-on, szablyával 18-20 helyett 17-20-on, stb. Ez a képesség 9. szintig\n' + 'helyett 18-20-on, szablyával 18-20 helyett 17-20-on, stb. Ez a képesség 9. szintig\n' +
'fegyverenként csak egyszer választható.' 'fegyverenként csak egyszer választható.'
}] }]
+4 -4
View File
@@ -1,28 +1,28 @@
{ {
"pajzs": [ "pajzs": [
{ {
"ID": "kis_fa", "Id": "kis_fa",
"Name": "Kis fapajzs ", "Name": "Kis fapajzs ",
"Type": "pajzs", "Type": "pajzs",
"VO": 1, "VO": 1,
"Price": 3 "Price": 3
}, },
{ {
"ID": "kis_fem", "Id": "kis_fem",
"Name": "Kis fémpajzs ", "Name": "Kis fémpajzs ",
"Type": "pajzs", "Type": "pajzs",
"VO": 1, "VO": 1,
"Price": 9 "Price": 9
}, },
{ {
"ID": "nagy_fa", "Id": "nagy_fa",
"Name": "Nagy fapajzs ", "Name": "Nagy fapajzs ",
"Type": "pajzs", "Type": "pajzs",
"VO": 2, "VO": 2,
"Price": 7 "Price": 7
}, },
{ {
"ID": "nagy_fem", "Id": "nagy_fem",
"Name": "Nagy fémpajzs ", "Name": "Nagy fémpajzs ",
"Type": "pajzs", "Type": "pajzs",
"VO": 2, "VO": 2,
+12 -12
View File
@@ -1,84 +1,84 @@
{ {
"pancel": [ "pancel": [
{ {
"ID": "tomott", "Id": "tomott",
"Name": "Tömött páncél", "Name": "Tömött páncél",
"Type": "konnyu", "Type": "konnyu",
"VO": 1, "VO": 1,
"Price": 4 "Price": 4
}, },
{ {
"ID": "bor", "Id": "bor",
"Name": "Bőrvért", "Name": "Bőrvért",
"Type": "konnyu", "Type": "konnyu",
"VO": 2, "VO": 2,
"Price": 5 "Price": 5
}, },
{ {
"ID": "kivert_bor", "Id": "kivert_bor",
"Name": "Kivert bőrvért", "Name": "Kivert bőrvért",
"Type": "konnyu", "Type": "konnyu",
"VO": 3, "VO": 3,
"Price": 15 "Price": 15
}, },
{ {
"ID": "gyuruvert", "Id": "gyuruvert",
"Name": "Gyűrűvért", "Name": "Gyűrűvért",
"Type": "konnyu", "Type": "konnyu",
"VO": 3, "VO": 3,
"Price": 20 "Price": 20
}, },
{ {
"ID": "lancing", "Id": "lancing",
"Name": "Láncing", "Name": "Láncing",
"Type": "konnyu", "Type": "konnyu",
"VO": 4, "VO": 4,
"Price": 50 "Price": 50
}, },
{ {
"ID": "pikkelyvert", "Id": "pikkelyvert",
"Name": "Pikkelyvért", "Name": "Pikkelyvért",
"Type": "kozepes", "Type": "kozepes",
"VO": 4, "VO": 4,
"Price": 30 "Price": 30
}, },
{ {
"ID": "lancvert", "Id": "lancvert",
"Name": "Láncvért", "Name": "Láncvért",
"Type": "kozepes", "Type": "kozepes",
"VO": 5, "VO": 5,
"Price": 75 "Price": 75
}, },
{ {
"ID": "mellvert", "Id": "mellvert",
"Name": "Mellvért", "Name": "Mellvért",
"Type": "kozepes", "Type": "kozepes",
"VO": 5, "VO": 5,
"Price": 100 "Price": 100
}, },
{ {
"ID": "racsvert", "Id": "racsvert",
"Name": "Rácsvért", "Name": "Rácsvért",
"Type": "nehez", "Type": "nehez",
"VO": 6, "VO": 6,
"Price": 200 "Price": 200
}, },
{ {
"ID": "szalagvert", "Id": "szalagvert",
"Name": "Szalagvért", "Name": "Szalagvért",
"Type": "nehez", "Type": "nehez",
"VO": 6, "VO": 6,
"Price": 250 "Price": 250
}, },
{ {
"ID": "lemezvert", "Id": "lemezvert",
"Name": "Lemezvért", "Name": "Lemezvért",
"Type": "nehez", "Type": "nehez",
"VO": 7, "VO": 7,
"Price": 400 "Price": 400
}, },
{ {
"ID": "teljes_lemezvert", "Id": "teljes_lemezvert",
"Name": "Teljes lemezvért", "Name": "Teljes lemezvért",
"Type": "nehez", "Type": "nehez",
"VO": 8, "VO": 8,
+1 -1
View File
@@ -71,7 +71,7 @@ export function KarakterInputToPdfView(karakter: KarakterInputs): KarakterPdfVie
const VarazslatMentokNF = CalculateVarazslatMentokNF(karakter) const VarazslatMentokNF = CalculateVarazslatMentokNF(karakter)
const fegyverek = GetFegyverek(karakter.felszereles.fegyverIDk) const fegyverek = GetFegyverek(karakter.felszereles.fegyverIDk)
const felszereles = [ pancel?.Name, pajzs?.Name, ...fegyverek.filter(f => f.ID !== 'okol').map(f => f.Name.includes('és') ? f.Name.split(' ')[0] : f.Name) ].filter(x => !!x) as string[] const felszereles = [ pancel?.Name, pajzs?.Name, ...fegyverek.filter(f => f.Id !== 'okol').map(f => f.Name.includes('és') ? f.Name.split(' ')[0] : f.Name) ].filter(x => !!x) as string[]
return { return {
Faj: FajLabel(karakter.faj), Faj: FajLabel(karakter.faj),