Compare commits

...

4 Commits

Author SHA1 Message Date
7d040af19a Prepare for release 2022-09-28 13:54:57 +02:00
0c6faeb9ca Fix #65 2022-09-28 13:54:06 +02:00
65d0b18191 Fix #53 2022-09-28 13:48:50 +02:00
01a2fd9ff8 Fix #52 2022-09-28 13:43:36 +02:00
4 changed files with 64 additions and 60 deletions

View File

@ -150,11 +150,11 @@ export class PegasusActor extends Actor {
return ab;
}
/* -------------------------------------------- */
getPerks() {
getPerks() {
let comp = duplicate(this.items.filter(item => item.type == 'perk') || [])
for (let perk of comp) {
if (perk.system.features.range.flag) {
perk.rangeText = PegasusUtility.getRangeText( perk.system.features.range.value)
perk.rangeText = PegasusUtility.getRangeText(perk.system.features.range.value)
}
}
return comp;
@ -362,19 +362,17 @@ export class PegasusActor extends Actor {
await this.updateEmbeddedDocuments('Item', [update]) // Updates one EmbeddedEntity
}
}
/* -------------------------------------------- */
updatePPP() {
let ppp = 0
for(let power of this.items) {
for (let power of this.items) {
if (power.type == "power") {
ppp += Number(power.system.powerlevelcost)
}
}
console.log("PPP update", ppp)
if ( ppp != this.system.ppp.spentPPP) {
console.log("PPP update2", ppp)
this.update( { 'system.ppp.spentPPP': ppp} )
if (ppp != this.system.ppp.spentPPP) {
this.update({ 'system.ppp.spentPPP': ppp })
}
}
@ -1689,7 +1687,7 @@ export class PegasusActor extends Actor {
rollData.statVehicle = vehicle.system.statistics.man
rollData.vehicleKey = "man"
}
vehicle.addVehicleShields( rollData)
vehicle.addVehicleShields(rollData)
}
vehicle.addEffects(rollData, false, false, false)
//this.addVehiculeHindrances(rollData.effectsList, vehicle)
@ -2034,7 +2032,7 @@ export class PegasusActor extends Actor {
if (this.system.statistics.hr.currentlevel == 0) {
ChatMessage.create({ content: `The vehicle ${this.name} has been destroyed !` })
}
this.processVehicleArmorShields()
}
}
@ -2096,47 +2094,6 @@ export class PegasusActor extends Actor {
}
}
// Armour management
if (item.type == "vehiclemodule" && item.system.category == "armor") {
let armorsList = this.items.filter(item => item.type == "vehiclemodule" && item.system.category == "armor") || []
armorsList.push(item)
let arcKey = item.system.location + "arc"
let arc = duplicate(this.system.arcs[arcKey])
let level = 0
for (let armour of armorsList) {
if (armour.system.armourdicevalue > 0) {
level += Number(armour.system.armourdicevalue)
}
}
if (level != Number(arc.armourlevel)) {
arc.armourlevel = level
setTimeout(500, this.update({ [`system.arcs.${arcKey}`]: arc }))
}
}
// Shield management
if (item.type == "vehiclemodule" && item.system.category == "shield") {
let shieldsList = this.items.filter(item => item.type == "vehiclemodule" && item.system.category == "shield") || []
shieldsList.push(item)
let level = 0
for (let armour of shieldsList) {
if (armour.system.shielddicevalue > 0) {
level += Number(armour.system.shielddicevalue)
}
}
let shift = 500
for( let loc of __LocationsArmour) {
let arcKey = loc + "arc"
let arc = duplicate(this.system.arcs[arcKey])
if (level != Number(arc.shieldlevel)) {
arc.shieldlevel = level
setTimeout(shift, this.update({ [`system.arcs.${arcKey}`]: arc }))
shift += 200
}
}
}
return true
}
@ -2224,7 +2181,7 @@ export class PegasusActor extends Actor {
}
/* -------------------------------------------- */
addVehicleArmors( rollData) {
addVehicleArmors(rollData) {
for (let arcKey in this.system.arcs) {
let arc = this.system.arcs[arcKey]
if (arc.armourlevel > 0) {
@ -2249,7 +2206,7 @@ export class PegasusActor extends Actor {
}
/* -------------------------------------------- */
activateVehicleModule(itemId) {
async activateVehicleModule(itemId) {
let mod = this.items.get(itemId)
if (mod) {
if (mod.system.nrg && mod.system.nrg > 0) {
@ -2259,7 +2216,7 @@ export class PegasusActor extends Actor {
ChatMessage.create({ content: `The Vehicle ${this.name} does not have enough Energy to Activate this module at this time.` })
return
}
this.updateEmbeddedDocuments('Item', [{ _id: mod.id, 'system.activated': !mod.system.activated }])
await this.updateEmbeddedDocuments('Item', [{ _id: mod.id, 'system.activated': !mod.system.activated }])
pc.actnrg += Number(mod.system.nrg)
pc.maxnrg -= Number(mod.system.nrg)
pc.curnrg -= Number(mod.system.nrg)
@ -2268,17 +2225,61 @@ export class PegasusActor extends Actor {
pc.actnrg -= Number(mod.system.nrg)
pc.maxnrg += Number(mod.system.nrg)
this.update({ 'system.statistics.pc': pc })
this.updateEmbeddedDocuments('Item', [{ _id: mod.id, 'system.activated': !mod.system.activated }])
await this.updateEmbeddedDocuments('Item', [{ _id: mod.id, 'system.activated': !mod.system.activated }])
}
} else {
this.updateEmbeddedDocuments('Item', [{ _id: mod.id, 'system.activated': !mod.system.activated }])
await this.updateEmbeddedDocuments('Item', [{ _id: mod.id, 'system.activated': !mod.system.activated }])
}
}
this.processVehicleArmorShields()
}
/* -------------------------------------------- */
processVehicleArmorShields() {
// Shield management
let shieldsList = this.items.filter(item => item.type == "vehiclemodule" && item.system.category == "shield" && item.system.activated) || []
let level = 0
for (let armour of shieldsList) {
if (armour.system.shielddicevalue > 0) {
level += Number(armour.system.shielddicevalue)
}
}
let shift = 500
for (let loc of __LocationsArmour) {
let arcKey = loc + "arc"
let arc = duplicate(this.system.arcs[arcKey])
if (level != Number(arc.shieldlevel)) {
arc.shieldlevel = level
setTimeout(shift, this.update({ [`system.arcs.${arcKey}`]: arc }))
shift += 200
}
}
// Armour management
let armorsList = this.items.filter(item => item.type == "vehiclemodule" && item.system.category == "armor" && item.system.activated) || []
for (let loc of __LocationsArmour) {
let arcKey = loc + "arc"
let arc = duplicate(this.system.arcs[arcKey])
let level = 0
for (let armour of armorsList) {
if (armour.system.location == loc && armour.system.armourdicevalue > 0) {
level += Number(armour.system.armourdicevalue)
}
}
if (level != Number(arc.armourlevel)) {
arc.armourlevel = level
setTimeout(500, this.update({ [`system.arcs.${arcKey}`]: arc }))
}
}
}
/* -------------------------------------------- */
updateMaxNrg(currentLevel) {
this.update({ 'system.statistics.pc.maxnrg': Number(currentLevel) })
}
/* -------------------------------------------- */
setTurningArc(currentLevel) {
this.update({ 'system.statistics.man.turningarc45': currentLevel })
this.update({ 'system.statistics.man.turningarc45': Number(currentLevel) })
}
/* -------------------------------------------- */

View File

@ -227,6 +227,9 @@ export class PegasusVehicleSheet extends ActorSheet {
if ( statKey == "man") {
this.actor.setTurningArc(event.currentTarget.value)
}
if ( statKey == "pc") {
this.actor.updateMaxNrg(event.currentTarget.value)
}
})
html.find('.roll-stat').click((event) => {

View File

@ -253,7 +253,7 @@
],
"title": "Pegasus RPG",
"url": "https://www.uberwald.me/data/files/fvtt-pegasus-rpg",
"version": "10.0.20",
"download": "https://www.uberwald.me/gitea/uberwald/fvtt-pegasus-rpg/archive/fvtt-pegasus-rpg-v10.0.20.zip",
"version": "10.0.21",
"download": "https://www.uberwald.me/gitea/uberwald/fvtt-pegasus-rpg/archive/fvtt-pegasus-rpg-v10.0.21.zip",
"background": "systems/fvtt-pegasus-rpg/images/ui/pegasus_welcome_page.webp"
}

View File

@ -115,8 +115,8 @@
<option value="none0">==== Combat Arcs</option>
<option value="d4">Combat Arc Flank (Grey) d4</option>
<option value="d6">Combat Arc Blind Spot (Red) d6</option>
<option value="d6">Slight cover d4</option>
<option value="none1">===== Cover defence</option>
<option value="d4">Slight cover d4</option>
<option value="d8">Half cover d8</option>
<option value="d12">Full cover d12</option>
<option value="d12">Full cover d12</option>