public void SelectNominee(TownsfolkToken nominee) { if (VoteStarted) { return; } CurrentAngle = 0; int nomIndex = TownsfolkManager.Instance.GetTownsfolkIndex(nominee); NomineeAngle = TownsfolkManager.Instance.GetAngleOfIndex(nomIndex); FirstVoteAngle = NomineeAngle; Vector2 nomDir = RotateVector(Vector2.up, -NomineeAngle); HourHand.transform.up = nomDir; MinuteHand.transform.up = nomDir; TotalAngleToMove = Mathf.DeltaAngle(FirstVoteAngle * Mathf.Rad2Deg, NomineeAngle * Mathf.Rad2Deg) * Mathf.Deg2Rad; if (TotalAngleToMove <= 0) { TotalAngleToMove += Mathf.PI * 2; } }
public void StartNomination(TownsfolkToken nominee) { IsVoteActive = true; Timer.gameObject.SetActive(false); EndNominationButton.gameObject.SetActive(true); VoteManager.gameObject.SetActive(true); VoteManager.transform.SetAsLastSibling(); VoteManager.Reset(); VoteManager.SelectNominee(nominee); }
public void UpdateTown() { int townSize = Townsfolk.Count; float angleDivision = (2.0f * Mathf.PI) / townSize; for (int i = 0; i < townSize; ++i) { Vector2 dir = RotateVector(Vector2.up, -angleDivision * i); TownsfolkToken token = Townsfolk[i].GetComponentInChildren <TownsfolkToken>(); token.SetTargetPos(dir * TownRadius); } }
public void RemoveTownsfolk(TownsfolkToken townsfolkToken) { if (townsfolkToken.IsTraveler) { --TravelerCount; } Townsfolk.Remove(townsfolkToken); Object.Destroy(townsfolkToken.gameObject); UpdateTown(); UpdateRoleCounts(); }
public void MoveTownsfolkToIndex(int index, TownsfolkToken token) { int currentIndex = Townsfolk.IndexOf(token); if (currentIndex == index) { UpdateTown(); return; } Townsfolk.Remove(token); if (index < Townsfolk.Count) { Townsfolk.Insert(index, token); } else { Townsfolk.Add(token); } UpdateTown(); }
public void AddTownsfolk(string name, bool isTraveler) { GameObject tokenObj = Instantiate(TownsfolkTokenPrefab, transform); tokenObj.transform.SetParent(TokenAttach.transform); tokenObj.GetComponent <RectTransform>().anchoredPosition = Vector2.zero; TownsfolkToken townsfolkToken = tokenObj.GetComponentInChildren <TownsfolkToken>(); townsfolkToken.name = "Townsfolk:" + name; townsfolkToken.transform.localScale = Vector3.one * Mathf.Lerp(MinTokenScale, MaxTokenScale, ScaleSlider.value); townsfolkToken.SetPlayerName(name); if (isTraveler) { townsfolkToken.SetIsTraveler(true); ++TravelerCount; } Townsfolk.Add(townsfolkToken); UpdateRoleCounts(); UpdateTown(); }
public int GetTownsfolkIndex(TownsfolkToken token) { return(Townsfolk.IndexOf(token)); }