Skip to content

Commit 4bf9976

Browse files
committed
fix: Incorrect item count added
feat: Add option to change the quantity of items for stated price feat: Add info about the original quantity of item
1 parent f71cee9 commit 4bf9976

File tree

3 files changed

+27
-3
lines changed

3 files changed

+27
-3
lines changed

src/model/message/posted-item.js

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@ export class PostedItemMessageModel extends WarhammerMessageModel {
2626
return foundry.utils.mergeObject(super.actions, {
2727
haggle : this._onHaggle,
2828
rollAvailability : this._onRollAvailability,
29-
pay : this._onPay
29+
pay : this._onPay,
30+
quantity: this._onQuantity
3031
});
3132
}
3233

@@ -88,7 +89,7 @@ export class PostedItemMessageModel extends WarhammerMessageModel {
8889
if(hasItem) {
8990
await actor.updateEmbeddedDocuments("Item", [{
9091
_id : hasItem.id,
91-
"system.quantity.value" : hasItem.system.quantity.value + 1,
92+
"system.quantity.value" : hasItem.system.quantity.value + this.itemData.system.quantity.value,
9293
}], {fromMessage: this.parent.id});
9394
ui.notifications.notify(game.i18n.format("MARKET.ItemAppended", { item: this.itemData.name, actor : actor.name, quantity: hasItem.system.quantity.value }));
9495
} else {
@@ -136,6 +137,20 @@ export class PostedItemMessageModel extends WarhammerMessageModel {
136137
this.parent.update({content, "system.itemData" : itemData});
137138
}
138139

140+
/**
141+
* Increases or decreases the quantity of the item by 1
142+
*
143+
* @param {Event} ev Click event
144+
* @param {HTMLElement} target Button/element clicked
145+
*/
146+
static async _onQuantity(ev, target)
147+
{
148+
let itemData = foundry.utils.deepClone(this.itemData);
149+
itemData.system.quantity.value += target.dataset.type == "up" ? 1 : -1;
150+
let content = await this.constructor._renderHTMLFromItemData(itemData, this.postQuantity, this.retrievedBy);
151+
this.parent.update({content, "system.itemData" : itemData});
152+
}
153+
139154
/**
140155
* Creates a PostedItem Message
141156
*
@@ -171,11 +186,13 @@ export class PostedItemMessageModel extends WarhammerMessageModel {
171186
*/
172187
static async _renderHTMLFromItemData(itemData, postQuantity, retrievedBy=[])
173188
{
189+
const originalItem = await fromUuid(itemData._stats.compendiumSource);
174190
let messageData = {
175191
item : itemData,
176192
img : itemData.img,
177193
properties : new Item.implementation(itemData).system.chatData(),
178194
postQuantity,
195+
originalItemQuantity: originalItem && originalItem.system.quantity.value !== itemData.system.quantity.value ? originalItem.system.quantity.value : 0,
179196
retrievedBy : retrievedBy.join(", ")
180197
};
181198

static/lang/en.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1134,6 +1134,7 @@
11341134
"MARKET.NotifyUserMustBePlayer": "Must be a player to click on PAY",
11351135
"MARKET.ItemAdded" : "{item} added to {actor}",
11361136
"MARKET.ItemAppended" : "{actor} now has {quantity} {item}s",
1137+
"MARKET.OriginalQuantity" : "Original item quantity for stated price:",
11371138
"Post Quantity" : "Post Quantity",
11381139

11391140
"WFRP4E.TrappingType.Weapon" : "Weapons",

static/templates/chat/post-item.hbs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,13 @@
88
<div class="card-content">{{{item.system.description.value}}}</div>
99

1010
{{#if item.system.quantity}}
11-
<span><strong>{{localize "Quantity"}}</strong>: {{item.system.quantity.value}}</span><br>
11+
<span><strong>{{localize "Quantity"}}</strong>: {{item.system.quantity.value}}
12+
<a data-action="quantity" data-type="up"><i class="fas fa-caret-up"></i></a>
13+
<a data-action="quantity" data-type="down"><i class="fas fa-caret-down"></i></a>
14+
{{#if (gt originalItemQuantity 0)}}
15+
<a style="opacity: 0.5" data-tooltip="{{localize "MARKET.OriginalQuantity"}} {{originalItemQuantity}}" data-tooltip-direction="UP" ><i class="fa-solid fa-circle-info"></i></a>
16+
{{/if}}</span>
17+
<br>
1218
{{/if}}
1319
{{#each properties as |property p|}}
1420
<span>{{{property}}}</span><br>

0 commit comments

Comments
 (0)