diff --git a/TODO.md b/TODO.md index 9559c6d..abf38ab 100644 --- a/TODO.md +++ b/TODO.md @@ -2,6 +2,7 @@ ## Fixes - Kötelező képezettségek - Birodalmi tolvaj +- PDF pretty: Tamadas bonuszok +10/+5 ## Level up - Faji szint korlatok diff --git a/src/pdf/character.pdf.ts b/src/pdf/character.pdf.ts index 873beb5..e498769 100644 --- a/src/pdf/character.pdf.ts +++ b/src/pdf/character.pdf.ts @@ -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 fontkit from '@pdf-lib/fontkit' import {SignedNumberToText} from "../components/Helpers"; import {KarakterTulajdonsagok, Modifier} from "../domain-models/tulajdonsag"; import download from "downloadjs"; -import {Kepzettseg} from "../domain-models/kepzettsegek"; function drawTulajdonsagok(page: PDFPage, tulajdonsagok: KarakterTulajdonsagok, fontSizeBase: number, pdfFont: PDFFont) { 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.Isten, 454, 670, 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.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++) { let kepzettseg = kepzettsegek[i] - draw(kepzettseg.Name, 60, startFrom - (i * 18)) - const tulajdonsagErtek = kepzettseg.Tulajdonsag.reduce((maxTulajdonsagErtek, currentTulajdonsag) => - (tulajdonsagok[currentTulajdonsag] > maxTulajdonsagErtek) - ? tulajdonsagok[kepzettseg.Tulajdonsag[i]] - : maxTulajdonsagErtek, - tulajdonsagok[kepzettseg.Tulajdonsag[0]]) - - const kepzettsegModifier = SignedNumberToText(Modifier(tulajdonsagErtek) + szint) + draw(kepzettseg.KepzettsegName, 60, startFrom - (i * 18)) + const kepzettsegModifier = SignedNumberToText(kepzettseg.KepzettsegModifier) 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); - DrawKepzettsegek(drawText, karakter.Kepzettsegek, karakter.Tulajdonsagok, karakter.Szint, 337); + DrawKepzettsegek(drawText, karakter.Kepzettsegek, 337); 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) diff --git a/src/pdf/karakter_pdf_view.ts b/src/pdf/karakter_pdf_view.ts index 7320f73..82a2ab1 100644 --- a/src/pdf/karakter_pdf_view.ts +++ b/src/pdf/karakter_pdf_view.ts @@ -1,5 +1,5 @@ import { - KarakterTulajdonsagok, + KarakterTulajdonsagok, Modifier, TulajdonsagModosito, TulajdonsagokTotal } from "../domain-models/tulajdonsag"; @@ -13,6 +13,11 @@ import {KarakterInputs} from "../domain-models/karakter"; import {NapiVarazslatok, CalculateVarazslatMentokNF} from "../domain-models/memorizalt_varazslatok"; import {GetJellem} from "../domain-models/jellem"; +export interface KepzettsegPdfView { + KepzettsegName: string + KepzettsegModifier: number +} + export interface KarakterPdfView { Name: string Nem: string @@ -23,7 +28,7 @@ export interface KarakterPdfView { Osztaly: string Tulajdonsagok: KarakterTulajdonsagok, TulajdonsagModositok: KarakterTulajdonsagok, - Szint: number + Szint: string HP: number VO: number Mozgas: number @@ -33,8 +38,8 @@ export interface KarakterPdfView { MentokAlap: Mentok MentoModositok: Mentok MentokModositokkal: Mentok - Kepzettsegek: Kepzettseg[] - TolvajKepzettsegek: Kepzettseg[] + Kepzettsegek: KepzettsegPdfView[] + TolvajKepzettsegek: KepzettsegPdfView[] NapiMemorizalhatoVarazslatok: number[] VarazslatMentokNF : number[] } @@ -62,9 +67,9 @@ export function KarakterInputToPdfView(karakter: KarakterInputs): KarakterPdfVie Nem: karakter.nem || "", Tulajdonsagok: karakter.tulajdonsagok, Osztaly: OsztalyLabel(karakter.osztaly), - Szint: karakter.szint, - Kepzettsegek: karakter.kepzettsegek.map(id => Kepzettsegek[id]), - TolvajKepzettsegek: karakter.tolvajKepzettsegek?.map(id => Kepzettsegek[id]) || [], + Szint: karakter.szint.toString(), + Kepzettsegek: karakter.kepzettsegek.map(id => mapKepzettsegToPdfView(Kepzettsegek[id], tulajdonsagok, karakter.szint)), + TolvajKepzettsegek: karakter.tolvajKepzettsegek?.map(id => mapKepzettsegToPdfView(Kepzettsegek[id], tulajdonsagok, karakter.szint)) || [], TulajdonsagModositok: tulajdonsagModositok, HP: masodlagosErtekek.HP, @@ -82,3 +87,17 @@ export function KarakterInputToPdfView(karakter: KarakterInputs): KarakterPdfVie 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, + } +} \ No newline at end of file