forked from GitHub-Mirrors/foundry-sw5e
Merge branch 'Develop-VJ' into cyr-power-point-ui
This commit is contained in:
commit
b56e652192
3 changed files with 35 additions and 15 deletions
|
@ -544,10 +544,28 @@ export default class Actor5e extends Actor {
|
|||
actorData.data.attributes.tech.level = techProgression.levels;
|
||||
}
|
||||
|
||||
/**
|
||||
* ? should I tally number of powers known here?
|
||||
*/
|
||||
|
||||
// Tally Powers Known
|
||||
const knownPowers = this.data.items.filter(i => i.type === "power");
|
||||
let knownForcePowers = 0;
|
||||
let knownTechPowers = 0;
|
||||
for ( let knownPower of knownPowers ) {
|
||||
const d = knownPower.data;
|
||||
switch (knownPower.data.school){
|
||||
case "lgt":
|
||||
case "uni":
|
||||
case "drk":{
|
||||
knownForcePowers++;
|
||||
break;
|
||||
}
|
||||
case "tec":{
|
||||
knownTechPowers++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
continue;
|
||||
}
|
||||
actorData.data.attributes.force.known.value = knownForcePowers;
|
||||
actorData.data.attributes.tech.known.value = knownTechPowers;
|
||||
|
||||
}
|
||||
|
||||
|
@ -1249,9 +1267,11 @@ export default class Actor5e extends Actor {
|
|||
|
||||
// Recover power slots
|
||||
for ( let [k, v] of Object.entries(data.powers) ) {
|
||||
updateData[`data.powers.${k}.value`] = Number.isNumeric(v.override) ? v.override : (v.max ?? 0);
|
||||
updateData[`data.powers.${k}.fvalue`] = Number.isNumeric(v.foverride) ? v.foverride : (v.fmax ?? 0);
|
||||
}
|
||||
for ( let [k, v] of Object.entries(data.powers) ) {
|
||||
updateData[`data.powers.${k}.tvalue`] = Number.isNumeric(v.toverride) ? v.toverride : (v.tmax ?? 0);
|
||||
}
|
||||
|
||||
// Determine the number of hit dice which may be recovered
|
||||
let recoverHD = Math.max(Math.floor(data.details.level / 2), 1);
|
||||
let dhd = 0;
|
||||
|
|
|
@ -526,12 +526,12 @@ export default class Item5e extends Item {
|
|||
if ( canConsume === false ) return false;
|
||||
}
|
||||
|
||||
// Consume Power Slots
|
||||
// Consume Power Slots and Force/Tech Points
|
||||
if ( consumePowerSlot ) {
|
||||
const level = this.actor?.data.data.powers[consumePowerSlot];
|
||||
const fp = this.actor.data.data.attributes.force.points;
|
||||
const tp = this.actor.data.data.attributes.tech.points;
|
||||
const powerCost = level + 1;
|
||||
const powerCost = id.level + 1;
|
||||
switch (id.school){
|
||||
case "lgt":
|
||||
case "uni":
|
||||
|
@ -560,10 +560,10 @@ export default class Item5e extends Item {
|
|||
}
|
||||
actorUpdates[`data.powers.${consumePowerSlot}.tvalue`] = Math.max(powers - 1, 0);
|
||||
if (tp.temp >= powerCost) {
|
||||
actorUpdates["data.attributes.force.points.temp"] = tp.temp - powerCost;
|
||||
actorUpdates["data.attributes.tech.points.temp"] = tp.temp - powerCost;
|
||||
}else{
|
||||
actorUpdates["data.attributes.force.points.value"] = tp.value + tp.temp - powerCost;
|
||||
actorUpdates["data.attributes.force.points.temp"] = 0;
|
||||
actorUpdates["data.attributes.tech.points.value"] = tp.value + tp.temp - powerCost;
|
||||
actorUpdates["data.attributes.tech.points.temp"] = 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -265,7 +265,7 @@ function _migrateActorPowers(actorData, updateData) {
|
|||
const ad = actorData.data;
|
||||
|
||||
// If new Force & Tech data is not present, create it
|
||||
const hasNewAttrib = ad?.attributes?.force?.level !== undefined;
|
||||
let hasNewAttrib = ad?.attributes?.force?.level !== undefined;
|
||||
if ( !hasNewAttrib ) {
|
||||
updateData["data.attributes.force.known.value"] = 0;
|
||||
updateData["data.attributes.force.known.min"] = 0;
|
||||
|
@ -288,8 +288,8 @@ function _migrateActorPowers(actorData, updateData) {
|
|||
}
|
||||
|
||||
// If new Power F/T split data is not present, create it
|
||||
let hasNewBonus = ad?.powers?.power1?.fvalue !== undefined;
|
||||
if ( !hasNewBonus ) {
|
||||
const hasNewLimit = ad?.powers?.power1?.fvalue !== undefined;
|
||||
if ( !hasNewLimit ) {
|
||||
for (let i = 1; i <= 9; i++) {
|
||||
// add new
|
||||
updateData["data.powers.power" + i + ".fvalue"] = 0;
|
||||
|
@ -302,7 +302,7 @@ function _migrateActorPowers(actorData, updateData) {
|
|||
}
|
||||
}
|
||||
// If new Bonus Power DC data is not present, create it
|
||||
hasNewBonus = ad?.bonuses?.power?.forceLightDC !== undefined;
|
||||
const hasNewBonus = ad?.bonuses?.power?.forceLightDC !== undefined;
|
||||
if ( !hasNewBonus ) {
|
||||
updateData["data.bonuses.power.forceLightDC"] = "";
|
||||
updateData["data.bonuses.power.forceDarkDC"] = "";
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue