@Override
    public void attackFinished() {
        if (this.currentFlashFrame == this.numOfFlashTextures - 1) {
            this.frameNum = 0;
            this.currentFlashFrame = -1;
            this.isAttacking = false;
            if (this.isCrouching) {
                if (xProectionSign) {
                    changeAnimationType(3);
                } else {
                    changeAnimationType(2);
                }
            } else {
                if (xProectionSign) {
                    changeAnimationType(1);
                } else {
                    changeAnimationType(0);
                }
            }
            Shell bullet;
            if (xProectionSign) {
                if (isCrouching) {
                    bullet = new Bullet(this.getCurrentCoordinates().getX() + this.currentWidth,
                            this.getCurrentCoordinates().getY()
                                    + (int) Math.round(this.currentHeight * this.crouchBulletCoordCoeff),
                            null);
                    bullet.setHeroOwnHorizontalSpeed(10000 / AppFrame.getUpdatesPerSecond());
                } else {
                    bullet = new Bullet(this.getCurrentCoordinates().getX(),
                            this.getCurrentCoordinates().getY() + (int) Math.round(this.currentHeight * this.bulletCoordCoeff),
                            null);
                    bullet.setHeroOwnHorizontalSpeed(10000 / AppFrame.getUpdatesPerSecond());
                }
                AppFrame.getFrameDesign().addMovingObject(bullet);
            } else {
                if (isCrouching) {
                    bullet = new Bullet(this.getCurrentCoordinates().getX(),
                            this.getCurrentCoordinates().getY()
                                    + (int) Math.round(this.currentHeight * this.crouchBulletCoordCoeff),
                            null);
                    bullet.setHeroOwnHorizontalSpeed(-10000 / AppFrame.getUpdatesPerSecond());
                } else {
                    bullet = new Bullet(this.getCurrentCoordinates().getX(),
                            this.getCurrentCoordinates().getY() + (int) Math.round(this.currentHeight * this.bulletCoordCoeff),
                            null);
                    bullet.setHeroOwnHorizontalSpeed(-10000 / AppFrame.getUpdatesPerSecond());
                }
                AppFrame.getFrameDesign().addMovingObject(bullet);
            }
        } else {
            currentFlashFrame++;
        }
    }