Ver a proveniência

summon skeleton work

tags/v0.1.4^2
Big Bad Waffle há 7 anos
ascendente
cometimento
1855eb053c
3 ficheiros alterados com 38 adições e 46 eliminações
  1. BIN
     
  2. BIN
     
  3. +38
    -46
      src/server/mods/class-necromancer/spells/spellSummonSkeleton.js


+ 38
- 46
src/server/mods/class-necromancer/spells/spellSummonSkeleton.js Ver ficheiro

@@ -1,71 +1,63 @@
define([
'world/mobBuilder'
], function(
mobBuilder
) {
return {
type: 'summonSkeleton',

targetGround: true,

cdMax: 7,
manaCost: 0,

range: 9,

speed: 70,
damage: 1,

freezeDuration: 10,

needLos: true,

cast: function(action) {
var obj = this.obj;
var target = action.target;

var ttl = Math.sqrt(Math.pow(target.x - obj.x, 2) + Math.pow(target.y - obj.y, 2)) * this.speed;

this.sendAnimation({
caster: this.obj.id,
components: [{
idSource: this.obj.id,
idTarget: target.id,
type: 'projectile',
row: 3,
col: 0,
ttl: ttl,
particles: this.particles
}, {
type: 'attackAnimation',
layer: 'projectiles',
loop: -1,
row: 3,
col: 4
}]
//Spawn a mob
var mob = obj.instance.spawners.spawn({
amountLeft: 1,
blueprint: {
x: target.x,
y: target.y,
cell: 0,
spriteSheet: `${this.folderName}/images/mobs.png`,
name: 'Skeletal Minion',
properties: {
cpnFollower: {}
},
extraProperties: {
follower: {
master: obj
}
}
}
});

this.sendBump(target);
mobBuilder.build(mob, {
level: 1,
faction: obj.aggro.faction,
walkDistance: 2,
regular: {
drops: 0,
hpMult: 1,
dmgMult: 1
},
spells: [{
type: 'melee',
damage: 1,
statMult: 0.1
}]
}, false, 'regular');

this.queueCallback(this.explode.bind(this, target), ttl);
mob.follower.bindEvents();

return true;
},
explode: function(target) {
if (this.obj.destroyed)
return;

var targetEffect = target.effects.addEffect({
type: 'slowed',
ttl: this.freezeDuration
});

this.obj.instance.syncer.queue('onGetDamage', {
id: target.id,
event: true,
text: 'slowed'
});

var damage = this.getDamage(target);
target.stats.takeDamage(damage, this.threatMult, this.obj);
}
};
});

Carregando…
Cancelar
Guardar