public void UpdateNarration(PlayInfo _currentPlay, PlayInfo _lastPlay) { NarrationData narData = new NarrationData(); if (!_lastPlay.IsActionSuccessful) { flowDribbles = 0; flowPasses = 0; } // NO EVENTS if (_lastPlay.Event == MatchEvent.None) { if (_lastPlay.Marking == MarkingType.Steal) { narData = GetStealNarration(_lastPlay); } else if (_lastPlay.CounterAttack == 4) { narData = GetCounterAttackNarration(_lastPlay); } else if (_lastPlay.Attacker == null) { narData = GetEmptyPlayNarration(_lastPlay); } else { switch (_lastPlay.OffensiveAction) { case PlayerAction.None: narData = GetLostBallNarration(_lastPlay); break; case PlayerAction.Pass: narData = GetPassNarration(_lastPlay, _currentPlay); break; case PlayerAction.LongPass: narData = GetLongPassNarration(_lastPlay, _currentPlay); break; case PlayerAction.Cross: narData = GetCrossNarration(_lastPlay, _currentPlay); break; case PlayerAction.Dribble: narData = GetDribbleNarration(_lastPlay); break; case PlayerAction.Header: narData = GetHeaderNarration(_lastPlay); break; case PlayerAction.Sprint: narData = GetSprintNarration(_lastPlay); break; } } } //EVENTS else { switch (_lastPlay.Event) { case MatchEvent.KickOff: narData = GetKickOffNarration(_lastPlay); break; case MatchEvent.HalfTime: narData = GetFirstHalfEndNarration(_lastPlay); break; case MatchEvent.SecondHalfKickOff: narData = GetSecondHalfStartNarration(_lastPlay); break; case MatchEvent.FullTime: narData = GetFullTimeNarration(_lastPlay); break; case MatchEvent.ShotOnGoal: narData = GetShotOnGoalNarration(_lastPlay); break; case MatchEvent.Goal: narData = GetGoalNarration(_lastPlay); break; case MatchEvent.GoalAnnounced: narData = GetGoalAnnouncedNarration(_lastPlay); break; case MatchEvent.ScorerAnnounced: narData = GetScorerAnnoucendNarration(_lastPlay); break; case MatchEvent.Fault: narData = GetFaultNarration(_lastPlay); break; case MatchEvent.CornerKick: narData = GetCornerKickNarration(_lastPlay); break; case MatchEvent.Penalty: narData = GetPenaltytNarration(_lastPlay); break; case MatchEvent.PenaltyShot: narData = GetPenaltyShotNarration(_lastPlay); break; case MatchEvent.ShotSaved: narData = GetShotSavedNarration(_lastPlay); break; case MatchEvent.ShotMissed: narData = GetShotMissedNarration(_lastPlay); break; case MatchEvent.Offside: narData = GetOffsideNarration(_lastPlay); break; case MatchEvent.Goalkick: narData = GetGoalKickNarration(_lastPlay); break; } } narData.PlayInfo = _lastPlay; narData.Zone = loc.GetZoneString(_lastPlay.AttackingTeam.GetTeamZone(_lastPlay.Zone)); UpdateNarration(narData, _currentPlay.Zone); }