private void PerformRoleAction() { EnumPlayerRole role = players[turnManagerScript.getCurrentPlayerIndex()].getRole(); switch (role) { case EnumPlayerRole.ASSASSIN: ActivateButtons(players.Count); mRoleForButtonPresses = EnumPlayerRole.ASSASSIN; mRoleText.text += "\nCHOOSE WHOSE MEAL WILL START POISONED."; break; case EnumPlayerRole.DISTANT_COUSIN: ActivateButtons(players.Count); mRoleForButtonPresses = EnumPlayerRole.DISTANT_COUSIN; Player wealthyCouple1 = new Player("", EnumPlayerRole.PARTY_GOER); Player wealthyCouple2 = new Player("", EnumPlayerRole.PARTY_GOER); Player assassin = new Player("", EnumPlayerRole.PARTY_GOER); bool firstWealthyCoupleFound = false; for (int i = 0; i < players.Count; i++) { if (players [i].getRole() == EnumPlayerRole.WEALTHY_COUPLE) { if (!firstWealthyCoupleFound) { wealthyCouple1 = players [i]; firstWealthyCoupleFound = true; } else { wealthyCouple2 = players [i]; } } else if (players [i].getRole() == EnumPlayerRole.ASSASSIN) { assassin = players [i]; } } mRoleText.text += "\n" + assassin.getName().ToUpper() + " IS THE ASSASSIN." + "\nTHE WEALTHY COUPLE IS " + wealthyCouple1.getName().ToUpper() + "\nAND " + wealthyCouple2.getName().ToUpper() + "." + "\nCHOOSE WHO TO MARK."; break; case EnumPlayerRole.WEALTHY_COUPLE: for (int i = 0; i < players.Count; i++) { if (players [i].getRole() == EnumPlayerRole.WEALTHY_COUPLE && players [i] != players [turnManagerScript.getCurrentPlayerIndex()]) { mRoleText.text += "\nYOUR PARTNER IS " + (players [i].getName()).ToUpper() + "."; } } break; } }
public void OnConfirmButtonClicked() { List <Player> players = mRestaurantScript.getAlivePlayers(); EnumPlayerRole role = players[mTurnManagerScript.GetCurrentPlayerIndex()].getRole(); //requires the player to click the button three times if their role doesn't have them clicking otherwise if ((role == EnumPlayerRole.CHEMIST || role == EnumPlayerRole.FOOD_CRITIC || role == EnumPlayerRole.PARTY_GOER || role == EnumPlayerRole.WEALTHY_COUPLE || role == EnumPlayerRole.SCAPEGOAT) && mClickTracker > 1) { mClickTracker--; RandomizeActionButtonLocation(); } else { mClickTracker = 3; mActionButton.transform.position = mActionButtonLocation; DeactivateButtons(); if (mTurnManagerScript.GoToNextPlayer()) { SceneManager.LoadScene(DinnerPartyScenes.PASS_PATH); } else { SceneManager.LoadScene(DinnerPartyScenes.START_GAME_PATH); } } }
public void AddPlayerRole(EnumPlayerRole role) { Debug.Log("Adding role!"); Player.sValidRoles.Add(role); Debug.Log("ROLE COUNT: " + Player.sValidRoles.Count); mIsCustomRoles = true; }
private void PerformRoleAction() { EnumPlayerRole role = players [turnManagerScript.getCurrentPlayerIndex()].getRole(); switch (role) { case EnumPlayerRole.ASSASSIN: break; case EnumPlayerRole.DISTANT_COUSIN: { } break; case EnumPlayerRole.WEALTHY_COUPLE: { for (int i = 0; i < players.Count; i++) { if (players [i].getRole() == EnumPlayerRole.WEALTHY_COUPLE && players [i] != players [turnManagerScript.getCurrentPlayerIndex()]) { mRoleText.text += "\nYOUR PARTNER IS " + (players [i].getName()).ToUpper() + "."; } } } break; } }
public void RemovePlayerRole(EnumPlayerRole role) { Debug.Log("Removing role!"); Player.sValidRoles.Remove(role); Debug.Log("ROLE COUNT: " + Player.sValidRoles.Count); mIsCustomRoles = true; }
public Player(string name, EnumPlayerRole role) { mName = role.ToString(); mRole = role; //TEMPORARY mName = getRoleAsString(); }
private void PlaceButtonsInCircle(EnumPlayerRole userRole) { //mPlayerNamecards.Clear(); List <Player> players = mRestaurantScript.getAlivePlayers(); float distanceBetweenAngle = 360.0f / players.Count; //Have the current player be at the bottom so it's closest to the user. float currentAngle = 270.0f; //Scale radius by screen size to keep it consistent. float radius = mCanvas.pixelRect.width / 3.0f; int i; for (i = 0; i < players.Count; ++i) { Button userButton = Instantiate(mUserButtonPrefab, mTableCenter.transform); userButton.onClick.AddListener(delegate { OnUserSelected(userButton); }); userButton.transform.GetChild(0).GetComponent <Text>().text = players[i].getName(); Vector3 pos = mTableCenter.transform.position; pos.x += radius * Mathf.Cos(Mathf.Deg2Rad * currentAngle); pos.y += radius * Mathf.Sin(Mathf.Deg2Rad * currentAngle); userButton.transform.position = pos; /* * Vector3 rot = userButton.transform.eulerAngles; * * if ((currentAngle > 270 && currentAngle < 360) || (currentAngle < 90 && currentAngle > 0)) * { * rot.z = currentAngle; * } * else if (currentAngle > 90 && currentAngle < 270) * { * rot.z = currentAngle - 180; * } * * userButton.transform.eulerAngles = rot; */ currentAngle = ((currentAngle + distanceBetweenAngle) % 360); if (players[i].getRole().Equals(userRole)) { userButton.interactable = false; } mPlayerNamecards.Add(userButton); } }
public void ShowPoisonScreen(EnumPlayerRole roleToDisable) { mLazySusan.SetActive(true); mRolePanel.gameObject.SetActive(false); mActionPanel.gameObject.SetActive(true); mDoneWithActionButton.interactable = false; PlaceButtonsInCircle(roleToDisable); mDoneWithActionButton.transform.GetChild(0).GetComponent <Text>().text = "POISON A MEAL"; SetButtonAction("CONFIRM", OnConfirmButtonClicked); }
private void PlaceButtonsInCircle(EnumPlayerRole userRole) { List <Player> players = mRestaurantScript.getAlivePlayers(); float distanceBetweenAngle = 360.0f / players.Count; //Have the current player be at the bottom so it's closest to the user. float currentAngle = 270.0f; //Scale radius by screen size to keep it consistent. //float radius = mCanvas.pixelRect.width / 3.0f; float scale = 10.0f / players.Count; if (scale > 10.0f / 6.0f) { scale = 10.0f / 6.0f; } float radius = mCanvas.pixelRect.width / (3.0f + (scale - 0.8f)); int i; for (i = 0; i < players.Count; ++i) { Button userButton = Instantiate(mUserButtonPrefab, mTableCenter.transform); userButton.onClick.AddListener(delegate { OnUserSelected(userButton); }); userButton.transform.GetChild(0).GetComponent <Text>().text = players[i].getName(); userButton.transform.localScale = new Vector3(scale, scale, scale); Vector3 pos = mTableCenter.transform.position; pos.x += radius * Mathf.Cos(Mathf.Deg2Rad * currentAngle); pos.y += radius * Mathf.Sin(Mathf.Deg2Rad * currentAngle); userButton.transform.position = pos; currentAngle = ((currentAngle + distanceBetweenAngle) % 360); if (players[i].getRole().Equals(userRole)) { userButton.interactable = false; } mPlayerNamecards.Add(userButton); } }
public Player(string name, EnumPlayerRole role) { mName = name; mRole = role; }
public void setRole(EnumPlayerRole role) { mRole = role; }
private void ShowRole() { List <Player> players = mRestaurantScript.getAlivePlayers(); EnumPlayerRole role = players[mTurnManagerScript.GetCurrentPlayerIndex()].getRole(); string roleWithPrefix = players[mTurnManagerScript.GetCurrentPlayerIndex()].getRoleAsStringWithPrefix(); mRoleText.text = "YOU ARE " + roleWithPrefix.ToUpper() + "."; switch (role) { case EnumPlayerRole.ASSASSIN: SetCharacterArt(mAssassinSprite); break; case EnumPlayerRole.CHEMIST: SetCharacterArt(mChemistSprite); break; case EnumPlayerRole.DISTANT_COUSIN: SetCharacterArt(mDistantCousinSprite); break; case EnumPlayerRole.FOOD_CRITIC: SetCharacterArt(mFoodCriticSprite); break; case EnumPlayerRole.PARTY_GOER: SetCharacterArt(mPartygoerSprite); break; case EnumPlayerRole.PRIVATE_EYE: SetCharacterArt(mPrivateEyeSprite); break; case EnumPlayerRole.SCAPEGOAT: SetCharacterArt(mScapegoatSprite); break; case EnumPlayerRole.WEALTHY_COUPLE: if (mRestaurantScript.mWCSpritesAssigned) { if (players [mTurnManagerScript.GetCurrentPlayerIndex()] == mRestaurantScript.mWealthyCouple1Player) { SetCharacterArt(mRestaurantScript.mWealthyCouple1Sprite); } else { SetCharacterArt(mRestaurantScript.mWealthyCouple2Sprite); } } //assigns sprites if unassigned else { if (mRestaurantScript.mWealthyCouple1Player == null) { mRestaurantScript.mWealthyCouple1Player = players [mTurnManagerScript.GetCurrentPlayerIndex()]; if (Random.Range(0, 2) == 0) { mRestaurantScript.mWealthyCouple1Sprite = mWealthyCouple1Sprite; } else { mRestaurantScript.mWealthyCouple1Sprite = mWealthyCouple2Sprite; } SetCharacterArt(mRestaurantScript.mWealthyCouple1Sprite); } else { if (Random.Range(0, 2) == 0) { mRestaurantScript.mWealthyCouple2Sprite = mWealthyCouple1Sprite; } else { mRestaurantScript.mWealthyCouple2Sprite = mWealthyCouple2Sprite; } SetCharacterArt(mRestaurantScript.mWealthyCouple2Sprite); mRestaurantScript.mWCSpritesAssigned = true; } } break; } switch (role) { case EnumPlayerRole.ASSASSIN: List <EnumPlayerRole> unusedRoles = mRestaurantScript.getUnusedRoles(); Player roleOne = new Player("r1", unusedRoles [0]); Player roleTwo = new Player("r2", unusedRoles [1]); mRoleText.text += "\n" + roleOne.getRoleAsStringWithPrefix().ToUpper() + " AND " + roleTwo.getRoleAsStringWithPrefix().ToUpper() + " DID NOT COME TO THE PARTY."; SetButtonAction("POISON FOOD", delegate { ShowPoisonScreen(EnumPlayerRole.ASSASSIN); }); break; case EnumPlayerRole.DISTANT_COUSIN: Player wealthyCouple1 = new Player("", EnumPlayerRole.PARTY_GOER); Player wealthyCouple2 = new Player("", EnumPlayerRole.PARTY_GOER); Player assassin = new Player("", EnumPlayerRole.PARTY_GOER); bool firstWealthyCoupleFound = false; for (int i = 0; i < players.Count; i++) { if (players[i].getRole() == EnumPlayerRole.WEALTHY_COUPLE) { if (!firstWealthyCoupleFound) { wealthyCouple1 = players[i]; firstWealthyCoupleFound = true; } else { wealthyCouple2 = players[i]; } } else if (players[i].getRole() == EnumPlayerRole.ASSASSIN) { assassin = players[i]; } } if (mTurnManagerScript.mCurrentRound == EnumCourse.ENTREE) { mRoleText.text += "\n" + assassin.getName().ToUpper() + " IS THE ASSASSIN." + "\nTHE WEALTHY COUPLE HAS " + wealthyCouple1.getName().ToUpper(); if (wealthyCouple1.getRole() == EnumPlayerRole.WEALTHY_COUPLE) { mRoleText.text += "\nAND " + wealthyCouple2.getName().ToUpper() + "."; } mRoleText.text += "\nCHOOSE WHO TO MARK."; SetButtonAction("MARK PLAYER", ShowMarkScreen); } else if (!isAssassinAlive()) { mRoleText.text += "\nTHE ASSASSIN IS OUT!" + "\nTHE WEALTHY COUPLE HAS " + wealthyCouple1.getName().ToUpper(); if (wealthyCouple1.getRole() == EnumPlayerRole.WEALTHY_COUPLE) { mRoleText.text += "\nAND " + wealthyCouple2.getName().ToUpper() + "."; } mRoleText.text += "\nCHOOSE WHO TO POISON."; SetButtonAction("POISON FOOD", delegate { ShowPoisonScreen(EnumPlayerRole.DISTANT_COUSIN); }); } else { mRoleText.text += "\n" + assassin.getName().ToUpper() + " IS THE ASSASSIN." + "\nTHE WEALTHY COUPLE HAS " + wealthyCouple1.getName().ToUpper(); if (wealthyCouple1.getRole() == EnumPlayerRole.WEALTHY_COUPLE) { mRoleText.text += "\nAND " + wealthyCouple2.getName().ToUpper() + "."; } SetButtonAction("GOT IT", OnConfirmButtonClicked); } break; case EnumPlayerRole.WEALTHY_COUPLE: for (int i = 0; i < players.Count; i++) { if (players[i].getRole() == EnumPlayerRole.WEALTHY_COUPLE && players[i] != players[mTurnManagerScript.GetCurrentPlayerIndex()]) { mRoleText.text += "\nYOUR PARTNER IS " + (players[i].getName()).ToUpper() + "." + "\nTAP THE BUTTON THREE TIMES TO CONTINUE."; } } SetButtonAction("GOT IT", OnConfirmButtonClicked); break; case EnumPlayerRole.PRIVATE_EYE: Player buggedPlayer = mRestaurantScript.getBuggedPlayer(); string saying; if (buggedPlayer == null) { saying = "\nTHE BUGGED MEAL DIDN'T PICK UP ON ANYTHING."; } else { saying = "\nYOU HAVE BUGGED " + (buggedPlayer.getName()).ToUpper() + "." + "\nTHEY ARE " + buggedPlayer.getRoleAsStringWithPrefix().ToUpper() + "."; mRestaurantScript.setBuggedPlayer(null); } switch (mTurnManagerScript.mCurrentRound) { case EnumCourse.ENTREE: mRoleText.text += "\nCHOOSE WHICH MEAL TO BUG."; SetButtonAction("BUG PLAYER", ShowBugScreen); break; case EnumCourse.MAIN: mRoleText.text += saying + "\nBUG A MEAL AGAIN."; SetButtonAction("BUG PLAYER", ShowBugScreen); break; case EnumCourse.DESSERT: mRoleText.text += saying; SetButtonAction("GOT IT", OnConfirmButtonClicked); break; } break; default: { mRoleText.text += "\nTAP THE BUTTON THREE TIMES TO CONTINUE."; SetButtonAction("GOT IT", OnConfirmButtonClicked); } break; } if (players [mTurnManagerScript.GetCurrentPlayerIndex()].getLastMealEaten() != EnumSpecialMeal.NORMAL) { mRoleText.text += "\nYOU ATE THE " + players [mTurnManagerScript.GetCurrentPlayerIndex()].getSpecialMealAsString().ToUpper() + " MEAL."; } }
private void ShowRole() { List <Player> players = mRestaurantScript.getAlivePlayers(); EnumPlayerRole role = players[mTurnManagerScript.GetCurrentPlayerIndex()].getRole(); string roleWithPrefix = players[mTurnManagerScript.GetCurrentPlayerIndex()].getRoleAsStringWithPrefix(); mRoleText.text = "YOU ARE " + roleWithPrefix.ToUpper() + "."; switch (role) { case EnumPlayerRole.ASSASSIN: SetButtonAction("POISON FOOD", ShowPoisonScreen); break; case EnumPlayerRole.DISTANT_COUSIN: Player wealthyCouple1 = new Player("", EnumPlayerRole.PARTY_GOER); Player wealthyCouple2 = new Player("", EnumPlayerRole.PARTY_GOER); Player assassin = new Player("", EnumPlayerRole.PARTY_GOER); bool firstWealthyCoupleFound = false; for (int i = 0; i < players.Count; i++) { if (players[i].getRole() == EnumPlayerRole.WEALTHY_COUPLE) { if (!firstWealthyCoupleFound) { wealthyCouple1 = players[i]; firstWealthyCoupleFound = true; } else { wealthyCouple2 = players[i]; } } else if (players[i].getRole() == EnumPlayerRole.ASSASSIN) { assassin = players[i]; } } if (mTurnManagerScript.mCurrentRound == EnumCourse.ENTREE) { mRoleText.text += "\n" + assassin.getName().ToUpper() + " IS THE ASSASSIN." + "\nTHE WEALTHY COUPLE IS " + wealthyCouple1.getName().ToUpper() + "\nAND " + wealthyCouple2.getName().ToUpper() + "." + "\nCHOOSE WHO TO MARK."; SetButtonAction("MARK PLAYER", ShowMarkScreen); } else if (!isAssassinAlive()) { mRoleText.text += "\nTHE ASSASSIN IS OUT!" + "\nTHE WEALTHY COUPLE IS " + wealthyCouple1.getName().ToUpper() + "\nAND " + wealthyCouple2.getName().ToUpper() + "." + "\nCHOOSE WHO TO POISON."; SetButtonAction("POISON FOOD", ShowPoisonScreen); } else { mRoleText.text += "\n" + assassin.getName().ToUpper() + " IS THE ASSASSIN." + "\nTHE WEALTHY COUPLE IS " + wealthyCouple1.getName().ToUpper() + "\nAND " + wealthyCouple2.getName().ToUpper() + "." + "\nTRY TO HELP THE ASSASSIN DO THEIR JOB ;)"; SetButtonAction("GOT IT", OnConfirmButtonClicked); } break; case EnumPlayerRole.WEALTHY_COUPLE: for (int i = 0; i < players.Count; i++) { if (players[i].getRole() == EnumPlayerRole.WEALTHY_COUPLE && players[i] != players[mTurnManagerScript.GetCurrentPlayerIndex()]) { mRoleText.text += "\nYOUR PARTNER IS " + (players[i].getName()).ToUpper() + "."; } } SetButtonAction("GOT IT", OnConfirmButtonClicked); break; case EnumPlayerRole.PRIVATE_EYE: Player buggedPlayer = mRestaurantScript.mBuggedPlayer; switch (mTurnManagerScript.mCurrentRound) { case EnumCourse.ENTREE: mRoleText.text += "\nCHOOSE WHICH MEAL TO BUG."; SetButtonAction("BUG PLAYER", ShowBugScreen); break; case EnumCourse.MAIN: mRoleText.text += "\nYOU HAVE BUGGED " + (buggedPlayer.getName()).ToUpper() + "." + "\nTHEY ARE " + buggedPlayer.getRoleAsStringWithPrefix().ToUpper() + "." + "\nCHOOSE WHICH MEAL TO BUG."; SetButtonAction("BUG PLAYER", ShowBugScreen); break; case EnumCourse.DESSERT: mRoleText.text += "\nYOU HAVE BUGGED " + (buggedPlayer.getName()).ToUpper() + "." + "\nTHEY ARE " + buggedPlayer.getRoleAsStringWithPrefix().ToUpper() + "."; SetButtonAction("GOT IT", OnConfirmButtonClicked); break; } break; default: SetButtonAction("GOT IT", OnConfirmButtonClicked); break; } }
private void ShowRole() { EnumPlayerRole role = players[turnManagerScript.getCurrentPlayerIndex()].getRole(); string roleWithPrefix = players[turnManagerScript.getCurrentPlayerIndex()].getRoleAsStringWithPrefix(); mRoleText.text = "YOU ARE " + roleWithPrefix.ToUpper() + "."; switch (role) { case EnumPlayerRole.ASSASSIN: SetButtonAction("POISON FOOD", ShowPoisonScreen); break; case EnumPlayerRole.DISTANT_COUSIN: Player wealthyCouple1 = new Player("", EnumPlayerRole.PARTY_GOER); Player wealthyCouple2 = new Player("", EnumPlayerRole.PARTY_GOER); Player assassin = new Player("", EnumPlayerRole.PARTY_GOER); bool firstWealthyCoupleFound = false; for (int i = 0; i < players.Count; i++) { if (players[i].getRole() == EnumPlayerRole.WEALTHY_COUPLE) { if (!firstWealthyCoupleFound) { wealthyCouple1 = players[i]; firstWealthyCoupleFound = true; } else { wealthyCouple2 = players[i]; } } else if (players[i].getRole() == EnumPlayerRole.ASSASSIN) { assassin = players[i]; } } mRoleText.text += "\n" + assassin.getName().ToUpper() + " IS THE ASSASSIN." + "\nTHE WEALTHY COUPLE IS " + wealthyCouple1.getName().ToUpper() + "\nAND " + wealthyCouple2.getName().ToUpper() + "." + "\nCHOOSE WHO TO MARK."; SetButtonAction("MARK PLAYER", ShowMarkScreen); break; case EnumPlayerRole.WEALTHY_COUPLE: for (int i = 0; i < players.Count; i++) { if (players[i].getRole() == EnumPlayerRole.WEALTHY_COUPLE && players[i] != players[turnManagerScript.getCurrentPlayerIndex()]) { mRoleText.text += "\nYOUR PARTNER IS " + (players[i].getName()).ToUpper() + "."; } } SetButtonAction("GOT IT", OnConfirmButtonClicked); break; default: SetButtonAction("GOT IT", OnConfirmButtonClicked); break; } }
public void addUnusedRole(EnumPlayerRole role) { mUnusedRoles.Add(role); }
public void RemovePlayerRole(EnumPlayerRole role) { Debug.Log("Removing role!"); mValidUserRoles.Remove(role); mIsCustomRoles = true; }
public void AddPlayerRole(EnumPlayerRole role) { Debug.Log("Adding role!"); mValidUserRoles.Add(role); mIsCustomRoles = true; }