diff --git a/sims/dpt/index.js b/sims/dpt/index.js new file mode 100644 index 00000000..a670a4db --- /dev/null +++ b/sims/dpt/index.js @@ -0,0 +1,8 @@ +var extend = require('extend'); +var requirejs = require('requirejs'); + +global.extend = extend; + +requirejs(['sim'], function (sim) { + sim.init(); +}); diff --git a/sims/dpt/package-lock.json b/sims/dpt/package-lock.json new file mode 100644 index 00000000..43e6beca --- /dev/null +++ b/sims/dpt/package-lock.json @@ -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==" + } + } +} diff --git a/sims/dpt/package.json b/sims/dpt/package.json new file mode 100644 index 00000000..8aefb027 --- /dev/null +++ b/sims/dpt/package.json @@ -0,0 +1,10 @@ +{ + "name": "isleward-tests", + "version": "0.0.1", + "description": "isleward-tests", + "dependencies": { + "extend": "^3.0.0", + "requirejs": "^2.3.5" + }, + "devDependencies": {} +} diff --git a/sims/dpt/sim.js b/sims/dpt/sim.js new file mode 100644 index 00000000..89ad5b3c --- /dev/null +++ b/sims/dpt/sim.js @@ -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(); + } + }; +}); diff --git a/src/server/config/spellsConfig.js b/src/server/config/spellsConfig.js index a873b855..5df533b3 100644 --- a/src/server/config/spellsConfig.js +++ b/src/server/config/spellsConfig.js @@ -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' diff --git a/src/server/mods/class-necromancer/index.js b/src/server/mods/class-necromancer/index.js index c3695722..e9562e4a 100644 --- a/src/server/mods/class-necromancer/index.js +++ b/src/server/mods/class-necromancer/index.js @@ -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,