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; } }