@@ -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
0 commit comments