Char creation

This commit is contained in:
2022-01-08 18:28:01 +01:00
parent 91ab828681
commit c74fb5969a
15 changed files with 470 additions and 267 deletions

View File

@ -43,9 +43,10 @@ export class PegasusActorCreate {
processChatEvent( event ) {
const step = $(event.currentTarget).data("step-name");
const itemId = $(event.currentTarget).data("item-id");
console.log("Create chat evet", event, itemId, step)
if ( step == "select-race") {
let race = this.races.find( item => item._id == itemId);
this.currentRace = race;
this.actor.applyRace( race);
PegasusUtility.removeChatMessageId(PegasusUtility.findChatMessageId(event.currentTarget));
if ( race.data.nboptionnal > 0 && race.data.optionnalabilities.length > 0) {
@ -53,6 +54,8 @@ export class PegasusActorCreate {
} else {
if ( race.data.selectablestats ) {
this.manageSelectableStats(race);
} else if ( race.data.perksgained) {
this.showRacePerks(race);
} else {
this.showRoles()
}
@ -77,6 +80,24 @@ export class PegasusActorCreate {
this.processSelectableStats();
}
if (step == 'select-race-perks-all') {
PegasusUtility.removeChatMessageId(PegasusUtility.findChatMessageId(event.currentTarget));
let perk = this.racePerks.find( item => item._id == itemId);
this.actor.createEmbeddedDocuments( 'Item', [perk]);
this.racePerks = this.racePerks.filter( item => item._id != itemId);
this.nbperks -= 1;
if ( this.nbperks == 0 || this.racePerks.length == 0) {
this.showRoles()
}else {
this.showRacePerks();
}
}
if (step == 'select-race-perks') {
PegasusUtility.removeChatMessageId(PegasusUtility.findChatMessageId(event.currentTarget));
this.showRoles()
}
if ( step == 'select-role') {
let role = this.roles.find( item => item._id == itemId);
PegasusUtility.removeChatMessageId(PegasusUtility.findChatMessageId(event.currentTarget));
@ -153,7 +174,37 @@ export class PegasusActorCreate {
this.processSelectableStats()
}
/* --------------- ----------------------------- */
/* -------------------------------------------- */
async renderChatMessage( formData) {
let chatData = {
user: game.user.id,
alias : this.actor.name,
rollMode: game.settings.get("core", "rollMode"),
whisper: [game.user.id].concat( ChatMessage.getWhisperRecipients('GM') ),
content: await renderTemplate('systems/fvtt-pegasus-rpg/templates/chat-create-actor.html', formData)
};
//console.log("Apply damage chat", chatData );
await ChatMessage.create( chatData );
}
/* --------------- -------------------- --------- */
manageRacePerks(race) {
if ( !this.racePerks) { // First init
this.racePerks = duplicate(race.data.perks)
this.nbRacePerks = race.data.perksnumber;
}
let formData
if (race.data.perksall) {
formData = this.createFormData("select-race-perks-all")
} else {
formData = this.createFormData("select-race-perks")
formData.raceperks = this.racePerks;
formData.nbraceperks = this.nbRacePerks;
}
this.renderChatMessage(formData)
}
/* --------------- -------------------- --------- */
async processSelectableStats() {
// End of race options choice
if ( this.raceSelectableStats.numberstats == 0) {
@ -186,49 +237,28 @@ export class PegasusActorCreate {
// End of race options choice
if ( this.raceOptionnalAbilities.nboptionnal == 0) {
if ( this.raceSelectableStats ) {
this.manageSelectableStats(this.raceSelectableStats.race);
this.manageSelectableStats(this.currentrace);
} else if ( this.currentRace.data.perksgained) {
this.manageRacePerks(this.currentRace);
} else {
this.showRoles()
}
} else {
let formData = this.createFormData("select-race-optionnal")
this.renderChatMessage( formData)
}
let formData = this.createFormData("select-race-optionnal")
let chatData = {
user: game.user.id,
alias : this.actor.name,
rollMode: game.settings.get("core", "rollMode"),
whisper: [game.user.id].concat( ChatMessage.getWhisperRecipients('GM') ),
content: await renderTemplate('systems/fvtt-pegasus-rpg/templates/chat-create-actor.html', formData)
};
//console.log("Apply damage chat", chatData );
await ChatMessage.create( chatData );
}
/* -------------------------------------------- */
async showRaces() {
let formData = this.createFormData("select-race")
let chatData = {
user: game.user.id,
alias : this.actor.name,
rollMode: game.settings.get("core", "rollMode"),
whisper: [game.user.id].concat( ChatMessage.getWhisperRecipients('GM') ),
content: await renderTemplate('systems/fvtt-pegasus-rpg/templates/chat-create-actor.html', formData)
};
//console.log("Apply damage chat", chatData );
await ChatMessage.create( chatData );
this.renderChatMessage( formData)
}
/* -------------------------------------------- */
async showRoles() {
let formData = this.createFormData("select-role")
let chatData = {
user: game.user.id,
alias : this.actor.name,
rollMode: game.settings.get("core", "rollMode"),
whisper: [game.user.id].concat( ChatMessage.getWhisperRecipients('GM') ),
content: await renderTemplate('systems/fvtt-pegasus-rpg/templates/chat-create-actor.html', formData)
};
await ChatMessage.create( chatData );
this.renderChatMessage( formData)
}
/* -------------------------------------------- */
@ -241,14 +271,7 @@ export class PegasusActorCreate {
}
}
console.log("STAT", this.roleStats, formData)
let chatData = {
user: game.user.id,
alias : this.actor.name,
rollMode: game.settings.get("core", "rollMode"),
whisper: [game.user.id].concat( ChatMessage.getWhisperRecipients('GM') ),
content: await renderTemplate('systems/fvtt-pegasus-rpg/templates/chat-create-actor.html', formData)
};
await ChatMessage.create( chatData );
this.renderChatMessage( formData)
}
/* -------------------------------------------- */
@ -259,14 +282,7 @@ export class PegasusActorCreate {
if (this.nbDT2 > 0 ) {
formData.dt = 2
}
let chatData = {
user: game.user.id,
alias : this.actor.name,
rollMode: game.settings.get("core", "rollMode"),
whisper: [game.user.id].concat( ChatMessage.getWhisperRecipients('GM') ),
content: await renderTemplate('systems/fvtt-pegasus-rpg/templates/chat-create-actor.html', formData)
};
await ChatMessage.create( chatData );
this.renderChatMessage( formData)
}
/* -------------------------------------------- */
@ -274,28 +290,14 @@ export class PegasusActorCreate {
let formData = this.createFormData("select-role-perk")
formData.roleperks = duplicate(this.rolePerks)
formData.nbperks = this.nbPerks
let chatData = {
user: game.user.id,
alias : this.actor.name,
rollMode: game.settings.get("core", "rollMode"),
whisper: [game.user.id].concat( ChatMessage.getWhisperRecipients('GM') ),
content: await renderTemplate('systems/fvtt-pegasus-rpg/templates/chat-create-actor.html', formData)
};
await ChatMessage.create( chatData );
this.renderChatMessage( formData)
}
/* -------------------------------------------- */
async showCharacterEnd() {
this.actor.computeNRGHealth()
let formData = this.createFormData("character-end")
let chatData = {
user: game.user.id,
alias : this.actor.name,
rollMode: game.settings.get("core", "rollMode"),
whisper: [game.user.id].concat( ChatMessage.getWhisperRecipients('GM') ),
content: await renderTemplate('systems/fvtt-pegasus-rpg/templates/chat-create-actor.html', formData)
};
await ChatMessage.create( chatData );
this.renderChatMessage( formData)
}
}