// 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(); } } }
/// <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, "追剧未成功"); } } }
// 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); } } }
// 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; } }
/// <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); } }); }); }
// Token: 0x060018DD RID: 6365 RVA: 0x0002C898 File Offset: 0x0002B898 public void Fill(PursuitInfo pursuitPacket, EntrantInfo entrant) { }