private void DiscardAll(IBattelBase battel, Action finish) { battel.Player.AttackCards.ForEach(x => x.Moving.SetPosition(resetDirection)); battel.Enemy.AttackCards.ForEach(x => x.Moving.SetPosition(resetDirection)); battel.GetAllAttackCards().Relocation(() => ReturnCardsToDecks(battel, finish), 0.5f, 0.5f, 0.5f); }
public List <IAttackCard> GetTargetCards(IAttackCard card, IBattelBase battel) { var cards = new List <IAttackCard>(card.Warrior.FriendPerson.AttackCards); cards.Remove(card); return(cards); }
public static List <IAttackCard> GetAllAttackCards(this IBattelBase battel) { var cardsQueue = new List <IAttackCard>(battel.Player.AttackCards); cardsQueue.AddRange(battel.Enemy.AttackCards); return(cardsQueue); }
private void ReturnCardsToDecks(IBattelBase battel, Action finish) { ReturnCardsToDeck(battel.Player); ReturnCardsToDeck(battel.Enemy); OnClear(); finish.Invoke(); }
protected List <IAttackCard> GetTargetCards(IAttackCard card, IBattelBase battel) { if (targetCards == null) { return(new List <IAttackCard>()); } else { return(targetCards.GetTargetCards(card, battel)); } }
public void TriggerEvent(EventTriggerEnum requestTrigger, IAttackCard card, IBattelBase battel, Action finish) { this.finish = finish; if (isReady == false || triggers.Contains(requestTrigger) == false || conditionsAbility.IsConditions(card, battel) == false) { finish?.Invoke(); } else { Finish(card, effectAbility.IsResult(card, battel, specificityFactory)); } }
public List <IAttackCard> GetTargetCards(IAttackCard card, IBattelBase battel) { if (card.Warrior.AttackTargetID != -1) { return new List <IAttackCard>() { card.Warrior.AttackTargetUnit } } ; return(new List <IAttackCard>()); } }
public bool IsConditions(IAttackCard card, IBattelBase battel) { var cards = GetTargetCards(card, battel); foreach (var item in startingConditions) { if (item.IsConditions(card, cards, battel) == false) { return(false); } } return(true); }
public bool Execute(IAttackCard card, List <IAttackCard> cardsTarget, IBattelBase battel, ISFXFactory specificityFactory) { bool result = false; foreach (var item in cardsTarget) { if (item.Tokens.AddToken(token, count)) { result = true; item.StartSFX(specificityTarget); } } return(result); }
public void OnStrengthen(IBattelBase battel, Action finish) { Strengthen.Invoke(carrentCount); carrentCount++; if (carrentCount == max) { ResetCards.Invoke(); DiscardAll(battel, finish); } else { finish.Invoke(); } }
public bool IsResult(IAttackCard card, IBattelBase battel, ISFXFactory specificityFactory) { var cards = GetTargetCards(card, battel); foreach (var item in postConditions) { cards = item.GetTargetCards(card, cards, battel); } bool result = false; foreach (var item in effectAbility) { if (item.Execute(card, cards, battel, specificityFactory)) { result = true; } } return(result); }
public List <IAttackCard> GetTargetCards(IAttackCard card, IBattelBase battel) { var cards = new List <IAttackCard>(); var cells = card.Warrior.FriendPerson.Cell; if (card.Id + 1 < cells.Count) { if (cells[card.Id + 1].IsExist) { cards.Add(cells[card.Id + 1].Unit); } } if (card.Id - 1 >= 0) { if (cells[card.Id - 1].IsExist) { cards.Add(cells[card.Id - 1].Unit); } } return(cards); }
protected QueueHendler(IBattelBase battel, Action actionFinish) => (this.battel, this.actionFinish) = (battel, actionFinish);
public bool IsConditions(IAttackCard card, List <IAttackCard> cards, IBattelBase battel) => GetTargetCards(card, cards, battel).Count > 0;
public List <IAttackCard> GetTargetCards(IAttackCard card, List <IAttackCard> cardsTarget, IBattelBase battel) { int i = 0; while (i < cardsTarget.Count) { if (SetResult(cardsTarget[i].Combat.Initiative) == false) { cardsTarget.RemoveAt(i); } else { i++; } } return(cardsTarget); }
protected RoundActionsPhase(IBattelBase battel, Action <IAttackCard> actionFinish, List <IAttackCard> cards) { (this.battel, this.actionFinish, this.cards) = (battel, actionFinish, cards); }
public List <IAttackCard> GetTargetCards(IAttackCard card, IBattelBase battel) => new List <IAttackCard>() { card };
public DeathCards(IBattelBase battel, Action actionFinish, List <IAttackCard> attackCards) : base(battel, actionFinish) => this.attackCards = attackCards ?? new List <IAttackCard>();
public TokenStartRound(IBattelBase battel, Action actionFinish) : base(battel, actionFinish) { startToken = ""; }
public ImplementationAbility(IBattelBase battel, Action actionFinish) : base(battel, actionFinish) =>
public MainRoundPhase(IBattelBase battel, Action actionFinish) : base(battel, actionFinish) { }
public TokenEndRound(IBattelBase battel, Action actionFinish) : base(battel, actionFinish) { startToken = "Spoilage"; }
public EndRoundAbilityPhase(IBattelBase battel, Action actionFinish) : base(battel, actionFinish) =>
public CommonActionsPhase(IBattelBase battel, Action <IAttackCard> actionFinish, List <IAttackCard> cards) : base(battel, actionFinish, cards) { }
// Карта совершает анимацию и показывает специфект способности public void ExecuteAbility(EventTriggerEnum trigger, IBattelBase battel, Action finish) { View.Frame(true); Ability.TriggerEvent(trigger, this, battel, () => { View.Frame(false); finish?.Invoke(); }); }
public TokenModul(IBattelBase battel, Action actionFinish) => (this.battel, this.actionFinish) = (battel, actionFinish);
public bool Execute(IAttackCard card, List <IAttackCard> cardsTarget, IBattelBase battel, ISFXFactory specificityFactory) => Execute(cardsTarget);
public List <IAttackCard> GetTargetCards(IAttackCard card, IBattelBase battel) => new List <IAttackCard>(card.Warrior.EnemyPerson.AttackCards);