public static Dictionary <ABILITYTYPE, IAbility> CreatePlayerAbilities(Player player) { Dictionary <ABILITYTYPE, IAbility> Abilities = new Dictionary <ABILITYTYPE, IAbility>(); SpawnAbility spawnAbility = new SpawnAbility(player); TakeCardAbility takeCardAbility = new TakeCardAbility(player); Abilities.Add(spawnAbility.AbilityType, spawnAbility); Abilities.Add(takeCardAbility.AbilityType, takeCardAbility); return(Abilities); }
public bool CanITakeACard(Player player) { if (!IsLegalTakeCard(player)) { Debug.Log("Ilegal Take Card"); return(false); } if (player.Abilities.ContainsKey(ABILITYTYPE.TAKEACARD) == false) { if (debugOn) { Debug.Log("El Player no tiene la Take Card Ability"); } return(false); } TakeCardAbility takceCardAbility = (TakeCardAbility)player.Abilities[ABILITYTYPE.TAKEACARD]; if (takceCardAbility == null) { if (debugOn) { Debug.Log("La ID de la TakeCard Ability puede estar mal no funciono el casteo"); } return(false); } if (player.Deck.Count <= 0) { if (debugOn) { Debug.Log("No Cards In Deck"); } return(false); } return(true); }
public void OnTakeCard(Player player) { TakeCardAbility takceCardAbility = (TakeCardAbility)player.Abilities[ABILITYTYPE.TAKEACARD]; TakeCardAbilityEventInfo tkeCardInfo = new TakeCardAbilityEventInfo(player, PeekCardFromDeck(player), PeekCardFromDeck(player).IDInGame); takceCardAbility.SetRequireGameData(tkeCardInfo); StartPerform(takceCardAbility); if (takceCardAbility.CanIExecute() == false) { if (debugOn) { Debug.Log("SPAWN ABILITY NO SE PUEDE EJECUTAR"); } return; } tkeCardInfo.card = TakeCardFromDeck(player); TakeCardFromDeck(tkeCardInfo); Perform(takceCardAbility); EndPerform(takceCardAbility); //cardIndex++; }