Char creation

This commit is contained in:
2022-01-08 10:49:08 +01:00
parent f3bc082e8c
commit 91ab828681
5 changed files with 219 additions and 3 deletions

View File

@ -79,7 +79,66 @@ export class PegasusActorCreate {
if ( step == 'select-role') {
let role = this.roles.find( item => item._id == itemId);
PegasusUtility.removeChatMessageId(PegasusUtility.findChatMessageId(event.currentTarget));
this.actor.applyRole( role );
this.currentRole = role;
this.nbRoleStat = 2;
this.roleStats = duplicate(role.data.statincreasechoice)
this.showRoleStat( );
}
if ( step == 'select-role-stat') {
PegasusUtility.removeChatMessageId(PegasusUtility.findChatMessageId(event.currentTarget));
let statKey = $(event.currentTarget).data("stat-key");
this.actor.valueStat( statKey, 1);
for (let stat of this.roleStats ) {
if ( stat.name.toLowerCase() == statKey.toLowerCase()) {
stat.flag = false
}
}
this.nbRoleStat--;
if ( this.nbRoleStat == 0 || this.roleStats.length == 0) {
this.roleSpec = duplicate(this.currentRole.data.specincrease)
this.nbDT2 = 1;
this.nbDT1 = 2;
this.showRoleSpecialisations()
} else{
this.showRoleStat( );
}
}
if (step == 'select-role-spec') {
PegasusUtility.removeChatMessageId(PegasusUtility.findChatMessageId(event.currentTarget));
let spec = this.roleSpec.find( item => item._id == itemId);
if (this.nbDT2 > 0) {
this.actor.addIncSpec(spec, 2)
this.nbDT2--;
} else {
this.actor.addIncSpec(spec, 1)
this.nbDT1--;
}
this.roleSpec = this.roleSpec.filter( item => item._id != itemId);//Remove selected spec
if ( this.nbDT1 == 0 || this.roleSpec.length == 0) {
this.rolePerks = duplicate(this.currentRole.data.perks)
this.nbPerks = 2;
this.showRolePerks()
} else {
this.showRoleSpecialisations()
}
}
if (step == 'select-role-perk') {
PegasusUtility.removeChatMessageId(PegasusUtility.findChatMessageId(event.currentTarget));
let perk = this.rolePerks.find( item => item._id == itemId);
this.actor.addItemWithoutDuplicate(perk)
this.nbPerks--;
this.rolePerks = this.rolePerks.filter( item => item._id != itemId);//Remove selected perk
if (this.nbPerks == 0 || this.rolePerks.length == 0) {
this.showCharacterEnd()
} else {
this.showRolePerks()
}
}
}
@ -171,4 +230,72 @@ export class PegasusActorCreate {
};
await ChatMessage.create( chatData );
}
/* -------------------------------------------- */
async showRoleStat( ) {
let formData = this.createFormData("select-role-stat")
formData.rolestats = []
for(let stat of this.roleStats) {
if (stat.flag) {
formData.rolestats.push( duplicate(this.actor.data.data.statistics[stat.name.toLowerCase()]) )
}
}
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 );
}
/* -------------------------------------------- */
async showRoleSpecialisations() {
let formData = this.createFormData("select-role-spec")
formData.rolespec = duplicate(this.roleSpec)
formData.dt = 1
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 );
}
/* -------------------------------------------- */
async showRolePerks() {
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 );
}
/* -------------------------------------------- */
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 );
}
}