No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 
 

59 líneas
1.6 KiB

  1. let generatorStats = require('../../../../items/generators/stats');
  2. let generatorSlots = require('../../../../items/generators/slots');
  3. let generatorTypes = require('../../../../items/generators/types');
  4. module.exports = (obj, [item]) => {
  5. const enchantedStats = item.enchantedStats;
  6. const implicitStats = item.implicitStats;
  7. delete item.enchantedStats;
  8. delete item.implicitStats;
  9. if ((item.stats) && (item.stats.lvlRequire)) {
  10. item.level = Math.min(consts.maxLevel, item.level + item.stats.lvlRequire);
  11. delete item.originalLevel;
  12. }
  13. item.stats = {};
  14. let bpt = {
  15. slot: item.slot,
  16. type: item.type,
  17. sprite: item.sprite,
  18. spritesheet: item.spritesheet
  19. };
  20. generatorSlots.generate(item, bpt);
  21. generatorTypes.generate(item, bpt);
  22. generatorStats.generate(item, bpt);
  23. for (let p in enchantedStats) {
  24. if (!item.stats[p])
  25. item.stats[p] = 0;
  26. item.stats[p] += enchantedStats[p];
  27. if (p === 'lvlRequire') {
  28. if (!item.originalLevel)
  29. item.originalLevel = item.level;
  30. item.level -= enchantedStats[p];
  31. if (item.level < 1)
  32. item.level = 1;
  33. }
  34. }
  35. item.enchantedStats = enchantedStats || null;
  36. //Some items have special implicits (different stats than their types imply)
  37. // We add the old one back in if this is the case. Ideally we'd like to reroll
  38. // these but that'd be a pretty big hack. We'll solve this one day
  39. if (
  40. item.implicitStats &&
  41. implicitStats &&
  42. item.implicitStats[0] &&
  43. implicitStats[0] &&
  44. item.implicitStats[0].stat !== implicitStats[0].stat
  45. )
  46. item.implicitStats = implicitStats;
  47. return { msg: 'Reroll successful' };
  48. };