ironed out last bugs
parent
646c9c6d16
commit
41de33cef3
12
src/main.mjs
12
src/main.mjs
|
|
@ -12,15 +12,3 @@ Hooks.once("init", () => {
|
||||||
|
|
||||||
console.log("DSA 4.1 is ready for development!")
|
console.log("DSA 4.1 is ready for development!")
|
||||||
})
|
})
|
||||||
|
|
||||||
Hooks.on("getActorContextOptions", (application, menuItems) => {
|
|
||||||
menuItems.push({
|
|
||||||
name: "Import from XML",
|
|
||||||
icon: '<i class="fas fa-file"></i>',
|
|
||||||
callback: (li) => {
|
|
||||||
const actorId = li.getAttribute("data-entry-id")
|
|
||||||
const actor = game.actors.get(actorId)
|
|
||||||
actor.import()
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
@ -104,7 +104,7 @@ export class PlayerCharacterDataModel extends foundry.abstract.TypeDataModel {
|
||||||
}),
|
}),
|
||||||
vornachteile: new ArrayField(new SchemaField({
|
vornachteile: new ArrayField(new SchemaField({
|
||||||
name: new StringField(),
|
name: new StringField(),
|
||||||
value: new NumberField(),
|
wert: new NumberField({ required: false, integer: true }),
|
||||||
})),
|
})),
|
||||||
sonderfertigkeiten: new ArrayField(new SchemaField({
|
sonderfertigkeiten: new ArrayField(new SchemaField({
|
||||||
name: new StringField(),
|
name: new StringField(),
|
||||||
|
|
@ -114,7 +114,7 @@ export class PlayerCharacterDataModel extends foundry.abstract.TypeDataModel {
|
||||||
name: new StringField(),
|
name: new StringField(),
|
||||||
taw: new NumberField({required: true, integer: true }),
|
taw: new NumberField({required: true, integer: true }),
|
||||||
probe: new StringField(),
|
probe: new StringField(),
|
||||||
be: new NumberField({required: false, integer: true }),
|
be: new StringField({required: false }),
|
||||||
komplexitaet: new NumberField({required: false, integer: true }),
|
komplexitaet: new NumberField({required: false, integer: true }),
|
||||||
})),
|
})),
|
||||||
zauber: new ArrayField(new SchemaField({
|
zauber: new ArrayField(new SchemaField({
|
||||||
|
|
@ -123,7 +123,7 @@ export class PlayerCharacterDataModel extends foundry.abstract.TypeDataModel {
|
||||||
hauszauber: new BooleanField(),
|
hauszauber: new BooleanField(),
|
||||||
zfw: new NumberField({ required: true, integer: true }),
|
zfw: new NumberField({ required: true, integer: true }),
|
||||||
anmerkungen: new StringField(),
|
anmerkungen: new StringField(),
|
||||||
komplexitaet: new NumberField({required: true, integer: true }),
|
komplexitaet: new StringField({required: true }),
|
||||||
})),
|
})),
|
||||||
liturgien: new ArrayField(new SchemaField({
|
liturgien: new ArrayField(new SchemaField({
|
||||||
name: new StringField(),
|
name: new StringField(),
|
||||||
|
|
|
||||||
|
|
@ -123,21 +123,21 @@ function mapRawJson(rawJson) {
|
||||||
let professionString = profession.string
|
let professionString = profession.string
|
||||||
professions.push(professionString)
|
professions.push(professionString)
|
||||||
}
|
}
|
||||||
json.meta.profession = professions
|
json.meta.professions = professions
|
||||||
json.geschlecht = held.basis.geschlecht.name
|
json.meta.geschlecht = held.basis.geschlecht.name
|
||||||
json.haarfarbe = held.basis.rasse.aussehen.haarfarbe
|
json.meta.haarfarbe = held.basis.rasse.aussehen.haarfarbe
|
||||||
json.groesse = held.basis.rasse.groesse.value
|
json.meta.groesse = held.basis.rasse.groesse.value
|
||||||
json.augenfarbe = held.basis.rasse.aussehen.augenfarbe
|
json.meta.augenfarbe = held.basis.rasse.aussehen.augenfarbe
|
||||||
json.geburtstag = calculateBirthdate(held.basis.rasse.aussehen)
|
json.meta.geburtstag = calculateBirthdate(held.basis.rasse.aussehen)
|
||||||
json.alter = held.basis.rasse.aussehen.alter
|
json.meta.alter = held.basis.rasse.aussehen.alter
|
||||||
json.gewicht = held.basis.rasse.groesse.gewicht
|
json.meta.gewicht = held.basis.rasse.groesse.gewicht
|
||||||
json.aussehen = [
|
json.meta.aussehen = [
|
||||||
held.basis.rasse.aussehen.aussehentext0,
|
held.basis.rasse.aussehen.aussehentext0,
|
||||||
held.basis.rasse.aussehen.aussehentext1,
|
held.basis.rasse.aussehen.aussehentext1,
|
||||||
held.basis.rasse.aussehen.aussehentext2,
|
held.basis.rasse.aussehen.aussehentext2,
|
||||||
held.basis.rasse.aussehen.aussehentext3,
|
held.basis.rasse.aussehen.aussehentext3,
|
||||||
]
|
]
|
||||||
json.familie = [
|
json.meta.familie = [
|
||||||
held.basis.rasse.aussehen.familietext0,
|
held.basis.rasse.aussehen.familietext0,
|
||||||
held.basis.rasse.aussehen.familietext1,
|
held.basis.rasse.aussehen.familietext1,
|
||||||
held.basis.rasse.aussehen.familietext2,
|
held.basis.rasse.aussehen.familietext2,
|
||||||
|
|
@ -145,10 +145,13 @@ function mapRawJson(rawJson) {
|
||||||
held.basis.rasse.aussehen.familietext4,
|
held.basis.rasse.aussehen.familietext4,
|
||||||
held.basis.rasse.aussehen.familietext5,
|
held.basis.rasse.aussehen.familietext5,
|
||||||
]
|
]
|
||||||
json.titel = held.basis.rasse.aussehen.titel
|
json.meta.titel = held.basis.rasse.aussehen.titel
|
||||||
json.stand = held.basis.rasse.aussehen.stand
|
json.meta.stand = held.basis.rasse.aussehen.stand
|
||||||
let attributes = held.eigenschaften.eigenschaft
|
let attributes = held.eigenschaften.eigenschaft
|
||||||
json.attribute = {}
|
json.attribute = {}
|
||||||
|
if (held.basis.gilde) {
|
||||||
|
json.attribute.gilde = held.basis.gilde.name
|
||||||
|
}
|
||||||
json.attribute.mu = getAttributeJson(attributes, "Mut")
|
json.attribute.mu = getAttributeJson(attributes, "Mut")
|
||||||
json.attribute.kl = getAttributeJson(attributes, "Klugheit")
|
json.attribute.kl = getAttributeJson(attributes, "Klugheit")
|
||||||
json.attribute.in = getAttributeJson(attributes, "Intuition")
|
json.attribute.in = getAttributeJson(attributes, "Intuition")
|
||||||
|
|
@ -198,6 +201,18 @@ function mapRawJson(rawJson) {
|
||||||
aktuell: attribute.value
|
aktuell: attribute.value
|
||||||
}
|
}
|
||||||
json.attribute.so = getAttributeJson(attributes, "Sozialstatus")
|
json.attribute.so = getAttributeJson(attributes, "Sozialstatus")
|
||||||
|
let benefits = []
|
||||||
|
for (let benefit in held.vt.vorteil) {
|
||||||
|
benefit = held.vt.vorteil[benefit]
|
||||||
|
let benefitJson = {
|
||||||
|
name: benefit.name,
|
||||||
|
}
|
||||||
|
if (benefit.value !== undefined) {
|
||||||
|
benefitJson.wert = benefit.value
|
||||||
|
}
|
||||||
|
benefits.push(benefitJson)
|
||||||
|
}
|
||||||
|
json.vornachteile = benefits
|
||||||
let specialAbilities = []
|
let specialAbilities = []
|
||||||
let liturgies = []
|
let liturgies = []
|
||||||
for (let specialAbility in held.sf.sonderfertigkeit) {
|
for (let specialAbility in held.sf.sonderfertigkeit) {
|
||||||
|
|
@ -236,13 +251,18 @@ function mapRawJson(rawJson) {
|
||||||
let talents = []
|
let talents = []
|
||||||
for (let talent in held.talentliste.talent) {
|
for (let talent in held.talentliste.talent) {
|
||||||
talent = held.talentliste.talent[talent]
|
talent = held.talentliste.talent[talent]
|
||||||
talents.push({
|
let talentJson = {
|
||||||
name: talent.name,
|
name: talent.name,
|
||||||
taw: talent.value,
|
taw: talent.value,
|
||||||
probe: talent.probe.trim(),
|
probe: talent.probe.trim(),
|
||||||
be: talent.be,
|
}
|
||||||
komplexitaet: talent.k,
|
if (talent.be !== undefined) {
|
||||||
})
|
talentJson.be = talent.be
|
||||||
|
}
|
||||||
|
if (talent.k !== undefined) {
|
||||||
|
talentJson.komplexitaet = parseInt(talent.k)
|
||||||
|
}
|
||||||
|
talents.push(talentJson)
|
||||||
}
|
}
|
||||||
json.talente = talents
|
json.talente = talents
|
||||||
let spells = []
|
let spells = []
|
||||||
|
|
@ -280,7 +300,10 @@ function mapRawJson(rawJson) {
|
||||||
}
|
}
|
||||||
json.notizen = notes
|
json.notizen = notes
|
||||||
|
|
||||||
return json
|
return {
|
||||||
|
name: held.name,
|
||||||
|
system: json,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -305,5 +328,17 @@ function getAttributeJson(attributes, name) {
|
||||||
* @returns {{}} the json of the desired attribute
|
* @returns {{}} the json of the desired attribute
|
||||||
*/
|
*/
|
||||||
function filterAttribute(attributes, name) {
|
function filterAttribute(attributes, name) {
|
||||||
return attributes.filter(attribute => attribute.name === name)
|
return attributes.filter(attribute => attribute.name === name)[0]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Hooks.on("getActorContextOptions", (application, menuItems) => {
|
||||||
|
menuItems.push({
|
||||||
|
name: "Import from XML",
|
||||||
|
icon: '<i class="fas fa-file"></i>',
|
||||||
|
callback: (li) => {
|
||||||
|
const actorId = li.getAttribute("data-entry-id")
|
||||||
|
const actor = game.actors.get(actorId)
|
||||||
|
actor.import()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
Loading…
Reference in New Issue