protected void attack() {
        if (this.getPlayer() == Player.NEUTRAL) {
            return;
        }
        for (MyObject neighbour : model.getBoard().getObjectsNear(getXY())) {
            for (Skill skill : neighbour.getSkills()) {
                if (skill.blockTowerAttack(this)) {
                    return;
                }
            }
        }
        for (MyObject aim : model.getBoard().getEnemiesNear(this)) {
            model.log(getName() + " атакует " + aim.getName());
            aim.suffer(new Hit(minDamage, randDamage, new Direction(xy, aim.getXY())), this);
        }
    }