@Override
	public int attack(final Glacor glacor, final Entity target) {
		target.setAttackedBy(glacor);
		glacor.setNextAnimation(new Animation(9955));
		int SPEED = 50;
		glacor.setNextGraphics(new Graphics(905));
		World.sendProjectile(glacor, new WorldTile(target), 963, 60, 40, SPEED,
				30, 12, 0);
		if (!tile.contains(new WorldTile(target)))
			tile.add(new WorldTile(target));
		addPossibleTargets(glacor, target);
		WorldTasksManager.schedule(new WorldTask() {
			@Override
			public void run() {
				if (tile.get(0) == null) {
					tile.clear();
					targets.clear();
					this.stop();
				}
				World.sendGraphics(target, new Graphics(899), tile.get(0));
				for (Player players : targets) {
					if (players == null)
						continue;
					if (tile.get(0) == null)
						continue;
					if (players.matches(tile.get(0)) && !glacor.isDead())
						players.applyHit(new Hit(glacor,
								players.getHitpoints() / 2,
								HitLook.REGULAR_DAMAGE));
				}
				tile.clear();
				targets.clear();
				this.stop();
			}
		}, 3);
		return 3;
	}