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 {Osztaly2E} from "./osztaly2E";
|
||||||
import spells from "../data/spells.json";
|
import spells from "../data/spells.json";
|
||||||
|
import spell_details from "../data/spell_details.json"
|
||||||
|
|
||||||
export interface Cantrip {
|
export interface Cantrip {
|
||||||
szint: 0,
|
szint: 0,
|
||||||
@@ -93,4 +94,29 @@ export function ClassSpells(osztaly: Osztaly2E): Varazslat[] {
|
|||||||
default:
|
default:
|
||||||
return [];
|
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)
|
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)
|
form.updateFieldAppearances(pdfFont)
|
||||||
|
|
||||||
const pdfBytes = await pdfDoc.save();
|
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 {Kepzettseg, KepzettsegId, Kepzettsegek} from "../domain-models/kepzettsegek2E.data";
|
||||||
import {getClassLevels} from "../domain-models/szintlepes";
|
import {getClassLevels} from "../domain-models/szintlepes";
|
||||||
import {FegyverFlags} from "../domain-models/fegyver";
|
import {FegyverFlags} from "../domain-models/fegyver";
|
||||||
|
import {GetSpellDetails} from "../domain-models/varazslat";
|
||||||
|
|
||||||
interface KepzettsegPdfView {
|
interface KepzettsegPdfView {
|
||||||
nev: string,
|
nev: string,
|
||||||
@@ -23,6 +24,16 @@ interface KepzettsegPdfView {
|
|||||||
osszes: string
|
osszes: string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface VarazskonyvVarazslatPdfView {
|
||||||
|
nev: string,
|
||||||
|
szint?: string,
|
||||||
|
hatoido?: string,
|
||||||
|
tav?: string,
|
||||||
|
terulet?: string,
|
||||||
|
mento?: string,
|
||||||
|
leiras: string[],
|
||||||
|
}
|
||||||
|
|
||||||
export interface KarakterPdfView {
|
export interface KarakterPdfView {
|
||||||
Nev: string
|
Nev: string
|
||||||
Isten: string
|
Isten: string
|
||||||
@@ -54,6 +65,7 @@ export interface KarakterPdfView {
|
|||||||
el: number
|
el: number
|
||||||
at: number
|
at: number
|
||||||
SpecialisKepessegek: string[],
|
SpecialisKepessegek: string[],
|
||||||
|
Varazskonyv: VarazskonyvVarazslatPdfView[],
|
||||||
}
|
}
|
||||||
|
|
||||||
export function KarakterInputToPdfView(karakter: Karakter2E): KarakterPdfView {
|
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 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 {
|
return {
|
||||||
Faj: FajLabel(karakter.faj).toLowerCase(),
|
Faj: FajLabel(karakter.faj).toLowerCase(),
|
||||||
Isten: karakter.isten || "",
|
Isten: karakter.isten || "",
|
||||||
@@ -195,6 +224,7 @@ export function KarakterInputToPdfView(karakter: Karakter2E): KarakterPdfView {
|
|||||||
el: karakter.felszereles.el,
|
el: karakter.felszereles.el,
|
||||||
at: karakter.felszereles.at,
|
at: karakter.felszereles.at,
|
||||||
SpecialisKepessegek: specialisKepessegek,
|
SpecialisKepessegek: specialisKepessegek,
|
||||||
|
Varazskonyv: varazskonyv
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user