level up to 2 almost working

This commit is contained in:
2023-09-14 22:19:21 +02:00
parent eb077928cf
commit 2f4cde091b
7 changed files with 123 additions and 199 deletions
+31 -8
View File
@@ -1,6 +1,29 @@
import React from "react"; import React from "react";
import {KarakterClass, KarakterInputs} from "../domain-models/karakter"; import {KarakterClass, KarakterInputs} from "../domain-models/karakter";
import {SignedNumberToText} from "./Helpers"; import {SignedNumberToText} from "./Helpers";
import {Mentok, MentoTipus, MentoTipusLabel} from "../domain-models/mentok";
function MentoNovekedes(props : {tipus: MentoTipus, ujMentok: Mentok, regiMentok: Mentok}) {
const {tipus, ujMentok, regiMentok} = props
if (ujMentok[tipus] === regiMentok[tipus]) {
return null
}
return <div className='row m-2'>
<label className='col-sm-6 col-8 col-form-label'>{MentoTipusLabel(tipus)} mentő növekedés{' '}</label>
<span className='col col-form-label'>{SignedNumberToText(ujMentok[tipus] - regiMentok[tipus])}</span>
</div>;
}
function UjMento(props : {tipus: MentoTipus, ujMentok: Mentok, regiMentok: Mentok}) {
const {tipus, ujMentok, regiMentok} = props
if (ujMentok[tipus] === regiMentok[tipus]) {
return null
}
return <div className='row m-2'>
<label className='col-sm-6 col-8 col-form-label'>{MentoTipusLabel(tipus)} mentő új értéke{' '}</label>
<span className='col col-form-label'>{SignedNumberToText(ujMentok[tipus])}</span>
</div>;
}
function Level2(props: { function Level2(props: {
karakter: KarakterInputs karakter: KarakterInputs
@@ -9,6 +32,8 @@ function Level2(props: {
}) { }) {
const {karakter, rolledHP, changeRolledHP} = props const {karakter, rolledHP, changeRolledHP} = props
const karakterClass = new KarakterClass(karakter) const karakterClass = new KarakterClass(karakter)
const regiMentok = karakterClass.MentokTulajdonsaggal(karakter.szint - 1)
const ujMentok = karakterClass.MentokTulajdonsaggal(karakter.szint)
return <> return <>
<div className='row'> <div className='row'>
@@ -33,10 +58,9 @@ function Level2(props: {
<label className='col-sm-6 col-8 col-form-label'>Támadás bónusz növekedés{' '}</label> <label className='col-sm-6 col-8 col-form-label'>Támadás bónusz növekedés{' '}</label>
<span className='col col-form-label'>+1</span> <span className='col col-form-label'>+1</span>
</div> </div>
<div className='row m-2'> <MentoNovekedes tipus={'kitartas'} ujMentok={ujMentok} regiMentok={regiMentok} />
<label className='col-sm-6 col-8 col-form-label'>Elsődleges mentő{' '}</label> <MentoNovekedes tipus={'reflex'} ujMentok={ujMentok} regiMentok={regiMentok} />
<span className='col col-form-label'>+1</span> <MentoNovekedes tipus={'akaratero'} ujMentok={ujMentok} regiMentok={regiMentok} />
</div>
</div> </div>
<div className='col-lg-6'> <div className='col-lg-6'>
<div className='row m-2'> <div className='row m-2'>
@@ -47,10 +71,9 @@ function Level2(props: {
<label className='col-sm-6 col-8 col-form-label'>Új Támadás bónusz{' '}</label> <label className='col-sm-6 col-8 col-form-label'>Új Támadás bónusz{' '}</label>
<span className='col col-form-label'>{karakterClass.TamadasBonusz().map(SignedNumberToText).join("/")}</span> <span className='col col-form-label'>{karakterClass.TamadasBonusz().map(SignedNumberToText).join("/")}</span>
</div> </div>
<div className='row m-2'> <UjMento tipus={'kitartas'} ujMentok={ujMentok} regiMentok={regiMentok} />
<label className='col-sm-6 col-8 col-form-label'>Új Mentő{' '}</label> <UjMento tipus={'reflex'} ujMentok={ujMentok} regiMentok={regiMentok} />
<span className='col col-form-label'>{SignedNumberToText(karakterClass.KitartasMentoAlap())}</span> <UjMento tipus={'akaratero'} ujMentok={ujMentok} regiMentok={regiMentok} />
</div>
</div> </div>
</div> </div>
</> </>
+11 -10
View File
@@ -1,18 +1,19 @@
import React from "react"; import React from "react";
import {OverlayTrigger, Tooltip} from "react-bootstrap"; import {OverlayTrigger, Tooltip} from "react-bootstrap";
import {SignedNumberToText} from "./Helpers"; import {SignedNumberToText} from "./Helpers";
import {KarakterMasodlagosErtekek} from "../domain-models/masodlagos_ertekek"; import {Karakter} from "../domain-models/karakter";
function MasodlagosErtekek(props: {ertekek: KarakterMasodlagosErtekek}) { function MasodlagosErtekek(props: {karakter: Karakter}) {
const { ertekek } = props const { karakter } = props
const tooltip = ( const tooltip = (
<Tooltip id="tooltip"> <Tooltip id="tooltip">
<strong>Hentelési Potenciál</strong> <strong>Hentelési Potenciál</strong>
</Tooltip> </Tooltip>
); );
const mentok = karakter.MentokTulajdonsaggal(1)
return <> return <>
<div className='row'> <div className='row'>
@@ -26,33 +27,33 @@ function MasodlagosErtekek(props: {ertekek: KarakterMasodlagosErtekek}) {
<span>(HP)</span> <span>(HP)</span>
</OverlayTrigger> </OverlayTrigger>
</label> </label>
<p className='col col-form-label'>{ertekek.HP}</p> <p className='col col-form-label'>{karakter.HP()}</p>
</div> </div>
<div className='row m-2'> <div className='row m-2'>
<label className='col-sm-6 col-8 col-form-label' >Védekezési Osztály (VO)</label> <label className='col-sm-6 col-8 col-form-label' >Védekezési Osztály (VO)</label>
<p className='col col-form-label'>{ertekek.VO}</p> <p className='col col-form-label'>{karakter.VO()}</p>
</div> </div>
<div className='row m-2'> <div className='row m-2'>
<label className='col-sm-6 col-8 col-form-label' >Közelharci támadás</label> <label className='col-sm-6 col-8 col-form-label' >Közelharci támadás</label>
<p className='col col-form-label'>{SignedNumberToText(ertekek.KozelHarciTB)}</p> <p className='col col-form-label'>{SignedNumberToText(karakter.KozelharciTB(1)[0])}</p>
</div> </div>
<div className='row m-2'> <div className='row m-2'>
<label className='col-sm-6 col-8 col-form-label' >Célzó támadás</label> <label className='col-sm-6 col-8 col-form-label' >Célzó támadás</label>
<p className='col col-form-label'>{SignedNumberToText(ertekek.CelzoTB)}</p> <p className='col col-form-label'>{SignedNumberToText(karakter.CelzoTB(1)[0])}</p>
</div> </div>
</div> </div>
<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' >Kitartás mentő</label> <label className='col-sm-6 col-8 col-form-label' >Kitartás mentő</label>
<p className='col col-form-label'>{SignedNumberToText(ertekek.KitartasMento)}</p> <p className='col col-form-label'>{SignedNumberToText(mentok.kitartas)}</p>
</div> </div>
<div className='row m-2'> <div className='row m-2'>
<label className='col-sm-6 col-8 col-form-label' >Reflex mentő</label> <label className='col-sm-6 col-8 col-form-label' >Reflex mentő</label>
<p className='col col-form-label'>{SignedNumberToText(ertekek.ReflexMento)}</p> <p className='col col-form-label'>{SignedNumberToText(mentok.reflex)}</p>
</div> </div>
<div className='row m-2'> <div className='row m-2'>
<label className='col-sm-6 col-8 col-form-label' >Akaraterő mentő </label> <label className='col-sm-6 col-8 col-form-label' >Akaraterő mentő </label>
<p className='col col-form-label'>{SignedNumberToText(ertekek.AkarateroMento)}</p> <p className='col col-form-label'>{SignedNumberToText(mentok.akaratero)}</p>
</div> </div>
</div> </div>
</div> </div>
+39 -47
View File
@@ -1,9 +1,9 @@
import {Faj} from "./faj"; import {Faj} from "./faj";
import {Osztaly} from "./osztaly"; import {Osztaly} from "./osztaly";
import {KarakterTulajdonsagok, Modifier} from "./tulajdonsag"; import {KarakterTulajdonsagok, Modifier} from "./tulajdonsag";
import {CalculateMasodlagosErtekek, KarakterMasodlagosErtekek} from "./masodlagos_ertekek";
import {Kepzettseg, Kepzettsegek, KepzettsegId} from "./kepzettsegek"; import {Kepzettseg, Kepzettsegek, KepzettsegId} from "./kepzettsegek";
import TamadasBonuszTabla from './tamadas_bonus_tabla.json'; import TamadasBonuszTabla from './tamadas_bonus_tabla.json';
import {ElsodlegesMento, MasodlagosMento, Mentok, MentoTipus} from "./mentok";
export interface Karakter { export interface Karakter {
Name: string Name: string
@@ -18,11 +18,11 @@ export interface Karakter {
VO: () => number VO: () => number
Mozgas: () => number Mozgas: () => number
Kezdemenyezes: () => number Kezdemenyezes: () => number
KozelharciTB: () => number[] KozelharciTB: (szint?: number) => number[]
CelzoTB: () => number[] CelzoTB: (szint?: number) => number[]
KitartasMentoAlap: () => number ElsodlegesMentok: () => MentoTipus[]
ReflexMentoAlap: () => number MentokAlap: (szint?: number) => Mentok
AkarateroMentoAlap: () => number MentokTulajdonsaggal: (szint?: number) => Mentok
Kepzettsegek: Kepzettseg[] Kepzettsegek: Kepzettseg[]
TolvajKepzettsegek: Kepzettseg[] TolvajKepzettsegek: Kepzettseg[]
} }
@@ -54,7 +54,6 @@ export class KarakterClass implements Karakter {
public Kepzettsegek: Kepzettseg[] public Kepzettsegek: Kepzettseg[]
public TolvajKepzettsegek: Kepzettseg[] public TolvajKepzettsegek: Kepzettseg[]
private MasodlagosErtekek : KarakterMasodlagosErtekek
private HProlls: number[] private HProlls: number[]
constructor(inputs: KarakterInputs) { constructor(inputs: KarakterInputs) {
@@ -65,7 +64,6 @@ export class KarakterClass implements Karakter {
this.Faj = inputs.faj this.Faj = inputs.faj
this.Osztaly = inputs.osztaly this.Osztaly = inputs.osztaly
this.Tulajdonsagok = inputs.tulajdonsagok this.Tulajdonsagok = inputs.tulajdonsagok
this.MasodlagosErtekek = CalculateMasodlagosErtekek(inputs.osztaly, inputs.tulajdonsagok)
this.Kepzettsegek = inputs.kepzettsegek.map(k => Kepzettsegek[k]) this.Kepzettsegek = inputs.kepzettsegek.map(k => Kepzettsegek[k])
this.TolvajKepzettsegek = (inputs.tolvajKepzettsegek || []).map(k => Kepzettsegek[k]) this.TolvajKepzettsegek = (inputs.tolvajKepzettsegek || []).map(k => Kepzettsegek[k])
this.Szint = Math.min(Math.max(1,inputs.szint), 20) this.Szint = Math.min(Math.max(1,inputs.szint), 20)
@@ -77,7 +75,7 @@ export class KarakterClass implements Karakter {
.map(hp => Math.max(1, hp + Modifier(this.Tulajdonsagok.t_egs))) .map(hp => Math.max(1, hp + Modifier(this.Tulajdonsagok.t_egs)))
.reduce((sum, val) => sum + val, 0) .reduce((sum, val) => sum + val, 0)
public VO = () => this.MasodlagosErtekek.VO public VO = () => 10 + Modifier(this.Tulajdonsagok.t_ugy)
public Mozgas = () => this.Faj === Faj.Torpe ? 20 : 30 public Mozgas = () => this.Faj === Faj.Torpe ? 20 : 30
@@ -85,7 +83,7 @@ export class KarakterClass implements Karakter {
return Modifier(this.Tulajdonsagok.t_ugy) + (this.Osztaly === Osztaly.Tolvaj ? 4 : 0) return Modifier(this.Tulajdonsagok.t_ugy) + (this.Osztaly === Osztaly.Tolvaj ? 4 : 0)
} }
public TamadasBonusz() : number[] { public TamadasBonusz(szint: number = this.Szint) : number[] {
let base = [] let base = []
switch (this.Osztaly){ switch (this.Osztaly){
case Osztaly.Barbar: case Osztaly.Barbar:
@@ -104,70 +102,64 @@ export class KarakterClass implements Karakter {
base = TamadasBonuszTabla['feles']; base = TamadasBonuszTabla['feles'];
break; break;
} }
return base[this.Szint-1] return base[szint-1]
} }
public KozelharciTB(): number[] { public KozelharciTB(szint: number = this.Szint): number[] {
const base = this.TamadasBonusz(); const base = this.TamadasBonusz(szint);
let modifier = Modifier(this.Tulajdonsagok.t_ero) let modifier = Modifier(this.Tulajdonsagok.t_ero)
if (this.Osztaly === Osztaly.Kaloz && this.Tulajdonsagok.t_ugy > this.Tulajdonsagok.t_ero) { if (this.Osztaly === Osztaly.Kaloz && this.Tulajdonsagok.t_ugy > this.Tulajdonsagok.t_ero) {
modifier = Modifier(this.Tulajdonsagok.t_ugy) modifier = Modifier(this.Tulajdonsagok.t_ugy)
} }
return base.map(v => v + modifier) return base.map(v => v + modifier)
} }
public CelzoTB(): number[] { public CelzoTB(szint: number = this.Szint): number[] {
let base = this.TamadasBonusz() let base = this.TamadasBonusz(szint)
if (this.Osztaly === Osztaly.Ijasz) { if (this.Osztaly === Osztaly.Ijasz) {
base = [base[0], ...base] base = [base[0], ...base]
} }
return base.map(v => v + Modifier(this.Tulajdonsagok.t_ugy)) return base.map(v => v + Modifier(this.Tulajdonsagok.t_ugy))
} }
public KitartasMentoAlap() : number { public ElsodlegesMentok() : MentoTipus[] {
let t: MentoTipus[] = []
switch (this.Osztaly){ switch (this.Osztaly){
case Osztaly.Barbar: case Osztaly.Barbar:
case Osztaly.Amazon: case Osztaly.Amazon:
case Osztaly.Ijasz: case Osztaly.Ijasz:
case Osztaly.Kaloz: case Osztaly.Kaloz:
case Osztaly.Harcos: case Osztaly.Harcos:
t = ['kitartas'];
break;
case Osztaly.Pap: case Osztaly.Pap:
return 2; t = ['kitartas', 'akaratero'];
break;
case Osztaly.Tolvaj: case Osztaly.Tolvaj:
t = ['reflex'];
break;
case Osztaly.Varazslo: case Osztaly.Varazslo:
case Osztaly.Illuzionista: case Osztaly.Illuzionista:
return 0; t = ['akaratero']
break;
}
return t
}
public MentokAlap(szint: number = this.Szint) {
const elsodlegesek = this.ElsodlegesMentok()
return {
kitartas: elsodlegesek.includes('kitartas') ? ElsodlegesMento(szint) : MasodlagosMento(szint),
reflex: elsodlegesek.includes('reflex') ? ElsodlegesMento(szint) : MasodlagosMento(szint),
akaratero: elsodlegesek.includes('akaratero') ? ElsodlegesMento(szint) : MasodlagosMento(szint),
} }
} }
public ReflexMentoAlap() : number { public MentokTulajdonsaggal(szint: number = this.Szint) {
switch (this.Osztaly){ const mentok = this.MentokAlap(szint)
case Osztaly.Tolvaj: return {
return 2; kitartas: mentok.kitartas + Modifier(this.Tulajdonsagok.t_egs),
case Osztaly.Barbar: reflex: mentok.reflex + Modifier(this.Tulajdonsagok.t_ugy),
case Osztaly.Amazon: akaratero: mentok.akaratero + Modifier(this.Tulajdonsagok.t_bol),
case Osztaly.Ijasz:
case Osztaly.Kaloz:
case Osztaly.Harcos:
case Osztaly.Pap:
case Osztaly.Varazslo:
case Osztaly.Illuzionista:
return 0;
}
}
public AkarateroMentoAlap() : number {
switch (this.Osztaly){
case Osztaly.Pap:
case Osztaly.Varazslo:
case Osztaly.Illuzionista:
return 2;
case Osztaly.Tolvaj:
case Osztaly.Barbar:
case Osztaly.Amazon:
case Osztaly.Ijasz:
case Osztaly.Kaloz:
case Osztaly.Harcos:
return 0;
} }
} }
-124
View File
@@ -1,124 +0,0 @@
import {Osztaly} from "./osztaly";
import {KarakterTulajdonsagok, Modifier} from "./tulajdonsag";
export interface KarakterMasodlagosErtekek {
HP: number
VO: number
CelzoTB: number
KozelHarciTB: number
KitartasMento: number
ReflexMento: number
AkarateroMento: number
}
export function CalculateMasodlagosErtekek(osztaly: Osztaly, tulajdonsagok: KarakterTulajdonsagok) : KarakterMasodlagosErtekek {
return {
HP: HP(osztaly, tulajdonsagok.t_egs),
VO: 10 + Modifier(tulajdonsagok.t_ugy),
KozelHarciTB: KozelharciTB(osztaly, tulajdonsagok),
CelzoTB: TamadasBonusz(osztaly) + Modifier(tulajdonsagok.t_ugy),
KitartasMento: KitartasMento(osztaly) + Modifier(tulajdonsagok.t_egs),
ReflexMento: ReflexMento(osztaly) + Modifier(tulajdonsagok.t_ugy),
AkarateroMento: AkarateroMento(osztaly) + Modifier(tulajdonsagok.t_bol),
}
}
function HP(osztaly: Osztaly, egeszseg: number) {
let base = 4;
switch (osztaly){
case Osztaly.Barbar:
base = 12
break;
case Osztaly.Amazon:
case Osztaly.Ijasz:
case Osztaly.Kaloz:
case Osztaly.Harcos:
base = 10;
break
case Osztaly.Pap:
base = 8;
break;
case Osztaly.Tolvaj:
base = 6;
break;
case Osztaly.Varazslo:
case Osztaly.Illuzionista:
base = 4;
break;
}
return base + Modifier(egeszseg)
}
function TamadasBonusz(osztaly: Osztaly) : number {
switch (osztaly){
case Osztaly.Barbar:
case Osztaly.Amazon:
case Osztaly.Ijasz:
case Osztaly.Kaloz:
case Osztaly.Harcos:
return 2;
case Osztaly.Pap:
case Osztaly.Tolvaj:
return 0;
case Osztaly.Varazslo:
case Osztaly.Illuzionista:
return 0;
}
}
function KozelharciTB(osztaly: Osztaly, tulajdonsagok: KarakterTulajdonsagok): number {
const base = TamadasBonusz(osztaly);
if (osztaly === Osztaly.Kaloz && tulajdonsagok.t_ugy > tulajdonsagok.t_ero) {
return base + Modifier(tulajdonsagok.t_ugy)
}
return base + Modifier(tulajdonsagok.t_ero)
}
function KitartasMento(osztaly: Osztaly) : number {
switch (osztaly){
case Osztaly.Barbar:
case Osztaly.Amazon:
case Osztaly.Ijasz:
case Osztaly.Kaloz:
case Osztaly.Harcos:
case Osztaly.Pap:
return 2;
case Osztaly.Tolvaj:
case Osztaly.Varazslo:
case Osztaly.Illuzionista:
return 0;
}
}
function ReflexMento(osztaly: Osztaly) : number {
switch (osztaly){
case Osztaly.Tolvaj:
return 2;
case Osztaly.Barbar:
case Osztaly.Amazon:
case Osztaly.Ijasz:
case Osztaly.Kaloz:
case Osztaly.Harcos:
case Osztaly.Pap:
case Osztaly.Varazslo:
case Osztaly.Illuzionista:
return 0;
}
}
function AkarateroMento(osztaly: Osztaly) : number {
switch (osztaly){
case Osztaly.Pap:
case Osztaly.Varazslo:
case Osztaly.Illuzionista:
return 2;
case Osztaly.Tolvaj:
case Osztaly.Barbar:
case Osztaly.Amazon:
case Osztaly.Ijasz:
case Osztaly.Kaloz:
case Osztaly.Harcos:
return 0;
}
}
+30
View File
@@ -0,0 +1,30 @@
export interface Mentok {
kitartas: number
reflex: number
akaratero: number
}
export type MentoTipus = keyof Mentok
export function MentoTipusLabel(tipus: MentoTipus): string {
let label: string | null = null
switch (tipus) {
case "akaratero":
label = "Akaraterő";
break;
case "kitartas":
label = "Kitartás";
break;
case "reflex":
label = "Reflex";
break;
}
return label
}
export function ElsodlegesMento(szint: number): number {
return Math.min(Math.floor(2 + szint / 2), 10);
}
export function MasodlagosMento(szint: number): number {
return Math.floor(szint / 3)
}
+4 -4
View File
@@ -9,7 +9,6 @@ import KarakterKepzettsegek from "../components/KarakterKepzettsegek";
import {KarakterTulajdonsagok, Modifier} from "../domain-models/tulajdonsag"; import {KarakterTulajdonsagok, Modifier} from "../domain-models/tulajdonsag";
import MasodlagosErtekek from "../components/MasodlagosErtekek"; import MasodlagosErtekek from "../components/MasodlagosErtekek";
import {AvailableKezpettsegList, TolvajKepzettsegList} from "../domain-models/kepzettsegek"; import {AvailableKezpettsegList, TolvajKepzettsegList} from "../domain-models/kepzettsegek";
import {CalculateMasodlagosErtekek} from "../domain-models/masodlagos_ertekek";
import {CreatePDF} from "../pdf/character.pdf"; import {CreatePDF} from "../pdf/character.pdf";
import {KarakterClass, KarakterInputs} from "../domain-models/karakter"; import {KarakterClass, KarakterInputs} from "../domain-models/karakter";
import Level2 from "../components/Level2"; import Level2 from "../components/Level2";
@@ -52,6 +51,7 @@ function getNumberOfKepzettsegek(t_int: number, faj: Faj, max: number) {
function CreateCharacterPage() { function CreateCharacterPage() {
let [karakter, changeKarakter] = useState(karakterDefaults) let [karakter, changeKarakter] = useState(karakterDefaults)
const karakterClass = new KarakterClass(karakter)
const availableKepzettsegList = AvailableKezpettsegList(karakter.osztaly) const availableKepzettsegList = AvailableKezpettsegList(karakter.osztaly)
@@ -64,7 +64,7 @@ function CreateCharacterPage() {
} }
function levelUp() { function levelUp() {
const dice = new KarakterClass(karakter).baseHP() const dice = karakterClass.baseHP()
const roll = getRandomInt(dice) const roll = getRandomInt(dice)
console.log(`Level 2 HP roll on d${dice} is: ${roll}`) console.log(`Level 2 HP roll on d${dice} is: ${roll}`)
changeKarakter({...karakter, szint: karakter.szint + 1, HProlls: [...karakter.HProlls, roll]}) changeKarakter({...karakter, szint: karakter.szint + 1, HProlls: [...karakter.HProlls, roll]})
@@ -144,7 +144,7 @@ function CreateCharacterPage() {
/> />
<hr /> <hr />
<MasodlagosErtekek ertekek={CalculateMasodlagosErtekek(karakter.osztaly, karakter.tulajdonsagok)} /> <MasodlagosErtekek karakter={karakterClass} />
{karakter.szint > 1 && <Level2 karakter={{...karakter}} rolledHP={karakter.HProlls[0]} changeRolledHP={chageLevel2HProll} /> } {karakter.szint > 1 && <Level2 karakter={{...karakter}} rolledHP={karakter.HProlls[0]} changeRolledHP={chageLevel2HProll} /> }
@@ -154,7 +154,7 @@ function CreateCharacterPage() {
</div> </div>
<div className='d-grid gap-2 m-5'> <div className='d-grid gap-2 m-5'>
<button className='btn btn-danger btn-lg' type='button' onClick={async () => await CreatePDF(new KarakterClass(karakter))}>Létrehozás</button> <button className='btn btn-danger btn-lg' type='button' onClick={async () => await CreatePDF(karakterClass)}>Létrehozás</button>
</div> </div>
</form> </form>
</div> </div>
+8 -6
View File
@@ -96,21 +96,22 @@ function drawTulajdonsagok(page: PDFPage, tulajdonsagok: KarakterTulajdonsagok,
} }
function drawMentok(page: PDFPage, karakter: Karakter, fontSizeBase: number, pdfFont: PDFFont) { function drawMentok(page: PDFPage, karakter: Karakter, fontSizeBase: number, pdfFont: PDFFont) {
page.drawText(SignedNumberToText(karakter.KitartasMentoAlap()), { const mentokAlap = karakter.MentokAlap()
page.drawText(SignedNumberToText(mentokAlap.kitartas), {
x: 435, x: 435,
y: 613, y: 613,
size: fontSizeBase, size: fontSizeBase,
font: pdfFont, font: pdfFont,
color: rgb(0, 0, 0), color: rgb(0, 0, 0),
}) })
page.drawText(SignedNumberToText(karakter.ReflexMentoAlap()), { page.drawText(SignedNumberToText(mentokAlap.reflex), {
x: 435, x: 435,
y: 580, y: 580,
size: fontSizeBase, size: fontSizeBase,
font: pdfFont, font: pdfFont,
color: rgb(0, 0, 0), color: rgb(0, 0, 0),
}) })
page.drawText(SignedNumberToText(karakter.AkarateroMentoAlap()), { page.drawText(SignedNumberToText(mentokAlap.akaratero), {
x: 435, x: 435,
y: 547, y: 547,
size: fontSizeBase, size: fontSizeBase,
@@ -138,21 +139,22 @@ function drawMentok(page: PDFPage, karakter: Karakter, fontSizeBase: number, pdf
font: pdfFont, font: pdfFont,
color: rgb(0, 0, 0), color: rgb(0, 0, 0),
}) })
page.drawText(SignedNumberToText(karakter.KitartasMentoAlap() + Modifier(karakter.Tulajdonsagok.t_egs)), { const mentok = karakter.MentokTulajdonsaggal()
page.drawText(SignedNumberToText(mentok.kitartas), {
x: 515, x: 515,
y: 613, y: 613,
size: fontSizeBase, size: fontSizeBase,
font: pdfFont, font: pdfFont,
color: rgb(0, 0, 0), color: rgb(0, 0, 0),
}) })
page.drawText(SignedNumberToText(karakter.ReflexMentoAlap() + Modifier(karakter.Tulajdonsagok.t_ugy)), { page.drawText(SignedNumberToText(mentok.reflex), {
x: 515, x: 515,
y: 580, y: 580,
size: fontSizeBase, size: fontSizeBase,
font: pdfFont, font: pdfFont,
color: rgb(0, 0, 0), color: rgb(0, 0, 0),
}) })
page.drawText(SignedNumberToText(karakter.AkarateroMentoAlap() + Modifier(karakter.Tulajdonsagok.t_bol)), { page.drawText(SignedNumberToText(mentok.akaratero), {
x: 515, x: 515,
y: 547, y: 547,
size: fontSizeBase, size: fontSizeBase,