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(); } } } }
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; } }
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(); }
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(); } }
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> (); } } }