Bladeren bron

Portraits can now be modded. Worked on Blood Barrier

tags/v0.1.4^2
Shaun 7 jaren geleden
bovenliggende
commit
d4f40aff30
18 gewijzigde bestanden met toevoegingen van 85 en 48 verwijderingen
  1. BIN
     
  2. +1
    -1
      src/client/js/components/player.js
  3. +4
    -1
      src/client/js/objects/objects.js
  4. +5
    -2
      src/client/ui/templates/hud/hud.js
  5. +7
    -0
      src/server/components/auth.js
  6. +7
    -0
      src/server/components/follower.js
  7. +2
    -2
      src/server/components/inventory.js
  8. +1
    -1
      src/server/components/mob.js
  9. +2
    -1
      src/server/components/player.js
  10. +8
    -7
      src/server/components/stats.js
  11. +18
    -0
      src/server/config/classes.js
  12. +3
    -0
      src/server/config/spells/spellTemplate.js
  13. BIN
     
  14. BIN
     
  15. +5
    -0
      src/server/mods/class-necromancer/index.js
  16. +10
    -28
      src/server/mods/class-necromancer/spells/spellBloodBarrier.js
  17. +6
    -2
      src/server/mods/class-necromancer/spells/spellSummonSkeleton.js
  18. +6
    -3
      src/server/objects/objBase.js

+ 1
- 1
src/client/js/components/player.js Bestand weergeven

@@ -22,7 +22,7 @@ define([

this.obj.addComponent('pather');

events.emit('onGetPortrait', this.obj.class);
events.emit('onGetPortrait', this.obj.portrait);
},

update: function() {


+ 4
- 1
src/client/js/objects/objects.js Bestand weergeven

@@ -126,12 +126,15 @@ define([
var components = template.components || [];
delete template.components;

var syncTypes = ['portrait'];

for (var p in template) {
var value = template[p];
var type = typeof(value);

if (type == 'object') {

if (syncTypes.indexOf(p) > -1)
obj[p] = value;
} else
obj[p] = value;
}


+ 5
- 2
src/client/ui/templates/hud/hud.js Bestand weergeven

@@ -23,11 +23,14 @@ define([
},

onGetPortrait: function(portrait) {
var x = (['warrior', 'cleric', 'wizard', 'thief'].indexOf(portrait) * -64);
var spritesheet = portrait.spritesheet || '../../../images/portraitIcons.png';

var x = portrait.x * -64;
var y = portrait.y * -64;

this.find('.portrait')
.css({
background: 'url("../../../images/portraitIcons.png") ' + x + 'px 0px',
background: 'url("' + spritesheet + '") ' + x + 'px ' + y + 'px',
visibility: 'visible'
});
},


+ 7
- 0
src/server/components/auth.js Bestand weergeven

@@ -87,6 +87,13 @@ define([

extend(true, simple, extensionObj);

try {
var a = JSON.stringify(simple);
}
catch (e) {
console.log(simple.components.find(c => (c.type == 'spellbook')).spells);
}

io.set({
ent: this.charname,
field: 'character',


+ 7
- 0
src/server/components/follower.js Bestand weergeven

@@ -78,6 +78,13 @@ define([


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

simplify: function() {
return {
type: 'follower',
master: this.master.id
};
}
};
});

+ 2
- 2
src/server/components/inventory.js Bestand weergeven

@@ -335,7 +335,7 @@ define([
);
});

if (!hasSpell) {
//if (!hasSpell) {
var item = generator.generate({
spell: true,
spellQuality: 'basic',
@@ -353,7 +353,7 @@ define([
item.eq = true;
item.noSalvage = true;
this.getItem(item);
}
//}
},

createBag: function(x, y, items, ownerId) {


+ 1
- 1
src/server/components/mob.js Bestand weergeven

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


+ 2
- 1
src/server/components/player.js Bestand weergeven

@@ -59,7 +59,8 @@ define([

stats.stats.logins++;

//obj.addComponent('spellbook', { spells: extend(true, [], classes.spells[obj.class]) });
obj.portrait = classes.portraits[character.class];

obj.addComponent('spellbook');

obj.addComponent('dialogue');


+ 8
- 7
src/server/components/stats.js Bestand weergeven

@@ -237,7 +237,7 @@ define([
mult = (1 + (partySize * 0.1));
}

if (a.obj.stats) {
if ((a.obj.stats) && (!a.obj.follower)) {
//Scale xp by source level so you can't just farm low level mobs (or get boosted on high level mobs).
//Mobs that are farther then 10 levels from you, give no xp
//We don't currently do this for quests/herb gathering
@@ -325,11 +325,12 @@ define([
var deathEvent = {};

var killSource = source;

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

if (source.player)
source.stats.kill(this.obj);
if (killSource.player)
killSource.stats.kill(this.obj);
else
this.obj.fireEvent('afterDeath', deathEvent);

@@ -339,12 +340,12 @@ define([
this.obj.auth.permadie();

this.syncer.queue('onPermadeath', {
source: source.name
source: killSource.name
}, [this.obj.serverId]);
} else
this.values.hp = 0;

this.obj.player.die(source, deathEvent.permadeath);
this.obj.player.die(killSource, deathEvent.permadeath);
} else {
this.obj.effects.die();
if (this.obj.spellbook)
@@ -365,14 +366,14 @@ define([
if (done.some(d => d == p))
return;

this.obj.inventory.dropBag(p, source);
this.obj.inventory.dropBag(p, killSource);
done.push(p);
}, this);
} else {
if (a.serverId == null)
continue;

this.obj.inventory.dropBag(a.serverId, source);
this.obj.inventory.dropBag(a.serverId, killSource);
done.push(a.serverId);
}
}


+ 18
- 0
src/server/config/classes.js Bestand weergeven

@@ -4,6 +4,24 @@ define([
events
) {
var classes = {
portraits: {
warrior: {
x: 0,
y: 0
},
cleric: {
x: 1,
y: 0
},
wizard: {
x: 2,
y: 0
},
thief: {
x: 3,
y: 0
}
},
spells: {
wizard: ['ice spear'],
cleric: ['healing circle'],


+ 3
- 0
src/server/config/spells/spellTemplate.js Bestand weergeven

@@ -147,6 +147,9 @@ define([
if (this.values)
values.values = this.values;

if (this.onAfterSimplify)
this.onAfterSimplify(values);

return values;
},





+ 5
- 0
src/server/mods/class-necromancer/index.js Bestand weergeven

@@ -38,6 +38,11 @@ define([
spritesheet: `${this.folderName}/images/inGameSprite.png`
};
classes.weapons.necromancer = 'Sickle';
classes.portraits.necromancer = {
spritesheet: `${this.folderName}/images/avatar.png`,
x: 0,
y: 0
};
},

beforeGetSpellTemplate: function(spell) {


+ 10
- 28
src/server/mods/class-necromancer/spells/spellBloodBarrier.js Bestand weergeven

@@ -23,29 +23,9 @@ define([
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) - 50;

this.sendAnimation({
caster: this.obj.id,
components: [{
idSource: this.obj.id,
idTarget: target.id,
type: 'projectile',
ttl: ttl,
projectileOffset: this.projectileOffset,
particles: this.particles
}, {
type: 'attackAnimation',
layer: 'projectiles',
loop: -1,
row: this.row,
col: this.col
}]
});

this.sendBump(target);

this.queueCallback(this.explode.bind(this, target), ttl, null, target);
this.queueCallback(this.explode.bind(this, target), 1, null, target);

return true;
},
@@ -53,14 +33,16 @@ define([
if ((this.obj.destroyed) || (target.destroyed))
return;

var damage = this.getDamage(target);
var amount = this.obj.stats.values.hpMax / 10;
var damage = {
amount: amount
};
this.obj.stats.takeDamage(damage, 0, this.obj);

if (!target.stats) {
console.log('has no stats???');
console.log(target);
return;
}
target.stats.takeDamage(damage, this.threatMult, this.obj);
var heal = {
amount: amount
};
target.stats.getHp(heal, this.obj);
}
};
});

+ 6
- 2
src/server/mods/class-necromancer/spells/spellSummonSkeleton.js Bestand weergeven

@@ -65,13 +65,13 @@ define([
walkDistance: 2,
regular: {
drops: 0,
hpMult: 1,
hpMult: 0.1,
dmgMult: 1
},
spells: [{
type: 'melee',
damage: 1,
statMult: 0.1
statMult: 0.000001
}]
}, false, 'regular');

@@ -93,6 +93,10 @@ define([
mLen--;
}
}
},

onAfterSimplify: function(simple) {
delete simple.minions;
}
};
});

+ 6
- 3
src/server/objects/objBase.js Bestand weergeven

@@ -89,6 +89,8 @@ define([
o = this;
}

var syncTypes = ['portrait'];

for (var p in o) {
var value = o[p];
if (value == null)
@@ -117,9 +119,10 @@ define([
result.components.push(component);
}
}
} else if (type == 'function') {

} else
else if (syncTypes.indexOf(p) > -1) {
result[p] = value;
}
} else if (type != 'function')
result[p] = value;
}



Laden…
Annuleren
Opslaan