Fix #19 - Horoscope majeur
This commit is contained in:
@ -505,11 +505,17 @@ export class BoLActor extends Actor {
|
||||
this.createEmbeddedDocuments('Item', [horoscope])
|
||||
}
|
||||
if (rollData.horoscopeType == "major") {
|
||||
if (rollData.isSuccess) {
|
||||
this.subHeroPoints(1)
|
||||
} else {
|
||||
this.addHeroPoints(1)
|
||||
let actorHoroscope = this
|
||||
if(rollData.targetId) {
|
||||
let token = game.scenes.current.tokens.get(rollData.targetId)
|
||||
actorHoroscope = token.actor
|
||||
}
|
||||
if (rollData.isSuccess) {
|
||||
actorHoroscope.addHeroPoints(1)
|
||||
} else {
|
||||
actorHoroscope.subHeroPoints(1)
|
||||
}
|
||||
rollData.horoscopeName = actorHoroscope.name
|
||||
}
|
||||
if (rollData.horoscopeType == "majorgroup") {
|
||||
let rID = randomID(16)
|
||||
@ -800,6 +806,7 @@ export class BoLActor extends Actor {
|
||||
whisper: BoLUtility.getWhisperRecipientsAndGMs(this.name),
|
||||
content: await renderTemplate('systems/bol/templates/chat/chat-recup-information.hbs', {
|
||||
name: this.name,
|
||||
img: this.img,
|
||||
actorId: this.id,
|
||||
lossHP: lossHP,
|
||||
recupHP: Math.ceil(lossHP / 2)
|
||||
@ -811,7 +818,8 @@ export class BoLActor extends Actor {
|
||||
/*-------------------------------------------- */
|
||||
async applyRecuperation(recupHP) {
|
||||
let hp = duplicate(this.system.resources.hp)
|
||||
hp.value += recupHP
|
||||
//console.log("RECUP !!!!", hp, recupHP)
|
||||
hp.value += Number(recupHP)
|
||||
hp.value = Math.min(hp.value, hp.max)
|
||||
this.update({ 'system.resources.hp': hp })
|
||||
let msg = await ChatMessage.create({
|
||||
|
@ -122,7 +122,7 @@ Hooks.once('ready', async function () {
|
||||
BoLUtility.ready()
|
||||
BoLCharacterSummary.ready()
|
||||
|
||||
registerUsageCount('bol')
|
||||
registerUsageCount(game.system.id)
|
||||
|
||||
|
||||
welcomeMessage()
|
||||
|
@ -220,6 +220,9 @@ export class BoLRoll {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static horoscopeCheck(actor, event, horoscopeType) {
|
||||
|
||||
let target = BoLUtility.getTarget()
|
||||
|
||||
let cost = (horoscopeType == "minor") ? 1 : 2
|
||||
if (cost > actor.getAstrologyPoints()) {
|
||||
ui.notifications.warn(game.i18n.localize("BOL.ui.astrologyNoPoints"))
|
||||
@ -233,6 +236,7 @@ export class BoLRoll {
|
||||
rollData.astrologyPointsCost = cost
|
||||
rollData.label = game.i18n.localize('BOL.ui.makeHoroscope')
|
||||
rollData.description = game.i18n.localize('BOL.ui.makeHoroscope') + " " + game.i18n.localize(rollData.horoscopeTypeLabel)
|
||||
rollData.targetId = target?.id
|
||||
|
||||
console.log("HOROSCOPE!", rollData);
|
||||
return this.displayRollDialog(rollData);
|
||||
@ -685,6 +689,7 @@ export class BoLDefaultRoll {
|
||||
flavor: msgFlavor,
|
||||
speaker: ChatMessage.getSpeaker({ actor: actor }),
|
||||
})
|
||||
this.rollData.roll = duplicate(this.rollData.roll) // Remove object, keep data (v111 ready)
|
||||
msg.setFlag("world", "bol-roll-data", this.rollData)
|
||||
})
|
||||
}
|
||||
|
@ -33,18 +33,20 @@ export class BoLCombatManager extends Combat {
|
||||
|
||||
/************************************************************************************/
|
||||
nextRound() {
|
||||
let combatants = this.combatants.contents
|
||||
let autoRemoveDead = game.settings.get("bol", "auto-remove-dead") // Optionnal auto-removal of dead char.
|
||||
for (let c of combatants) {
|
||||
//let actor = game.actors.get(c.actorId)
|
||||
c.actor.clearRoundModifiers()
|
||||
let toRemove = []
|
||||
if (autoRemoveDead && c.actor.type == "encounter" && (c.actor.system.chartype == "tough" || c.actor.system.chartype == "creature" || c.actor.system.chartype == "base") && c.actor.system.resources.hp.value <= 0) {
|
||||
toRemove.push( c.id || c._id)
|
||||
}
|
||||
//console.log("REM", autoRemoveDead, toRemove, c.actor)
|
||||
if (toRemove.length>0) {
|
||||
this.deleteEmbeddedDocuments('Combatant', toRemove)
|
||||
if (game.user.isGM) {
|
||||
let combatants = this.combatants.contents
|
||||
let autoRemoveDead = game.settings.get("bol", "auto-remove-dead") // Optionnal auto-removal of dead char.
|
||||
for (let c of combatants) {
|
||||
//let actor = game.actors.get(c.actorId)
|
||||
c.actor.clearRoundModifiers()
|
||||
let toRemove = []
|
||||
if (autoRemoveDead && c.actor.type == "encounter" && (c.actor.system.chartype == "tough" || c.actor.system.chartype == "creature" || c.actor.system.chartype == "base") && c.actor.system.resources.hp.value <= 0) {
|
||||
toRemove.push(c.id || c._id)
|
||||
}
|
||||
//console.log("REM", autoRemoveDead, toRemove, c.actor)
|
||||
if (toRemove.length > 0) {
|
||||
this.deleteEmbeddedDocuments('Combatant', toRemove)
|
||||
}
|
||||
}
|
||||
}
|
||||
super.nextRound()
|
||||
@ -52,21 +54,25 @@ export class BoLCombatManager extends Combat {
|
||||
|
||||
/************************************************************************************/
|
||||
startCombat() {
|
||||
let combatants = this.combatants.contents
|
||||
for (let c of combatants) {
|
||||
let actor = game.actors.get(c.actorId)
|
||||
actor.storeVitaliteCombat()
|
||||
if (game.user.isGM) {
|
||||
let combatants = this.combatants.contents
|
||||
for (let c of combatants) {
|
||||
let actor = game.actors.get(c.actorId)
|
||||
actor.storeVitaliteCombat()
|
||||
}
|
||||
}
|
||||
return super.startCombat()
|
||||
}
|
||||
|
||||
/************************************************************************************/
|
||||
_onDelete() {
|
||||
let combatants = this.combatants.contents
|
||||
for (let c of combatants) {
|
||||
let actor = game.actors.get(c.actorId)
|
||||
actor.clearInitiative()
|
||||
actor.displayRecuperation()
|
||||
if (game.user.isGM) {
|
||||
let combatants = this.combatants.contents
|
||||
for (let c of combatants) {
|
||||
let actor = game.actors.get(c.actorId)
|
||||
actor.clearInitiative()
|
||||
actor.displayRecuperation()
|
||||
}
|
||||
}
|
||||
super._onDelete()
|
||||
}
|
||||
|
@ -27,8 +27,8 @@ export class BoLUtility {
|
||||
onChange: lang => window.location.reload()
|
||||
})
|
||||
game.settings.register("bol", "auto-remove-dead", {
|
||||
name: "Enlever les PNJs morts automatiquement",
|
||||
hint: "Supprime les PNJ (piétaille, créatures, coriaces) automatiquement du combat lorsqu'ils sont à 0 Vitalité ou moins",
|
||||
name: "Enlever les PNJs morts automatiquement au round suivant",
|
||||
hint: "Supprime les PNJ (piétaille, créatures, coriaces) automatiquement du combat lorsqu'ils sont à 0 Vitalité ou moins, lors du passage au round suivant",
|
||||
scope: "world",
|
||||
config: true,
|
||||
default: false,
|
||||
|
Reference in New Issue
Block a user