NRG stuff

This commit is contained in:
2022-09-18 17:30:15 +02:00
parent 9a20a96cec
commit 343ac6ab9d
6 changed files with 57 additions and 12 deletions

View File

@ -23,6 +23,7 @@ const __statBuild = [
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 __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}
/* -------------------------------------------- */
/**
@ -628,6 +629,10 @@ export class PegasusActor extends Actor {
/* -------------------------------------------- */
async preprocessItem(event, item, onDrop = false) {
if ( item.type != "effect" && __isVehicle[item.type]) {
ui.notifications.warn("You can't drop Vehicles item over a character sheet.")
return
}
// Pre-filter effects
if (item.type == 'effect') {
@ -649,6 +654,7 @@ export class PegasusActor extends Actor {
}
}
if (item.type == 'race') {
this.applyRace(item.system)
} else if (item.type == 'role') {
@ -1851,7 +1857,7 @@ export class PegasusActor extends Actor {
modules.totalvms = Number(hull.system.vms)
} else {
modules.totalvms = 0
}
}
let spaceList = this.items.filter(item => item.type == "vehiclemodule") || []
spaceList = spaceList.concat(this.items.filter(item => item.type == "vehicleweaponmodule") || [])
let space = 0
@ -1868,11 +1874,29 @@ export class PegasusActor extends Actor {
}
// Manage top speed
}
/* -------------------------------------------- */
getTotalCost( ) {
let sumCost = 0
for( let item of this.items) {
if ( __isVehicle[item.type]) {
if (item.system.cost) {
sumCost += Number(item.system.cost)
}
}
}
return sumCost
}
/* -------------------------------------------- */
async preprocessItemVehicle(event, item, onDrop = false) {
if ( item.type != "effect" && !__isVehicle[item.type]) {
ui.notifications.warn("You can't drop Character items over a vehicle sheet.")
return
}
//console.log(">>>>> item", item.type, __isVehicleUnique[item.type])
if ( __isVehicleUnique[item.type] ) {
let toDelList = []
@ -1886,7 +1910,13 @@ export class PegasusActor extends Actor {
await this.deleteEmbeddedDocuments('Item', toDelList)
}
}
// Check size
if (item.type == "vehiclemodule" || item.type == "vehicleweaponmodule") {
if ( this.system.modules.usedvms + Number(item.system.space) > this.system.modules.totalvms ) {
ChatMessage.create( { content: `No more room available to host module ${item.name}. Module is not added to the vehicle.`})
return false
}
}
return true
}