Пример #1
0
    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);
    }