package gameplay.Characters.Blue;

import gameplay.actions.*;
import gameplay.entities.Character;
import gameplay.frames.Frame;
import gameplay.Characters.Blue.BlueBaseFrames;
import gameplay.input.ButtonIG;

import java.util.ArrayList;

import static gameplay.input.ButtonIG.*;

public class CharacterBlue {
    public static Character generateCharBlue(){
        Frame[] standF = BlueBaseFrames.blueStandFrames();
        Frame[] crouchF = BlueBaseFrames.blueCrouchFrames();
        Frame[] nJumpF = BlueBaseFrames.blueNeutralJump();
        Frame[] fJumpF = BlueBaseFrames.blueForwardJump();
        Frame[] bJumpF = BlueBaseFrames.blueBackJump();
        Frame[] fWalkF = BlueBaseFrames.blueFWalk();
        Frame[] bWalkF = BlueBaseFrames.blueBWalk();

        ButtonIG[][] fjcmd = {{UP,FORWARD}};
        ButtonIG[][] bjcmd = {{UP,BACK}};
        ButtonIG[][] njcmd = {{UP}};


        Jump fJ = new Jump(fjcmd,fJumpF);
        Jump nJ = new Jump(njcmd,nJumpF);
        Jump bJ = new Jump(bjcmd,bJumpF);

        /*
         * Temporary values to change later
         */
        Frame[] fDashF = new Frame[0];
        Frame[] bDashF = new Frame[0];

        ThrowPart[] tp = new ThrowPart[0];

        ButtonIG[][] throwCMD = {{BACK,FORWARD,UP,DOWN},{BACK,FORWARD,UP,DOWN},{BACK,FORWARD,UP,DOWN}};
        ButtonIG[][] fdashCMD = {{BACK,FORWARD,UP,DOWN},{BACK,FORWARD,UP,DOWN},{BACK,FORWARD,UP,DOWN}};
        ButtonIG[][] bdashCMD = {{BACK,FORWARD,UP,DOWN},{BACK,FORWARD,UP,DOWN},{BACK,FORWARD,UP,DOWN}};

        Throw th = new Throw(false,throwCMD,tp);
        Dash fDash = new Dash(fdashCMD,fDashF);
        Dash bDash =new Dash(bdashCMD,bDashF);

        Frame[] fallingFs = new Frame[0];

        Frame f = new Frame();

        Attack[] atks = new Attack[0];

        Character c = new Character(0,0,standF[0],1000,atks,fJ,nJ,bJ,fDash,bDash,th,standF,crouchF,fWalkF,bWalkF,f,f,fallingFs,f,f,f,f);

        return c;
    }
}