Modify Skills again
This commit is contained in:
@@ -86,39 +86,47 @@ export class CrucibleActor extends Actor {
|
||||
/* -------------------------------------------- */
|
||||
getMoneys() {
|
||||
let comp = this.data.items.filter(item => item.type == 'money');
|
||||
CrucibleUtility.sortArrayObjectsByName(comp)
|
||||
return comp;
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getFeats() {
|
||||
let comp = duplicate(this.data.items.filter(item => item.type == 'feat') || []);
|
||||
CrucibleUtility.sortArrayObjectsByName(comp)
|
||||
return comp;
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getFeatsWithDie() {
|
||||
let comp = duplicate(this.data.items.filter(item => item.type == 'feat' && item.data.data.isfeatdie) || []);
|
||||
CrucibleUtility.sortArrayObjectsByName(comp)
|
||||
return comp;
|
||||
}
|
||||
getFeatsWithSL() {
|
||||
let comp = duplicate(this.data.items.filter(item => item.type == 'feat' && item.data.data.issl) || []);
|
||||
CrucibleUtility.sortArrayObjectsByName(comp)
|
||||
return comp;
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getLore() {
|
||||
let comp = duplicate(this.data.items.filter(item => item.type == 'spell') || []);
|
||||
CrucibleUtility.sortArrayObjectsByName(comp)
|
||||
return comp;
|
||||
}
|
||||
getEquippedWeapons() {
|
||||
let comp = duplicate(this.data.items.filter(item => item.type == 'weapon' && item.data.data.equipped) || []);
|
||||
CrucibleUtility.sortArrayObjectsByName(comp)
|
||||
return comp;
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getArmors() {
|
||||
let comp = duplicate(this.data.items.filter(item => item.type == 'armor') || []);
|
||||
CrucibleUtility.sortArrayObjectsByName(comp)
|
||||
return comp;
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getShields() {
|
||||
let comp = duplicate(this.data.items.filter(item => item.type == 'shield') || []);
|
||||
CrucibleUtility.sortArrayObjectsByName(comp)
|
||||
return comp;
|
||||
}
|
||||
getRace() {
|
||||
@@ -140,6 +148,7 @@ export class CrucibleActor extends Actor {
|
||||
/* -------------------------------------------- */
|
||||
getWeapons() {
|
||||
let comp = duplicate(this.data.items.filter(item => item.type == 'weapon') || []);
|
||||
CrucibleUtility.sortArrayObjectsByName(comp)
|
||||
return comp;
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
@@ -156,8 +165,9 @@ export class CrucibleActor extends Actor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getSkills() {
|
||||
let comp = duplicate(this.data.items.filter(item => item.type == 'skill') || []);
|
||||
return comp;
|
||||
let comp = duplicate(this.data.items.filter(item => item.type == 'skill') || [])
|
||||
CrucibleUtility.sortArrayObjectsByName(comp)
|
||||
return comp
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@@ -389,7 +399,7 @@ export class CrucibleActor extends Actor {
|
||||
user: game.user.id,
|
||||
rollMode: game.settings.get("core", "rollMode"),
|
||||
whisper: [game.user.id].concat(ChatMessage.getWhisperRecipients('GM')),
|
||||
content: `<div>${this.name} has gained 1 exp in the skill ${skill.name} (exp = ${skill.data.data.exp}}</div`
|
||||
content: `<div>${this.name} has gained 1 exp in the skill ${skill.name} (exp = ${skill.data.data.exp})</div`
|
||||
}
|
||||
ChatMessage.create(chatData)
|
||||
if (skill.data.data.exp >= 25) {
|
||||
@@ -398,7 +408,7 @@ export class CrucibleActor extends Actor {
|
||||
user: game.user.id,
|
||||
rollMode: game.settings.get("core", "rollMode"),
|
||||
whisper: [game.user.id].concat(ChatMessage.getWhisperRecipients('GM')),
|
||||
content: `<div>${this.name} has gained 1 SL in the skill ${skill.name} (new SL : ${skill.data.data.level} ) !</div`
|
||||
content: `<div>${this.name} has gained 1 SL in the skill ${skill.name} (new SL : ${skill.data.data.level}) !</div`
|
||||
}
|
||||
ChatMessage.create(chatData)
|
||||
}
|
||||
@@ -437,7 +447,8 @@ export class CrucibleActor extends Actor {
|
||||
rollData.featsSL = this.getFeatsWithSL()
|
||||
rollData.featDieName = "none"
|
||||
rollData.featSLName = "none"
|
||||
rollData.rollAdvantage = false
|
||||
rollData.rollAdvantage = "none"
|
||||
rollData.advantage = "none"
|
||||
|
||||
if (abilityKey) {
|
||||
rollData.ability = this.getAbility(abilityKey)
|
||||
@@ -466,6 +477,7 @@ export class CrucibleActor extends Actor {
|
||||
let rollData = this.getCommonRollData(abilityKey)
|
||||
rollData.mode = "skill"
|
||||
rollData.skill = skill
|
||||
rollData.img = skill.img
|
||||
|
||||
this.startRoll(rollData)
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ export class CrucibleRollDialog extends Dialog {
|
||||
/* -------------------------------------------- */
|
||||
static async create(actor, rollData) {
|
||||
|
||||
let options = { classes: ["CrucibleDialog"], width: 420, height: 280, 'z-index': 99999 };
|
||||
let options = { classes: ["CrucibleDialog"], width: 540, height: 340, 'z-index': 99999 };
|
||||
let html = await renderTemplate('systems/fvtt-crucible-rpg/templates/roll-dialog-generic.html', rollData);
|
||||
|
||||
return new CrucibleRollDialog(actor, rollData, html, options);
|
||||
@@ -58,21 +58,11 @@ export class CrucibleRollDialog extends Dialog {
|
||||
}
|
||||
$(function () { onLoad(); });
|
||||
|
||||
html.find('#none-clicked').change((event) => {
|
||||
this.rollData.advantage = "none"
|
||||
this.refreshDialog()
|
||||
html.find('#advantage').change((event) => {
|
||||
this.rollData.advantage = event.currentTarget.value
|
||||
})
|
||||
html.find('#advantage-clicked').change((event) => {
|
||||
this.rollData.advantage = "advantage"
|
||||
this.refreshDialog()
|
||||
})
|
||||
html.find('#disadvantage-clicked').change((event) => {
|
||||
this.rollData.advantage = "disadvantage"
|
||||
this.refreshDialog()
|
||||
})
|
||||
html.find('#roll-with-advantage-clicked').change((event) => {
|
||||
this.rollData.rollAdvantage = !this.rollData.rollAdvantage
|
||||
this.refreshDialog()
|
||||
html.find('#rollAdvantage').change((event) => {
|
||||
this.rollData.rollAdvantage = event.currentTarget.value
|
||||
})
|
||||
html.find('#featDieName').change((event) => {
|
||||
this.rollData.featDieName = event.currentTarget.value
|
||||
|
||||
@@ -274,12 +274,18 @@ export class CrucibleUtility {
|
||||
}
|
||||
diceFormula += "+" + String(level) + "d8cs>=5"
|
||||
}
|
||||
if(rollData.advantage == "advantage") {
|
||||
if(rollData.advantage == "advantage1") {
|
||||
diceFormula += "+ 1d10cs>=5"
|
||||
}
|
||||
if(rollData.advantage == "disadvantage") {
|
||||
if(rollData.advantage == "advantage2") {
|
||||
diceFormula += "+ 2d10cs>=5"
|
||||
}
|
||||
if(rollData.advantage == "disadvantage1") {
|
||||
diceFormula += "- 1d10cs>=5"
|
||||
}
|
||||
if(rollData.advantage == "disadvantage2") {
|
||||
diceFormula += "- 2d10cs>=5"
|
||||
}
|
||||
if (rollData.featDieName != "none") {
|
||||
diceFormula += "+ 1d10cs>=5"
|
||||
}
|
||||
@@ -291,12 +297,19 @@ export class CrucibleUtility {
|
||||
}
|
||||
rollData.roll = myRoll
|
||||
rollData.nbSuccess = myRoll.total
|
||||
if (rollData.rollAdvantage) {
|
||||
if (rollData.rollAdvantage != "none") {
|
||||
let myRoll2 = new Roll(diceFormula).roll({ async: false })
|
||||
await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
|
||||
if ( myRoll2.total > rollData.nbSuccess) {
|
||||
rollData.roll = myRoll2
|
||||
rollData.nbSuccess = myRoll2.total
|
||||
if (rollData.rollAdvantage == "roll-advantage") {
|
||||
if ( myRoll2.total > rollData.nbSuccess) {
|
||||
rollData.roll = myRoll2
|
||||
rollData.nbSuccess = myRoll2.total
|
||||
}
|
||||
} else {
|
||||
if ( myRoll2.total < rollData.nbSuccess) {
|
||||
rollData.roll = myRoll2
|
||||
rollData.nbSuccess = myRoll2.total
|
||||
}
|
||||
}
|
||||
}
|
||||
// Manage exp
|
||||
@@ -317,6 +330,21 @@ export class CrucibleUtility {
|
||||
actor.lastRoll = rollData
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static sortArrayObjectsByName( myArray) {
|
||||
myArray.sort((a, b) => {
|
||||
let fa = a.name.toLowerCase();
|
||||
let fb = b.name.toLowerCase();
|
||||
if (fa < fb) {
|
||||
return -1;
|
||||
}
|
||||
if (fa > fb) {
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
})
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static getUsers(filter) {
|
||||
return game.users.filter(filter).map(user => user.data._id);
|
||||
|
||||
Reference in New Issue
Block a user