Exemplo n.º 1
0
    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;
        }
    }
Exemplo n.º 2
0
    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);
    }
Exemplo n.º 3
0
    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);
        }
    }
Exemplo n.º 4
0
    public void RemoveTownsfolk(TownsfolkToken townsfolkToken)
    {
        if (townsfolkToken.IsTraveler)
        {
            --TravelerCount;
        }

        Townsfolk.Remove(townsfolkToken);
        Object.Destroy(townsfolkToken.gameObject);

        UpdateTown();
        UpdateRoleCounts();
    }
Exemplo n.º 5
0
    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();
    }
Exemplo n.º 6
0
    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();
    }
Exemplo n.º 7
0
 public int GetTownsfolkIndex(TownsfolkToken token)
 {
     return(Townsfolk.IndexOf(token));
 }