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; } } }
void Awake() { animator = GetComponent <Animator>(); contesterTypeHolder = GetComponent <ContesterTypeHolder>(); navMeshAgent = GetComponent <NavMeshAgent>(); GameUIController.OnGameStarted += GameUIController_OnGameStarted; }
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); }
public void SetContesterTypeHolder(ContesterTypeHolder contesterTypeHolder) { ContesterTypeHolder previousContesterTypeHolder = m_ContesterTypeHolder; m_ContesterTypeHolder = contesterTypeHolder; OnContesterTypeHolder?.Invoke(m_ContesterTypeHolder, previousContesterTypeHolder); }
private void BoxObject_OnContesterTypeHolder(ContesterTypeHolder current, ContesterTypeHolder previous) { currentGameContesterTypeCountDict[current]++; if (previous != null) { currentGameContesterTypeCountDict[previous]--; } }
public void AddCurrentGameContesterDict(ContesterTypeHolder contester) { if (!currentGameContesterTypeCountDict.ContainsKey(contester)) { currentGameContesterTypeCountDict.Add(contester, 0); } OnContesterAdded?.Invoke(contester); }
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; }
void PlayFinishAnimations(ContesterTypeHolder winner) { foreach (var contesterType in endGameContesterTypeCountDict) { if (contesterType.Key != winner) { contesterType.Key.GetComponent <AnimancerController>().PlayLoserClip(); } else { winner.GetComponent <AnimancerController>().PlayWinnerClip(); } } }
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); } }
public void SetContesterType(ContesterTypeHolder contesterType) { this.contesterType = contesterType; GetComponentInChildren <Renderer>().material.color = contesterType.ContesterType.ChangingColor; }