Fix #124 containers
This commit is contained in:
parent
3c893e9be5
commit
e9ac959a81
@ -363,12 +363,17 @@ export class PegasusActorSheet extends ActorSheet {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async _onDropItem(event, dragData) {
|
async _onDropItem(event, dragData) {
|
||||||
const item = fromUuidSync(dragData.uuid)
|
const item = fromUuidSync(dragData.uuid)
|
||||||
|
let itemFull
|
||||||
if (item == undefined) {
|
if (item == undefined) {
|
||||||
item = this.actor.items.get( dragData.uuid )
|
itemFull = this.actor.items.get( dragData.uuid )
|
||||||
|
} else {
|
||||||
|
if (item && item.system) {
|
||||||
|
itemFull = item
|
||||||
|
} else {
|
||||||
|
itemFull = await PegasusUtility.searchItem( item )
|
||||||
|
}
|
||||||
}
|
}
|
||||||
console.log("Dropped", item)
|
console.log("Dropped", item, itemFull)
|
||||||
|
|
||||||
let itemFull = await PegasusUtility.searchItem( item )
|
|
||||||
let ret = await this.actor.preprocessItem( event, itemFull, true )
|
let ret = await this.actor.preprocessItem( event, itemFull, true )
|
||||||
if ( ret ) {
|
if ( ret ) {
|
||||||
super._onDropItem(event, dragData)
|
super._onDropItem(event, dragData)
|
||||||
|
@ -742,11 +742,11 @@ export class PegasusActor extends Actor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async addObjectToContainer(itemId, containerId) {
|
async addObjectToContainer(object, containerId) {
|
||||||
let container = this.items.find(item => item.id == containerId && item.system.iscontainer)
|
let container = this.items.find(item => item.id == containerId && item.system.iscontainer)
|
||||||
let object = this.items.find(item => item.id == itemId)
|
console.log("Adding container: ", container, object)
|
||||||
if (container) {
|
if (container) {
|
||||||
if (object.system.iscontainer) {
|
if (object.system?.iscontainer) {
|
||||||
ui.notifications.warn("Only 1 level of container allowed")
|
ui.notifications.warn("Only 1 level of container allowed")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -755,13 +755,13 @@ export class PegasusActor extends Actor {
|
|||||||
ui.notifications.warn("Container is already full !")
|
ui.notifications.warn("Container is already full !")
|
||||||
return
|
return
|
||||||
} else {
|
} else {
|
||||||
await this.updateEmbeddedDocuments("Item", [{ _id: object.id, 'system.containerid': containerId }])
|
this.updateEmbeddedDocuments( "Item", [{ _id: object.id, 'system.containerid':containerId }])
|
||||||
}
|
}
|
||||||
} else if (object && object.system.containerid) { // remove from container
|
} else if (object && object.system.containerid) { // remove from container
|
||||||
console.log("Removeing: ", object)
|
this.updateEmbeddedDocuments( "Item", [{ _id: object.id, 'system.containerid':"" }])
|
||||||
await this.updateEmbeddedDocuments("Item", [{ _id: object.id, 'system.containerid': "" }]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
checkVirtue(virtue) {
|
checkVirtue(virtue) {
|
||||||
let vices = this.getVices()
|
let vices = this.getVices()
|
||||||
@ -793,6 +793,9 @@ export class PegasusActor extends Actor {
|
|||||||
async preprocessItem(event, item, onDrop = false) {
|
async preprocessItem(event, item, onDrop = false) {
|
||||||
|
|
||||||
console.log("Pre-process", item)
|
console.log("Pre-process", item)
|
||||||
|
if (!item) {
|
||||||
|
return
|
||||||
|
}
|
||||||
if (item.type != "effect" && __isVehicle[item.type]) {
|
if (item.type != "effect" && __isVehicle[item.type]) {
|
||||||
ui.notifications.warn("You can't drop Vehicles item over a character sheet.")
|
ui.notifications.warn("You can't drop Vehicles item over a character sheet.")
|
||||||
return
|
return
|
||||||
@ -852,8 +855,7 @@ export class PegasusActor extends Actor {
|
|||||||
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
|
||||||
let objectID = item.id || item._id
|
this.addObjectToContainer(item, dropID)
|
||||||
this.addObjectToContainer(objectID, dropID)
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1349,21 +1351,21 @@ export class PegasusActor extends Actor {
|
|||||||
|
|
||||||
if (this.isOwner || game.user.isGM) {
|
if (this.isOwner || game.user.isGM) {
|
||||||
let updates = {}
|
let updates = {}
|
||||||
let phyDiceValue = PegasusUtility.getDiceValue(this.system.statistics.phy.value) + this.system.secondary.health.bonus + this.system.statistics.phy.mod + PegasusUtility.getDiceValue(this.system.phy.bonuseffect);
|
let phyDiceValue = PegasusUtility.getDiceValue(this.system.statistics.phy.value) + this.system.secondary.health.bonus + this.system.statistics.phy.mod + PegasusUtility.getDiceValue(this.system.statistics.phy.bonuseffect);
|
||||||
if (phyDiceValue != this.system.secondary.health.max) {
|
if (phyDiceValue != this.system.secondary.health.max) {
|
||||||
updates['system.secondary.health.max'] = phyDiceValue
|
updates['system.secondary.health.max'] = phyDiceValue
|
||||||
}
|
}
|
||||||
if (this.computeValue) {
|
if (this.computeValue) {
|
||||||
updates['system.secondary.health.value'] = phyDiceValue
|
updates['system.secondary.health.value'] = phyDiceValue
|
||||||
}
|
}
|
||||||
let mndDiceValue = PegasusUtility.getDiceValue(this.system.statistics.mnd.value) + this.system.secondary.delirium.bonus + this.system.statistics.mnd.mod + PegasusUtility.getDiceValue(this.system.mnd.bonuseffect);
|
let mndDiceValue = PegasusUtility.getDiceValue(this.system.statistics.mnd.value) + this.system.secondary.delirium.bonus + this.system.statistics.mnd.mod + PegasusUtility.getDiceValue(this.system.statistics.mnd.bonuseffect);
|
||||||
if (mndDiceValue != this.system.secondary.delirium.max) {
|
if (mndDiceValue != this.system.secondary.delirium.max) {
|
||||||
updates['system.secondary.delirium.max'] = mndDiceValue
|
updates['system.secondary.delirium.max'] = mndDiceValue
|
||||||
}
|
}
|
||||||
if (this.computeValue) {
|
if (this.computeValue) {
|
||||||
updates['system.secondary.delirium.value'] = mndDiceValue
|
updates['system.secondary.delirium.value'] = mndDiceValue
|
||||||
}
|
}
|
||||||
let stlDiceValue = PegasusUtility.getDiceValue(this.system.statistics.stl.value) + this.system.secondary.stealthhealth.bonus + this.system.statistics.stl.mod + PegasusUtility.getDiceValue(this.system.stl.bonuseffect);
|
let stlDiceValue = PegasusUtility.getDiceValue(this.system.statistics.stl.value) + this.system.secondary.stealthhealth.bonus + this.system.statistics.stl.mod + PegasusUtility.getDiceValue(this.system.statistics.stl.bonuseffect);
|
||||||
if (stlDiceValue != this.system.secondary.stealthhealth.max) {
|
if (stlDiceValue != this.system.secondary.stealthhealth.max) {
|
||||||
updates['system.secondary.stealthhealth.max'] = stlDiceValue
|
updates['system.secondary.stealthhealth.max'] = stlDiceValue
|
||||||
}
|
}
|
||||||
@ -1371,7 +1373,7 @@ export class PegasusActor extends Actor {
|
|||||||
updates['system.secondary.stealthhealth.value'] = stlDiceValue
|
updates['system.secondary.stealthhealth.value'] = stlDiceValue
|
||||||
}
|
}
|
||||||
|
|
||||||
let socDiceValue = PegasusUtility.getDiceValue(this.system.statistics.soc.value) + this.system.secondary.socialhealth.bonus + this.system.statistics.soc.mod + PegasusUtility.getDiceValue(this.system.soc.bonuseffect);
|
let socDiceValue = PegasusUtility.getDiceValue(this.system.statistics.soc.value) + this.system.secondary.socialhealth.bonus + this.system.statistics.soc.mod + PegasusUtility.getDiceValue(this.system.statistics.soc.bonuseffect);
|
||||||
if (socDiceValue != this.system.secondary.socialhealth.max) {
|
if (socDiceValue != this.system.secondary.socialhealth.max) {
|
||||||
updates['system.secondary.socialhealth.max'] = socDiceValue
|
updates['system.secondary.socialhealth.max'] = socDiceValue
|
||||||
}
|
}
|
||||||
@ -1379,7 +1381,7 @@ export class PegasusActor extends Actor {
|
|||||||
updates['system.secondary.socialhealth.value'] = socDiceValue
|
updates['system.secondary.socialhealth.value'] = socDiceValue
|
||||||
}
|
}
|
||||||
|
|
||||||
let nrgValue = PegasusUtility.getDiceValue(this.system.statistics.foc.value) + this.system.nrg.mod + this.system.statistics.foc.mod + PegasusUtility.getDiceValue(this.system.foc.bonuseffect)
|
let nrgValue = PegasusUtility.getDiceValue(this.system.statistics.foc.value) + this.system.nrg.mod + this.system.statistics.foc.mod + PegasusUtility.getDiceValue(this.system.statistics.foc.bonuseffect)
|
||||||
if (nrgValue != this.system.nrg.absolutemax) {
|
if (nrgValue != this.system.nrg.absolutemax) {
|
||||||
updates['system.nrg.absolutemax'] = nrgValue
|
updates['system.nrg.absolutemax'] = nrgValue
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user