forked from GitHub-Mirrors/foundry-sw5e
Created Starship Deployment on actor drop
This lets actors drop onto ships. It mostly works data wise. Tokens are stored separately from characters at this point, need to bring that part in from polymorph. Actors dropped do not appear on character sheet
This commit is contained in:
parent
18f11013c1
commit
516e6a0bd1
7 changed files with 228 additions and 154 deletions
10
lang/en.json
10
lang/en.json
|
@ -298,7 +298,17 @@
|
||||||
"SW5E.Default": "Default",
|
"SW5E.Default": "Default",
|
||||||
"SW5E.DefaultAbilityCheck": "Default Ability Check",
|
"SW5E.DefaultAbilityCheck": "Default Ability Check",
|
||||||
"SW5E.Deployment": "Deployment",
|
"SW5E.Deployment": "Deployment",
|
||||||
|
"SW5E.DeploymentAcceptSettings": "Deploy Actor",
|
||||||
"SW5E.DeploymentPl": "Deployments",
|
"SW5E.DeploymentPl": "Deployments",
|
||||||
|
"SW5E.DeploymentPromptTitle": "Deploying Actor",
|
||||||
|
"SW5E.DeploymentTypeCoordinator": "Coordinator",
|
||||||
|
"SW5E.DeploymentTypeCrew": "Crew",
|
||||||
|
"SW5E.DeploymentTypeGunner": "Gunner",
|
||||||
|
"SW5E.DeploymentTypeMechanic": "Mechanic",
|
||||||
|
"SW5E.DeploymentTypeOperator": "Operator",
|
||||||
|
"SW5E.DeploymentTypePilot": "Pilot",
|
||||||
|
"SW5E.DeploymentTypePassenger" : "Passenger",
|
||||||
|
"SW5E.DeploymentTypeTechnician": "Technician",
|
||||||
"SW5E.description": "A comprehensive game system for running games of Star Wars 5th Edition in the Foundry VTT environment.",
|
"SW5E.description": "A comprehensive game system for running games of Star Wars 5th Edition in the Foundry VTT environment.",
|
||||||
"SW5E.Description": "Description",
|
"SW5E.Description": "Description",
|
||||||
"SW5E.DestructionSave": "Destruction Saves",
|
"SW5E.DestructionSave": "Destruction Saves",
|
||||||
|
|
|
@ -1713,6 +1713,87 @@ export default class Actor5e extends Actor {
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Deploy an Actor into this one.
|
||||||
|
*
|
||||||
|
* @param {Actor} target The Actor to be deployed.
|
||||||
|
* @param {boolean} [coord] Deploy as Coordinator
|
||||||
|
* @param {boolean} [gunner] Deploy as Gunner
|
||||||
|
* @param {boolean} [mech] Deploy as Mechanic
|
||||||
|
* @param {boolean} [oper] Deploy as Operator
|
||||||
|
* @param {boolean} [pilot] Deploy as Pilot
|
||||||
|
* @param {boolean} [tech] Deploy as Technician
|
||||||
|
* @param {boolean} [crew] Deploy as Crew
|
||||||
|
* @param {boolean} [pass] Deploy as Passenger
|
||||||
|
*/
|
||||||
|
async deployInto(target, { coord=false, gunner=false, mech=false, oper=false,
|
||||||
|
pilot=false, tech=false, crew=false, pass=false}={}) {
|
||||||
|
|
||||||
|
// Get the starship Actor data and the new char data
|
||||||
|
const sship = duplicate(this.toJSON());
|
||||||
|
const ssDeploy = sship.data.attributes.deployment;
|
||||||
|
const char = target;
|
||||||
|
const charUUID = char.uuid;
|
||||||
|
const charName = char.data.name;
|
||||||
|
const charRank = char.data.data.attributes.rank;
|
||||||
|
let charProf = 0;
|
||||||
|
if (charRank.total > 0) {
|
||||||
|
charProf = char.data.data.attributes.prof;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (coord){
|
||||||
|
ssDeploy.coord.uuid = charUUID;
|
||||||
|
ssDeploy.coord.name = charName;
|
||||||
|
ssDeploy.coord.rank = charRank.coord;
|
||||||
|
ssDeploy.coord.prof = charProf;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gunner){
|
||||||
|
ssDeploy.gunner.uuid = charUUID;
|
||||||
|
ssDeploy.gunner.name = charName;
|
||||||
|
ssDeploy.gunner.rank = charRank.gunner;
|
||||||
|
ssDeploy.gunner.prof = charProf;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mech){
|
||||||
|
ssDeploy.mechanic.uuid = charUUID;
|
||||||
|
ssDeploy.mechanic.name = charName;
|
||||||
|
ssDeploy.mechanic.rank = charRank.mechanic;
|
||||||
|
ssDeploy.mechanic.prof = charProf;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (oper){
|
||||||
|
ssDeploy.operator.uuid = charUUID;
|
||||||
|
ssDeploy.operator.name = charName;
|
||||||
|
ssDeploy.operator.rank = charRank.operator;
|
||||||
|
ssDeploy.operator.prof = charProf;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pilot){
|
||||||
|
ssDeploy.pilot.uuid = charUUID;
|
||||||
|
ssDeploy.pilot.name = charName;
|
||||||
|
ssDeploy.pilot.rank = charRank.pilot;
|
||||||
|
ssDeploy.pilot.prof = charProf;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (tech){
|
||||||
|
ssDeploy.technician.uuid = charUUID;
|
||||||
|
ssDeploy.technician.name = charName;
|
||||||
|
ssDeploy.technician.rank = charRank.technician;
|
||||||
|
ssDeploy.technician.prof = charProf;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (crew){
|
||||||
|
ssDeploy.crew.push({"uuid": charUUID, "name": charName, "rank": charRank, "prof": charProf});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pass){
|
||||||
|
ssDeploy.passenger.push({"uuid": charUUID, "name": charName, "rank": charRank, "prof": charProf});
|
||||||
|
}
|
||||||
|
this.update({"data.attributes.deployment": ssDeploy});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Transform this Actor into another one.
|
* Transform this Actor into another one.
|
||||||
*
|
*
|
||||||
|
|
|
@ -535,7 +535,7 @@ export default class ActorSheet5e extends ActorSheet {
|
||||||
|
|
||||||
/** @override */
|
/** @override */
|
||||||
async _onDropActor(event, data) {
|
async _onDropActor(event, data) {
|
||||||
const canPolymorph = game.user.isGM || (this.actor.owner && game.settings.get('sw5e', 'allowPolymorphing'));
|
const canPolymorph = game.user.isGM || (this.actor.data.type === "starship") || (this.actor.owner && game.settings.get('sw5e', 'allowPolymorphing'));
|
||||||
if ( !canPolymorph ) return false;
|
if ( !canPolymorph ) return false;
|
||||||
|
|
||||||
// Get the target actor
|
// Get the target actor
|
||||||
|
@ -560,6 +560,32 @@ export default class ActorSheet5e extends ActorSheet {
|
||||||
};
|
};
|
||||||
|
|
||||||
// Create and render the Dialog
|
// Create and render the Dialog
|
||||||
|
|
||||||
|
if (this.actor.data.type === "starship") {
|
||||||
|
return new Dialog({
|
||||||
|
title: game.i18n.localize('SW5E.DeploymentPromptTitle') + " " + sourceActor.data.name + " into " + this.actor.data.name,
|
||||||
|
content: {
|
||||||
|
i18n: SW5E.deploymentTypes,
|
||||||
|
isToken: this.actor.isToken
|
||||||
|
},
|
||||||
|
default: 'accept',
|
||||||
|
buttons: {
|
||||||
|
deploy: {
|
||||||
|
icon: '<i class="fas fa-check"></i>',
|
||||||
|
label: game.i18n.localize('SW5E.DeploymentAcceptSettings'),
|
||||||
|
callback: html => this.actor.deployInto(sourceActor, rememberOptions(html))
|
||||||
|
},
|
||||||
|
cancel: {
|
||||||
|
icon: '<i class="fas fa-times"></i>',
|
||||||
|
label: game.i18n.localize('Cancel')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
classes: ['dialog', 'sw5e'],
|
||||||
|
width: 600,
|
||||||
|
template: 'systems/sw5e/templates/apps/deployment-prompt.html'
|
||||||
|
}).render(true);
|
||||||
|
} else {
|
||||||
return new Dialog({
|
return new Dialog({
|
||||||
title: game.i18n.localize('SW5E.PolymorphPromptTitle'),
|
title: game.i18n.localize('SW5E.PolymorphPromptTitle'),
|
||||||
content: {
|
content: {
|
||||||
|
@ -604,6 +630,7 @@ export default class ActorSheet5e extends ActorSheet {
|
||||||
template: 'systems/sw5e/templates/apps/polymorph-prompt.html'
|
template: 'systems/sw5e/templates/apps/polymorph-prompt.html'
|
||||||
}).render(true);
|
}).render(true);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
|
|
||||||
|
|
110
module/config.js
110
module/config.js
|
@ -501,112 +501,22 @@ SW5E.baseUpgradeCost = [0, 3900, 77500, 297000, 620000, 1150000];
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Enumerate the base stat and feature settings for starships based on size.
|
* Starship Deployment types
|
||||||
* @type {Array.<string>}
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
SW5E.baseStarshipSettings = {
|
SW5E.deploymentTypes = {
|
||||||
"tiny": {"changes":[{"key":"data.abilities.dex.value","value":4,"mode":2,"priority":20},{"key":"data.abilities.dex.proficient","value":1,"mode":4,"priority":20}, {"key":"data.abilities.con.value","value":-4,"mode":2,"priority":20}, {"key":"data.abilities.int.proficient","value":1,"mode":4,"priority":20}], "attributes":{"crewcap":null, "hd":"1d4", "hp":{"value":4, "max":4, "temp":4, "tempmax":4}, "hsm":1, "sd":"1d4", "mods":{"open":10, "max":10}, "suites":{"open":0, "max":0}, "movement":{"fly":300, "turn":300}}},
|
"coord": "SW5E.DeploymentTypeCoordinator",
|
||||||
"sm": {"changes":[{"key":"data.abilities.dex.value","value":2,"mode":2,"priority":20},{"key":"data.abilities.dex.proficient","value":1,"mode":4,"priority":20},{"key":"data.abilities.con.value","value":-2,"mode":2,"priority":20},{"key":"data.abilities.str.proficient","value":1,"mode":4,"priority":20}], "attributes":{"crewcap":1, "hd":"3d6", "hp":{"value":6, "max":6, "temp":6, "tempmax":6}, "hsm":2, "sd":"3d6", "mods":{"open":20, "max":20}, "suites":{"open":-1, "max":-1}, "movement":{"fly":300, "turn":250}}},
|
"gunner": "SW5E.DeploymentTypeGunner",
|
||||||
"med": {"attributes":{"crewcap":1, "hd":"5d8", "hp":{"value":8, "max":8, "temp":8, "tempmax":8}, "hsm":3, "sd":"5d8", "mods":{"open":30, "max":30}, "suites":{"open":3, "max":3}, "movement":{"fly":300, "turn":200}}},
|
"mech": "SW5E.DeploymentTypeMechanic",
|
||||||
"lg": {"changes":[{"key":"data.abilities.dex.value","value":-2,"mode":2,"priority":20},{"key":"data.abilities.wis.proficient","value":1,"mode":4,"priority":20},{"key":"data.abilities.con.value","value":2,"mode":2,"priority":20}], "attributes":{"crewcap":200, "hd":"7d10", "hp":{"value":10, "max":10, "temp":10, "tempmax":10}, "hsm":4, "sd":"7d10", "mods":{"open":50, "max":50}, "suites":{"open":3, "max":3}, "movement":{"fly":300, "turn":150}}},
|
"oper": "SW5E.DeploymentTypeOperator",
|
||||||
"huge": {"changes":[{"key":"data.abilities.dex.value","value":-4,"mode":2,"priority":20},{"key":"data.abilities.wis.proficient","value":1,"mode":4,"priority":20},{"key":"data.abilities.con.value","value":4,"mode":2,"priority":20}], "attributes":{"crewcap":4000, "hd":"9d12", "hp":{"value":12, "max":12, "temp":12, "tempmax":12}, "hsm":2, "sd":"9d12", "mods":{"open":60, "max":60}, "suites":{"open":6, "max":6}, "movement":{"fly":300, "turn":100}}},
|
"pilot": "SW5E.DeploymentTypePilot",
|
||||||
"grg": {"changes":[{"key":"data.abilities.dex.value","value":-6,"mode":2,"priority":20},{"key":"data.abilities.wis.proficient","value":1,"mode":4,"priority":20},{"key":"data.abilities.con.value","value":6,"mode":2,"priority":20}], "attributes":{"crewcap":80000, "hd":"11d20", "hp":{"value":20, "max":20, "temp":20, "tempmax":20}, "hsm":3, "sd":"11d20", "mods":{"open":70, "max":70}, "suites":{"open":10, "max":10}, "movement":{"fly":300, "turn":50}}}
|
"tech": "SW5E.DeploymentTypeTechnician",
|
||||||
}
|
"crew": "SW5E.DeploymentTypeCrew",
|
||||||
|
"pass": "SW5E.DeploymentTypePassenger"
|
||||||
/* -------------------------------------------- */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The set of starship roles which can be selected in SW5e
|
|
||||||
* @type {Object}
|
|
||||||
*/
|
|
||||||
|
|
||||||
SW5E.starshipRolestiny = {
|
|
||||||
};
|
|
||||||
SW5E.starshipRolessm = {
|
|
||||||
"bmbr": "SW5E.StarshipBomber",
|
|
||||||
"intc": "SW5E.StarshipInterceptor",
|
|
||||||
"scout": "SW5E.StarshipScout",
|
|
||||||
"scrm": "SW5E.StarshipScrambler",
|
|
||||||
"shtl": "SW5E.StarshipShuttle",
|
|
||||||
"strf": "SW5E.StarshipStrikeFighter"
|
|
||||||
};
|
|
||||||
SW5E.starshipRolesmed = {
|
|
||||||
"cour": "SW5E.StarshipCourier",
|
|
||||||
"frtr": "SW5E.StarshipFreighter",
|
|
||||||
"gnbt": "SW5E.StarshipGunboat",
|
|
||||||
"msbt": "SW5E.StarshipMissileBoat",
|
|
||||||
"nvgt": "SW5E.StarshipNavigator",
|
|
||||||
"yacht": "SW5E.StarshipYacht"
|
|
||||||
};
|
|
||||||
SW5E.starshipRoleslg = {
|
|
||||||
"ambd": "SW5E.StarshipAmbassador",
|
|
||||||
"corv": "SW5E.StarshipCorvette",
|
|
||||||
"crui": "SW5E.StarshipCruiser",
|
|
||||||
"expl": "SW5E.StarshipExplorer",
|
|
||||||
"pics": "SW5E.StarshipPicketShip",
|
|
||||||
"shtd": "SW5E.StarshipShipsTender"
|
|
||||||
};
|
|
||||||
SW5E.starshipRoleshuge = {
|
|
||||||
"btls": "SW5E.StarshipBattleship",
|
|
||||||
"carr": "SW5E.StarshipCarrier",
|
|
||||||
"colo": "SW5E.StarshipColonizer",
|
|
||||||
"cmds": "SW5E.StarshipCommandShip",
|
|
||||||
"intd": "SW5E.StarshipInterdictor",
|
|
||||||
"jugg": "SW5E.StarshipJuggernaut"
|
|
||||||
};
|
|
||||||
SW5E.starshipRolesgrg = {
|
|
||||||
"blks": "SW5E.StarshipBlockadeShip",
|
|
||||||
"flgs": "SW5E.StarshipFlagship",
|
|
||||||
"inct": "SW5E.StarshipIndustrialCenter",
|
|
||||||
"mbmt": "SW5E.StarshipMobileMetropolis",
|
|
||||||
"rsrc": "SW5E.StarshipResearcher",
|
|
||||||
"wars": "SW5E.StarshipWarship"
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
|
|
||||||
/**
|
|
||||||
* The set of starship role bonuses to starships which can be selected in SW5e
|
|
||||||
* @type {Object}
|
|
||||||
*/
|
|
||||||
|
|
||||||
SW5E.starshipRoleBonuses = {
|
|
||||||
"bmbr": {"changes":[{"key":"data.abilities.wis.value","value":1,"mode":2,"priority":20}]},
|
|
||||||
"intc": {"changes":[{"key":"data.abilities.dex.value","value":1,"mode":2,"priority":20}]},
|
|
||||||
"scout": {"changes":[{"key":"data.abilities.int.value","value":1,"mode":2,"priority":20}]},
|
|
||||||
"scrm": {"changes":[{"key":"data.abilities.cha.value","value":1,"mode":2,"priority":20}]},
|
|
||||||
"shtl": {"changes":[{"key":"data.abilities.con.value","value":1,"mode":2,"priority":20}]},
|
|
||||||
"strf": {"changes":[{"key":"data.abilities.str.value","value":1,"mode":2,"priority":20}]},
|
|
||||||
"cour": {"changes":[{"key":"data.abilities.dex.value","value":1,"mode":2,"priority":20}]},
|
|
||||||
"frtr": {"changes":[{"key":"data.abilities.con.value","value":1,"mode":2,"priority":20}]},
|
|
||||||
"gnbt": {"changes":[{"key":"data.abilities.str.value","value":1,"mode":2,"priority":20}]},
|
|
||||||
"msbt": {"changes":[{"key":"data.abilities.wis.value","value":1,"mode":2,"priority":20}]},
|
|
||||||
"nvgt": {"changes":[{"key":"data.abilities.int.value","value":1,"mode":2,"priority":20}]},
|
|
||||||
"yacht": {"changes":[{"key":"data.abilities.cha.value","value":1,"mode":2,"priority":20}]},
|
|
||||||
"ambd": {"changes":[{"key":"data.abilities.cha.value","value":1,"mode":2,"priority":20},{"key":"data.abilities.con.value","value":1,"mode":2,"priority":20}]},
|
|
||||||
"corv": {"changes":[{"key":"data.abilities.str.value","value":1,"mode":2,"priority":20},{"key":"data.abilities.dex.value","value":1,"mode":2,"priority":20}]},
|
|
||||||
"crui": {"changes":[{"key":"data.abilities.wis.value","value":1,"mode":2,"priority":20},{"key":"data.abilities.str.value","value":1,"mode":2,"priority":20}]},
|
|
||||||
"expl": {"changes":[{"key":"data.abilities.dex.value","value":1,"mode":2,"priority":20},{"key":"data.abilities.int.value","value":1,"mode":2,"priority":20}]},
|
|
||||||
"pics": {"changes":[{"key":"data.abilities.dex.value","value":1,"mode":2,"priority":20},{"key":"data.abilities.wis.value","value":1,"mode":2,"priority":20}]},
|
|
||||||
"shtd": {"changes":[{"key":"data.abilities.con.value","value":1,"mode":2,"priority":20},{"key":"data.abilities.str.value","value":1,"mode":2,"priority":20}]},
|
|
||||||
"btls": {"changes":[{"key":"data.abilities.wis.value","value":1,"mode":2,"priority":20},{"key":"data.abilities.str.value","value":1,"mode":2,"priority":20}]},
|
|
||||||
"carr": {"changes":[{"key":"data.abilities.cha.value","value":1,"mode":2,"priority":20},{"key":"data.abilities.int.value","value":1,"mode":2,"priority":20}]},
|
|
||||||
"colo": {"changes":[{"key":"data.abilities.con.value","value":1,"mode":2,"priority":20},{"key":"data.abilities.int.value","value":1,"mode":2,"priority":20}]},
|
|
||||||
"cmds": {"changes":[{"key":"data.abilities.cha.value","value":1,"mode":2,"priority":20},{"key":"data.abilities.wis.value","value":1,"mode":2,"priority":20}]},
|
|
||||||
"intd": {"changes":[{"key":"data.abilities.dex.value","value":1,"mode":2,"priority":20},{"key":"data.abilities.str.value","value":1,"mode":2,"priority":20}]},
|
|
||||||
"jugg": {"changes":[{"key":"data.abilities.con.value","value":1,"mode":2,"priority":20},{"key":"data.abilities.str.value","value":1,"mode":2,"priority":20}]},
|
|
||||||
"blks": {"changes":[{"key":"data.abilities.dex.value","value":1,"mode":2,"priority":20},{"key":"data.abilities.str.value","value":1,"mode":2,"priority":20}]},
|
|
||||||
"flgs": {"changes":[{"key":"data.abilities.cha.value","value":1,"mode":2,"priority":20},{"key":"data.abilities.wis.value","value":1,"mode":2,"priority":20}]},
|
|
||||||
"inct": {"changes":[{"key":"data.abilities.con.value","value":1,"mode":2,"priority":20},{"key":"data.abilities.str.value","value":1,"mode":2,"priority":20}]},
|
|
||||||
"mbmt": {"changes":[{"key":"data.abilities.con.value","value":1,"mode":2,"priority":20},{"key":"data.abilities.wis.value","value":1,"mode":2,"priority":20}]},
|
|
||||||
"rsrc": {"changes":[{"key":"data.abilities.int.value","value":1,"mode":2,"priority":20},{"key":"data.abilities.wis.value","value":1,"mode":2,"priority":20}]},
|
|
||||||
"wars": {"changes":[{"key":"data.abilities.wis.value","value":1,"mode":2,"priority":20},{"key":"data.abilities.str.value","value":1,"mode":2,"priority":20}]}
|
|
||||||
};
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The set of possible sensory perception types which an Actor may have
|
* The set of possible sensory perception types which an Actor may have
|
||||||
|
|
7
sw5e.js
7
sw5e.js
|
@ -159,16 +159,15 @@ Hooks.once("setup", function() {
|
||||||
const toLocalize = [
|
const toLocalize = [
|
||||||
"abilities", "abilityAbbreviations", "abilityActivationTypes", "abilityConsumptionTypes", "actorSizes", "alignments",
|
"abilities", "abilityAbbreviations", "abilityActivationTypes", "abilityConsumptionTypes", "actorSizes", "alignments",
|
||||||
"armorProficiencies", "armorPropertiesTypes", "conditionTypes", "consumableTypes", "cover", "currencies", "damageResistanceTypes",
|
"armorProficiencies", "armorPropertiesTypes", "conditionTypes", "consumableTypes", "cover", "currencies", "damageResistanceTypes",
|
||||||
"damageTypes", "distanceUnits", "equipmentTypes", "healingTypes", "itemActionTypes", "languages",
|
"damageTypes", "deploymentTypes", "distanceUnits", "equipmentTypes", "healingTypes", "itemActionTypes", "languages",
|
||||||
"limitedUsePeriods", "movementTypes", "movementUnits", "polymorphSettings", "proficiencyLevels", "senses", "skills",
|
"limitedUsePeriods", "movementTypes", "movementUnits", "polymorphSettings", "proficiencyLevels", "senses", "skills",
|
||||||
"starshipRolessm", "starshipRolesmed", "starshipRoleslg", "starshipRoleshuge", "starshipRolesgrg", "starshipSkills",
|
"starshipSkills", "powerComponents", "powerLevels", "powerPreparationModes", "powerScalingModes", "powerSchools", "targetTypes",
|
||||||
"powerComponents", "powerLevels", "powerPreparationModes", "powerScalingModes", "powerSchools", "targetTypes",
|
|
||||||
"timePeriods", "toolProficiencies", "weaponProficiencies", "weaponProperties", "weaponSizes", "weaponTypes"
|
"timePeriods", "toolProficiencies", "weaponProficiencies", "weaponProperties", "weaponSizes", "weaponTypes"
|
||||||
];
|
];
|
||||||
|
|
||||||
// Exclude some from sorting where the default order matters
|
// Exclude some from sorting where the default order matters
|
||||||
const noSort = [
|
const noSort = [
|
||||||
"abilities", "alignments", "currencies", "distanceUnits", "movementUnits", "itemActionTypes", "proficiencyLevels",
|
"abilities", "alignments", "currencies", "deploymentTypes", "distanceUnits", "movementUnits", "itemActionTypes", "proficiencyLevels",
|
||||||
"limitedUsePeriods", "powerComponents", "powerLevels", "powerPreparationModes", "weaponTypes"
|
"limitedUsePeriods", "powerComponents", "powerLevels", "powerPreparationModes", "weaponTypes"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -89,6 +89,15 @@
|
||||||
},
|
},
|
||||||
"creature": {
|
"creature": {
|
||||||
"attributes": {
|
"attributes": {
|
||||||
|
"rank": {
|
||||||
|
"total": 0,
|
||||||
|
"coord": 0,
|
||||||
|
"gunner": 0,
|
||||||
|
"mechanic": 0,
|
||||||
|
"operator": 0,
|
||||||
|
"pilot": 0,
|
||||||
|
"technician": 0
|
||||||
|
},
|
||||||
"senses": {
|
"senses": {
|
||||||
"darkvision": 0,
|
"darkvision": 0,
|
||||||
"blindsight": 0,
|
"blindsight": 0,
|
||||||
|
@ -423,23 +432,43 @@
|
||||||
},
|
},
|
||||||
"deployment": {
|
"deployment": {
|
||||||
"coord": {
|
"coord": {
|
||||||
"uuid": null
|
"uuid": null,
|
||||||
|
"name": null,
|
||||||
|
"rank": null,
|
||||||
|
"prof": null
|
||||||
},
|
},
|
||||||
"gunner": {
|
"gunner": {
|
||||||
"uuid": null
|
"uuid": null,
|
||||||
|
"name": null,
|
||||||
|
"rank": null,
|
||||||
|
"prof": null
|
||||||
},
|
},
|
||||||
"mechanic": {
|
"mechanic": {
|
||||||
"uuid": null
|
"uuid": null,
|
||||||
|
"name": null,
|
||||||
|
"rank": null,
|
||||||
|
"prof": null
|
||||||
},
|
},
|
||||||
"operator": {
|
"operator": {
|
||||||
"uuid": null
|
"uuid": null,
|
||||||
|
"name": null,
|
||||||
|
"rank": null,
|
||||||
|
"prof": null
|
||||||
},
|
},
|
||||||
"pilot": {
|
"pilot": {
|
||||||
"uuid": null
|
"uuid": null,
|
||||||
|
"name": null,
|
||||||
|
"rank": null,
|
||||||
|
"prof": null
|
||||||
},
|
},
|
||||||
"technician": {
|
"technician": {
|
||||||
"uuid": null
|
"uuid": null,
|
||||||
}
|
"name": null,
|
||||||
|
"rank": null,
|
||||||
|
"prof": null
|
||||||
|
},
|
||||||
|
"crew": [],
|
||||||
|
"passenger": []
|
||||||
},
|
},
|
||||||
"equip": {
|
"equip": {
|
||||||
"armor": {
|
"armor": {
|
||||||
|
@ -610,7 +639,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"traits": {
|
"traits": {
|
||||||
"size": "med"
|
"size": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"vehicle": {
|
"vehicle": {
|
||||||
|
|
18
templates/apps/deployment-prompt.html
Normal file
18
templates/apps/deployment-prompt.html
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
<div class="dialog-content">
|
||||||
|
{{#each content.i18n}}
|
||||||
|
<div>
|
||||||
|
<label class="checkbox" for="{{@key}}">
|
||||||
|
<input type="checkbox" id="{{@key}}" name="{{@key}}" {{checked (lookup ../content.options @key)}}>
|
||||||
|
{{this}}
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
<div class="dialog-buttons">
|
||||||
|
{{#each buttons as |button id|}}
|
||||||
|
<button class="dialog-button" data-button="{{id}}">
|
||||||
|
{{{button.icon}}}
|
||||||
|
{{{button.label}}}
|
||||||
|
</button>
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
Loading…
Add table
Add a link
Reference in a new issue