Shaun пре 7 година
родитељ
комит
c02bab1068
6 измењених фајлова са 109 додато и 8 уклоњено
  1. +80
    -0
      src/server/components/follower.js
  2. +6
    -4
      src/server/components/inventory.js
  3. +1
    -1
      src/server/components/mob.js
  4. +4
    -0
      src/server/components/stats.js
  5. +17
    -2
      src/server/config/factions/gaekatla.js
  6. +1
    -1
      src/server/config/maps/city/zone.js

+ 80
- 0
src/server/components/follower.js Прегледај датотеку

@@ -0,0 +1,80 @@
define([
], function(
) {
return {
type: 'follower',

master: null,

lifetime: -1,

fGetHighest: {
inCombat: null,
outOfCombat: null
},

bindEvents: function() {
this.lifetime = 30;

this.fGetHighest.inCombat = this.master.aggro.getHighest.bind(this.master.aggro);
this.fGetHighest.outOfCombat = this.returnNoAggro.bind(this);
},

returnNoAggro: function() {
var master = this.master;
var obj = this.obj;
var mob = obj.mob;

mob.originX = master.x + ~~((Math.random() * 2) * 2) - 1;
mob.originY = master.y + ~~((Math.random() * 2) * 2) - 1;

return null;
},

despawn: function() {
var obj = this.obj;

obj.destroyed = true;
this.obj.instance.syncer.queue('onGetObject', {
x: obj.x,
y: obj.y,
components: [{
type: 'attackAnimation',
row: 0,
col: 4
}]
});
},

update: function() {
this.lifetime--;
if (this.lifetime <= 0) {
this.despawn();
return;
}

var obj = this.obj;
var master = this.master;

if (master.destroyed) {
this.despawn();
return;
}

var doMove = (
(Math.abs(obj.x - master.x) >= 10) ||
(Math.abs(obj.y - master.y) >= 10)
);

if (doMove) {
if (obj.aggro.getHighest == this.fGetHighest.inCombat)
obj.mob.target = obj;
}


obj.aggro.getHighest = doMove ? this.fGetHighest.outOfCombat : this.fGetHighest.inCombat;
}
};
});

+ 6
- 4
src/server/components/inventory.js Прегледај датотеку

@@ -40,12 +40,14 @@ define([
item.spell.properties = item.spell.properties || {};
item.spell.properties.range = item.range;
}
}

this.hookItemEvents(items);

for (var i = 0; i < iLen; i++) {
this.getItem(items[i], true);
}

this.hookItemEvents();

if ((this.obj.player) && (!isTransfer)) {
this.getDefaultAbilities();

@@ -75,8 +77,8 @@ define([
this.hookItemEvents();
},

hookItemEvents: function() {
var items = this.items;
hookItemEvents: function(items) {
var items = items || this.items;
var iLen = items.length;
for (var i = 0; i < iLen; i++) {
var item = items[i];


+ 1
- 1
src/server/components/mob.js Прегледај датотеку

@@ -31,7 +31,7 @@ define([
if (this.obj.aggro)
target = this.obj.aggro.getHighest();
var goHome = false;
if (target) {
if ((target) && (target != this.obj)) {
this.fight(target);
return;
} else if (this.target) {


+ 4
- 0
src/server/components/stats.js Прегледај датотеку

@@ -315,6 +315,10 @@ define([
if (death.success) {
var deathEvent = {};

var killSource = source;
if (source.follower)
killSource = source.follower.master;

if (source.player)
source.stats.kill(this.obj);
else


+ 17
- 2
src/server/config/factions/gaekatla.js Прегледај датотеку

@@ -69,12 +69,20 @@ define([
y: mob.y,
cell: 34,
sheetName: 'mobs',
name: 'Squiggle'
name: 'Squiggle',
properties: {
cpnFollower: {}
},
extraProperties: {
follower: {
master: this
}
}
}
});

mobBuilder.build(mob, {
level: 5,
level: item.level,
faction: this.aggro.faction,
walkDistance: 2,
regular: {
@@ -82,7 +90,14 @@ define([
hpMult: 1,
dmgMult: 1
},
spells: [{
type: 'melee',
damage: 1,
statMult: 0.1
}]
}, false, 'regular');

mob.follower.bindEvents();
}
}
},


+ 1
- 1
src/server/config/maps/city/zone.js Прегледај датотеку

@@ -111,7 +111,7 @@ module.exports = {
},
faction: {
id: 'gaekatla',
tier: 6
tier: 5
},
markup: {
buy: 0.25,


Loading…
Откажи
Сачувај