@@ -0,0 +1,8 @@ | |||
var extend = require('extend'); | |||
var requirejs = require('requirejs'); | |||
global.extend = extend; | |||
requirejs(['sim'], function (sim) { | |||
sim.init(); | |||
}); |
@@ -0,0 +1,18 @@ | |||
{ | |||
"name": "isleward-tests", | |||
"version": "0.0.1", | |||
"lockfileVersion": 1, | |||
"requires": true, | |||
"dependencies": { | |||
"extend": { | |||
"version": "3.0.1", | |||
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", | |||
"integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" | |||
}, | |||
"requirejs": { | |||
"version": "2.3.5", | |||
"resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.5.tgz", | |||
"integrity": "sha512-svnO+aNcR/an9Dpi44C7KSAy5fFGLtmPbaaCeQaklUz8BQhS64tWWIIlvEA5jrWICzlO/X9KSzSeXFnZdBu8nw==" | |||
} | |||
} | |||
} |
@@ -0,0 +1,10 @@ | |||
{ | |||
"name": "isleward-tests", | |||
"version": "0.0.1", | |||
"description": "isleward-tests", | |||
"dependencies": { | |||
"extend": "^3.0.0", | |||
"requirejs": "^2.3.5" | |||
}, | |||
"devDependencies": {} | |||
} |
@@ -0,0 +1,93 @@ | |||
define([ | |||
'../../src/server/config/spellsConfig', | |||
'../../src/server/combat/combat' | |||
], function ( | |||
config, | |||
combat | |||
) { | |||
var spells = config.spells; | |||
spells['harvest life'] = { | |||
statType: ['str', 'int'], | |||
statMult: 0.106, | |||
element: 'physical', | |||
auto: true, | |||
cdMax: 6, | |||
manaCost: 0, | |||
range: 1, | |||
random: { | |||
damage: [2.2, 4.1], | |||
healPercent: [5, 15] | |||
} | |||
}; | |||
return { | |||
init: function () { | |||
var res = []; | |||
for (var s in spells) { | |||
var c = spells[s]; | |||
var d = c.random.damage; | |||
if (!d) | |||
continue; | |||
var damage = d[0] + ((d[1] - d[0]) / 2); | |||
var config = { | |||
statType: c.statType, | |||
statMult: c.statMult, | |||
element: c.element, | |||
cd: c.cdMax, | |||
damage: damage, | |||
noMitigate: true, | |||
noCrit: true, | |||
source: { | |||
stats: { | |||
values: { | |||
dmgPercent: 0, | |||
elementArcanePercent: 0, | |||
elementFrostPercent: 0, | |||
elementPoisonPercent: 0, | |||
elementPhysicalPercent: 0, | |||
elementHolyPercent: 0, | |||
elementFirePercent: 0 | |||
} | |||
}, | |||
}, | |||
target: { | |||
stats: { | |||
values: {} | |||
} | |||
} | |||
}; | |||
var stat = c.statType; | |||
if (!stat.push) | |||
stat = [stat]; | |||
stat.forEach(s => config.source.stats.values[s] = 1000); | |||
var amount = combat.getDamage(config).amount; | |||
var duration = c.random.i_duration; | |||
if (duration) | |||
amount *= (duration[0] + ~~((duration[1] - duration[0]) / 2)); | |||
res.push({ | |||
name: s, | |||
dpt: Math.round(amount), | |||
cd: c.cdMax, | |||
mana: c.manaCost || '' | |||
}); | |||
} | |||
res = res.sort((a, b) => (b.dpt - a.dpt)); | |||
console.log(); | |||
res.forEach(function (r) { | |||
var gap = new Array(20 - r.name.length); | |||
console.log(r.name + ': ' + gap.join(' ') + r.dpt + 'dpt ' + r.cd + 'cd ' + ((r.cd.toString().length == 1) ? ' ' : '') + r.mana); | |||
}); | |||
console.log(); | |||
} | |||
}; | |||
}); |
@@ -18,7 +18,7 @@ define([ | |||
}, | |||
'ice spear': { | |||
statType: 'int', | |||
statMult: 0.076, | |||
statMult: 0.078, | |||
element: 'frost', | |||
cdMax: 10, | |||
manaCost: 5, | |||
@@ -31,10 +31,10 @@ define([ | |||
}, | |||
'fireblast': { | |||
statType: 'int', | |||
statMult: 0.03, | |||
statMult: 0.032, | |||
element: 'fire', | |||
cdMax: 15, | |||
manaCost: 5, | |||
manaCost: 7, | |||
dmgMult: 1.1, | |||
random: { | |||
damage: [6.7, 13.3], | |||
@@ -44,7 +44,7 @@ define([ | |||
}, | |||
'smite': { | |||
statType: 'int', | |||
statMult: 0.378, | |||
statMult: 0.37, | |||
element: 'holy', | |||
auto: true, | |||
needLos: true, | |||
@@ -80,7 +80,7 @@ define([ | |||
},*/ | |||
'slash': { | |||
statType: 'str', | |||
statMult: 0.303, | |||
statMult: 0.3065, | |||
element: 'physical', | |||
threatMult: 4, | |||
auto: true, | |||
@@ -92,7 +92,7 @@ define([ | |||
}, | |||
'charge': { | |||
statType: 'str', | |||
statMult: 0.151, | |||
statMult: 0.15833, | |||
element: 'physical', | |||
threatMult: 3, | |||
cdMax: 5, | |||
@@ -116,7 +116,7 @@ define([ | |||
},*/ | |||
'double slash': { | |||
statType: 'dex', | |||
statMult: 0.757, | |||
statMult: 0.77, | |||
element: 'physical', | |||
cdMax: 3, | |||
useWeaponRange: true, | |||
@@ -127,7 +127,7 @@ define([ | |||
}, | |||
'smokebomb': { | |||
statType: 'dex', | |||
statMult: 1.817, | |||
statMult: 0.19, | |||
element: 'poison', | |||
cdMax: 5, | |||
manaCost: 6, | |||
@@ -147,15 +147,15 @@ define([ | |||
},*/ | |||
'crystal spikes': { | |||
statType: ['dex', 'int'], | |||
statMult: 0.0205, | |||
statMult: 0.0215, | |||
element: 'physical', | |||
manaCost: 5, | |||
manaCost: 6, | |||
needLos: true, | |||
cdMax: 10, | |||
range: 9, | |||
random: { | |||
damage: [9.3, 18.6], | |||
i_delay: [4, 8] | |||
i_delay: [2, 4] | |||
}, | |||
negativeStats: [ | |||
'i_delay' | |||
@@ -133,7 +133,7 @@ define([ | |||
beforeGetSpellsConfig: function (spells) { | |||
spells['harvest life'] = { | |||
statType: ['str', 'int'], | |||
statMult: 0.1, | |||
statMult: 0.1035, | |||
element: 'physical', | |||
auto: true, | |||
cdMax: 6, | |||