Browse Source

Merge branch '25-link-items-chat' into 'staging'

Fixes #25

See merge request !69
tags/v0.1.2^2
Big Bad Waffle 7 years ago
parent
commit
26502043a8
4 changed files with 68 additions and 7 deletions
  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 View File

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


+ 20
- 1
src/client/ui/templates/inventory/inventory.js View File

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

shiftDown: false,
ctrlDown: false,

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

itemEl
.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('mouseup', this.onMouseDown.bind(this, null, null, false))
.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) {
if (e.button != 0)
return;
@@ -467,6 +482,8 @@ define([
if (this.hoverItem)
this.onHover();
}
else if (key == 'ctrl')
this.ctrlDown = true;
},
onKeyUp: function(key) {
if (key == 'shift') {
@@ -474,6 +491,8 @@ define([
if (this.hoverItem)
this.onHover();
}
else if (key == 'ctrl')
this.ctrlDown = false;
}
};
});

+ 46
- 6
src/client/ui/templates/messages/messages.js View File

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

shiftDown: false,
hoverItem: null,

hoverFilter: false,

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

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

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

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

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

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);

if (m.type != null)
@@ -83,6 +88,12 @@ define([
else
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({
ttl: this.maxTtl,
el: el
@@ -92,6 +103,35 @@ define([
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() {
return;
var maxTtl = this.maxTtl;


+ 1
- 0
src/server/components/social.js View File

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


Loading…
Cancel
Save