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.
 
 
 

38 lines
786 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(newDamage, 1, this);
  27. }
  28. }
  29. };