forked from GitHub-Mirrors/foundry-sw5e
Cleaned up actor
This commit is contained in:
parent
2a7e1c419e
commit
6295de9fd6
1 changed files with 38 additions and 36 deletions
|
@ -342,15 +342,13 @@ export default class Actor5e extends Actor {
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prepare starship type-specific data
|
* Prepare starship type-specific data
|
||||||
* @param actorData
|
* @param actorData
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
_prepareStarshipData(actorData) {
|
_prepareStarshipData(actorData) {
|
||||||
const data = actorData.data;
|
const data = actorData.data;
|
||||||
|
|
||||||
// Proficiency
|
// Proficiency
|
||||||
data.attributes.prof = Math.floor((Math.max(data.details.tier, 1) + 7) / 4);
|
data.attributes.prof = Math.floor((Math.max(data.details.tier, 1) + 7) / 4);
|
||||||
|
@ -547,31 +545,33 @@ export default class Actor5e extends Actor {
|
||||||
break; }
|
break; }
|
||||||
}
|
}
|
||||||
|
|
||||||
// EXCEPTION: multi-classed progression uses multi rounded down rather than levels
|
if (isNPC) {
|
||||||
// TODO: This could be cleaned up a little, one change at a time though
|
// EXCEPTION: NPC with an explicit power-caster level
|
||||||
if (!isNPC && forceProgression.classes > 1) {
|
if (ad.details.powerForceLevel) {
|
||||||
forceProgression.levels = Math.floor(forceProgression.multi);
|
forceProgression.levels = ad.details.powerForceLevel;
|
||||||
forceProgression.maxClassPowerLevel = SW5E.powerMaxLevel['multi'][forceProgression.levels - 1];
|
ad.attributes.force.level = forceProgression.levels;
|
||||||
}
|
forceProgression.maxClass = ad.attributes.powercasting;
|
||||||
if (!isNPC && techProgression.classes > 1) {
|
forceProgression.maxClassPowerLevel = SW5E.powerMaxLevel[forceProgression.maxClass][Math.clamped((forceProgression.levels - 1), 0, 20)];
|
||||||
techProgression.levels = Math.floor(techProgression.multi);
|
}
|
||||||
techProgression.maxClassPowerLevel = SW5E.powerMaxLevel['multi'][techProgression.levels - 1];
|
if (ad.details.powerTechLevel) {
|
||||||
}
|
techProgression.levels = ad.details.powerTechLevel;
|
||||||
|
ad.attributes.tech.level = techProgression.levels;
|
||||||
// EXCEPTION: NPC with an explicit power-caster level
|
techProgression.maxClass = ad.attributes.powercasting;
|
||||||
if (isNPC && ad.details.powerForceLevel) {
|
techProgression.maxClassPowerLevel = SW5E.powerMaxLevel[techProgression.maxClass][Math.clamped((techProgression.levels - 1), 0, 20)];
|
||||||
forceProgression.levels = ad.details.powerForceLevel;
|
}
|
||||||
ad.attributes.force.level = forceProgression.levels;
|
} else {
|
||||||
forceProgression.maxClass = ad.attributes.powercasting;
|
// EXCEPTION: multi-classed progression uses multi rounded down rather than levels
|
||||||
forceProgression.maxClassPowerLevel = SW5E.powerMaxLevel[forceProgression.maxClass][Math.clamped((forceProgression.levels - 1), 0, 20)];
|
if (forceProgression.classes > 1) {
|
||||||
}
|
forceProgression.levels = Math.floor(forceProgression.multi);
|
||||||
if (isNPC && ad.details.powerTechLevel) {
|
forceProgression.maxClassPowerLevel = SW5E.powerMaxLevel['multi'][forceProgression.levels - 1];
|
||||||
techProgression.levels = ad.details.powerTechLevel;
|
}
|
||||||
ad.attributes.tech.level = techProgression.levels;
|
if (techProgression.classes > 1) {
|
||||||
techProgression.maxClass = ad.attributes.powercasting;
|
techProgression.levels = Math.floor(techProgression.multi);
|
||||||
techProgression.maxClassPowerLevel = SW5E.powerMaxLevel[techProgression.maxClass][Math.clamped((techProgression.levels - 1), 0, 20)];
|
techProgression.maxClassPowerLevel = SW5E.powerMaxLevel['multi'][techProgression.levels - 1];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Look up the number of slots per level from the powerLimit table
|
// Look up the number of slots per level from the powerLimit table
|
||||||
let forcePowerLimit = Array.from(SW5E.powerLimit['none']);
|
let forcePowerLimit = Array.from(SW5E.powerLimit['none']);
|
||||||
for (let i = 0; i < (forceProgression.maxClassPowerLevel); i++) {
|
for (let i = 0; i < (forceProgression.maxClassPowerLevel); i++) {
|
||||||
|
@ -608,18 +608,20 @@ export default class Actor5e extends Actor {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set Force and tech power for PC Actors
|
// Set Force and tech power for PC Actors
|
||||||
// TODO: Can join these !NPCs to save a whole comparison
|
if (!isNPC) {
|
||||||
if (!isNPC && forceProgression.levels){
|
if (forceProgression.levels) {
|
||||||
ad.attributes.force.known.max = forceProgression.powersKnown;
|
ad.attributes.force.known.max = forceProgression.powersKnown;
|
||||||
ad.attributes.force.points.max = forceProgression.points + Math.max(ad.abilities.wis.mod,ad.abilities.cha.mod);
|
ad.attributes.force.points.max = forceProgression.points + Math.max(ad.abilities.wis.mod, ad.abilities.cha.mod);
|
||||||
ad.attributes.force.level = forceProgression.levels;
|
ad.attributes.force.level = forceProgression.levels;
|
||||||
}
|
}
|
||||||
if (!isNPC && techProgression.levels){
|
if (techProgression.levels){
|
||||||
ad.attributes.tech.known.max = techProgression.powersKnown;
|
ad.attributes.tech.known.max = techProgression.powersKnown;
|
||||||
ad.attributes.tech.points.max = techProgression.points + ad.abilities.int.mod;
|
ad.attributes.tech.points.max = techProgression.points + ad.abilities.int.mod;
|
||||||
ad.attributes.tech.level = techProgression.levels;
|
ad.attributes.tech.level = techProgression.levels;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Tally Powers Known and check for migration first to avoid errors
|
// Tally Powers Known and check for migration first to avoid errors
|
||||||
let hasKnownPowers = actorData?.data?.attributes?.force?.known?.value !== undefined;
|
let hasKnownPowers = actorData?.data?.attributes?.force?.known?.value !== undefined;
|
||||||
if ( hasKnownPowers ) {
|
if ( hasKnownPowers ) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue