示例#1
0
        void GoalRoutine(int whichGoal)
        {
            room.ResetOffside();
            room.ballInNetDelayer   = 100;
            room.autoMoving         = 1;
            room.timerEnabled       = false;
            room.keeperDistanceShot = -1;
            bool isOwnGoal;

            room.fouledTID = -1;

            for (int i = 0; i < 2; i++)
            {
                if (room.keepers[i].divingDelay == 0)
                {
                    room.keepers[i].speed = 0;
                }
            }

            //upper net
            if (whichGoal == 0)
            {
                //away scored
                if (room.homeSide == 1)
                {
                    room.teams[1].score++;
                    room.kickoff = 0;
                    isOwnGoal    = room.IsOwnGoal(whichGoal);
                    room.SendTrainingGoalData(1, isOwnGoal);
                    room.AddGoalStats(1, isOwnGoal);
                    if (!isOwnGoal)
                    {
                        room.AddShotStat(true);
                    }
                    room.BroadcastInfoAboutGoal(5, room.timerEnabled, room.IsOwnGoal(whichGoal));
                }
                //home scored
                else
                {
                    room.teams[0].score++;
                    room.kickoff = 1;
                    isOwnGoal    = room.IsOwnGoal(whichGoal);
                    room.SendTrainingGoalData(0, isOwnGoal);
                    room.AddGoalStats(0, isOwnGoal);
                    if (!isOwnGoal)
                    {
                        room.AddShotStat(true);
                    }
                    room.BroadcastInfoAboutGoal(4, room.timerEnabled, room.IsOwnGoal(whichGoal));
                }
            }
            //lower net
            else
            {
                //home scored
                if (room.homeSide == 1)
                {
                    room.teams[0].score++;
                    room.kickoff = 1;
                    isOwnGoal    = room.IsOwnGoal(whichGoal);
                    room.SendTrainingGoalData(0, isOwnGoal);
                    room.AddGoalStats(0, isOwnGoal);
                    if (!isOwnGoal)
                    {
                        room.AddShotStat(true);
                    }
                    room.BroadcastInfoAboutGoal(4, room.timerEnabled, room.IsOwnGoal(whichGoal));
                }
                //away scored
                else
                {
                    room.teams[1].score++;
                    room.kickoff = 0;
                    isOwnGoal    = room.IsOwnGoal(whichGoal);
                    room.SendTrainingGoalData(1, isOwnGoal);
                    room.AddGoalStats(1, isOwnGoal);
                    if (!isOwnGoal)
                    {
                        room.AddShotStat(true);
                    }
                    room.BroadcastInfoAboutGoal(5, room.timerEnabled, room.IsOwnGoal(whichGoal));
                }
            }

            room.ResetSlideTacklesAndFallDelays();
            room.SetKickOffCoords();
        }