First setup

This commit is contained in:
2021-01-19 22:54:53 +01:00
parent e78b2ac67d
commit 8c5b6e9c82
26 changed files with 199 additions and 61 deletions

View File

@ -67,15 +67,13 @@ export class SoSActorSheet extends ActorSheet {
this.actor.rollStat(statName);
});
html.find('.edge-draw').click((event) => {
this.actor.drawEdge();
this.actor.resetDeck();
this.render(true);
});
html.find('.lock-unlock-sheet').click((event) => {
this.options.editStatSkill = !this.options.editStatSkill;
this.render(true);
});
});
}
/* -------------------------------------------- */

View File

@ -42,7 +42,7 @@ export class SoSActor extends Actor {
if ( !this.cardDeck ) {
this.cardDeck = new SoSCardDeck();
this.cardDeck.initCardDeck( this );
this.cardDeck.initCardDeck( this, this.data.data.internals.deck );
}
this.controlScores();
}
@ -55,8 +55,19 @@ export class SoSActor extends Actor {
return edgesCard;
}
/* -------------------------------------------- */
drawEdge( ) {
resetDeck( ) {
this.cardDeck.shuffleDeck();
this.cardDeck.drawEdge();
this.saveDeck();
}
/* -------------------------------------------- */
saveDeck( ) {
let deck = { deck: duplicate(this.cardDeck.data.deck),
discard: duplicate(this.cardDeck.data.discard),
cardEdge: duplicate(this.cardDeck.data.cardEdge)
}
this.update( { 'data.internals.deck': deck });
}
/* -------------------------------------------- */
@ -79,7 +90,7 @@ export class SoSActor extends Actor {
}
/* -------------------------------------------- */
computeEdge( ) {
return Math.ceil( (this.data.data.stats.intelligence.value + this.data.data.stats.charisma.value) / 2);
return Math.ceil( (this.data.data.stats.intelligence.value + this.data.data.stats.charisma.value) / 2) + this.data.data.scores.edge.bonus;
}
/* -------------------------------------------- */
getShock( ) {

24
module/sample-code.js Normal file
View File

@ -0,0 +1,24 @@
html.find('.item .item-name h4').click(event => this._onItemSummary(event));
/**
* Handle toggling of an item from the Actor sheet
* @private
*/
_onItemSummary(event) {
event.preventDefault();
let li = $(event.currentTarget).parents(".item"),
item = this.actor.getOwnedItem(li.data("item-id"));
// Toggle summary
if (item.data.data.description !== undefined && item.data.data.description !== null){
if ( li.hasClass("expanded") ) {
let summary = li.children(".item-summary");
summary.slideUp(200, () => summary.remove());
} else {
let div = $(`<div class="item-summary">${item.data.data.description}</div>`);
li.append(div.hide());
div.slideDown(200);
}
li.toggleClass("expanded");
}
}

View File

@ -7,16 +7,26 @@ const IDX2CARDFAMILY = ['c', 'd', 'h', 's'];
export class SoSCardDeck {
/* -------------------------------------------- */
initCardDeck(actor) {
initCardDeck(actor, savedDeck = undefined ) {
this.data = {};
this.data.deck = [];
this.data.discard = [];
this.data.cardState = [];
this.data.cardEdge = [];
this.data.actor = actor;
this.shuffleDeck();
if ( savedDeck.deck && savedDeck.deck.length > 0 ) {}
this.data.deck = duplicate(savedDeck.deck);
if ( savedDeck.discard && savedDeck.discard.length > 0 ) {}
this.data.discard = duplicate(savedDeck.discard);
if ( savedDeck.cardEdge && savedDeck.cardEdge.length > 0 ) {}
this.data.cardEdge = duplicate(savedDeck.cardEdge);
this.data.actor = actor;
if ( this.data.deck.length == 0 && this.data.discard.length == 0) {
this.shuffleDeck();
}
}
/* -------------------------------------------- */

View File

@ -8,7 +8,8 @@ export class SoSUtility {
'systems/foundryvtt-shadows-over-sol/templates/actor-sheet.html',
'systems/foundryvtt-shadows-over-sol/templates/editor-notes-gm.html',
'systems/foundryvtt-shadows-over-sol/templates/stat-option-list.html',
'systems/foundryvtt-shadows-over-sol/templates/item-sheet.html'
'systems/foundryvtt-shadows-over-sol/templates/item-sheet.html',
'systems/foundryvtt-shadows-over-sol/templates/stat-name-list.html'
]
return loadTemplates(templatePaths);
}