335-loot-linking-enhancement See merge request Isleward/isleward!518merge-requests/518/merge
@@ -143,15 +143,7 @@ define([ | |||||
if (!forceCtrl && !input.isKeyDown('ctrl', true)) | if (!forceCtrl && !input.isKeyDown('ctrl', true)) | ||||
return; | return; | ||||
client.request({ | |||||
cpn: 'social', | |||||
method: 'chat', | |||||
data: { | |||||
message: '{' + item.name + '}', | |||||
item: item, | |||||
type: 'global' | |||||
} | |||||
}); | |||||
events.emit('beforeInventoryLinkItem', msg); | |||||
}, | }, | ||||
onMouseDown: function (el, item, down, e) { | onMouseDown: function (el, item, down, e) { | ||||
@@ -45,7 +45,8 @@ define([ | |||||
'onClickFilter', | 'onClickFilter', | ||||
'onGetCustomChatChannels', | 'onGetCustomChatChannels', | ||||
'onKeyDown', | 'onKeyDown', | ||||
'onKeyUp' | |||||
'onKeyUp', | |||||
'beforeInventoryLinkItem' | |||||
].forEach(e => this.onEvent(e, this[e].bind(this))); | ].forEach(e => this.onEvent(e, this[e].bind(this))); | ||||
this.find('.filter:not(.channel)').on('click', this.onClickFilter.bind(this)); | this.find('.filter:not(.channel)').on('click', this.onClickFilter.bind(this)); | ||||
@@ -170,6 +171,20 @@ define([ | |||||
elInput[0].setSelectionRange(0, 7); | elInput[0].setSelectionRange(0, 7); | ||||
}, | }, | ||||
beforeInventoryLinkItem: function (msg) { | |||||
//code for linking items from inventory | |||||
client.request({ | |||||
cpn: 'social', | |||||
method: 'chat', | |||||
data: { | |||||
message: '{' + msg.item.name + '}', | |||||
item: msg.item, | |||||
type: this.currentChannel, | |||||
subType: this.currentSubChannel | |||||
} | |||||
}); | |||||
}, | |||||
//Remember private and custom channels used | //Remember private and custom channels used | ||||
trackHistory: function (msg) { | trackHistory: function (msg) { | ||||
const { subType, source, target, channel } = msg; | const { subType, source, target, channel } = msg; | ||||
@@ -214,8 +229,12 @@ define([ | |||||
} | } | ||||
if (m.item) { | if (m.item) { | ||||
let source = message.split(':')[0]; | |||||
message = source + ': <span class="q' + (m.item.quality || 0) + '">' + message.replace(source + ': ', '') + '</span>'; | |||||
let parts = message.split(':'); | |||||
//assuming item names will never have a colon in them | |||||
let source = parts.slice(0, -1); | |||||
let rest = parts[parts.length - 1]; | |||||
message = source.join(':') + ': <span class="q' + (m.item.quality || 0) + '">' + rest.trim() + '</span>'; | |||||
} | } | ||||
let el = $('<div class="list-message ' + m.class + '">' + message + '</div>') | let el = $('<div class="list-message ' + m.class + '">' + message + '</div>') | ||||
@@ -72,22 +72,25 @@ const sendPartyMessage = ({ party, obj }, msg) => { | |||||
return; | return; | ||||
} | } | ||||
let charname = obj.auth.charname; | |||||
let message = msg.data.message; | let message = msg.data.message; | ||||
const sendMessage = `(party: ${obj.auth.charname}): ${message}`; | |||||
const eventData = { | |||||
onGetMessages: [{ | |||||
messages: [{ | |||||
class: 'color-tealC', | |||||
message: sendMessage, | |||||
item: msg.data.item, | |||||
type: 'chat', | |||||
source: obj.name | |||||
}] | |||||
}] | |||||
}; | |||||
party.forEach(p => { | party.forEach(p => { | ||||
let player = cons.players.find(c => c.id === p); | let player = cons.players.find(c => c.id === p); | ||||
player.socket.emit('events', { | |||||
onGetMessages: [{ | |||||
messages: [{ | |||||
class: 'color-tealC', | |||||
message: '(party: ' + charname + '): ' + message, | |||||
type: 'chat', | |||||
source: obj.name | |||||
}] | |||||
}] | |||||
}); | |||||
player.socket.emit('events', eventData); | |||||
}); | }); | ||||
}; | }; | ||||
@@ -118,6 +121,7 @@ const sendCustomChannelMessage = (cpnSocial, msg) => { | |||||
messages: [{ | messages: [{ | ||||
class: 'color-grayB', | class: 'color-grayB', | ||||
message: sendMessage, | message: sendMessage, | ||||
item: msg.data.item, | |||||
type: 'chat', | type: 'chat', | ||||
subType: 'custom', | subType: 'custom', | ||||
channel: channel.trim(), | channel: channel.trim(), | ||||
@@ -150,6 +154,7 @@ const sendPrivateMessage = ({ obj: { name: sourceName, socket } }, msg) => { | |||||
messages: [{ | messages: [{ | ||||
class: 'color-yellowB', | class: 'color-yellowB', | ||||
message: '(you to ' + targetName + '): ' + message, | message: '(you to ' + targetName + '): ' + message, | ||||
item: msg.data.item, | |||||
type: 'chat', | type: 'chat', | ||||
subType: 'privateOut', | subType: 'privateOut', | ||||
target: targetName | target: targetName | ||||
@@ -163,6 +168,7 @@ const sendPrivateMessage = ({ obj: { name: sourceName, socket } }, msg) => { | |||||
messages: [{ | messages: [{ | ||||
class: 'color-yellowB', | class: 'color-yellowB', | ||||
message: '(' + sourceName + ' to you): ' + message, | message: '(' + sourceName + ' to you): ' + message, | ||||
item: msg.data.item, | |||||
type: 'chat', | type: 'chat', | ||||
subType: 'privateIn', | subType: 'privateIn', | ||||
source: sourceName | source: sourceName | ||||