public void CreateButton(IOcuppy actualOccupier, ABILITYBUTTONTYPE abilityButtonType)
            {
                Button btnAbi = Instantiate(abilityButtonPrefab);

                btnAbi.transform.SetParent(buttonParent, false);
                switch (abilityButtonType)
                {
                case ABILITYBUTTONTYPE.MOVE:
                    MoveAbilityButtonExecution moveAbilityBtnExe = new MoveAbilityButtonExecution(actualOccupier, gameMachine, this);
                    AbilityButton btnMove = new AbilityButton(btnAbi, moveAbilityBtnExe, null);
                    btnMove.Suscribe();
                    actualAbilityButtons.Add(btnMove);
                    break;

                case ABILITYBUTTONTYPE.ATTACK:
                    AttackAbilityButtonExecution attackAbilityBtnExe = new AttackAbilityButtonExecution(actualOccupier, gameMachine, this);
                    AbilityButton btnAttack = new AbilityButton(btnAbi, attackAbilityBtnExe, null);
                    btnAttack.Suscribe();
                    actualAbilityButtons.Add(btnAttack);
                    break;

                case ABILITYBUTTONTYPE.DEFEND:
                    DefenseAbilityButtonExecution defenseAbilityBtnExe = new DefenseAbilityButtonExecution(actualOccupier, gameMachine, this);
                    AbilityButton btnDefense = new AbilityButton(btnAbi, defenseAbilityBtnExe, null);
                    btnDefense.Suscribe();
                    actualAbilityButtons.Add(btnDefense);
                    break;

                case ABILITYBUTTONTYPE.COMBINE:
                    break;

                case ABILITYBUTTONTYPE.TAKECARD:
                    TakeCardAbilityButtonExecution takeCardAbilityBtnExe = new TakeCardAbilityButtonExecution(actualOccupier, gameMachine, this);
                    AbilityButton btnTakeCard = new AbilityButton(btnAbi, takeCardAbilityBtnExe, null);
                    btnTakeCard.Suscribe();
                    actualAbilityButtons.Add(btnTakeCard);
                    break;

                case ABILITYBUTTONTYPE.EVOLVE:
                    break;

                case ABILITYBUTTONTYPE.FUSION:
                    break;

                case ABILITYBUTTONTYPE.SPAWN:
                    SpawnAbilityButtonExecution spawnAbilityBtnExe = new SpawnAbilityButtonExecution(actualOccupier, gameMachine, this);
                    AbilityButton btnSpawn = new AbilityButton(btnAbi, spawnAbilityBtnExe, null);
                    btnSpawn.Suscribe();
                    actualAbilityButtons.Add(btnSpawn);
                    break;

                default:
                    break;
                }
            }