public void CancelSelection() { iTween.ScaleTo(selectedCard.gameObject, new Vector3(1.0f, 1.0f, 1.0f), 1.0f); m_cards.Insert(selectedCardIndex, selectedCard); selectedCard.selected = false; selectedCard = null; change = true; Destroy(confirmObject); }
public void UnselectCard() { if (currentSelect != null) { currentSelect.transform.SetParent(transform); currentSelect.transform.SetSiblingIndex(currentSelect.orderInHand - 1); currentSelect.hoverable = true; currentSelect = null; currentSelectIndex = -1; } }
/// <summary> /// Adds the supplied cards to the hand. /// </summary> /// <param name="cardsToAdd">Cards to add to the hand.</param> public void AddCards(List <Card> cardsToAdd) { for (int i = 0; i < cardsToAdd.Count; i++) { CardInHand card = new CardInHand { card = cardsToAdd[i], position = cards.Count }; cards.Add(card); } }
void DisplayCard(bool display, CardInHand card) { if (display) { displayCard.gameObject.SetActive(true); displayCard.Display(card.GetComponent <CardGameObject>()); } else { displayCard.gameObject.SetActive(false); } }
public override void GiveCard(Card card) { if (card.Value + PersonValue < Table.winPoint) { Console.WriteLine($"Дилеру выпала карта - {card.Rank} {card.Suit}"); CardInHand.Add(card); PersonValue += card.Value; } else { ThatsAll = false; } }
private IEnumerator AnimateCardUseHelper(CardInHand card) { Debug.Log("Animating"); level.StartCardAnimation(); iTween.FadeTo(card.gameObject, 0.0f, 1.0f); iTween.MoveBy(card.gameObject, new Vector3(0.0f, -2.0f, 0.0f), 1.0f); yield return(new WaitForSeconds(1.0f)); m_cardManager.deck.PutCardIntoDiscard(card.info); Destroy(card.gameObject); Debug.Log("Done animating"); level.EndCardAnimation(card); }
public void DrawCard() { CardInfo info = m_cardManager.deck.DrawCardIntoHand(); if (info == null) { Debug.Log("Failed to draw"); return; } CardInHand card = CreateCard(transform.position, info); m_cards.Add(card); change = true; }
public void DiscardAllBut(CardInHand save) { foreach (CardInHand card in m_cards) { if (save == card) { continue; } Discard(card); } m_cards.Clear(); m_cards.Add(save); change = true; }
public bool CardSelected(CardInHand card) { CardInfo cardInfo = card.info; if(m_state == TurnState.use) { Debug.Log (cardInfo.name + " was used!"); playerHand.AnimateCardUse(card); return true; } if(m_state == TurnState.save) { Debug.Log (cardInfo.name + " was saved!"); playerHand.PutCardBackIntoHand(card); playerHand.DiscardAllBut(card); m_state = TurnState.draw; return false; } return false; }
public void UpdateXD(List <CardInHand> allCardsUnderMouse, out CardInHand selectedCard) { selectedCard = null; if (allCardsUnderMouse.Count < 1) { UnhoverOverCard(); return; } CardInHand selectedCardOrHighestIndex = GetCardWithHighestOrder(allCardsUnderMouse); if (selectedCardOrHighestIndex.orderInHand - 1 != currentHoverIndex) { selectedCard = selectedCardOrHighestIndex; HoverOverCard(selectedCardOrHighestIndex); } }
public CardInHand GetCardWithHighestOrder(List <CardInHand> allCards) { CardInHand card = null; int currentHighest = -1; foreach (var c in allCards) { if (c.orderInHand > currentHighest) { currentHighest = c.orderInHand; card = c; } } return(card); }
private CardInHand CreateCard(Vector3 position, CardInfo info) { //if(infos.Count <= 0) return null; Vector3 target = GetCardSpawnPoint(); GameObject element = Instantiate(cardPrefab, target, Quaternion.identity) as GameObject; Card c = element.GetComponent <Card>(); c.InitializeCard(info); CardInHand card = element.GetComponent <CardInHand>(); card.info = info; card.target = target; iTween.Init(card.gameObject); card.hand = this; return(card); }
public void KnowAboutNominalAndColor_GivenClueAboutColorOnly_ReturnsFalse() { var gameProvider = new GameProvider(); Game game = new Game(gameProvider, 2); Player player = new Player(game); CardInHand card = new CardInHand(player, new Card(Color.Blue, Rank.One)); player.AddCard(card); // act var clue = Clue.Create(new ClueAboutColor(Color.Blue), new[] { card }); player.ListenClue(clue); // assert Assert.IsFalse(player.KnowAboutNominalAndColor(card)); }
public void DiscardCard(CardInHand card, bool animate) { UnselectCard(); card.active = false; card.GetComponentInChildren <Button>().interactable = false; cardsInHand.Remove(card); if (animate) { StartCoroutine(ThrowToDiscard(card)); } else { card.StartChanging(discardPile.localPosition, 0, 0); card.transform.SetParent(FindObjectOfType <Canvas>().transform); StartCoroutine(DestroyCard(card.gameObject)); } RecalculateCardPositions(); }
public void KnowAboutNominalAndColor_GivenCluesAboutNominalAndColor_ReturnsTrue() { var gameProvider = new GameProvider(); Game game = new Game(gameProvider, 2); Player player = new Player(game); CardInHand cardInHand = new CardInHand(player, new Card(Rank.One, Color.Blue)); player.AddCard(cardInHand); var cardsToClue = new[] { cardInHand }; var clueOne = Clue.Create(new ClueAboutRank(Rank.One), cardsToClue); var clueTwo = Clue.Create(new ClueAboutColor(Color.Blue), cardsToClue); player.ListenClue(clueOne); player.ListenClue(clueTwo); Assert.IsTrue(player.KnowAboutNominalAndColor(cardInHand)); }
private void SelectACard(CardInHand card) { int idx = FindIndexOfCard(card); selectedCard = card; selectedCardIndex = idx; selectedCard.selected = true; m_cards.RemoveAt(idx); change = true; lastFocusedCard = card; focusedCard = null; if (confirmSelection) { TweenTo(card, new Vector3(0.0f, 0.0f, -6.0f)); iTween.ScaleTo(card.gameObject, new Vector3(2.0f, 2.0f, 1.0f), 1.0f); BringUpConfirmation(); } else { ConfirmSelection(); } }
// Update is called once per frame void Update() { if (change) { OrganizeCards(); } // if there is a card focused or the focus has changed if (focusedCard != null && lastFocusedCard != focusedCard) { lastFocusedCard = focusedCard; PushCardsAwayFrom(focusedCard); } if (focusedCard != null && m_cards.Count > 3) { MoveCardsToTargets(); } else { MoveCardsToResting(); } change = false; }
void Update() { List <CardInHand> allCardsUnderMouse = GetAllCards(); if (allCardsUnderMouse.Count < 1) { UnhoverOverCard(); return; } CardInHand selectedCardOrHighestIndex = GetCardWithHighestOrder(allCardsUnderMouse); if (selectedCardOrHighestIndex.hand != this) { return; } if (selectedCardOrHighestIndex.orderInHand - 1 != currentHoverIndex) { HoverOverCard(selectedCardOrHighestIndex); } }
public void KnowAboutNominalAndColor_GivenCluesAboutAllOtherColorsAndNominal_ReturnsTrue() { var gameProvider = new GameProvider(); Game game = new Game(gameProvider, 2); Player player = new Player(game, ""); CardInHand blueOneCard = new CardInHand(player, new Card(Color.Blue, Rank.One)); player.AddCard(blueOneCard); CardInHand redTwoCard = new CardInHand(player, new Card(Color.Red, Rank.Two)); player.AddCard(redTwoCard); CardInHand yellowThreeCard = new CardInHand(player, new Card(Color.Yellow, Rank.Three)); player.AddCard(yellowThreeCard); CardInHand whiteFourCard = new CardInHand(player, new Card(Color.White, Rank.Four)); player.AddCard(whiteFourCard); CardInHand greenFiveCard = new CardInHand(player, new Card(Color.Green, Rank.Five)); player.AddCard(greenFiveCard); // clue about rank blue one var clue = Clue.Create(new ClueAboutRank(Rank.One), new[] { blueOneCard }); player.ListenClue(clue); // clues about red, yellow, white and green colors player.ListenClue(Clue.Create(new ClueAboutColor(Color.Red), new[] { redTwoCard })); player.ListenClue(Clue.Create(new ClueAboutColor(Color.Yellow), new[] { yellowThreeCard })); player.ListenClue(Clue.Create(new ClueAboutColor(Color.White), new[] { whiteFourCard })); player.ListenClue(Clue.Create(new ClueAboutColor(Color.Green), new[] { greenFiveCard })); Assert.IsTrue(player.KnowAboutNominalAndColor(blueOneCard)); }
public void ListenClue_HandWithRedFiveAndClueAboutFive_AddsClueAboutOtherCards() { IGameProvider provider = new GameProvider(); Game game = new Game(provider, 2); var player = new Player(game); CardInHand blueOneCard = new CardInHand(player, new Card(Color.Blue, Rank.One)); player.AddCard(blueOneCard); CardInHand redFiveCard = new CardInHand(player, new Card(Color.Red, Rank.Five)); player.AddCard(redFiveCard); // act player.ListenClue(Clue.Create(new ClueAboutRank(Rank.Five), new [] { redFiveCard })); IReadOnlyList <ClueType> clues = player.GetCluesAboutCard(blueOneCard); Assert.AreEqual(1, clues.Count); Assert.IsTrue(clues[0] is ClueAboutNotRank); }
public void EndCardAnimation(CardInHand card) { CardInfo cardInfo = card.info; m_state = TurnState.characterAnimate; storyTrack.eventController.HandleCard(this, cardInfo, characterManager); }
public void ConfirmSelection() { if(confirmObject != null) Destroy(confirmObject); level.CardSelected(selectedCard); selectedCard.selected = false; selectedCard = null; }
public void CardUnfocused(CardInHand card) { if(selectedCard != null || !m_is_enabled) return; lastFocusedCard = card; focusedCard = null; }
public void AnimateCardUse(CardInHand card) { StartCoroutine("AnimateCardUseHelper", card); }
private void TweenTo(CardInHand card, Vector3 position) { iTween.MoveTo(card.gameObject, iTween.Hash("time", 0.5f, "position", position)); }
// Use this for initialization void Start() { m_cards = new List<CardInHand>(); lastFocusedCard = focusedCard = null; change = false; confirmSelection = false; m_is_enabled = false; }
private void PushCardsAwayFrom(CardInHand card) { int idx = FindIndexOfCard(card); float popDistance = 0.5f; float baseZed = -5.0f; for(int i = 0; i < m_cards.Count; i++) { CardInHand c = m_cards[i]; Vector3 pt = c.resting; Vector3 zpt = c.transform.position; if(i < idx) { zpt.z = baseZed + (idx - i * 0.25f); pt.x -= popDistance; } else if (i > idx) { zpt.z = baseZed + (i - idx + 1 * 0.25f); pt.x += popDistance; } else { zpt.z = baseZed; c.target = pt; } pt.z = zpt.z; c.transform.position = zpt; c.target = pt; } }
public void DropCard(CardInHand card, bool stayUp) { hand.DiscardCard(card, stayUp); }
public void PutCardBackIntoHand(CardInHand card) { m_cards.Add(card); iTween.ScaleTo(card.gameObject, new Vector3(1.0f, 1.0f, 1.0f), 1.0f); m_cards.Add(card); }
public void Discard(CardInHand card) { m_cardManager.deck.PutCardIntoDiscard(card.info); Destroy(card.gameObject); }
public void DestroyCard(CardInHand card) { }
private int FindIndexOfCard(CardInHand card) { for(int i = 0; i < m_cards.Count; i++) if(m_cards[i] == card) return i; return -1; }
private void SelectACard(CardInHand card) { int idx = FindIndexOfCard(card); selectedCard = card; selectedCardIndex = idx; selectedCard.selected = true; m_cards.RemoveAt(idx); change = true; lastFocusedCard = card; focusedCard = null; if(confirmSelection) { TweenTo (card, new Vector3(0.0f, 0.0f, -6.0f)); iTween.ScaleTo(card.gameObject, new Vector3(2.0f, 2.0f, 1.0f), 1.0f); BringUpConfirmation(); } else { ConfirmSelection(); } }
public bool KnowAboutRankOrColor(CardInHand cardInHand) { return(KnowAboutRankOrColorPredicate(cardInHand)); }
private void TweenBy(CardInHand card, float xValue) { iTween.MoveBy(card.gameObject, iTween.Hash("x", xValue, "time", 0.5f, "looptype", "none")); }
public IList <ClueType> GetCluesAboutCard(CardInHand cardInHand) { return(CluesAboutCard.ContainsKey(cardInHand)? CluesAboutCard[cardInHand] : new List <ClueType>()); }
// Update is called once per frame void Update() { if(change) { OrganizeCards(); } // if there is a card focused or the focus has changed if(focusedCard != null && lastFocusedCard != focusedCard) { lastFocusedCard = focusedCard; PushCardsAwayFrom(focusedCard); } if(focusedCard != null && m_cards.Count > 3) { MoveCardsToTargets(); } else { MoveCardsToResting(); } change = false; }
public bool IsSubtleClue(CardInHand cardInHand, IEnumerable <Card> expectedCards) { return(IsSubtleCluePredicate(cardInHand)); }
public void CardWasClicked(CardInHand card) { if(selectedCard != null || !m_is_enabled) return; SelectACard(card); }
public void DiscardAllBut(CardInHand save) { foreach(CardInHand card in m_cards) { if(save == card) continue; Discard(card); } m_cards.Clear(); m_cards.Add(save); change = true; }
public override void GiveCard(Card card) { CardInHand.Add(card); }
private IEnumerator AnimateCardUseHelper(CardInHand card) { Debug.Log ("Animating"); level.StartCardAnimation(); iTween.FadeTo(card.gameObject, 0.0f, 1.0f); iTween.MoveBy (card.gameObject, new Vector3(0.0f, -2.0f, 0.0f), 1.0f); yield return new WaitForSeconds(1.0f); m_cardManager.deck.PutCardIntoDiscard(card.info); Destroy (card.gameObject); Debug.Log ("Done animating"); level.EndCardAnimation(card); }
public void PutCardBackIntoHand(CardInHand card) { m_cards.Add(card); iTween.ScaleTo(card.gameObject, new Vector3(1.0f, 1.0f, 1.0f), 1.0f); m_cards.Add (card); }