Compare commits

..

3 Commits

8 changed files with 76 additions and 5047 deletions

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 372 KiB

View File

@ -183,6 +183,7 @@
"BOL.ui.selectactor": "Selectionnez votre personnage pour utiliser la macro", "BOL.ui.selectactor": "Selectionnez votre personnage pour utiliser la macro",
"BOL.ui.itemnotfound": "Impossible de trouver l'objet de cette macro", "BOL.ui.itemnotfound": "Impossible de trouver l'objet de cette macro",
"BOL.ui.noinit": "Pas d'initiative trouvée, veuillez en enregistrer une.", "BOL.ui.noinit": "Pas d'initiative trouvée, veuillez en enregistrer une.",
"BOL.ui.warninitiative": "Votre initiative n'est pas disponible. Effectuez un jet d'Initiative pour ce combat.",
"BOL.featureCategory.origins": "Origines", "BOL.featureCategory.origins": "Origines",
"BOL.featureCategory.races": "Races", "BOL.featureCategory.races": "Races",

View File

@ -148,7 +148,7 @@ export class BoLActorSheet extends ActorSheet {
formData.options = this.options formData.options = this.options
formData.owner = this.document.isOwner formData.owner = this.document.isOwner
formData.editScore = this.options.editScore formData.editScore = this.options.editScore
formData.useBougette = BoLUtility.getUseBougette() formData.useBougette = (this.actor.type == "character" && BoLUtility.getUseBougette()) || false
formData.bougette = this.actor.getBougette() formData.bougette = this.actor.getBougette()
formData.charType = this.actor.getCharType() formData.charType = this.actor.getCharType()
formData.villainy = this.actor.getVillainy() formData.villainy = this.actor.getVillainy()

View File

@ -40,26 +40,35 @@ export class BoLActor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
getBougette() { getBougette() {
let b = duplicate(this.system.bougette) if ( this.type == "character") {
b.label = game.i18n.localize( game.bol.config.bougetteState[String(this.system.bougette.value)] ) let b = duplicate(this.system.bougette)
b.diceImg = "icons/dice/" + game.bol.config.bougetteDice[String(this.system.bougette.value)] + "black.svg" b.label = game.i18n.localize( game.bol.config.bougetteState[String(this.system.bougette.value)] )
return b b.diceImg = "icons/dice/" + game.bol.config.bougetteDice[String(this.system.bougette.value)] + "black.svg"
return b
}
return undefined
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
async rollBougette() { async rollBougette() {
//ui.notifications.info("Roll bougette done !") if ( this.type == "character") {
let attribute = duplicate(this.system.attributes.vigor) let attribute = duplicate(this.system.attributes.vigor)
let rollData = BoLRoll.getCommonRollData(this, "bougette", attribute, undefined ) let rollData = BoLRoll.getCommonRollData(this, "bougette", attribute, undefined )
rollData.formula = game.bol.config.bougetteDice[String(this.system.bougette.value)] rollData.formula = game.bol.config.bougetteDice[String(this.system.bougette.value)]
let r = new BoLDefaultRoll(rollData) let r = new BoLDefaultRoll(rollData)
r.roll() r.roll()
}
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
decBougette() { decBougette() {
let bougette = duplicate(this.system.bougette) if ( this.type == "character") {
bougette.value = Math.max( Number(bougette.value) - 1, 0) let bougette = duplicate(this.system.bougette)
this.update( { 'system.bougette': bougette } ) bougette.value = Math.max( Number(bougette.value) - 1, 0)
this.update( { 'system.bougette': bougette } )
}
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
updateResourcesData() { updateResourcesData() {
if (this.type == 'character') { if (this.type == 'character') {
@ -654,15 +663,23 @@ export class BoLActor extends Actor {
} }
/*-------------------------------------------- */ /*-------------------------------------------- */
getInitiativeRank(rollData = undefined) { clearInitiative() {
this.unsetFlag("world", "last-initiative" )
}
/*-------------------------------------------- */
getInitiativeRank(rollData = undefined, isCombat = false) {
if (!rollData) { if (!rollData) {
rollData = this.getFlag("world", "last-initiative") rollData = this.getFlag("world", "last-initiative")
} }
let fvttInit = 4 // Pietaille par defaut let fvttInit = 4 // Pietaille par defaut
if (this.type == 'character' ) { if (this.type == 'character' ) {
fvttInit = 5 fvttInit = 5
if (!rollData) { if (!rollData) {
fvttInit = -1 fvttInit = -1
if ( isCombat ) {
ui.notifications.warn(game.i18n.localize("BOL.ui.warninitiative"))
}
} else { } else {
if (rollData.isLegendary) { if (rollData.isLegendary) {
fvttInit = 10 fvttInit = 10

View File

@ -25,7 +25,7 @@ export class BoLCombatManager extends Combat {
// calculate initiative // calculate initiative
for (let cId = 0; cId < ids.length; cId++) { for (let cId = 0; cId < ids.length; cId++) {
const combatant = this.combatants.get(ids[cId]) const combatant = this.combatants.get(ids[cId])
let fvttInit = combatant.actor.getInitiativeRank() let fvttInit = combatant.actor.getInitiativeRank(false, true)
fvttInit += (cId / 100) fvttInit += (cId / 100)
await this.updateEmbeddedDocuments("Combatant", [{ _id: ids[cId], initiative: fvttInit }]); await this.updateEmbeddedDocuments("Combatant", [{ _id: ids[cId], initiative: fvttInit }]);
} }
@ -40,7 +40,16 @@ export class BoLCombatManager extends Combat {
} }
super.nextRound() super.nextRound()
} }
/************************************************************************************/
_onDelete() {
let combatants = this.combatants.contents
for (let c of combatants) {
let actor = game.actors.get(c.data.actorId)
actor.clearInitiative()
}
super._onDelete()
}
} }

View File

@ -14,7 +14,7 @@
], ],
"url": "https://www.uberwald.me/gitea/public/bol", "url": "https://www.uberwald.me/gitea/public/bol",
"license": "LICENSE.txt", "license": "LICENSE.txt",
"version": "10.4.10", "version": "10.4.13",
"compatibility": { "compatibility": {
"minimum": "10", "minimum": "10",
"verified": "10", "verified": "10",
@ -203,8 +203,8 @@
], ],
"socket": true, "socket": true,
"manifest": "https://www.uberwald.me/gitea/public/bol/raw/v10/system.json", "manifest": "https://www.uberwald.me/gitea/public/bol/raw/v10/system.json",
"download": "https://www.uberwald.me/gitea/public/bol/archive/bol-v10.4.10.zip", "download": "https://www.uberwald.me/gitea/public/bol/archive/bol-v10.4.13.zip",
"background": "systems/images/map_lemurie.webp", "background": "systems/bol/ui/page_accueil.webp",
"gridDistance": 1.5, "gridDistance": 1.5,
"gridUnits": "m", "gridUnits": "m",
"primaryTokenAttribute": "resources.hp", "primaryTokenAttribute": "resources.hp",

View File

@ -1,34 +1,34 @@
<!--ARMES--> <!--ARMES-->
<button class="create_item">Créer un Equipement</button> <button class="create_item">Créer un Equipement</button>
{{#if useBougette}} {{#if useBougette}}
<ol class="items-list"> <ol class="items-list">
<li class="item flexrow item-header"> <li class="item flexrow item-header">
<div class="item-name flex4 left">{{localize "BOL.ui.moneyTitle"}}</div> <div class="item-name flex4 left">{{localize "BOL.ui.moneyTitle"}}</div>
<div class="item-name flex4 left">&nbsp;</div> <div class="item-name flex4 left">&nbsp;</div>
</li> </li>
<li class="item flexrow" data-item-id="{{item._id}}"> <li class="item flexrow" data-item-id="{{item._id}}">
<h4 class="item-name flex4 left"> <h4 class="item-name flex4 left">
<div class="item-image"><img src="icons/containers/bags/coinpouch-simple-leather-brown.webp" title="{{localize "BOL.ui.money"}}" /></div> <div class="item-image"><img src="icons/containers/bags/coinpouch-simple-leather-brown.webp" title="{{localize "BOL.ui.money"}}" /></div>
{{localize "BOL.ui.money"}} {{localize "BOL.ui.money"}}
</h4> </h4>
<div class="item-image"> <div class="item-image">
<a class="bougette-roll rollable" data-roll-type="bougette"><i class="darkgreen fas fa-dice"></i></a> <a class="bougette-roll rollable" data-roll-type="bougette"><i class="darkgreen fas fa-dice"></i></a>
</div> </div>
{{#if isGM}} {{#if isGM}}
<select class="field-value" name="system.bougette.value" data-dtype="String"> <select class="field-value" name="system.bougette.value" data-dtype="String">
{{#select bougette.value}} {{#select bougette.value}}
{{#each config.bougetteState as |value id|}} {{#each config.bougetteState as |value id|}}
<option value="{{id}}">{{localize value}}</option> <option value="{{id}}">{{localize value}}</option>
{{/each}} {{/each}}
{{/select}} {{/select}}
</select> </select>
{{else}} {{else}}
<label class="">{{localize bougette.label}}</label></a> <label class="">{{localize bougette.label}}</label></a>
{{/if}} {{/if}}
</li> </li>
</ol> </ol>
{{/if}} {{/if}}
<ol class="items-list"> <ol class="items-list">
<li class="item flexrow item-header"> <li class="item flexrow item-header">

BIN
ui/page_accueil.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 494 KiB