private void affect(Entity entity) { BendingHitEvent event = new BendingHitEvent(ability, entity); Bending.callEvent(event); if (event.isCancelled()) { return; } double damage = DAMAGE; if (bender.hasPath(BendingPath.TOUGH)) { damage *= 0.85; } if (bender.hasPath(BendingPath.RECKLESS)) { damage *= 1.15; } if (entity instanceof LivingEntity) { DamageTools.damageEntity(bender, entity, ability, damage); } Vector vector = direction.clone(); vector.setY(.5); entity.setVelocity(vector); }
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onBendingDamage(BendingDamageEvent event) { if (event.getEntity() instanceof Player) { Player player = (Player) event.getEntity(); BendingPlayer bender = BendingPlayer.getBendingPlayer(player); if (bender == null) { return; } if (bender.hasPath(BendingPath.TOUGH)) { event.setDamage(event.getDamage() * 0.9); } if (bender.hasAffinity(BendingAffinity.SWORD) && player.isBlocking()) { event.setDamage(event.getDamage() * 0.60); } } }