@@ -26,7 +26,8 @@ export class PostedItemMessageModel extends WarhammerMessageModel {
26
26
return foundry . utils . mergeObject ( super . actions , {
27
27
haggle : this . _onHaggle ,
28
28
rollAvailability : this . _onRollAvailability ,
29
- pay : this . _onPay
29
+ pay : this . _onPay ,
30
+ quantity : this . _onQuantity
30
31
} ) ;
31
32
}
32
33
@@ -88,7 +89,7 @@ export class PostedItemMessageModel extends WarhammerMessageModel {
88
89
if ( hasItem ) {
89
90
await actor . updateEmbeddedDocuments ( "Item" , [ {
90
91
_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 ,
92
93
} ] , { fromMessage : this . parent . id } ) ;
93
94
ui . notifications . notify ( game . i18n . format ( "MARKET.ItemAppended" , { item : this . itemData . name , actor : actor . name , quantity : hasItem . system . quantity . value } ) ) ;
94
95
} else {
@@ -136,6 +137,20 @@ export class PostedItemMessageModel extends WarhammerMessageModel {
136
137
this . parent . update ( { content, "system.itemData" : itemData } ) ;
137
138
}
138
139
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
+
139
154
/**
140
155
* Creates a PostedItem Message
141
156
*
@@ -171,11 +186,13 @@ export class PostedItemMessageModel extends WarhammerMessageModel {
171
186
*/
172
187
static async _renderHTMLFromItemData ( itemData , postQuantity , retrievedBy = [ ] )
173
188
{
189
+ const originalItem = await fromUuid ( itemData . _stats . compendiumSource ) ;
174
190
let messageData = {
175
191
item : itemData ,
176
192
img : itemData . img ,
177
193
properties : new Item . implementation ( itemData ) . system . chatData ( ) ,
178
194
postQuantity,
195
+ originalItemQuantity : originalItem && originalItem . system . quantity . value !== itemData . system . quantity . value ? originalItem . system . quantity . value : 0 ,
179
196
retrievedBy : retrievedBy . join ( ", " )
180
197
} ;
181
198
0 commit comments