Add new compendiums

This commit is contained in:
2022-07-30 22:54:08 +02:00
parent 43eb8ee09b
commit 3957a6aa9f
27 changed files with 288 additions and 133 deletions

View File

@@ -41,7 +41,11 @@ export class CrucibleActorSheet extends ActorSheet {
skills: this.actor.getSkills( ),
weapons: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getWeapons()) ),
armors: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getArmors())),
shields: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getShields())),
spells: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getLore())),
equipments: this.actor.checkAndPrepareEquipments(duplicate(this.actor.getEquipmentsOnly()) ),
equippedWeapons: this.actor.checkAndPrepareEquipments(duplicate(this.actor.getEquippedWeapons()) ),
feats: duplicate(this.actor.getFeats()),
subActors: duplicate(this.actor.getSubActors()),
race: duplicate(this.actor.getRace()),
moneys: duplicate(this.actor.getMoneys()),

View File

@@ -89,10 +89,38 @@ export class CrucibleActor extends Actor {
return comp;
}
/* -------------------------------------------- */
getFeats() {
let comp = duplicate(this.data.items.filter(item => item.type == 'feat') || []);
return comp;
}
/* -------------------------------------------- */
getFeatsWithDie() {
let comp = duplicate(this.data.items.filter(item => item.type == 'feat' && item.data.data.isfeatdie) || []);
return comp;
}
getFeatsWithSL() {
let comp = duplicate(this.data.items.filter(item => item.type == 'feat' && item.data.data.issl) || []);
return comp;
}
/* -------------------------------------------- */
getLore() {
let comp = duplicate(this.data.items.filter(item => item.type == 'spell') || []);
return comp;
}
getEquippedWeapons() {
let comp = duplicate(this.data.items.filter(item => item.type == 'weapon' && item.data.data.equipped) || []);
return comp;
}
/* -------------------------------------------- */
getArmors() {
let comp = duplicate(this.data.items.filter(item => item.type == 'armor') || []);
return comp;
}
/* -------------------------------------------- */
getShields() {
let comp = duplicate(this.data.items.filter(item => item.type == 'shield') || []);
return comp;
}
getRace() {
let race = this.data.items.filter(item => item.type == 'race')
return race[0] ?? [];
@@ -169,7 +197,7 @@ export class CrucibleActor extends Actor {
}
/* ------------------------------------------- */
getSaveRoll(){
getSaveRoll() {
return {
reflex: {
"label": "Reflex",
@@ -183,7 +211,7 @@ export class CrucibleActor extends Actor {
"label": "Willpower",
"value": this.data.data.abilities.int.value + this.data.data.abilities.cha.value
}
}
}
}
/* ------------------------------------------- */
@@ -380,7 +408,11 @@ export class CrucibleActor extends Actor {
rollData.actorImg = this.img
rollData.actorId = this.id
rollData.img = this.img
rollData.featsDie = this.getFeatsWithDie()
rollData.featsSL = this.getFeatsWithSL()
rollData.featDieName = "none"
rollData.featSLName = "none"
if (abilityKey) {
rollData.ability = this.getAbility(abilityKey)
//rollData.skillList = this.getRelevantSkill(abilityKey)

View File

@@ -70,5 +70,12 @@ export class CrucibleRollDialog extends Dialog {
this.rollData.advantage = "disadvantage"
this.refreshDialog()
})
html.find('#featDieName').change((event) => {
this.rollData.featDieName = event.currentTarget.value
})
html.find('#featDieSL').change((event) => {
this.rollData.featDieSL = event.currentTarget.value
})
}
}

View File

@@ -265,7 +265,13 @@ export class CrucibleUtility {
let diceFormula = String(rollData.ability.value) + "d6cs>=5"
if (rollData.skill) {
diceFormula += "+" + String(rollData.skill.data.level) + "d8cs>=5"
let level = rollData.skill.data.level
if (rollData.featSLName != "none") {
let feat = rollData.featsSL.find(item => item.name == rollData.featSLName )
level += feat.data.sl
rollData.featSL = feat.data.sl
}
diceFormula += "+" + String(level) + "d8cs>=5"
}
if(rollData.advantage == "advantage") {
diceFormula += "+ 1d10cs>=5"
@@ -273,6 +279,9 @@ export class CrucibleUtility {
if(rollData.advantage == "disadvantage") {
diceFormula += "- 1d10cs>=5"
}
if (rollData.featDieName != "none") {
diceFormula += "+ 1d10cs>=5"
}
// Performs roll
let myRoll = rollData.roll
if (!myRoll) { // New rolls only of no rerolls