@@ -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': { | 'ice spear': { | ||||
statType: 'int', | statType: 'int', | ||||
statMult: 0.076, | |||||
statMult: 0.078, | |||||
element: 'frost', | element: 'frost', | ||||
cdMax: 10, | cdMax: 10, | ||||
manaCost: 5, | manaCost: 5, | ||||
@@ -31,10 +31,10 @@ define([ | |||||
}, | }, | ||||
'fireblast': { | 'fireblast': { | ||||
statType: 'int', | statType: 'int', | ||||
statMult: 0.03, | |||||
statMult: 0.032, | |||||
element: 'fire', | element: 'fire', | ||||
cdMax: 15, | cdMax: 15, | ||||
manaCost: 5, | |||||
manaCost: 7, | |||||
dmgMult: 1.1, | dmgMult: 1.1, | ||||
random: { | random: { | ||||
damage: [6.7, 13.3], | damage: [6.7, 13.3], | ||||
@@ -44,7 +44,7 @@ define([ | |||||
}, | }, | ||||
'smite': { | 'smite': { | ||||
statType: 'int', | statType: 'int', | ||||
statMult: 0.378, | |||||
statMult: 0.37, | |||||
element: 'holy', | element: 'holy', | ||||
auto: true, | auto: true, | ||||
needLos: true, | needLos: true, | ||||
@@ -80,7 +80,7 @@ define([ | |||||
},*/ | },*/ | ||||
'slash': { | 'slash': { | ||||
statType: 'str', | statType: 'str', | ||||
statMult: 0.303, | |||||
statMult: 0.3065, | |||||
element: 'physical', | element: 'physical', | ||||
threatMult: 4, | threatMult: 4, | ||||
auto: true, | auto: true, | ||||
@@ -92,7 +92,7 @@ define([ | |||||
}, | }, | ||||
'charge': { | 'charge': { | ||||
statType: 'str', | statType: 'str', | ||||
statMult: 0.151, | |||||
statMult: 0.15833, | |||||
element: 'physical', | element: 'physical', | ||||
threatMult: 3, | threatMult: 3, | ||||
cdMax: 5, | cdMax: 5, | ||||
@@ -116,7 +116,7 @@ define([ | |||||
},*/ | },*/ | ||||
'double slash': { | 'double slash': { | ||||
statType: 'dex', | statType: 'dex', | ||||
statMult: 0.757, | |||||
statMult: 0.77, | |||||
element: 'physical', | element: 'physical', | ||||
cdMax: 3, | cdMax: 3, | ||||
useWeaponRange: true, | useWeaponRange: true, | ||||
@@ -127,7 +127,7 @@ define([ | |||||
}, | }, | ||||
'smokebomb': { | 'smokebomb': { | ||||
statType: 'dex', | statType: 'dex', | ||||
statMult: 1.817, | |||||
statMult: 0.19, | |||||
element: 'poison', | element: 'poison', | ||||
cdMax: 5, | cdMax: 5, | ||||
manaCost: 6, | manaCost: 6, | ||||
@@ -147,15 +147,15 @@ define([ | |||||
},*/ | },*/ | ||||
'crystal spikes': { | 'crystal spikes': { | ||||
statType: ['dex', 'int'], | statType: ['dex', 'int'], | ||||
statMult: 0.0205, | |||||
statMult: 0.0215, | |||||
element: 'physical', | element: 'physical', | ||||
manaCost: 5, | |||||
manaCost: 6, | |||||
needLos: true, | needLos: true, | ||||
cdMax: 10, | cdMax: 10, | ||||
range: 9, | range: 9, | ||||
random: { | random: { | ||||
damage: [9.3, 18.6], | damage: [9.3, 18.6], | ||||
i_delay: [4, 8] | |||||
i_delay: [2, 4] | |||||
}, | }, | ||||
negativeStats: [ | negativeStats: [ | ||||
'i_delay' | 'i_delay' | ||||
@@ -133,7 +133,7 @@ define([ | |||||
beforeGetSpellsConfig: function (spells) { | beforeGetSpellsConfig: function (spells) { | ||||
spells['harvest life'] = { | spells['harvest life'] = { | ||||
statType: ['str', 'int'], | statType: ['str', 'int'], | ||||
statMult: 0.1, | |||||
statMult: 0.1035, | |||||
element: 'physical', | element: 'physical', | ||||
auto: true, | auto: true, | ||||
cdMax: 6, | cdMax: 6, | ||||