public override bool MoveNext() { WaitForClickChoice waitForPhaseOne = Current as WaitForClickChoice; if (waitForPhaseOne != null) { cards--; switch (waitForPhaseOne.Decision) { case Decision.Deck: player.DrawCards(); break; case Decision.Player: Player target = waitForPhaseOne.Player; int targetPlayer = target.Index; availablePlayers.Remove(targetPlayer); Current = EveryCowboyForHimself.Shoot(player, target); return(true); } } if (availablePlayers.Count > 0 && cards > 0) { Current = new WaitForClickChoice(player); return(true); } if (cards > 0) { player.DrawCards(cards); } return(false); }
public override bool MoveNext() { WaitForCardSelection chooseCardTimer = Current as WaitForCardSelection; if (chooseCardTimer != null && chooseCardTimer.ChosenCard != null) { DrawEffectCard = chooseCardTimer.ChosenCard; drawnCards = chooseCardTimer.Cards; } if (drawnCards != null && !drawEffectStarted) { currentCard = 0; maxCards = drawnCards.Count; drawEffectStarted = true; } if (drawEffectStarted && currentCard < maxCards) { Current = EveryCowboyForHimself.DrawEffect(player, drawnCards[currentCard++]); return(true); } if (maxCards > 0 && currentCard == maxCards) { return(false); } return(true); }
public override bool MoveNext() { if (finished) { return(false); } ResponseCoroutine responseCoroutine = Current as ResponseCoroutine; if (responseCoroutine != null) { hitPlayers[next] = responseCoroutine.TakeHit; } Player pc; do { next = EveryCowboyForHimself.NextPlayerAlive(next); pc = players[next]; } while (pc.IsDead || pc.Immune(card)); if (next != player) { Current = CreateResponseCoroutine(pc); return(true); } Current = FinishMultiTargeting(); finished = true; return(true); }
public override bool MoveNext() { WaitForCardSelection generalStoreTimer = Current as WaitForCardSelection; if (generalStoreTimer != null) { CardChoices = generalStoreTimer.NotChosenCards; players[nextPlayer].AddCardHand(generalStoreTimer.ChosenCard); nextPlayer = EveryCowboyForHimself.NextPlayerAlive(nextPlayer); pendingPlayers--; return(true); } bool res = pendingPlayers > 1; if (res) { Current = new WaitForCardSelection(players[nextPlayer], CardChoices); return(true); } if (!res && !lastCard) { lastCard = true; players[nextPlayer].AddCardHand(LastCard); return(true); } return(res); }
public IEnumerator Hit(Player attacker, int amount = 1) { if (attacker != null && attacker != this) { yield return(EveryCowboyForHimself.Event(this + " has been hit by " + attacker)); } else { yield return(EveryCowboyForHimself.Event(this + " loses " + amount + " hit points.")); } HP -= amount; }
public DrawEffectCoroutine(Player player) { this.player = player.Index; int drawEffectCards = player.DrawEffectCards; if (drawEffectCards < 2) { DrawEffectCard = EveryCowboyForHimself.DrawCard(); drawnCards = new List <Card>(); drawnCards.Add(DrawEffectCard); } else { Current = new WaitForCardSelection(player, drawEffectCards); } }
public override bool MoveNext() { WaitForCardSelection cardSelection = Current as WaitForCardSelection; if (cardSelection != null) { Characters[currentPlayer].RemoveCardHand(cardSelection.Choice); Characters[startingPlayer].AddCardHand(cardSelection.ChosenCard); } currentPlayer = EveryCowboyForHimself.NextPlayerAlive(currentPlayer); Player currentPc = Characters[currentPlayer]; if (startingPlayer != currentPlayer && currentPc.Hand.Count > minimumCards) { Current = new WaitForCardSelection(currentPc, currentPc.Hand); return(true); } return(false); }
public override bool MoveNext() { if (finished) { return(false); } WaitForCardResponse responseCoroutine = Current as WaitForCardResponse; if (responseCoroutine != null) { decision = responseCoroutine.Decision; if (decision == Decision.Avoid) { Current = EveryCowboyForHimself.Event(next + " keeps dueling."); if (next == target) { pimPamPumsTarget++; } return(true); } else { Current = EveryCowboyForHimself.Event(next + " loses the duel."); return(true); } } if (decision != Decision.TakeHit) { next = next == player ? target : player; //TODO next.EnablePimPamPumsDuelResponse(); Current = new WaitForCardResponse(next); return(true); } else { target.FinishResponse(pimPamPumsTarget); Current = EveryCowboyForHimself.HitPlayer(player, next); finished = true; return(true); } }
public override bool MoveNext() { WaitForCardResponse responseTimer = Current as WaitForCardResponse; if (responseTimer != null) { currentDecision = responseTimer.Decision; switch (responseTimer.Decision) { case Decision.Avoid: currentDecision = Decision.Pending; dodges++; SetCardResponse(responseTimer); return(true); case Decision.Barrel: currentDecision = Decision.Pending; barrelsUsed++; Current = new DrawEffectCoroutine(character); return(true); } } DrawEffectCoroutine drawEffectCoroutine = Current as DrawEffectCoroutine; if (drawEffectCoroutine != null) { Card drawEffectCard = drawEffectCoroutine.DrawEffectCard; dodge = EveryCowboyForHimself.CheckConditionBarrel(drawEffectCard); dodges += dodge ? 1 : 0; Current = EveryCowboyForHimself.BarrelEffect(character, drawEffectCard); return(true); } if (dodges < misses && currentDecision != Decision.TakeHit) { Current = new WaitForCardResponse(character); return(true); } TakeHit = dodges < misses || currentDecision == Decision.TakeHit; return(false); }
public override IEnumerator CardEffect(Player player, int target, Selection selection, int cardIndex) { yield return(base.CardEffect(player, target, selection, cardIndex)); yield return(EveryCowboyForHimself.Gatling(player.Index, this)); }
protected void SetCardResponse(WaitForCardResponse timer) { Current = EveryCowboyForHimself.CardResponse(character, timer.ResponseCard); }
public override IEnumerator CardEffect(Player player, int target, Selection selection, int cardIndex) { yield return(base.CardEffect(player, target, selection, cardIndex)); EveryCowboyForHimself.Saloon(); }
public void DiscardCardHand(Card card) { RemoveCardHand(card); EveryCowboyForHimself.DiscardCard(card); }
public override IEnumerator CardEffect(Player player, int target, Selection selection, int cardIndex) { player.RemoveCardHand(this); EveryCowboyForHimself.EquipPropertyTo(target, this); yield return(EquipTrigger(player)); }
public IEnumerator Panic(int target, Selection selection, int cardIndex) { yield return(EveryCowboyForHimself.Panic(this, target, selection, cardIndex)); }
public List <int> PlayersInWeaponRange() { List <int> result = EveryCowboyForHimself.PlayersInWeaponRange(Index, WeaponRange); return(result); }
public virtual void ForceEndTurn() { OriginalHand(); EveryCowboyForHimself.EndTurn(Index); }
public IEnumerator CardUsed(Player player) { Card usedCard = RetrieveUsedCard(); yield return(EveryCowboyForHimself.CardUsed(player, usedCard)); }
protected virtual IEnumerator ShootTrigger(int target) { yield return(EveryCowboyForHimself.Shoot(this, target, MissesToDodge)); }
public override IEnumerator CardEffect(Player player, int target, Selection selection, int cardIndex) { yield return(null); EveryCowboyForHimself.TradeTwoForOne(player, target, cardIndex); }
public void DrawCards(int amount = 1) { List <Card> cards = EveryCowboyForHimself.DrawCards(amount); AddCardsHand(cards); }