|
- define([
- 'js/system/events',
- 'js/objects/objects',
- 'js/rendering/renderer'
- ], function (
- events,
- objects,
- renderer
- ) {
- let scale = 40;
- let scaleMult = 5;
-
- return {
- list: [],
-
- init: function () {
- events.on('onGetDamage', this.onGetDamage.bind(this));
- },
-
- onGetDamage: function (msg) {
- let target = objects.objects.find(function (o) {
- return (o.id == msg.id);
- });
- if (!target)
- return;
-
- let addY = msg.event ? scale : -(scale * 0.75);
-
- let ttl = 35;
-
- let numberObj = {
- obj: target,
- amount: msg.amount,
- x: (target.x * scale),
- y: (target.y * scale) + scale - (scale / 4),
- ttl: ttl,
- ttlMax: ttl,
- event: msg.event,
- text: msg.text,
- crit: msg.crit,
- heal: msg.heal
- };
-
- if (numberObj.event)
- numberObj.y += (scale / 2);
- else if (numberObj.heal)
- numberObj.x -= scale;
- else
- numberObj.x += scale;
-
- let text = numberObj.text;
- if (!numberObj.event) {
- let amount = numberObj.amount;
- let div = ((~~(amount * 10) / 10) > 0) ? 10 : 100;
- text = (numberObj.heal ? '+' : '') + (~~(amount * div) / div);
- }
-
- numberObj.sprite = renderer.buildText({
- fontSize: numberObj.crit ? 22 : 18,
- layerName: 'effects',
- x: numberObj.x,
- y: numberObj.y,
- text: text
- });
-
- this.list.push(numberObj);
- },
-
- render: function () {
- let list = this.list;
- let lLen = list.length;
-
- for (let i = 0; i < lLen; i++) {
- let l = list[i];
- l.ttl--;
-
- if (l.ttl == 0) {
- renderer.destroyObject({
- layerName: 'effects',
- sprite: l.sprite
- });
- list.splice(i, 1);
- i--;
- lLen--;
- continue;
- }
-
- if (l.event)
- l.y += 1;
- else
- l.y -= 1;
-
- let alpha = l.ttl / l.ttlMax;
-
- l.sprite.x = ~~(l.x / scaleMult) * scaleMult;
- l.sprite.y = ~~(l.y / scaleMult) * scaleMult;
- l.sprite.alpha = alpha;
- }
- }
- };
- });
|