Compare commits
10 Commits
fvtt-pegas
...
fvtt-pegas
Author | SHA1 | Date | |
---|---|---|---|
6067f02aed | |||
a9d0a99129 | |||
392c76f86a | |||
262bd3b480 | |||
f048408aa1 | |||
52b7279cb8 | |||
241c7fa1ae | |||
857f36387a | |||
b185a3902d | |||
7d3f880633 |
@ -23,7 +23,8 @@ const __statBuild = [
|
|||||||
const __isVehicleUnique = { vehiclehull: 1, powercoremodule: 1, mobilitymodule: 1, propulsionmodule: 1, combatmodule: 1 }
|
const __isVehicleUnique = { vehiclehull: 1, powercoremodule: 1, mobilitymodule: 1, propulsionmodule: 1, combatmodule: 1 }
|
||||||
const __speed2Num = { fullstop: 0, crawling: 1, slow: 2, average: 3, fast: 4, extfast: 5 }
|
const __speed2Num = { fullstop: 0, crawling: 1, slow: 2, average: 3, fast: 4, extfast: 5 }
|
||||||
const __num2speed = ["fullstop", "crawling", "slow", "average", "fast", "extfast"]
|
const __num2speed = ["fullstop", "crawling", "slow", "average", "fast", "extfast"]
|
||||||
const __isVehicle = { vehiclehull: 1, powercoremodule: 1, mobilitymodule: 1, combatmodule: 1, propulsionmodule: 1, vehiclemodule: 1, vehicleweaponmodule: 1, effect: 1 }
|
const __isVehicle = { vehiclehull: 1, powercoremodule: 1, mobilitymodule: 1, combatmodule: 1,
|
||||||
|
propulsionmodule: 1, vehiclemodule: 1, vehicleweaponmodule: 1, effect: 1, equipment: 1, weapon: 1, armor: 1, shield:1, money: 1 }
|
||||||
const __bonusEffect = {
|
const __bonusEffect = {
|
||||||
name: "Crawling MAN Bonus", type: "effect", img: "systems/fvtt-pegasus-rpg/images/icons/icon_effect.webp",
|
name: "Crawling MAN Bonus", type: "effect", img: "systems/fvtt-pegasus-rpg/images/icons/icon_effect.webp",
|
||||||
system: {
|
system: {
|
||||||
@ -743,17 +744,20 @@ export class PegasusActor extends Actor {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getSubActors() {
|
getSubActors() {
|
||||||
let subActors = [];
|
let subActors = [];
|
||||||
for (let id of this.system.subactors) {
|
if (this.system.subactors) {
|
||||||
subActors.push(duplicate(game.actors.get(id)))
|
for (let id of this.system.subactors) {
|
||||||
|
subActors.push(duplicate(game.actors.get(id)))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return subActors;
|
return subActors;
|
||||||
}
|
}
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async addSubActor(subActorId) {
|
async addSubActor(subActorId) {
|
||||||
let subActors = duplicate(this.system.subactors);
|
let subActors = duplicate(this.system.subactors || []);
|
||||||
subActors.push(subActorId);
|
subActors.push(subActorId);
|
||||||
await this.update({ 'system.subactors': subActors });
|
await this.update({ 'system.subactors': subActors });
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async delSubActor(subActorId) {
|
async delSubActor(subActorId) {
|
||||||
let newArray = [];
|
let newArray = [];
|
||||||
@ -1116,13 +1120,13 @@ export class PegasusActor extends Actor {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getLevelRemaining() {
|
getLevelRemaining() {
|
||||||
return this.system.biodata.currentlevelremaining
|
return this.system.biodata?.currentlevelremaining || 0
|
||||||
}
|
}
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
modifyHeroLevelRemaining(incDec) {
|
modifyHeroLevelRemaining(incDec) {
|
||||||
let biodata = duplicate(this.system.biodata)
|
let biodata = duplicate(this.system.biodata)
|
||||||
biodata.currentlevelremaining = Math.max(biodata.currentlevelremaining + incDec, 0)
|
biodata.currentlevelremaining = Math.max(biodata.currentlevelremaining + incDec, 0)
|
||||||
this.update({ "data.biodata": biodata })
|
this.update({ "system.biodata": biodata })
|
||||||
ChatMessage.create({ content: `${this.name} has used a Hero Level to reroll !` })
|
ChatMessage.create({ content: `${this.name} has used a Hero Level to reroll !` })
|
||||||
return biodata.currentlevelremaining
|
return biodata.currentlevelremaining
|
||||||
}
|
}
|
||||||
@ -1391,26 +1395,31 @@ export class PegasusActor extends Actor {
|
|||||||
let newItems = []
|
let newItems = []
|
||||||
if (ability.system.effectsgained) {
|
if (ability.system.effectsgained) {
|
||||||
for (let effect of ability.system.effectsgained) {
|
for (let effect of ability.system.effectsgained) {
|
||||||
|
if (!effect.system) effect.system = effect.data
|
||||||
newItems.push(effect);
|
newItems.push(effect);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ability.system.powersgained) {
|
if (ability.system.powersgained) {
|
||||||
for (let power of ability.system.powersgained) {
|
for (let power of ability.system.powersgained) {
|
||||||
|
if (!power.system) power.system = power.data
|
||||||
newItems.push(power);
|
newItems.push(power);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ability.system.specialisations) {
|
if (ability.system.specialisations) {
|
||||||
for (let spec of ability.system.specialisations) {
|
for (let spec of ability.system.specialisations) {
|
||||||
|
if (!spec.system) spec.system = spec.data
|
||||||
newItems.push(spec);
|
newItems.push(spec);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ability.system.attackgained) {
|
if (ability.system.attackgained) {
|
||||||
for (let weapon of ability.system.attackgained) {
|
for (let weapon of ability.system.attackgained) {
|
||||||
|
if (!weapon.system) weapon.system = weapon.data
|
||||||
newItems.push(weapon);
|
newItems.push(weapon);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ability.system.armorgained) {
|
if (ability.system.armorgained) {
|
||||||
for (let armor of ability.system.armorgained) {
|
for (let armor of ability.system.armorgained) {
|
||||||
|
if (!armor.system) armor.system = armor.data
|
||||||
newItems.push(armor);
|
newItems.push(armor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1424,14 +1433,16 @@ export class PegasusActor extends Actor {
|
|||||||
let newItems = []
|
let newItems = []
|
||||||
await this.deleteAllItemsByType('race')
|
await this.deleteAllItemsByType('race')
|
||||||
newItems.push(race);
|
newItems.push(race);
|
||||||
|
|
||||||
console.log("DROPPED RACE", race)
|
console.log("DROPPED RACE", race)
|
||||||
for (let ability of race.system.abilities) {
|
for (let ability of race.system.abilities) {
|
||||||
|
if (!ability.system) ability.system = ability.data
|
||||||
newItems.push(ability)
|
newItems.push(ability)
|
||||||
this.applyAbility(ability, updates)
|
this.applyAbility(ability, updates)
|
||||||
}
|
}
|
||||||
if (race.system.perksgained) {
|
if (race.system.perksgained) {
|
||||||
for (let power of race.system.perks) {
|
for (let power of race.system.perks) {
|
||||||
|
if (!power.system) power.system = power.data
|
||||||
newItems.push(power);
|
newItems.push(power);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1462,7 +1473,7 @@ export class PegasusActor extends Actor {
|
|||||||
this.getIncreaseStatValue(updates, role.system.statincrease2)
|
this.getIncreaseStatValue(updates, role.system.statincrease2)
|
||||||
|
|
||||||
if (role.system.specialability.length > 0) {
|
if (role.system.specialability.length > 0) {
|
||||||
console.log("Adding ability", role.system.specialability)
|
//console.log("Adding ability", role.system.specialability)
|
||||||
newItems = newItems.concat(duplicate(role.system.specialability)) // Add new ability
|
newItems = newItems.concat(duplicate(role.system.specialability)) // Add new ability
|
||||||
this.applyAbility(role.system.specialability[0], newItems)
|
this.applyAbility(role.system.specialability[0], newItems)
|
||||||
}
|
}
|
||||||
@ -1637,22 +1648,26 @@ export class PegasusActor extends Actor {
|
|||||||
ui.notifications.warn("MR not added to Melee Damage due to Full Stop.")
|
ui.notifications.warn("MR not added to Melee Damage due to Full Stop.")
|
||||||
} else {
|
} else {
|
||||||
rollData.statVehicle = vehicle.system.statistics.mr
|
rollData.statVehicle = vehicle.system.statistics.mr
|
||||||
|
rollData.vehicleKey = "mr"
|
||||||
}
|
}
|
||||||
this.addVehicleWeapons(rollData, vehicle)
|
this.addVehicleWeapons(rollData, vehicle)
|
||||||
}
|
}
|
||||||
if (subKey == "ranged-atk") {
|
if (subKey == "ranged-atk") {
|
||||||
rollData.statVehicle = vehicle.system.statistics.fc
|
rollData.statVehicle = vehicle.system.statistics.fc
|
||||||
|
rollData.vehicleKey = "fc"
|
||||||
}
|
}
|
||||||
if (subKey == "ranged-dmg") {
|
if (subKey == "ranged-dmg") {
|
||||||
this.addVehicleWeapons(rollData, vehicle)
|
this.addVehicleWeapons(rollData, vehicle)
|
||||||
}
|
}
|
||||||
if (subKey == "defense") {
|
if (subKey == "defence") {
|
||||||
if (vehicle.isVehicleFullStop()) {
|
if (vehicle.isVehicleFullStop()) {
|
||||||
ui.notifications.warn("MAN not added to Defense due to Full Stop.")
|
ui.notifications.warn("MAN not added to Defense due to Full Stop.")
|
||||||
} else {
|
} else {
|
||||||
rollData.statVehicle = vehicle.system.statistics.man
|
rollData.statVehicle = vehicle.system.statistics.man
|
||||||
|
rollData.vehicleKey = "man"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
vehicle.addEffects(rollData, false, false, false)
|
||||||
//this.addVehiculeHindrances(rollData.effectsList, vehicle)
|
//this.addVehiculeHindrances(rollData.effectsList, vehicle)
|
||||||
//this.addVehicleBonus(rollData, vehicle)
|
//this.addVehicleBonus(rollData, vehicle)
|
||||||
}
|
}
|
||||||
@ -1848,24 +1863,35 @@ export class PegasusActor extends Actor {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
/* VEHICLE STUFF */
|
/* VEHICLE STUFF */
|
||||||
manageCurrentSpeed(speed) {
|
async manageCurrentSpeed(speed) {
|
||||||
|
// Delete any previous effect
|
||||||
|
let effect = this.items.find(effect => effect.system.isspeed != undefined)
|
||||||
|
if (effect) {
|
||||||
|
await this.deleteEmbeddedDocuments("Item", [effect.id])
|
||||||
|
}
|
||||||
|
|
||||||
if (speed == "fullstop") {
|
if (speed == "fullstop") {
|
||||||
this.update({ 'system.secondary.moverange': "nomovement" })
|
this.update({ 'system.secondary.moverange': "nomovement" })
|
||||||
}
|
}
|
||||||
if (speed == "crawling") {
|
if (speed == "crawling") {
|
||||||
this.update({ 'system.secondary.moverange': "threatzone" })
|
await this.update({ 'system.secondary.moverange': "threatzone" })
|
||||||
|
await this.manageVehicleSpeedBonus("crawling", "Crawling MAN Bonus", "man", 3)
|
||||||
}
|
}
|
||||||
if (speed == "slow") {
|
if (speed == "slow") {
|
||||||
this.update({ 'system.secondary.moverange': "close" })
|
await this.update({ 'system.secondary.moverange': "close" })
|
||||||
|
await this.manageVehicleSpeedBonus("slow", "Slow MAN Bonus", "man", 1)
|
||||||
}
|
}
|
||||||
if (speed == "average") {
|
if (speed == "average") {
|
||||||
this.update({ 'system.secondary.moverange': "medium" })
|
await this.update({ 'system.secondary.moverange': "medium" })
|
||||||
|
await this.manageVehicleSpeedBonus("average", "Avoid attack Bonus", "all", 1)
|
||||||
}
|
}
|
||||||
if (speed == "fast") {
|
if (speed == "fast") {
|
||||||
this.update({ 'system.secondary.moverange': "long" })
|
await this.update({ 'system.secondary.moverange': "long" })
|
||||||
|
await this.manageVehicleSpeedBonus("fast", "Avoid attack Bonus", "all", 3)
|
||||||
}
|
}
|
||||||
if (speed == "extfast") {
|
if (speed == "extfast") {
|
||||||
this.update({ 'system.secondary.moverange': "extreme" })
|
await this.update({ 'system.secondary.moverange': "extreme" })
|
||||||
|
await this.manageVehicleSpeedBonus("extfast", "Avoid attack Bonus", "all", 5)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1884,22 +1910,14 @@ export class PegasusActor extends Actor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
manageVehicleSpeedBonus(speed, name, stat, level) {
|
async manageVehicleSpeedBonus(speed, name, stat, level) {
|
||||||
if (this.system.statistics.ad.currentspeed == speed) {
|
let effect = duplicate(__bonusEffect)
|
||||||
if (!this.items.find(effect => effect.system.isspeed == speed)) {
|
effect.id = randomID(16)
|
||||||
let effect = duplicate(__bonusEffect)
|
effect.name = name
|
||||||
effect.name = name
|
effect.system.stataffected = stat
|
||||||
effect.system.stataffected = stat
|
effect.system.effectlevel = level
|
||||||
effect.system.effectlevel = level
|
effect.system.isspeed = speed
|
||||||
effect.system.isspeed = speed
|
await this.createEmbeddedDocuments("Item", [effect])
|
||||||
this.createEmbeddedDocuments("Item", [effect])
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
let effect = this.items.find(effect => effect.system.isspeed == speed)
|
|
||||||
if (effect) {
|
|
||||||
this.deleteEmbeddedDocuments("Item", [effect.id])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@ -1988,13 +2006,6 @@ export class PegasusActor extends Actor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
// Speed effect management
|
|
||||||
this.manageVehicleSpeedBonus("crawling", "Crawling MAN Bonus", "man", 3)
|
|
||||||
this.manageVehicleSpeedBonus("slow", "Slow MAN Bonus", "man", 1)
|
|
||||||
this.manageVehicleSpeedBonus("average", "Avoid attack Bonus", "all", 1)
|
|
||||||
this.manageVehicleSpeedBonus("fast", "Avoid attack Bonus", "all", 3)
|
|
||||||
this.manageVehicleSpeedBonus("extfast", "Avoid attack Bonus", "all", 5)
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@ -2056,6 +2067,10 @@ export class PegasusActor extends Actor {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
addCrew(actorId) {
|
addCrew(actorId) {
|
||||||
|
if (this.system.crew.length >= this.system.crewmax) {
|
||||||
|
ui.notifications.warn("Vehicle crew is already full.")
|
||||||
|
return
|
||||||
|
}
|
||||||
let crewList = duplicate(this.system.crew.filter(actorDef => actorDef.id != actorId) || [])
|
let crewList = duplicate(this.system.crew.filter(actorDef => actorDef.id != actorId) || [])
|
||||||
crewList.push({ id: actorId })
|
crewList.push({ id: actorId })
|
||||||
this.update({ 'system.crew': crewList })
|
this.update({ 'system.crew': crewList })
|
||||||
@ -2113,7 +2128,7 @@ export class PegasusActor extends Actor {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
addVehicleShields(rollData) {
|
addVehicleShields(rollData) {
|
||||||
let shields = this.items.filter( shield => shield.type == "vehiclemodule" && shield.system.activated && shield.system.shielddicevalue > 0) || []
|
let shields = this.items.filter(shield => shield.type == "vehiclemodule" && shield.system.activated && shield.system.shielddicevalue > 0) || []
|
||||||
for (let shield of shields) {
|
for (let shield of shields) {
|
||||||
rollData.vehicleShieldList.push({ label: `${shield.name} (${shield.system.arccoverage})`, type: "vehicleshield", applied: false, value: shield.system.shielddicevalue })
|
rollData.vehicleShieldList.push({ label: `${shield.name} (${shield.system.arccoverage})`, type: "vehicleshield", applied: false, value: shield.system.shielddicevalue })
|
||||||
}
|
}
|
||||||
@ -2127,7 +2142,7 @@ export class PegasusActor extends Actor {
|
|||||||
let rollData = this.getCommonRollData("hr")
|
let rollData = this.getCommonRollData("hr")
|
||||||
rollData.mode = "stat"
|
rollData.mode = "stat"
|
||||||
rollData.title = `Stat ${stat.label}`;
|
rollData.title = `Stat ${stat.label}`;
|
||||||
|
|
||||||
this.addVehicleShields(rollData)
|
this.addVehicleShields(rollData)
|
||||||
this.startRoll(rollData)
|
this.startRoll(rollData)
|
||||||
}
|
}
|
||||||
@ -2140,4 +2155,17 @@ export class PegasusActor extends Actor {
|
|||||||
this.updateEmbeddedDocuments('Item', [{ _id: mod.id, 'system.activated': !mod.system.activated }])
|
this.updateEmbeddedDocuments('Item', [{ _id: mod.id, 'system.activated': !mod.system.activated }])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
getCurrentCargoCapacity( ) {
|
||||||
|
let capacity = 0
|
||||||
|
for (let cargo of this.items) {
|
||||||
|
if (cargo.type == "equipment" || cargo.type == "weapon" || cargo.type == "armor" || cargo.type == "money" || cargo.type == "shield" ) {
|
||||||
|
let q = cargo.system.quantity || 1
|
||||||
|
capacity += q * cargo.system.weight
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return capacity
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -426,11 +426,15 @@ export class PegasusItemSheet extends ItemSheet {
|
|||||||
let data = event.dataTransfer.getData('text/plain')
|
let data = event.dataTransfer.getData('text/plain')
|
||||||
let dataItem = JSON.parse( data)
|
let dataItem = JSON.parse( data)
|
||||||
console.log("DROP", event, dataItem )
|
console.log("DROP", event, dataItem )
|
||||||
const item = fromUuidSync(dataItem.uuid)
|
let item = fromUuidSync(dataItem.uuid)
|
||||||
|
if (item.pack) {
|
||||||
|
item = await PegasusUtility.searchItem(item)
|
||||||
|
}
|
||||||
if (!item) {
|
if (!item) {
|
||||||
ui.notifications.warn("Unable to find relevant item - Aborting drag&drop " + data.uuid)
|
ui.notifications.warn("Unable to find relevant item - Aborting drag&drop " + data.uuid)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
console.log("DROP REULT", this.object.type, item.type)
|
||||||
|
|
||||||
if (this.object.type == 'virtue' ) {
|
if (this.object.type == 'virtue' ) {
|
||||||
if (item.type == 'effect') {
|
if (item.type == 'effect') {
|
||||||
|
@ -54,6 +54,12 @@ export class PegasusVehicleSheet extends ActorSheet {
|
|||||||
propulsionModules: duplicate(this.actor.getPropulsionModules()),
|
propulsionModules: duplicate(this.actor.getPropulsionModules()),
|
||||||
vehicleModules: duplicate(this.actor.getVehicleModules()),
|
vehicleModules: duplicate(this.actor.getVehicleModules()),
|
||||||
vehicleWeaponModules: duplicate(this.actor.getVehicleWeaponModules()),
|
vehicleWeaponModules: duplicate(this.actor.getVehicleWeaponModules()),
|
||||||
|
weapons: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getWeapons()) ),
|
||||||
|
armors: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getArmors())),
|
||||||
|
shields: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getShields()) ),
|
||||||
|
equipments: this.actor.checkAndPrepareEquipments(duplicate(this.actor.getEquipmentsOnly()) ),
|
||||||
|
cargoCurrent: this.actor.getCurrentCargoCapacity(),
|
||||||
|
moneys: duplicate(this.actor.getMoneys()),
|
||||||
options: this.options,
|
options: this.options,
|
||||||
owner: this.document.isOwner,
|
owner: this.document.isOwner,
|
||||||
editScore: this.options.editScore,
|
editScore: this.options.editScore,
|
||||||
@ -215,7 +221,7 @@ export class PegasusVehicleSheet extends ActorSheet {
|
|||||||
this.actor.rollPoolFromVehicle( 'per', false, "ranged-dmg");
|
this.actor.rollPoolFromVehicle( 'per', false, "ranged-dmg");
|
||||||
});
|
});
|
||||||
html.find('.defense-roll').click((event) => {
|
html.find('.defense-roll').click((event) => {
|
||||||
this.actor.rollPoolFromVehicle( 'def', true, "defence");
|
this.actor.rollPoolFromVehicle( 'agi', true, "defence");
|
||||||
});
|
});
|
||||||
html.find('.damage-resistance').click((event) => {
|
html.find('.damage-resistance').click((event) => {
|
||||||
this.actor.rollVehicleDamageResistance( );
|
this.actor.rollVehicleDamageResistance( );
|
||||||
|
@ -253,7 +253,7 @@
|
|||||||
],
|
],
|
||||||
"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.14",
|
"version": "10.0.17",
|
||||||
"download": "https://www.uberwald.me/gitea/uberwald/fvtt-pegasus-rpg/archive/fvtt-pegasus-rpg-v10.0.14.zip",
|
"download": "https://www.uberwald.me/gitea/uberwald/fvtt-pegasus-rpg/archive/fvtt-pegasus-rpg-v10.0.17.zip",
|
||||||
"background": "systems/fvtt-pegasus-rpg/images/ui/pegasus_welcome_page.webp"
|
"background": "systems/fvtt-pegasus-rpg/images/ui/pegasus_welcome_page.webp"
|
||||||
}
|
}
|
@ -201,6 +201,8 @@
|
|||||||
},
|
},
|
||||||
"vehicle": {
|
"vehicle": {
|
||||||
"crew": [],
|
"crew": [],
|
||||||
|
"crewmax": 0,
|
||||||
|
"crewmin": 0,
|
||||||
"statistics": {
|
"statistics": {
|
||||||
"fc": {
|
"fc": {
|
||||||
"label": "FC",
|
"label": "FC",
|
||||||
|
@ -7,14 +7,14 @@
|
|||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
<span class="item-field-label-long"><label>
|
<span class="item-field-label-long"><label>
|
||||||
{{equip.data.quantity}}
|
{{equip.system.quantity}}
|
||||||
(<a class="quantity-minus plus-minus-button"> -</a>/<a class="quantity-plus plus-minus-button">+</a>)
|
(<a class="quantity-minus plus-minus-button"> -</a>/<a class="quantity-plus plus-minus-button">+</a>)
|
||||||
</label>
|
</label>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<span class="item-field-label-medium">
|
<span class="item-field-label-medium">
|
||||||
{{#if (count equip.data.effects)}}
|
{{#if (count equip.system.effects)}}
|
||||||
{{#if equip.data.activated}}
|
{{#if equip.system.activated}}
|
||||||
<a class="equip-deactivate">Deactivate</a>
|
<a class="equip-deactivate">Deactivate</a>
|
||||||
{{else}}
|
{{else}}
|
||||||
<a class="equip-activate">Activate</a>
|
<a class="equip-activate">Activate</a>
|
||||||
@ -25,14 +25,14 @@
|
|||||||
</span>
|
</span>
|
||||||
<span class="item-field-label-short">
|
<span class="item-field-label-short">
|
||||||
{{#if equip.data.iscontainer}}
|
{{#if equip.data.iscontainer}}
|
||||||
{{equip.data.contentsEnc}}
|
{{equip.system.contentsEnc}}
|
||||||
{{else}}
|
{{else}}
|
||||||
{{mul equip.data.weight equip.data.quantity}}
|
{{mul equip.system.weight equip.system.quantity}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</span>
|
</span>
|
||||||
<span class="item-field-label-medium">
|
<span class="item-field-label-medium">
|
||||||
{{#if equip.data.idrDice}}
|
{{#if equip.system.idrDice}}
|
||||||
<a class="roll-idr" data-dice-value="{{equip.data.idrDice}}">{{equip.data.idrDice}}</a>
|
<a class="roll-idr" data-dice-value="{{equip.data.idrDice}}">{{equip.system.idrDice}}</a>
|
||||||
{{else}}
|
{{else}}
|
||||||
-
|
-
|
||||||
{{/if}}
|
{{/if}}
|
||||||
@ -40,9 +40,11 @@
|
|||||||
|
|
||||||
<div class="item-filler"> </div>
|
<div class="item-filler"> </div>
|
||||||
<div class="item-controls item-controls-fixed">
|
<div class="item-controls item-controls-fixed">
|
||||||
{{#if (eq level 1)}}
|
{{#if canequip}}
|
||||||
<a class="item-control item-equip" title="Worn">{{#if equip.data.equipped}}<i
|
{{#if (eq level 1)}}
|
||||||
class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a>
|
<a class="item-control item-equip" title="Worn">{{#if equip.system.equipped}}<i
|
||||||
|
class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a>
|
||||||
|
{{/if}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<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>
|
||||||
</div>
|
</div>
|
||||||
|
@ -44,6 +44,18 @@
|
|||||||
{{/if}}
|
{{/if}}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
{{else}}
|
{{else}}
|
||||||
|
|
||||||
|
{{#if (eq @root.vehicleKey effect.effect.system.stataffected)}}
|
||||||
|
<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>
|
||||||
|
{{#if effect.effect}}
|
||||||
|
<label class="generic-label">{{effect.label}} ({{upperFirst effect.effect.system.type}}, {{upperFirst effect.effect.system.genre}}, {{effect.value}})</label>
|
||||||
|
{{else}}
|
||||||
|
<label class="generic-label">{{effect.label}} ({{effect.value}})</label>
|
||||||
|
{{/if}}
|
||||||
|
</li>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
{{#if (eq @root.statKey effect.effect.system.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>
|
||||||
@ -76,6 +88,7 @@
|
|||||||
{{/if}}
|
{{/if}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
@ -11,7 +11,11 @@
|
|||||||
<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" disabled>
|
value="{{stat.level}}" data-dtype="Number" disabled>
|
||||||
{{#select stat.level}}
|
{{#select stat.level}}
|
||||||
{{{@root.optionsDiceList}}}
|
{{#if (eq key "ad")}}
|
||||||
|
{{{@root.optionsLevel}}}
|
||||||
|
{{else}}
|
||||||
|
{{{@root.optionsDiceList}}}
|
||||||
|
{{/if}}
|
||||||
{{/select}}
|
{{/select}}
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
@ -20,8 +24,12 @@
|
|||||||
<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}}>
|
||||||
{{#select stat.currentlevel}}
|
{{#select stat.currentlevel}}
|
||||||
{{{@root.optionsDiceList}}}
|
{{#if (eq key "ad")}}
|
||||||
{{/select}}
|
{{{@root.optionsLevel}}}
|
||||||
|
{{else}}
|
||||||
|
{{{@root.optionsDiceList}}}
|
||||||
|
{{/if}}
|
||||||
|
{{/select}}
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
{{#if (eq key "man")}}
|
{{#if (eq key "man")}}
|
||||||
@ -30,7 +38,7 @@
|
|||||||
<select class="status-small-label color-class-common" type="text" name="system.statistics.{{key}}.turningarc45"
|
<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}}>
|
value="{{stat.turningarc45}}" data-dtype="Number" {{#unless @root.editScore}}disabled{{/unless}}>
|
||||||
{{#select stat.turningarc45}}
|
{{#select stat.turningarc45}}
|
||||||
{{{@root.optionsDiceList}}}
|
{{{@root.optionsLevel}}}
|
||||||
{{/select}}
|
{{/select}}
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
@ -270,7 +270,7 @@
|
|||||||
<input type="text" class="input-numeric-short" name="system.modules.totalvms" value="{{data.modules.totalvms}}"
|
<input type="text" class="input-numeric-short" name="system.modules.totalvms" value="{{data.modules.totalvms}}"
|
||||||
data-dtype="Number" disabled />
|
data-dtype="Number" disabled />
|
||||||
<span class="generic-label small-label">Available</span>
|
<span class="generic-label small-label">Available</span>
|
||||||
<input type="text" class="input-numeric-short" name="system.modules.vmsavailable" value="{{data.modules.vmsAvailable}}"
|
<input type="text" class="input-numeric-short" value="{{vmsAvailable}}"
|
||||||
data-dtype="Number" disabled />
|
data-dtype="Number" disabled />
|
||||||
<span class="generic-label small-label">Used</span>
|
<span class="generic-label small-label">Used</span>
|
||||||
<input type="text" class="input-numeric-short" name="system.modules.vmsused" value="{{data.modules.vmsused}}"
|
<input type="text" class="input-numeric-short" name="system.modules.vmsused" value="{{data.modules.vmsused}}"
|
||||||
@ -553,6 +553,20 @@
|
|||||||
|
|
||||||
{{!-- Crew Tab --}}
|
{{!-- Crew Tab --}}
|
||||||
<div class="tab items" data-group="primary" data-tab="crew">
|
<div class="tab items" data-group="primary" data-tab="crew">
|
||||||
|
|
||||||
|
<div class="stat-item">
|
||||||
|
<ul class="stat-list alternate-list">
|
||||||
|
<li class="item stat flexrow list-item">
|
||||||
|
<span class="generic-label small-label "><strong>Maximum Crew Capacity</strong></span>
|
||||||
|
<input type="text" class="input-numeric-short padd-right" name="system.crewmax" value="{{data.crewmax}}"
|
||||||
|
data-dtype="Number" />
|
||||||
|
<span class="generic-label small-label"><strong>Minimum Crew Required</strong></span>
|
||||||
|
<input type="text" class="input-numeric-short" name="system.crewmin" value="{{data.crewmin}}"
|
||||||
|
data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
<ul class="item-list alternate-list">
|
<ul class="item-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">
|
||||||
@ -578,11 +592,17 @@
|
|||||||
{{!-- Cargo Tab --}}
|
{{!-- Cargo Tab --}}
|
||||||
<div class="tab equipment" data-group="primary" data-tab="cargo">
|
<div class="tab equipment" data-group="primary" data-tab="cargo">
|
||||||
|
|
||||||
<div class="flexrow">
|
<div class="stat-item">
|
||||||
<h3>Encumbrance</h3>
|
<ul class="stat-list alternate-list">
|
||||||
<span class="small-label">Current : {{encCurrent}}</span>
|
<li class="item stat flexrow list-item">
|
||||||
<span class="small-label">Capacity : {{encCapacity}}</span>
|
<span class="generic-label small-label "><strong>Cargo Capacity</strong></span>
|
||||||
<span class="small-label">Hindrance : {{encHindrance}}</span>
|
<input type="text" class="input-numeric-short padd-right" name="system.cargocapacity" value="{{data.cargocapacity}}"
|
||||||
|
data-dtype="Number" />
|
||||||
|
<span class="generic-label small-label"><strong>Total Cargo Capacity</strong></span>
|
||||||
|
<input type="text" class="input-numeric-short" value="{{cargoCurrent}}"
|
||||||
|
data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<ul class="item-list alternate-list">
|
<ul class="item-list alternate-list">
|
||||||
@ -710,8 +730,6 @@
|
|||||||
|
|
||||||
<div class="item-filler"> </div>
|
<div class="item-filler"> </div>
|
||||||
<div class="item-controls item-controls-fixed">
|
<div class="item-controls item-controls-fixed">
|
||||||
<a class="item-control item-equip" title="Worn">{{#if weapon.system.equipped}}<i
|
|
||||||
class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a>
|
|
||||||
<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>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
@ -779,8 +797,6 @@
|
|||||||
|
|
||||||
<div class="item-filler"> </div>
|
<div class="item-filler"> </div>
|
||||||
<div class="item-controls item-controls-fixed">
|
<div class="item-controls item-controls-fixed">
|
||||||
<a class="item-control item-equip" title="Worn">{{#if armor.system.equipped}}<i
|
|
||||||
class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a>
|
|
||||||
<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>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
@ -838,8 +854,6 @@
|
|||||||
</span>
|
</span>
|
||||||
<div class="item-filler"> </div>
|
<div class="item-filler"> </div>
|
||||||
<div class="item-controls item-controls-fixed">
|
<div class="item-controls item-controls-fixed">
|
||||||
<a class="item-control item-equip" title="Worn">{{#if shield.system.equipped}}<i
|
|
||||||
class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a>
|
|
||||||
<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>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
@ -869,17 +883,19 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
</li>
|
</li>
|
||||||
{{#each containersTree as |equip key|}}
|
{{#each equipments as |equip key|}}
|
||||||
{{> systems/fvtt-pegasus-rpg/templates/partial-actor-equipment.html equip=equip level=1}}
|
{{> systems/fvtt-pegasus-rpg/templates/partial-actor-equipment.html equip=equip level=1 canequip=false}}
|
||||||
<ul class="item-list list-item-shadow2 list-item-margin1">
|
|
||||||
{{#each equip.system.contents as |subgear key|}}
|
|
||||||
{{> systems/fvtt-pegasus-rpg/templates/partial-actor-equipment.html equip=subgear level=2}}
|
|
||||||
{{/each}}
|
|
||||||
</ul>
|
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
<h3>Cargo information : </h3>
|
||||||
|
<div class="form-group editor">
|
||||||
|
{{editor data.cargo.cargoinformation target="system.cargo.cargoinformation" button=true owner=owner
|
||||||
|
editable=editable}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user