Enhance styling

This commit is contained in:
2022-03-09 18:12:40 +01:00
parent 9ffdd4341b
commit e887828d53
10 changed files with 587 additions and 215 deletions

View File

@@ -19,7 +19,7 @@ export class PegasusActorSheet extends ActorSheet {
height: 720,
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "combat" }],
dragDrop: [{ dragSelector: ".item-list .item", dropSelector: null }],
editScore: false
editScore: true
});
}
@@ -43,11 +43,10 @@ export class PegasusActorSheet extends ActorSheet {
specs: this.actor.getSpecs( ),
optionsDiceList: PegasusUtility.getOptionsDiceList(),
optionsLevel: PegasusUtility.getOptionsLevel(),
weapons: this.actor.checkAndPrepareWeapons( duplicate(this.actor.getWeapons()) ),
armors: this.actor.checkAndPrepareArmors( duplicate(this.actor.getArmors())),
shields: duplicate(this.actor.getShields()),
equipments: duplicate(this.actor.getEquipments()),
equipments: duplicate(this.actor.getEquipmentsOnly()),
weapons: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getWeapons()) ),
armors: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getArmors())),
shields: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getShields()) ),
equipments: this.actor.checkAndPrepareEquipments(duplicate(this.actor.getEquipmentsOnly()) ),
perks: duplicate(this.actor.getPerks()),
abilities: duplicate(this.actor.getAbilities()),
activePerks: duplicate(this.actor.getActivePerks()),
@@ -77,12 +76,20 @@ export class PegasusActorSheet extends ActorSheet {
let rollData = PegasusUtility.getBasicRollData()
rollData.alias = "Dice Pool Roll",
rollData.mode = "generic"
rollData.title = `Dice Pool Roll`;
rollData.title = `Dice Pool Roll`
rollData.img = "icons/dice/d12black.svg"
let rollDialog = await PegasusRollDialog.create( this.actor, rollData);
rollDialog.render( true );
}
/* -------------------------------------------- */
async rollIDR( diceValue) {
let myRoll = new Roll(diceValue+"x").roll({ async: false })
//await PegasusUtility.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
myRoll.toMessage()
}
/* -------------------------------------------- */
/** @override */
activateListeners(html) {
@@ -183,6 +190,15 @@ export class PegasusActorSheet extends ActorSheet {
this.actor.incDecQuantity( li.data("item-id"), +1 );
} );
html.find('.ammo-minus').click(event => {
const li = $(event.currentTarget).parents(".item");
this.actor.incDecAmmo( li.data("item-id"), -1 );
} );
html.find('.ammo-plus').click(event => {
const li = $(event.currentTarget).parents(".item");
this.actor.incDecAmmo( li.data("item-id"), +1 );
} );
html.find('.momentum-minus').click(event => {
this.actor.modifyMomentum( -1 )
} )
@@ -222,6 +238,10 @@ export class PegasusActorSheet extends ActorSheet {
html.find('.roll-mr').click((event) => {
this.actor.rollMR();
});
html.find('.roll-idr').click((event) => {
const diceValue = $(event.currentTarget).data("dice-value")
this.rollIDR( diceValue)
})
html.find('.roll-spec').click((event) => {
const li = $(event.currentTarget).parents(".item");

View File

@@ -116,39 +116,39 @@ export class PegasusActor extends Actor {
}
/* -------------------------------------------- */
getShields() {
let comp = this.data.items.filter(item => item.type == 'shield');
let comp = this.data.items.filter(item => item.type == 'shield')
return comp;
}
getRace() {
let race = this.data.items.filter(item => item.type == 'race');
let race = this.data.items.filter(item => item.type == 'race')
return race[0] ?? [];
}
getRole() {
let role = this.data.items.filter(item => item.type == 'role');
let role = this.data.items.filter(item => item.type == 'role')
return role[0] ?? [];
}
/* -------------------------------------------- */
checkAndPrepareArmor(armor) {
armor.data.resistanceDice = PegasusUtility.getDiceFromLevel(armor.data.resistance);
}
/* -------------------------------------------- */
checkAndPrepareArmors(armors) {
for (let item of armors) {
this.checkAndPrepareArmor(item);
checkAndPrepareEquipment(item) {
if ( item.data.resistance ) {
item.data.resistanceDice = PegasusUtility.getDiceFromLevel(item.data.resistance)
}
if ( item.data.idr ) {
item.data.idrDice = PegasusUtility.getDiceFromLevel(item.data.idr)
}
if ( item.data.damage) {
item.data.damageDice = PegasusUtility.getDiceFromLevel(item.data.damage)
}
if( item.data.level) {
item.data.levelDice = PegasusUtility.getDiceFromLevel(item.data.level)
}
return armors;
}
/* -------------------------------------------- */
checkAndPrepareWeapon(weapon) {
weapon.data.damageDice = PegasusUtility.getDiceFromLevel(weapon.data.damage);
}
/* -------------------------------------------- */
checkAndPrepareWeapons(weapons) {
for (let item of weapons) {
this.checkAndPrepareWeapon(item);
checkAndPrepareEquipments(listItem) {
for (let item of listItem) {
this.checkAndPrepareEquipment(item)
}
return weapons;
return listItem
}
/* -------------------------------------------- */
@@ -314,10 +314,11 @@ export class PegasusActor extends Actor {
// Compute whole enc
let enc = 0
for (let item of equipments) {
item.data.idrDice = PegasusUtility.getDiceFromLevel( Number(item.data.idr))
if (item.data.equipped) {
if (item.data.iscontainer) {
enc += item.data.contentsEnc
} else {
} else if (item.data.containerid == "") {
enc += item.data.weight
}
}
@@ -789,7 +790,7 @@ export class PegasusActor extends Actor {
updates['data.secondary.socialhealth.value'] = socDiceValue
}
let nrgValue = PegasusUtility.getDiceValue(this.data.data.statistics.foc.value) + this.data.data.nrg.mod + this.data.data.statistics.foc.mod;
let nrgValue = PegasusUtility.getDiceValue(this.data.data.statistics.foc.value) + this.data.data.nrg.mod + this.data.data.statistics.foc.mod
if (nrgValue != this.data.data.nrg.absolutemax) {
updates['data.nrg.absolutemax'] = nrgValue
}
@@ -823,7 +824,7 @@ export class PegasusActor extends Actor {
if (role && role.name && (role.name != this.data.data.biodata.rolename)) {
updates['data.biodata.rolename'] = role.name
}
console.log("UPD", updates, this.data.data.biodata)
//console.log("UPD", updates, this.data.data.biodata)
await this.update(updates)
}
@@ -878,6 +879,16 @@ export class PegasusActor extends Actor {
const updated = await this.updateEmbeddedDocuments('Item', [{ _id: objetQ.id, 'data.quantity': newQ }]); // pdates one EmbeddedEntity
}
}
/* -------------------------------------------- */
async incDecAmmo(objetId, incDec = 0) {
let objetQ = this.data.items.get(objetId)
if (objetQ) {
let newQ = objetQ.data.data.ammocurrent + incDec;
if ( newQ >= 0 && newQ <= objetQ.data.data.ammomax) {
const updated = await this.updateEmbeddedDocuments('Item', [{ _id: objetQ.id, 'data.ammocurrent': newQ }]); // pdates one EmbeddedEntity
}
}
}
/* -------------------------------------------- */
async applyAbility(ability, updates = [], directUpdate = false) {
@@ -1082,7 +1093,11 @@ export class PegasusActor extends Actor {
rollData.statMod = rollData.stat.mod
rollData.specList = this.getRelevantSpec(statKey)
rollData.selectedSpec = "0"
rollData.img = `systems/fvtt-pegasus-rpg/images/icons/${rollData.stat.abbrev}.webp`
if (statKey.toLowerCase() == "mr") {
rollData.img = "systems/fvtt-pegasus-rpg/images/icons/MR.webp"
} else {
rollData.img = `systems/fvtt-pegasus-rpg/images/icons/${rollData.stat.abbrev}.webp`
}
}
this.addEffects(rollData)
@@ -1119,6 +1134,7 @@ export class PegasusActor extends Actor {
let rollData = this.getCommonRollData(statKey, useShield)
rollData.mode = "stat"
rollData.title = `Roll : ${stat.label} `
rollData.img = "icons/dice/d12black.svg"
this.startRoll(rollData)
} else {
@@ -1181,10 +1197,11 @@ export class PegasusActor extends Actor {
let rollData = this.getCommonRollData("mr")
rollData.mode = "MR"
rollData.img = "systems/fvtt-pegasus-rpg/images/icons/MR.webp"
rollData.isInit = isInit
rollData.combatId = combatId
rollData.combatantId = combatantId
console.log("MR ROLL", rollData)
this.startRoll(rollData);
} else {
ui.notifications.warn("MR not found !");
@@ -1199,7 +1216,7 @@ export class PegasusActor extends Actor {
let rollData = this.getCommonRollData(armor.data.statistic)
armor = duplicate(armor);
this.checkAndPrepareArmor(armor);
this.checkAndPrepareEquipment(armor);
rollData.mode = "armor"
rollData.armor = armor

View File

@@ -211,6 +211,7 @@ export class PegasusUtility {
'systems/fvtt-pegasus-rpg/templates/partial-actor-status.html',
'systems/fvtt-pegasus-rpg/templates/partial-item-nav.html',
'systems/fvtt-pegasus-rpg/templates/partial-item-description.html',
'systems/fvtt-pegasus-rpg/templates/partial-actor-equipment.html'
]
return loadTemplates(templatePaths);
}