コード例 #1
0
        // Token: 0x0600191B RID: 6427 RVA: 0x0002CCD4 File Offset: 0x0002BCD4
        public void OnUpdate(EntrantInfo entrant, Event evnt, float dt)
        {
            PursuitScoringState pursuitScoringState = entrant.ScoringState as PursuitScoringState;

            if (pursuitScoringState != null)
            {
                float speed = entrant.Opponent.Vehicle.GetSpeed();
                if (speed > pursuitScoringState.TopSpeed)
                {
                    pursuitScoringState.TopSpeed = speed;
                }
                if (entrant.Opponent.Vehicle.GetCurrentAirborneTime() > pursuitScoringState.LongestAirTimeInSeconds)
                {
                    pursuitScoringState.LongestAirTimeInSeconds = entrant.Opponent.Vehicle.GetCurrentAirborneTime();
                }
                if (entrant.Opponent.Vehicle.GetNumWheelsOnGround() == 0)
                {
                    pursuitScoringState.SumAirTimeInSeconds += dt;
                }
                LocalHumanOpponent localHumanOpponent = entrant.Opponent as LocalHumanOpponent;
                if (localHumanOpponent != null)
                {
                    PursuitInfo pursuitData = localHumanOpponent.PursuitData;
                    pursuitScoringState.Heat                        = Cops.GetPursuitHeat();
                    pursuitScoringState.CopsDisabled                = pursuitData.GetNumCopsDisabled();
                    pursuitScoringState.CopsRammed                  = pursuitData.GetNumCopsRammed();
                    pursuitScoringState.CopsDeployed                = pursuitData.GetNumCopsDeployed();
                    pursuitScoringState.CostToState                 = pursuitData.GetCostToState();
                    pursuitScoringState.SpikeStripsDodged           = pursuitData.GetSpikeStripsDodged();
                    pursuitScoringState.RoadBlocksDodged            = pursuitData.GetRoadBlocksDodged();
                    pursuitScoringState.Infractions                 = pursuitData.GetInfractions();
                    pursuitScoringState.EventDurationInMilliseconds = pursuitData.GetPursuitDuration();
                }
            }
        }
コード例 #2
0
        /// <summary>
        /// 追剧事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnPursuit_Click(object sender, EventArgs e)
        {
            if (!_isLogon)
            {
                try
                {
                    if (MessageBox.Show("请先登录", "提示", MessageBoxButton.OKCancel) == MessageBoxResult.OK)
                    {
                        NavigationService.Navigate(new Uri("/LoginPage.xaml?pursuit=1", UriKind.RelativeOrAbsolute));
                    }
                }
                catch { }
                return;
            }
            var bar = sender as ApplicationBarIconButton;

            if (bar != null)
            {
                try
                {
                    Utils.PursuitUtils.PursuitChannel(_vID, true, (o, ee) =>
                    {
                        Dispatcher.BeginInvoke(() =>
                        {
                            var response = ee.IsSucess ? "追剧成功" : "追剧未成功";
                            if (ee.IsSucess)
                            {
                                bar.IsEnabled = false;
                                bar.IconUri   = Utils.PursuitUtils.PursuitedImageUri;
                                bar.Text      = "已追剧";
                                if (!PursuitViewModel.Instance.HasByChannelId(_vID))
                                {
                                    var pursuit = new PursuitInfo()
                                    {
                                        ChannelId    = _vID,
                                        ChannelName  = DetailPageHelp.ChannelDetailInfoForPrograms.Title,
                                        ImageUrl     = DetailPageHelp.ChannelDetailInfoForPrograms.ImgUrl,
                                        Mark         = DetailPageHelp.ChannelDetailInfoForPrograms.Mark,
                                        IsShowDelte  = false,
                                        ChannelCount = DetailPageHelp.ChannelDetailInfoForPrograms.ProgramInfos.Count
                                    };
                                    PursuitViewModel.Instance.AddEntity(pursuit);
                                }
                            }
                            else
                            {
                                bar.IsEnabled = true;
                            }
                            ShowFavAddDialog(true, response);
                        });
                    });
                    bar.IsEnabled = false;
                }
                catch
                {
                    ShowFavAddDialog(true, "追剧未成功");
                }
            }
        }
コード例 #3
0
        // Token: 0x06001997 RID: 6551 RVA: 0x0002E398 File Offset: 0x0002D398
        public virtual void OnUpdate(EntrantInfo entrant, Event evnt, float dt)
        {
            TeamEscapeScoringState teamEscapeScoringState = entrant.ScoringState as TeamEscapeScoringState;
            InstancedEvent         instancedEvent         = evnt as InstancedEvent;

            if (teamEscapeScoringState != null)
            {
                teamEscapeScoringState.FractionCompleted   = this.GetFractionCompleted(teamEscapeScoringState, entrant, instancedEvent);
                teamEscapeScoringState.DistanceToStartLine = instancedEvent.GetDistanceToStartLine(entrant.Opponent.Vehicle);
                teamEscapeScoringState.DistanceToFinish    = this.GetDistanceToFinish(teamEscapeScoringState, entrant, instancedEvent);
                if (!instancedEvent.IsTimingOut)
                {
                    teamEscapeScoringState.TimeRemaining = evnt.EventDef.TimeLimit() - entrant.ScoringState.EventDurationInSeconds;
                }
                else
                {
                    teamEscapeScoringState.TimeRemaining = (float)instancedEvent.TimingOutRemaining.TotalSeconds;
                }
                if (!teamEscapeScoringState.IsTimerUrgent && teamEscapeScoringState.TimeRemaining < evnt.EventDef.TimeLimitWarning())
                {
                    teamEscapeScoringState.IsTimerUrgent = true;
                    new OnTimingOut(entrant.PersonaId).Post(Ports.Gameplay);
                }
                float speed = entrant.Opponent.Vehicle.GetSpeed();
                if (speed > teamEscapeScoringState.TopSpeed)
                {
                    teamEscapeScoringState.TopSpeed = speed;
                }
                if (entrant.Opponent.Vehicle.GetCurrentAirborneTime() > teamEscapeScoringState.LongestAirTimeInSeconds)
                {
                    teamEscapeScoringState.LongestAirTimeInSeconds = entrant.Opponent.Vehicle.GetCurrentAirborneTime();
                }
                if (entrant.Opponent.InternalOpponent.GetNumOpponentsCollidedWith() > teamEscapeScoringState.NumOpponentsTagged)
                {
                    teamEscapeScoringState.NumOpponentsTagged = entrant.Opponent.InternalOpponent.GetNumOpponentsCollidedWith();
                }
                if (entrant.Opponent is LocalHumanOpponent)
                {
                    Screen.Print(-300, 120, string.Format("{0} : {1}", entrant.Opponent.OpponentName, teamEscapeScoringState.FractionCompleted));
                }
                entrant.Opponent.InternalOpponent.SetFractionEventComplete(teamEscapeScoringState.FractionCompleted);
                LocalHumanOpponent localHumanOpponent = entrant.Opponent as LocalHumanOpponent;
                if (localHumanOpponent != null)
                {
                    PursuitInfo pursuitData = localHumanOpponent.PursuitData;
                    teamEscapeScoringState.CopsDisabled      = pursuitData.GetNumCopsDisabled();
                    teamEscapeScoringState.CopsRammed        = pursuitData.GetNumCopsRammed();
                    teamEscapeScoringState.CopsDeployed      = pursuitData.GetNumCopsDeployed();
                    teamEscapeScoringState.CostToState       = pursuitData.GetCostToState();
                    teamEscapeScoringState.SpikeStripsDodged = pursuitData.GetSpikeStripsDodged();
                    teamEscapeScoringState.RoadBlocksDodged  = pursuitData.GetRoadBlocksDodged();
                    teamEscapeScoringState.Infractions       = pursuitData.GetInfractions();
                    pursuitData.HACK_SetPursuitMeter(teamEscapeScoringState.PursuitBar);
                }
            }
        }
コード例 #4
0
        // Token: 0x0600198D RID: 6541 RVA: 0x0002E024 File Offset: 0x0002D024
        public void Fill(PursuitInfo pursuitPacket, EntrantInfo entrant)
        {
            TeamEscapeScoringState teamEscapeScoringState = entrant.ScoringState as TeamEscapeScoringState;

            if (teamEscapeScoringState != null)
            {
                pursuitPacket.PursuitStatus  = teamEscapeScoringState.PursuitBar;
                pursuitPacket.NumCopsEngaged = (uint)teamEscapeScoringState.CopsDeployed;
            }
        }
コード例 #5
0
        /// <summary>
        /// 递归操作所有追剧
        /// </summary>
        /// <param name="pursuit"></param>
        /// <param name="callBack"></param>
        private void OperatePursuit(int index, PursuitInfo pursuit, bool isSub, bool isDeleted, Action <bool> callBack)
        {
            var channelId = pursuit.ChannelId;

            PursuitUtils.PursuitChannel(channelId, isSub, (o, ee) =>
            {
                Dispatcher.BeginInvoke(() =>
                {
                    if (ee.IsSucess)
                    {
                        if (isDeleted)
                        {
                            PursuitViewModel.Instance.RemoveEntity(pursuit);
                            if (xPursuitListBox.Items.Count > 0)
                            {
                                var p = xPursuitListBox.Items[0] as PursuitInfo;
                                OperatePursuit(0, p, isSub, isDeleted, callBack);
                            }
                            else
                            {
                                callBack(true);
                            }
                        }
                        else
                        {
                            index++;
                            if (index < xPursuitListBox.Items.Count)
                            {
                                var p = xPursuitListBox.Items[index] as PursuitInfo;
                                OperatePursuit(index, p, isSub, isDeleted, callBack);
                            }
                            else
                            {
                                callBack(true);
                            }
                        }
                    }
                    else
                    {
                        callBack(false);
                    }
                });
            });
        }
コード例 #6
0
 // Token: 0x060018DD RID: 6365 RVA: 0x0002C898 File Offset: 0x0002B898
 public void Fill(PursuitInfo pursuitPacket, EntrantInfo entrant)
 {
 }