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,49 +560,76 @@ export default class ActorSheet5e extends ActorSheet {
|
||||||
};
|
};
|
||||||
|
|
||||||
// Create and render the Dialog
|
// Create and render the Dialog
|
||||||
return new Dialog({
|
|
||||||
title: game.i18n.localize('SW5E.PolymorphPromptTitle'),
|
if (this.actor.data.type === "starship") {
|
||||||
content: {
|
return new Dialog({
|
||||||
options: game.settings.get('sw5e', 'polymorphSettings'),
|
title: game.i18n.localize('SW5E.DeploymentPromptTitle') + " " + sourceActor.data.name + " into " + this.actor.data.name,
|
||||||
i18n: SW5E.polymorphSettings,
|
content: {
|
||||||
isToken: this.actor.isToken
|
i18n: SW5E.deploymentTypes,
|
||||||
},
|
isToken: this.actor.isToken
|
||||||
default: 'accept',
|
|
||||||
buttons: {
|
|
||||||
accept: {
|
|
||||||
icon: '<i class="fas fa-check"></i>',
|
|
||||||
label: game.i18n.localize('SW5E.PolymorphAcceptSettings'),
|
|
||||||
callback: html => this.actor.transformInto(sourceActor, rememberOptions(html))
|
|
||||||
},
|
},
|
||||||
wildshape: {
|
default: 'accept',
|
||||||
icon: '<i class="fas fa-paw"></i>',
|
buttons: {
|
||||||
label: game.i18n.localize('SW5E.PolymorphWildShape'),
|
deploy: {
|
||||||
callback: html => this.actor.transformInto(sourceActor, {
|
icon: '<i class="fas fa-check"></i>',
|
||||||
keepBio: true,
|
label: game.i18n.localize('SW5E.DeploymentAcceptSettings'),
|
||||||
keepClass: true,
|
callback: html => this.actor.deployInto(sourceActor, rememberOptions(html))
|
||||||
keepMental: true,
|
},
|
||||||
mergeSaves: true,
|
cancel: {
|
||||||
mergeSkills: true,
|
icon: '<i class="fas fa-times"></i>',
|
||||||
transformTokens: rememberOptions(html).transformTokens
|
label: game.i18n.localize('Cancel')
|
||||||
})
|
}
|
||||||
},
|
|
||||||
polymorph: {
|
|
||||||
icon: '<i class="fas fa-pastafarianism"></i>',
|
|
||||||
label: game.i18n.localize('SW5E.Polymorph'),
|
|
||||||
callback: html => this.actor.transformInto(sourceActor, {
|
|
||||||
transformTokens: rememberOptions(html).transformTokens
|
|
||||||
})
|
|
||||||
},
|
|
||||||
cancel: {
|
|
||||||
icon: '<i class="fas fa-times"></i>',
|
|
||||||
label: game.i18n.localize('Cancel')
|
|
||||||
}
|
}
|
||||||
}
|
}, {
|
||||||
}, {
|
classes: ['dialog', 'sw5e'],
|
||||||
classes: ['dialog', 'sw5e'],
|
width: 600,
|
||||||
width: 600,
|
template: 'systems/sw5e/templates/apps/deployment-prompt.html'
|
||||||
template: 'systems/sw5e/templates/apps/polymorph-prompt.html'
|
}).render(true);
|
||||||
}).render(true);
|
} else {
|
||||||
|
return new Dialog({
|
||||||
|
title: game.i18n.localize('SW5E.PolymorphPromptTitle'),
|
||||||
|
content: {
|
||||||
|
options: game.settings.get('sw5e', 'polymorphSettings'),
|
||||||
|
i18n: SW5E.polymorphSettings,
|
||||||
|
isToken: this.actor.isToken
|
||||||
|
},
|
||||||
|
default: 'accept',
|
||||||
|
buttons: {
|
||||||
|
accept: {
|
||||||
|
icon: '<i class="fas fa-check"></i>',
|
||||||
|
label: game.i18n.localize('SW5E.PolymorphAcceptSettings'),
|
||||||
|
callback: html => this.actor.transformInto(sourceActor, rememberOptions(html))
|
||||||
|
},
|
||||||
|
wildshape: {
|
||||||
|
icon: '<i class="fas fa-paw"></i>',
|
||||||
|
label: game.i18n.localize('SW5E.PolymorphWildShape'),
|
||||||
|
callback: html => this.actor.transformInto(sourceActor, {
|
||||||
|
keepBio: true,
|
||||||
|
keepClass: true,
|
||||||
|
keepMental: true,
|
||||||
|
mergeSaves: true,
|
||||||
|
mergeSkills: true,
|
||||||
|
transformTokens: rememberOptions(html).transformTokens
|
||||||
|
})
|
||||||
|
},
|
||||||
|
polymorph: {
|
||||||
|
icon: '<i class="fas fa-pastafarianism"></i>',
|
||||||
|
label: game.i18n.localize('SW5E.Polymorph'),
|
||||||
|
callback: html => this.actor.transformInto(sourceActor, {
|
||||||
|
transformTokens: rememberOptions(html).transformTokens
|
||||||
|
})
|
||||||
|
},
|
||||||
|
cancel: {
|
||||||
|
icon: '<i class="fas fa-times"></i>',
|
||||||
|
label: game.i18n.localize('Cancel')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
classes: ['dialog', 'sw5e'],
|
||||||
|
width: 600,
|
||||||
|
template: 'systems/sw5e/templates/apps/polymorph-prompt.html'
|
||||||
|
}).render(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
|
|
110
module/config.js
110
module/config.js
|
@ -499,114 +499,24 @@ SW5E.baseUpgradeCost = [0, 3900, 77500, 297000, 620000, 1150000];
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Enumerate the base stat and feature settings for starships based on size.
|
|
||||||
* @type {Array.<string>}
|
|
||||||
*/
|
|
||||||
|
|
||||||
SW5E.baseStarshipSettings = {
|
|
||||||
"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}}},
|
|
||||||
"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}}},
|
|
||||||
"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}}},
|
|
||||||
"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}}},
|
|
||||||
"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}}},
|
|
||||||
"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}}}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The set of starship roles which can be selected in SW5e
|
* Starship Deployment types
|
||||||
* @type {Object}
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
SW5E.starshipRolestiny = {
|
SW5E.deploymentTypes = {
|
||||||
};
|
"coord": "SW5E.DeploymentTypeCoordinator",
|
||||||
SW5E.starshipRolessm = {
|
"gunner": "SW5E.DeploymentTypeGunner",
|
||||||
"bmbr": "SW5E.StarshipBomber",
|
"mech": "SW5E.DeploymentTypeMechanic",
|
||||||
"intc": "SW5E.StarshipInterceptor",
|
"oper": "SW5E.DeploymentTypeOperator",
|
||||||
"scout": "SW5E.StarshipScout",
|
"pilot": "SW5E.DeploymentTypePilot",
|
||||||
"scrm": "SW5E.StarshipScrambler",
|
"tech": "SW5E.DeploymentTypeTechnician",
|
||||||
"shtl": "SW5E.StarshipShuttle",
|
"crew": "SW5E.DeploymentTypeCrew",
|
||||||
"strf": "SW5E.StarshipStrikeFighter"
|
"pass": "SW5E.DeploymentTypePassenger"
|
||||||
};
|
|
||||||
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