Diverses ameliorations

This commit is contained in:
2023-03-09 13:16:19 +01:00
parent b0a3cb08cb
commit 11b0f22aa7
12 changed files with 136 additions and 25 deletions

View File

@ -146,6 +146,11 @@ export class HeritiersActorSheet extends ActorSheet {
let armeId = li.data("item-id")
this.actor.rollAttaqueArme(armeId)
})
html.find('.roll-pouvoir').click((event) => {
const li = $(event.currentTarget).parents(".item")
let pouvoirId = li.data("item-id")
this.actor.rollPouvoir(pouvoirId)
})
html.find('.item-add').click((event) => {
const itemType = $(event.currentTarget).data("type")

View File

@ -42,8 +42,8 @@ export class HeritiersActor extends Actor {
data.items = []
for (let skill of skills) {
if (skill.system.categorie == "utile") {
data.items.push( skill.toObject())
}
data.items.push(skill.toObject())
}
}
}
if (data.type == 'creature') {
@ -162,7 +162,7 @@ export class HeritiersActor extends Actor {
prepareUtileSkill(item) {
let specList = []
if (item.system.categorie == "utile") {
for (let spec of item.system.specialites) {
for (let spec of item.system.specialites) {
specList.push(spec.name)
}
}
@ -190,12 +190,12 @@ export class HeritiersActor extends Actor {
return comp
}
/* -------------------------------------------- */
organizeContacts( ) {
organizeContacts() {
let contactList = {}
for (let item of this.items) {
if (item.type == "contact") {
let c = contactList[item.system.contacttype] || { label: game.system.lesheritiers.config.contactType[item.system.contacttype], list: [] }
c.list.push( item )
c.list.push(item)
contactList[item.system.contacttype] = c
}
}
@ -524,7 +524,7 @@ export class HeritiersActor extends Actor {
/* -------------------------------------------- */
async rollInitiative() {
let rollData = this.getCommonRollData(undefined, "Art de la guerre")
rollData.mode = "init"
rollData.mode = "init"
if (this.system.caracteristiques["san"].value > this.system.caracteristiques["per"].value) {
rollData.caracKey = "san"
} else {
@ -534,11 +534,11 @@ export class HeritiersActor extends Actor {
let rollDialog = await HeritiersRollDialog.create(this, rollData)
rollDialog.render(true)
}
/* -------------------------------------------- */
async rollCarac(key, isInit = false) {
let rollData = this.getCommonRollData()
rollData.mode = "carac"
rollData.mode = "carac"
rollData.carac = this.system.caracteristiques[key]
rollData.caracKey = key
let rollDialog = await HeritiersRollDialog.create(this, rollData)
@ -563,13 +563,32 @@ export class HeritiersActor extends Actor {
competenceName = "Mêlée"
key = "agi"
}
let rollData = this.getCommonRollData(undefined, competenceName )
let rollData = this.getCommonRollData(undefined, competenceName)
rollData.carac = this.system.caracteristiques[key]
rollData.caracKey = key
rollData.arme = duplicate(arme)
rollData.mode = "arme"
let rollDialog = await HeritiersRollDialog.create(this, rollData)
rollDialog.render(true)
}
}
/* -------------------------------------------- */
async rollPouvoir(pouvoirId) {
let pouvoir = this.items.get(pouvoirId)
if (pouvoir) {
let rollData = this.getCommonRollData(undefined, undefined)
if ( pouvoir.system.feeriemasque != "autre") {
rollData.pouvoirBase = duplicate(this.system.rang[pouvoir.system.feeriemasque.toLowerCase()])
rollData.pouvoirBase.label = "Féerie"
rollData.carac = duplicate(this.system.caracteristiques[pouvoir.system.carac])
rollData.caracKey = pouvoir.system.carac
}
rollData.pouvoir = duplicate(pouvoir)
rollData.mode = "pouvoir"
let rollDialog = await HeritiersRollDialog.create(this, rollData)
rollDialog.render(true)
}
}
/* -------------------------------------------- */
async rollArmeOffensif(armeId) {

View File

@ -8,7 +8,7 @@ export const HERITIERS_CONFIG = {
"prec": "Précision",
"esp": "Esprit",
"per": "Perception",
"pres": "Préstance",
"pres": "Prestance",
"san": "Sang-Froid"
},
@ -34,7 +34,7 @@ export const HERITIERS_CONFIG = {
},
baseTestPouvoir: {
"feerie": "Féerie",
"Masque": "Masque",
"masque": "Masque",
"autre": "Autre"
},
resistancePouvoir: {

View File

@ -16,7 +16,8 @@ export const defaultItemImg = {
accessoire: "systems/fvtt-les-heritiers/assets/icons/item.webp",
protection: "systems/fvtt-les-heritiers/assets/icons/armor.webp",
fee: "systems/fvtt-les-heritiers/assets/icons/faery_type.webp",
profil: "systems/fvtt-les-heritiers/assets/icons/profil.webp"
profil: "systems/fvtt-les-heritiers/assets/icons/profil.webp",
equipement: "systems/fvtt-les-heritiers/assets/icons/equipement.webp",
}
/**

View File

@ -362,15 +362,13 @@ export class HeritiersUtility {
let compmod = (rollData.competence.system.niveau == 0) ? -3 : 0
let specBonus = (rollData.useSpecialite) ? 1 : 0
rollData.diceFormula += `+${rollData.carac.value}+${rollData.competence.system.niveau}+${specBonus}+${rollData.bonusMalusContext}+${compmod}`
} else if (rollData.pouvoirBase) {
rollData.diceFormula += `+${rollData.pouvoirBase.value}+${rollData.bonusMalusContext}`
} else {
rollData.diceFormula += `+${rollData.carac.value}+${rollData.bonusMalusContext}`
}
rollData.diceFormula += `+${rollData.pvMalus}`
if (rollData.arme && rollData.arme.type == "arme") {
rollData.diceFormula += `+${rollData.arme.system.bonusmaniementoff}`
}
let myRoll = new Roll(rollData.diceFormula).roll({ async: false })
await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
rollData.roll = myRoll
@ -382,6 +380,17 @@ export class HeritiersUtility {
actor.setFlag("world", "last-initiative", rollData.finalResult)
}
// Compute damages, cf p 187
if (rollData.arme && rollData.isSuccess) {
rollData.degatsArme = rollData.arme.system.degats + rollData.marge
if (rollData.arme.system.categorie == "lourde" ) {
rollData.degatsArme += actor.system.caracteristiques.for.value
}
if (rollData.arme.system.categorie == "blanche" || rollData.arme.system.categorie == "improvise" ) {
rollData.degatsArme += Math.max(0, actor.system.caracteristiques.for.value - 2)
}
}
this.createChatWithRollMode(rollData.alias, {
content: await renderTemplate(`systems/fvtt-les-heritiers/templates/chat-generic-result.html`, rollData)
}, rollData)