Update Starship Data with new structure

Updated to bring actor data inline with the starship class.  Still need to do derived data for starship
This commit is contained in:
supervj 2021-06-04 16:21:21 -04:00
parent a3d4bc69b0
commit 40641aed95
4 changed files with 62 additions and 22 deletions

View file

@ -357,6 +357,7 @@ export default class Actor5e extends Actor {
* @private
*/
_prepareStarshipData(actorData) {
const data = actorData.data;
// Proficiency
@ -367,24 +368,49 @@ export default class Actor5e extends Actor {
if (size.length === 0) return;
const sizeData = size[0].data;
const tiers = parseInt(sizeData.tier) || 0;
data.traits.size = sizeData.size; // needs to be the short code
data.details.tier = tiers;
data.traits.size = sizeData.size;
data.attributes.cargcap = (parseInt(sizeData.cargoCap) || 0);
data.attributes.crewcap = (parseInt(sizeData.minCrew) || 1);
data.attributes.fuel.cap = (parseInt(sizeData.fuelCap) || 5);
data.attributes.fuel.cost = sizeData.fuelCost;
data.attributes.hsm = sizeData.hardpointSizeMod;
data.attributes.hull.die = sizeData.hullDice;
data.attributes.hull.dicemax = sizeData.hullDiceStart + tiers;
data.attributes.hull.dice = sizeData.hullDiceStart + tiers - (parseInt(sizeData.hullDiceUsed) || 0);
// if hull.value .max = null then calculate them out
// push to derived since based on attributes
// data.attributes.hp.max = sizeData.hullDiceRolled[].reduce((a, b) => a + b, 0) + con.mod * hull.diceMax;
// if (data.attributes.hp.value === null) data.attributes.hp.value = data.attributes.hp.max;
data.attributes.shld.die = sizeData.shldDice;
data.attributes.shld.dicemax = sizeData.shldDiceStart + tiers;
data.attributes.shld.dice = sizeData.shldDiceStart + tiers - (parseInt(sizeData.shldDiceUsed) || 0);
// if shld.value .max = null then calculate them out
data.attributes.mods.max = sizeData.modBaseCap;
// push to derived since based on attributes
// data.attributes.hp.tempmax = sizeData.shldDiceRolled[].reduce((a, b) => a + b, 0) + str.mod * shld.diceMax;
// if (data.attributes.hp.temp === null) data.attributes.hp.temp = data.attributes.hp.tempmax;
data.attributes.pwrdice.die = SW5E.powerDieTypes[tiers];
data.attributes.cost.baseBuild = sizeData.buildBaseCost;
data.attributes.workforce.minBuild = sizeData.buildMinWorkforce;
data.attributes.workforce.max = data.attributes.workforce.minBuild * 5;
data.attributes.cost.baseUpgrade = SW5E.upgradeBaseCost[tiers];
data.attributes.cost.multUpgrade = sizeData.upgrdCostMult;
data.attributes.workforce.minUpgrade = sizeData.upgrdMinWorkforce;
// push to derived since based on attributes
// data.attributes. = sizeData.baseSpaceSpeed;
// data.attributes. = sizeData.baseTurnSpeed;
data.attributes.equip.crewMinWorkforce = (parseInt(sizeData.crewMinWorkforce) || 1);
data.attributes.mods.capLimit = sizeData.modBaseCap;
// push to derived since based on attributes
// data.attributes. = sizeData.modMaxSuitesBase;
// data.attributes. = sizeData.modMaxSuitesMult;
data.attributes.mods.suites.cap = sizeData.modMaxSuiteCap;
data.attributes.cost.multModification = sizeData.modCostMult;
data.attributes.workforce.minModification = sizeData.modMinWorkforce;
// push to derived since based on attributes
// data.attributes. = sizeData.hardpointMult;
data.attributes.cost.multEquip = sizeData.equipCostMult;
data.attributes.workforce.minEquip = sizeData.equipMinWorkforce;
data.attributes.equip.cargoCap = sizeData.cargoCap;
data.attributes.fuel.cost = sizeData.fuelCost;
data.attributes.fuel.value = sizeData.fuelCap;
data.attributes.equip.foodCap = sizeData.foodCap;
// push to derived since based on attributes
// Link hull to hp and shields to temp hp
//data.attributes.hull.value = data.attributes.hp.value;
//data.attributes.hull.max = data.attributes.hp.max;

View file

@ -1,6 +1,6 @@
{"_id":"6BN8l5E8QtYt103T","name":"Small Starship","permission":{"default":0,"yXqD5rPwgjXHtqeZ":3},"type":"starship","data":{"description":{"value":null},"size":"Small","tier":0,"hullDice":"d6","hullDiceStart":3,"hullDiceRolled":[6,4,4],"hullDiceUsed":0,"shldDice":"d6","shldDiceStart":3,"shldDiceRolled":[6,4,4],"shldDiceUsed":0,"pwrDice":"1","constBaseCost":50000,"constMinWorkforce":5,"upgrdCostMult":1,"upgrdMinWorkforce":1,"baseSpaceSpeed":300,"baseTurnSpeed":250,"crewMinWorkforce":1,"modBaseCap":20,"modMaxSuitesBase":-1,"modMaxSuitesMult":1,"modMaxSuiteCap":1,"modCostMult":1,"modMinWorkforce":2,"hardpointMult":2,"equipCostMult":1,"equipMinWorkforce":1,"cargoCap":2,"fuelCost":50,"fuelCap":10,"foodCap":10,"source":"SotG"},"flags":{},"img":"systems/sw5e/packs/Icons/Starship%20Features/Small.webp","effects":[]}
{"_id":"6liD1m4hqKSeS5sp","name":"Medium Starship","permission":{"default":0,"yXqD5rPwgjXHtqeZ":3},"type":"starship","data":{"description":{"value":null},"size":"Medium","tier":0,"hullDice":"d8","hullDiceStart":5,"hullDiceRolled":[8,5,5,5,5],"hullDiceUsed":0,"shldDice":"d8","shldDiceStart":5,"shldDiceRolled":[8,5,5,5,5],"shldDiceUsed":0,"pwrDice":"1","constBaseCost":100000,"constMinWorkforce":10,"upgrdCostMult":2,"upgrdMinWorkforce":5,"baseSpaceSpeed":300,"baseTurnSpeed":200,"crewMinWorkforce":1,"modBaseCap":30,"modMaxSuitesBase":3,"modMaxSuitesMult":1,"modMaxSuiteCap":4,"modCostMult":2,"modMinWorkforce":4,"hardpointMult":3,"equipCostMult":2,"equipMinWorkforce":2,"cargoCap":25,"fuelCost":100,"fuelCap":30,"foodCap":120,"source":"SotG"},"flags":{},"img":"systems/sw5e/packs/Icons/Starship%20Features/Medium.webp","effects":[]}
{"_id":"FH8iBT4uujRUR0j7","name":"Gargantuan Starship","permission":{"default":0,"yXqD5rPwgjXHtqeZ":3},"type":"starship","data":{"description":{"value":null},"size":"Gargantuan","tier":0,"hullDice":"d20","hullDiceStart":11,"hullDiceRolled":[20,11,11,11,11,11,11,11,11,11,11],"hullDiceUsed":0,"shldDice":"d20","shldDiceStart":11,"shldDiceRolled":[20,11,11,11,11,11,11,11,11,11,11],"shldDiceUsed":0,"pwrDice":"1","constBaseCost":1000000000,"constMinWorkforce":10000,"upgrdCostMult":1000,"upgrdMinWorkforce":5000,"baseSpaceSpeed":300,"baseTurnSpeed":50,"crewMinWorkforce":80000,"modBaseCap":70,"modMaxSuitesBase":10,"modMaxSuitesMult":4,"modMaxSuiteCap":40000,"modCostMult":500,"modMinWorkforce":1000,"hardpointMult":3,"equipCostMult":500,"equipMinWorkforce":500,"cargoCap":200000,"fuelCost":100000,"fuelCap":1800,"foodCap":576000000,"source":"SotG"},"flags":{},"img":"systems/sw5e/packs/Icons/Starship%20Features/Gargantuan.webp","effects":[]}
{"_id":"RFKvLuqE13INBxqd","name":"Large Starship","permission":{"default":0,"yXqD5rPwgjXHtqeZ":3},"type":"starship","data":{"description":{"value":null},"size":"Large","tier":0,"hullDice":"d10","hullDiceStart":7,"hullDiceRolled":[10,6,6,6,6,6,6],"hullDiceUsed":0,"shldDice":"d10","shldDiceStart":7,"shldDiceRolled":[10,6,6,6,6,6,6],"shldDiceUsed":0,"pwrDice":"1","constBaseCost":1000000,"constMinWorkforce":100,"upgrdCostMult":10,"upgrdMinWorkforce":50,"baseSpaceSpeed":300,"baseTurnSpeed":150,"crewMinWorkforce":200,"modBaseCap":50,"modMaxSuitesBase":3,"modMaxSuitesMult":2,"modMaxSuiteCap":400,"modCostMult":5,"modMinWorkforce":10,"hardpointMult":4,"equipCostMult":5,"equipMinWorkforce":5,"cargoCap":500,"fuelCost":1000,"fuelCap":300,"foodCap":240000,"source":"SotG"},"flags":{},"img":"systems/sw5e/packs/Icons/Starship%20Features/Large.webp","effects":[]}
{"_id":"pgmf0rMYLt4LQtfN","name":"Huge Starship","permission":{"default":0,"yXqD5rPwgjXHtqeZ":3},"type":"starship","data":{"description":{"value":null},"size":"Huge","tier":0,"hullDice":"d12","hullDiceStart":9,"hullDiceRolled":[12,7,7,7,7,7,7,7,7],"hullDiceUsed":0,"shldDice":"d12","shldDiceStart":9,"shldDiceRolled":[12,7,7,7,7,7,7,7,7],"shldDiceUsed":0,"pwrDice":"1","constBaseCost":100000000,"constMinWorkforce":1000,"upgrdCostMult":100,"upgrdMinWorkforce":500,"baseSpaceSpeed":300,"baseTurnSpeed":100,"crewMinWorkforce":4000,"modBaseCap":60,"modMaxSuitesBase":6,"modMaxSuitesMult":3,"modMaxSuiteCap":4000,"modCostMult":50,"modMinWorkforce":100,"hardpointMult":2,"equipCostMult":50,"equipMinWorkforce":50,"cargoCap":10000,"fuelCost":10000,"fuelCap":600,"foodCap":9600000,"source":"SotG"},"flags":{},"img":"systems/sw5e/packs/Icons/Starship%20Features/Huge.webp","effects":[]}
{"_id":"zC4qM8JMmMzCjMJK","name":"Tiny Starship","permission":{"default":0,"yXqD5rPwgjXHtqeZ":3},"type":"starship","data":{"description":{"value":null},"size":"Tiny","tier":0,"hullDice":"d4","hullDiceStart":1,"hullDiceRolled":[4],"hullDiceUsed":0,"shldDice":"d4","shldDiceStart":1,"shldDiceRolled":[4],"shldDiceUsed":0,"pwrDice":"1","constBaseCost":10000,"constMinWorkforce":3,"upgrdCostMult":0.5,"upgrdMinWorkforce":1,"baseSpaceSpeed":300,"baseTurnSpeed":300,"crewMinWorkforce":0,"modBaseCap":10,"modMaxSuitesBase":0,"modMaxSuitesMult":0,"modMaxSuiteCap":0,"modCostMult":0.5,"modMinWorkforce":1,"hardpointMult":1,"equipCostMult":0.5,"equipMinWorkforce":1,"cargoCap":0,"fuelCost":25,"fuelCap":5,"foodCap":0,"source":"SotG"},"flags":{},"img":"systems/sw5e/packs/Icons/Starship%20Features/Tiny.webp","effects":[]}
{"_id":"6BN8l5E8QtYt103T","name":"Small Starship","permission":{"default":0,"yXqD5rPwgjXHtqeZ":3},"type":"starship","data":{"description":{"value":null},"size":"Small","tier":0,"hullDice":"d6","hullDiceStart":3,"hullDiceRolled":[6,4,4],"hullDiceUsed":0,"shldDice":"d6","shldDiceStart":3,"shldDiceRolled":[6,4,4],"shldDiceUsed":0,"pwrDice":"1","buildBaseCost":50000,"buildMinWorkforce":5,"upgrdCostMult":1,"upgrdMinWorkforce":1,"baseSpaceSpeed":300,"baseTurnSpeed":250,"crewMinWorkforce":1,"modBaseCap":20,"modMaxSuitesBase":-1,"modMaxSuitesMult":1,"modMaxSuiteCap":1,"modCostMult":1,"modMinWorkforce":2,"hardpointMult":2,"equipCostMult":1,"equipMinWorkforce":1,"cargoCap":2,"fuelCost":50,"fuelCap":10,"foodCap":10,"source":"SotG"},"flags":{},"img":"systems/sw5e/packs/Icons/Starship%20Features/Small.webp","effects":[]}
{"_id":"6liD1m4hqKSeS5sp","name":"Medium Starship","permission":{"default":0,"yXqD5rPwgjXHtqeZ":3},"type":"starship","data":{"description":{"value":null},"size":"Medium","tier":0,"hullDice":"d8","hullDiceStart":5,"hullDiceRolled":[8,5,5,5,5],"hullDiceUsed":0,"shldDice":"d8","shldDiceStart":5,"shldDiceRolled":[8,5,5,5,5],"shldDiceUsed":0,"pwrDice":"1","buildBaseCost":100000,"buildMinWorkforce":10,"upgrdCostMult":2,"upgrdMinWorkforce":5,"baseSpaceSpeed":300,"baseTurnSpeed":200,"crewMinWorkforce":1,"modBaseCap":30,"modMaxSuitesBase":3,"modMaxSuitesMult":1,"modMaxSuiteCap":4,"modCostMult":2,"modMinWorkforce":4,"hardpointMult":3,"equipCostMult":2,"equipMinWorkforce":2,"cargoCap":25,"fuelCost":100,"fuelCap":30,"foodCap":120,"source":"SotG"},"flags":{},"img":"systems/sw5e/packs/Icons/Starship%20Features/Medium.webp","effects":[]}
{"_id":"FH8iBT4uujRUR0j7","name":"Gargantuan Starship","permission":{"default":0,"yXqD5rPwgjXHtqeZ":3},"type":"starship","data":{"description":{"value":null},"size":"Gargantuan","tier":0,"hullDice":"d20","hullDiceStart":11,"hullDiceRolled":[20,11,11,11,11,11,11,11,11,11,11],"hullDiceUsed":0,"shldDice":"d20","shldDiceStart":11,"shldDiceRolled":[20,11,11,11,11,11,11,11,11,11,11],"shldDiceUsed":0,"pwrDice":"1","buildBaseCost":1000000000,"buildMinWorkforce":10000,"upgrdCostMult":1000,"upgrdMinWorkforce":5000,"baseSpaceSpeed":300,"baseTurnSpeed":50,"crewMinWorkforce":80000,"modBaseCap":70,"modMaxSuitesBase":10,"modMaxSuitesMult":4,"modMaxSuiteCap":40000,"modCostMult":500,"modMinWorkforce":1000,"hardpointMult":3,"equipCostMult":500,"equipMinWorkforce":500,"cargoCap":200000,"fuelCost":100000,"fuelCap":1800,"foodCap":576000000,"source":"SotG"},"flags":{},"img":"systems/sw5e/packs/Icons/Starship%20Features/Gargantuan.webp","effects":[]}
{"_id":"RFKvLuqE13INBxqd","name":"Large Starship","permission":{"default":0,"yXqD5rPwgjXHtqeZ":3},"type":"starship","data":{"description":{"value":null},"size":"Large","tier":0,"hullDice":"d10","hullDiceStart":7,"hullDiceRolled":[10,6,6,6,6,6,6],"hullDiceUsed":0,"shldDice":"d10","shldDiceStart":7,"shldDiceRolled":[10,6,6,6,6,6,6],"shldDiceUsed":0,"pwrDice":"1","buildBaseCost":1000000,"buildMinWorkforce":100,"upgrdCostMult":10,"upgrdMinWorkforce":50,"baseSpaceSpeed":300,"baseTurnSpeed":150,"crewMinWorkforce":200,"modBaseCap":50,"modMaxSuitesBase":3,"modMaxSuitesMult":2,"modMaxSuiteCap":400,"modCostMult":5,"modMinWorkforce":10,"hardpointMult":4,"equipCostMult":5,"equipMinWorkforce":5,"cargoCap":500,"fuelCost":1000,"fuelCap":300,"foodCap":240000,"source":"SotG"},"flags":{},"img":"systems/sw5e/packs/Icons/Starship%20Features/Large.webp","effects":[]}
{"_id":"pgmf0rMYLt4LQtfN","name":"Huge Starship","permission":{"default":0,"yXqD5rPwgjXHtqeZ":3},"type":"starship","data":{"description":{"value":null},"size":"Huge","tier":0,"hullDice":"d12","hullDiceStart":9,"hullDiceRolled":[12,7,7,7,7,7,7,7,7],"hullDiceUsed":0,"shldDice":"d12","shldDiceStart":9,"shldDiceRolled":[12,7,7,7,7,7,7,7,7],"shldDiceUsed":0,"pwrDice":"1","buildBaseCost":100000000,"buildMinWorkforce":1000,"upgrdCostMult":100,"upgrdMinWorkforce":500,"baseSpaceSpeed":300,"baseTurnSpeed":100,"crewMinWorkforce":4000,"modBaseCap":60,"modMaxSuitesBase":6,"modMaxSuitesMult":3,"modMaxSuiteCap":4000,"modCostMult":50,"modMinWorkforce":100,"hardpointMult":2,"equipCostMult":50,"equipMinWorkforce":50,"cargoCap":10000,"fuelCost":10000,"fuelCap":600,"foodCap":9600000,"source":"SotG"},"flags":{},"img":"systems/sw5e/packs/Icons/Starship%20Features/Huge.webp","effects":[]}
{"_id":"zC4qM8JMmMzCjMJK","name":"Tiny Starship","permission":{"default":0,"yXqD5rPwgjXHtqeZ":3},"type":"starship","data":{"description":{"value":null},"size":"Tiny","tier":0,"hullDice":"d4","hullDiceStart":1,"hullDiceRolled":[4],"hullDiceUsed":0,"shldDice":"d4","shldDiceStart":1,"shldDiceRolled":[4],"shldDiceUsed":0,"pwrDice":"1","buildBaseCost":10000,"buildMinWorkforce":3,"upgrdCostMult":0.5,"upgrdMinWorkforce":1,"baseSpaceSpeed":300,"baseTurnSpeed":300,"crewMinWorkforce":0,"modBaseCap":10,"modMaxSuitesBase":0,"modMaxSuitesMult":0,"modMaxSuiteCap":0,"modCostMult":0.5,"modMinWorkforce":1,"hardpointMult":1,"equipCostMult":0.5,"equipMinWorkforce":1,"cargoCap":0,"fuelCost":25,"fuelCap":5,"foodCap":0,"source":"SotG"},"flags":{},"img":"systems/sw5e/packs/Icons/Starship%20Features/Tiny.webp","effects":[]}

View file

@ -37,8 +37,8 @@
"value": 10,
"min": 0,
"max": 10,
"temp": 0,
"tempmax": 0
"temp": null,
"tempmax": null
},
"init": {
"value": 0,
@ -416,6 +416,13 @@
"starship": {
"templates": ["common"],
"attributes": {
"cost": {
"baseBuild": 0,
"baseUpgrade": 0,
"multEquip": 0,
"multModification": 0,
"multUpgrade": 0
},
"death": {
"failure": 0,
"success": 0
@ -514,7 +521,14 @@
"value": null,
"max": null
},
"used": false
"used": false,
"workforce": {
"max": 0,
"minBuild": 0,
"minEquip": 0,
"minModification": 0,
"minUpgrade": 0
}
},
"details": {
"tier": 0,
@ -1058,8 +1072,8 @@
"shldDiceRolled":[6,4,4],
"shldDiceUsed": 0,
"pwrDice": "1",
"constBaseCost": 50000,
"constMinWorkforce": 5,
"buildBaseCost": 50000,
"buildMinWorkforce": 5,
"upgrdCostMult": 1,
"upgrdMinWorkforce": 1,
"baseSpaceSpeed": 300,

View file

@ -122,14 +122,14 @@
<div class="form-group">
<label>{{localize "SW5E.StockCost"}}</label>
<div class="form-fields">
<input type="text" placeholder="0" name="data.constBaseCost" value="{{data.constBaseCost}}" data-dtype="Number"/>
<input type="text" placeholder="0" name="data.buildBaseCost" value="{{data.buildBaseCost}}" data-dtype="Number"/>
</div>
</div>
<div class="form-group">
<label>{{localize "SW5E.MinConstWorkforce"}}</label>
<div class="form-fields">
<input type="text" placeholder="0" name="data.constMinWorkforce" value="{{data.constMinWorkforce}}" data-dtype="Number"/>
<input type="text" placeholder="0" name="data.buildMinWorkforce" value="{{data.buildMinWorkforce}}" data-dtype="Number"/>
</div>
</div>