Exemple #1
0
        void BuildPass(PlayerStateReport stateReport)
        {
            BatchRateEntity passEntity = null;

            switch (stateReport.State)
            {
            case (int)EnumClientState.LongPass:
                passEntity = LongPass;
                break;

            case (int)EnumClientState.ShortPass:
                passEntity = ShortPass;
                break;

            case (int)EnumClientState.HeadPass:
                passEntity = HeadPass;
                break;
            }
            if (passEntity != null)
            {
                TotalPass.Times++;
                passEntity.Times++;

                var nextHasBall    = GetNextHasballPlayer();
                var latelyHoldBall = GetLatelyHoldballPlayer();
                if (nextHasBall > 0 && nextHasBall == latelyHoldBall)
                {
                    TotalPass.SuccTimes++;
                    passEntity.SuccTimes++;
                }
            }
        }
Exemple #2
0
        private void BuildDefault(PlayerStateReport stateReport)
        {
            switch (stateReport.State)
            {
            case (int)EnumClientState.BreakThrough:
                Breakthrough.Times++;
                if (CheckHasball())
                {
                    Breakthrough.SuccTimes++;
                }
                break;

            case (int)EnumClientState.Interruption:
            case (int)EnumClientState.SlideTackle:
                Steal.Times++;
                if (stateReport.HasBall == 1)
                {
                    Steal.SuccTimes++;
                }
                break;

            //case (int)EnumClientState.KeepBall:
            case (int)EnumClientState.DiveBall:
                BuildDive(stateReport);
                break;

            default:
                BuildPass(stateReport);
                break;
            }
        }
Exemple #3
0
 private void BuildDive(PlayerStateReport stateReport)
 {
     GoalKeep.Times++;
     if (!CheckGoal())
     {
         GoalKeep.SuccTimes++;
     }
 }
Exemple #4
0
        void BuildShoot(PlayerStateReport stateReport)
        {
            var newReport = stateReport as PlayerShootStateReport;

            if (newReport == null)
            {
                return;
            }
            BatchShootEntity shootEntity = null;

            switch (newReport.State)
            {
            case (int)EnumClientState.Shoot:
                shootEntity = Shoot;
                break;

            case (int)EnumClientState.RebelShoot:
                BuildRebelShoot(newReport);
                break;

            case (int)EnumClientState.VolleyShoot:
                shootEntity = VolleyShoot;
                break;

            case (int)EnumClientState.BicycleShot:
                shootEntity = BicycleShot;
                break;
            }
            if (shootEntity != null)
            {
                TotalShoot.ShootTimes++;
                shootEntity.ShootTimes++;
                shootEntity.ShootRate += 0;
                TotalShoot.ShootRate  += 0;
                if (newReport.GoalIndex == 0)
                {
                    TotalShoot.DoorFrame++;
                    shootEntity.DoorFrame++;
                }
                else if (newReport.GoalIndex < 4 && CheckGoal())
                {
                    TotalShoot.GoalTimes++;
                    shootEntity.GoalTimes++;
                }
            }
        }
Exemple #5
0
 protected void FillStateRpt(IPlayer player, PlayerStateReport rpt)
 {
     rpt.Current    = player.Current;
     rpt.Angle      = GetPlayerAngleIndex(player.Angle);
     rpt.State      = player.Status.ClientState;
     rpt.IsBackward = Convert.ToByte(player.Status.IsBackward);
     rpt.IsStantUp  = Convert.ToByte(player.Status.IsStantUp);
     rpt.HasBall    = Convert.ToByte(player.Status.Hasball);
     rpt.HoldBall   = Convert.ToByte(player.Status.Holdball);
     if (player.Status.IsAttackSide)
     {
         rpt.NameVisible = player.Status.Hasball ? (byte)1 : (byte)0;
     }
     else
     {
         rpt.NameVisible = (player.Status.DefenceStatus.DefenceTarget == player.Match.Status.BallHandler) ? (byte)1 : (byte)0;
     }
     //rpt.FoulLevel = player.Status.FoulStatus.FoulLevel;
     rpt.FoulLevel = player.SkillFoulState;
     rpt.ModelId   = player.Status.ModelStatus.Mid;
 }