public void lasercannonTarget(Skill laser, Hero hero, LivingEntity target) { if (damageCheck(hero.getPlayer(), target)) { Player dmger = hero.getPlayer(); addSpellTarget(target, hero); int damage = SkillConfigManager.getUseSetting(hero, laser, SkillSetting.DAMAGE, 1, false); if (target.getFireTicks() > 0) { damage += 1; } boolean knockback = true; if (target instanceof Player && !(target.equals(dmger))) { Player p = (Player) target; damageEntity(p, dmger, damage, EntityDamageEvent.DamageCause.MAGIC, knockback); } else { damageEntity(target, dmger, damage, EntityDamageEvent.DamageCause.MAGIC, knockback); } targets.add(target.getEntityId()); } }
public void wave(Skill laser, Hero hero, Location nxt, int c, final Vector thrv) { nxt = nxt.add(thrv); // nxt.getWorld().playEffect(nxt, Effect.POTION_BREAK, 245); nxt.getWorld().playEffect(nxt, Effect.ENDER_SIGNAL, 50); c++; int distance = SkillConfigManager.getUseSetting(hero, laser, SkillSetting.MAX_DISTANCE, 30, false); if (c > distance) { return; } if (!Util.transparentBlocks.contains(nxt.getBlock().getType())) { return; } /* for(LivingEntity target:getNearbyLivingEntities(nxt,2)) { if(!targets.contains(target)) { lasercannonTarget(hero, target); } }*/ // final Location fnxt = nxt; // final Hero fhero = hero; // final int fc = c; delex(this, nxt, c, hero); slowdamage(nxt, hero); wave(laser, hero, nxt, c, thrv); /* Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(asd, new Runnable(){ @Override public void run(){ wave(fhero,fnxt,fc,thrv); }},(long)(1));*/ }
@Override public String getDescription(Hero hero) { int damage = (SkillConfigManager.getUseSetting(hero, this, SkillSetting.DAMAGE.node(), 30, false)); String description = getDescription().replace("$1", damage + ""); // COOLDOWN int cooldown = (SkillConfigManager.getUseSetting(hero, this, SkillSetting.COOLDOWN.node(), 0, false) - SkillConfigManager.getUseSetting( hero, this, SkillSetting.COOLDOWN_REDUCE.node(), 0, false) * hero.getSkillLevel(this)) / 1000; if (cooldown > 0) { description += " CD:" + cooldown + "s"; } // MANA int mana = SkillConfigManager.getUseSetting(hero, this, SkillSetting.MANA.node(), 10, false) - (SkillConfigManager.getUseSetting( hero, this, SkillSetting.MANA_REDUCE.node(), 0, false) * hero.getSkillLevel(this)); if (mana > 0) { description += " M:" + mana; } // HEALTH_COST int healthCost = SkillConfigManager.getUseSetting(hero, this, SkillSetting.HEALTH_COST, 0, false) - (SkillConfigManager.getUseSetting( hero, this, SkillSetting.HEALTH_COST_REDUCE, mana, true) * hero.getSkillLevel(this)); if (healthCost > 0) { description += " HP:" + healthCost; } // STAMINA int staminaCost = SkillConfigManager.getUseSetting(hero, this, SkillSetting.STAMINA.node(), 0, false) - (SkillConfigManager.getUseSetting( hero, this, SkillSetting.STAMINA_REDUCE.node(), 0, false) * hero.getSkillLevel(this)); if (staminaCost > 0) { description += " FP:" + staminaCost; } // DELAY int delay = SkillConfigManager.getUseSetting(hero, this, SkillSetting.DELAY.node(), 0, false) / 1000; if (delay > 0) { description += " W:" + delay + "s"; } // EXP int exp = SkillConfigManager.getUseSetting(hero, this, SkillSetting.EXP.node(), 0, false); if (exp > 0) { description += " XP:" + exp; } return description; }