Sync
This commit is contained in:
@@ -54,6 +54,7 @@ export class PegasusActorSheet extends ActorSheet {
|
||||
subActors: duplicate(this.actor.getSubActors()),
|
||||
race: duplicate(this.actor.getRace()),
|
||||
role: duplicate(this.actor.getRole()),
|
||||
effects: duplicate(this.actor.getEffects()),
|
||||
options: this.options,
|
||||
owner: this.document.isOwner,
|
||||
editScore: this.options.editScore,
|
||||
@@ -86,6 +87,12 @@ export class PegasusActorSheet extends ActorSheet {
|
||||
PegasusUtility.confirmDelete(this, li);
|
||||
});
|
||||
|
||||
html.find('.park-round-count').change(ev => {
|
||||
const li = $(ev.currentTarget).parents(".item");
|
||||
let itemId = li.data("item-id");
|
||||
this.actor.updatePerkRounds( itemId, Number(event.currentTarget.value))
|
||||
});
|
||||
|
||||
html.find('.subactor-edit').click(ev => {
|
||||
const li = $(ev.currentTarget).parents(".item");
|
||||
let actorId = li.data("actor-id");
|
||||
|
||||
@@ -100,6 +100,11 @@ export class PegasusActor extends Actor {
|
||||
return comp;
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getEffects() {
|
||||
let comp = this.data.items.filter( item => item.type == 'effect');
|
||||
return comp;
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getPowers() {
|
||||
let comp = this.data.items.filter( item => item.type == 'power');
|
||||
return comp;
|
||||
@@ -409,7 +414,12 @@ export class PegasusActor extends Actor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getStat( statKey) {
|
||||
let stat = duplicate(this.data.data.statistics[statKey]);
|
||||
let stat
|
||||
if (statKey == 'mr') {
|
||||
stat = duplicate(this.data.data.mr);
|
||||
} else {
|
||||
stat = duplicate(this.data.data.statistics[statKey]);
|
||||
}
|
||||
stat.dice = PegasusUtility.getDiceFromLevel(stat.value);
|
||||
return stat;
|
||||
}
|
||||
@@ -424,6 +434,14 @@ export class PegasusActor extends Actor {
|
||||
return spec;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
updatePerkRounds( itemId, roundValue) {
|
||||
let item = this.items.get( itemId)
|
||||
if (item) {
|
||||
this.updateEmbeddedDocuments( 'Item', [ { _id: item.id, 'data.roundcount': roundValue }] );
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async rollMR() {
|
||||
let mr = duplicate( this.data.data.mr) ;
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -65,6 +65,7 @@ export class PegasusItemSheet extends ItemSheet {
|
||||
limited: this.object.limited,
|
||||
options: this.options,
|
||||
owner: this.document.isOwner,
|
||||
mr: (this.object.type == 'specialisation'),
|
||||
isGM: game.user.isGM
|
||||
}
|
||||
|
||||
@@ -338,10 +339,31 @@ export class PegasusItemSheet extends ItemSheet {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async addEffectSpec( event, item, dataItem) {
|
||||
let newItem = duplicate(item.data);
|
||||
if ( event.toElement.className == 'drop-effect-spec') {
|
||||
let specArray = duplicate(this.object.data.data.recoveryrollspec);
|
||||
specArray.push( newItem );
|
||||
await this.object.update( { 'data.recoveryrollspec': specArray} );
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async _onDrop(event) {
|
||||
//console.log(event);
|
||||
if (this.object.type == 'effect' ) {
|
||||
let data = event.dataTransfer.getData('text/plain');
|
||||
if (data) {
|
||||
let dataItem = JSON.parse( data );
|
||||
let item = await this.searchItem( dataItem);
|
||||
if ( item.data.type == 'specialisation') {
|
||||
return this.addEffectSpec( event, item, dataItem);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (this.object.type == 'race' ) {
|
||||
let data = event.dataTransfer.getData('text/plain');
|
||||
if (data) {
|
||||
|
||||
@@ -20,6 +20,11 @@ export class PegasusUtility {
|
||||
this.optionsDiceList = "";
|
||||
this.buildDiceLists();
|
||||
PegasusCommands.init();
|
||||
|
||||
Handlebars.registerHelper('upper', function (text) {
|
||||
return text.toUpperCase();
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
|
||||
Reference in New Issue
Block a user