void ActiveTokens(bool isActive) { foreach (CardComponent card in ChosenCardEffects.Select(c => c.Card)) { if (isActive) { card.ResourcesToken.ShowToken(false); card.DoomToken.ShowToken(false); card.CluesToken.ShowToken(false); card.HealthToken.ShowToken(true); card.SanityToken.ShowToken(true); SetButton(); } else { card.HealthToken.ShowAmount(); card.HealthToken.HideButtons(); card.SanityToken.ShowAmount(); card.SanityToken.HideButtons(); card.ResourcesToken.ShowAmount(); card.DoomToken.ShowAmount(); card.CluesToken.ShowAmount(); } } }
public override void CardPlay(CardComponent card) { CardPlayed = card; if ((ChosenCardEffects.Exists(c => c.Card == card) && !isLoop) || ChosenCardEffects.Count < 2) { ContinueNextAction = true; } base.CardPlay(card); }
IEnumerator DoDamageAndHorror() { foreach (CardComponent card in ChosenCardEffects.FindAll(c => c.Card.SanityToken.AssignValue > 0 || c.Card.HealthToken.AssignValue > 0).Select(c => c.Card)) { yield return(new AddTokenAction(card.HealthToken, card.HealthToken.AssignValue, secundaryToToken: card.SanityToken, secundaryAmount: card.SanityToken.AssignValue).RunNow()); card.HealthToken.AssignValue = 0; card.SanityToken.AssignValue = 0; } }
public override void CardPlay(CardComponent card) { PreparingCard(card, false); AllComponents.Table.CenterPreview.ListCards.Remove(card); if (ChosenCardEffects.Count < 2) { ContinueNextAction = true; } base.CardPlay(card); ChosenCardEffects.Remove(ChosenCardEffects.Find(c => c.Card == card)); }
protected override IEnumerator ActionLogic() { yield return(base.ActionLogic()); if (CardsInPreview) { yield return(ShowTable()); } if (isLoop) { ChosenCardEffects.Remove(ChosenCardEffects.Find(c => c.Card == CardPlayed)); } }
protected override void MoveToOriginalzone(CardComponent card) { card.CurrentZone.ZoneBehaviour = realZone[card.CurrentZone]; if (CardPlayed == card && ChosenCardEffects.Find(c => c.Card == card).IsWithAnimation) { card.IsInCenterPreview = true; } else { card.MoveFast(card.CurrentZone, indexPosition: card.Position); card.Position = null; } AllComponents.Table.CenterPreview.ListCards.Remove(card); }
protected override void PlayableCards() { List <CardComponent> ListCardsToAssign = new List <CardComponent>(); if (DamageAmount > TotalDamageAssign) { ListCardsToAssign.AddRange(Investigator.Assets.ListCards.FindAll(c => c.Info.Health > 0)); } if (HorrorAmount > TotalDamageAssign) { ListCardsToAssign.AddRange(Investigator.Assets.ListCards.FindAll(c => c.Info.Sanity > 0).Except(ListCardsToAssign)); } ListCardsToAssign.Add(Investigator.InvestigatorCardComponent); foreach (CardComponent card in ListCardsToAssign) { ChosenCardEffects.Add(new CardEffect( card: card, effect: () => null, type: EffectType.Choose, name: "Asignar puntos")); } }
public override void SetButton() { if (TotalDamageAssign >= DamageAmount && TotalHorrorAssign >= HorrorAmount) { AllComponents.ReadyButton.SetReadyButton(this, state: ButtonState.Ready); } else { AllComponents.ReadyButton.SetReadyButton(this, state: ButtonState.Off); AllComponents.ReadyButton.ChangeButtonText((DamageAmount - TotalDamageAssign) + " de daƱo por asignar." + Environment.NewLine + (HorrorAmount - TotalHorrorAssign) + " de horror por asignar."); } foreach (CardComponent card in ChosenCardEffects.Select(c => c.Card)) { card.HealthToken.TokenText((card.HealthToken.Amount + card.HealthToken.AssignValue).ToString()); card.HealthToken.ButtonUpActive(card.HealthToken.Amount + card.HealthToken.AssignValue < (card.Info.Health ?? 0) && DamageAmount - TotalDamageAssign > 0); card.HealthToken.ButtonDownActive(card.HealthToken.AssignValue > 0); card.SanityToken.TokenText((card.SanityToken.Amount + card.SanityToken.AssignValue).ToString()); card.SanityToken.ButtonUpActive(card.SanityToken.Amount + card.SanityToken.AssignValue < (card.Info.Sanity ?? 0) && HorrorAmount - TotalHorrorAssign > 0); card.SanityToken.ButtonDownActive(card.SanityToken.AssignValue > 0); } }
public ChooseCardAction(CardEffect cardEffects, bool isOptionalChoice, bool isFastAction = false) { ChosenCardEffects.Add(cardEffects); this.isFastAction = isFastAction; this.isOptionalChoice = isOptionalChoice; }
/*****************************************************************************************/ public ChooseCardAction(CardEffect cardEffects, ref CardEffect cancelableCardEffect) { ChosenCardEffects.Add(cardEffects); this.cancelableCardEffect = cancelableCardEffect; isOptionalChoice = cancelableCardEffect.IsCancelable; }
protected override void PlayableCards() { ChosenCardEffects = ChosenCardEffects.Except(ChosenCardEffects.FindAll(c => c.Card.IsEliminated)).ToList(); CardEffects.AddRange(ChosenCardEffects); }