Improve how capacity consumption calculations are performed
This commit is contained in:
parent
cf109a6ed1
commit
aa5c6d5aba
6 changed files with 38 additions and 2 deletions
|
|
@ -1 +1,12 @@
|
|||
export class DotDungeonItem extends Item {};
|
||||
export class DotDungeonItem extends Item {
|
||||
get usedCapacity() {
|
||||
let capacity = 0;
|
||||
if (this.system.uses_inventory_slot && this.system.quantity > 0) {
|
||||
capacity++;
|
||||
};
|
||||
if (this.system.quantity_affects_used_capacity) {
|
||||
capacity *= this.system.quantity;
|
||||
};
|
||||
return capacity;
|
||||
};
|
||||
};
|
||||
|
|
|
|||
9
module/documents/Item/Material.mjs
Normal file
9
module/documents/Item/Material.mjs
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
import { DotDungeonItem } from "./GenericItem.mjs";
|
||||
|
||||
export class Material extends DotDungeonItem {
|
||||
get usedCapacity() {
|
||||
let affects = game.settings.get(`dotdungeon`, `materialsAffectCapacity`);
|
||||
console.log(`materialsAffectCapacity =`, affects)
|
||||
return affects ? super.usedCapacity : 0;
|
||||
};
|
||||
};
|
||||
|
|
@ -1,8 +1,10 @@
|
|||
import { DotDungeonItem } from "./GenericItem.mjs";
|
||||
import { Aspect } from "./Aspect.mjs";
|
||||
import { Material } from "./Material.mjs";
|
||||
|
||||
const classes = {
|
||||
aspect: Aspect,
|
||||
material: Material,
|
||||
};
|
||||
|
||||
const defaultClass = DotDungeonItem;
|
||||
|
|
|
|||
|
|
@ -14,6 +14,10 @@ export class CommonItemData extends foundry.abstract.TypeDataModel {
|
|||
initial: true,
|
||||
nullable: false,
|
||||
}),
|
||||
quantity_affects_used_capacity: new fields.BooleanField({
|
||||
initial: true,
|
||||
nullable: false,
|
||||
}),
|
||||
buy: new fields.NumberField({
|
||||
initial: null,
|
||||
nullable: true,
|
||||
|
|
|
|||
|
|
@ -9,6 +9,16 @@ export default function() {
|
|||
requiresReload: false,
|
||||
});
|
||||
|
||||
game.settings.register(`dotdungeon`, `materialsAffectCapacity`, {
|
||||
name: `dotdungeon.settings.materialsAffectCapacity.name`,
|
||||
hint: `dotdungeon.settings.materialsAffectCapacity.description`,
|
||||
scope: `world`,
|
||||
config: true,
|
||||
type: Boolean,
|
||||
default: true,
|
||||
requiresReload: false,
|
||||
});
|
||||
|
||||
game.settings.register(`dotdungeon`, `resourcesOrSupplies`, {
|
||||
name: `dotdungeon.settings.resourcesOrSupplies.name`,
|
||||
hint: `dotdungeon.settings.resourcesOrSupplies.description`,
|
||||
|
|
|
|||
|
|
@ -144,7 +144,7 @@ export class PlayerSheetv2 extends GenericActorSheet {
|
|||
get #inventoryCapacity() {
|
||||
return {
|
||||
used: this.actor.items
|
||||
.reduce((sum, i) => sum + (i.system.uses_inventory_slot ? i.system.quantity : 0), 0),
|
||||
.reduce((sum, i) => sum + i.usedCapacity, 0),
|
||||
max: this.actor.system.inventory_slots,
|
||||
};
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue