// tnBaseMatchController's interface protected override bool Draw() { bool retValue = true; for (int teamIndex = 0; teamIndex < teamsCount - 1; ++teamIndex) { tnStandardMatchTeamResults resultsA = (tnStandardMatchTeamResults)GetTeamResultsByIndex(teamIndex); tnStandardMatchTeamResults resultsB = (tnStandardMatchTeamResults)GetTeamResultsByIndex(teamIndex + 1); if (resultsA == null) { continue; } if (resultsB == null) { continue; } bool draw = (resultsA.score == resultsB.score); retValue &= draw; } return(retValue); }
// INTERNALS private void InternalSetResults(tnStandardMatchController i_MathController) { if (i_MathController == null) { return; } // Team 0 tnStandardMatchTeamResults teamResults0 = (tnStandardMatchTeamResults)i_MathController.GetTeamResultsByIndex(0); if (teamResults0 != null) { int teamId0 = teamResults0.id; tnTeamData teamData0 = tnGameData.GetTeamDataMain(teamId0); if (m_Team0Flag != null) { m_Team0Flag.sprite = teamData0.flag; } if (m_Team0Name != null) { m_Team0Name.text = teamData0.name; } if (m_Team0Score != null) { m_Team0Score.text = teamResults0.score.ToString(); } } // Team 1 tnStandardMatchTeamResults teamResults1 = (tnStandardMatchTeamResults)i_MathController.GetTeamResultsByIndex(1); if (teamResults1 != null) { int teamId1 = teamResults1.id; tnTeamData teamData1 = tnGameData.GetTeamDataMain(teamId1); if (m_Team1Flag != null) { m_Team1Flag.sprite = teamData1.flag; } if (m_Team1Name != null) { m_Team1Name.text = teamData1.name; } if (m_Team1Score != null) { m_Team1Score.text = teamResults1.score.ToString(); } } }
// FUNCTORS private static int SortFunctor(tnTeamResults i_Res1, tnTeamResults i_Res2) { tnStandardMatchTeamResults results1 = (tnStandardMatchTeamResults)i_Res1; tnStandardMatchTeamResults results2 = (tnStandardMatchTeamResults)i_Res2; if (results1.score > results2.score) { return(-1); } if (results1.score < results2.score) { return(1); } return(0); }
// LOGIC public void Config(tnStandardMatchController i_Controller) { if (viewInstance != null) { if (i_Controller == null) { return; } // Team 0 tnStandardMatchTeamResults teamResults0 = (tnStandardMatchTeamResults)i_Controller.GetTeamResultsByIndex(0); if (teamResults0 != null) { int teamId0 = teamResults0.id; tnTeamData teamData0 = tnGameData.GetTeamDataMain(teamId0); string name = teamData0.name; int score = teamResults0.score; Sprite flag = teamData0.flag; viewInstance.SetTeam0(name, score, flag); } // Team 1 tnStandardMatchTeamResults teamResults1 = (tnStandardMatchTeamResults)i_Controller.GetTeamResultsByIndex(1); if (teamResults1 != null) { int teamId1 = teamResults1.id; tnTeamData teamData1 = tnGameData.GetTeamDataMain(teamId1); string name = teamData1.name; int score = teamResults1.score; Sprite flag = teamData1.flag; viewInstance.SetTeam1(name, score, flag); } } }
void Update() { if (m_MatchController == null) { return; } // Update animator parameters. if (m_Animator != null) { m_Animator.SetBool("GoldenGoal", m_MatchController.goldenGoal); } // Timer. float time = (float)m_MatchController.remainingTime; SetRemainingTime(time); // Team 0. tnStandardMatchTeamResults teamResults0 = (tnStandardMatchTeamResults)m_MatchController.GetTeamResultsByIndex(0); if (teamResults0 != null) { SetScoreTeam0(teamResults0.score); } // Team 1. tnStandardMatchTeamResults teamResults1 = (tnStandardMatchTeamResults)m_MatchController.GetTeamResultsByIndex(1); if (teamResults1 != null) { SetScoreTeam1(teamResults1.score); } }
protected override void OnGoal(tnGoalEventParams i_Params) { base.OnGoal(i_Params); int currentTick = TrueSyncManager.ticksMain; if (!m_GoalEffectsTicks.Contains(currentTick)) { // Play effects. SfxPlayer.PlayMain(m_GoalSfx); // Play celebration animation and screen shake. tnScreenShake screenShake = null; tnGameCamera gameCamera = cameraGo.GetComponent <tnGameCamera>(); if (gameCamera != null) { screenShake = gameCamera.GetComponentInChildren <tnScreenShake>(); } if (m_CelebrationPanel != null) { m_CelebrationPanel.SetCelebrationText(i_Params.scorerId); m_CelebrationPanel.StartCelebration(); } if (screenShake != null) { screenShake.ForceShake(m_CelebrationShakeTime, m_CelebrationShakeAmount, ShakeMode.Interruput); } m_GoalEffectsTicks.Add(currentTick); } // Update results. for (int teamResultsIndex = 0; teamResultsIndex < teamsCount; ++teamResultsIndex) { tnStandardMatchTeamResults teamResults = (tnStandardMatchTeamResults)GetTeamResultsByIndex(teamResultsIndex); if (teamResults != null) { if (teamResults.id != i_Params.teamId) // Assign a score to the team. { ++teamResults.score; } } } if (i_Params.hasValidScorer) { if (!i_Params.isOwnGoal) { tnStandardMatchCharacterResults characterResults = (tnStandardMatchCharacterResults)GetCharacterResultsById(i_Params.scorerId); if (characterResults != null) { ++characterResults.goalScored; } } } }
protected override void OnEndMatch() { base.OnEndMatch(); bool online = !PhotonNetwork.offlineMode; tnEndMatchEventParams param = new tnEndMatchEventParams(online); param.SetGameModeId(gameModeId); param.SetBallId(ballId); param.SetStadiumId(stadiumId); param.SetHasReferee(hasReferee); param.SetGoldenGoalEnabled(goldenGoalEnabled); param.SetGoldenGoal(goldenGoal); // Compute human players. tnStandardMatchTeamResults teamAResults = (tnStandardMatchTeamResults)GetTeamResultsByIndex(0); if (teamAResults != null) { param.SetTeamAId(teamAResults.id); param.SetScoreA(teamAResults.score); param.SetTeamASize(teamAResults.charactersResultsCount); int humanPlayers = 0; if (!online) { for (int index = 0; index < teamAResults.charactersResultsCount; ++index) { tnCharacterResults characterResults = teamAResults.GetCharacterResults(index); if (characterResults != null) { if (characterResults.isHuman) { ++humanPlayers; } } } } else { humanPlayers = teamAResults.charactersResultsCount; } param.SetTeamAHumanPlayers(humanPlayers); } tnStandardMatchTeamResults teamBResults = (tnStandardMatchTeamResults)GetTeamResultsByIndex(1); if (teamBResults != null) { param.SetTeamBId(teamBResults.id); param.SetScoreB(teamBResults.score); param.SetTeamBSize(teamBResults.charactersResultsCount); int humanPlayers = 0; if (!online) { for (int index = 0; index < teamBResults.charactersResultsCount; ++index) { tnCharacterResults characterResults = teamBResults.GetCharacterResults(index); if (characterResults != null) { if (characterResults.isHuman) { ++humanPlayers; } } } } else { humanPlayers = teamBResults.charactersResultsCount; } param.SetTeamBHumanPlayers(humanPlayers); } // Compute local characters and teams. for (int index = 0; index < localCharactersCount; ++index) { GameObject character = GetLocalCharacterByIndex(index); if (character == null) { continue; } tnCharacterInfo characterInfo = character.GetComponent <tnCharacterInfo>(); if (characterInfo != null) { int characterId = characterInfo.characterId; int teamId = characterInfo.teamId; param.AddLocalCharacter(characterId); param.AddLocalTeam(teamId); } } // Raise event. Messenger.Broadcast <tnEndMatchEventParams>("MatchEnded", param); }