/* @Packet name Reward @Packet identifier 131 @Description Contains information about rewards the player got @Data pId @Structure - */ module.exports = { init: (isRegular, length) => { const maxEntries = Math.floor((255 - (1 + 2)) / 6); let submittedLength = length; if (length > maxEntries) length = maxEntries; submittedLength -= length; const offset = 3; const packetLength = length * 6 + 1 + 2; let i = 0; let j = 0; const buffer = new ArrayBuffer(packetLength); const view = new DataView(buffer); view.setUint8(0, 131); view.setUint8(1, packetLength); view.setUint8(2, isRegular ? 255 : 0); const buffers = [buffer]; const views = [view]; return { update: d => { const startIndex = i * 6; views[j].setUint8(offset + startIndex, d.categoryID); views[j].setUint8(offset + startIndex + 1, d.id); views[j].setInt32(offset + startIndex + 2, d.amount); i++; if (maxEntries === i) { i = 0; j++; if (submittedLength > maxEntries) length = maxEntries; else length = submittedLength; submittedLength -= length if (submittedLength < 0) length = maxEntries + submittedLength; const packetLength = length * 6 + 1 + 2; const buffer = new ArrayBuffer(packetLength); const view = new DataView(buffer); view.setUint8(0, 131); view.setUint8(1, packetLength); view.setUint8(2, isRegular ? 255 : 0); buffers.push(buffer); views.push(view); }; }, get: () => { return buffers; } }; } };