Esempio n. 1
0
    // Update is called once per frame
    void Update()
    {
        // Mouse pointer section
        if (Input.GetMouseButtonDown(0) && GiveActionPlayers.Count == 0 && !BusPassengerPanel.activeSelf)
        {
            // Position of mouse pointer
            Vector3 pos = main.ScreenToWorldPoint(Input.mousePosition);

            RaycastHit2D hit = Physics2D.Raycast(pos, Vector2.zero);
            if (hit.transform != null)
            {
                CardObject cardSelected = hit.transform.gameObject.GetComponent <CardObject>();
                if (cardSelected.CardInfo != null)
                {
                    Debug.Log("Selected card: " + cardSelected.CardInfo.ToString());
                    if (!cardSelected.Turned)
                    {
                        cardSelected.TurnCard();
                        if (cardSelected.Type == CardType.BusRide)
                        {
                            //Bus
                            CardsActiveOnBus.Add(cardSelected);
                            // display the turned card
                            DisplayCard(cardSelected.CardInfo);
                            // handle drawing bus cards
                            if (cardSelected.CardInfo.Value >= 10 || cardSelected.CardInfo.Value == 1)
                            {
                                // they drink
                                var drinkCounter = 0;
                                foreach (var card in CardsActiveOnBus)
                                {
                                    // TODO move the draw new card when turning to the card object class.
                                    // Use public method to draw the card from singleton
                                    card.CardInfo = DrawCard(Deck);
                                    card.TurnCard();
                                    drinkCounter++;
                                }
                                var playersToDrink = new StringBuilder();
                                foreach (var p in PlayersOnBus)
                                {
                                    playersToDrink.Append(p.Name + ", ");
                                }
                                playersToDrink.Append("skal drikke " + drinkCounter + " tåre");
                                CardsActiveOnBus = new List <CardObject>();
                                ActionText.GetComponent <Text>().text = playersToDrink.ToString();
                            }
                        }
                        else
                        {
                            //guitar
                            var actionTaken = CheckCardActionGuitar(cardSelected.CardInfo, cardSelected.Type, cardSelected.Sips);
                            DisplayCard(cardSelected.CardInfo);
                            if (!actionTaken)
                            {
                                // draw new card
                                cardSelected.CardInfo = DrawCard(Deck);
                                cardSelected.TurnCard();
                            }
                            else
                            {
                                if (GiveActionPlayers.Count > 0)
                                {
                                    GiveActionPlayers.OrderBy(pair => pair.Player.Name);
                                    // set active selection panel
                                    GivePanel.SetActive(true);
                                    // fill dropdown
                                    var           dropDown    = GivePanel.GetComponentInChildren <Dropdown>();
                                    List <string> playerNames = Players.Select(p => p.Name).ToList();
                                    dropDown.ClearOptions();
                                    dropDown.AddOptions(playerNames);
                                    SetActionPair();
                                }
                            }
                        }
                    }
                }
            }
        }
    }