Fin d'empoignade
En cours de round en atteignant 2 points d'empoignade, on peut uniquement entraîner au sol. En fin de round, si la victime est immobilisée, on peut projeter, ou faire perdre de l'endurance
This commit is contained in:
parent
ffd80394d3
commit
f22c4d2ec8
@ -1365,6 +1365,7 @@ export class RdDActor extends RdDBaseActor {
|
|||||||
await this.$finDeRoundSuppressionEffetsTermines(options);
|
await this.$finDeRoundSuppressionEffetsTermines(options);
|
||||||
await this.$finDeRoundBlessuresGraves();
|
await this.$finDeRoundBlessuresGraves();
|
||||||
await this.$finDeRoundSupprimerObsoletes();
|
await this.$finDeRoundSupprimerObsoletes();
|
||||||
|
await this.$finDeRoundEmpoignade();
|
||||||
}
|
}
|
||||||
|
|
||||||
async $finDeRoundSuppressionEffetsTermines(options) {
|
async $finDeRoundSuppressionEffetsTermines(options) {
|
||||||
@ -1394,6 +1395,13 @@ export class RdDActor extends RdDBaseActor {
|
|||||||
await this.deleteEmbeddedDocuments('Item', obsoletes);
|
await this.deleteEmbeddedDocuments('Item', obsoletes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async $finDeRoundEmpoignade(){
|
||||||
|
const immobilisations = this.itemTypes[TYPES.empoignade].filter(it => it.system.pointsemp >= 2 && it.system.empoigneurid == this.id);
|
||||||
|
immobilisations.forEach(emp => RdDEmpoignade.onImmobilisation(this,
|
||||||
|
game.actors.get(emp.system.empoigneid),
|
||||||
|
emp
|
||||||
|
))
|
||||||
|
}
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async setSonne(sonne = true) {
|
async setSonne(sonne = true) {
|
||||||
if (this.isEntite()) {
|
if (this.isEntite()) {
|
||||||
|
@ -20,13 +20,13 @@ export class RdDEmpoignade {
|
|||||||
static registerChatCallbacks(html) {
|
static registerChatCallbacks(html) {
|
||||||
html.on("click", '.defense-empoignade-cac', event => {
|
html.on("click", '.defense-empoignade-cac', event => {
|
||||||
const chatMessage = ChatUtility.getChatMessage(event);
|
const chatMessage = ChatUtility.getChatMessage(event);
|
||||||
const rollData = RdDEmpoignade.readRollEmpoignade(chatMessage);
|
const rollData = RdDEmpoignade.$readRollEmpoignade(chatMessage);
|
||||||
let defenseMode = event.currentTarget.attributes['data-defense-mode'].value
|
let defenseMode = event.currentTarget.attributes['data-defense-mode'].value
|
||||||
RdDEmpoignade.onDefenseEmpoignade(rollData, defenseMode, "Corps à corps", "melee")
|
RdDEmpoignade.onDefenseEmpoignade(rollData, defenseMode, "Corps à corps", "melee")
|
||||||
});
|
});
|
||||||
html.on("click", '.defense-empoignade-esquive', event => {
|
html.on("click", '.defense-empoignade-esquive', event => {
|
||||||
const chatMessage = ChatUtility.getChatMessage(event);
|
const chatMessage = ChatUtility.getChatMessage(event);
|
||||||
const rollData = RdDEmpoignade.readRollEmpoignade(chatMessage);
|
const rollData = RdDEmpoignade.$readRollEmpoignade(chatMessage);
|
||||||
let defenseMode = event.currentTarget.attributes['data-defense-mode'].value
|
let defenseMode = event.currentTarget.attributes['data-defense-mode'].value
|
||||||
RdDEmpoignade.onDefenseEmpoignade(rollData, defenseMode, "Esquive", "derobee")
|
RdDEmpoignade.onDefenseEmpoignade(rollData, defenseMode, "Esquive", "derobee")
|
||||||
});
|
});
|
||||||
@ -37,19 +37,19 @@ export class RdDEmpoignade {
|
|||||||
});
|
});
|
||||||
html.on("click", '.empoignade-entrainer-sol', event => {
|
html.on("click", '.empoignade-entrainer-sol', event => {
|
||||||
const chatMessage = ChatUtility.getChatMessage(event);
|
const chatMessage = ChatUtility.getChatMessage(event);
|
||||||
const rollData = RdDEmpoignade.readRollEmpoignade(chatMessage);
|
const rollData = RdDEmpoignade.$readRollEmpoignade(chatMessage);
|
||||||
RdDEmpoignade.entrainerAuSol(rollData)
|
RdDEmpoignade.entrainerAuSol(rollData)
|
||||||
ChatUtility.removeChatMessageId(chatMessage.id)
|
ChatUtility.removeChatMessageId(chatMessage.id)
|
||||||
});
|
});
|
||||||
html.on("click", '.empoignade-projeter-sol', event => {
|
html.on("click", '.empoignade-projeter-sol', event => {
|
||||||
const chatMessage = ChatUtility.getChatMessage(event);
|
const chatMessage = ChatUtility.getChatMessage(event);
|
||||||
const rollData = RdDEmpoignade.readRollEmpoignade(chatMessage);
|
const rollData = RdDEmpoignade.$readRollEmpoignade(chatMessage);
|
||||||
RdDEmpoignade.projeterAuSol(rollData)
|
RdDEmpoignade.projeterAuSol(rollData)
|
||||||
ChatUtility.removeChatMessageId(chatMessage.id)
|
ChatUtility.removeChatMessageId(chatMessage.id)
|
||||||
});
|
});
|
||||||
html.on("change", '.empoignade-perte-endurance', event => {
|
html.on("change", '.empoignade-perte-endurance', event => {
|
||||||
const chatMessage = ChatUtility.getChatMessage(event);
|
const chatMessage = ChatUtility.getChatMessage(event);
|
||||||
const rollData = RdDEmpoignade.readRollEmpoignade(chatMessage);
|
const rollData = RdDEmpoignade.$readRollEmpoignade(chatMessage);
|
||||||
if (event.currentTarget.value && event.currentTarget.value != "none") {
|
if (event.currentTarget.value && event.currentTarget.value != "none") {
|
||||||
RdDEmpoignade.perteEndurance(rollData, event.currentTarget.value)
|
RdDEmpoignade.perteEndurance(rollData, event.currentTarget.value)
|
||||||
ChatUtility.removeChatMessageId(chatMessage.id)
|
ChatUtility.removeChatMessageId(chatMessage.id)
|
||||||
@ -68,20 +68,28 @@ export class RdDEmpoignade {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static storeRollEmpoignade(msg, rollData) {
|
static $storeRollEmpoignade(msg, rollData) {
|
||||||
rollData.attacker = { id: rollData.attacker.id }
|
RdDEmpoignade.$reduceActorToIds(rollData);
|
||||||
rollData.defender = { id: rollData.defender.id }
|
|
||||||
ChatUtility.setMessageData(msg, "empoignade-roll-data", rollData);
|
ChatUtility.setMessageData(msg, "empoignade-roll-data", rollData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static $reduceActorToIds(rollData) {
|
||||||
|
rollData.attacker = { id: rollData.attacker.id };
|
||||||
|
rollData.defender = { id: rollData.defender.id };
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static readRollEmpoignade(msg) {
|
static $readRollEmpoignade(msg) {
|
||||||
const rollData = ChatUtility.getMessageData(msg, 'empoignade-roll-data');
|
const rollData = ChatUtility.getMessageData(msg, 'empoignade-roll-data');
|
||||||
rollData.attacker = game.actors.get(rollData.attacker.id)
|
RdDEmpoignade.$replaceIdsWithActors(rollData);
|
||||||
rollData.defender = game.actors.get(rollData.defender.id)
|
|
||||||
return rollData
|
return rollData
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static $replaceIdsWithActors(rollData) {
|
||||||
|
rollData.attacker = game.actors.get(rollData.attacker.id);
|
||||||
|
rollData.defender = game.actors.get(rollData.defender.id);
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static isEmpoignadeEnCours(actor) {
|
static isEmpoignadeEnCours(actor) {
|
||||||
return actor.itemTypes[TYPES.empoignade].find(it => it.system.pointsemp > 0)
|
return actor.itemTypes[TYPES.empoignade].find(it => it.system.pointsemp > 0)
|
||||||
@ -145,7 +153,6 @@ export class RdDEmpoignade {
|
|||||||
if (!RdDEmpoignade.isActionAutorisee("empoigner", attacker, defender)) {
|
if (!RdDEmpoignade.isActionAutorisee("empoigner", attacker, defender)) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
let empoignade = RdDEmpoignade.getEmpoignade(attacker, defender)
|
let empoignade = RdDEmpoignade.getEmpoignade(attacker, defender)
|
||||||
const isNouvelle = empoignade == undefined;
|
const isNouvelle = empoignade == undefined;
|
||||||
empoignade = empoignade ?? (await RdDEmpoignade.createEmpoignade(attacker, defender))
|
empoignade = empoignade ?? (await RdDEmpoignade.createEmpoignade(attacker, defender))
|
||||||
@ -182,8 +189,10 @@ export class RdDEmpoignade {
|
|||||||
RdDItemCompetenceCreature.setRollDataCreature(rollData)
|
RdDItemCompetenceCreature.setRollDataCreature(rollData)
|
||||||
}
|
}
|
||||||
if (empoignade.system.pointsemp >= 2) {
|
if (empoignade.system.pointsemp >= 2) {
|
||||||
let msg = await RdDResolutionTable.displayRollData(rollData, attacker, 'chat-empoignade-actions.html');
|
if (!empoignade.system.ausol) {
|
||||||
RdDEmpoignade.storeRollEmpoignade(msg, rollData);
|
let msg = await RdDResolutionTable.displayRollData(rollData, attacker, 'chat-empoignade-entrainer.html');
|
||||||
|
RdDEmpoignade.$storeRollEmpoignade(msg, rollData);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
await RdDEmpoignade.$rollAttaqueEmpoignade(attacker, rollData, isNouvelle);
|
await RdDEmpoignade.$rollAttaqueEmpoignade(attacker, rollData, isNouvelle);
|
||||||
}
|
}
|
||||||
@ -196,6 +205,20 @@ export class RdDEmpoignade {
|
|||||||
await this.onAttaqueEmpoignadeValidee(attacker, defender)
|
await this.onAttaqueEmpoignadeValidee(attacker, defender)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static async onImmobilisation(attacker, defender, empoignade) {
|
||||||
|
const rollData = {
|
||||||
|
mode: "immobilise",
|
||||||
|
empoignade, attacker, defender,
|
||||||
|
isEmpoignade: true,
|
||||||
|
competence: attacker.getCompetence("Corps à corps").clone()
|
||||||
|
}
|
||||||
|
const msg = await ChatMessage.create({
|
||||||
|
whisper: ChatUtility.getWhisperRecipientsAndGMs(attacker.name),
|
||||||
|
content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-empoignade-immobilise.html`, rollData)
|
||||||
|
})
|
||||||
|
RdDEmpoignade.$storeRollEmpoignade(msg, rollData);
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static async $rollAttaqueEmpoignade(attacker, rollData, isNouvelle = false) {
|
static async $rollAttaqueEmpoignade(attacker, rollData, isNouvelle = false) {
|
||||||
const dialog = await RdDRoll.create(attacker, rollData,
|
const dialog = await RdDRoll.create(attacker, rollData,
|
||||||
@ -226,7 +249,7 @@ export class RdDEmpoignade {
|
|||||||
rollData.particuliere = "finesse";
|
rollData.particuliere = "finesse";
|
||||||
}
|
}
|
||||||
let msg = await RdDResolutionTable.displayRollData(rollData, attacker, 'chat-empoignade-resultat.html');
|
let msg = await RdDResolutionTable.displayRollData(rollData, attacker, 'chat-empoignade-resultat.html');
|
||||||
RdDEmpoignade.storeRollEmpoignade(msg, rollData);
|
RdDEmpoignade.$storeRollEmpoignade(msg, rollData);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@ -260,8 +283,8 @@ export class RdDEmpoignade {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static async $rollDefenseEmpoignade(defender, rollData) {
|
static async $rollDefenseEmpoignade(defender, defenderRoll) {
|
||||||
const dialog = await RdDRoll.create(defender, rollData,
|
const dialog = await RdDRoll.create(defender, defenderRoll,
|
||||||
{ html: 'systems/foundryvtt-reve-de-dragon/templates/dialog-roll-defense-empoignade.html' },
|
{ html: 'systems/foundryvtt-reve-de-dragon/templates/dialog-roll-defense-empoignade.html' },
|
||||||
{
|
{
|
||||||
name: 'empoignade',
|
name: 'empoignade',
|
||||||
@ -277,7 +300,7 @@ export class RdDEmpoignade {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static async $onRollContrerLiberer(rollData) {
|
static async $onRollContrerLiberer(rollData) {
|
||||||
let empoignade = rollData.empoignade
|
let empoignade = rollData.empoignade
|
||||||
|
|
||||||
if (rollData.mode == "contrer-empoigner" && !rollData.rolled.isSuccess) {
|
if (rollData.mode == "contrer-empoigner" && !rollData.rolled.isSuccess) {
|
||||||
empoignade.system.pointsemp++
|
empoignade.system.pointsemp++
|
||||||
RdDEmpoignade.$updateEtatEmpoignade(empoignade)
|
RdDEmpoignade.$updateEtatEmpoignade(empoignade)
|
||||||
@ -286,13 +309,12 @@ export class RdDEmpoignade {
|
|||||||
empoignade.system.pointsemp--
|
empoignade.system.pointsemp--
|
||||||
RdDEmpoignade.$updateEtatEmpoignade(empoignade)
|
RdDEmpoignade.$updateEtatEmpoignade(empoignade)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empoignade.system.pointsemp >= 2) {
|
|
||||||
let attacker = game.actors.get(empoignade.system.empoigneurid)
|
|
||||||
let msg = await RdDResolutionTable.displayRollData(rollData, attacker, 'chat-empoignade-actions.html');
|
|
||||||
RdDEmpoignade.storeRollEmpoignade(msg, rollData);
|
|
||||||
}
|
|
||||||
await RdDResolutionTable.displayRollData(rollData, rollData.defender, 'chat-empoignade-resultat.html')
|
await RdDResolutionTable.displayRollData(rollData, rollData.defender, 'chat-empoignade-resultat.html')
|
||||||
|
if (empoignade.system.pointsemp >= 2) {
|
||||||
|
let msg = await RdDResolutionTable.displayRollData(rollData, rollData.attacker, 'chat-empoignade-entrainer.html');
|
||||||
|
RdDEmpoignade.$storeRollEmpoignade(msg, rollData);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@ -323,7 +345,7 @@ export class RdDEmpoignade {
|
|||||||
static async entrainerAuSol(rollData) {
|
static async entrainerAuSol(rollData) {
|
||||||
let attacker = game.actors.get(rollData.attacker.id)
|
let attacker = game.actors.get(rollData.attacker.id)
|
||||||
let defender = game.actors.get(rollData.defender.id)
|
let defender = game.actors.get(rollData.defender.id)
|
||||||
if (!RdDEmpoignade.isActionAutorisee("attaquant", attacker, defender)) {
|
if (!RdDEmpoignade.isActionAutorisee("immobilise", attacker, defender)) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
let empoignade = this.getEmpoignade(attacker, defender)
|
let empoignade = this.getEmpoignade(attacker, defender)
|
||||||
@ -335,14 +357,14 @@ export class RdDEmpoignade {
|
|||||||
await defender.setEffect(STATUSES.StatusProne, true);
|
await defender.setEffect(STATUSES.StatusProne, true);
|
||||||
|
|
||||||
let msg = await RdDResolutionTable.displayRollData(rollData, attacker, 'chat-empoignade-entrainer-sol.html');
|
let msg = await RdDResolutionTable.displayRollData(rollData, attacker, 'chat-empoignade-entrainer-sol.html');
|
||||||
RdDEmpoignade.storeRollEmpoignade(msg, rollData);
|
RdDEmpoignade.$storeRollEmpoignade(msg, rollData);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static async projeterAuSol(rollData) {
|
static async projeterAuSol(rollData) {
|
||||||
let attacker = game.actors.get(rollData.attacker.id)
|
let attacker = game.actors.get(rollData.attacker.id)
|
||||||
let defender = game.actors.get(rollData.defender.id)
|
let defender = game.actors.get(rollData.defender.id)
|
||||||
if (!RdDEmpoignade.isActionAutorisee("attaquant", attacker, defender)) {
|
if (!RdDEmpoignade.isActionAutorisee("immobilise", attacker, defender)) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
let empoignade = this.getEmpoignade(attacker, defender)
|
let empoignade = this.getEmpoignade(attacker, defender)
|
||||||
@ -351,14 +373,14 @@ export class RdDEmpoignade {
|
|||||||
await this.$deleteEmpoignade(empoignade)
|
await this.$deleteEmpoignade(empoignade)
|
||||||
|
|
||||||
let msg = await RdDResolutionTable.displayRollData(rollData, attacker, 'chat-empoignade-projeter-sol.html');
|
let msg = await RdDResolutionTable.displayRollData(rollData, attacker, 'chat-empoignade-projeter-sol.html');
|
||||||
RdDEmpoignade.storeRollEmpoignade(msg, rollData);
|
RdDEmpoignade.$storeRollEmpoignade(msg, rollData);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static async perteEndurance(rollData, perteMode) {
|
static async perteEndurance(rollData, perteMode) {
|
||||||
let attacker = game.actors.get(rollData.attacker.id)
|
let attacker = game.actors.get(rollData.attacker.id)
|
||||||
let defender = game.actors.get(rollData.defender.id)
|
let defender = game.actors.get(rollData.defender.id)
|
||||||
if (!RdDEmpoignade.isActionAutorisee("attaquant", attacker, defender)) {
|
if (!RdDEmpoignade.isActionAutorisee("immobilise", attacker, defender)) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
let empoignade = this.getEmpoignade(attacker, defender)
|
let empoignade = this.getEmpoignade(attacker, defender)
|
||||||
@ -378,7 +400,7 @@ export class RdDEmpoignade {
|
|||||||
await defender.santeIncDec("endurance", -(3 * Math.floor(endValue / 4)));
|
await defender.santeIncDec("endurance", -(3 * Math.floor(endValue / 4)));
|
||||||
}
|
}
|
||||||
let msg = await RdDResolutionTable.displayRollData(rollData, attacker, 'chat-empoignade-perte-endurance.html');
|
let msg = await RdDResolutionTable.displayRollData(rollData, attacker, 'chat-empoignade-perte-endurance.html');
|
||||||
RdDEmpoignade.storeRollEmpoignade(msg, rollData);
|
RdDEmpoignade.$storeRollEmpoignade(msg, rollData);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
|
@ -1,39 +0,0 @@
|
|||||||
<img class="chat-icon" src="{{competence.img}}" />
|
|
||||||
<h4>
|
|
||||||
{{attacker.name}} a empoigné {{defender.name}}
|
|
||||||
</h4>
|
|
||||||
<hr>
|
|
||||||
<div>
|
|
||||||
|
|
||||||
<span class='chat-card-button-area'>
|
|
||||||
Au round suivant l'acquisition des 2 points d'Emp, {{attacker.name}} peut faire perdre autant de points d'Endurance qu'il souhaite à {{defender.name}}
|
|
||||||
<br>
|
|
||||||
<a class='empoignade-perte-endurance chat-card-button'>
|
|
||||||
<select class='empoignade-perte-endurance'>
|
|
||||||
<option value="none">Faire perdre de l'endurance (selectionnez)</option>
|
|
||||||
<option value="end0">Endurance à 0</option>
|
|
||||||
<option value="end1">Endurance à 1</option>
|
|
||||||
<option value="endmoitie">La moitié de l'endurance</option>
|
|
||||||
<option value="endquart">Le quart de l'endurance</option>
|
|
||||||
</select>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
{{#if empoignade.system.ausol}}
|
|
||||||
|
|
||||||
{{else}}
|
|
||||||
<br>
|
|
||||||
Dès l'acquisition des 2 points d'Emp, {{attacker.name}} peut entraîner {{defender.name}} au sol. Les deux protagonistes restent empoignés.
|
|
||||||
<br>
|
|
||||||
<a class='empoignade-entrainer-sol chat-card-button'>
|
|
||||||
Entraîner au sol
|
|
||||||
</a>
|
|
||||||
<br>
|
|
||||||
A la fin du round ou les 2 points d'Emp sont acquis, {{attacker.name}} peut projeter {{defender.name}} au sol. Les deux protagonistes ne sont plus empoignés.
|
|
||||||
<br>
|
|
||||||
<a class='empoignade-projeter-sol chat-card-button'>
|
|
||||||
Projeter au sol
|
|
||||||
</a>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
@ -1,7 +1,8 @@
|
|||||||
<img class="chat-icon" src="{{competence.img}}" />
|
<img class="chat-icon" src="{{competence.img}}" />
|
||||||
<h4>
|
<h4>
|
||||||
{{attacker.name}} a entraîné {{defender.name}} au sol. L'empoignade peut continuer.
|
{{attacker.name}} a entraîné {{defender.name}} au sol
|
||||||
</h4>
|
</h4>
|
||||||
<hr>
|
<hr>
|
||||||
<div>
|
<div>
|
||||||
|
L'empoignade peut continuer.
|
||||||
</div>
|
</div>
|
||||||
|
16
templates/chat-empoignade-entrainer.html
Normal file
16
templates/chat-empoignade-entrainer.html
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
<img class="chat-icon" src="{{competence.img}}" />
|
||||||
|
<h4>
|
||||||
|
{{attacker.name}} a empoigné {{defender.name}}
|
||||||
|
</h4>
|
||||||
|
<hr>
|
||||||
|
<div>
|
||||||
|
<span class='chat-card-button-area'>
|
||||||
|
{{attacker.name}} vient d'obtenir 2 points d'Emp, et peut
|
||||||
|
entraîner {{defender.name}} au sol. Les deux protagonistes
|
||||||
|
restent empoignés.
|
||||||
|
<br>
|
||||||
|
<a class='empoignade-entrainer-sol chat-card-button'>
|
||||||
|
Entraîner au sol
|
||||||
|
</a>
|
||||||
|
</span>
|
||||||
|
</div>
|
35
templates/chat-empoignade-immobilise.html
Normal file
35
templates/chat-empoignade-immobilise.html
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
<img class="chat-icon" src="{{competence.img}}" />
|
||||||
|
<h4>
|
||||||
|
{{attacker.name}} a empoigné {{defender.name}}
|
||||||
|
</h4>
|
||||||
|
<hr>
|
||||||
|
<div>
|
||||||
|
<span class='chat-card-button-area'>
|
||||||
|
<p>
|
||||||
|
{{attacker.name}} a obtenu 2 points d'Emp à la fin du round précédent, et peut:
|
||||||
|
|
||||||
|
<ul><li>
|
||||||
|
faire perdre des points d'Endurance à {{defender.name}}
|
||||||
|
<br>
|
||||||
|
<a class='empoignade-perte-endurance chat-card-button'>
|
||||||
|
<select class='empoignade-perte-endurance'>
|
||||||
|
<option value="none">Faire perdre de l'endurance (selectionnez)</option>
|
||||||
|
<option value="end0">Endurance à 0</option>
|
||||||
|
<option value="end1">Endurance à 1</option>
|
||||||
|
<option value="endmoitie">La moitié de l'endurance</option>
|
||||||
|
<option value="endquart">Le quart de l'endurance</option>
|
||||||
|
</select>
|
||||||
|
</a>
|
||||||
|
{{#if empoignade.system.ausol}}
|
||||||
|
{{else}}
|
||||||
|
</li><li>
|
||||||
|
projeter {{defender.name}} au sol. Les deux protagonistes ne sont plus empoignés.
|
||||||
|
<br>
|
||||||
|
<a class='empoignade-projeter-sol chat-card-button'>
|
||||||
|
Projeter au sol
|
||||||
|
</a>
|
||||||
|
{{/if}}
|
||||||
|
</li></ul>
|
||||||
|
</p>
|
||||||
|
</span>
|
||||||
|
</div>
|
@ -1,7 +1,8 @@
|
|||||||
<img class="chat-icon" src="{{competence.img}}" />
|
<img class="chat-icon" src="{{competence.img}}" />
|
||||||
<h4>
|
<h4>
|
||||||
{{attacker.name}} a fait perdre de l'endurance à {{defender.name}}, qui reste immobilisé. L'empoignade peut continuer.
|
{{attacker.name}} a fait perdre de l'endurance à {{defender.name}}
|
||||||
</h4>
|
</h4>
|
||||||
<hr>
|
<hr>
|
||||||
<div>
|
<div>
|
||||||
|
{{defender.name}} reste immobilisé. L'empoignade peut continuer.
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
<img class="chat-icon" src="{{competence.img}}" />
|
<img class="chat-icon" src="{{competence.img}}" />
|
||||||
<h4>
|
<h4>
|
||||||
{{attacker.name}} a projeté {{defender.name}} au sol. L'empoignade est terminée et a été supprimée.
|
{{attacker.name}} a projeté {{defender.name}} au sol
|
||||||
</h4>
|
</h4>
|
||||||
<hr>
|
<hr>
|
||||||
<div>
|
<div>
|
||||||
|
L'empoignade est terminée et a été supprimée.
|
||||||
</div>
|
</div>
|
||||||
|
@ -73,8 +73,7 @@
|
|||||||
La tentative de contrer la libération est un échec!
|
La tentative de contrer la libération est un échec!
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
</span>
|
||||||
<br>Points d'Emp: {{empoignade.system.pointsemp}}
|
<br>Points d'Emp: {{empoignade.system.pointsemp}}
|
||||||
|
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</div>
|
</div>
|
||||||
|
@ -4,7 +4,6 @@
|
|||||||
</h4>
|
</h4>
|
||||||
<hr>
|
<hr>
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
<span class='chat-card-button-area'>
|
<span class='chat-card-button-area'>
|
||||||
<br>
|
<br>
|
||||||
<strong>{{attacker.name}} tente d'empoigner {{defender.name}}, qui est équipé d'une arme de mêlée. {{defender.name}}
|
<strong>{{attacker.name}} tente d'empoigner {{defender.name}}, qui est équipé d'une arme de mêlée. {{defender.name}}
|
||||||
@ -16,5 +15,5 @@
|
|||||||
data-defenderId='{{defender.id}}'>
|
data-defenderId='{{defender.id}}'>
|
||||||
Poursuivre l'empoignade
|
Poursuivre l'empoignade
|
||||||
</a>
|
</a>
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
Loading…
Reference in New Issue
Block a user