From 30ca92389922cec8a830f0da1dd38ef6dbb47ab7 Mon Sep 17 00:00:00 2001 From: morbalint Date: Sat, 1 Jun 2024 11:53:25 +0200 Subject: [PATCH] [2e] add osztaly specialis kepessegek to pdf --- frontend/src/second-edition/pdf/character.pdf.ts | 9 ++++++++- frontend/src/second-edition/pdf/karakter_pdf_view.ts | 9 ++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/frontend/src/second-edition/pdf/character.pdf.ts b/frontend/src/second-edition/pdf/character.pdf.ts index b9fa163..9e728cc 100644 --- a/frontend/src/second-edition/pdf/character.pdf.ts +++ b/frontend/src/second-edition/pdf/character.pdf.ts @@ -62,7 +62,7 @@ export async function CreatePDF(karakter: KarakterPdfView) { form.getTextField("tamadas_bonusz_ugy").setText(" " + SignedNumberToText(karakter.TulajdonsagModositok.t_ugy)) form.getTextField("tamadas_bonusz_tavolsagi").setText(karakter.CelzoTB.join("/")) - for (let i = 0; i < karakter.Kepzettsegek.length; i++) { + for (let i = 0; i < karakter.Kepzettsegek.length && i < 12; i++) { const kepzettseg = karakter.Kepzettsegek[i] form.getTextField(`kepzettseg_${i}_nev`).setText(kepzettseg.nev) form.getTextField(`kepzettseg_${i}_alap`).setText(kepzettseg.alap) @@ -87,6 +87,13 @@ export async function CreatePDF(karakter: KarakterPdfView) { form.getTextField('elektrum').setText(karakter.el.toString()) form.getTextField('ezust').setText(karakter.et.toString()) + for (let i = 0; i < karakter.SpecialisKepessegek.length && i < 14; i+=2){ + const text = i+1 < karakter.SpecialisKepessegek.length + ? `${karakter.SpecialisKepessegek[i]}, ${karakter.SpecialisKepessegek[i+1]}` + : karakter.SpecialisKepessegek[i] + form.getTextField(`specialis_kepessegek_${Math.floor(i/2)}`).setText(text) + } + form.updateFieldAppearances(pdfFont) const pdfBytes = await pdfDoc.save(); diff --git a/frontend/src/second-edition/pdf/karakter_pdf_view.ts b/frontend/src/second-edition/pdf/karakter_pdf_view.ts index 735a9cd..a470d5a 100644 --- a/frontend/src/second-edition/pdf/karakter_pdf_view.ts +++ b/frontend/src/second-edition/pdf/karakter_pdf_view.ts @@ -2,7 +2,7 @@ import {Modifier, TulajdonsagokTotal} from "../domain-models/tulajdonsag2E"; import {Mentok, MentoModositok, MultiClassMentokAlap} from "../domain-models/mentok"; import {CalculateMasodlagosErtekek, VOegyeb} from "../domain-models/masodlagos_ertekek"; import {FajLabel} from "../domain-models/faj2E"; -import {Osztaly2E, OsztalyLabel} from "../domain-models/osztaly2E"; +import {Osztaly2E, OsztalyLabel, OsztalySpecialSkills} from "../domain-models/osztaly2E"; import {CelzoTB, KozelharciTB, MultiClassTamadasBonusz} from "../domain-models/tamadas_bonusz"; import {Karakter2E} from "../domain-models/karakter2E"; import {GetJellem} from "../domain-models/jellem"; @@ -53,6 +53,7 @@ export interface KarakterPdfView { et: number el: number at: number + SpecialisKepessegek: string[], } export function KarakterInputToPdfView(karakter: Karakter2E): KarakterPdfView { @@ -132,6 +133,8 @@ export function KarakterInputToPdfView(karakter: Karakter2E): KarakterPdfView { .map(k => k as KepzettsegId) .map((k: KepzettsegId) => mapKepzettsegToPdfView(Kepzettsegek[k], tulajdonsagok, classLevels[Osztaly2E.Tolvaj])) + const specialisKepessegek = osztalyok.flatMap(o => OsztalySpecialSkills(o).map(s => s.Name)); + return { Faj: FajLabel(karakter.faj).toLowerCase(), Isten: karakter.isten || "", @@ -165,8 +168,7 @@ export function KarakterInputToPdfView(karakter: Karakter2E): KarakterPdfView { mapKepzettsegToPdfView(Kepzettsegek[k], tulajdonsagok, karakter.szint)) .concat(karakter.tolvajKepzettsegek?.map((k: KepzettsegId) => mapKepzettsegToPdfView(Kepzettsegek[k], tulajdonsagok, classLevels[Osztaly2E.Tolvaj])) || []) - .concat(tolvajExtraKepzettsegek) - .slice(0, 12), // TODO: Ember, Tolvaj, 18 INT, 9 szinten 13 kepzettseget kap + .concat(tolvajExtraKepzettsegek), Fegyverek: karakter.felszereles.fegyverek.slice(0, 4).map(fid => { const fegyver = GetFegyver(fid.id) @@ -192,6 +194,7 @@ export function KarakterInputToPdfView(karakter: Karakter2E): KarakterPdfView { et: karakter.felszereles.et, el: karakter.felszereles.el, at: karakter.felszereles.at, + SpecialisKepessegek: specialisKepessegek, } }