mirror of
https://github.com/morbalint/kemkas.git
synced 2026-07-17 19:03:46 +00:00
pdf fixes: 10. szint, kepzettseg modifier
This commit is contained in:
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
## Fixes
|
## Fixes
|
||||||
- Kötelező képezettségek - Birodalmi tolvaj
|
- Kötelező képezettségek - Birodalmi tolvaj
|
||||||
|
- PDF pretty: Tamadas bonuszok +10/+5
|
||||||
|
|
||||||
## Level up
|
## Level up
|
||||||
- Faji szint korlatok
|
- Faji szint korlatok
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
import {KarakterPdfView} from "./karakter_pdf_view";
|
import {KarakterPdfView, KepzettsegPdfView} from "./karakter_pdf_view";
|
||||||
import {PDFDocument, PDFFont, PDFPage, rgb} from "pdf-lib";
|
import {PDFDocument, PDFFont, PDFPage, rgb} from "pdf-lib";
|
||||||
import fontkit from '@pdf-lib/fontkit'
|
import fontkit from '@pdf-lib/fontkit'
|
||||||
import {SignedNumberToText} from "../components/Helpers";
|
import {SignedNumberToText} from "../components/Helpers";
|
||||||
import {KarakterTulajdonsagok, Modifier} from "../domain-models/tulajdonsag";
|
import {KarakterTulajdonsagok, Modifier} from "../domain-models/tulajdonsag";
|
||||||
import download from "downloadjs";
|
import download from "downloadjs";
|
||||||
import {Kepzettseg} from "../domain-models/kepzettsegek";
|
|
||||||
|
|
||||||
function drawTulajdonsagok(page: PDFPage, tulajdonsagok: KarakterTulajdonsagok, fontSizeBase: number, pdfFont: PDFFont) {
|
function drawTulajdonsagok(page: PDFPage, tulajdonsagok: KarakterTulajdonsagok, fontSizeBase: number, pdfFont: PDFFont) {
|
||||||
page.drawText(tulajdonsagok.t_ero.toString(), {
|
page.drawText(tulajdonsagok.t_ero.toString(), {
|
||||||
@@ -167,22 +166,16 @@ function drawBaseInfo(karakter: KarakterPdfView, draw: (text: string, x : number
|
|||||||
draw(karakter.Kor.toString(), 454, 690, 1)
|
draw(karakter.Kor.toString(), 454, 690, 1)
|
||||||
draw(karakter.Isten, 454, 670, 1)
|
draw(karakter.Isten, 454, 670, 1)
|
||||||
draw(karakter.Osztaly, 60, 672, 1)
|
draw(karakter.Osztaly, 60, 672, 1)
|
||||||
draw(karakter.Szint.toString(), 264, 682, 3)
|
draw(karakter.Szint, karakter.Szint.length > 1 ? 252 : 264, 682, 3)
|
||||||
draw(karakter.Faj, 302, 710, 1)
|
draw(karakter.Faj, 302, 710, 1)
|
||||||
draw(karakter.Jellem, 302, 672, karakter.Jellem.length > 17 ? 11/12 : 1)
|
draw(karakter.Jellem, 302, 672, karakter.Jellem.length > 17 ? 11/12 : 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
function DrawKepzettsegek(draw: (text: string, x: number, y: number) => void, kepzettsegek: Kepzettseg[], tulajdonsagok: KarakterTulajdonsagok, szint: number, startFrom: number) {
|
function DrawKepzettsegek(draw: (text: string, x: number, y: number) => void, kepzettsegek: KepzettsegPdfView[], startFrom: number) {
|
||||||
for (let i = 0; i < kepzettsegek.length; i++) {
|
for (let i = 0; i < kepzettsegek.length; i++) {
|
||||||
let kepzettseg = kepzettsegek[i]
|
let kepzettseg = kepzettsegek[i]
|
||||||
draw(kepzettseg.Name, 60, startFrom - (i * 18))
|
draw(kepzettseg.KepzettsegName, 60, startFrom - (i * 18))
|
||||||
const tulajdonsagErtek = kepzettseg.Tulajdonsag.reduce((maxTulajdonsagErtek, currentTulajdonsag) =>
|
const kepzettsegModifier = SignedNumberToText(kepzettseg.KepzettsegModifier)
|
||||||
(tulajdonsagok[currentTulajdonsag] > maxTulajdonsagErtek)
|
|
||||||
? tulajdonsagok[kepzettseg.Tulajdonsag[i]]
|
|
||||||
: maxTulajdonsagErtek,
|
|
||||||
tulajdonsagok[kepzettseg.Tulajdonsag[0]])
|
|
||||||
|
|
||||||
const kepzettsegModifier = SignedNumberToText(Modifier(tulajdonsagErtek) + szint)
|
|
||||||
draw(kepzettsegModifier, kepzettsegModifier.length > 2 ? 172 : 175, startFrom - (i * 18))
|
draw(kepzettsegModifier, kepzettsegModifier.length > 2 ? 172 : 175, startFrom - (i * 18))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -290,9 +283,9 @@ export async function CreatePDF(karakter: KarakterPdfView) {
|
|||||||
|
|
||||||
drawMentok(page, karakter, fontSizeBase, pdfFont);
|
drawMentok(page, karakter, fontSizeBase, pdfFont);
|
||||||
|
|
||||||
DrawKepzettsegek(drawText, karakter.Kepzettsegek, karakter.Tulajdonsagok, karakter.Szint, 337);
|
DrawKepzettsegek(drawText, karakter.Kepzettsegek, 337);
|
||||||
const nextKepzettsegFrom = 337 - (karakter.Kepzettsegek.length * 18)
|
const nextKepzettsegFrom = 337 - (karakter.Kepzettsegek.length * 18)
|
||||||
DrawKepzettsegek(drawText, karakter.TolvajKepzettsegek, karakter.Tulajdonsagok, karakter.Szint, nextKepzettsegFrom)
|
DrawKepzettsegek(drawText, karakter.TolvajKepzettsegek, nextKepzettsegFrom)
|
||||||
|
|
||||||
DrawMagic(page, fontSizeBase, pdfFont, karakter.NapiMemorizalhatoVarazslatok, karakter.VarazslatMentokNF)
|
DrawMagic(page, fontSizeBase, pdfFont, karakter.NapiMemorizalhatoVarazslatok, karakter.VarazslatMentokNF)
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import {
|
import {
|
||||||
KarakterTulajdonsagok,
|
KarakterTulajdonsagok, Modifier,
|
||||||
TulajdonsagModosito,
|
TulajdonsagModosito,
|
||||||
TulajdonsagokTotal
|
TulajdonsagokTotal
|
||||||
} from "../domain-models/tulajdonsag";
|
} from "../domain-models/tulajdonsag";
|
||||||
@@ -13,6 +13,11 @@ import {KarakterInputs} from "../domain-models/karakter";
|
|||||||
import {NapiVarazslatok, CalculateVarazslatMentokNF} from "../domain-models/memorizalt_varazslatok";
|
import {NapiVarazslatok, CalculateVarazslatMentokNF} from "../domain-models/memorizalt_varazslatok";
|
||||||
import {GetJellem} from "../domain-models/jellem";
|
import {GetJellem} from "../domain-models/jellem";
|
||||||
|
|
||||||
|
export interface KepzettsegPdfView {
|
||||||
|
KepzettsegName: string
|
||||||
|
KepzettsegModifier: number
|
||||||
|
}
|
||||||
|
|
||||||
export interface KarakterPdfView {
|
export interface KarakterPdfView {
|
||||||
Name: string
|
Name: string
|
||||||
Nem: string
|
Nem: string
|
||||||
@@ -23,7 +28,7 @@ export interface KarakterPdfView {
|
|||||||
Osztaly: string
|
Osztaly: string
|
||||||
Tulajdonsagok: KarakterTulajdonsagok,
|
Tulajdonsagok: KarakterTulajdonsagok,
|
||||||
TulajdonsagModositok: KarakterTulajdonsagok,
|
TulajdonsagModositok: KarakterTulajdonsagok,
|
||||||
Szint: number
|
Szint: string
|
||||||
HP: number
|
HP: number
|
||||||
VO: number
|
VO: number
|
||||||
Mozgas: number
|
Mozgas: number
|
||||||
@@ -33,8 +38,8 @@ export interface KarakterPdfView {
|
|||||||
MentokAlap: Mentok
|
MentokAlap: Mentok
|
||||||
MentoModositok: Mentok
|
MentoModositok: Mentok
|
||||||
MentokModositokkal: Mentok
|
MentokModositokkal: Mentok
|
||||||
Kepzettsegek: Kepzettseg[]
|
Kepzettsegek: KepzettsegPdfView[]
|
||||||
TolvajKepzettsegek: Kepzettseg[]
|
TolvajKepzettsegek: KepzettsegPdfView[]
|
||||||
NapiMemorizalhatoVarazslatok: number[]
|
NapiMemorizalhatoVarazslatok: number[]
|
||||||
VarazslatMentokNF : number[]
|
VarazslatMentokNF : number[]
|
||||||
}
|
}
|
||||||
@@ -62,9 +67,9 @@ export function KarakterInputToPdfView(karakter: KarakterInputs): KarakterPdfVie
|
|||||||
Nem: karakter.nem || "",
|
Nem: karakter.nem || "",
|
||||||
Tulajdonsagok: karakter.tulajdonsagok,
|
Tulajdonsagok: karakter.tulajdonsagok,
|
||||||
Osztaly: OsztalyLabel(karakter.osztaly),
|
Osztaly: OsztalyLabel(karakter.osztaly),
|
||||||
Szint: karakter.szint,
|
Szint: karakter.szint.toString(),
|
||||||
Kepzettsegek: karakter.kepzettsegek.map(id => Kepzettsegek[id]),
|
Kepzettsegek: karakter.kepzettsegek.map(id => mapKepzettsegToPdfView(Kepzettsegek[id], tulajdonsagok, karakter.szint)),
|
||||||
TolvajKepzettsegek: karakter.tolvajKepzettsegek?.map(id => Kepzettsegek[id]) || [],
|
TolvajKepzettsegek: karakter.tolvajKepzettsegek?.map(id => mapKepzettsegToPdfView(Kepzettsegek[id], tulajdonsagok, karakter.szint)) || [],
|
||||||
TulajdonsagModositok: tulajdonsagModositok,
|
TulajdonsagModositok: tulajdonsagModositok,
|
||||||
|
|
||||||
HP: masodlagosErtekek.HP,
|
HP: masodlagosErtekek.HP,
|
||||||
@@ -82,3 +87,17 @@ export function KarakterInputToPdfView(karakter: KarakterInputs): KarakterPdfVie
|
|||||||
VarazslatMentokNF,
|
VarazslatMentokNF,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function mapKepzettsegToPdfView(kepzettseg: Kepzettseg, tulajdonsagok: KarakterTulajdonsagok, szint: number) {
|
||||||
|
const tulajdonsagErtek = kepzettseg.Tulajdonsag.reduce((maxTulajdonsagErtek, currentTulajdonsag) =>
|
||||||
|
(tulajdonsagok[currentTulajdonsag] > maxTulajdonsagErtek)
|
||||||
|
? tulajdonsagok[currentTulajdonsag]
|
||||||
|
: maxTulajdonsagErtek,
|
||||||
|
tulajdonsagok[kepzettseg.Tulajdonsag[0]])
|
||||||
|
|
||||||
|
const modifier = Modifier(tulajdonsagErtek) + szint
|
||||||
|
return {
|
||||||
|
KepzettsegName: kepzettseg.Name,
|
||||||
|
KepzettsegModifier: modifier,
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user