Add skill assistance
This commit is contained in:
@@ -97,6 +97,7 @@
|
|||||||
"difficulty_hidden_label": "Hide TN",
|
"difficulty_hidden_label": "Hide TN",
|
||||||
"use_void_point_label": "Spend a",
|
"use_void_point_label": "Spend a",
|
||||||
"void_point_tooltip": "Void point",
|
"void_point_tooltip": "Void point",
|
||||||
|
"skill_assistance_label": "Assistance",
|
||||||
"roll_label": "Roll",
|
"roll_label": "Roll",
|
||||||
"bt_add_macro": "Add a macro"
|
"bt_add_macro": "Add a macro"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -97,6 +97,7 @@
|
|||||||
"difficulty_hidden_label": "Ocultar NO",
|
"difficulty_hidden_label": "Ocultar NO",
|
||||||
"use_void_point_label": "Gasta un",
|
"use_void_point_label": "Gasta un",
|
||||||
"void_point_tooltip": "Punto de vacío",
|
"void_point_tooltip": "Punto de vacío",
|
||||||
|
"skill_assistance_label": "Assistance",
|
||||||
"roll_label": "Tirar",
|
"roll_label": "Tirar",
|
||||||
"bt_add_macro": "Añadir una macro"
|
"bt_add_macro": "Añadir una macro"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -97,6 +97,7 @@
|
|||||||
"difficulty_hidden_label": "ND Caché",
|
"difficulty_hidden_label": "ND Caché",
|
||||||
"use_void_point_label": "Dépenser un",
|
"use_void_point_label": "Dépenser un",
|
||||||
"void_point_tooltip": "Point de Vide",
|
"void_point_tooltip": "Point de Vide",
|
||||||
|
"skill_assistance_label": "Assistance",
|
||||||
"roll_label": "Lancer",
|
"roll_label": "Lancer",
|
||||||
"bt_add_macro": "Ajouter une macro"
|
"bt_add_macro": "Ajouter une macro"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -104,12 +104,13 @@ export class CombatL5r5e extends Combat {
|
|||||||
? messageOptions.difficultyHidden
|
? messageOptions.difficultyHidden
|
||||||
: cfg.difficultyHidden;
|
: cfg.difficultyHidden;
|
||||||
roll.l5r5e.voidPointUsed = !!messageOptions.useVoidPoint;
|
roll.l5r5e.voidPointUsed = !!messageOptions.useVoidPoint;
|
||||||
|
roll.l5r5e.skillAssistance = messageOptions.skillAssistance;
|
||||||
|
|
||||||
roll.roll();
|
roll.roll();
|
||||||
rnkMessage = await roll.toMessage({ flavor });
|
rnkMessage = await roll.toMessage({ flavor });
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ugly but work... i need the new messageId
|
// Ugly but work... i need the new message
|
||||||
if (ids.length === 1) {
|
if (ids.length === 1) {
|
||||||
combatant.actor.rnkMessage = rnkMessage;
|
combatant.actor.rnkMessage = rnkMessage;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ export class DicePickerDialog extends FormApplication {
|
|||||||
defaultValue: 0,
|
defaultValue: 0,
|
||||||
cat: "",
|
cat: "",
|
||||||
name: "",
|
name: "",
|
||||||
|
assistance: 0,
|
||||||
},
|
},
|
||||||
difficulty: {
|
difficulty: {
|
||||||
value: 2,
|
value: 2,
|
||||||
@@ -184,6 +185,7 @@ export class DicePickerDialog extends FormApplication {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.object.skill = {
|
this.object.skill = {
|
||||||
|
...this.object.skill,
|
||||||
id: skillId.toLowerCase().trim(),
|
id: skillId.toLowerCase().trim(),
|
||||||
value: 0,
|
value: 0,
|
||||||
cat: "",
|
cat: "",
|
||||||
@@ -323,11 +325,27 @@ export class DicePickerDialog extends FormApplication {
|
|||||||
this.render(false);
|
this.render(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Skill assistance
|
||||||
|
html.find(".assistance").on("click", async (event) => {
|
||||||
|
event.preventDefault();
|
||||||
|
event.stopPropagation();
|
||||||
|
const assistanceAdd = $(event.currentTarget).data("value");
|
||||||
|
if (this.object.skill.assistance > 0 || assistanceAdd > 0) {
|
||||||
|
this._quantityChange("skill", assistanceAdd);
|
||||||
|
}
|
||||||
|
this.object.skill.assistance = Math.max(
|
||||||
|
Math.min(parseInt(this.object.skill.assistance) + assistanceAdd, 9),
|
||||||
|
0
|
||||||
|
);
|
||||||
|
this.render(false);
|
||||||
|
});
|
||||||
|
|
||||||
// Click on the Default Skill Dice
|
// Click on the Default Skill Dice
|
||||||
html.find("#skill_default_value").on("click", async (event) => {
|
html.find("#skill_default_value").on("click", async (event) => {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
event.stopPropagation();
|
event.stopPropagation();
|
||||||
this.object.skill.value = this.object.skill.defaultValue;
|
this.object.skill.value = this.object.skill.defaultValue;
|
||||||
|
this.object.skill.assistance = 0;
|
||||||
this.render(false);
|
this.render(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -427,6 +445,7 @@ export class DicePickerDialog extends FormApplication {
|
|||||||
difficulty: this.object.difficulty.value,
|
difficulty: this.object.difficulty.value,
|
||||||
difficultyHidden: this.object.difficulty.hidden,
|
difficultyHidden: this.object.difficulty.hidden,
|
||||||
useVoidPoint: this.object.useVoidPoint,
|
useVoidPoint: this.object.useVoidPoint,
|
||||||
|
skillAssistance: this.object.skill.assistance,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -444,6 +463,7 @@ export class DicePickerDialog extends FormApplication {
|
|||||||
roll.l5r5e.difficulty = this.object.difficulty.value;
|
roll.l5r5e.difficulty = this.object.difficulty.value;
|
||||||
roll.l5r5e.difficultyHidden = this.object.difficulty.hidden;
|
roll.l5r5e.difficultyHidden = this.object.difficulty.hidden;
|
||||||
roll.l5r5e.voidPointUsed = this.object.useVoidPoint;
|
roll.l5r5e.voidPointUsed = this.object.useVoidPoint;
|
||||||
|
roll.l5r5e.skillAssistance = this.object.skill.assistance;
|
||||||
|
|
||||||
await roll.roll();
|
await roll.roll();
|
||||||
message = await roll.toMessage();
|
message = await roll.toMessage();
|
||||||
|
|||||||
@@ -659,7 +659,13 @@ export class RollnKeepDialog extends FormApplication {
|
|||||||
const card = button.parents(".l5r5e.item-display.dices-l5r");
|
const card = button.parents(".l5r5e.item-display.dices-l5r");
|
||||||
const messageId = card.parents(".chat-message").data("message-id");
|
const messageId = card.parents(".chat-message").data("message-id");
|
||||||
|
|
||||||
new RollnKeepDialog(messageId).render(true);
|
// Already open ? close it
|
||||||
|
const app = Object.values(ui.windows).find((e) => e.id === `l5r5e-roll-n-keep-dialog-${messageId}`);
|
||||||
|
if (app) {
|
||||||
|
app.close();
|
||||||
|
} else {
|
||||||
|
new RollnKeepDialog(messageId).render(true);
|
||||||
|
}
|
||||||
|
|
||||||
// Re-enable the button
|
// Re-enable the button
|
||||||
button.attr("disabled", false);
|
button.attr("disabled", false);
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ export class RollL5r5e extends Roll {
|
|||||||
voidPointUsed: false,
|
voidPointUsed: false,
|
||||||
keepLimit: null,
|
keepLimit: null,
|
||||||
isInitiativeRoll: false,
|
isInitiativeRoll: false,
|
||||||
|
skillAssistance: 0,
|
||||||
dicesTypes: {
|
dicesTypes: {
|
||||||
std: false,
|
std: false,
|
||||||
l5r: false,
|
l5r: false,
|
||||||
@@ -106,10 +107,9 @@ export class RollL5r5e extends Roll {
|
|||||||
summary.totalBonus = Math.max(0, summary.totalSuccess - this.l5r5e.difficulty);
|
summary.totalBonus = Math.max(0, summary.totalSuccess - this.l5r5e.difficulty);
|
||||||
|
|
||||||
if (!this.l5r5e.keepLimit) {
|
if (!this.l5r5e.keepLimit) {
|
||||||
this.l5r5e.keepLimit = this.dice.reduce(
|
this.l5r5e.keepLimit =
|
||||||
(acc, term) => (term instanceof game.l5r5e.RingDie ? acc + term.number : acc),
|
this.dice.reduce((acc, term) => (term instanceof game.l5r5e.RingDie ? acc + term.number : acc), 0) +
|
||||||
0
|
Math.max(0, this.l5r5e.skillAssistance);
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -164,6 +164,23 @@
|
|||||||
{{/if}}
|
{{/if}}
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
|
<div class="third">
|
||||||
|
<i class="assistance pointer-choice fa fa-minus-square" data-item="assistance" data-value="-1"></i>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="third">
|
||||||
|
<i class="i_skill"></i> {{localize 'l5r5e.dicepicker.skill_assistance_label'}}
|
||||||
|
<div class="dice-container">
|
||||||
|
<img src="systems/l5r5e/assets/dices/default/3d/blank.png" alt="1">
|
||||||
|
<div class="dice-value">
|
||||||
|
<input class="input-dice" type="text" name="skill.assistance" value="{{data.skill.assistance}}" readonly="readonly">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="third">
|
||||||
|
<i class="assistance pointer-choice fa fa-plus-square" data-item="assistance" data-value="1"></i>
|
||||||
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user