Exemplo n.º 1
0
    void InitializeCountDict()
    {
        for (int i = 0; i < boxObjects.Count; i++)
        {
            //Contester: Player, Contester1, Contester2, Contester3

            ContesterTypeHolder currentContesterType = boxObjects[i].ContesterTypeHolder;

            //Şuan baktığımız BoxObjenin üzerine birisi basmış mı onu kontrol ediyor
            //Eğer basılmışsa if içerisine giriyoruz
            if (currentContesterType != null)
            {
                //Şuan baktığımız Contester Type sözlüğün(Dictionary) içerisinde var mı?
                //Yoksa: Ekleme yapıyor
                //Varsa if'e girmez devam eder.
                if (!endGameContesterTypeCountDict.ContainsKey(currentContesterType))
                {
                    endGameContesterTypeCountDict.Add(currentContesterType, 0);
                }

                //Önceden kaydettiğimiz Contester Type'ımıza 1 ekliyoruz.
                endGameContesterTypeCountDict[currentContesterType] += 1;
            }
        }
    }
Exemplo n.º 2
0
 void Awake()
 {
     animator                        = GetComponent <Animator>();
     contesterTypeHolder             = GetComponent <ContesterTypeHolder>();
     navMeshAgent                    = GetComponent <NavMeshAgent>();
     GameUIController.OnGameStarted += GameUIController_OnGameStarted;
 }
Exemplo n.º 3
0
    void FindWinner()
    {
        ContesterTypeHolder winner = null;
        int count = 0;

        foreach (var contesterType in endGameContesterTypeCountDict)
        {
            if (winner == null)
            {
                winner = contesterType.Key;
                count  = contesterType.Value;
            }
            else
            {
                if (contesterType.Value >= count)
                {
                    winner = contesterType.Key;
                    count  = contesterType.Value;
                }
            }
            Debug.Log($"{contesterType.Key} Has {contesterType.Value} Points");
        }

        Debug.Log($"{winner.ContesterType} Won With {count} Points");

        winner.ActivateCrown();
        PlayFinishAnimations(winner);
    }
Exemplo n.º 4
0
    public void SetContesterTypeHolder(ContesterTypeHolder contesterTypeHolder)
    {
        ContesterTypeHolder previousContesterTypeHolder = m_ContesterTypeHolder;

        m_ContesterTypeHolder = contesterTypeHolder;

        OnContesterTypeHolder?.Invoke(m_ContesterTypeHolder, previousContesterTypeHolder);
    }
Exemplo n.º 5
0
    private void BoxObject_OnContesterTypeHolder(ContesterTypeHolder current, ContesterTypeHolder previous)
    {
        currentGameContesterTypeCountDict[current]++;

        if (previous != null)
        {
            currentGameContesterTypeCountDict[previous]--;
        }
    }
Exemplo n.º 6
0
    public void AddCurrentGameContesterDict(ContesterTypeHolder contester)
    {
        if (!currentGameContesterTypeCountDict.ContainsKey(contester))
        {
            currentGameContesterTypeCountDict.Add(contester, 0);
        }

        OnContesterAdded?.Invoke(contester);
    }
Exemplo n.º 7
0
    public void BoxContainer_OnCurrentContesterAdded(ContesterTypeHolder contester)
    {
        GameObject tmpContainer = Instantiate(indicatorContainer, transform); // küplerin oluştuğu yer


        ContesterIndicator tmpIndicator = tmpContainer.GetComponentInChildren <ContesterIndicator>();

        tmpContainer.transform.position = new Vector3(createPosition, 8, 2);
        tmpIndicator.SetContesterType(contester);
        createPosition += offsetAmount;
    }
Exemplo n.º 8
0
 void PlayFinishAnimations(ContesterTypeHolder winner)
 {
     foreach (var contesterType in endGameContesterTypeCountDict)
     {
         if (contesterType.Key != winner)
         {
             contesterType.Key.GetComponent <AnimancerController>().PlayLoserClip();
         }
         else
         {
             winner.GetComponent <AnimancerController>().PlayWinnerClip();
         }
     }
 }
Exemplo n.º 9
0
    void OnTriggerEnter(Collider other)
    {
        ContesterTypeHolder contesterTypeHolder = other.GetComponent <ContesterTypeHolder>();

        if (contesterTypeHolder != null)
        {
            myRenderer.material.DOColor(Color.white, 0);
            Sequence mySequence = DOTween.Sequence();

            mySequence.Append(transform.DOMove(new Vector3(transform.position.x, -0.991f, transform.position.z), 0.2f));
            mySequence.Append(
                DOTween.Sequence()
                .Append(transform.DOMove(new Vector3(transform.position.x, -0.90f, transform.position.z), 0.2f))
                );

            boxObject.SetContesterTypeHolder(contesterTypeHolder);
            myRenderer.material.DOColor(contesterTypeHolder.ContesterType.ChangingColor, 0.8f);
        }
    }
Exemplo n.º 10
0
    public void SetContesterType(ContesterTypeHolder contesterType)
    {
        this.contesterType = contesterType;

        GetComponentInChildren <Renderer>().material.color = contesterType.ContesterType.ChangingColor;
    }