#150 : Gestion du cas Thanatos
This commit is contained in:
parent
5cd60ca76a
commit
4b88efa999
@ -706,6 +706,7 @@ export class RdDActor extends Actor {
|
||||
} else {
|
||||
console.log("Competence not found", compName);
|
||||
}
|
||||
RdDUtility.checkThanatosXP( compName );
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
|
@ -59,10 +59,12 @@ export class RdDItemCompetence extends Item {
|
||||
static computeCompetenceXPCost(competence) {
|
||||
let xp = RdDItemCompetence.getDeltaXp(competence.data.base, competence.data.niveau ?? competence.data.base);
|
||||
xp += competence.data.xp ?? 0;
|
||||
if ( competence.name.includes('Thanatos') ) xp *= 2; /// Thanatos compte double !
|
||||
xp += competence.data.xp_sort ?? 0;
|
||||
return xp;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static computeEconomieCompetenceTroncXP(competences) {
|
||||
let economie = 0;
|
||||
for (let troncList of competenceTroncs) {
|
||||
@ -87,17 +89,20 @@ export class RdDItemCompetence extends Item {
|
||||
return RdDItemCompetence.getCompetenceXp(niveau + 1);
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static getCompetenceXp(niveau) {
|
||||
RdDItemCompetence._valideNiveau(niveau);
|
||||
return niveau < -10 ? 0 : competence_xp_par_niveau[niveau + 10];
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static getDeltaXp(from, to) {
|
||||
RdDItemCompetence._valideNiveau(from);
|
||||
RdDItemCompetence._valideNiveau(to);
|
||||
return competence_xp_cumul[to] - competence_xp_cumul[from];
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static _valideNiveau(niveau){
|
||||
if (niveau < -11 || niveau > competence_niveau_max) {
|
||||
console.warn("Niveau en dehors des niveaux de compétences: [-11, " + competence_niveau_max + "]", niveau)
|
||||
|
@ -80,6 +80,12 @@ export class RdDItemSheet extends ItemSheet {
|
||||
// Select competence categorie
|
||||
html.find("#categorie").on("click", this._onClickSelectCategorie.bind(this) );
|
||||
|
||||
html.find('#sheet-competence-xp').change((event) => {
|
||||
if ( this.object.data.type == 'competence') {
|
||||
RdDUtility.checkThanatosXP( this.object.data.name );
|
||||
}
|
||||
} );
|
||||
|
||||
html.find('#creer-tache-livre').click((event) => {
|
||||
let actorId = event.currentTarget.attributes['data-actor-id'].value;
|
||||
let actor = game.actors.get( actorId );
|
||||
|
@ -1022,4 +1022,14 @@ export class RdDUtility {
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static checkThanatosXP(compName) {
|
||||
if ( compName.includes('Thanatos') ) {
|
||||
let message = "Vous avez mis des points d'Expérience dans la Voie de Thanatos !<br>Vous devez réduire manuellement d'un même montant d'XP une autre compétence Draconique.";
|
||||
ChatMessage.create({
|
||||
whisper: ChatMessage.getWhisperRecipients(game.user.name),
|
||||
content: message
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -28,7 +28,7 @@
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="xp">XP </label>
|
||||
<input class="attribute-value" type="text" name="data.xp" value="{{data.xp}}" data-dtype="Number"/>
|
||||
<input class="attribute-value" id="sheet-competence-xp" type="text" name="data.xp" value="{{data.xp}}" data-dtype="Number"/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="base">Niveau de base </label>
|
||||
|
Loading…
Reference in New Issue
Block a user