Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| cb41123020 | |||
| 58db55d1ad |
+42
-2
@@ -720,6 +720,26 @@ i.prismrpg {
|
|||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
}
|
}
|
||||||
|
.prismrpg .tab.character-equipment .main-div .inv-section .inv-item .inv-qty {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 2px;
|
||||||
|
font-size: 11px;
|
||||||
|
min-width: 48px;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
.prismrpg .tab.character-equipment .main-div .inv-section .inv-item .inv-qty a {
|
||||||
|
font-size: 9px;
|
||||||
|
cursor: pointer;
|
||||||
|
color: rgba(0, 0, 0, 0.4);
|
||||||
|
}
|
||||||
|
.prismrpg .tab.character-equipment .main-div .inv-section .inv-item .inv-qty a:hover {
|
||||||
|
color: rgba(0, 0, 0, 0.8);
|
||||||
|
}
|
||||||
|
.prismrpg .tab.character-equipment .main-div .inv-section .inv-item .inv-qty span {
|
||||||
|
min-width: 16px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
.prismrpg .tab.character-equipment .main-div .inv-section .inv-item .inv-enc,
|
.prismrpg .tab.character-equipment .main-div .inv-section .inv-item .inv-enc,
|
||||||
.prismrpg .tab.character-equipment .main-div .inv-section .inv-item .inv-uses,
|
.prismrpg .tab.character-equipment .main-div .inv-section .inv-item .inv-uses,
|
||||||
.prismrpg .tab.character-equipment .main-div .inv-section .inv-item .inv-capacity {
|
.prismrpg .tab.character-equipment .main-div .inv-section .inv-item .inv-capacity {
|
||||||
@@ -784,6 +804,26 @@ i.prismrpg {
|
|||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
}
|
}
|
||||||
|
.prismrpg .tab.character-equipment .main-div .inv-section .inv-container-item .inv-qty {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 2px;
|
||||||
|
font-size: 10px;
|
||||||
|
min-width: 40px;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
.prismrpg .tab.character-equipment .main-div .inv-section .inv-container-item .inv-qty a {
|
||||||
|
font-size: 8px;
|
||||||
|
cursor: pointer;
|
||||||
|
color: rgba(0, 0, 0, 0.4);
|
||||||
|
}
|
||||||
|
.prismrpg .tab.character-equipment .main-div .inv-section .inv-container-item .inv-qty a:hover {
|
||||||
|
color: rgba(0, 0, 0, 0.8);
|
||||||
|
}
|
||||||
|
.prismrpg .tab.character-equipment .main-div .inv-section .inv-container-item .inv-qty span {
|
||||||
|
min-width: 14px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
.prismrpg .tab.character-equipment .main-div .inv-section .inv-container-item .inv-enc {
|
.prismrpg .tab.character-equipment .main-div .inv-section .inv-container-item .inv-enc {
|
||||||
font-size: 10px;
|
font-size: 10px;
|
||||||
color: #555;
|
color: #555;
|
||||||
@@ -4901,14 +4941,14 @@ i.prismrpg {
|
|||||||
background: linear-gradient(135deg, #dcedfc 0%, #b0d0f0 100%);
|
background: linear-gradient(135deg, #dcedfc 0%, #b0d0f0 100%);
|
||||||
border-color: #3a5a7a;
|
border-color: #3a5a7a;
|
||||||
}
|
}
|
||||||
.palette.status-effects .status-separator {
|
.status-separator {
|
||||||
grid-column: 1 / -1;
|
grid-column: 1 / -1;
|
||||||
|
display: block;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 2px;
|
height: 2px;
|
||||||
border: none;
|
border: none;
|
||||||
border-top: 2px solid rgba(255, 255, 255, 0.35);
|
border-top: 2px solid rgba(255, 255, 255, 0.35);
|
||||||
margin: 5px 0;
|
margin: 5px 0;
|
||||||
position: relative;
|
|
||||||
}
|
}
|
||||||
.application.dialog.prismrpg {
|
.application.dialog.prismrpg {
|
||||||
color: var(--color-dark-1);
|
color: var(--color-dark-1);
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 262 KiB |
+25
-2
@@ -15,6 +15,9 @@
|
|||||||
"armorType": {
|
"armorType": {
|
||||||
"label": "Armor Type"
|
"label": "Armor Type"
|
||||||
},
|
},
|
||||||
|
"quantity": {
|
||||||
|
"label": "Qty"
|
||||||
|
},
|
||||||
"cost": {
|
"cost": {
|
||||||
"label": "Cost"
|
"label": "Cost"
|
||||||
},
|
},
|
||||||
@@ -366,6 +369,9 @@
|
|||||||
"description": {
|
"description": {
|
||||||
"label": "Description"
|
"label": "Description"
|
||||||
},
|
},
|
||||||
|
"quantity": {
|
||||||
|
"label": "Qty"
|
||||||
|
},
|
||||||
"encLoad": {
|
"encLoad": {
|
||||||
"label": "Load"
|
"label": "Load"
|
||||||
},
|
},
|
||||||
@@ -479,6 +485,7 @@
|
|||||||
"Wounded": "Wounded"
|
"Wounded": "Wounded"
|
||||||
},
|
},
|
||||||
"Label": {
|
"Label": {
|
||||||
|
"quantity": "Qty",
|
||||||
"agility": "Dexterity",
|
"agility": "Dexterity",
|
||||||
"gotoToken": "Go to token",
|
"gotoToken": "Go to token",
|
||||||
"combatAction": "Combat action",
|
"combatAction": "Combat action",
|
||||||
@@ -943,13 +950,17 @@
|
|||||||
"excessBurden": "Equipped burden exceeds max — excess reduces Movement Rating",
|
"excessBurden": "Equipped burden exceeds max — excess reduces Movement Rating",
|
||||||
"assignToContainer": "Assign to container",
|
"assignToContainer": "Assign to container",
|
||||||
"removeFromContainer": "Remove from container",
|
"removeFromContainer": "Remove from container",
|
||||||
"packBurden": "Pack Burden"
|
"packBurden": "Pack Burden",
|
||||||
|
"quantityPlus": "Increase quantity",
|
||||||
|
"quantityMinus": "Decrease quantity"
|
||||||
},
|
},
|
||||||
"RollSavingThrow": "Roll Saving Throw",
|
"RollSavingThrow": "Roll Saving Throw",
|
||||||
"Dialog": {
|
"Dialog": {
|
||||||
"useConsumable": "Use Consumable",
|
"useConsumable": "Use Consumable",
|
||||||
"useConsumableContent": "Use one charge of <strong>{name}</strong>? ({uses} remaining)",
|
"useConsumableContent": "Use one charge of <strong>{name}</strong>? ({uses} remaining)",
|
||||||
"assignToContainer": "Assign to Container"
|
"assignToContainer": "Assign to Container",
|
||||||
|
"deleteItem": "Delete Item",
|
||||||
|
"deleteItemContent": "Remove last copy of <strong>{name}</strong>?"
|
||||||
},
|
},
|
||||||
"Message": {
|
"Message": {
|
||||||
"selectCoreSkill": "You must select a Core Skill for your character. Each character chooses one Core Skill at creation.",
|
"selectCoreSkill": "You must select a Core Skill for your character. Each character chooses one Core Skill at creation.",
|
||||||
@@ -1111,6 +1122,9 @@
|
|||||||
"cost": {
|
"cost": {
|
||||||
"label": "Cost"
|
"label": "Cost"
|
||||||
},
|
},
|
||||||
|
"quantity": {
|
||||||
|
"label": "Qty"
|
||||||
|
},
|
||||||
"defense": {
|
"defense": {
|
||||||
"label": "Defense Bonus"
|
"label": "Defense Bonus"
|
||||||
},
|
},
|
||||||
@@ -1372,6 +1386,9 @@
|
|||||||
"cost": {
|
"cost": {
|
||||||
"label": "Cost"
|
"label": "Cost"
|
||||||
},
|
},
|
||||||
|
"quantity": {
|
||||||
|
"label": "Qty"
|
||||||
|
},
|
||||||
"encLoad": {
|
"encLoad": {
|
||||||
"label": "Encumbrance Load"
|
"label": "Encumbrance Load"
|
||||||
},
|
},
|
||||||
@@ -1480,6 +1497,9 @@
|
|||||||
"uses": {
|
"uses": {
|
||||||
"label": "Uses"
|
"label": "Uses"
|
||||||
},
|
},
|
||||||
|
"quantity": {
|
||||||
|
"label": "Qty"
|
||||||
|
},
|
||||||
"encLoad": {
|
"encLoad": {
|
||||||
"label": "Enc. Load"
|
"label": "Enc. Load"
|
||||||
},
|
},
|
||||||
@@ -1496,6 +1516,9 @@
|
|||||||
"description": {
|
"description": {
|
||||||
"label": "Description"
|
"label": "Description"
|
||||||
},
|
},
|
||||||
|
"quantity": {
|
||||||
|
"label": "Qty"
|
||||||
|
},
|
||||||
"encLoad": {
|
"encLoad": {
|
||||||
"label": "Enc. Load"
|
"label": "Enc. Load"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -30,6 +30,8 @@ export default class PrismRPGCharacterSheet extends PrismRPGActorSheet {
|
|||||||
hpTempMinus: PrismRPGCharacterSheet.#onHpTempMinus,
|
hpTempMinus: PrismRPGCharacterSheet.#onHpTempMinus,
|
||||||
postItemToChat: PrismRPGCharacterSheet.#onPostItemToChat,
|
postItemToChat: PrismRPGCharacterSheet.#onPostItemToChat,
|
||||||
useConsumable: PrismRPGCharacterSheet.#onUseConsumable,
|
useConsumable: PrismRPGCharacterSheet.#onUseConsumable,
|
||||||
|
quantityPlus: PrismRPGCharacterSheet.#onQuantityPlus,
|
||||||
|
quantityMinus: PrismRPGCharacterSheet.#onQuantityMinus,
|
||||||
toggleContainerEquipped: PrismRPGCharacterSheet.#onToggleContainerEquipped,
|
toggleContainerEquipped: PrismRPGCharacterSheet.#onToggleContainerEquipped,
|
||||||
toggleEquipped: PrismRPGCharacterSheet.#onToggleEquipped,
|
toggleEquipped: PrismRPGCharacterSheet.#onToggleEquipped,
|
||||||
assignToContainer: PrismRPGCharacterSheet.#onAssignToContainer,
|
assignToContainer: PrismRPGCharacterSheet.#onAssignToContainer,
|
||||||
@@ -129,7 +131,7 @@ export default class PrismRPGCharacterSheet extends PrismRPGActorSheet {
|
|||||||
]
|
]
|
||||||
const burdenEquipped = equippableTypes
|
const burdenEquipped = equippableTypes
|
||||||
.filter(i => i.system.equipped)
|
.filter(i => i.system.equipped)
|
||||||
.reduce((sum, i) => sum + (i.system.encLoad ?? 0), 0)
|
.reduce((sum, i) => sum + (i.system.encLoad ?? 0) * (i.system.quantity ?? 1), 0)
|
||||||
context.burdenUsed = burdenEquipped
|
context.burdenUsed = burdenEquipped
|
||||||
// Excess equipped burden reduces Movement Rating
|
// Excess equipped burden reduces Movement Rating
|
||||||
const excessBurden = Math.max(0, burdenEquipped - context.burdenMax)
|
const excessBurden = Math.max(0, burdenEquipped - context.burdenMax)
|
||||||
@@ -202,7 +204,7 @@ export default class PrismRPGCharacterSheet extends PrismRPGActorSheet {
|
|||||||
// Pack burden = items stored in an existing container
|
// Pack burden = items stored in an existing container
|
||||||
context.packBurdenUsed = allStorable
|
context.packBurdenUsed = allStorable
|
||||||
.filter(i => i.system.containerId && containerGroups[i.system.containerId])
|
.filter(i => i.system.containerId && containerGroups[i.system.containerId])
|
||||||
.reduce((sum, i) => sum + (i.system.encLoad ?? 0), 0)
|
.reduce((sum, i) => sum + (i.system.encLoad ?? 0) * (i.system.quantity ?? 1), 0)
|
||||||
break
|
break
|
||||||
case "biography":
|
case "biography":
|
||||||
context.tab = context.tabs.biography
|
context.tab = context.tabs.biography
|
||||||
@@ -365,6 +367,31 @@ export default class PrismRPGCharacterSheet extends PrismRPGActorSheet {
|
|||||||
await item.update({ "system.equipped": !item.system.equipped })
|
await item.update({ "system.equipped": !item.system.equipped })
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static async #onQuantityPlus(event, target) {
|
||||||
|
const itemElement = target.closest("[data-item-id]")
|
||||||
|
if (!itemElement) return
|
||||||
|
const item = this.document.items.get(itemElement.dataset.itemId)
|
||||||
|
if (!item) return
|
||||||
|
await item.update({ "system.quantity": (item.system.quantity ?? 1) + 1 })
|
||||||
|
}
|
||||||
|
|
||||||
|
static async #onQuantityMinus(event, target) {
|
||||||
|
const itemElement = target.closest("[data-item-id]")
|
||||||
|
if (!itemElement) return
|
||||||
|
const item = this.document.items.get(itemElement.dataset.itemId)
|
||||||
|
if (!item) return
|
||||||
|
const newQty = (item.system.quantity ?? 1) - 1
|
||||||
|
if (newQty < 1) {
|
||||||
|
const confirmed = await foundry.applications.api.DialogV2.confirm({
|
||||||
|
window: { title: game.i18n.localize("PRISMRPG.Dialog.deleteItem") },
|
||||||
|
content: `<p>${game.i18n.format("PRISMRPG.Dialog.deleteItemContent", { name: item.name })}</p>`,
|
||||||
|
})
|
||||||
|
if (confirmed) await item.delete()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
await item.update({ "system.quantity": newQty })
|
||||||
|
}
|
||||||
|
|
||||||
static async #onAssignToContainer(event, target) {
|
static async #onAssignToContainer(event, target) {
|
||||||
const itemElement = target.closest("[data-item-id]")
|
const itemElement = target.closest("[data-item-id]")
|
||||||
if (!itemElement) return
|
if (!itemElement) return
|
||||||
|
|||||||
+71
-71
@@ -4,51 +4,51 @@
|
|||||||
*/
|
*/
|
||||||
export const AFFLICTIONS = [
|
export const AFFLICTIONS = [
|
||||||
// ── Mundane ────────────────────────────────────────────────────────────────
|
// ── Mundane ────────────────────────────────────────────────────────────────
|
||||||
{ id: "aff-alkalized", name: "PRISMRPG.Status.Alkalized", icon: "icons/svg/acid.svg", category: "affliction", typing: "mundane" },
|
{ id: "aff-alkalized", name: "PRISMRPG.Status.Alkalized", img: "icons/svg/acid.svg", category: "affliction", group: "afflictions", order: 1, typing: "mundane" },
|
||||||
{ id: "aff-bleed", name: "PRISMRPG.Status.Bleed", icon: "icons/svg/blood.svg", category: "affliction", typing: "mundane" },
|
{ id: "aff-bleed", name: "PRISMRPG.Status.Bleed", img: "icons/svg/blood.svg", category: "affliction", group: "afflictions", order: 1, typing: "mundane" },
|
||||||
{ id: "aff-blind", name: "PRISMRPG.Status.Blind", icon: "icons/svg/blind.svg", category: "affliction", typing: "mundane" },
|
{ id: "aff-blind", name: "PRISMRPG.Status.Blind", img: "icons/svg/blind.svg", category: "affliction", group: "afflictions", order: 1, typing: "mundane" },
|
||||||
{ id: "aff-deaf", name: "PRISMRPG.Status.Deaf", icon: "icons/svg/deaf.svg", category: "affliction", typing: "mundane" },
|
{ id: "aff-deaf", name: "PRISMRPG.Status.Deaf", img: "icons/svg/deaf.svg", category: "affliction", group: "afflictions", order: 1, typing: "mundane" },
|
||||||
{ id: "aff-diseased", name: "PRISMRPG.Status.Diseased", icon: "icons/svg/biohazard.svg", category: "affliction", typing: "mundane" },
|
{ id: "aff-diseased", name: "PRISMRPG.Status.Diseased", img: "icons/svg/biohazard.svg", category: "affliction", group: "afflictions", order: 1, typing: "mundane" },
|
||||||
{ id: "aff-distracted", name: "PRISMRPG.Status.Distracted", icon: "icons/svg/daze.svg", category: "affliction", typing: "mundane" },
|
{ id: "aff-distracted", name: "PRISMRPG.Status.Distracted", img: "icons/svg/daze.svg", category: "affliction", group: "afflictions", order: 1, typing: "mundane" },
|
||||||
{ id: "aff-exhaustion", name: "PRISMRPG.Status.Exhaustion", icon: "icons/svg/sleep.svg", category: "affliction", typing: "mundane" },
|
{ id: "aff-exhaustion", name: "PRISMRPG.Status.Exhaustion", img: "icons/svg/sleep.svg", category: "affliction", group: "afflictions", order: 1, typing: "mundane" },
|
||||||
{ id: "aff-frightened", name: "PRISMRPG.Status.Frightened", icon: "icons/svg/terror.svg", category: "affliction", typing: "mundane" },
|
{ id: "aff-frightened", name: "PRISMRPG.Status.Frightened", img: "icons/svg/terror.svg", category: "affliction", group: "afflictions", order: 1, typing: "mundane" },
|
||||||
{ id: "aff-marked", name: "PRISMRPG.Status.Marked", icon: "icons/svg/target.svg", category: "affliction", typing: "both" },
|
{ id: "aff-marked", name: "PRISMRPG.Status.Marked", img: "icons/svg/target.svg", category: "affliction", group: "afflictions", order: 1, typing: "both" },
|
||||||
{ id: "aff-mute", name: "PRISMRPG.Status.Mute", icon: "icons/svg/silenced.svg", category: "affliction", typing: "mundane" },
|
{ id: "aff-mute", name: "PRISMRPG.Status.Mute", img: "icons/svg/silenced.svg", category: "affliction", group: "afflictions", order: 1, typing: "mundane" },
|
||||||
{ id: "aff-paralyzed", name: "PRISMRPG.Status.Paralyzed", icon: "icons/svg/paralysis.svg", category: "affliction", typing: "mundane" },
|
{ id: "aff-paralyzed", name: "PRISMRPG.Status.Paralyzed", img: "icons/svg/paralysis.svg", category: "affliction", group: "afflictions", order: 1, typing: "mundane" },
|
||||||
{ id: "aff-petrified", name: "PRISMRPG.Status.Petrified", icon: "icons/svg/frozen.svg", category: "affliction", typing: "mundane" },
|
{ id: "aff-petrified", name: "PRISMRPG.Status.Petrified", img: "icons/svg/frozen.svg", category: "affliction", group: "afflictions", order: 1, typing: "mundane" },
|
||||||
{ id: "aff-poison", name: "PRISMRPG.Status.Poison", icon: "icons/svg/poison.svg", category: "affliction", typing: "mundane" },
|
{ id: "aff-poison", name: "PRISMRPG.Status.Poison", img: "icons/svg/poison.svg", category: "affliction", group: "afflictions", order: 1, typing: "mundane" },
|
||||||
{ id: "aff-prone", name: "PRISMRPG.Status.Prone", icon: "icons/svg/falling.svg", category: "affliction", typing: "mundane" },
|
{ id: "aff-prone", name: "PRISMRPG.Status.Prone", img: "icons/svg/falling.svg", category: "affliction", group: "afflictions", order: 1, typing: "mundane" },
|
||||||
{ id: "aff-rage", name: "PRISMRPG.Status.Rage", icon: "icons/svg/fire.svg", category: "affliction", typing: "mundane" },
|
{ id: "aff-rage", name: "PRISMRPG.Status.Rage", img: "icons/svg/fire.svg", category: "affliction", group: "afflictions", order: 1, typing: "mundane" },
|
||||||
{ id: "aff-sealed", name: "PRISMRPG.Status.Sealed", icon: "icons/svg/net.svg", category: "affliction", typing: "mundane" },
|
{ id: "aff-sealed", name: "PRISMRPG.Status.Sealed", img: "icons/svg/net.svg", category: "affliction", group: "afflictions", order: 1, typing: "mundane" },
|
||||||
{ id: "aff-staggered", name: "PRISMRPG.Status.Staggered", icon: "icons/svg/daze.svg", category: "affliction", typing: "mundane" },
|
{ id: "aff-staggered", name: "PRISMRPG.Status.Staggered", img: "icons/svg/daze.svg", category: "affliction", group: "afflictions", order: 1, typing: "mundane" },
|
||||||
{ id: "aff-stunned", name: "PRISMRPG.Status.Stunned", icon: "icons/svg/stun.svg", category: "affliction", typing: "mundane" },
|
{ id: "aff-stunned", name: "PRISMRPG.Status.Stunned", img: "icons/svg/explosion.svg", category: "affliction", group: "afflictions", order: 1, typing: "mundane" },
|
||||||
{ id: "aff-taunt", name: "PRISMRPG.Status.Taunt", icon: "icons/svg/eye.svg", category: "affliction", typing: "mundane" },
|
{ id: "aff-taunt", name: "PRISMRPG.Status.Taunt", img: "icons/svg/eye.svg", category: "affliction", group: "afflictions", order: 1, typing: "mundane" },
|
||||||
{ id: "aff-unconscious",name: "PRISMRPG.Status.Unconscious",icon: "icons/svg/unconscious.svg", category: "affliction", typing: "mundane" },
|
{ id: "aff-unconscious",name: "PRISMRPG.Status.Unconscious",img: "icons/svg/unconscious.svg", category: "affliction", group: "afflictions", order: 1, typing: "mundane" },
|
||||||
{ id: "aff-wounded", name: "PRISMRPG.Status.Wounded", icon: "icons/svg/degen.svg", category: "affliction", typing: "mundane" },
|
{ id: "aff-wounded", name: "PRISMRPG.Status.Wounded", img: "icons/svg/degen.svg", category: "affliction", group: "afflictions", order: 1, typing: "mundane" },
|
||||||
// ── Magic ──────────────────────────────────────────────────────────────────
|
// ── Magic ──────────────────────────────────────────────────────────────────
|
||||||
{ id: "aff-banished", name: "PRISMRPG.Status.Banished", icon: "icons/svg/wing.svg", category: "affliction", typing: "magic" },
|
{ id: "aff-banished", name: "PRISMRPG.Status.Banished", img: "icons/svg/wing.svg", category: "affliction", group: "afflictions", order: 1, typing: "magic" },
|
||||||
{ id: "aff-seep", name: "PRISMRPG.Status.Seep", icon: "icons/svg/acid.svg", category: "affliction", typing: "magic" },
|
{ id: "aff-seep", name: "PRISMRPG.Status.Seep", img: "icons/svg/acid.svg", category: "affliction", group: "afflictions", order: 1, typing: "magic" },
|
||||||
{ id: "aff-sightless", name: "PRISMRPG.Status.Sightless", icon: "icons/svg/blind.svg", category: "affliction", typing: "magic" },
|
{ id: "aff-sightless", name: "PRISMRPG.Status.Sightless", img: "icons/svg/blind.svg", category: "affliction", group: "afflictions", order: 1, typing: "magic" },
|
||||||
{ id: "aff-cursed", name: "PRISMRPG.Status.Cursed", icon: "icons/svg/sun.svg", category: "affliction", typing: "magic" },
|
{ id: "aff-cursed", name: "PRISMRPG.Status.Cursed", img: "icons/svg/sun.svg", category: "affliction", group: "afflictions", order: 1, typing: "magic" },
|
||||||
{ id: "aff-soundless", name: "PRISMRPG.Status.Soundless", icon: "icons/svg/deaf.svg", category: "affliction", typing: "magic" },
|
{ id: "aff-soundless", name: "PRISMRPG.Status.Soundless", img: "icons/svg/deaf.svg", category: "affliction", group: "afflictions", order: 1, typing: "magic" },
|
||||||
{ id: "aff-plagued", name: "PRISMRPG.Status.Plagued", icon: "icons/svg/biohazard.svg", category: "affliction", typing: "magic" },
|
{ id: "aff-plagued", name: "PRISMRPG.Status.Plagued", img: "icons/svg/biohazard.svg", category: "affliction", group: "afflictions", order: 1, typing: "magic" },
|
||||||
{ id: "aff-compulsed", name: "PRISMRPG.Status.Compulsed", icon: "icons/svg/eye.svg", category: "affliction", typing: "magic" },
|
{ id: "aff-compulsed", name: "PRISMRPG.Status.Compulsed", img: "icons/svg/eye.svg", category: "affliction", group: "afflictions", order: 1, typing: "magic" },
|
||||||
{ id: "aff-fatigue", name: "PRISMRPG.Status.Fatigue", icon: "icons/svg/sleep.svg", category: "affliction", typing: "magic" },
|
{ id: "aff-fatigue", name: "PRISMRPG.Status.Fatigue", img: "icons/svg/sleep.svg", category: "affliction", group: "afflictions", order: 1, typing: "magic" },
|
||||||
{ id: "aff-horror", name: "PRISMRPG.Status.Horror", icon: "icons/svg/terror.svg", category: "affliction", typing: "magic" },
|
{ id: "aff-horror", name: "PRISMRPG.Status.Horror", img: "icons/svg/terror.svg", category: "affliction", group: "afflictions", order: 1, typing: "magic" },
|
||||||
{ id: "aff-madness", name: "PRISMRPG.Status.Madness", icon: "icons/svg/daze.svg", category: "affliction", typing: "magic" },
|
{ id: "aff-madness", name: "PRISMRPG.Status.Madness", img: "icons/svg/daze.svg", category: "affliction", group: "afflictions", order: 1, typing: "magic" },
|
||||||
{ id: "aff-silenced", name: "PRISMRPG.Status.Silenced", icon: "icons/svg/silenced.svg", category: "affliction", typing: "magic" },
|
{ id: "aff-silenced", name: "PRISMRPG.Status.Silenced", img: "icons/svg/silenced.svg", category: "affliction", group: "afflictions", order: 1, typing: "magic" },
|
||||||
{ id: "aff-locked", name: "PRISMRPG.Status.Locked", icon: "icons/svg/net.svg", category: "affliction", typing: "magic" },
|
{ id: "aff-locked", name: "PRISMRPG.Status.Locked", img: "icons/svg/net.svg", category: "affliction", group: "afflictions", order: 1, typing: "magic" },
|
||||||
{ id: "aff-dazed", name: "PRISMRPG.Status.Dazed", icon: "icons/svg/daze.svg", category: "affliction", typing: "magic" },
|
{ id: "aff-dazed", name: "PRISMRPG.Status.Dazed", img: "icons/svg/daze.svg", category: "affliction", group: "afflictions", order: 1, typing: "magic" },
|
||||||
{ id: "aff-numbed", name: "PRISMRPG.Status.Numbed", icon: "icons/svg/frozen.svg", category: "affliction", typing: "magic" },
|
{ id: "aff-numbed", name: "PRISMRPG.Status.Numbed", img: "icons/svg/frozen.svg", category: "affliction", group: "afflictions", order: 1, typing: "magic" },
|
||||||
{ id: "aff-comatose", name: "PRISMRPG.Status.Comatose", icon: "icons/svg/unconscious.svg", category: "affliction", typing: "magic" },
|
{ id: "aff-comatose", name: "PRISMRPG.Status.Comatose", img: "icons/svg/unconscious.svg", category: "affliction", group: "afflictions", order: 1, typing: "magic" },
|
||||||
{ id: "aff-shattered", name: "PRISMRPG.Status.Shattered", icon: "icons/svg/blood.svg", category: "affliction", typing: "magic" },
|
{ id: "aff-shattered", name: "PRISMRPG.Status.Shattered", img: "icons/svg/blood.svg", category: "affliction", group: "afflictions", order: 1, typing: "magic" },
|
||||||
// ── Elemental (Magic) ──────────────────────────────────────────────────────
|
// ── Elemental (Magic) ──────────────────────────────────────────────────────
|
||||||
{ id: "aff-burning", name: "PRISMRPG.Status.Burning", icon: "icons/svg/fire.svg", category: "affliction", typing: "magic" },
|
{ id: "aff-burning", name: "PRISMRPG.Status.Burning", img: "icons/svg/fire.svg", category: "affliction", group: "afflictions", order: 1, typing: "magic" },
|
||||||
{ id: "aff-chilled", name: "PRISMRPG.Status.Chilled", icon: "icons/svg/frozen.svg", category: "affliction", typing: "magic" },
|
{ id: "aff-chilled", name: "PRISMRPG.Status.Chilled", img: "icons/svg/frozen.svg", category: "affliction", group: "afflictions", order: 1, typing: "magic" },
|
||||||
{ id: "aff-corroded", name: "PRISMRPG.Status.Corroded", icon: "icons/svg/acid.svg", category: "affliction", typing: "magic" },
|
{ id: "aff-corroded", name: "PRISMRPG.Status.Corroded", img: "icons/svg/acid.svg", category: "affliction", group: "afflictions", order: 1, typing: "magic" },
|
||||||
{ id: "aff-necrosis", name: "PRISMRPG.Status.Necrosis", icon: "icons/svg/degen.svg", category: "affliction", typing: "magic" },
|
{ id: "aff-necrosis", name: "PRISMRPG.Status.Necrosis", img: "icons/svg/degen.svg", category: "affliction", group: "afflictions", order: 1, typing: "magic" },
|
||||||
{ id: "aff-radiated", name: "PRISMRPG.Status.Radiated", icon: "icons/svg/lightning.svg", category: "affliction", typing: "magic" },
|
{ id: "aff-radiated", name: "PRISMRPG.Status.Radiated", img: "icons/svg/lightning.svg", category: "affliction", group: "afflictions", order: 1, typing: "magic" },
|
||||||
{ id: "aff-shocked", name: "PRISMRPG.Status.Shocked", icon: "icons/svg/lightning.svg", category: "affliction", typing: "magic" },
|
{ id: "aff-shocked", name: "PRISMRPG.Status.Shocked", img: "icons/svg/lightning.svg", category: "affliction", group: "afflictions", order: 1, typing: "magic" },
|
||||||
]
|
]
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -57,33 +57,33 @@ export const AFFLICTIONS = [
|
|||||||
*/
|
*/
|
||||||
export const IMBUEMENTS = [
|
export const IMBUEMENTS = [
|
||||||
// ── Mundane ────────────────────────────────────────────────────────────────
|
// ── Mundane ────────────────────────────────────────────────────────────────
|
||||||
{ id: "imb-aided", name: "PRISMRPG.Status.Aided", icon: "icons/svg/upgrade.svg", category: "imbuement", typing: "mundane" },
|
{ id: "imb-aided", name: "PRISMRPG.Status.Aided", img: "icons/svg/upgrade.svg", category: "imbuement", group: "imbuements", order: 2, typing: "mundane" },
|
||||||
{ id: "imb-alert", name: "PRISMRPG.Status.Alert", icon: "icons/svg/eye.svg", category: "imbuement", typing: "mundane" },
|
{ id: "imb-alert", name: "PRISMRPG.Status.Alert", img: "icons/svg/eye.svg", category: "imbuement", group: "imbuements", order: 2, typing: "mundane" },
|
||||||
{ id: "imb-alkalized", name: "PRISMRPG.Status.Alkalized", icon: "icons/svg/acid.svg", category: "imbuement", typing: "mundane" },
|
{ id: "imb-alkalized", name: "PRISMRPG.Status.Alkalized", img: "icons/svg/acid.svg", category: "imbuement", group: "imbuements", order: 2, typing: "mundane" },
|
||||||
{ id: "imb-bestowed", name: "PRISMRPG.Status.Bestowed", icon: "icons/svg/angel.svg", category: "imbuement", typing: "both" },
|
{ id: "imb-bestowed", name: "PRISMRPG.Status.Bestowed", img: "icons/svg/angel.svg", category: "imbuement", group: "imbuements", order: 2, typing: "both" },
|
||||||
{ id: "imb-concealed", name: "PRISMRPG.Status.Concealed", icon: "icons/svg/invisible.svg", category: "imbuement", typing: "mundane" },
|
{ id: "imb-concealed", name: "PRISMRPG.Status.Concealed", img: "icons/svg/invisible.svg", category: "imbuement", group: "imbuements", order: 2, typing: "mundane" },
|
||||||
{ id: "imb-enhance", name: "PRISMRPG.Status.Enhance", icon: "icons/svg/upgrade.svg", category: "imbuement", typing: "mundane" },
|
{ id: "imb-enhance", name: "PRISMRPG.Status.Enhance", img: "icons/svg/upgrade.svg", category: "imbuement", group: "imbuements", order: 2, typing: "mundane" },
|
||||||
{ id: "imb-inspired", name: "PRISMRPG.Status.Inspired", icon: "icons/svg/regen.svg", category: "imbuement", typing: "mundane" },
|
{ id: "imb-inspired", name: "PRISMRPG.Status.Inspired", img: "icons/svg/regen.svg", category: "imbuement", group: "imbuements", order: 2, typing: "mundane" },
|
||||||
{ id: "imb-keen", name: "PRISMRPG.Status.Keen", icon: "icons/svg/eye.svg", category: "imbuement", typing: "mundane" },
|
{ id: "imb-keen", name: "PRISMRPG.Status.Keen", img: "icons/svg/eye.svg", category: "imbuement", group: "imbuements", order: 2, typing: "mundane" },
|
||||||
{ id: "imb-life-drain", name: "PRISMRPG.Status.LifeDrain", icon: "icons/svg/regen.svg", category: "imbuement", typing: "mundane" },
|
{ id: "imb-life-drain", name: "PRISMRPG.Status.LifeDrain", img: "icons/svg/regen.svg", category: "imbuement", group: "imbuements", order: 2, typing: "mundane" },
|
||||||
{ id: "imb-madness", name: "PRISMRPG.Status.Madness", icon: "icons/svg/daze.svg", category: "imbuement", typing: "mundane" },
|
{ id: "imb-madness", name: "PRISMRPG.Status.Madness", img: "icons/svg/daze.svg", category: "imbuement", group: "imbuements", order: 2, typing: "mundane" },
|
||||||
{ id: "imb-prepared", name: "PRISMRPG.Status.Prepared", icon: "icons/svg/upgrade.svg", category: "imbuement", typing: "mundane" },
|
{ id: "imb-prepared", name: "PRISMRPG.Status.Prepared", img: "icons/svg/upgrade.svg", category: "imbuement", group: "imbuements", order: 2, typing: "mundane" },
|
||||||
{ id: "imb-rage", name: "PRISMRPG.Status.Rage", icon: "icons/svg/fire.svg", category: "imbuement", typing: "mundane" },
|
{ id: "imb-rage", name: "PRISMRPG.Status.Rage", img: "icons/svg/fire.svg", category: "imbuement", group: "imbuements", order: 2, typing: "mundane" },
|
||||||
{ id: "imb-reinforced", name: "PRISMRPG.Status.Reinforced", icon: "icons/svg/mage-shield.svg", category: "imbuement", typing: "mundane" },
|
{ id: "imb-reinforced", name: "PRISMRPG.Status.Reinforced", img: "icons/svg/mage-shield.svg", category: "imbuement", group: "imbuements", order: 2, typing: "mundane" },
|
||||||
{ id: "imb-renewed", name: "PRISMRPG.Status.Renewed", icon: "icons/svg/regen.svg", category: "imbuement", typing: "mundane" },
|
{ id: "imb-renewed", name: "PRISMRPG.Status.Renewed", img: "icons/svg/regen.svg", category: "imbuement", group: "imbuements", order: 2, typing: "mundane" },
|
||||||
{ id: "imb-supplied", name: "PRISMRPG.Status.Supplied", icon: "icons/svg/upgrade.svg", category: "imbuement", typing: "mundane" },
|
{ id: "imb-supplied", name: "PRISMRPG.Status.Supplied", img: "icons/svg/upgrade.svg", category: "imbuement", group: "imbuements", order: 2, typing: "mundane" },
|
||||||
{ id: "imb-surged", name: "PRISMRPG.Status.Surged", icon: "icons/svg/lightning.svg", category: "imbuement", typing: "mundane" },
|
{ id: "imb-surged", name: "PRISMRPG.Status.Surged", img: "icons/svg/lightning.svg", category: "imbuement", group: "imbuements", order: 2, typing: "mundane" },
|
||||||
{ id: "imb-trance", name: "PRISMRPG.Status.Trance", icon: "icons/svg/sleep.svg", category: "imbuement", typing: "mundane" },
|
{ id: "imb-trance", name: "PRISMRPG.Status.Trance", img: "icons/svg/sleep.svg", category: "imbuement", group: "imbuements", order: 2, typing: "mundane" },
|
||||||
// ── Magic ──────────────────────────────────────────────────────────────────
|
// ── Magic ──────────────────────────────────────────────────────────────────
|
||||||
{ id: "imb-blessed", name: "PRISMRPG.Status.Blessed", icon: "icons/svg/angel.svg", category: "imbuement", typing: "magic" },
|
{ id: "imb-blessed", name: "PRISMRPG.Status.Blessed", img: "icons/svg/angel.svg", category: "imbuement", group: "imbuements", order: 2, typing: "magic" },
|
||||||
{ id: "imb-anchored", name: "PRISMRPG.Status.Anchored", icon: "icons/svg/net.svg", category: "imbuement", typing: "magic" },
|
{ id: "imb-anchored", name: "PRISMRPG.Status.Anchored", img: "icons/svg/net.svg", category: "imbuement", group: "imbuements", order: 2, typing: "magic" },
|
||||||
{ id: "imb-saturated", name: "PRISMRPG.Status.Saturated", icon: "icons/svg/regen.svg", category: "imbuement", typing: "magic" },
|
{ id: "imb-saturated", name: "PRISMRPG.Status.Saturated", img: "icons/svg/regen.svg", category: "imbuement", group: "imbuements", order: 2, typing: "magic" },
|
||||||
{ id: "imb-invisible", name: "PRISMRPG.Status.Invisible", icon: "icons/svg/invisible.svg", category: "imbuement", typing: "magic" },
|
{ id: "imb-invisible", name: "PRISMRPG.Status.Invisible", img: "icons/svg/invisible.svg", category: "imbuement", group: "imbuements", order: 2, typing: "magic" },
|
||||||
{ id: "imb-enchanted", name: "PRISMRPG.Status.Enchanted", icon: "icons/svg/mage-shield.svg", category: "imbuement", typing: "magic" },
|
{ id: "imb-enchanted", name: "PRISMRPG.Status.Enchanted", img: "icons/svg/mage-shield.svg", category: "imbuement", group: "imbuements", order: 2, typing: "magic" },
|
||||||
{ id: "imb-heroism", name: "PRISMRPG.Status.Heroism", icon: "icons/svg/upgrade.svg", category: "imbuement", typing: "magic" },
|
{ id: "imb-heroism", name: "PRISMRPG.Status.Heroism", img: "icons/svg/upgrade.svg", category: "imbuement", group: "imbuements", order: 2, typing: "magic" },
|
||||||
{ id: "imb-mana-drain", name: "PRISMRPG.Status.ManaDrain", icon: "icons/svg/regen.svg", category: "imbuement", typing: "magic" },
|
{ id: "imb-mana-drain", name: "PRISMRPG.Status.ManaDrain", img: "icons/svg/regen.svg", category: "imbuement", group: "imbuements", order: 2, typing: "magic" },
|
||||||
{ id: "imb-fury", name: "PRISMRPG.Status.Fury", icon: "icons/svg/fire.svg", category: "imbuement", typing: "magic" },
|
{ id: "imb-fury", name: "PRISMRPG.Status.Fury", img: "icons/svg/fire.svg", category: "imbuement", group: "imbuements", order: 2, typing: "magic" },
|
||||||
{ id: "imb-warded", name: "PRISMRPG.Status.Warded", icon: "icons/svg/holy-shield.svg", category: "imbuement", typing: "magic" },
|
{ id: "imb-warded", name: "PRISMRPG.Status.Warded", img: "icons/svg/holy-shield.svg", category: "imbuement", group: "imbuements", order: 2, typing: "magic" },
|
||||||
{ id: "imb-regeneration", name: "PRISMRPG.Status.Regeneration", icon: "icons/svg/regen.svg", category: "imbuement", typing: "magic" },
|
{ id: "imb-regeneration", name: "PRISMRPG.Status.Regeneration", img: "icons/svg/regen.svg", category: "imbuement", group: "imbuements", order: 2, typing: "magic" },
|
||||||
{ id: "imb-haste", name: "PRISMRPG.Status.Haste", icon: "icons/svg/wingfoot.svg", category: "imbuement", typing: "magic" },
|
{ id: "imb-haste", name: "PRISMRPG.Status.Haste", img: "icons/svg/wingfoot.svg", category: "imbuement", group: "imbuements", order: 2, typing: "magic" },
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ export default class PrismRPGArmor extends foundry.abstract.TypeDataModel {
|
|||||||
schema.augment = new fields.StringField({ required: false, initial: "", label: "Armor Augment" })
|
schema.augment = new fields.StringField({ required: false, initial: "", label: "Armor Augment" })
|
||||||
schema.augmentDescription = new fields.HTMLField({ required: false, textSearch: true, label: "Augment Description" })
|
schema.augmentDescription = new fields.HTMLField({ required: false, textSearch: true, label: "Augment Description" })
|
||||||
|
|
||||||
|
schema.quantity = new fields.NumberField({ ...requiredInteger, initial: 1, min: 1 })
|
||||||
schema.encLoad = new fields.NumberField({ required: true, initial: 0, min: 0 })
|
schema.encLoad = new fields.NumberField({ required: true, initial: 0, min: 0 })
|
||||||
schema.equipped = new fields.BooleanField({ required: true, initial: false })
|
schema.equipped = new fields.BooleanField({ required: true, initial: false })
|
||||||
schema.isHelmet = new fields.BooleanField({ required: true, initial: false })
|
schema.isHelmet = new fields.BooleanField({ required: true, initial: false })
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ export default class PrismRPGConsumable extends foundry.abstract.TypeDataModel {
|
|||||||
schema.description = new fields.HTMLField({ required: true, textSearch: true })
|
schema.description = new fields.HTMLField({ required: true, textSearch: true })
|
||||||
schema.usesMax = new fields.NumberField({ ...requiredInteger, initial: 1, min: 1 })
|
schema.usesMax = new fields.NumberField({ ...requiredInteger, initial: 1, min: 1 })
|
||||||
schema.uses = new fields.NumberField({ ...requiredInteger, initial: 1, min: 0 })
|
schema.uses = new fields.NumberField({ ...requiredInteger, initial: 1, min: 0 })
|
||||||
|
schema.quantity = new fields.NumberField({ ...requiredInteger, initial: 1, min: 1 })
|
||||||
schema.encLoad = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 })
|
schema.encLoad = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 })
|
||||||
schema.cost = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 })
|
schema.cost = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 })
|
||||||
schema.notes = new fields.HTMLField({ required: true })
|
schema.notes = new fields.HTMLField({ required: true })
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ export default class PrismRPGEquipment extends foundry.abstract.TypeDataModel {
|
|||||||
schema.description = new fields.HTMLField({ required: true, textSearch: true })
|
schema.description = new fields.HTMLField({ required: true, textSearch: true })
|
||||||
schema.category = new fields.StringField({ required: true, initial: "coppercoin", choices: SYSTEM.EQUIPMENT_CATEGORIES })
|
schema.category = new fields.StringField({ required: true, initial: "coppercoin", choices: SYSTEM.EQUIPMENT_CATEGORIES })
|
||||||
|
|
||||||
|
schema.quantity = new fields.NumberField({ ...requiredInteger, initial: 1, min: 1 })
|
||||||
schema.encLoad = new fields.NumberField({ required: true, initial: 0, min: 0 })
|
schema.encLoad = new fields.NumberField({ required: true, initial: 0, min: 0 })
|
||||||
schema.cost = new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 })
|
schema.cost = new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 })
|
||||||
schema.money = new fields.StringField({ required: true, initial: "coppercoin", choices: SYSTEM.MONEY })
|
schema.money = new fields.StringField({ required: true, initial: "coppercoin", choices: SYSTEM.MONEY })
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ export default class PrismRPGLoot extends foundry.abstract.TypeDataModel {
|
|||||||
const schema = {}
|
const schema = {}
|
||||||
|
|
||||||
schema.description = new fields.HTMLField({ required: true, textSearch: true })
|
schema.description = new fields.HTMLField({ required: true, textSearch: true })
|
||||||
|
schema.quantity = new fields.NumberField({ ...requiredInteger, initial: 1, min: 1 })
|
||||||
schema.encLoad = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 })
|
schema.encLoad = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 })
|
||||||
schema.cost = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 })
|
schema.cost = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 })
|
||||||
schema.notes = new fields.HTMLField({ required: true })
|
schema.notes = new fields.HTMLField({ required: true })
|
||||||
|
|||||||
@@ -59,6 +59,7 @@ export default class PrismRPGShield extends foundry.abstract.TypeDataModel {
|
|||||||
})
|
})
|
||||||
|
|
||||||
// Equipment properties
|
// Equipment properties
|
||||||
|
schema.quantity = new fields.NumberField({ ...requiredInteger, initial: 1, min: 1 })
|
||||||
schema.encLoad = new fields.NumberField({ required: true, initial: 0, min: 0 })
|
schema.encLoad = new fields.NumberField({ required: true, initial: 0, min: 0 })
|
||||||
schema.cost = new fields.NumberField({ required: true, initial: 0, min: 0 })
|
schema.cost = new fields.NumberField({ required: true, initial: 0, min: 0 })
|
||||||
schema.money = new fields.StringField({ required: true, initial: "coppercoin", choices: SYSTEM.MONEY })
|
schema.money = new fields.StringField({ required: true, initial: "coppercoin", choices: SYSTEM.MONEY })
|
||||||
|
|||||||
@@ -122,6 +122,7 @@ export default class PrismRPGWeapon extends foundry.abstract.TypeDataModel {
|
|||||||
defenseBonus: new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 })
|
defenseBonus: new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 })
|
||||||
})
|
})
|
||||||
|
|
||||||
|
schema.quantity = new fields.NumberField({ ...requiredInteger, initial: 1, min: 1 })
|
||||||
schema.encLoad = new fields.NumberField({ required: true, initial: 0, min: 0 })
|
schema.encLoad = new fields.NumberField({ required: true, initial: 0, min: 0 })
|
||||||
schema.cost = new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 })
|
schema.cost = new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 })
|
||||||
schema.money = new fields.StringField({ required: true, initial: "coppercoin", choices: SYSTEM.MONEY })
|
schema.money = new fields.StringField({ required: true, initial: "coppercoin", choices: SYSTEM.MONEY })
|
||||||
|
|||||||
+40
-6
@@ -90,7 +90,7 @@ Hooks.once("init", function () {
|
|||||||
|
|
||||||
// Status Effects — Afflictions & Imbuements
|
// Status Effects — Afflictions & Imbuements
|
||||||
CONFIG.statusEffects = [
|
CONFIG.statusEffects = [
|
||||||
{ id: "dead", name: "EFFECT.StatusDead", icon: "icons/svg/skull.svg" },
|
{ id: "dead", name: "EFFECT.StatusDead", img: "icons/svg/skull.svg" },
|
||||||
...AFFLICTIONS,
|
...AFFLICTIONS,
|
||||||
...IMBUEMENTS,
|
...IMBUEMENTS,
|
||||||
]
|
]
|
||||||
@@ -280,18 +280,52 @@ Hooks.on("updateCombat", async (combat, change, _options, _userId) => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Inject a visual separator between Afflictions and Imbuements in the Token HUD status tray
|
* Inject a visual separator between Afflictions and Imbuements in the Token HUD status tray.
|
||||||
|
* Supports V11 (jQuery html, .palette.status-effects), V12 (.token-hud .status-effects),
|
||||||
|
* and V14+ (ApplicationV2, possible restructured DOM).
|
||||||
*/
|
*/
|
||||||
Hooks.on("renderTokenHUD", (_app, html) => {
|
function _injectStatusSeparator(root) {
|
||||||
const tray = html.querySelector(".status-effects")
|
const tray = (
|
||||||
if (!tray) return
|
root.querySelector(".status-effects")
|
||||||
|
|| root.querySelector(".palette.status-effects")
|
||||||
|
|| root.querySelector("[data-application-part='status-effects']")
|
||||||
|
|| root.querySelector("section.status-effects")
|
||||||
|
|| (root.id === "token-hud" && root.querySelector(".status-effects"))
|
||||||
|
)
|
||||||
|
if (!tray) return false
|
||||||
const firstImb = tray.querySelector("[data-status-id^='imb-']")
|
const firstImb = tray.querySelector("[data-status-id^='imb-']")
|
||||||
if (!firstImb) return
|
if (!firstImb) return false
|
||||||
|
if (tray.querySelector(".status-separator")) return true
|
||||||
const sep = document.createElement("div")
|
const sep = document.createElement("div")
|
||||||
sep.className = "status-separator"
|
sep.className = "status-separator"
|
||||||
firstImb.before(sep)
|
firstImb.before(sep)
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
Hooks.on("renderTokenHUD", (app, html) => {
|
||||||
|
const root = html instanceof jQuery ? html[0] : html
|
||||||
|
console.log("PRISM HUD hook", {id: root?.id, class: root?.className, trayFound: !!root?.querySelector?.(".status-effects")})
|
||||||
|
_injectStatusSeparator(root)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// V14 may render effects asynchronously / swap them without re-triggering
|
||||||
|
// renderTokenHUD; use a MutationObserver on #token-hud as safety net
|
||||||
|
{
|
||||||
|
let observed = false
|
||||||
|
const obs = new MutationObserver((mutations, self) => {
|
||||||
|
const hud = document.getElementById("token-hud")
|
||||||
|
if (!hud) return
|
||||||
|
if (!observed) {
|
||||||
|
observed = true
|
||||||
|
// once the HUD exists, watch its subtree for dynamic effect swaps
|
||||||
|
const inner = new MutationObserver(() => _injectStatusSeparator(hud))
|
||||||
|
inner.observe(hud, { childList: true, subtree: true })
|
||||||
|
_injectStatusSeparator(hud)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
obs.observe(document.body, { childList: true, subtree: true })
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a macro when dropping an entity on the hotbar
|
* Create a macro when dropping an entity on the hotbar
|
||||||
* Item - open roll dialog
|
* Item - open roll dialog
|
||||||
|
|||||||
@@ -648,6 +648,24 @@
|
|||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
}
|
}
|
||||||
|
.inv-qty {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 2px;
|
||||||
|
font-size: 11px;
|
||||||
|
min-width: 48px;
|
||||||
|
justify-content: center;
|
||||||
|
a {
|
||||||
|
font-size: 9px;
|
||||||
|
cursor: pointer;
|
||||||
|
color: rgba(0,0,0,0.4);
|
||||||
|
&:hover { color: rgba(0,0,0,0.8); }
|
||||||
|
}
|
||||||
|
span {
|
||||||
|
min-width: 16px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
.inv-enc, .inv-uses, .inv-capacity {
|
.inv-enc, .inv-uses, .inv-capacity {
|
||||||
font-size: 11px;
|
font-size: 11px;
|
||||||
color: #555;
|
color: #555;
|
||||||
@@ -710,6 +728,24 @@
|
|||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
}
|
}
|
||||||
|
.inv-qty {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 2px;
|
||||||
|
font-size: 10px;
|
||||||
|
min-width: 40px;
|
||||||
|
justify-content: center;
|
||||||
|
a {
|
||||||
|
font-size: 8px;
|
||||||
|
cursor: pointer;
|
||||||
|
color: rgba(0,0,0,0.4);
|
||||||
|
&:hover { color: rgba(0,0,0,0.8); }
|
||||||
|
}
|
||||||
|
span {
|
||||||
|
min-width: 14px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
.inv-enc {
|
.inv-enc {
|
||||||
font-size: 10px;
|
font-size: 10px;
|
||||||
color: #555;
|
color: #555;
|
||||||
|
|||||||
+2
-4
@@ -624,14 +624,12 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Token HUD — separator between Afflictions and Imbuements
|
// Token HUD — separator between Afflictions and Imbuements
|
||||||
.palette.status-effects {
|
.status-separator {
|
||||||
.status-separator {
|
|
||||||
grid-column: 1 / -1;
|
grid-column: 1 / -1;
|
||||||
|
display: block;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 2px;
|
height: 2px;
|
||||||
border: none;
|
border: none;
|
||||||
border-top: 2px solid rgba(255, 255, 255, 0.35);
|
border-top: 2px solid rgba(255, 255, 255, 0.35);
|
||||||
margin: 5px 0;
|
margin: 5px 0;
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,6 +46,14 @@
|
|||||||
label="PRISMRPG.Label.mrr"
|
label="PRISMRPG.Label.mrr"
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
{{! Quantity }}
|
||||||
|
{{formField
|
||||||
|
systemFields.quantity
|
||||||
|
value=system.quantity
|
||||||
|
localize=true
|
||||||
|
label="PRISMRPG.Label.quantity"
|
||||||
|
}}
|
||||||
|
|
||||||
{{! Encumbrance Load }}
|
{{! Encumbrance Load }}
|
||||||
{{formField
|
{{formField
|
||||||
systemFields.encLoad
|
systemFields.encLoad
|
||||||
|
|||||||
@@ -33,7 +33,12 @@
|
|||||||
<div class="inv-item {{#if item.system.equipped}}is-equipped{{/if}}" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}">
|
<div class="inv-item {{#if item.system.equipped}}is-equipped{{/if}}" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}">
|
||||||
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" data-action="postItemToChat" />
|
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" data-action="postItemToChat" />
|
||||||
<div class="inv-name">{{item.name}}</div>
|
<div class="inv-name">{{item.name}}</div>
|
||||||
<div class="inv-enc" data-tooltip="{{localize 'PRISMRPG.Label.encLoad'}}">{{item.system.encLoad}}</div>
|
<div class="inv-qty">
|
||||||
|
<a data-tooltip="{{localize 'PRISMRPG.Tooltip.quantityMinus'}}" data-action="quantityMinus" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-minus"></i></a>
|
||||||
|
<span>{{item.system.quantity}}</span>
|
||||||
|
<a data-tooltip="{{localize 'PRISMRPG.Tooltip.quantityPlus'}}" data-action="quantityPlus" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
<div class="inv-enc" data-tooltip="{{localize 'PRISMRPG.Label.encLoad'}}">{{mul item.system.encLoad item.system.quantity}}</div>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<a data-tooltip="{{localize 'PRISMRPG.Tooltip.assignToContainer'}}" data-action="assignToContainer" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-bag-shopping"></i></a>
|
<a data-tooltip="{{localize 'PRISMRPG.Tooltip.assignToContainer'}}" data-action="assignToContainer" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-bag-shopping"></i></a>
|
||||||
<a data-tooltip="{{localize 'PRISMRPG.Tooltip.toggleEquipped'}}" data-action="toggleEquipped" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}">
|
<a data-tooltip="{{localize 'PRISMRPG.Tooltip.toggleEquipped'}}" data-action="toggleEquipped" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}">
|
||||||
@@ -60,7 +65,12 @@
|
|||||||
<div class="inv-item {{#if item.system.equipped}}is-equipped{{/if}}" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}">
|
<div class="inv-item {{#if item.system.equipped}}is-equipped{{/if}}" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}">
|
||||||
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" data-action="postItemToChat" />
|
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" data-action="postItemToChat" />
|
||||||
<div class="inv-name">{{item.name}}</div>
|
<div class="inv-name">{{item.name}}</div>
|
||||||
<div class="inv-enc" data-tooltip="{{localize 'PRISMRPG.Label.encLoad'}}">{{item.system.encLoad}}</div>
|
<div class="inv-qty">
|
||||||
|
<a data-tooltip="{{localize 'PRISMRPG.Tooltip.quantityMinus'}}" data-action="quantityMinus" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-minus"></i></a>
|
||||||
|
<span>{{item.system.quantity}}</span>
|
||||||
|
<a data-tooltip="{{localize 'PRISMRPG.Tooltip.quantityPlus'}}" data-action="quantityPlus" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
<div class="inv-enc" data-tooltip="{{localize 'PRISMRPG.Label.encLoad'}}">{{mul item.system.encLoad item.system.quantity}}</div>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<a data-tooltip="{{localize 'PRISMRPG.Tooltip.assignToContainer'}}" data-action="assignToContainer" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-bag-shopping"></i></a>
|
<a data-tooltip="{{localize 'PRISMRPG.Tooltip.assignToContainer'}}" data-action="assignToContainer" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-bag-shopping"></i></a>
|
||||||
<a data-tooltip="{{localize 'PRISMRPG.Tooltip.toggleEquipped'}}" data-action="toggleEquipped" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}">
|
<a data-tooltip="{{localize 'PRISMRPG.Tooltip.toggleEquipped'}}" data-action="toggleEquipped" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}">
|
||||||
@@ -86,8 +96,13 @@
|
|||||||
<div class="inv-item inv-consumable" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}">
|
<div class="inv-item inv-consumable" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}">
|
||||||
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" data-action="postItemToChat" />
|
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" data-action="postItemToChat" />
|
||||||
<div class="inv-name">{{item.name}}</div>
|
<div class="inv-name">{{item.name}}</div>
|
||||||
|
<div class="inv-qty">
|
||||||
|
<a data-tooltip="{{localize 'PRISMRPG.Tooltip.quantityMinus'}}" data-action="quantityMinus" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-minus"></i></a>
|
||||||
|
<span>{{item.system.quantity}}</span>
|
||||||
|
<a data-tooltip="{{localize 'PRISMRPG.Tooltip.quantityPlus'}}" data-action="quantityPlus" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
<div class="inv-uses" data-tooltip="{{localize 'PRISMRPG.Tooltip.uses'}}">{{item.system.uses}}/{{item.system.usesMax}}</div>
|
<div class="inv-uses" data-tooltip="{{localize 'PRISMRPG.Tooltip.uses'}}">{{item.system.uses}}/{{item.system.usesMax}}</div>
|
||||||
<div class="inv-enc" data-tooltip="{{localize 'PRISMRPG.Label.encLoad'}}">{{item.system.encLoad}}</div>
|
<div class="inv-enc" data-tooltip="{{localize 'PRISMRPG.Label.encLoad'}}">{{mul item.system.encLoad item.system.quantity}}</div>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<a data-tooltip="{{localize 'PRISMRPG.Tooltip.assignToContainer'}}" data-action="assignToContainer" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-bag-shopping"></i></a>
|
<a data-tooltip="{{localize 'PRISMRPG.Tooltip.assignToContainer'}}" data-action="assignToContainer" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-bag-shopping"></i></a>
|
||||||
<a data-tooltip="{{localize 'PRISMRPG.Tooltip.useConsumable'}}" data-action="useConsumable" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}" {{#unless item.system.uses}}aria-disabled="true" class="disabled"{{/unless}}><i class="fas fa-flask"></i></a>
|
<a data-tooltip="{{localize 'PRISMRPG.Tooltip.useConsumable'}}" data-action="useConsumable" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}" {{#unless item.system.uses}}aria-disabled="true" class="disabled"{{/unless}}><i class="fas fa-flask"></i></a>
|
||||||
@@ -111,7 +126,12 @@
|
|||||||
<div class="inv-item {{#if item.system.equipped}}is-equipped{{/if}}" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}">
|
<div class="inv-item {{#if item.system.equipped}}is-equipped{{/if}}" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}">
|
||||||
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" data-action="postItemToChat" />
|
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" data-action="postItemToChat" />
|
||||||
<div class="inv-name">{{item.name}}</div>
|
<div class="inv-name">{{item.name}}</div>
|
||||||
<div class="inv-enc" data-tooltip="{{localize 'PRISMRPG.Label.encLoad'}}">{{item.system.encLoad}}</div>
|
<div class="inv-qty">
|
||||||
|
<a data-tooltip="{{localize 'PRISMRPG.Tooltip.quantityMinus'}}" data-action="quantityMinus" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-minus"></i></a>
|
||||||
|
<span>{{item.system.quantity}}</span>
|
||||||
|
<a data-tooltip="{{localize 'PRISMRPG.Tooltip.quantityPlus'}}" data-action="quantityPlus" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
<div class="inv-enc" data-tooltip="{{localize 'PRISMRPG.Label.encLoad'}}">{{mul item.system.encLoad item.system.quantity}}</div>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<a data-tooltip="{{localize 'PRISMRPG.Tooltip.assignToContainer'}}" data-action="assignToContainer" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-bag-shopping"></i></a>
|
<a data-tooltip="{{localize 'PRISMRPG.Tooltip.assignToContainer'}}" data-action="assignToContainer" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-bag-shopping"></i></a>
|
||||||
<a data-tooltip="{{localize 'PRISMRPG.Tooltip.toggleEquipped'}}" data-action="toggleEquipped" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}">
|
<a data-tooltip="{{localize 'PRISMRPG.Tooltip.toggleEquipped'}}" data-action="toggleEquipped" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}">
|
||||||
@@ -137,7 +157,12 @@
|
|||||||
<div class="inv-item {{#if item.system.equipped}}is-equipped{{/if}}" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}">
|
<div class="inv-item {{#if item.system.equipped}}is-equipped{{/if}}" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}">
|
||||||
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" data-action="postItemToChat" />
|
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" data-action="postItemToChat" />
|
||||||
<div class="inv-name" data-tooltip="{{{item.system.description}}}">{{item.name}}</div>
|
<div class="inv-name" data-tooltip="{{{item.system.description}}}">{{item.name}}</div>
|
||||||
<div class="inv-enc" data-tooltip="{{localize 'PRISMRPG.Label.encLoad'}}">{{item.system.encLoad}}</div>
|
<div class="inv-qty">
|
||||||
|
<a data-tooltip="{{localize 'PRISMRPG.Tooltip.quantityMinus'}}" data-action="quantityMinus" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-minus"></i></a>
|
||||||
|
<span>{{item.system.quantity}}</span>
|
||||||
|
<a data-tooltip="{{localize 'PRISMRPG.Tooltip.quantityPlus'}}" data-action="quantityPlus" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
<div class="inv-enc" data-tooltip="{{localize 'PRISMRPG.Label.encLoad'}}">{{mul item.system.encLoad item.system.quantity}}</div>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<a data-tooltip="{{localize 'PRISMRPG.Tooltip.assignToContainer'}}" data-action="assignToContainer" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-bag-shopping"></i></a>
|
<a data-tooltip="{{localize 'PRISMRPG.Tooltip.assignToContainer'}}" data-action="assignToContainer" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-bag-shopping"></i></a>
|
||||||
<a data-tooltip="{{localize 'PRISMRPG.Tooltip.toggleEquipped'}}" data-action="toggleEquipped" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}">
|
<a data-tooltip="{{localize 'PRISMRPG.Tooltip.toggleEquipped'}}" data-action="toggleEquipped" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}">
|
||||||
@@ -163,7 +188,12 @@
|
|||||||
<div class="inv-item" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}">
|
<div class="inv-item" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}">
|
||||||
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" data-action="postItemToChat" />
|
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" data-action="postItemToChat" />
|
||||||
<div class="inv-name">{{item.name}}</div>
|
<div class="inv-name">{{item.name}}</div>
|
||||||
<div class="inv-enc" data-tooltip="{{localize 'PRISMRPG.Label.encLoad'}}">{{item.system.encLoad}}</div>
|
<div class="inv-qty">
|
||||||
|
<a data-tooltip="{{localize 'PRISMRPG.Tooltip.quantityMinus'}}" data-action="quantityMinus" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-minus"></i></a>
|
||||||
|
<span>{{item.system.quantity}}</span>
|
||||||
|
<a data-tooltip="{{localize 'PRISMRPG.Tooltip.quantityPlus'}}" data-action="quantityPlus" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
<div class="inv-enc" data-tooltip="{{localize 'PRISMRPG.Label.encLoad'}}">{{mul item.system.encLoad item.system.quantity}}</div>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<a data-tooltip="{{localize 'PRISMRPG.Tooltip.assignToContainer'}}" data-action="assignToContainer" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-bag-shopping"></i></a>
|
<a data-tooltip="{{localize 'PRISMRPG.Tooltip.assignToContainer'}}" data-action="assignToContainer" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-bag-shopping"></i></a>
|
||||||
<a data-tooltip="{{localize 'PRISMRPG.Edit'}}" data-action="edit" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-edit"></i></a>
|
<a data-tooltip="{{localize 'PRISMRPG.Edit'}}" data-action="edit" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-edit"></i></a>
|
||||||
@@ -203,7 +233,12 @@
|
|||||||
<span class="inv-container-type-badge">{{item.type}}</span>
|
<span class="inv-container-type-badge">{{item.type}}</span>
|
||||||
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" data-action="postItemToChat" />
|
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" data-action="postItemToChat" />
|
||||||
<div class="inv-name">{{item.name}}</div>
|
<div class="inv-name">{{item.name}}</div>
|
||||||
<div class="inv-enc" data-tooltip="{{localize 'PRISMRPG.Label.encLoad'}}">{{item.system.encLoad}}</div>
|
<div class="inv-qty">
|
||||||
|
<a data-tooltip="{{localize 'PRISMRPG.Tooltip.quantityMinus'}}" data-action="quantityMinus" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-minus"></i></a>
|
||||||
|
<span>{{item.system.quantity}}</span>
|
||||||
|
<a data-tooltip="{{localize 'PRISMRPG.Tooltip.quantityPlus'}}" data-action="quantityPlus" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
<div class="inv-enc" data-tooltip="{{localize 'PRISMRPG.Label.encLoad'}}">{{mul item.system.encLoad item.system.quantity}}</div>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<a data-tooltip="{{localize 'PRISMRPG.Tooltip.removeFromContainer'}}" data-action="removeFromContainer" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-arrow-up-from-bracket"></i></a>
|
<a data-tooltip="{{localize 'PRISMRPG.Tooltip.removeFromContainer'}}" data-action="removeFromContainer" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-arrow-up-from-bracket"></i></a>
|
||||||
<a data-tooltip="{{localize 'PRISMRPG.Edit'}}" data-action="edit" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-edit"></i></a>
|
<a data-tooltip="{{localize 'PRISMRPG.Edit'}}" data-action="edit" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-edit"></i></a>
|
||||||
|
|||||||
@@ -324,13 +324,10 @@
|
|||||||
<div class="burden-mr-item">
|
<div class="burden-mr-item">
|
||||||
<div class="burden-display-row">
|
<div class="burden-display-row">
|
||||||
<div class="burden-label" data-tooltip="{{localize 'PRISMRPG.Tooltip.burdenCharacter'}}">BURDEN</div>
|
<div class="burden-label" data-tooltip="{{localize 'PRISMRPG.Tooltip.burdenCharacter'}}">BURDEN</div>
|
||||||
<div class="burden-used-max {{#if excessBurden}}burden-overloaded{{/if}}">
|
<div class="burden-used-max {{#if excessBurden}}burden-overloaded{{/if}}" {{#if excessBurden}}data-tooltip="{{localize 'PRISMRPG.Tooltip.excessBurden'}}"{{/if}}>
|
||||||
<span class="burden-used">{{burdenUsed}}</span>
|
<span class="burden-used">{{burdenUsed}}</span>
|
||||||
<span class="burden-separator">/</span>
|
<span class="burden-separator">/</span>
|
||||||
<span class="burden-max">{{burdenMax}}</span>
|
<span class="burden-max">{{burdenMax}}</span>
|
||||||
{{#if excessBurden}}
|
|
||||||
<span class="burden-excess" data-tooltip="{{localize 'PRISMRPG.Tooltip.excessBurden'}}">(-{{excessBurden}} MR)</span>
|
|
||||||
{{/if}}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{#if isEditMode}}
|
{{#if isEditMode}}
|
||||||
|
|||||||
@@ -16,6 +16,7 @@
|
|||||||
<legend>{{localize "PRISMRPG.Label.consumable"}}</legend>
|
<legend>{{localize "PRISMRPG.Label.consumable"}}</legend>
|
||||||
{{formField systemFields.usesMax value=system.usesMax localize=true}}
|
{{formField systemFields.usesMax value=system.usesMax localize=true}}
|
||||||
{{formField systemFields.uses value=system.uses localize=true}}
|
{{formField systemFields.uses value=system.uses localize=true}}
|
||||||
|
{{formField systemFields.quantity value=system.quantity localize=true}}
|
||||||
{{formField systemFields.encLoad value=system.encLoad localize=true}}
|
{{formField systemFields.encLoad value=system.encLoad localize=true}}
|
||||||
{{formField systemFields.cost value=system.cost localize=true}}
|
{{formField systemFields.cost value=system.cost localize=true}}
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
|
|
||||||
{{! Onglet Details }}
|
{{! Onglet Details }}
|
||||||
<div class="tab {{tabs.details.cssClass}}" data-group="primary" data-tab="details">
|
<div class="tab {{tabs.details.cssClass}}" data-group="primary" data-tab="details">
|
||||||
|
{{formField systemFields.quantity value=system.quantity localize=true}}
|
||||||
{{formField systemFields.encLoad value=system.encLoad localize=true}}
|
{{formField systemFields.encLoad value=system.encLoad localize=true}}
|
||||||
{{formField systemFields.cost value=system.cost localize=true}}
|
{{formField systemFields.cost value=system.cost localize=true}}
|
||||||
{{formField systemFields.money value=system.money localize=true}}
|
{{formField systemFields.money value=system.money localize=true}}
|
||||||
|
|||||||
@@ -14,6 +14,7 @@
|
|||||||
<div class="tab {{tabs.details.cssClass}}" data-group="primary" data-tab="details">
|
<div class="tab {{tabs.details.cssClass}}" data-group="primary" data-tab="details">
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>{{localize "PRISMRPG.Label.loot"}}</legend>
|
<legend>{{localize "PRISMRPG.Label.loot"}}</legend>
|
||||||
|
{{formField systemFields.quantity value=system.quantity localize=true}}
|
||||||
{{formField systemFields.encLoad value=system.encLoad localize=true}}
|
{{formField systemFields.encLoad value=system.encLoad localize=true}}
|
||||||
{{formField systemFields.cost value=system.cost localize=true}}
|
{{formField systemFields.cost value=system.cost localize=true}}
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|||||||
@@ -68,6 +68,13 @@
|
|||||||
|
|
||||||
<div class="align-top">
|
<div class="align-top">
|
||||||
|
|
||||||
|
{{formField
|
||||||
|
systemFields.quantity
|
||||||
|
value=system.quantity
|
||||||
|
localize=true
|
||||||
|
label="PRISMRPG.Label.quantity"
|
||||||
|
}}
|
||||||
|
|
||||||
{{formField
|
{{formField
|
||||||
systemFields.encLoad
|
systemFields.encLoad
|
||||||
value=system.encLoad
|
value=system.encLoad
|
||||||
|
|||||||
@@ -92,6 +92,13 @@
|
|||||||
label="PRISMRPG.Label.reloadAPC"
|
label="PRISMRPG.Label.reloadAPC"
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
{{formField
|
||||||
|
systemFields.quantity
|
||||||
|
value=system.quantity
|
||||||
|
localize=true
|
||||||
|
label="PRISMRPG.Label.quantity"
|
||||||
|
}}
|
||||||
|
|
||||||
{{formField
|
{{formField
|
||||||
systemFields.encLoad
|
systemFields.encLoad
|
||||||
value=system.encLoad
|
value=system.encLoad
|
||||||
|
|||||||
Reference in New Issue
Block a user