Big Bad Waffle преди 7 години
родител
ревизия
cdb72ce158
променени са 4 файла, в които са добавени 68 реда и са изтрити 7 реда
  1. +1
    -0
      src/client/js/input.js
  2. +20
    -1
      src/client/ui/templates/inventory/inventory.js
  3. +46
    -6
      src/client/ui/templates/messages/messages.js
  4. +1
    -0
      src/server/components/social.js

+ 1
- 0
src/client/js/input.js Целия файл

@@ -22,6 +22,7 @@ define([
'9': 'tab', '9': 'tab',
'13': 'enter', '13': 'enter',
'16': 'shift', '16': 'shift',
'17': 'ctrl',
'27': 'esc', '27': 'esc',
'37': 'left', '37': 'left',
'38': 'up', '38': 'up',


+ 20
- 1
src/client/ui/templates/inventory/inventory.js Целия файл

@@ -47,6 +47,7 @@ define([
items: [], items: [],


shiftDown: false, shiftDown: false,
ctrlDown: false,


dragItem: null, dragItem: null,
dragEl: null, dragEl: null,
@@ -127,7 +128,7 @@ define([


itemEl itemEl
.data('item', item) .data('item', item)
//.on('click', this.onClick.bind(this, itemEl, item))
.on('click', this.onClick.bind(this, item))
.on('mousedown', this.onMouseDown.bind(this, itemEl, item, true)) .on('mousedown', this.onMouseDown.bind(this, itemEl, item, true))
.on('mouseup', this.onMouseDown.bind(this, null, null, false)) .on('mouseup', this.onMouseDown.bind(this, null, null, false))
.on('mousemove', this.onHover.bind(this, itemEl, item)) .on('mousemove', this.onHover.bind(this, itemEl, item))
@@ -150,6 +151,20 @@ define([
} }
}, },


onClick: function(item) {
if (!this.ctrlDown)
return;

client.request({
cpn: 'social',
method: 'chat',
data: {
message: '{' + item.name + '}',
item: item
}
});
},

onMouseDown: function(el, item, down, e) { onMouseDown: function(el, item, down, e) {
if (e.button != 0) if (e.button != 0)
return; return;
@@ -467,6 +482,8 @@ define([
if (this.hoverItem) if (this.hoverItem)
this.onHover(); this.onHover();
} }
else if (key == 'ctrl')
this.ctrlDown = true;
}, },
onKeyUp: function(key) { onKeyUp: function(key) {
if (key == 'shift') { if (key == 'shift') {
@@ -474,6 +491,8 @@ define([
if (this.hoverItem) if (this.hoverItem)
this.onHover(); this.onHover();
} }
else if (key == 'ctrl')
this.ctrlDown = false;
} }
}; };
}); });

+ 46
- 6
src/client/ui/templates/messages/messages.js Целия файл

@@ -17,12 +17,12 @@ define([
messages: [], messages: [],
maxTtl: 500, maxTtl: 500,


shiftDown: false,
hoverItem: null,

hoverFilter: false, hoverFilter: false,


postRender: function() { postRender: function() {
//HACK: Write a global manager
//setInterval(this.fade.bind(this), 100);

this.onEvent('onGetMessages', this.onGetMessages.bind(this)); this.onEvent('onGetMessages', this.onGetMessages.bind(this));
this.onEvent('onDoWhisper', this.onDoWhisper.bind(this)); this.onEvent('onDoWhisper', this.onDoWhisper.bind(this));


@@ -53,9 +53,8 @@ define([
}, },


onKeyDown: function(key, state) { onKeyDown: function(key, state) {
if (key == 'enter') {
if (key == 'enter')
this.toggle(true); this.toggle(true);
}
}, },


onDoWhisper: function(charName) { onDoWhisper: function(charName) {
@@ -75,7 +74,13 @@ define([
var container = this.find('.list'); var container = this.find('.list');


messages.forEach(function(m) { messages.forEach(function(m) {
var el = $('<div class="list-message ' + m.class + '">' + m.message + '</div>')
var message = m.message;
if (m.item) {
var source = message.split(':')[0] + ': ';
message = source + '<span class="q' + (m.item.quality || 0) + '">' + message.replace(source, '') + '</span>';
}

var el = $('<div class="list-message ' + m.class + '">' + message + '</div>')
.appendTo(container); .appendTo(container);


if (m.type != null) if (m.type != null)
@@ -83,6 +88,12 @@ define([
else else
el.addClass('info'); el.addClass('info');


if (m.item) {
el.find('span')
.on('mousemove', this.showItemTooltip.bind(this, el, m.item))
.on('mouseleave', this.hideItemTooltip.bind(this));
}

this.messages.push({ this.messages.push({
ttl: this.maxTtl, ttl: this.maxTtl,
el: el el: el
@@ -92,6 +103,35 @@ define([
container.scrollTop(9999999); container.scrollTop(9999999);
}, },


hideItemTooltip: function() {
if (this.dragEl) {
this.hoverCell = null;
return;
}

events.emit('onHideItemTooltip', this.hoverItem);
this.hoverItem = null;
},
showItemTooltip: function(el, item, e) {
if (item)
this.hoverItem = item;
else
item = this.hoverItem;

if (!item)
return;

var ttPos = null;
if (el) {
ttPos = {
x: ~~(e.clientX + 32),
y: ~~(e.clientY)
};
}

events.emit('onShowItemTooltip', item, ttPos, null, true);
},

update: function() { update: function() {
return; return;
var maxTtl = this.maxTtl; var maxTtl = this.maxTtl;


+ 1
- 0
src/server/components/social.js Целия файл

@@ -130,6 +130,7 @@ define([
messages: [{ messages: [{
class: msgStyle, class: msgStyle,
message: prefix + charname + ': ' + msg.data.message, message: prefix + charname + ': ' + msg.data.message,
item: msg.data.item,
type: 'chat' type: 'chat'
}] }]
} }


Зареждане…
Отказ
Запис