diff --git a/src/domain-models/karakter.ts b/src/domain-models/karakter.ts
index db0fa93..92f20e2 100644
--- a/src/domain-models/karakter.ts
+++ b/src/domain-models/karakter.ts
@@ -1,6 +1,6 @@
import {Faj} from "./faj";
import {Osztaly} from "./osztaly";
-import {KarakterTulajdonsagok, TulajdonsagDefaults} from "./tulajdonsag";
+import {KarakterTulajdonsagok, Tulajdonsag, TulajdonsagDefaults} from "./tulajdonsag";
import {KepzettsegId} from "./kepzettsegek";
export interface KarakterInputs {
@@ -14,7 +14,8 @@ export interface KarakterInputs {
kepzettsegek: KepzettsegId[],
tolvajKepzettsegek?: KepzettsegId[]
szint: number
- HProlls: number[],
+ hpRolls: number[],
+ tulajdonsagNovekedes: Tulajdonsag[],
}
export const KarakterDefaults: KarakterInputs = {
@@ -25,6 +26,7 @@ export const KarakterDefaults: KarakterInputs = {
osztaly: Osztaly.Harcos,
kepzettsegek: [],
szint: 1,
- HProlls: [],
+ hpRolls: [],
+ tulajdonsagNovekedes: []
}
diff --git a/src/domain-models/masodlagos_ertekek.ts b/src/domain-models/masodlagos_ertekek.ts
index 9172222..1ea130e 100644
--- a/src/domain-models/masodlagos_ertekek.ts
+++ b/src/domain-models/masodlagos_ertekek.ts
@@ -12,7 +12,7 @@ export interface MasodlagosErtekekView {
Mentok: Mentok
}
-export type KarakterpickForMasodlagosErtekek = Pick
+export type KarakterpickForMasodlagosErtekek = Pick
export function BaseHP(osztaly: Osztaly) {
let base = 4;
@@ -40,9 +40,9 @@ export function BaseHP(osztaly: Osztaly) {
return base
}
-export function HP(karakter: Pick): number {
+export function HP(karakter: Pick): number {
const egeszsegModifier = Modifier(karakter.tulajdonsagok.t_egs)
- return BaseHP(karakter.osztaly) + egeszsegModifier + karakter.HProlls
+ return BaseHP(karakter.osztaly) + egeszsegModifier + karakter.hpRolls
// https://lfg.hu/forum/topic/15079-kard-es-magia/page/219/#comment-2218333
.map(hp => Math.max(1, hp + egeszsegModifier))
.reduce((sum, val) => sum + val, 0)
diff --git a/src/domain-models/tulajdonsag.ts b/src/domain-models/tulajdonsag.ts
index 691b91f..1ca0123 100644
--- a/src/domain-models/tulajdonsag.ts
+++ b/src/domain-models/tulajdonsag.ts
@@ -131,6 +131,24 @@ export function TulajdonsagModositokFajokra(tul: Tulajdonsag) {
return (faj: Faj) => tulajdonsagModositokPerFaj(tul, faj);
}
-export function FajiTulajdonsagModositok(faj: Faj) {
- return (tul: Tulajdonsag) => tulajdonsagModositokPerFaj(tul, faj)
+export function FajiTulajdonsagModositok(faj: Faj) : KarakterTulajdonsagok {
+ return {
+ [Tulajdonsag.Ero]: tulajdonsagModositokPerFaj(Tulajdonsag.Ero, faj),
+ [Tulajdonsag.Ugyesseg]: tulajdonsagModositokPerFaj(Tulajdonsag.Ugyesseg, faj),
+ [Tulajdonsag.Egeszseg]: tulajdonsagModositokPerFaj(Tulajdonsag.Egeszseg, faj),
+ [Tulajdonsag.Intelligencia]: tulajdonsagModositokPerFaj(Tulajdonsag.Intelligencia, faj),
+ [Tulajdonsag.Bolcsesseg]: tulajdonsagModositokPerFaj(Tulajdonsag.Bolcsesseg, faj),
+ [Tulajdonsag.Karizma]: tulajdonsagModositokPerFaj(Tulajdonsag.Karizma, faj),
+ }
+}
+
+export function TulajdonsagokFajjal(tulajdonsagok: KarakterTulajdonsagok, faj: Faj): KarakterTulajdonsagok {
+ return {
+ [Tulajdonsag.Ero]: tulajdonsagok.t_ero + tulajdonsagModositokPerFaj(Tulajdonsag.Ero, faj),
+ [Tulajdonsag.Ugyesseg]: tulajdonsagok.t_ugy + tulajdonsagModositokPerFaj(Tulajdonsag.Ugyesseg, faj),
+ [Tulajdonsag.Egeszseg]: tulajdonsagok.t_egs + tulajdonsagModositokPerFaj(Tulajdonsag.Egeszseg, faj),
+ [Tulajdonsag.Intelligencia]: tulajdonsagok.t_int + tulajdonsagModositokPerFaj(Tulajdonsag.Intelligencia, faj),
+ [Tulajdonsag.Bolcsesseg]: tulajdonsagok.t_bol + tulajdonsagModositokPerFaj(Tulajdonsag.Bolcsesseg, faj),
+ [Tulajdonsag.Karizma]: tulajdonsagok.t_kar + tulajdonsagModositokPerFaj(Tulajdonsag.Karizma, faj),
+ }
}
\ No newline at end of file
diff --git a/src/pages/CreateCharacter.tsx b/src/pages/CreateCharacter.tsx
index 8568364..495851a 100644
--- a/src/pages/CreateCharacter.tsx
+++ b/src/pages/CreateCharacter.tsx
@@ -6,7 +6,7 @@ import FajSelector from "../components/FajSelector";
import Tulajdonsagok from "../components/Tulajdonsagok";
import OsztalySelector from "../components/OsztalySelector";
import KarakterKepzettsegek from "../components/KarakterKepzettsegek";
-import {KarakterTulajdonsagok} from "../domain-models/tulajdonsag";
+import {KarakterTulajdonsagok, TulajdonsagokFajjal} from "../domain-models/tulajdonsag";
import MasodlagosErtekek from "../components/MasodlagosErtekek";
import {
AvailableKezpettsegList,
@@ -25,12 +25,12 @@ function CreateCharacterPage() {
let [karakter, changeKarakter] = useState(KarakterDefaults)
+ const tulajdonsagokTotal = TulajdonsagokFajjal(karakter.tulajdonsagok, karakter.faj)
+
const changeKepzettseg = (k: KepzettsegId[]) => changeKarakter({...karakter, kepzettsegek: k})
const changeTolvajKepzettseg = (tk?: KepzettsegId[]) => changeKarakter({...karakter, tolvajKepzettsegek: tk})
-
SetDefaultTolvajKepzettsegek(karakter, changeTolvajKepzettseg)
- SetDefaultKepzettsegek(karakter, changeKepzettseg)
-
+ SetDefaultKepzettsegek({...karakter, tulajdonsagok: tulajdonsagokTotal}, changeKepzettseg)
const availableKepzettsegList = AvailableKezpettsegList(karakter.osztaly)
function levelUp() {
@@ -38,15 +38,15 @@ function CreateCharacterPage() {
const dice = BaseHP(karakter.osztaly)
const roll = dAny(dice)
console.log(`Level ${szint} HP roll on d${dice} is: ${roll}`)
- changeKarakter({...karakter, szint: szint, HProlls: [...karakter.HProlls, roll]})
+ changeKarakter({...karakter, szint: szint, hpRolls: [...karakter.hpRolls, roll]})
}
function levelDown() {
- changeKarakter({...karakter, szint: karakter.szint - 1, HProlls: karakter.HProlls.slice(0, -1)})
+ changeKarakter({...karakter, szint: karakter.szint - 1, hpRolls: karakter.hpRolls.slice(0, -1)})
}
const changeHProllAtSzint = (szint: number) => (newHProll: number) => {
- changeKarakter({...karakter, HProlls: arraySetN(karakter.HProlls, szint-2, newHProll)})
+ changeKarakter({...karakter, hpRolls: arraySetN(karakter.hpRolls, szint-2, newHProll)})
console.log(karakter)
}
@@ -107,7 +107,7 @@ function CreateCharacterPage() {
/>
-
+
- {karakter.HProlls.map((_, i) => (
- )
+ {karakter.hpRolls.map((_, i) => i+2).map(szint => (
+ )
)}
diff --git a/src/pdf/karakter_pdf_view.ts b/src/pdf/karakter_pdf_view.ts
index 37ae7a7..e03d04a 100644
--- a/src/pdf/karakter_pdf_view.ts
+++ b/src/pdf/karakter_pdf_view.ts
@@ -1,4 +1,4 @@
-import {KarakterTulajdonsagok, TulajdonsagModosito} from "../domain-models/tulajdonsag";
+import {KarakterTulajdonsagok, TulajdonsagModosito, TulajdonsagokFajjal} from "../domain-models/tulajdonsag";
import {Mentok, MentokAlap, MentoModositok} from "../domain-models/mentok";
import {Kepzettseg, Kepzettsegek} from "../domain-models/kepzettsegek";
import {CalculateMasodlagosErtekek} from "../domain-models/masodlagos_ertekek";
@@ -31,8 +31,10 @@ export interface KarakterPdfView {
}
export function KarakterInputToPdfView(karakter: KarakterInputs): KarakterPdfView {
+ const tulajdonsagok = TulajdonsagokFajjal(karakter.tulajdonsagok, karakter.faj)
+ karakter = {...karakter, tulajdonsagok}
+ const tulajdonsagModositok = TulajdonsagModosito(tulajdonsagok)
const masodlagosErtekek = CalculateMasodlagosErtekek(karakter)
- const tulajdonsagModositok = TulajdonsagModosito(karakter.tulajdonsagok)
const mozgas = karakter.faj === Faj.Torpe ? 20 : 30
const kezdemenyezes = tulajdonsagModositok.t_ugy + (karakter.osztaly === Osztaly.Tolvaj ? 4 : 0)