Add competence roll

This commit is contained in:
2022-06-04 21:06:01 +02:00
parent eda51dec7f
commit 2ee6c285ea
11 changed files with 189 additions and 62 deletions

View File

@@ -70,12 +70,21 @@ export class MournbladeActorSheet extends ActorSheet {
let itemId = li.data("item-id")
const item = this.actor.items.get( itemId )
item.sheet.render(true)
});
})
// Delete Inventory Item
html.find('.item-delete').click(ev => {
const li = $(ev.currentTarget).parents(".item");
MournbladeUtility.confirmDelete(this, li);
});
})
html.find('.edit-item-data').change(ev => {
const li = $(ev.currentTarget).parents(".item")
let itemId = li.data("item-id")
let itemType = li.data("item-type")
let itemField = $(ev.currentTarget).data("item-field")
let dataType = $(ev.currentTarget).data("dtype")
let value = ev.currentTarget.value
this.actor.editItemField(itemId, itemType, itemField, dataType, value)
})
html.find('.quantity-minus').click(event => {
const li = $(event.currentTarget).parents(".item");
@@ -90,7 +99,14 @@ export class MournbladeActorSheet extends ActorSheet {
const li = $(event.currentTarget).parents(".item")
let attrKey = li.data("attr-key")
this.actor.rollAttribut(attrKey)
});
})
html.find('.roll-competence').click((event) => {
const li = $(event.currentTarget).parents(".item")
let attrKey = $(event.currentTarget).data("attr-key")
let compId = li.data("item-id")
this.actor.rollCompetence(attrKey, compId)
})
html.find('.roll-spec').click((event) => {
const li = $(event.currentTarget).parents(".item");
const specId = li.data("item-id");

View File

@@ -54,7 +54,25 @@ export class MournbladeActor extends Actor {
}
/* -------------------------------------------- */
getSkills() {
return this.data.items.filter(item => item.type == "competence" )
let comp = []
for( let item of this.data.items) {
item = duplicate(item)
if ( item.type == "competence") {
item.data.attribut1total = item.data.niveau + (this.data.data.attributs[item.data.attribut1]?.value || 0)
item.data.attribut2total = item.data.niveau + (this.data.data.attributs[item.data.attribut2]?.value || 0)
item.data.attribut3total = item.data.niveau + (this.data.data.attributs[item.data.attribut3]?.value || 0)
if (item.data.niveau == 0) {
item.data.attribut1total -= 3
item.data.attribut2total -= 3
item.data.attribut3total -= 3
}
item.data.attribut1label = this.data.data.attributs[item.data.attribut1]?.label || ""
item.data.attribut2label = this.data.data.attributs[item.data.attribut2]?.label || ""
item.data.attribut3label = this.data.data.attributs[item.data.attribut3]?.label || ""
comp.push( item )
}
}
return comp
}
/* -------------------------------------------- */
@@ -99,6 +117,21 @@ export class MournbladeActor extends Actor {
}
}
/* -------------------------------------------- */
editItemField(itemId, itemType, itemField, dataType, value) {
let item= this.data.items.find(item => item.id == itemId)
if (item) {
console.log("Item ", item, itemField, dataType, value)
if (dataType.toLowerCase() == "number") {
value = Number(value)
} else {
value = String(value)
}
let update = { _id: item.id, [`data.${itemField}`]: value };
this.updateEmbeddedDocuments( "Item", [update])
}
}
/* -------------------------------------------- */
compareName(a, b) {
if (a.name < b.name) {
@@ -159,7 +192,7 @@ export class MournbladeActor extends Actor {
}
/* -------------------------------------------- */
getCommonRollData(attrKey = undefined, compKey = undefined) {
getCommonRollData(attrKey = undefined, compId = undefined) {
let rollData = MournbladeUtility.getBasicRollData()
rollData.alias = this.name
rollData.actorImg = this.img
@@ -170,9 +203,8 @@ export class MournbladeActor extends Actor {
rollData.attrKey = attrKey
rollData.attr = duplicate(this.data.data.attributs[attrKey])
}
if (compKey) {
rollData.compKey = compKey
// TODO!
if (compId) {
rollData.competence = duplicate(this.data.items.get(compId) || {})
}
return rollData
}
@@ -183,7 +215,14 @@ export class MournbladeActor extends Actor {
console.log("RollDatra", rollData)
let rollDialog = await MournbladeRollDialog.create(this, rollData)
rollDialog.render(true)
}
/* -------------------------------------------- */
async rollCompetence(attrKey, compId) {
let rollData = this.getCommonRollData(attrKey, compId)
console.log("RollDatra", rollData)
let rollDialog = await MournbladeRollDialog.create(this, rollData)
rollDialog.render(true)
}
}

View File

@@ -124,21 +124,10 @@ export class MournbladeItemSheet extends ItemSheet {
item.sheet.render(true);
});
html.find('.delete-spec').click(ev => {
this.object.update({ "data.specialisation": [{ name: 'None' }] });
});
html.find('.delete-subitem').click(ev => {
this.deleteSubitem(ev);
});
html.find('.stat-choice-flag').click(ev => {
let idx = $(ev.currentTarget).data("stat-idx");
let array = duplicate(this.object.data.data.statincreasechoice);
array[Number(idx)].flag = !array[Number(idx)].flag;
this.object.update({ "data.statincreasechoice": array });
});
// Update Inventory Item
html.find('.item-delete').click(ev => {
const li = $(ev.currentTarget).parents(".item");

View File

@@ -102,7 +102,8 @@ export class MournbladeUtility {
const templatePaths = [
'systems/fvtt-mournblade/templates/editor-notes-gm.html',
'systems/fvtt-mournblade/templates/partial-item-description.html'
'systems/fvtt-mournblade/templates/partial-item-description.html',
'systems/fvtt-mournblade/templates/partial-list-niveau.html'
]
return loadTemplates(templatePaths);
}
@@ -264,7 +265,8 @@ export class MournbladeUtility {
rollData.diceFormula = rollData.mainDice
if (rollData.competence) {
rollData.diceFormula += `+${rollData.attr.value}+${rollData.competence.data.niveau}+${rollData.modificateur}`
let compmod = (rollData.competence.data.niveau == 0) ? -3 : 0
rollData.diceFormula += `+${rollData.attr.value}+${rollData.competence.data.niveau}+${rollData.modificateur}+${compmod}`
} else {
rollData.diceFormula += `+${rollData.attr.value}*2+${rollData.modificateur}`
}