You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

44 lines
885 B

  1. let combat = require('../../combat/combat');
  2. module.exports = {
  3. events: {
  4. element: null,
  5. onGetText: function (item) {
  6. let rolls = item.effects.find(e => (e.type === 'damageSelf')).rolls;
  7. return `you take ${rolls.percentage}% of the damage you deal`;
  8. },
  9. afterDealDamage: function (item, { damage, target }) {
  10. let effect = item.effects.find(e => (e.type === 'damageSelf'));
  11. let rolls = effect.rolls;
  12. let amount = (damage.dealt / 100) * rolls.percentage;
  13. let newDamage = combat.getDamage({
  14. source: {
  15. stats: {
  16. values: {}
  17. }
  18. },
  19. isAttack: false,
  20. target: this,
  21. damage: amount,
  22. element: effect.properties.element,
  23. noCrit: true
  24. });
  25. newDamage.noEvents = true;
  26. this.stats.takeDamage({
  27. damage: newDamage,
  28. threatMult: 1,
  29. source: this,
  30. target: this,
  31. effectName: 'damageSelf'
  32. });
  33. }
  34. }
  35. };