pdf fixes: 10. szint, kepzettseg modifier

This commit is contained in:
2023-09-29 21:41:27 +02:00
parent f7aa205989
commit 016be20342
3 changed files with 34 additions and 21 deletions
+1
View File
@@ -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
+7 -14
View File
@@ -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)
+26 -7
View File
@@ -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,
}
}