Compare commits

..

3 Commits

Author SHA1 Message Date
ae697b0bb8 WIP for vehicle sheets 2022-09-09 08:33:28 +02:00
ecf5a38eb0 WIP for vehicle sheets 2022-09-08 21:26:45 +02:00
1849a60194 Vehicle - WIP 2022-09-05 11:32:21 +02:00
17 changed files with 498 additions and 251 deletions

View File

@ -1,6 +1,6 @@
[Dolphin] [Dolphin]
SortRole=creationtime SortRole=modificationtime
Timestamp=2021,4,13,9,23,48.267 Timestamp=2022,9,8,20,43,38.73
Version=4 Version=4
ViewMode=1 ViewMode=1
VisibleRoles=Details_text,Details_size,Details_modificationtime,Details_creationtime,CustomizedDetails VisibleRoles=Details_text,Details_size,Details_modificationtime,Details_creationtime,CustomizedDetails

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -106,6 +106,42 @@ export class PegasusActor extends Actor {
let comp = this.items.filter(item => item.type == 'effect'); let comp = this.items.filter(item => item.type == 'effect');
return comp; return comp;
} }
/* -------------------------------------------- */
getCombatModules() {
let comp = this.items.filter(item => item.type == 'combatmodule');
return comp;
}
/* -------------------------------------------- */
getVehicleHull() {
let comp = this.items.filter(item => item.type == 'vehiclehull');
return comp;
}
/* -------------------------------------------- */
getPowercoreModules() {
let comp = this.items.filter(item => item.type == 'powercoremodule');
return comp;
}
/* -------------------------------------------- */
getMobilityModules() {
let comp = this.items.filter(item => item.type == 'mobilitymodule');
return comp;
}
/* -------------------------------------------- */
getPropulsionModules() {
let comp = this.items.filter(item => item.type == 'propulsionmodule');
return comp;
}
/* -------------------------------------------- */
getVehicleModules() {
let comp = this.items.filter(item => item.type == 'vehiclemodule');
return comp;
}
/* -------------------------------------------- */
getVehicleWeaponModules() {
let comp = this.items.filter(item => item.type == 'vehicleweaponmodule');
return comp;
}
/* -------------------------------------------- */ /* -------------------------------------------- */
getPowers() { getPowers() {
let comp = this.items.filter(item => item.type == 'power'); let comp = this.items.filter(item => item.type == 'power');
@ -210,7 +246,8 @@ export class PegasusActor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
async manageDesires(flag) { async manageDesires(flag) {
if (flag) { if (flag) {
let effect = await PegasusUtility.getEffectFromCompendium("Desires") let effect = await PegasusUtility.getEffectFromCompendium("Desire")
//console.log("EFFECT", effect)
effect.system.desires = true effect.system.desires = true
this.createEmbeddedDocuments('Item', [effect]) this.createEmbeddedDocuments('Item', [effect])
} else { } else {
@ -623,7 +660,7 @@ export class PegasusActor extends Actor {
return false return false
} }
} }
if (item.type == "power" && item.system.purchasedtext.length > 0 ) { if (item.type == "power" && item.system.purchasedtext.length > 0) {
ChatMessage.create({ content: `Power ${item.name} puchased : ${item.system.purchasedtext}` }) ChatMessage.create({ content: `Power ${item.name} puchased : ${item.system.purchasedtext}` })
} }
let dropID = $(event.target).parents(".item").attr("data-item-id") // Only relevant if container drop let dropID = $(event.target).parents(".item").attr("data-item-id") // Only relevant if container drop
@ -712,8 +749,8 @@ export class PegasusActor extends Actor {
if (spec) { if (spec) {
let powers = [] let powers = []
for (let power of spec.system.powers) { for (let power of spec.system.powers) {
if ( power.data ) { if (power.data) {
power.system = power.data power.system = power.data
} }
power.system.specId = specId power.system.specId = specId
powers.push(power) powers.push(power)
@ -931,7 +968,7 @@ export class PegasusActor extends Actor {
if (status == "activated") { if (status == "activated") {
// Add effects linked to the perk // Add effects linked to the perk
let effects = [] let effects = []
for (let effect of item.system.effectsgained) { for (let effect of item.system.effectsgained) {
if (effect.data) { if (effect.data) {
effect.system = effect.data effect.system = effect.data
} }
@ -1265,24 +1302,24 @@ export class PegasusActor extends Actor {
if (ability.system.affectedstat != "notapplicable") { if (ability.system.affectedstat != "notapplicable") {
let stat = duplicate(this.system.statistics[ability.system.affectedstat]) let stat = duplicate(this.system.statistics[ability.system.affectedstat])
stat.mod += Number(ability.system.statmodifier) stat.mod += Number(ability.system.statmodifier)
updates[`data.statistics.${ability.system.affectedstat}`] = stat updates[`system.statistics.${ability.system.affectedstat}`] = stat
} }
// manage status bonus // manage status bonus
if (ability.system.statusaffected != "notapplicable") { if (ability.system.statusaffected != "notapplicable") {
if (ability.system.statusaffected == 'nrg') { if (ability.system.statusaffected == 'nrg') {
let nrg = duplicate(this.system.nrg) let nrg = duplicate(this.system.nrg)
nrg.mod += Number(ability.system.statusmodifier) nrg.mod += Number(ability.system.statusmodifier)
updates[`data.nrg`] = nrg updates[`system.nrg`] = nrg
} }
if (ability.system.statusaffected == 'health') { if (ability.system.statusaffected == 'health') {
let health = duplicate(this.system.secondary.health) let health = duplicate(this.system.secondary.health)
health.bonus += Number(ability.system.statusmodifier) health.bonus += Number(ability.system.statusmodifier)
updates[`data.secondary.health`] = health updates[`system.secondary.health`] = health
} }
if (ability.system.statusaffected == 'delirium') { if (ability.system.statusaffected == 'delirium') {
let delirium = duplicate(this.system.secondary.delirium) let delirium = duplicate(this.system.secondary.delirium)
delirium.bonus += Number(ability.system.statusmodifier) delirium.bonus += Number(ability.system.statusmodifier)
updates[`data.secondary.delirium`] = delirium updates[`system.secondary.delirium`] = delirium
} }
} }
if (directUpdate) { if (directUpdate) {
@ -1693,4 +1730,34 @@ export class PegasusActor extends Actor {
ui.notifications.warn("Power not found !", powerId); ui.notifications.warn("Power not found !", powerId);
} }
} }
/* -------------------------------------------- */
/* VEHICLE STUFF */
manageCurrentSpeed(speed) {
if (speed == "fullstop") {
this.update({ 'system.secondary.moverange': "nomovement" })
}
if (speed == "crawling") {
this.update({ 'system.secondary.moverange': "threatzone" })
}
if (speed == "slow") {
this.update({ 'system.secondary.moverange': "close" })
}
if (speed == "average") {
this.update({ 'system.secondary.moverange': "medium" })
}
if (speed == "fast") {
this.update({ 'system.secondary.moverange': "long" })
}
if (speed == "extfast") {
this.update({ 'system.secondary.moverange': "extreme" })
}
}
/* -------------------------------------------- */
modifyVehicleStun(incDec) {
let stun = this.system.stun.value + incDec
this.update({ 'stun.value': stun })
}
} }

View File

@ -302,14 +302,16 @@ export class PegasusUtility {
/* -------------------------------------------- */ /* -------------------------------------------- */
static async loadCompendiumData(compendium) { static async loadCompendiumData(compendium) {
const pack = game.packs.get(compendium); const pack = game.packs.get(compendium)
return await pack?.getDocuments() ?? []; console.log("PACK", pack, compendium)
return await pack?.getDocuments() ?? []
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
static async loadCompendium(compendium, filter = item => true) { static async loadCompendium(compendium, filter = item => true) {
let compendiumData = await PegasusUtility.loadCompendiumData(compendium); let compendiumData = await PegasusUtility.loadCompendiumData(compendium)
return compendiumData.filter(filter); //console.log("Comp data", compendiumData)
return compendiumData.filter(filter)
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
@ -461,8 +463,8 @@ export class PegasusUtility {
static async getEffectFromCompendium(effectName) { static async getEffectFromCompendium(effectName) {
effectName = effectName.toLowerCase() effectName = effectName.toLowerCase()
let effect = game.items.contents.find(item => item.type == 'effect' && item.name.toLowerCase() == effectName) let effect = game.items.contents.find(item => item.type == 'effect' && item.name.toLowerCase() == effectName)
if (!effect) { if (!effect ) {
let effects = await this.loadCompendium('fvtt-pegasus.effect', item => item.name.toLowerCase() == effectName) let effects = await this.loadCompendium('fvtt-pegasus-rpg.effects', item => item.name.toLowerCase() == effectName)
let objs = effects.map(i => i.toObject()) let objs = effects.map(i => i.toObject())
effect = objs[0] effect = objs[0]
} else { } else {
@ -662,19 +664,6 @@ export class PegasusUtility {
return chatData; return chatData;
} }
/* -------------------------------------------- */
static async loadCompendiumData(compendium) {
const pack = game.packs.get(compendium);
return await pack?.getDocuments() ?? [];
}
/* -------------------------------------------- */
static async loadCompendium(compendium, filter = item => true) {
let compendiumData = await this.loadCompendiumData(compendium);
//console.log("Compendium", compendiumData);
return compendiumData.filter(filter);
}
/* -------------------------------------------- */ /* -------------------------------------------- */
static async showDiceSoNice(roll, rollMode) { static async showDiceSoNice(roll, rollMode) {
if (game.modules.get("dice-so-nice")?.active) { if (game.modules.get("dice-so-nice")?.active) {

View File

@ -43,6 +43,13 @@ export class PegasusVehicleSheet extends ActorSheet {
optionsLevel: PegasusUtility.getOptionsLevel(), optionsLevel: PegasusUtility.getOptionsLevel(),
subActors: duplicate(this.actor.getSubActors()), subActors: duplicate(this.actor.getSubActors()),
effects: duplicate(this.actor.getEffects()), effects: duplicate(this.actor.getEffects()),
combatModules: duplicate(this.actor.getCombatModules()),
powerCoreModules: duplicate(this.actor.getPowercoreModules()),
vehicleHull: duplicate(this.actor.getVehicleHull()),
mobilityModules: duplicate(this.actor.getMobilityModules()),
propulsionModules: duplicate(this.actor.getPropulsionModules()),
vehicleModules: duplicate(this.actor.getVehicleModules()),
vehicleWeaponModules: duplicate(this.actor.getVehicleWeaponModules()),
options: this.options, options: this.options,
owner: this.document.isOwner, owner: this.document.isOwner,
editScore: this.options.editScore, editScore: this.options.editScore,
@ -106,15 +113,9 @@ export class PegasusVehicleSheet extends ActorSheet {
this.actor.createEmbeddedDocuments('Item', [{ name: "NewItem", type: dataType }], { renderSheet: true }) this.actor.createEmbeddedDocuments('Item', [{ name: "NewItem", type: dataType }], { renderSheet: true })
}) })
html.find('.spec-group-activate').click(ev => { html.find('.current-speed-change').click(ev => {
const li = $(ev.currentTarget).parents(".item"); let speed = ev.currentTarget.value
let itemId = li.data("item-id"); this.actor.manageCurrentSpeed(speed)
this.actor.specPowerActivate( itemId)
});
html.find('.spec-group-deactivate').click(ev => {
const li = $(ev.currentTarget).parents(".item");
let itemId = li.data("item-id");
this.actor.specPowerDeactivate( itemId)
}); });
html.find('.equip-activate').click(ev => { html.find('.equip-activate').click(ev => {
@ -133,32 +134,6 @@ export class PegasusVehicleSheet extends ActorSheet {
let itemId = li.data("item-id"); let itemId = li.data("item-id");
this.actor.perkEffectUsed( itemId) this.actor.perkEffectUsed( itemId)
}); });
html.find('.perk-status').change(ev => {
const li = $(ev.currentTarget).parents(".item");
let itemId = li.data("item-id");
this.actor.updatePerkStatus( itemId, ev.currentTarget.value)
this.render()
});
html.find('.power-cost-spent').change(ev => {
const li = $(ev.currentTarget).parents(".item");
let itemId = li.data("item-id");
this.actor.updatePowerSpentCost( itemId, ev.currentTarget.value)
});
html.find('.power-dmg-roll').click(ev => {
const li = $(ev.currentTarget).parents(".item")
let itemId = li.data("item-id")
this.actor.powerDmgRoll( itemId )
})
html.find('.perk-used').change(ev => {
const li = $(ev.currentTarget).parents(".item")
let itemId = li.data("item-id")
let index = Number($(ev.currentTarget).data("use-index") )
this.actor.updatePerkUsed( itemId, index, ev.currentTarget.checked )
});
html.find('.subactor-edit').click(ev => { html.find('.subactor-edit').click(ev => {
const li = $(ev.currentTarget).parents(".item"); const li = $(ev.currentTarget).parents(".item");
@ -197,11 +172,11 @@ export class PegasusVehicleSheet extends ActorSheet {
this.actor.incDecAmmo( li.data("item-id"), +1 ) this.actor.incDecAmmo( li.data("item-id"), +1 )
} ); } );
html.find('.stun-minus').click(event => { html.find('.vehicle-stun-minus').click(event => {
this.actor.modifyStun( -1 ) this.actor.modifyVehicleStun( -1 )
} ) } )
html.find('.stun-plus').click(event => { html.find('.vehicle-stun-plus').click(event => {
this.actor.modifyStun( 1 ) this.actor.modifyVehicleStun( 1 )
} ) } )
@ -250,16 +225,6 @@ export class PegasusVehicleSheet extends ActorSheet {
this.rollIDR( li.data("item-id"), diceValue) this.rollIDR( li.data("item-id"), diceValue)
}) })
html.find('.roll-spec').click((event) => {
const li = $(event.currentTarget).parents(".item");
const specId = li.data("item-id");
this.actor.rollSpec(specId);
});
html.find('.power-roll').click((event) => {
const li = $(event.currentTarget).parents(".item");
const powerId = li.data("item-id");
this.actor.rollPower(powerId);
});
html.find('.weapon-roll').click((event) => { html.find('.weapon-roll').click((event) => {
const li = $(event.currentTarget).parents(".item"); const li = $(event.currentTarget).parents(".item");
const weaponId = li.data("item-id"); const weaponId = li.data("item-id");
@ -297,35 +262,12 @@ export class PegasusVehicleSheet extends ActorSheet {
this.actor.equipItem( li.data("item-id") ); this.actor.equipItem( li.data("item-id") );
this.render(true); this.render(true);
}); });
html.find('.power-activate').click(ev => {
const li = $(ev.currentTarget).parents(".item");
this.actor.activatePower( li.data("item-id") );
this.render(true);
});
html.find('.vice-virtue-activate').click(ev => {
const li = $(ev.currentTarget).parents(".item")
this.actor.activateViceOrVirtue( li.data("item-id") )
this.render(true);
})
html.find('.change-worstfear').change(ev => {
this.actor.manageWorstFear( ev.currentTarget.checked )
});
html.find('.change-desires').change(ev => {
this.actor.manageDesires( ev.currentTarget.checked )
});
html.find('.update-field').change(ev => { html.find('.update-field').change(ev => {
const fieldName = $(ev.currentTarget).data("field-name"); const fieldName = $(ev.currentTarget).data("field-name");
let value = Number(ev.currentTarget.value); let value = Number(ev.currentTarget.value);
this.actor.update( { [`${fieldName}`]: value } ); this.actor.update( { [`${fieldName}`]: value } );
}); });
html.find('.perk-active').click(ev => {
const li = $(ev.currentTarget).parents(".item");
this.actor.activatePerk( li.data("item-id") );
this.render(true);
});
} }
/* -------------------------------------------- */ /* -------------------------------------------- */

View File

@ -1235,8 +1235,7 @@ ul, li {
/*************************************************************/ /*************************************************************/
#pause #pause
{ { font-size: 2rem;
font-size: 2rem;
} }
#pause > h3 #pause > h3
{ {
@ -1285,6 +1284,8 @@ Focus FOC: #ff0084
background-color: black; background-color: black;
background: black; background: black;
} }
.color-class-fc,
.color-class-man,
.color-class-agi, .color-class-agi,
.color-class-ranged-attack { .color-class-ranged-attack {
background-color: #02a41d; background-color: #02a41d;
@ -1303,10 +1304,12 @@ Focus FOC: #ff0084
.color-class-meleedmg { .color-class-meleedmg {
background-color: #5f3d00; background-color: #5f3d00;
} }
.color-class-hr,
.color-class-phy, .color-class-phy,
.color-class-dmgres { .color-class-dmgres {
background-color: #990304; background-color: #990304;
} }
.color-class-ad,
.color-class-mr { .color-class-mr {
background-color: #050505; background-color: #050505;
} }
@ -1325,6 +1328,7 @@ Focus FOC: #ff0084
.color-class-ranged-damage { .color-class-ranged-damage {
background-color: #f9c801; background-color: #f9c801;
} }
.color-class-pc,
.color-class-foc { .color-class-foc {
background-color: #ff0084; background-color: #ff0084;
} }
@ -1377,8 +1381,8 @@ Focus FOC: #ff0084
min-height: 36px; min-height: 36px;
} }
.item-stat-roll-vehicle { .item-stat-roll-vehicle {
max-height: 96px; max-height: 102px;
min-height: 90px; min-height: 102px;
} }
.item-stat-roll select, .item-stat-roll input { .item-stat-roll select, .item-stat-roll input {
margin-top: 4px; margin-top: 4px;

View File

@ -1,6 +1,6 @@
{ {
"description": "Pegasus RPG system for FoundryVTT", "description": "Pegasus RPG system for FoundryVTT",
"download": "https://www.uberwald.me/gitea/uberwald/fvtt-pegasus-rpg/archive/fvtt-pegasus-rpg-v10.0.3.zip", "download": "https://www.uberwald.me/gitea/uberwald/fvtt-pegasus-rpg/archive/fvtt-pegasus-rpg-v10.0.6.zip",
"esmodules": [ "esmodules": [
"modules/pegasus-main.js" "modules/pegasus-main.js"
], ],
@ -10,7 +10,8 @@
{ {
"lang": "en", "lang": "en",
"name": "English", "name": "English",
"path": "lang/en.json" "path": "lang/en.json",
"flags": {}
} }
], ],
"authors": [ "authors": [
@ -19,11 +20,8 @@
"flags": {} "flags": {}
} }
], ],
"library": false,
"license": "LICENSE.txt", "license": "LICENSE.txt",
"manifest": "https://www.uberwald.me/gitea/uberwald/fvtt-pegasus-rpg/raw/branch/master/system.json", "manifest": "https://www.uberwald.me/gitea/uberwald/fvtt-pegasus-rpg/raw/branch/master/system.json",
"manifestPlusVersion": "1.0.0",
"media": [],
"compatibility": { "compatibility": {
"minimum": "10", "minimum": "10",
"verified": "10.284", "verified": "10.284",
@ -35,241 +33,217 @@
"type": "Item", "type": "Item",
"label": "Specialisations", "label": "Specialisations",
"name": "specialisations", "name": "specialisations",
"path": "./packs/specialisations.db", "path": "packs/specialisations.db",
"system": "fvtt-pegasus-rpg", "system": "fvtt-pegasus-rpg",
"tags": [ "private": false,
"specialisation" "flags": {}
]
}, },
{ {
"type": "Item", "type": "Item",
"label": "Racial Abilities", "label": "Racial Abilities",
"name": "racial-abilities", "name": "racial-abilities",
"path": "./packs/racial-abilities.db", "path": "packs/racial-abilities.db",
"system": "fvtt-pegasus-rpg", "system": "fvtt-pegasus-rpg",
"tags": [ "private": false,
"ability" "flags": {}
]
}, },
{ {
"type": "Item", "type": "Item",
"label": "Perks", "label": "Perks",
"name": "perk", "name": "perk",
"path": "./packs/perk.db", "path": "packs/perk.db",
"system": "fvtt-pegasus-rpg", "system": "fvtt-pegasus-rpg",
"tags": [ "private": false,
"perk" "flags": {}
]
}, },
{ {
"type": "Item", "type": "Item",
"label": "Powers", "label": "Powers",
"name": "powers", "name": "powers",
"path": "./packs/powers.db", "path": "packs/powers.db",
"system": "fvtt-pegasus-rpg", "system": "fvtt-pegasus-rpg",
"tags": [ "private": false,
"power" "flags": {}
]
}, },
{ {
"type": "Item", "type": "Item",
"label": "Race", "label": "Race",
"name": "race", "name": "race",
"path": "./packs/race.db", "path": "packs/race.db",
"system": "fvtt-pegasus-rpg", "system": "fvtt-pegasus-rpg",
"tags": [ "private": false,
"race" "flags": {}
]
}, },
{ {
"type": "Item", "type": "Item",
"label": "Role", "label": "Role",
"name": "role", "name": "role",
"path": "./packs/role.db", "path": "packs/role.db",
"system": "fvtt-pegasus-rpg", "system": "fvtt-pegasus-rpg",
"tags": [ "private": false,
"role" "flags": {}
]
}, },
{ {
"type": "Item", "type": "Item",
"label": "Effects", "label": "Effects",
"name": "effects", "name": "effects",
"path": "./packs/effects.db", "path": "packs/effects.db",
"system": "fvtt-pegasus-rpg", "system": "fvtt-pegasus-rpg",
"tags": [ "private": false,
"effect" "flags": {}
]
}, },
{ {
"type": "Item", "type": "Item",
"label": "Armour", "label": "Armour",
"name": "armour", "name": "armour",
"path": "./packs/armour.db", "path": "packs/armour.db",
"system": "fvtt-pegasus-rpg", "system": "fvtt-pegasus-rpg",
"tags": [ "private": false,
"armour" "flags": {}
]
}, },
{ {
"type": "Item", "type": "Item",
"label": "Equipment", "label": "Equipment",
"name": "equipment", "name": "equipment",
"path": "./packs/equipment.db", "path": "packs/equipment.db",
"system": "fvtt-pegasus-rpg", "system": "fvtt-pegasus-rpg",
"tags": [ "private": false,
"equipment" "flags": {}
]
}, },
{ {
"type": "Item", "type": "Item",
"label": "Shields", "label": "Shields",
"name": "shields", "name": "shields",
"path": "./packs/shields.db", "path": "packs/shields.db",
"system": "fvtt-pegasus-rpg", "system": "fvtt-pegasus-rpg",
"tags": [ "private": false,
"shield" "flags": {}
]
}, },
{ {
"type": "Item", "type": "Item",
"label": "Melee Weapons", "label": "Melee Weapons",
"name": "melee-weapons", "name": "melee-weapons",
"path": "./packs/melee-weapons.db", "path": "packs/melee-weapons.db",
"system": "fvtt-pegasus-rpg", "system": "fvtt-pegasus-rpg",
"tags": [ "private": false,
"weapon", "melee" "flags": {}
]
}, },
{ {
"type": "Item", "type": "Item",
"label": "Ranged Weapons", "label": "Ranged Weapons",
"name": "ranged-weapons", "name": "ranged-weapons",
"path": "./packs/ranged-weapons.db", "path": "packs/ranged-weapons.db",
"system": "fvtt-pegasus-rpg", "system": "fvtt-pegasus-rpg",
"tags": [ "private": false,
"weapon", "ranged" "flags": {}
]
}, },
{ {
"type": "Item", "type": "Item",
"label": "Currency", "label": "Currency",
"name": "currency", "name": "currency",
"path": "./packs/currency.db", "path": "packs/currency.db",
"system": "fvtt-pegasus-rpg", "system": "fvtt-pegasus-rpg",
"tags": [ "private": false,
"currency", "money" "flags": {}
]
}, },
{ {
"type": "Item", "type": "Item",
"label": "Macros", "label": "Macros",
"name": "macro-commands", "name": "macro-commands",
"path": "./packs/macro-commands.db", "path": "packs/macro-commands.db",
"system": "fvtt-pegasus-rpg", "system": "fvtt-pegasus-rpg",
"tags": [ "private": false,
"macro", "command" "flags": {}
]
}, },
{ {
"type": "Item", "type": "Item",
"label": "Vehicle - Weapon modules", "label": "Vehicle - Weapon modules",
"name": "vm-vehicle-weapons-modules", "name": "vm-vehicle-weapons-modules",
"path": "./packs/vm-vehicle-weapons-modules.db", "path": "packs/vm-vehicle-weapons-modules.db",
"system": "fvtt-pegasus-rpg", "system": "fvtt-pegasus-rpg",
"tags": [ "private": false,
"weapon", "vehicle" "flags": {}
]
}, },
{ {
"type": "Item", "type": "Item",
"label": "Vehicle - Propulsion modules", "label": "Vehicle - Propulsion modules",
"name": "vm-vehicle-propulsion-modules", "name": "vm-vehicle-propulsion-modules",
"path": "./packs/vm-vehicle-propulsion-modules.db", "path": "packs/vm-vehicle-propulsion-modules.db",
"system": "fvtt-pegasus-rpg", "system": "fvtt-pegasus-rpg",
"tags": [ "private": false,
"propulsion", "vehicle" "flags": {}
]
}, },
{ {
"type": "Item", "type": "Item",
"label": "Vehicle - Power core modules", "label": "Vehicle - Power core modules",
"name": "vm-vehicle-power-core-module", "name": "vm-vehicle-power-core-module",
"path": "./packs/vm-vehicle-power-core-module.db", "path": "packs/vm-vehicle-power-core-module.db",
"system": "fvtt-pegasus-rpg", "system": "fvtt-pegasus-rpg",
"tags": [ "private": false,
"propulsion", "vehicle" "flags": {}
]
}, },
{ {
"type": "Item", "type": "Item",
"label": "Vehicle - Modules", "label": "Vehicle - Modules",
"name": "vm-vehicle-modules", "name": "vm-vehicle-modules",
"path": "./packs/vm-vehicle-modules.db", "path": "packs/vm-vehicle-modules.db",
"system": "fvtt-pegasus-rpg", "system": "fvtt-pegasus-rpg",
"tags": [ "private": false,
"module", "vehicle" "flags": {}
]
}, },
{ {
"type": "Item", "type": "Item",
"label": "Vehicle - Mobility module", "label": "Vehicle - Mobility module",
"name": "vm-vehicle-mobility-module", "name": "vm-vehicle-mobility-module",
"path": "./packs/vm-vehicle-mobility-module.db", "path": "packs/vm-vehicle-mobility-module.db",
"system": "fvtt-pegasus-rpg", "system": "fvtt-pegasus-rpg",
"tags": [ "private": false,
"mobility", "vehicle" "flags": {}
]
}, },
{ {
"type": "Item", "type": "Item",
"label": "Vehicle - Hull module", "label": "Vehicle - Hull module",
"name": "vm-vehicle-hulls", "name": "vm-vehicle-hulls",
"path": "./packs/vm-vehicle-hulls.db", "path": "packs/vm-vehicle-hulls.db",
"system": "fvtt-pegasus-rpg", "system": "fvtt-pegasus-rpg",
"tags": [ "private": false,
"hull", "vehicle" "flags": {}
]
}, },
{ {
"type": "Item", "type": "Item",
"label": "Vehicle - Combat module", "label": "Vehicle - Combat module",
"name": "vm-vehicle-combat-module", "name": "vm-vehicle-combat-module",
"path": "./packs/vm-vehicle-combat-module.db", "path": "packs/vm-vehicle-combat-module.db",
"system": "fvtt-pegasus-rpg", "system": "fvtt-pegasus-rpg",
"tags": [ "private": false,
"combat", "vehicle" "flags": {}
]
}, },
{ {
"type": "Item", "type": "Item",
"label": "Vices", "label": "Vices",
"name": "vices", "name": "vices",
"path": "./packs/vices.db", "path": "packs/vices.db",
"system": "fvtt-pegasus-rpg", "system": "fvtt-pegasus-rpg",
"tags": [ "private": false,
"vice" "flags": {}
]
}, },
{ {
"type": "Item", "type": "Item",
"label": "Virtues", "label": "Virtues",
"name": "virtues", "name": "virtues",
"path": "./packs/virtues.db", "path": "packs/virtues.db",
"system": "fvtt-pegasus-rpg", "system": "fvtt-pegasus-rpg",
"tags": [ "private": false,
"virtue" "flags": {}
]
}, },
{ {
"type": "Item", "type": "Item",
"label": "ZZ-Admin-FX", "label": "ZZ-Admin-FX",
"name": "zz-adminfx-zz", "name": "zz-adminfx-zz",
"path": "./packs/zz-adminfx-zz.db", "path": "packs/zz-adminfx-zz.db",
"system": "fvtt-pegasus-rpg", "system": "fvtt-pegasus-rpg",
"tags": [ "private": false,
"fx" "flags": {}
]
} }
], ],
"primaryTokenAttribute": "secondary.health", "primaryTokenAttribute": "secondary.health",
@ -278,9 +252,8 @@
"styles": [ "styles": [
"styles/simple.css" "styles/simple.css"
], ],
"templateVersion": 112,
"title": "Pegasus RPG", "title": "Pegasus RPG",
"url": "https://www.uberwald.me/data/files/fvtt-pegasus-rpg", "url": "https://www.uberwald.me/data/files/fvtt-pegasus-rpg",
"version": "10.0.3", "version": "10.0.6",
"background" : "./images/ui/pegasus_welcome_page.webp" "background": "systems/fvtt-pegasus-rpg/images/ui/pegasus_welcome_page.webp"
} }

View File

@ -214,6 +214,7 @@
"dicevalue": "", "dicevalue": "",
"level": 0, "level": 0,
"currentlevel": 0, "currentlevel": 0,
"turningarc45": 0,
"col": 1 "col": 1
}, },
"hr": { "hr": {

View File

@ -1,4 +1,4 @@
<option value="none">None</option> <option value="fullstop">Full stop</option>
<option value="crawling">Crawling</option> <option value="crawling">Crawling</option>
<option value="slow">Slow</option> <option value="slow">Slow</option>
<option value="average">Average</option> <option value="average">Average</option>

View File

@ -4,10 +4,10 @@
<ul> <ul>
{{#each effectsList as |effect idx|}} {{#each effectsList as |effect idx|}}
{{#if effect.effect.data.hindrance}} {{#if effect.effect.system.hindrance}}
<li class="flex-group-left"> <li class="flex-group-left">
<label class="attribute-value checkbox"><input type="checkbox" class="effect-clicked" id="effect-{{idx}}" data-effect-idx="{{idx}}" {{checked effect.applied}}/></label> <label class="attribute-value checkbox"><input type="checkbox" class="effect-clicked" id="effect-{{idx}}" data-effect-idx="{{idx}}" {{checked effect.applied}}/></label>
<label class="generic-label">Target Hindrance : {{effect.label}} ({{upperFirst effect.effect.data.type}}, {{upperFirst effect.effect.data.genre}}, {{effect.value}})</label> <label class="generic-label">Target Hindrance : {{effect.label}} ({{upperFirst effect.effect.system.type}}, {{upperFirst effect.effect.system.genre}}, {{effect.value}})</label>
</li> </li>
{{else}} {{else}}
{{#if (eq type "hindrance")}} {{#if (eq type "hindrance")}}
@ -30,13 +30,13 @@
</li> </li>
{{/if}} {{/if}}
{{#if (count effect.effect.data.specaffected)}} {{#if (count effect.effect.system.specaffected)}}
{{#each effect.effect.data.specaffected as |spec idx2|}} {{#each effect.effect.system.specaffected as |spec idx2|}}
{{#if (eq @root.specName spec.name)}} {{#if (eq @root.specName spec.name)}}
<li class="flex-group-left"> <li class="flex-group-left">
<label class="attribute-value checkbox"><input type="checkbox" class="effect-clicked" id="effect-{{idx}}" data-effect-idx="{{idx}}" {{checked effect.applied}}/></label> <label class="attribute-value checkbox"><input type="checkbox" class="effect-clicked" id="effect-{{idx}}" data-effect-idx="{{idx}}" {{checked effect.applied}}/></label>
{{#if effect.effect}} {{#if effect.effect}}
<label class="generic-label">{{effect.label}} ({{upperFirst effect.effect.data.type}}, {{upperFirst effect.effect.data.genre}}, {{effect.value}})</label> <label class="generic-label">{{effect.label}} ({{upperFirst effect.effect.system.type}}, {{upperFirst effect.effect.system.genre}}, {{effect.value}})</label>
{{else}} {{else}}
<label class="generic-label">{{effect.label}} ({{effect.value}})</label> <label class="generic-label">{{effect.label}} ({{effect.value}})</label>
{{/if}} {{/if}}
@ -44,31 +44,31 @@
{{/if}} {{/if}}
{{/each}} {{/each}}
{{else}} {{else}}
{{#if (eq @root.statKey effect.effect.data.stataffected)}} {{#if (eq @root.statKey effect.effect.system.stataffected)}}
<li class="flex-group-left"> <li class="flex-group-left">
<label class="attribute-value checkbox"><input type="checkbox" class="effect-clicked" id="effect-{{idx}}" data-effect-idx="{{idx}}" {{checked effect.applied}}/></label> <label class="attribute-value checkbox"><input type="checkbox" class="effect-clicked" id="effect-{{idx}}" data-effect-idx="{{idx}}" {{checked effect.applied}}/></label>
{{#if effect.effect}} {{#if effect.effect}}
<label class="generic-label">{{effect.label}} ({{upperFirst effect.effect.data.type}}, {{upperFirst effect.effect.data.genre}}, {{effect.value}})</label> <label class="generic-label">{{effect.label}} ({{upperFirst effect.effect.system.type}}, {{upperFirst effect.effect.system.genre}}, {{effect.value}})</label>
{{else}} {{else}}
<label class="generic-label">{{effect.label}} ({{effect.value}})</label> <label class="generic-label">{{effect.label}} ({{effect.value}})</label>
{{/if}} {{/if}}
</li> </li>
{{else}} {{else}}
{{#if (eq @root.subKey effect.effect.data.stataffected)}} {{#if (eq @root.subKey effect.effect.system.stataffected)}}
<li class="flex-group-left"> <li class="flex-group-left">
<label class="attribute-value checkbox"><input type="checkbox" class="effect-clicked" id="effect-{{idx}}" data-effect-idx="{{idx}}" {{checked effect.applied}}/></label> <label class="attribute-value checkbox"><input type="checkbox" class="effect-clicked" id="effect-{{idx}}" data-effect-idx="{{idx}}" {{checked effect.applied}}/></label>
{{#if effect.effect}} {{#if effect.effect}}
<label class="generic-label">{{effect.label}} ({{upperFirst effect.effect.data.type}}, {{upperFirst effect.effect.data.genre}}, {{effect.value}})</label> <label class="generic-label">{{effect.label}} ({{upperFirst effect.effect.system.type}}, {{upperFirst effect.effect.system.genre}}, {{effect.value}})</label>
{{else}} {{else}}
<label class="generic-label">{{effect.label}} ({{effect.value}})</label> <label class="generic-label">{{effect.label}} ({{effect.value}})</label>
{{/if}} {{/if}}
</li> </li>
{{else}} {{else}}
{{#if (eq effect.effect.data.stataffected "all")}} {{#if (eq effect.effect.system.stataffected "all")}}
<li class="flex-group-left"> <li class="flex-group-left">
<label class="attribute-value checkbox"><input type="checkbox" class="effect-clicked" id="effect-{{idx}}" data-effect-idx="{{idx}}" {{checked effect.applied}}/></label> <label class="attribute-value checkbox"><input type="checkbox" class="effect-clicked" id="effect-{{idx}}" data-effect-idx="{{idx}}" {{checked effect.applied}}/></label>
{{#if effect.effect}} {{#if effect.effect}}
<label class="generic-label">{{effect.label}} ({{upperFirst effect.effect.data.type}}, {{upperFirst effect.effect.data.genre}}, {{effect.value}})</label> <label class="generic-label">{{effect.label}} ({{upperFirst effect.effect.system.type}}, {{upperFirst effect.effect.system.genre}}, {{effect.value}})</label>
{{else}} {{else}}
<label class="generic-label">{{effect.label}} ({{effect.value}})</label> <label class="generic-label">{{effect.label}} ({{effect.value}})</label>
{{/if}} {{/if}}

View File

@ -2,11 +2,11 @@
<div class="flexcol"> <div class="flexcol">
<div class="flexrow"> <div class="flexrow">
<span class="stat-icon"> <span class="stat-icon">
<img class="stat-icon" src="systems/fvtt-pegasus-rpg/images/icons/{{stat.abbrev}}.webp"> <img class="stat-icon" src="systems/fvtt-pegasus-rpg/images/icons/icon_vehicle_{{stat.abbrev}}.webp">
</span> </span>
<span class="stat-label stat-margin" name="{{key}}"> <span class="stat-label stat-margin" name="{{key}}">
<h4 class="stat-text-white stat-margin"><a class="roll-stat stat-margin" <h4 class="stat-text-white stat-margin"><a class="roll-stat stat-margin"
data-stat-key="{{key}}">{{stat.abbrev}}</a></h4> data-stat-key="{{key}}">{{upper stat.abbrev}}</a></h4>
</span> </span>
<select class="status-small-label color-class-common" type="text" name="system.statistics.{{key}}.level" <select class="status-small-label color-class-common" type="text" name="system.statistics.{{key}}.level"
value="{{stat.level}}" data-dtype="Number" {{#unless @root.editScore}}disabled{{/unless}}> value="{{stat.level}}" data-dtype="Number" {{#unless @root.editScore}}disabled{{/unless}}>
@ -15,7 +15,7 @@
{{/select}} {{/select}}
</select> </select>
</div> </div>
<div class="flexrow"> <div class="flexrow stat-text-white">
<span class="stat-label stat-margin" name="{{key}}">Current level</span> <span class="stat-label stat-margin" name="{{key}}">Current level</span>
<select class="status-small-label color-class-common" type="text" name="system.statistics.{{key}}.currentlevel" <select class="status-small-label color-class-common" type="text" name="system.statistics.{{key}}.currentlevel"
value="{{stat.currentlevel}}" data-dtype="Number" {{#unless @root.editScore}}disabled{{/unless}}> value="{{stat.currentlevel}}" data-dtype="Number" {{#unless @root.editScore}}disabled{{/unless}}>
@ -24,5 +24,53 @@
{{/select}} {{/select}}
</select> </select>
</div> </div>
{{#if (eq key "man")}}
<div class="flexrow stat-text-white">
<span class="stat-label stat-margin" name="{{key}}">45° Turning Arcs</span>
<select class="status-small-label color-class-common" type="text" name="system.statistics.{{key}}.turningarc45"
value="{{stat.turningarc45}}" data-dtype="Number" {{#unless @root.editScore}}disabled{{/unless}}>
{{#select stat.turningarc45}}
{{{@root.optionsLevel}}}
{{/select}}
</select>
</div>
{{/if}}
{{#if (eq key "hr")}}
<div class="flexrow stat-text-white">
<span class="stat-label stat-margin" name="{{key}}">Size</span>
<input type="text" class="input-numeric-short" name="system.statistics.{{key}}.size" value="{{stat.size}}" data-dtype="Number" />
</div>
{{/if}}
{{#if (eq key "pc")}}
<div class="flexrow stat-text-white">
<span class="stat-label stat-margin" name="{{key}}">Av NRG</span>
<input type="text" class="input-numeric-short" name="system.statistics.{{key}}.avgnrg" value="{{stat.avgnrg}}" data-dtype="Number" />
<span class="stat-label stat-margin" name="{{key}}">Cur NRG</span>
<input type="text" class="input-numeric-short" name="system.statistics.{{key}}.curnrg" value="{{stat.curnrg}}" data-dtype="Number" />
</div>
{{/if}}
{{#if (eq key "ad")}}
<div class="flexrow stat-text-white">
<span class="stat-label stat-margin" name="{{key}}">Acc Mode</span>
<select class="status-small-label color-class-common" type="text" name="system.statistics.{{key}}.accmode"
value="{{stat.accmode}}" data-dtype="String" {{#unless @root.editScore}}disabled{{/unless}}>
{{#select stat.accmode}}
<option value="acc">ACC</option>
<option value="dec">DEC</option>
{{/select}}
</select>
<span class="stat-label stat-margin" name="{{key}}">Curr. speed</span>
<select class="status-small-label color-class-common current-speed-change" type="text" name="system.statistics.{{key}}.currentspeed"
value="{{stat.currentspeed}}" data-dtype="String" {{#unless @root.editScore}}disabled{{/unless}}>
{{#select stat.currentspeed}}
{{> systems/fvtt-pegasus-rpg/templates/partial-options-vehicle-speed.html}}
{{/select}}
</select>
</div>
{{/if}}
</div> </div>
</li> </li>

View File

@ -124,8 +124,8 @@
<span class="flexrow"> <span class="flexrow">
<h3>Stun</h3> <h3>Stun</h3>
<span class="status-small-label no-grow"> <span class="status-small-label no-grow">
<a class="stun-plus plus-minus-button">+</a> <a class="vehicle-stun-plus plus-minus-button">+</a>
<a class="stun-minus plus-minus-button">&nbsp;-</a> <a class="vehicle-stun-minus plus-minus-button">&nbsp;-</a>
</span> </span>
</span> </span>
<ul class="stat-list alternate-list"> <ul class="stat-list alternate-list">
@ -253,35 +253,260 @@
<ul class="stat-list alternate-list"> <ul class="stat-list alternate-list">
<li class="item flexrow list-item items-title-bg"> <li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header"> <span class="item-name-label-header-long">
<h3><label class="items-title-text">Specialisations</label></h3> <h3><label class="items-title-text">STEP 1 - HULL TYPE</label></h3>
</span> </span>
<span class="item-field-label-short"> <span class="item-field-label-short">
<label class="short-label">Stat</label> <label class="short-label">Size</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">Hull Type</label>
</span> </span>
<span class="item-field-label-short"> <span class="item-field-label-short">
<label class="short-label">Dice</label> <label class="short-label">HR</label>
</span> </span>
<span class="item-field-label-long"> <span class="item-field-label-short">
<label class="short-label">Powergroup</label> <label class="short-label">MAN</label>
</span>
<span class="item-field-label-short">
<label class="short-label">VMS</label>
</span> </span>
</li> </li>
{{#each specs as |spec key|}} {{#each vehicleHull as |hull key|}}
<li class="item stat flexrow list-item list-item-shadow" data-item-id="{{spec._id}}"> <li class="item stat flexrow list-item list-item-shadow" data-item-id="{{hull._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img" <a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{spec.img}}" /></a> src="{{hull.img}}" /></a>
<span class="item-name-label"><a class="roll-spec">{{spec.name}}</a></span> <span class="item-name-label"><a class="roll-spec">{{hull.name}}</a></span>
<span class="item-field-label-short">{{upper spec.system.statistic}}</span> <span class="item-field-label-medium">{{hull.system.hulltype}}</span>
<span class="item-field-label-short">{{spec.system.dice}}</span> <span class="item-field-label-short">{{hull.system.hr}}</span>
{{#if spec.system.ispowergroup}} <span class="item-field-label-short">{{hull.system.man}}</span>
{{#if spec.system.powersactivated}} <span class="item-field-label-short">{{hull.system.vms}}</span>
<span class="item-field-label-long"><a class="spec-group-deactivate">Deactivate</a></span> <div class="item-filler">&nbsp;</div>
{{else}} <div class="item-controls item-controls-fixed">
<span class="item-field-label-long"><a class="spec-group-activate">Activate</a></span> <a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
{{/if}} </div>
{{else}} </li>
<span class="item-field-label-long">&nbsp;-&nbsp;</span> {{/each}}
{{/if}} </ul>
<ul class="stat-list alternate-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header-long">
<h3><label class="items-title-text">STEP 2 - POWER CORE MODULE</label></h3>
</span>
<span class="item-field-label-long">
<label class="short-label">Power Core Type</label>
</span>
<span class="item-field-label-sjort">
<label class="short-label">PC</label>
</span>
<span class="item-field-label-short">
<label class="short-label">NRG</label>
</span>
</li>
{{#each powerCoreModules as |powercore key|}}
<li class="item stat flexrow list-item list-item-shadow" data-item-id="{{powercore._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{powercore.img}}" /></a>
<span class="item-name-label"><a class="roll-spec">{{powercore.name}}</a></span>
<span class="item-field-label-medium">{{powercore.system.coretype}}</span>
<span class="item-field-label-short">{{powercore.system.pc}}</span>
<span class="item-field-label-short">{{powercore.system.nrg}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
<ul class="stat-list alternate-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header-long">
<h3><label class="items-title-text">STEP 3 - MOBILITY MODULE</label></h3>
</span>
<span class="item-field-label-long">
<label class="short-label">Vehicle Category</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">Quality</label>
</span>
<span class="item-field-label-short">
<label class="short-label">MR</label>
</span>
<span class="item-field-label-short">
<label class="short-label">TS:F</label>
</span>
<span class="item-field-label-short">
<label class="short-label">TS:S</label>
</span>
<span class="item-field-label-short">
<label class="short-label">TS:R</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">MAN Adj.</label>
</span>
</li>
{{#each mobilityModules as |mobility key|}}
<li class="item stat flexrow list-item list-item-shadow" data-item-id="{{mobility._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{mobility.img}}" /></a>
<span class="item-name-label"><a class="roll-spec">{{mobility.name}}</a></span>
<span class="item-field-label-long">{{mobility.system.vehiclecategory}}</span>
<span class="item-field-label-medium">{{mobility.system.quality}}</span>
<span class="item-field-label-short">{{mobility.system.mr}}</span>
<span class="item-field-label-short">{{mobility.system.ts_f}}</span>
<span class="item-field-label-short">{{mobility.system.ts_s}}</span>
<span class="item-field-label-short">{{mobility.system.ts_r}}</span>
<span class="item-field-label-medium">{{mobility.system.man}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
<ul class="stat-list alternate-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header-long">
<h3><label class="items-title-text">STEP 4 - PROPULSION MODULE</label></h3>
</span>
<span class="item-field-label-medium">
<label class="short-label">Quality</label>
</span>
<span class="item-field-label-short">
<label class="short-label">A/D</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">TS:F Adj.</label>
</span>
</li>
{{#each propulsionModules as |propulsion key|}}
<li class="item stat flexrow list-item list-item-shadow" data-item-id="{{propulsion._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{propulsion.img}}" /></a>
<span class="item-name-label"><a class="roll-spec">{{propulsion.name}}</a></span>
<span class="item-field-label-medium">{{propulsion.system.quality}}</span>
<span class="item-field-label-short">{{propulsion.system.ad}}</span>
<span class="item-field-label-short">{{propulsion.system.topspeed}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
<ul class="stat-list alternate-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header-long">
<h3><label class="items-title-text">STEP 5 - COMBAT MODULE</label></h3>
</span>
<span class="item-field-label-medium">
<label class="short-label">Quality</label>
</span>
<span class="item-field-label-short">
<label class="short-label">FC</label>
</span>
</li>
{{#each combatModules as |combat key|}}
<li class="item stat flexrow list-item list-item-shadow" data-item-id="{{combat._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{combat.img}}" /></a>
<span class="item-name-label"><a class="roll-spec">{{combat.name}}</a></span>
<span class="item-field-label-medium">{{combat.system.quality}}</span>
<span class="item-field-label-short">{{combat.system.fc}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
<ul class="stat-list alternate-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header-long">
<h3><label class="items-title-text">VEHICLES MODULES</label></h3>
</span>
<span class="item-field-label-long">
<label class="short-label">Category</label>
</span>
<span class="item-field-label-long">
<label class="short-label">Location</label>
</span>
<span class="item-field-label-long">
<label class="short-label">Security</label>
</span>
<span class="item-field-label-short">
<label class="short-label">NRG</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">Range</label>
</span>
<span class="item-field-label-short">
<label class="short-label">IDR</label>
</span>
</li>
{{#each vehicleModules as |vehiclemod key|}}
<li class="item stat flexrow list-item list-item-shadow" data-item-id="{{vehiclemod._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{vehiclemod.img}}" /></a>
<span class="item-name-label"><a class="roll-spec">{{vehiclemod.name}}</a></span>
<span class="item-field-label-long">{{vehiclemod.system.category}}</span>
<span class="item-field-label-long">{{vehiclemod.system.location}}</span>
<span class="item-field-label-long">{{vehiclemod.system.security}}</span>
<span class="item-field-label-short">{{vehiclemod.system.nrg}}</span>
<span class="item-field-label-medium">{{vehiclemod.system.range}}</span>
<span class="item-field-label-short">{{vehiclemod.system.idr}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
<ul class="stat-list alternate-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header-long">
<h3><label class="items-title-text">VEHICLES WEAPONS</label></h3>
</span>
<span class="item-field-label-long">
<label class="short-label">Site</label>
</span>
<span class="item-field-label-long">
<label class="short-label">Location</label>
</span>
<span class="item-field-label-short">
<label class="short-label">DMG</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">AoE</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">Turret</label>
</span>
<span class="item-field-label-short">
<label class="short-label">NRG</label>
</span>
<span class="item-field-label-short">
<label class="short-label">IDR</label>
</span>
</li>
{{#each vehicleWeaponModules as |weapon key|}}
<li class="item stat flexrow list-item list-item-shadow" data-item-id="{{weapon._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{weapon.img}}" /></a>
<span class="item-name-label"><a class="roll-spec">{{weapon.name}}</a></span>
<span class="item-field-label-long">{{weapon.system.site}}</span>
<span class="item-field-label-long">{{weapon.system.location}}</span>
<span class="item-field-label-short">{{weapon.system.dmg}}</span>
<span class="item-field-label-medium">{{weapon.system.aoe}}</span>
<span class="item-field-label-medium">{{weapon.system.turrent}}</span>
<span class="item-field-label-short">{{weapon.system.nrg}}</span>
<span class="item-field-label-short">{{weapon.system.idr}}</span>
<div class="item-filler">&nbsp;</div> <div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed"> <div class="item-controls item-controls-fixed">
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a> <a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
@ -289,9 +514,7 @@
</li> </li>
{{/each}} {{/each}}
</ul> </ul>
</div>
</div>
</div> </div>