浏览代码

Did some work on necro abilities

tags/v0.1.4^2
Big Bad Waffle 7 年前
父节点
当前提交
2b8218115b
共有 6 个文件被更改,包括 75 次插入25 次删除
  1. +13
    -10
      src/server/components/follower.js
  2. +3
    -1
      src/server/config/factions/gaekatla.js
  3. +0
    -0
      src/server/mods/class-necromancer/images/mobs.png
  4. +12
    -10
      src/server/mods/class-necromancer/index.js
  5. +10
    -2
      src/server/mods/class-necromancer/spells/spellHarvestLife.js
  6. +37
    -2
      src/server/mods/class-necromancer/spells/spellSummonSkeleton.js

+ 13
- 10
src/server/components/follower.js 查看文件

@@ -1,7 +1,7 @@
define([
], function(
) {
return {
type: 'follower',
@@ -9,6 +9,7 @@ define([
master: null,

lifetime: -1,
maxDistance: 10,

fGetHighest: {
inCombat: null,
@@ -16,8 +17,6 @@ define([
},

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

this.fGetHighest.inCombat = this.master.aggro.getHighest.bind(this.master.aggro);
this.fGetHighest.outOfCombat = this.returnNoAggro.bind(this);
},
@@ -49,10 +48,12 @@ define([
},

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

var obj = this.obj;
@@ -63,9 +64,11 @@ define([
return;
}

var maxDistance = this.maxDistance;

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

if (doMove) {


+ 3
- 1
src/server/config/factions/gaekatla.js 查看文件

@@ -71,7 +71,9 @@ define([
sheetName: 'mobs',
name: 'Squiggle',
properties: {
cpnFollower: {}
cpnFollower: {
lifetime: 100
}
},
extraProperties: {
follower: {


src/server/mods/class-necromancer/images/characters.png → src/server/mods/class-necromancer/images/mobs.png 查看文件


+ 12
- 10
src/server/mods/class-necromancer/index.js 查看文件

@@ -25,6 +25,7 @@ define([
beforeGetResourceList: function(list) {
list.push(`${this.folderName}/images/inGameSprite.png`);
list.push(`${this.folderName}/images/abilityIcons.png`);
list.push(`${this.folderName}/images/mobs.png`);
},

beforeGetClasses: function(classes) {
@@ -72,39 +73,40 @@ define([
spells['harvest life'] = {
statType: ['str', 'int'],
statMult: 0.1,
element: 'arcane',
element: 'physical',
auto: true,
cdMax: 7,
manaCost: 0,
range: 9,
random: {
damage: [2, 4]
damage: [2, 4],
healPercent: [10, 20]
}
};

spells['summon skeleton'] = {
statType: ['str', 'int'],
statMult: 0.1,
element: 'arcane',
auto: true,
element: 'physical',
cdMax: 7,
manaCost: 0,
range: 9,
random: {
damage: [2, 4]
damage: [2, 4],
life: [100, 200]
}
};

spells['blood barrier'] = {
statType: ['str', 'int'],
statMult: 0.1,
element: 'arcane',
auto: true,
element: 'physical',
cdMax: 7,
manaCost: 0,
range: 9,
random: {
damage: [2, 4]
damage: [2, 4],
shieldPercentage: [50, 150]
}
};
},
@@ -147,7 +149,7 @@ define([

spells.push({
name: 'Summon Skeleton',
description: 'Absorbs the life-force of your enemies.',
description: 'Summons a skeletal warrior to assist you in combat.',
type: 'summonSkeleton',
icon: [1, 0],
spritesheet: `${this.folderName}/images/abilityIcons.png`,
@@ -182,7 +184,7 @@ define([

spells.push({
name: 'Blood Barrier',
description: 'Absorbs the life-force of your enemies.',
description: 'Sacrifice some life force to grant a protective barrier around an ally.',
type: 'bloodBarrier',
icon: [2, 0],
spritesheet: `${this.folderName}/images/abilityIcons.png`,


+ 10
- 2
src/server/mods/class-necromancer/spells/spellHarvestLife.js 查看文件

@@ -12,6 +12,7 @@ define([
range: 1,

damage: 1,
healMultiplier: 0.1,

col: 4,
row: 1,
@@ -44,11 +45,18 @@ define([
return true;
},
explode: function(target) {
if ((this.obj.destroyed) || (target.destroyed))
var obj = this.obj;

if ((obj.destroyed) || (target.destroyed))
return;
var damage = this.getDamage(target);
target.stats.takeDamage(damage, this.threatMult, this.obj);
target.stats.takeDamage(damage, this.threatMult, obj);

var healAmount = damage.amount * this.healMultiplier;
obj.stats.getHp({
amount: healAmount
}, obj);
}
};
});

+ 37
- 2
src/server/mods/class-necromancer/spells/spellSummonSkeleton.js 查看文件

@@ -15,7 +15,25 @@ define([

needLos: true,

minions: [],

cast: function(action) {
var currentMinion = this.minions[0];
if (currentMinion) {
currentMinion.destroyed = true;
this.minions = [];

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

var obj = this.obj;
var target = action.target;

@@ -26,10 +44,12 @@ define([
x: target.x,
y: target.y,
cell: 0,
spriteSheet: `${this.folderName}/images/mobs.png`,
sheetName: `${this.folderName}/images/mobs.png`,
name: 'Skeletal Minion',
properties: {
cpnFollower: {}
cpnFollower: {
maxDistance: 3
}
},
extraProperties: {
follower: {
@@ -57,7 +77,22 @@ define([

mob.follower.bindEvents();

this.minions.push(mob);

return true;
},

update: function() {
var minions = this.minions;
var mLen = minions.length;
for (var i = 0; i < mLen; i++) {
var m = minions[i];
if (m.destroyed) {
minions.splice(i, 1);
i--;
mLen--;
}
}
}
};
});

正在加载...
取消
保存