fix PDF weapon damage

This commit is contained in:
2023-10-25 03:05:22 +02:00
parent b278841e5c
commit f35088a95c
4 changed files with 96 additions and 73 deletions
+51
View File
@@ -0,0 +1,51 @@
import {KarakterPdfView} from "./karakter_pdf_view";
import {PDFFont, PDFPage} from "pdf-lib";
import {SignedNumberToText} from "../components/Helpers";
function fitTextInWidth(font: PDFFont, text: string, startingSize: number, maxWidth: number): number {
let size = startingSize
while(font.widthOfTextAtSize(text, size) > maxWidth) {
size--
}
return size
}
export function DrawFegyverek(karakter: KarakterPdfView, pdfFont: PDFFont, fontSizeBase: number, page: PDFPage) {
const startFrom = 337
for (let i = 0; i < karakter.Fegyverek.length && i < 3; i++) {
const fegyver = karakter.Fegyverek[i];
const size = fitTextInWidth(pdfFont, fegyver.Name, fontSizeBase, 60)
page.drawText(fegyver.Name, {
x: 200,
y: startFrom - (i * 18) + ((18 - pdfFont.heightAtSize(size)) / 3),
size: size,
font: pdfFont,
})
page.drawText(SignedNumberToText(fegyver.TamadoBonusz), {
x: 265,
y: startFrom - (i * 18),
size: fontSizeBase,
font: pdfFont,
})
const damageSize = fitTextInWidth(pdfFont, fegyver.Damage, fontSizeBase, 24)
page.drawText(fegyver.Damage, {
x: 291,
y: startFrom - (i * 18) + ((18 - pdfFont.heightAtSize(damageSize)) / 3),
size: damageSize,
font: pdfFont,
})
const critSize = fitTextInWidth(pdfFont, fegyver.Crit, fontSizeBase, 35)
page.drawText(fegyver.Crit, {
x: 318,
y: startFrom - (i * 18) + ((18 - pdfFont.heightAtSize(critSize)) / 3),
size: critSize,
font: pdfFont,
})
page.drawText(fegyver.Range, {
x: 360,
y: startFrom - (i * 18),
size: fontSizeBase,
font: pdfFont,
})
}
}