Example #1
0
    public void RemoveAndReplaceSelected()
    {
        foreach (GameObject C in SelectedCards)
        {
            Sets.Add(C);
            if (Deck.Count > 0)
            {
                Play [Play.IndexOf(C)] = Deck [0];
                Deck.RemoveAt(0);
            }
            else
            {
                Play.Remove(C);
            }
            C.GetComponent <Card> ().TargetPos = new Vector3(10, 10, 0);
        }
        SelectedCards = new List <GameObject> ();

        //Play.AddRange(Deck.GetRange (0, 3));
        //Deck.RemoveRange (0, 3);

        ArrangePlay();

        if (Deck.Count == 0)
        {
            if (FindNumberOfSets() == 0)
            {
                GameHasStarted = false;
                Deck.AddRange(Sets);
                Sets = new List <GameObject> ();
                MainCanvas.GetComponentsInChildren <StartButton> () [0].GetComponentInChildren <Text> ().text = "Start Game";
                MainCanvas.GetComponentsInChildren <StartButton> () [1].GetComponentInChildren <Text> ().text = "Start Singleplayer";
                TemporaryMessage Message = Resources.Load <TemporaryMessage>("Prefabs/TempMessage");
                Message = Instantiate(Message, MainCanvas.transform);
                Message.SetText("All Sets Found!");
                Message.Delay = 1f;
                foreach (StartOptions SO in HelpButtons)
                {
                    SO.gameObject.SetActive(true);
                }
                if (CurrentTurn != 4)
                {
                    MultiplayerGameFinished();
                }
                else
                {
                    //Restore buttons etc.
                    StopTimers();
                }
            }
        }
    }
Example #2
0
    public void SetTemporaryMessage(string id, string text)
    {
        TemporaryMessage temporaryMessage = temporaryMessages.Find(x => x.messageID == id && x.messageObject != null);

        if (temporaryMessage != null)
        {
            temporaryMessage.messageObject.SetActive(true);
            temporaryMessage.messageBar.SetText(text);
            temporaryMessage.messageTickCur  = 0;
            temporaryMessage.messageTick5Cur = 0;
            temporaryMessage.showingMessage  = true;
        }
    }
Example #3
0
    public void Tutorial()
    {
        foreach (TemporaryMessage T in FindObjectsOfType <TemporaryMessage> ())
        {
            DestroyImmediate(T.gameObject);
        }
        TemporaryMessage Message = Resources.Load <TemporaryMessage> ("Prefabs/TempMessage");
        var Temp = Instantiate(Message, MainCanvas.transform);

        Temp.SetText("A set has either ALL THE SAME or ALL DIFFERENT for each of its 4 attributes: Shape, Colour, Fill and Number.");
        Temp = Instantiate(Message, MainCanvas.transform);
        Temp.SetText("This is a Set");
        Temp.GetComponent <RectTransform> ().anchorMax = new Vector2(0.5f, 0);
        Temp.GetComponent <RectTransform> ().anchorMin = new Vector2(0.5f, 0);
        Temp.transform.Translate(0, 160, 0);
        Deck.AddRange(Play);
        Play = new List <GameObject> ();
        int i;

        i = Random.Range(0, Deck.Count);
        Play.Add(Deck[i]);
        Deck.RemoveAt(i);
        i = Random.Range(0, Deck.Count);
        Play.Add(Deck[i]);
        Deck.RemoveAt(i);

        foreach (GameObject C in Deck)
        {
            if (CheckSet(C.GetComponent <Card> (), Play [0].GetComponent <Card> (), Play [1].GetComponent <Card> ()))
            {
                Play.Add(C);
                Deck.Remove(C);
                break;
            }
        }

        ArrangePlay();
    }
Example #4
0
    public void CardPressed(int Category)
    {
        if (Phase == CPhases.StartingCards)
        {
            if (Players [0].DoesHave.Count == Players [0].NumberOfCards)
            {
                DisableAllCards();

                foreach (string s in All)
                {
                    if (!Players [0].DoesHave.Contains(s))
                    {
                        Players [0].NotHave.Add(s);
                    }
                }

                DiscoveredCardsToNotHave();
                UpdateKnown();

                GameObject TM = Resources.Load <GameObject> ("Prefabs/Cluedo/CluedoMessage");
                ScrollView.GetComponent <RectTransform> ().sizeDelta += new Vector2(60 * Players.Count - 90, 0);
                //Cards
                GameObject GO = Instantiate(TM, ScrollView.transform);
                GO.transform.localPosition = new Vector3();
                GO.transform.Translate(210, -300, 0);
                GO.GetComponent <Text> ().fontSize = 20;
                string AllItems = "";
                foreach (string s in All)
                {
                    AllItems += s + " - \n";
                }
                GO.GetComponent <TemporaryMessage> ().SetText(AllItems);
                GO.GetComponent <TemporaryMessage> ().Delay = -1;
                for (int P = 0; P < Players.Count; ++P)
                {
                    CreatePlayerVisuals(P);
                }
                //Solution
                GO = Instantiate(TM, ScrollView.transform);
                GO.transform.localPosition = new Vector3();
                GO.transform.Translate(350 + (Players.Count * 80), -80, 0);
                GO.transform.Rotate(0, 0, -20);
                GO.GetComponent <TemporaryMessage> ().SetText("Solution");
                GO.GetComponent <TemporaryMessage> ().Delay = -1;
                //Solution Grid
                GO = Instantiate(TM, ScrollView.transform);
                GO.transform.localPosition = new Vector3();
                GO.transform.Translate(380 + (Players.Count * 80), -300, 0);
                GO.GetComponent <Text> ().fontSize = 20;
                //Generate grid for Solution
                string LongString = "";
                foreach (string s in All)
                {
                    if (Solution [0] == s || Solution [1] == s || Solution [2] == s)
                    {
                        LongString += " X \n";
                    }
                    else if (Known.Contains(s))
                    {
                        LongString += " <> \n";                         //Know where it is
                    }
                    else
                    {
                        LongString += "   \n";                         //DON'T know
                    }
                }
                GO.GetComponent <TemporaryMessage> ().SetText(LongString);
                GO.GetComponent <TemporaryMessage> ().Delay = -1;
                SolutionGrid = GO.GetComponent <TemporaryMessage> ();
                Phase        = CPhases.Guess;
                Turn.text    = "Enter " + Players [CurrentPlayer].Name + "'s guess then press Submit, or press No Guess";
                if (CurrentPlayer == 0)
                {
                    Turn.text = "Enter your guess then press Submit, or press No Guess";
                }
                Submit.interactable  = true;
                NoGuess.interactable = true;
                //EnableAllCards ();
            }
        }
        else if (Phase == CPhases.ResultsOfGuess)
        {
            string DiscoveredCard = NewGuess.Cards [Category];
            Players [ShowingPlayer].DoesHave.Add(DiscoveredCard);
            Unknown.Remove(DiscoveredCard);
            Known.Add(DiscoveredCard);
            DiscoveredCardsToNotHave();
            EndShowing();
        }
    }
Example #5
0
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            StartGame();
        }

        if (Input.GetKeyDown(KeyCode.C))
        {
            Clue();
        }

        if (Input.GetMouseButtonUp(0) && CurrentTurn != -1)
        {
            //Debug.Log(Camera.main.ScreenToWorldPoint(Input.mousePosition));
            bool ChoseCard = false;
            bool FoundSet  = false;
            foreach (GameObject C in Play)
            {
                Bounds B = new Bounds(C.transform.position, new Vector3(2, 1, 60));
                if (B.Contains(Camera.main.ScreenToWorldPoint(Input.mousePosition)))
                {
                    ChoseCard = true;
                    if (SelectedCards.Count < 3)
                    {
                        if (!SelectedCards.Contains(C))
                        {
                            SelectedCards.Add(C);
                            C.transform.localScale = new Vector3(1.05f, 1.05f, 1);
                        }
                        if (SelectedCards.Count >= 3)
                        {
                            if (CheckSet(SelectedCards [0].GetComponent <Card>(), SelectedCards [1].GetComponent <Card>(), SelectedCards [2].GetComponent <Card>()))
                            {
                                //Remove cards, replace them, and add a 'point'.
                                TemporaryMessage Message = Resources.Load <TemporaryMessage>("Prefabs/TempMessage");
                                Message = Instantiate(Message, MainCanvas.transform);
                                Message.SetText("Set!");
                                Message.Delay = 0.5f;
                                //Debug.Log("Set!");
                                FoundSet = true;
                                if (CurrentTurn < 4)
                                {
                                    PlayerScores [CurrentTurn] += 1;
                                    MainCanvas.GetComponentsInChildren <Text> () [CurrentTurn].text = "" + PlayerScores [CurrentTurn];
                                    TurnEnded(CurrentTurn + 1, false);
                                }
                            }
                            else
                            {
                                //Deselect all cards, give a warning ("Not a set") or lose a point.
                                foreach (GameObject aCard in SelectedCards)
                                {
                                    aCard.transform.localScale = new Vector3(1, 1, 1);
                                }
                                SelectedCards = new List <GameObject> ();
                            }
                        }
                    }
                }
            }
            if (FoundSet)
            {
                RemoveAndReplaceSelected();
                SetCounter.text = FindNumberOfSets() + " sets left.";
            }
            if (ChoseCard == false)
            {
                foreach (GameObject aCard in SelectedCards)
                {
                    aCard.transform.localScale = new Vector3(1, 1, 1);
                }
                SelectedCards = new List <GameObject> ();
            }
        }
    }