This commit is contained in:
2022-01-12 16:25:55 +01:00
parent 3384157580
commit adcb4a49c9
11 changed files with 134 additions and 41 deletions

View File

@ -16,6 +16,8 @@ export class PegasusActorCreate {
this.races = racesPack.map(i => i.toObject());
const rolesPack = await PegasusUtility.loadCompendium("fvtt-pegasus-rpg.role");
this.roles = rolesPack.map(i => i.toObject());
const perksPack = await PegasusUtility.loadCompendium("fvtt-pegasus-rpg.perk");
this.perks = perksPack.map(i => i.toObject());
this.showRaces()
}
@ -55,7 +57,7 @@ export class PegasusActorCreate {
if ( race.data.selectablestats ) {
this.manageSelectableStats(race);
} else if ( race.data.perksgained) {
this.showRacePerks(race);
this.manageRacePerks(race);
} else {
this.showRoles()
}
@ -83,24 +85,19 @@ export class PegasusActorCreate {
this.processSelectableStats();
}
if (step == 'select-race-perks-all') {
if (step == 'select-race-perks') {
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.nbRacePerks -= 1;
if ( this.nbRacePerks == 0 || this.racePerks.length == 0) {
this.showRoles()
}else {
this.showRacePerks();
} else {
this.manageRacePerks()
}
}
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));
@ -205,18 +202,23 @@ export class PegasusActorCreate {
/* --------------- -------------------- --------- */
manageRacePerks(race) {
console.log("MANAG RACE PERKsS", this.currentRace)
if ( !this.currentRace.data.perksgained ) {
this.showRoles()
return;
}
console.log("MANAG RACE PERKsS 2", this.currentRace)
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;
if ( this.currentRace.data.perksall) {
this.racePerks = duplicate(this.perks)
} else {
this.racePerks = duplicate(this.currentRace.data.perks)
}
this.nbRacePerks = this.currentRace.data.perksnumber;
}
let formData = this.createFormData("select-race-perks")
formData.raceperks = this.racePerks;
formData.nbraceperks = this.nbRacePerks;
this.renderChatMessage(formData)
}
@ -224,7 +226,7 @@ export class PegasusActorCreate {
async processSelectableStats() {
// End of race options choice
if ( this.raceSelectableStats.numberstats == 0) {
this.showRoles()
this.manageRacePerks();
return;
}
let formData = this.createFormData("select-race-stats")