Merge from v1.5 possession fix
This commit is contained in:
		@@ -369,12 +369,27 @@ export class RdDActor extends Actor {
 | 
				
			|||||||
    const list = this.getDraconicList()
 | 
					    const list = this.getDraconicList()
 | 
				
			||||||
    return duplicate(list[0])
 | 
					    return duplicate(list[0])
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  getDraconicOrZero() {
 | 
					  getDraconicOuPossession() {
 | 
				
			||||||
    const list = this.getDraconicList().filter(it => it.system.niveau >= 0);
 | 
					    const possessions = this.items.filter(it => it.type == 'competencecreature' && it.system.ispossession)
 | 
				
			||||||
    if (list.length == 0) {
 | 
					      .sort(Misc.descending(it => it.system.niveau));
 | 
				
			||||||
      return { name: "Aucun", system: { niveau: 0 } };
 | 
					    if (possessions.length>0) {
 | 
				
			||||||
 | 
					      return duplicate(possessions[0]);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    return duplicate(list[0]);
 | 
					    const draconics = this.getDraconicList().filter(it => it.system.niveau >= 0);
 | 
				
			||||||
 | 
					    if (draconics.length> 0) {
 | 
				
			||||||
 | 
					      return duplicate(draconics[0]);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    return {
 | 
				
			||||||
 | 
					      img: 'systems/foundryvtt-reve-de-dragon/icons/entites/possession.webp',
 | 
				
			||||||
 | 
					      name: 'Sans draconic',
 | 
				
			||||||
 | 
					      data: {
 | 
				
			||||||
 | 
					        niveau: 0,
 | 
				
			||||||
 | 
					        defaut_carac: "reve",
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  getPossession(possessionId) {
 | 
				
			||||||
 | 
					    return this.items.find(it => it.type == 'possession' && it.system.possessionid == possessionId);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  getDemiReve() {
 | 
					  getDemiReve() {
 | 
				
			||||||
@@ -779,7 +794,7 @@ export class RdDActor extends Actor {
 | 
				
			|||||||
  async combattreReveDeDragon(force) {
 | 
					  async combattreReveDeDragon(force) {
 | 
				
			||||||
    let rollData = {
 | 
					    let rollData = {
 | 
				
			||||||
      actor: this,
 | 
					      actor: this,
 | 
				
			||||||
      competence: duplicate(this.getDraconicOrZero()),
 | 
					      competence: duplicate(this.getDraconicOuPossession()),
 | 
				
			||||||
      canClose: false,
 | 
					      canClose: false,
 | 
				
			||||||
      rencontre: duplicate(TMRRencontres.getRencontre('rdd')),
 | 
					      rencontre: duplicate(TMRRencontres.getRencontre('rdd')),
 | 
				
			||||||
      tmr: true,
 | 
					      tmr: true,
 | 
				
			||||||
@@ -2519,7 +2534,7 @@ export class RdDActor extends Actor {
 | 
				
			|||||||
    if (rollData.competence.type == 'competencecreature') {
 | 
					    if (rollData.competence.type == 'competencecreature') {
 | 
				
			||||||
      if (rollData.competence.system.iscombat) {
 | 
					      if (rollData.competence.system.iscombat) {
 | 
				
			||||||
        if (rollData.competence.system.ispossession) {
 | 
					        if (rollData.competence.system.ispossession) {
 | 
				
			||||||
          RdDPossession.managePossession(this, rollData.competence)
 | 
					          RdDPossession.onAttaquePossession(this, rollData.competence)
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
          const arme = RdDItemCompetenceCreature.toArme(rollData.competence)
 | 
					          const arme = RdDItemCompetenceCreature.toArme(rollData.competence)
 | 
				
			||||||
          RdDCombat.createUsingTarget(this)?.attaque(competence, arme)
 | 
					          RdDCombat.createUsingTarget(this)?.attaque(competence, arme)
 | 
				
			||||||
@@ -2547,8 +2562,8 @@ export class RdDActor extends Actor {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  /* -------------------------------------------- */
 | 
					  /* -------------------------------------------- */
 | 
				
			||||||
  conjurerPossession(possession) {
 | 
					  conjurerPossession(possession) {
 | 
				
			||||||
    let draconic = this.getBestDraconic();
 | 
					    let draconic = this.getDraconicOuPossession();
 | 
				
			||||||
    RdDPossession.managePossession(this, draconic, possession)
 | 
					    RdDPossession.onAttaquePossession(this, draconic, possession)
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /* -------------------------------------------- */
 | 
					  /* -------------------------------------------- */
 | 
				
			||||||
@@ -3179,7 +3194,7 @@ export class RdDActor extends Actor {
 | 
				
			|||||||
    let competence = this.getCompetence(arme.system.competence)
 | 
					    let competence = this.getCompetence(arme.system.competence)
 | 
				
			||||||
    if (arme || (competence.type == 'competencecreature' && competence.system.iscombat)) {
 | 
					    if (arme || (competence.type == 'competencecreature' && competence.system.iscombat)) {
 | 
				
			||||||
      if (competence.system.ispossession) {
 | 
					      if (competence.system.ispossession) {
 | 
				
			||||||
        RdDPossession.managePossession(this, competence);
 | 
					        RdDPossession.onAttaquePossession(this, competence);
 | 
				
			||||||
      } else {
 | 
					      } else {
 | 
				
			||||||
        RdDCombat.createUsingTarget(this)?.attaque(competence, arme);
 | 
					        RdDCombat.createUsingTarget(this)?.attaque(competence, arme);
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -71,43 +71,34 @@ export class RdDPossession {
 | 
				
			|||||||
  static async onDefensePossession(attackerId, defenderId, possessionId) {
 | 
					  static async onDefensePossession(attackerId, defenderId, possessionId) {
 | 
				
			||||||
    let attacker = game.actors.get(attackerId)
 | 
					    let attacker = game.actors.get(attackerId)
 | 
				
			||||||
    let defender = game.actors.get(defenderId)
 | 
					    let defender = game.actors.get(defenderId)
 | 
				
			||||||
 | 
					    let possession = attacker.getPossession(possessionId) ?? defender.getPossession(possessionId) ;
 | 
				
			||||||
    let possession = attacker.items.find( item => item.type =='possession' && item.system.possessionid == possessionId)
 | 
					 | 
				
			||||||
    if ( !possession ) {    
 | 
					 | 
				
			||||||
      possession = defender.items.find( item => item.type =='possession' && item.system.possessionid == possessionId)
 | 
					 | 
				
			||||||
    if (!possession) {
 | 
					    if (!possession) {
 | 
				
			||||||
      ui.notifications.warn("Une erreur s'est produite : Aucune possession trouvée !!")
 | 
					      ui.notifications.warn("Une erreur s'est produite : Aucune possession trouvée !!")
 | 
				
			||||||
      return
 | 
					      return
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    possession = duplicate(possession)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // Update for draconic roll
 | 
					    // Update for draconic roll
 | 
				
			||||||
    let rollData = {
 | 
					    let rollData = {
 | 
				
			||||||
      possession: possession
 | 
					      mode: "conjuration",
 | 
				
			||||||
 | 
					      isECNIDefender: defender.type == "entite",
 | 
				
			||||||
 | 
					      possession: duplicate(possession),
 | 
				
			||||||
 | 
					      attacker: attacker,
 | 
				
			||||||
 | 
					      defender: defender,
 | 
				
			||||||
 | 
					      competence: defender.getDraconicOuPossession(),
 | 
				
			||||||
 | 
					      selectedCarac: defender.system.carac.reve,
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    rollData.actor = defender
 | 
					
 | 
				
			||||||
    if ( defender.type == "personnage") {
 | 
					    if (rollData.isECNIDefender) {
 | 
				
			||||||
      rollData.competence = duplicate(defender.getDraconicOrZero())
 | 
					 | 
				
			||||||
      rollData.competence.system.defaut_carac = 'reve-actuel'
 | 
					 | 
				
			||||||
      rollData.forceCarac = { 'reve-actuel': { label: "Rêve Actuel", value: defender.getReveActuel() } }
 | 
					 | 
				
			||||||
      rollData.selectedCarac = defender.system.carac.reve
 | 
					 | 
				
			||||||
      rollData.isECNIDefender = false
 | 
					 | 
				
			||||||
    } else {
 | 
					 | 
				
			||||||
      rollData.competence = duplicate(defender.getCompetence("Possession"))
 | 
					 | 
				
			||||||
      rollData.competence.system.defaut_carac = "reve"
 | 
					      rollData.competence.system.defaut_carac = "reve"
 | 
				
			||||||
      rollData.forceCarac = { 'reve': { label: "Rêve", value: defender.system.carac.reve.value } }
 | 
					      rollData.forceCarac = { 'reve': { label: "Rêve", value: defender.system.carac.reve.value } }
 | 
				
			||||||
      rollData.selectedCarac = defender.system.carac.reve
 | 
					    } else {
 | 
				
			||||||
      rollData.isECNIDefender = true
 | 
					      rollData.competence.system.defaut_carac = 'reve-actuel'
 | 
				
			||||||
      //RdDItemCompetenceCreature.setRollDataCreature( rollData )
 | 
					      rollData.forceCarac = { 'reve-actuel': { label: "Rêve Actuel", value: defender.getReveActuel() } }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    rollData.mode =  "conjuration"
 | 
					 | 
				
			||||||
    rollData.possesseur = attacker.name
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const dialog = await RdDRoll.create(defender, rollData,
 | 
					    const dialog = await RdDRoll.create(defender, rollData,
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
        html: 'systems/foundryvtt-reve-de-dragon/templates/dialog-roll-defense-possession.html',
 | 
					        html: 'systems/foundryvtt-reve-de-dragon/templates/dialog-roll-defense-possession.html',
 | 
				
			||||||
        options: { height: 400 }
 | 
					        options: { height: 450 }
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
        name: 'conjurer',
 | 
					        name: 'conjurer',
 | 
				
			||||||
@@ -121,16 +112,7 @@ export class RdDPossession {
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /* -------------------------------------------- */
 | 
					  /* -------------------------------------------- */
 | 
				
			||||||
  static async _onRollPossession( rollData, isSuccess ) {
 | 
					  static async onAttaquePossession(attacker, competence, possession = undefined) {
 | 
				
			||||||
    let possession = rollData.possession
 | 
					 | 
				
			||||||
    possession.isSuccess = isSuccess
 | 
					 | 
				
			||||||
    this.updateEtatPossession( possession)
 | 
					 | 
				
			||||||
    await RdDResolutionTable.displayRollData(rollData, this, 'chat-resultat-possession.html');
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  /* -------------------------------------------- */
 | 
					 | 
				
			||||||
  static async managePossession(attacker, competence, possession=undefined) {    
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    const target = RdDCombat.getTarget()
 | 
					    const target = RdDCombat.getTarget()
 | 
				
			||||||
    if (target == undefined) {
 | 
					    if (target == undefined) {
 | 
				
			||||||
      ui.notifications.warn((game.user.targets?.size ?? 0) > 1
 | 
					      ui.notifications.warn((game.user.targets?.size ?? 0) > 1
 | 
				
			||||||
@@ -140,23 +122,16 @@ export class RdDPossession {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const defender = target.actor;
 | 
					    const defender = target.actor;
 | 
				
			||||||
    if ( !possession) {
 | 
					    possession = duplicate(possession ?? this.searchPossessionFromEntite(attacker, defender) ??(await this.createPossession(attacker, defender)));
 | 
				
			||||||
      possession = this.searchPossessionFromEntite( attacker, defender)
 | 
					 | 
				
			||||||
      if ( !possession) {
 | 
					 | 
				
			||||||
        possession = await this.createPossession(attacker, defender)
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    possession = duplicate(possession);
 | 
					 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    this.updateEtatPossession(possession)
 | 
					    this.updateEtatPossession(possession)
 | 
				
			||||||
    let rollData = {
 | 
					    let rollData = {
 | 
				
			||||||
      competence: competence.data.data.niveau >=0 ? competence : RdDPossession.competenceNonHautRevant(),
 | 
					      mode: "possession",
 | 
				
			||||||
 | 
					      isECNIDefender: defender.type == "entite",
 | 
				
			||||||
 | 
					      competence: competence,
 | 
				
			||||||
      possession: possession,
 | 
					      possession: possession,
 | 
				
			||||||
      possede: defender.name,
 | 
					      attacker: attacker,
 | 
				
			||||||
      possesseur: attacker.name,
 | 
					      defender: defender
 | 
				
			||||||
      attackerId: attacker.id,
 | 
					 | 
				
			||||||
      defenderId: defender.id,
 | 
					 | 
				
			||||||
      mode: "possession"
 | 
					 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
    if (attacker.isCreature()) {
 | 
					    if (attacker.isCreature()) {
 | 
				
			||||||
      RdDItemCompetenceCreature.setRollDataCreature(rollData)
 | 
					      RdDItemCompetenceCreature.setRollDataCreature(rollData)
 | 
				
			||||||
@@ -168,7 +143,7 @@ export class RdDPossession {
 | 
				
			|||||||
        options: { height: 540 }
 | 
					        options: { height: 540 }
 | 
				
			||||||
      }, {
 | 
					      }, {
 | 
				
			||||||
      name: 'jet-possession',
 | 
					      name: 'jet-possession',
 | 
				
			||||||
      label: 'Possession: ',
 | 
					      label: rollData.isECNIDefender ? 'Conjurer la possession' : 'Possession',
 | 
				
			||||||
      callbacks: [
 | 
					      callbacks: [
 | 
				
			||||||
        { condition: r => (r.rolled.isSuccess), action: async r => await this._onRollPossession(r, true) },
 | 
					        { condition: r => (r.rolled.isSuccess), action: async r => await this._onRollPossession(r, true) },
 | 
				
			||||||
        { condition: r => (r.rolled.isEchec), action: async r => await this._onRollPossession(r, false) },
 | 
					        { condition: r => (r.rolled.isEchec), action: async r => await this._onRollPossession(r, false) },
 | 
				
			||||||
@@ -177,17 +152,11 @@ export class RdDPossession {
 | 
				
			|||||||
    dialog.render(true)
 | 
					    dialog.render(true)
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  static competenceNonHautRevant() {
 | 
					  /* -------------------------------------------- */
 | 
				
			||||||
    return {
 | 
					  static async _onRollPossession(rollData, isSuccess) {
 | 
				
			||||||
      img: 'systems/foundryvtt-reve-de-dragon/icons/competence_vigilance.webp',
 | 
					    rollData.possession.isSuccess = isSuccess;
 | 
				
			||||||
      name: 'non Haut-rêvant',
 | 
					    this.updateEtatPossession(rollData.possession);
 | 
				
			||||||
      data: {
 | 
					    await RdDResolutionTable.displayRollData(rollData, this, 'chat-resultat-possession.html');
 | 
				
			||||||
        data: {
 | 
					 | 
				
			||||||
          niveau: 0,
 | 
					 | 
				
			||||||
          defaut_carac: "reve",
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /* -------------------------------------------- */
 | 
					  /* -------------------------------------------- */
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -693,7 +693,7 @@ export class RdDUtility {
 | 
				
			|||||||
      actor.tmrApp.lancerSortEnReserve(coord, sortId);
 | 
					      actor.tmrApp.lancerSortEnReserve(coord, sortId);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // gestion bouton tchat Acheter
 | 
					    // gestion bouton tchat Possession
 | 
				
			||||||
    html.on("click", '.defense-possession', event => {
 | 
					    html.on("click", '.defense-possession', event => {
 | 
				
			||||||
      let attackerId = event.currentTarget.attributes['data-attackerId'].value
 | 
					      let attackerId = event.currentTarget.attributes['data-attackerId'].value
 | 
				
			||||||
      let defenderId = event.currentTarget.attributes['data-defenderId'].value
 | 
					      let defenderId = event.currentTarget.attributes['data-defenderId'].value
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -29,7 +29,7 @@
 | 
				
			|||||||
  "url": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/",
 | 
					  "url": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/",
 | 
				
			||||||
  "license": "LICENSE.txt",
 | 
					  "license": "LICENSE.txt",
 | 
				
			||||||
  "flags": {},
 | 
					  "flags": {},
 | 
				
			||||||
  "version": "10.0.0",
 | 
					  "version": "10.0.1",
 | 
				
			||||||
  "minimumCoreVersion": "10",
 | 
					  "minimumCoreVersion": "10",
 | 
				
			||||||
  "compatibleCoreVersion": "10",
 | 
					  "compatibleCoreVersion": "10",
 | 
				
			||||||
  "scripts": [],
 | 
					  "scripts": [],
 | 
				
			||||||
@@ -500,7 +500,7 @@
 | 
				
			|||||||
  "dependencies": [],
 | 
					  "dependencies": [],
 | 
				
			||||||
  "socket": true,
 | 
					  "socket": true,
 | 
				
			||||||
  "manifest": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/raw/v10/system.json",
 | 
					  "manifest": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/raw/v10/system.json",
 | 
				
			||||||
  "download": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/archive/foundryvtt-reve-de-dragon-10.0.0.zip",
 | 
					  "download": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/archive/foundryvtt-reve-de-dragon-10.0.1.zip",
 | 
				
			||||||
  "protected": false,
 | 
					  "protected": false,
 | 
				
			||||||
  "gridDistance": 1,
 | 
					  "gridDistance": 1,
 | 
				
			||||||
  "gridUnits": "m",
 | 
					  "gridUnits": "m",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -321,6 +321,7 @@
 | 
				
			|||||||
        {{!-- Liste de blessures --}}
 | 
					        {{!-- Liste de blessures --}}
 | 
				
			||||||
        {{> "systems/foundryvtt-reve-de-dragon/templates/actor-liste-blessures-partial.html" this}}
 | 
					        {{> "systems/foundryvtt-reve-de-dragon/templates/actor-liste-blessures-partial.html" this}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        {{#if maladiesPoisons.length}}
 | 
				
			||||||
        {{!-- Maladies & Poison --}}
 | 
					        {{!-- Maladies & Poison --}}
 | 
				
			||||||
        <h3 class="blessures-title">Maladies & Poisons:</h3>
 | 
					        <h3 class="blessures-title">Maladies & Poisons:</h3>
 | 
				
			||||||
        <ul class="item-list alterne-list">
 | 
					        <ul class="item-list alterne-list">
 | 
				
			||||||
@@ -354,7 +355,9 @@
 | 
				
			|||||||
          </li>
 | 
					          </li>
 | 
				
			||||||
          {{/each}}
 | 
					          {{/each}}
 | 
				
			||||||
          </ul>
 | 
					          </ul>
 | 
				
			||||||
 | 
					        {{/if}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        {{#if possessions.length}}
 | 
				
			||||||
        {{!-- Possession --}}
 | 
					        {{!-- Possession --}}
 | 
				
			||||||
        <h3 class="blessures-title">Possession:</h3>
 | 
					        <h3 class="blessures-title">Possession:</h3>
 | 
				
			||||||
        <ul class="item-list alterne-list">
 | 
					        <ul class="item-list alterne-list">
 | 
				
			||||||
@@ -375,7 +378,7 @@
 | 
				
			|||||||
          </li>
 | 
					          </li>
 | 
				
			||||||
          {{/each}}
 | 
					          {{/each}}
 | 
				
			||||||
          </ul>
 | 
					          </ul>
 | 
				
			||||||
  
 | 
					        {{/if}}
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      {{!-- Connaissances Tab --}}
 | 
					      {{!-- Connaissances Tab --}}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,29 +1,30 @@
 | 
				
			|||||||
<img class="chat-icon" src="{{competence.img}}" />
 | 
					<img class="chat-icon" src="{{competence.img}}" />
 | 
				
			||||||
<h4>
 | 
					<h4>
 | 
				
			||||||
  {{#if (eq mode "possession")}}
 | 
					  {{#if (eq mode "possession")}}
 | 
				
			||||||
    {{alias}} tente de posséder {{possede}}
 | 
					    {{attacker.name}} tente de {{#if isECNIDefender}}conjurer la possession de{{else}}posséder{{/if}} {{defender.name}}
 | 
				
			||||||
  {{else}}
 | 
					  {{else}}
 | 
				
			||||||
    {{alias}} tente de conjurer la possession de {{possesseur}}
 | 
					    {{defender.name}} tente de {{#if isECNIDefender}}résister à{{else}}conjurer la possession de{{/if}} {{attacker.name}}
 | 
				
			||||||
  {{/if}}
 | 
					  {{/if}}
 | 
				
			||||||
</h4>
 | 
					</h4>
 | 
				
			||||||
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.html"}}
 | 
					{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.html"}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<hr>
 | 
					<hr>
 | 
				
			||||||
 | 
					 | 
				
			||||||
<div>
 | 
					<div>
 | 
				
			||||||
  <span class='chat-card-button-area'>
 | 
					  <span class='chat-card-button-area'>
 | 
				
			||||||
    <br>
 | 
					    <br>
 | 
				
			||||||
    {{#if (eq mode "possession")}}
 | 
					    {{#if (eq mode "possession")}}
 | 
				
			||||||
      {{#if possession.isSuccess}}
 | 
					      {{#if possession.isSuccess}}
 | 
				
			||||||
        <a class='defense-possession chat-card-button' data-attackerId='{{attackerId}}'
 | 
					        <a class='defense-possession chat-card-button'
 | 
				
			||||||
                data-defenderId='{{defenderId}}' data-possessionId='{{possession.system.possessionid}}'>Résister à la possession</a>
 | 
					            data-attackerId='{{attacker.id}}'
 | 
				
			||||||
 | 
					            data-defenderId='{{defender.id}}'
 | 
				
			||||||
 | 
					            data-possessionId='{{possession.system.possessionid}}'>Résister à la possession</a>
 | 
				
			||||||
        </a>
 | 
					        </a>
 | 
				
			||||||
      {{else}}
 | 
					      {{else}}
 | 
				
			||||||
        La Tentative de Possession a échouée !
 | 
					        La Tentative de Possession a échouée !
 | 
				
			||||||
      {{/if}}
 | 
					      {{/if}}
 | 
				
			||||||
    {{else}}
 | 
					    {{else}}
 | 
				
			||||||
      {{#if rolled.isSuccess}}
 | 
					      {{#if rolled.isSuccess}}
 | 
				
			||||||
        La Tentative de Possession a été conjurée ! {{alias}} résiste à la tentative de possession.
 | 
					        La Tentative de Possession a été conjurée ! {{defender.name}} résiste à la tentative de possession.
 | 
				
			||||||
      {{else}}
 | 
					      {{else}}
 | 
				
			||||||
        La Tentative de Possession n'a pas pu être conjurée !
 | 
					        La Tentative de Possession n'a pas pu être conjurée !
 | 
				
			||||||
      {{/if}}
 | 
					      {{/if}}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,9 @@
 | 
				
			|||||||
<form class="skill-roll-dialog">
 | 
					<form class="skill-roll-dialog">
 | 
				
			||||||
  <h2>Conjuration d'une Possession {{possession.name}}!</h2>
 | 
					  <h2>
 | 
				
			||||||
 | 
					    {{defender.name}} tente de
 | 
				
			||||||
 | 
					    {{#if isECNIDefender}}maintenir{{else}}résister à{{/if}}
 | 
				
			||||||
 | 
					    la possession de {{attacker.name}}
 | 
				
			||||||
 | 
					  </h2>
 | 
				
			||||||
  <div class="grid grid-2col">
 | 
					  <div class="grid grid-2col">
 | 
				
			||||||
    <div class="flex-group-left">
 | 
					    <div class="flex-group-left">
 | 
				
			||||||
      <img class="chat-icon" src="{{competence.img}}" alt="{{competence.name}}"/>
 | 
					      <img class="chat-icon" src="{{competence.img}}" alt="{{competence.name}}"/>
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user