Various fixes and enhancents

This commit is contained in:
2023-08-07 23:28:04 +02:00
parent 3dcb60e7a9
commit 58bcfc07a3
60 changed files with 284 additions and 179 deletions

View File

@@ -77,19 +77,28 @@ export class Hero6Combat extends Combat {
}
/* -------------------------------------------- */
forceHold(actor, isHold) {
let updList = []
let c = this.combatants.find(c => c.actor._id == actor.id)
let name = actor.name + ((isHold) ? " (H)" : "")
updList.push({ _id: c.id || c._id, name: name, initiative: actor.getBaseInit(this.segmentNumber) })
this.updateEmbeddedDocuments("Combatant", updList)
if (game.user.isGM) {
let updList = []
let c = this.combatants.find(c => c.actor._id == actor.id)
let name = actor.name + ((isHold) ? " (H)" : "")
console.log("ForceHold!!", c, actor)
updList.push({ _id: c.id || c._id, name: name, initiative: actor.getBaseInit(this.segmentNumber) })
this.updateEmbeddedDocuments("Combatant", updList)
} else {
game.socket.emit("system.fvtt-hero-system-6", { name: "msg_force_hold", data: { actorId: actor.id, isHold: isHold } });
}
}
/* -------------------------------------------- */
forceAbort(actor, isAbort) {
let updList = []
let c = this.combatants.find(c => c.actor._id == actor.id)
let name = actor.name + ((isAbort) ? " (A)" : "")
updList.push({ _id: c.id || c._id, name: name, initiative: actor.getBaseInit(this.segmentNumber) })
this.updateEmbeddedDocuments("Combatant", updList)
if (game.user.isGM) {
let updList = []
let c = this.combatants.find(c => c.actor._id == actor.id)
let name = actor.name + ((isAbort) ? " (A)" : "")
updList.push({ _id: c.id || c._id, name: name, initiative: actor.getBaseInit(this.segmentNumber) })
this.updateEmbeddedDocuments("Combatant", updList)
} else {
game.socket.emit("system.fvtt-hero-system-6", { name: "msg_force_abort", data: { actorId: actor.id, isAbort: isAbort } });
}
}
/* -------------------------------------------- */
@@ -110,7 +119,7 @@ export class Hero6Combat extends Combat {
}
if (isOnAbort) {
name = c.actor.name + " (A)"
if ( c.actor.incAbortActionCount() ) {
if (c.actor.incAbortActionCount()) {
c.actor.disableAbortAction()
}
}
@@ -159,7 +168,7 @@ export class Hero6Combat extends Combat {
nextTurn() {
let nbC = this.combatants.filter(c => c.initiative > 0).length
//console.log("Next turn called....", this.turn, nbC)
if (this.turn < nbC-1) {
if (this.turn < nbC - 1) {
super.nextTurn()
} else {
this.nextRound()
@@ -172,7 +181,7 @@ export class Hero6Combat extends Combat {
let nextRound = this.round
let advanceTime = 0
let turn = this.turn === null ? null : 0; // Preserve the fact that it's no-one's turn currently.
let turnData = this.getFlag("world", "hero6-turn-data")
let turnData = this.getFlag("world", "turnData")
//console.log("Next round called....", nextRound, turnData)
while (!hasCombatants) {
@@ -187,18 +196,21 @@ export class Hero6Combat extends Combat {
advanceTime += CONFIG.time.roundTime;
nextRound = nextRound + 1;
//console.log("Next round called....2", nextRound, turnData)
turnData = this.getFlag("world", "hero6-turn-data")
turnData = this.getFlag("world", "turnData")
if (!turnData) {
turnData = { turnNumber: 0, segmentNumber: 12 }
this.setFlag("world", "hero6-turn-data", turnData)
this.setFlag("world", "turnData", turnData)
}
turnData = duplicate(turnData)
turnData.segmentNumber += 1
if (turnData.segmentNumber > 12) {
turnData.segmentNumber = 1
turnData.turnNumber++
ChatMessage.create({
content: "Complete Post-Segment 12 Recoveries."
})
}
await this.setFlag("world", "hero6-turn-data", turnData)
await this.setFlag("world", "turnData", turnData)
this.turnNumber = turnData.turnNumber;
this.segmentNumber = turnData.segmentNumber;
//console.log("Next round called....3", nextRound, turnData)
@@ -209,9 +221,10 @@ export class Hero6Combat extends Combat {
}
// Update the document, passing data through a hook first
const updateData = { round: nextRound, turn: turn, segmentNumber: turnData.segmentNumber, turnNumber: turnData.turnNumber };
const updateData = { round: nextRound, turn };
const updateOptions = { advanceTime, direction: 1 };
Hooks.callAll("combatRound", this, updateData, updateOptions);
console.log(this)
return this.update(updateData, updateOptions);
}