Remplacement progressif rencontres
This commit is contained in:
111
module/effets-rencontres.js
Normal file
111
module/effets-rencontres.js
Normal file
@@ -0,0 +1,111 @@
|
||||
import { ChatUtility } from "./chat-utility.js";
|
||||
import { Poetique } from "./poetique.js";
|
||||
import { RdDDice } from "./rdd-dice.js";
|
||||
import { TMRUtility } from "./tmr-utility.js";
|
||||
|
||||
export class EffetsRencontre {
|
||||
|
||||
static messager = async (dialog, context) => {
|
||||
dialog.setRencontreState('messager', TMRUtility.getTMRPortee(context.tmr.coord, context.rencontre.system.force));
|
||||
}
|
||||
|
||||
static passeur = async (dialog, context) => {
|
||||
dialog.setRencontreState('passeur', TMRUtility.getTMRPortee(context.tmr.coord, context.rencontre.system.force));
|
||||
}
|
||||
|
||||
static teleportation_typecase = async (dialog, context) => {
|
||||
dialog.setRencontreState('changeur', TMRUtility.getCasesType(context.tmr.type));
|
||||
}
|
||||
|
||||
static rencontre_persistante = async (dialog, context) => {
|
||||
dialog.setRencontreState('persistant', []);
|
||||
}
|
||||
|
||||
static reve_plus_f = async (dialog, context) => { await EffetsRencontre.$reve_plus(context.actor, context.rencontre.system.force) }
|
||||
static reve_plus_1 = async (dialog, context) => { await EffetsRencontre.$reve_plus(context.actor, 1) }
|
||||
static reve_moins_f = async (dialog, context) => { await EffetsRencontre.$reve_plus(context.actor, -context.rencontre.system.force) }
|
||||
static reve_moins_1 = async (dialog, context) => { await EffetsRencontre.$reve_plus(context.actor, -1) }
|
||||
|
||||
static vie_moins_1 = async (dialog, context) => { await EffetsRencontre.$vie_plus(context.actor, -1) }
|
||||
|
||||
|
||||
static reinsertion = async (dialog, context) => {
|
||||
await EffetsRencontre.$reinsertion(dialog, context.actor, it => true)
|
||||
}
|
||||
|
||||
static teleportation_aleatoire_typecase = async (dialog, context) => {
|
||||
await EffetsRencontre.$reinsertion(dialog, context.actor, it => it.type == context.tmr.type && it.coord != context.tmr.coord)
|
||||
}
|
||||
|
||||
static demireve_rompu = async (dialog, context) => {
|
||||
dialog.close()
|
||||
}
|
||||
|
||||
static sort_aleatoire = async (dialog, context) => {
|
||||
context.sortReserve = await RdDDice.rollOneOf(context.actor.itemTypes['sortreserve']);
|
||||
if (context.sortReserve) {
|
||||
context.newTMR = TMRUtility.getTMR(context.sortReserve.system.coord);
|
||||
await dialog.positionnerDemiReve(context.newTMR.coord);
|
||||
await dialog.processSortReserve(context.sortReserve);
|
||||
dialog.close();
|
||||
}
|
||||
else {
|
||||
await EffetsRencontre.$reinsertion(dialog, context.actor, it => true);
|
||||
}
|
||||
}
|
||||
|
||||
static deplacement_aleatoire = async (dialog, context) => {
|
||||
const oldCoord = context.actor.system.reve.tmrpos.coord;
|
||||
const newTmr = await TMRUtility.deplaceTMRAleatoire(context.actor, oldCoord);
|
||||
await dialog.positionnerDemiReve(newTmr.coord)
|
||||
}
|
||||
|
||||
static rdd_part_tete = async (dialog, context) => {
|
||||
mergeObject(context, {
|
||||
tete: context.rolled.isPart,
|
||||
poesie: await Poetique.getExtrait()
|
||||
})
|
||||
ChatMessage.create({
|
||||
whisper: ChatUtility.getWhisperRecipientsAndGMs(context.actor.name),
|
||||
content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-resultat-reve-de-dragon.html`, context)
|
||||
});
|
||||
}
|
||||
|
||||
static rdd_echec_queue = async (dialog, context) => {
|
||||
mergeObject(context, {
|
||||
queues: [await context.actor.ajouterQueue()],
|
||||
poesie: await Poetique.getExtrait()
|
||||
})
|
||||
if (context.rolled.isETotal) {
|
||||
context.queues.push(await context.actor.ajouterQueue());
|
||||
}
|
||||
|
||||
ChatMessage.create({
|
||||
whisper: ChatUtility.getWhisperRecipientsAndGMs(this.name),
|
||||
content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-resultat-reve-de-dragon.html`, context)
|
||||
});
|
||||
}
|
||||
|
||||
static experience_particuliere = async (dialog, context) => {
|
||||
await context.actor.appliquerAjoutExperience(context)
|
||||
}
|
||||
|
||||
static regain_seuil = async (dialog, context) => {
|
||||
await context.actor.regainPointDeSeuil()
|
||||
}
|
||||
|
||||
static $reve_plus = async (actor, valeur) => {
|
||||
await actor.reveActuelIncDec(valeur);
|
||||
}
|
||||
|
||||
static $vie_plus = async (actor, valeur) => {
|
||||
await actor.santeIncDec("vie", valeur);
|
||||
}
|
||||
|
||||
static async $reinsertion(dialog, actor, filter) {
|
||||
const newTMR = await TMRUtility.getTMRAleatoire(filter);
|
||||
await actor.forcerPositionTMRInconnue(newTMR);
|
||||
await dialog.positionnerDemiReve(newTMR.coord);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user