Sante et autrs

This commit is contained in:
2022-06-06 22:33:46 +02:00
parent d7387ac062
commit f23bdca66d
12 changed files with 423 additions and 137 deletions

View File

@ -39,7 +39,7 @@ export class MournbladeActor extends Actor {
if (data.type == 'personnage') {
const skills = await MournbladeUtility.loadCompendium("fvtt-mournblade.skills")
data.items = skills.map(i => i.toObject())
data.items = skills.map(i => i.toObject())
}
if (data.type == 'pnj') {
}
@ -48,20 +48,20 @@ export class MournbladeActor extends Actor {
}
/* -------------------------------------------- */
prepareArme( arme){
arme = duplicate(arme)
prepareArme(arme) {
arme = duplicate(arme)
let combat = this.getCombatValues()
if (arme.data.typearme == "contact" || arme.data.typearme == "contactjet") {
arme.data.competence = duplicate(this.data.items.find( item => item.type == "competence" && item.name.toLowerCase() == "mêlée"))
arme.data.competence = duplicate(this.data.items.find(item => item.type == "competence" && item.name.toLowerCase() == "mêlée"))
arme.data.attrKey = "pui"
arme.data.totalDegats = arme.data.degats + "+" + combat.bonusDegatsTotal
arme.data.totalOffensif = this.data.data.attributs.pui.value + arme.data.competence.data.niveau + arme.data.bonusmaniementoff
if (arme.data.isdefense) {
arme.data.totalDefensif = combat.defenseTotal + arme.data.competence.data.niveau + arme.data.bonusmaniementdef
arme.data.totalDefensif = combat.defenseTotal + arme.data.competence.data.niveau + arme.data.bonusmaniementdef
}
}
if (arme.data.typearme == "jet" || arme.data.typearme == "tir") {
arme.data.competence = duplicate(this.data.items.find( item => item.type == "competence" && item.name.toLowerCase() == "armes à distance"))
arme.data.competence = duplicate(this.data.items.find(item => item.type == "competence" && item.name.toLowerCase() == "armes à distance"))
arme.data.attrKey = "adr"
arme.data.totalOffensif = this.data.data.attributs.adr.value + arme.data.competence.data.niveau + arme.data.bonusmaniementoff
arme.data.totalDegats = arme.data.degats
@ -75,9 +75,9 @@ export class MournbladeActor extends Actor {
/* -------------------------------------------- */
getWeapons() {
let armes = []
for (let arme of this.data.items ) {
for (let arme of this.data.items) {
if (arme.type == "arme") {
armes.push(this.prepareArme( arme) )
armes.push(this.prepareArme(arme))
}
}
return armes
@ -88,6 +88,13 @@ export class MournbladeActor extends Actor {
return this.data.items.filter(item => item.type == "don")
}
/* -------------------------------------------- */
getTendances() {
return this.data.items.filter(item => item.type == "tendance")
}
getRunes() {
return this.data.items.filter(item => item.type == "rune")
}
/* -------------------------------------------- */
getEquipments() {
return this.data.items.filter(item => item.type == "equipement")
}
@ -95,6 +102,15 @@ export class MournbladeActor extends Actor {
getArmors() {
return this.data.items.filter(item => item.type == "protection")
}
getOrigine() {
return this.data.items.find(item => item.type == "origine")
}
getMetier() {
return this.data.items.find(item => item.type == "metier")
}
getHeritage() {
return this.data.items.find(item => item.type == "heritage")
}
/* -------------------------------------------- */
getSkills() {
let comp = []
@ -115,7 +131,17 @@ export class MournbladeActor extends Actor {
comp.push(item)
}
}
return comp
return comp.sort(function (a, b) {
let fa = a.name.toLowerCase(),
fb = b.name.toLowerCase();
if (fa < fb) {
return -1;
}
if (fa > fb) {
return 1;
}
return 0;
})
}
/* -------------------------------------------- */
@ -125,12 +151,12 @@ export class MournbladeActor extends Actor {
/* -------------------------------------------- */
getDefenseBase() {
return this.data.data.attributs.tre.value + 5
return this.data.data.attributs.tre.value + 5
}
/* -------------------------------------------- */
getVitesseBase() {
return __vitesseBonus[this.data.data.attributs.adr.value]
return 5 + __vitesseBonus[this.data.data.attributs.adr.value]
}
/* -------------------------------------------- */
@ -160,13 +186,13 @@ export class MournbladeActor extends Actor {
prepareDerivedData() {
if (this.type == 'personnage') {
let newSante = (this.data.data.attributs.pui.value + this.data.data.attributs.tre.value)*2 + 5
if (this.data.data.sante.base!=newSante ) {
this.update( {'data.sante.base': newSante} )
let newSante = this.data.data.sante.bonus + (this.data.data.attributs.pui.value + this.data.data.attributs.tre.value) * 2 + 5
if (this.data.data.sante.base != newSante) {
this.update({ 'data.sante.base': newSante })
}
let newAme = (this.data.data.attributs.cla.value + this.data.data.attributs.tre.value)*2 + 5
if (this.data.data.ame.base!=newAme ) {
this.update( {'data.ame.base': newAme} )
let newAme = (this.data.data.attributs.cla.value + this.data.data.attributs.tre.value) * this.data.data.biodata.amemultiplier + 5
if (this.data.data.ame.base != newAme) {
this.update({ 'data.ame.base': newAme })
}
}
@ -261,7 +287,7 @@ export class MournbladeActor extends Actor {
getBonusDegats() {
return __degatsBonus[this.data.data.attributs.pui.value]
}
/* -------------------------------------------- */
async equipGear(equipmentId) {
let item = this.data.items.find(item => item.id == equipmentId);
@ -306,16 +332,16 @@ export class MournbladeActor extends Actor {
}
/* -------------------------------------------- */
getCompetence( compId ) {
getCompetence(compId) {
return this.data.items.get(compId)
}
/* -------------------------------------------- */
async setPredilectionUsed( compId, predIdx) {
async setPredilectionUsed(compId, predIdx) {
let comp = this.data.items.get(compId)
let pred = duplicate(comp.data.data.predilections)
pred[predIdx].used = true
await this.updateEmbeddedDocuments('Item', [ {_id: compId, 'data.predilections': pred}])
await this.updateEmbeddedDocuments('Item', [{ _id: compId, 'data.predilections': pred }])
}
/* -------------------------------------------- */
@ -362,7 +388,7 @@ export class MournbladeActor extends Actor {
/* -------------------------------------------- */
async rollArmeOffensif(armeId) {
let arme = this.data.items.get(armeId)
arme = this.prepareArme( arme )
arme = this.prepareArme(arme)
let rollData = this.getCommonRollData(arme.data.attrKey, arme.data.competence._id)
rollData.arme = arme
console.log("ARME!", rollData)
@ -373,16 +399,16 @@ export class MournbladeActor extends Actor {
/* -------------------------------------------- */
async rollArmeDegats(armeId) {
let arme = this.data.items.get(armeId)
arme = this.prepareArme( arme )
let roll = new Roll(arme.data.totalDegats).roll( {async:false})
arme = this.prepareArme(arme)
let roll = new Roll(arme.data.totalDegats).roll({ async: false })
await MournbladeUtility.showDiceSoNice(roll, game.settings.get("core", "rollMode"));
let rollData = {
arme:arme,
arme: arme,
finalResult: roll.total,
alias : this.name,
actorImg : this.img,
actorId : this.id,
actionImg : arme.img,
alias: this.name,
actorImg: this.img,
actorId: this.id,
actionImg: arme.img,
}
MournbladeUtility.createChatWithRollMode(rollData.alias, {
content: await renderTemplate(`systems/fvtt-mournblade/templates/chat-degats-result.html`, rollData)