NRG stuff
This commit is contained in:
@ -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
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user