void PlaceCharacter(CharacterResourceManager.Cards card, int player) { ClueData.Instance.SetPlayerLocation(new int[] { startingPositions[player, 0], startingPositions[player, 1] }, player); Vector3 spawn = RowColToBoardLocation(startingPositions[player, 0], startingPositions[player, 1]); GameObject gm = null; switch (card) { case CharacterResourceManager.Cards.Freddie: gm = PlaceObject(FreddiePrefab, spawn); break; case CharacterResourceManager.Cards.Sherlock: gm = PlaceObject(SherlockPrefab, spawn); break; case CharacterResourceManager.Cards.Blackwidow: gm = PlaceObject(BlackWidowPrefab, spawn); break; case CharacterResourceManager.Cards.Echo: gm = PlaceObject(EchoPrefab, spawn); break; case CharacterResourceManager.Cards.MurderV: gm = PlaceObject(MurderVPrefab, spawn); break; case CharacterResourceManager.Cards.ScoobyDoo: gm = PlaceObject(ScoobyPrefab, spawn); break; } gm.transform.Rotate(0, 180, 0); ClueData.Instance.SetPlayerGameObject(gm, player); }
private ClueData.RowCol AIChooseSpot() { List <CharacterResourceManager.Cards> targetRooms = new List <CharacterResourceManager.Cards>(); foreach (CharacterResourceManager.Cards room in CharacterResourceManager.Rooms) { if (!ClueData.Instance.HasPlayerSeenCard(room, turnManager.CurrentTurn - 1)) { targetRooms.Add(room); } } List <ClueData.RowCol> tiles = new List <ClueData.RowCol>(); foreach (GameObject tile in highlights) { ClueData.RowCol tilePos = tile.GetComponent <TileSelector>().location; if (IsEntrance(tilePos)) { CharacterResourceManager.Cards room = GetEntranceRoom(tilePos); if (targetRooms.Contains(room)) { return(tilePos); } } tiles.Add(tilePos); } return(tiles[UnityEngine.Random.Range(0, tiles.Count - 1)]); }
public void SelectCharacter(CharacterResourceManager.Cards card) { if (CharacterResourceManager.Characters.Contains(card)) { if (!selected) { selected = true; List <CharacterResourceManager.Cards> selectedCards = new List <CharacterResourceManager.Cards>(); selectedCards.Add(card); ClueData.Instance.SetPlayer(0, card); int numCards = CharacterResourceManager.Characters.Count; for (int i = 1; i < 4; i++) { CharacterResourceManager.Cards aiCard; do { aiCard = CharacterResourceManager.Characters[Random.Range(0, numCards - 1)]; } while (selectedCards.Contains(aiCard)); selectedCards.Add(aiCard); ClueData.Instance.SetPlayer(i, aiCard); } ClueData.Instance.GenerateSolutionAndDistributeCards(); SceneManager.LoadScene("DaGame"); } } else { throw new System.Exception("Dude thats not a f*****g character"); } }
private GameObject GetWeaponPrefab(CharacterResourceManager.Cards weapon) { GameObject gameObject = MachetePrefab; switch (weapon) { case CharacterResourceManager.Cards.Machete: gameObject = MachetePrefab; break; case CharacterResourceManager.Cards.Bazooka: gameObject = BazookaPrefab; break; case CharacterResourceManager.Cards.Antifreeze: gameObject = AntifreezePrefab; break; case CharacterResourceManager.Cards.Chainsaw: gameObject = ChainsawPrefab; break; case CharacterResourceManager.Cards.Spoon: gameObject = SpoonPrefab; break; case CharacterResourceManager.Cards.Syringe: gameObject = SyringePrefab; break; } return(gameObject); }
public void SelectGuessWeapon(CharacterResourceManager.Cards card) { if (!isSelected) { isSelected = true; guessWeapon = card; } }
public void SelectGuessCharacter(CharacterResourceManager.Cards character) { if (!isSelected) { isSelected = true; guessCharacter = character; } }
private void MoveWeaponLocation(CharacterResourceManager.Cards weapon, CharacterResourceManager.Cards room) { Vector3 location = CharacterResourceManager.RoomLocation(room) + RandomXZVector(0.5f, 1f); if (weaponObjects == null || !weaponObjects.ContainsKey(weapon)) { if (weaponObjects == null) { weaponObjects = new Dictionary <CharacterResourceManager.Cards, GameObject>(); } GameObject gameObject = Instantiate(GetWeaponPrefab(weapon), location, Quaternion.identity); weaponObjects[weapon] = gameObject; } else { weaponObjects[weapon].transform.position = location; } weaponObjects[weapon].transform.Rotate(0, UnityEngine.Random.Range(0, 360f), 0); }
private void Moving() { if (isSelected) { if (isMoving) { GameObject player = ClueData.Instance.GetPlayerGameObject(turnManager.CurrentTurn - 1); player.transform.position += (targetPosition - player.transform.position) / 25f; if ((targetPosition - player.transform.position).magnitude < (boardManager.TileWidth / 30f)) { player.transform.position = targetPosition; isMoving = false; } } else { if (IsEntrance(ClueData.Instance.GetPlayerRowCol(turnManager.CurrentTurn - 1))) { humanCardsDisplay.HideAll(); characterGuessParent.SetActive(true); isSelected = false; isMoving = false; CharacterResourceManager.Cards room = GetEntranceRoom(ClueData.Instance.GetPlayerRowCol(turnManager.CurrentTurn - 1)); guessRoom = room; ClueData.Instance.GetPlayerGameObject(turnManager.CurrentTurn - 1).transform.position = CharacterResourceManager.RoomLocation(room); turnState = TurnState.ChoosingGuessCharacter; } else { turnState = TurnState.PostTurn; } } } else if (!IsCurrentTurnHuman()) { aiTimer += Time.deltaTime; if (aiTimer >= 1) { aiTimer = 0; SelectTile(AIChooseSpot()); } } }
public Guess(CharacterResourceManager.Cards character, CharacterResourceManager.Cards weapon, CharacterResourceManager.Cards room) { this.Character = character; this.Weapon = weapon; this.Room = room; }
public void FindingCards() { CharacterResourceManager.Cards cardToShow = CharacterResourceManager.Cards.Antifreeze; TurnState targetState = TurnState.PreTurn; int showedCardSource = -1; // sure turnManager.PushStack(); int cT = turnManager.CurrentTurn; bool control = true; // yes, this is how lazy i am, no need to bother writing a real algorithm while (control) { turnManager.NextTurn(); if (turnManager.CurrentTurn == cT) { targetState = TurnState.AccusationOption; control = false; } else { // Yes, this is going to be how it works, deal with it (in real clue there is a choice of what card to show) if (ClueData.Instance.HasPlayerCard(guess.Character, turnManager.CurrentTurn - 1)) { control = false; targetState = TurnState.ShowingCards; cardToShow = guess.Character; showedCardSource = turnManager.CurrentTurn; } else if (ClueData.Instance.HasPlayerCard(guess.Weapon, turnManager.CurrentTurn - 1)) { control = false; targetState = TurnState.ShowingCards; cardToShow = guess.Weapon; showedCardSource = turnManager.CurrentTurn; } else if (ClueData.Instance.HasPlayerCard(guess.Room, turnManager.CurrentTurn - 1)) { control = false; targetState = TurnState.ShowingCards; cardToShow = guess.Room; showedCardSource = turnManager.CurrentTurn; } } } turnManager.PopStack(); if (targetState.Equals(TurnState.ShowingCards)) { ClueData.Instance.ShowPlayerCard(cardToShow, turnManager.CurrentTurn - 1); if (IsCurrentTurnHuman() || showedCardSource == 1) { cardShow.Set(CharacterResourceManager.CardImageTexture(cardToShow), showedCardSource); } else { cardShow.Set(cardBack, showedCardSource); } guessDisplay.gameObject.SetActive(false); humanCardsDisplay.ShowAll(); cardShow.gameObject.SetActive(true); turnState = TurnState.ShowingCards; } else if (targetState.Equals(TurnState.AccusationOption)) { guessDisplay.gameObject.SetActive(false); humanCardsDisplay.ShowAll(); isSelected = false; aiTimer = 0; makeAccusation = false; accusationOption.Set(guess); accusationOption.gameObject.SetActive(true); turnState = TurnState.AccusationOption; } }
public bool HasSeenCard(CharacterResourceManager.Cards card) { return(cardsSeen.Contains(card)); }
public void ShowCard(CharacterResourceManager.Cards card) { cardsSeen.Add(card); }
public void GiveCard(CharacterResourceManager.Cards card) { cards.Add(card); ShowCard(card); }
public void SetPlayer(int player, CharacterResourceManager.Cards card) { players[player] = card; }
public bool HasPlayerCard(CharacterResourceManager.Cards card, int player) { return(playerData[player].HasCard(card)); }
public void ShowPlayerCard(CharacterResourceManager.Cards card, int player) { playerData[player].ShowCard(card); }