mirror of
https://github.com/morbalint/kemkas.git
synced 2026-07-17 19:03:46 +00:00
WIP spell details
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,6 @@
|
||||
import {Osztaly2E} from "./osztaly2E";
|
||||
import spells from "../data/spells.json";
|
||||
import spell_details from "../data/spell_details.json"
|
||||
|
||||
export interface Cantrip {
|
||||
szint: 0,
|
||||
@@ -93,4 +94,29 @@ export function ClassSpells(osztaly: Osztaly2E): Varazslat[] {
|
||||
default:
|
||||
return [];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export interface VarazslatOsztalySzint {
|
||||
osztaly: Osztaly2E,
|
||||
szint: number,
|
||||
}
|
||||
|
||||
export interface SpellDetails {
|
||||
id: string,
|
||||
nev: string,
|
||||
megfordithato: boolean,
|
||||
kell_komponens: boolean,
|
||||
extra_komponens: boolean,
|
||||
variabilis: boolean,
|
||||
osztaly_szint: VarazslatOsztalySzint[],
|
||||
tavolsag: string,
|
||||
hatoido: string,
|
||||
terulet: string,
|
||||
mentodobas: string,
|
||||
leiras: string[],
|
||||
tablazat: string[][],
|
||||
}
|
||||
|
||||
export function GetSpellDetails(id: string): SpellDetails | undefined {
|
||||
return spell_details.details.find(x => x.id === id) as SpellDetails | undefined
|
||||
}
|
||||
|
||||
@@ -94,6 +94,36 @@ export async function CreatePDF(karakter: KarakterPdfView) {
|
||||
form.getTextField(`specialis_kepessegek_${Math.floor(i/2)}`).setText(text)
|
||||
}
|
||||
|
||||
if (karakter.Varazskonyv.length > 0) {
|
||||
form.getTextField('varazskonyv_nev_faj_osztaly_szint').setText(`${karakter.Nev}, ${karakter.Faj} ${osztalyok}`)
|
||||
}
|
||||
|
||||
for (let i = 0; i < karakter.Varazskonyv.length && i < 6; i++) {
|
||||
const spell = karakter.Varazskonyv[i];
|
||||
form.getTextField(`varazskonyv_page1_spell${i}_nev`).setText(spell.nev)
|
||||
form.getTextField(`varazskonyv_page1_spell${i}_szint`).setText(spell.szint)
|
||||
form.getTextField(`varazskonyv_page1_spell${i}_hatoido`).setText(spell.hatoido)
|
||||
form.getTextField(`varazskonyv_page1_spell${i}_tav`).setText(spell.tav)
|
||||
form.getTextField(`varazskonyv_page1_spell${i}_terulet`).setText(spell.terulet)
|
||||
form.getTextField(`varazskonyv_page1_spell${i}_mento`).setText(spell.mento)
|
||||
for (let j = 0; j < spell.leiras.length && j < 5; j++) {
|
||||
form.getTextField(`varazskonyv_page1_spell${i}_leiras_${j}`).setText(spell.leiras[j])
|
||||
}
|
||||
}
|
||||
|
||||
for (let i = 0; (i+6) < karakter.Varazskonyv.length && i < 7; i++){
|
||||
const spell = karakter.Varazskonyv[i+6];
|
||||
form.getTextField(`varazskonyv_page2_spell${i}_nev`).setText(spell.nev)
|
||||
form.getTextField(`varazskonyv_page2_spell${i}_szint`).setText(spell.szint)
|
||||
form.getTextField(`varazskonyv_page2_spell${i}_hatoido`).setText(spell.hatoido)
|
||||
form.getTextField(`varazskonyv_page2_spell${i}_tav`).setText(spell.tav)
|
||||
form.getTextField(`varazskonyv_page2_spell${i}_terulet`).setText(spell.terulet)
|
||||
form.getTextField(`varazskonyv_page2_spell${i}_mento`).setText(spell.mento)
|
||||
for (let j = 0; j < spell.leiras.length && j < 5; j++) {
|
||||
form.getTextField(`varazskonyv_page2_spell${i}_leiras_${j}`).setText(spell.leiras[j])
|
||||
}
|
||||
}
|
||||
|
||||
form.updateFieldAppearances(pdfFont)
|
||||
|
||||
const pdfBytes = await pdfDoc.save();
|
||||
|
||||
@@ -15,6 +15,7 @@ import {SignedNumberToText} from "../../shared/components/Helpers";
|
||||
import {Kepzettseg, KepzettsegId, Kepzettsegek} from "../domain-models/kepzettsegek2E.data";
|
||||
import {getClassLevels} from "../domain-models/szintlepes";
|
||||
import {FegyverFlags} from "../domain-models/fegyver";
|
||||
import {GetSpellDetails} from "../domain-models/varazslat";
|
||||
|
||||
interface KepzettsegPdfView {
|
||||
nev: string,
|
||||
@@ -23,6 +24,16 @@ interface KepzettsegPdfView {
|
||||
osszes: string
|
||||
}
|
||||
|
||||
interface VarazskonyvVarazslatPdfView {
|
||||
nev: string,
|
||||
szint?: string,
|
||||
hatoido?: string,
|
||||
tav?: string,
|
||||
terulet?: string,
|
||||
mento?: string,
|
||||
leiras: string[],
|
||||
}
|
||||
|
||||
export interface KarakterPdfView {
|
||||
Nev: string
|
||||
Isten: string
|
||||
@@ -54,6 +65,7 @@ export interface KarakterPdfView {
|
||||
el: number
|
||||
at: number
|
||||
SpecialisKepessegek: string[],
|
||||
Varazskonyv: VarazskonyvVarazslatPdfView[],
|
||||
}
|
||||
|
||||
export function KarakterInputToPdfView(karakter: Karakter2E): KarakterPdfView {
|
||||
@@ -135,6 +147,23 @@ export function KarakterInputToPdfView(karakter: Karakter2E): KarakterPdfView {
|
||||
|
||||
const specialisKepessegek = osztalyok.flatMap(o => OsztalySpecialSkills(o).map(s => s.Name));
|
||||
|
||||
const varazskonyv : VarazskonyvVarazslatPdfView[] = karakter.varazslatok.map(x => {
|
||||
const spell = GetSpellDetails(x.id);
|
||||
if (spell == null) {
|
||||
return null;
|
||||
}
|
||||
const szint = spell.osztaly_szint.find(y => y.osztaly === x.osztaly)?.szint ?? 999;
|
||||
return {
|
||||
nev: spell?.nev,
|
||||
szint: szint.toString(),
|
||||
leiras: spell?.leiras,
|
||||
mento: spell?.mentodobas,
|
||||
tav: spell?.tavolsag,
|
||||
hatoido: spell?.hatoido,
|
||||
terulet: spell?.terulet,
|
||||
} as VarazskonyvVarazslatPdfView
|
||||
}).filter(x => x != null)
|
||||
|
||||
return {
|
||||
Faj: FajLabel(karakter.faj).toLowerCase(),
|
||||
Isten: karakter.isten || "",
|
||||
@@ -195,6 +224,7 @@ export function KarakterInputToPdfView(karakter: Karakter2E): KarakterPdfView {
|
||||
el: karakter.felszereles.el,
|
||||
at: karakter.felszereles.at,
|
||||
SpecialisKepessegek: specialisKepessegek,
|
||||
Varazskonyv: varazskonyv
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user