コード例 #1
0
        // Token: 0x06001947 RID: 6471 RVA: 0x0002D328 File Offset: 0x0002C328
        public void Fill(ArbitratedPacket arbitratedPacket, EntrantInfo entrant)
        {
            RouteArbitratedPacket routeArbitratedPacket = arbitratedPacket as RouteArbitratedPacket;
            RouteScoringState     routeScoringState     = entrant.ScoringState as RouteScoringState;

            if (routeScoringState != null && null != routeArbitratedPacket)
            {
                RouteEntrantArbitratedPacket routeEntrantArbitratedPacket = routeArbitratedPacket.CreateEntrantArbitratedPacket();
                Marshal.Get().FillFEPlayerPersona(entrant.PersonaId, routeEntrantArbitratedPacket);
                routeEntrantArbitratedPacket.PersonaId = entrant.PersonaId;
                routeEntrantArbitratedPacket.SetPersonaName(entrant.Opponent.OpponentName);
                routeEntrantArbitratedPacket.SetMotto(entrant.Opponent.Motto);
                routeEntrantArbitratedPacket.HasArbitrated = routeScoringState.HasArbitrated;
                routeEntrantArbitratedPacket.FinishReason  = routeScoringState.FinishReason;
                routeEntrantArbitratedPacket.Rank          = routeScoringState.Rank;
                routeEntrantArbitratedPacket.Level         = routeScoringState.Level;
                routeEntrantArbitratedPacket.IconIndex     = (long)((ulong)entrant.Opponent.IconIndex);
                routeEntrantArbitratedPacket.IsLocal       = (entrant.Opponent is LocalHumanOpponent);
                routeEntrantArbitratedPacket.EventDuration = routeScoringState.EventDurationInSeconds;
                Powerups.FillEntrantArbitratedPacket(routeEntrantArbitratedPacket);
                entrant.Opponent.FillCarData(routeEntrantArbitratedPacket.GetCarData());
                routeEntrantArbitratedPacket.BestLapDuration = routeScoringState.BestLapDurationInSeconds;
                routeEntrantArbitratedPacket.TopSpeed        = routeScoringState.TopSpeed;
            }
        }
コード例 #2
0
        // Token: 0x06001993 RID: 6547 RVA: 0x0002E1B4 File Offset: 0x0002D1B4
        public void Fill(ArbitratedPacket arbitratedPacket, EntrantInfo entrant)
        {
            TeamEscapeArbitratedPacket teamEscapeArbitratedPacket = arbitratedPacket as TeamEscapeArbitratedPacket;
            TeamEscapeScoringState     teamEscapeScoringState     = entrant.ScoringState as TeamEscapeScoringState;

            if (null != teamEscapeArbitratedPacket && teamEscapeScoringState != null)
            {
                TeamEscapeEntrantArbitratedPacket teamEscapeEntrantArbitratedPacket = teamEscapeArbitratedPacket.CreateEntrantArbitratedPacket();
                Marshal.Get().FillFEPlayerPersona(entrant.PersonaId, teamEscapeEntrantArbitratedPacket);
                teamEscapeEntrantArbitratedPacket.PersonaId = entrant.PersonaId;
                teamEscapeEntrantArbitratedPacket.SetPersonaName(entrant.Opponent.OpponentName);
                teamEscapeEntrantArbitratedPacket.SetMotto(entrant.Opponent.Motto);
                teamEscapeEntrantArbitratedPacket.HasArbitrated = teamEscapeScoringState.HasArbitrated;
                teamEscapeEntrantArbitratedPacket.FinishReason  = teamEscapeScoringState.FinishReason;
                teamEscapeEntrantArbitratedPacket.Rank          = teamEscapeScoringState.Rank;
                teamEscapeEntrantArbitratedPacket.Level         = teamEscapeScoringState.Level;
                teamEscapeEntrantArbitratedPacket.IconIndex     = (long)((ulong)entrant.Opponent.IconIndex);
                teamEscapeEntrantArbitratedPacket.IsLocal       = (entrant.Opponent is LocalHumanOpponent);
                teamEscapeEntrantArbitratedPacket.EventDuration = teamEscapeScoringState.EventDurationInSeconds;
                Powerups.FillEntrantArbitratedPacket(teamEscapeEntrantArbitratedPacket);
                entrant.Opponent.FillCarData(teamEscapeEntrantArbitratedPacket.GetCarData());
                teamEscapeEntrantArbitratedPacket.DistanceToFinish = teamEscapeScoringState.DistanceToFinish;
                teamEscapeEntrantArbitratedPacket.Strikes          = teamEscapeScoringState.Busts;
                teamEscapeArbitratedPacket.Strikes      += teamEscapeScoringState.Busts;
                teamEscapeArbitratedPacket.EventDuration = ((teamEscapeScoringState.EventDurationInSeconds > teamEscapeArbitratedPacket.EventDuration) ? teamEscapeScoringState.EventDurationInSeconds : teamEscapeArbitratedPacket.EventDuration);
            }
        }
コード例 #3
0
        // Token: 0x06001990 RID: 6544 RVA: 0x0002E090 File Offset: 0x0002D090
        public void Fill(LivePacket livePacket, EntrantInfo entrant)
        {
            TeamEscapeLivePacket   teamEscapeLivePacket   = livePacket as TeamEscapeLivePacket;
            TeamEscapeScoringState teamEscapeScoringState = entrant.ScoringState as TeamEscapeScoringState;

            if (null != teamEscapeLivePacket && teamEscapeScoringState != null)
            {
                TeamEscapeEntrantLivePacket teamEscapeEntrantLivePacket = teamEscapeLivePacket.CreateEntrantLivePacket();
                teamEscapeEntrantLivePacket.PersonaId = entrant.PersonaId;
                teamEscapeEntrantLivePacket.SetPersonaName(entrant.Opponent.OpponentName);
                teamEscapeEntrantLivePacket.FinishReason     = teamEscapeScoringState.FinishReason;
                teamEscapeEntrantLivePacket.Rank             = teamEscapeScoringState.Rank;
                teamEscapeEntrantLivePacket.IsLocal          = (entrant.Opponent is LocalHumanOpponent);
                teamEscapeEntrantLivePacket.Highlight        = teamEscapeScoringState.Highlight;
                teamEscapeEntrantLivePacket.DistanceToFinish = teamEscapeScoringState.DistanceToFinish;
                teamEscapeEntrantLivePacket.SetDistanceToFinishString(FormatUtils.FormatDistance(teamEscapeScoringState.DistanceToFinish));
                teamEscapeLivePacket.NumBusts += teamEscapeScoringState.Busts;
                if (teamEscapeEntrantLivePacket.IsLocal)
                {
                    System.TimeSpan span = System.TimeSpan.FromSeconds((double)teamEscapeScoringState.TimeRemaining);
                    span.Fill(teamEscapeLivePacket.GetEventTimer());
                    teamEscapeLivePacket.IsTimerUrgent = teamEscapeScoringState.IsTimerUrgent;
                }
            }
        }
コード例 #4
0
        // Token: 0x060019A0 RID: 6560 RVA: 0x0002EA54 File Offset: 0x0002DA54
        public EventResult Arbitrated(Event evnt, XmlString xmlString)
        {
            InstancedEvent        instancedEvent = evnt as InstancedEvent;
            TeamEscapeEventResult teamEscapeEventResult;

            if (XSD2CPP.ReadTeamEscapeEventResult(xmlString, out teamEscapeEventResult) && teamEscapeEventResult.EventSessionId == instancedEvent.EventSessionId)
            {
                foreach (TeamEscapeEntrantResult teamEscapeEntrantResult in teamEscapeEventResult.Entrants)
                {
                    EntrantInfo entrantInfo = evnt.FindEntrant(teamEscapeEntrantResult.PersonaId);
                    if (entrantInfo != null)
                    {
                        TeamEscapeScoringState teamEscapeScoringState = entrantInfo.ScoringState as TeamEscapeScoringState;
                        if (teamEscapeScoringState != null && !teamEscapeScoringState.HasArbitrated && teamEscapeEntrantResult.FinishReason != 0)
                        {
                            teamEscapeScoringState.HasArbitrated = true;
                            teamEscapeScoringState.FinishReason  = (FinishReason)teamEscapeEntrantResult.FinishReason;
                            teamEscapeScoringState.EventDurationInMilliseconds = teamEscapeEntrantResult.EventDurationInMilliseconds;
                            teamEscapeScoringState.FractionCompleted           = teamEscapeEntrantResult.FractionCompleted;
                            teamEscapeScoringState.DistanceToFinish            = teamEscapeEntrantResult.DistanceToFinish;
                            teamEscapeScoringState.Rank = teamEscapeEntrantResult.Ranking;
                        }
                    }
                }
                Marshal.Get().SetLocalPlayersDurability(teamEscapeEventResult.Durability);
                return(teamEscapeEventResult);
            }
            return(null);
        }
コード例 #5
0
        // Token: 0x060018A0 RID: 6304 RVA: 0x0002BBA0 File Offset: 0x0002ABA0
        public RoutingState HitTrigger(InstancedEvent evnt, EntrantInfo entrant, RoutingState s)
        {
            CircuitRoutingState circuitRoutingState = s as CircuitRoutingState;

            if (circuitRoutingState != null)
            {
                if (circuitRoutingState.NextIndex >= evnt.Route.Count)
                {
                    circuitRoutingState.Lap++;
                    RouteScoringMethod routeScoringMethod = evnt.ScoringMethod as RouteScoringMethod;
                    if (routeScoringMethod != null)
                    {
                        routeScoringMethod.OnLapCompleted(entrant, evnt, circuitRoutingState.Lap);
                    }
                    if (circuitRoutingState.Lap >= evnt.NumLaps)
                    {
                        circuitRoutingState.CurrentTarget     = null;
                        circuitRoutingState.IsRoutingFinished = true;
                        return(circuitRoutingState);
                    }
                    circuitRoutingState.NextIndex = 0;
                }
                circuitRoutingState.CurrentTarget = evnt.Route[circuitRoutingState.NextIndex++];
                return(circuitRoutingState);
            }
            s.CurrentTarget     = null;
            s.IsRoutingFinished = true;
            return(s);
        }
コード例 #6
0
        // Token: 0x0600199F RID: 6559 RVA: 0x0002E93C File Offset: 0x0002D93C
        public ArbitrationPacket FillArbitrationRecord(EntrantInfo entrant)
        {
            TeamEscapeScoringState teamEscapeScoringState = entrant.ScoringState as TeamEscapeScoringState;

            if (teamEscapeScoringState != null)
            {
                return(new TeamEscapeArbitrationPacket
                {
                    Rank = teamEscapeScoringState.Rank,
                    EventDurationInMilliseconds = teamEscapeScoringState.EventDurationInMilliseconds,
                    AlternateEventDurationInMilliseconds = teamEscapeScoringState.SecureEventDurationInMilliseconds,
                    HacksDetected = SecurityManager.GetHacks(),
                    FinishReason = (int)teamEscapeScoringState.FinishReason,
                    FractionCompleted = teamEscapeScoringState.FractionCompleted,
                    TopSpeed = teamEscapeScoringState.TopSpeed,
                    LongestJumpDurationInMilliseconds = teamEscapeScoringState.LongestAirTimeInMilliseconds,
                    SumOfJumpsDurationInMilliseconds = teamEscapeScoringState.SumAirTimeInMilliseconds,
                    PerfectStart = (int)teamEscapeScoringState.PerfectStart,
                    NumberOfCollisions = teamEscapeScoringState.NumOpponentsTagged,
                    BustedCount = teamEscapeScoringState.Busts,
                    DistanceToFinish = teamEscapeScoringState.DistanceToFinish,
                    CopsDeployed = teamEscapeScoringState.CopsDeployed,
                    CopsDisabled = teamEscapeScoringState.CopsDisabled,
                    CopsRammed = teamEscapeScoringState.CopsRammed,
                    CostToState = teamEscapeScoringState.CostToState,
                    Infractions = teamEscapeScoringState.Infractions,
                    RoadBlocksDodged = teamEscapeScoringState.RoadBlocksDodged,
                    SpikeStripsDodged = teamEscapeScoringState.SpikeStripsDodged
                });
            }
            return(null);
        }
コード例 #7
0
        // Token: 0x060018D2 RID: 6354 RVA: 0x0002C58C File Offset: 0x0002B58C
        public EventResult Arbitrated(Event evnt, XmlString xmlString)
        {
            InstancedEvent  instancedEvent = evnt as InstancedEvent;
            DragEventResult dragEventResult;

            if (XSD2CPP.ReadDragEventResult(xmlString, out dragEventResult) && dragEventResult.EventSessionId == instancedEvent.EventSessionId)
            {
                foreach (DragEntrantResult dragEntrantResult in dragEventResult.Entrants)
                {
                    if (dragEntrantResult.FinishReason != 0)
                    {
                        EntrantInfo entrantInfo = evnt.FindEntrant(dragEntrantResult.PersonaId);
                        if (entrantInfo != null)
                        {
                            DragScoringState dragScoringState = entrantInfo.ScoringState as DragScoringState;
                            if (dragScoringState != null && !dragScoringState.HasArbitrated)
                            {
                                dragScoringState.HasArbitrated = true;
                                dragScoringState.FinishReason  = (FinishReason)dragEntrantResult.FinishReason;
                                dragScoringState.EventDurationInMilliseconds = dragEntrantResult.EventDurationInMilliseconds;
                                dragScoringState.Rank     = dragEntrantResult.Ranking;
                                dragScoringState.TopSpeed = dragEntrantResult.TopSpeed;
                            }
                        }
                    }
                }
                Marshal.Get().SetLocalPlayersDurability(dragEventResult.Durability);
                return(dragEventResult);
            }
            return(null);
        }
コード例 #8
0
        // Token: 0x06001920 RID: 6432 RVA: 0x0002CED8 File Offset: 0x0002BED8
        public EventResult Arbitrated(Event evnt, XmlString xmlString)
        {
            InstancedEvent     instancedEvent = evnt as InstancedEvent;
            PursuitEventResult pursuitEventResult;

            if (!XSD2CPP.ReadPursuitEventResult(xmlString, out pursuitEventResult) || pursuitEventResult.EventSessionId != instancedEvent.EventSessionId)
            {
                return(null);
            }
            EntrantInfo entrantInfo = evnt.FindEntrant(pursuitEventResult.PersonaId);

            if (entrantInfo == null)
            {
                return(null);
            }
            LocalHumanOpponent localHumanOpponent = entrantInfo.Opponent as LocalHumanOpponent;

            if (localHumanOpponent != null)
            {
                localHumanOpponent.Heat = pursuitEventResult.Heat;
            }
            PursuitScoringState pursuitScoringState = entrantInfo.ScoringState as PursuitScoringState;

            if (pursuitScoringState != null)
            {
                pursuitScoringState.HasArbitrated = true;
            }
            Marshal.Get().SetLocalPlayersDurability(pursuitEventResult.Durability);
            return(pursuitEventResult);
        }
コード例 #9
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();
                }
            }
        }
コード例 #10
0
        // Token: 0x0600191E RID: 6430 RVA: 0x0002CDE8 File Offset: 0x0002BDE8
        public ArbitrationPacket FillArbitrationRecord(EntrantInfo entrant)
        {
            PursuitScoringState pursuitScoringState = entrant.ScoringState as PursuitScoringState;

            if (pursuitScoringState != null)
            {
                return(new PursuitArbitrationPacket
                {
                    Rank = pursuitScoringState.Rank,
                    EventDurationInMilliseconds = pursuitScoringState.EventDurationInMilliseconds,
                    AlternateEventDurationInMilliseconds = pursuitScoringState.SecureEventDurationInMilliseconds,
                    HacksDetected = SecurityManager.GetHacks(),
                    FinishReason = (int)pursuitScoringState.FinishReason,
                    TopSpeed = pursuitScoringState.TopSpeed,
                    LongestJumpDurationInMilliseconds = pursuitScoringState.LongestAirTimeInMilliseconds,
                    SumOfJumpsDurationInMilliseconds = pursuitScoringState.SumAirTimeInMilliseconds,
                    CopsDeployed = pursuitScoringState.CopsDeployed,
                    CopsDisabled = pursuitScoringState.CopsDisabled,
                    CopsRammed = pursuitScoringState.CopsRammed,
                    CostToState = pursuitScoringState.CostToState,
                    Heat = pursuitScoringState.Heat,
                    Infractions = pursuitScoringState.Infractions,
                    RoadBlocksDodged = pursuitScoringState.RoadBlocksDodged,
                    SpikeStripsDodged = pursuitScoringState.SpikeStripsDodged
                });
            }
            return(null);
        }
コード例 #11
0
 // Token: 0x060018CD RID: 6349 RVA: 0x0002C257 File Offset: 0x0002B257
 public virtual void OnRoutingFinished(EntrantInfo entrant)
 {
     if (entrant.Opponent is LocalOpponent)
     {
         entrant.ScoringState.FinishReason = FinishReason.CrossedFinish;
     }
 }
コード例 #12
0
        // Token: 0x060018CA RID: 6346 RVA: 0x0002C0DC File Offset: 0x0002B0DC
        public virtual void OnUpdate(EntrantInfo entrant, Event evnt, float dt)
        {
            InstancedEvent   instancedEvent   = evnt as InstancedEvent;
            DragScoringState dragScoringState = entrant.ScoringState as DragScoringState;

            if (dragScoringState != null)
            {
                dragScoringState.FractionCompleted   = this.GetFractionCompleted(dragScoringState, entrant, instancedEvent);
                dragScoringState.DistanceToStartLine = instancedEvent.GetDistanceToStartLine(entrant.Opponent.Vehicle);
                float speed = entrant.Opponent.Vehicle.GetSpeed();
                if (speed > dragScoringState.TopSpeed)
                {
                    dragScoringState.TopSpeed = speed;
                }
                if (entrant.Opponent.Vehicle.GetCurrentAirborneTime() > dragScoringState.LongestAirTimeInSeconds)
                {
                    dragScoringState.LongestAirTimeInSeconds = entrant.Opponent.Vehicle.GetCurrentAirborneTime();
                }
                if (entrant.Opponent.Vehicle.GetNumWheelsOnGround() == 0)
                {
                    dragScoringState.SumAirTimeInSeconds += dt;
                }
                if (entrant.Opponent.InternalOpponent.GetNumOpponentsCollidedWith() > dragScoringState.NumOpponentsTagged)
                {
                    dragScoringState.NumOpponentsTagged = entrant.Opponent.InternalOpponent.GetNumOpponentsCollidedWith();
                }
                entrant.Opponent.InternalOpponent.SetFractionEventComplete(dragScoringState.FractionCompleted);
            }
        }
コード例 #13
0
        // Token: 0x06001496 RID: 5270 RVA: 0x00022504 File Offset: 0x00021504
        protected override void OnMessage(OnTriggerEnter message)
        {
            Collection collection = new Collection(message.TriggerKey);

            if (collection.IsDerivedFrom(3085914478u))
            {
                if (this.fired.ContainsKey(collection.GetCollection()))
                {
                    if (collection.DelayInterval() < 0f)
                    {
                        return;
                    }
                    if (TimeSpan.FromMilliseconds(Simulation.GetTickDifference(this.fired[collection.GetCollection()])).TotalSeconds < (double)collection.DelayInterval())
                    {
                        return;
                    }
                }
                uint    key    = collection.ScriptAction().GetKey();
                IScript script = null;
                if (!this.scripts.TryGetValue(key, out script))
                {
                    script = Activator.CreateInstance <IScript>(key);
                    this.scripts.Add(key, script);
                }
                if (script != null)
                {
                    EntrantInfo entrantInfo = base.Event.FindEntrant(message.PersonaId);
                    if (entrantInfo != null)
                    {
                        script.Execute(base.Event, entrantInfo, collection);
                        this.fired[collection.GetCollection()] = Simulation.GetTick();
                    }
                }
            }
        }
コード例 #14
0
        // Token: 0x06001954 RID: 6484 RVA: 0x0002DAB8 File Offset: 0x0002CAB8
        public EventResult Arbitrated(Event evnt, XmlString xmlString)
        {
            InstancedEvent   instancedEvent = evnt as InstancedEvent;
            RouteEventResult routeEventResult;

            if (XSD2CPP.ReadRouteEventResult(xmlString, out routeEventResult) && routeEventResult.EventSessionId == instancedEvent.EventSessionId)
            {
                foreach (RouteEntrantResult routeEntrantResult in routeEventResult.Entrants)
                {
                    EntrantInfo entrantInfo = evnt.FindEntrant(routeEntrantResult.PersonaId);
                    if (entrantInfo != null)
                    {
                        RouteScoringState routeScoringState = entrantInfo.ScoringState as RouteScoringState;
                        if (routeScoringState != null && !routeScoringState.HasArbitrated)
                        {
                            routeScoringState.HasArbitrated = true;
                            routeScoringState.FinishReason  = (FinishReason)routeEntrantResult.FinishReason;
                            routeScoringState.EventDurationInMilliseconds = routeEntrantResult.EventDurationInMilliseconds;
                            routeScoringState.Rank     = routeEntrantResult.Ranking;
                            routeScoringState.TopSpeed = routeEntrantResult.TopSpeed;
                            routeScoringState.BestLapDurationInMilliseconds = routeEntrantResult.BestLapDurationInMilliseconds;
                        }
                    }
                }
                Marshal.Get().SetLocalPlayersDurability(routeEventResult.Durability);
                return(routeEventResult);
            }
            return(null);
        }
コード例 #15
0
        // Token: 0x06001917 RID: 6423 RVA: 0x0002CB2C File Offset: 0x0002BB2C
        public void Fill(ArbitratedPacket arbitratedPacket, EntrantInfo entrant)
        {
            PursuitArbitratedPacket pursuitArbitratedPacket = arbitratedPacket as PursuitArbitratedPacket;
            PursuitScoringState     pursuitScoringState     = entrant.ScoringState as PursuitScoringState;

            if (pursuitScoringState != null && null != pursuitArbitratedPacket)
            {
                PursuitEntrantArbitratedPacket pursuitEntrantArbitratedPacket = pursuitArbitratedPacket.CreateEntrantArbitratedPacket();
                Marshal.Get().FillFEPlayerPersona(entrant.PersonaId, pursuitEntrantArbitratedPacket);
                pursuitEntrantArbitratedPacket.PersonaId = entrant.PersonaId;
                pursuitEntrantArbitratedPacket.SetPersonaName(entrant.Opponent.OpponentName);
                pursuitEntrantArbitratedPacket.SetMotto(entrant.Opponent.Motto);
                pursuitEntrantArbitratedPacket.HasArbitrated = pursuitScoringState.HasArbitrated;
                pursuitEntrantArbitratedPacket.FinishReason  = pursuitScoringState.FinishReason;
                pursuitEntrantArbitratedPacket.Rank          = pursuitScoringState.Rank;
                pursuitEntrantArbitratedPacket.Level         = pursuitScoringState.Level;
                pursuitEntrantArbitratedPacket.IconIndex     = (long)((ulong)entrant.Opponent.IconIndex);
                pursuitEntrantArbitratedPacket.IsLocal       = (entrant.Opponent is LocalHumanOpponent);
                pursuitEntrantArbitratedPacket.EventDuration = pursuitScoringState.EventDurationInSeconds;
                Powerups.FillEntrantArbitratedPacket(pursuitEntrantArbitratedPacket);
                entrant.Opponent.FillCarData(pursuitEntrantArbitratedPacket.GetCarData());
                pursuitEntrantArbitratedPacket.LongestJumpDuration = pursuitScoringState.LongestAirTimeInSeconds;
                pursuitEntrantArbitratedPacket.TopSpeed            = pursuitScoringState.TopSpeed;
                pursuitEntrantArbitratedPacket.CopsDeployed        = pursuitScoringState.CopsDeployed;
                pursuitEntrantArbitratedPacket.CopsDisabled        = pursuitScoringState.CopsDisabled;
                pursuitEntrantArbitratedPacket.CopsRammed          = pursuitScoringState.CopsRammed;
                pursuitEntrantArbitratedPacket.CostToState         = pursuitScoringState.CostToState;
                pursuitEntrantArbitratedPacket.Heat              = pursuitScoringState.Heat;
                pursuitEntrantArbitratedPacket.Infractions       = pursuitScoringState.Infractions;
                pursuitEntrantArbitratedPacket.RoadBlocksDodged  = pursuitScoringState.RoadBlocksDodged;
                pursuitEntrantArbitratedPacket.SpikeStripsDodged = pursuitScoringState.SpikeStripsDodged;
            }
        }
コード例 #16
0
        // Token: 0x06001447 RID: 5191 RVA: 0x00021410 File Offset: 0x00020410
        protected override void OnMessage(OnGearShift message)
        {
            EntrantInfo entrantInfo = base.Event.FindEntrant(message.PersonaId);

            if (entrantInfo != null)
            {
                if (entrantInfo.Opponent is LocalHumanOpponent)
                {
                    switch (message.ShiftStatus)
                    {
                    case ShiftPotential.SHIFT_POTENTIAL_GOOD:
                        FlasherManager.Get().EnqueueFlasher(new FlasherBase(2103729003u));
                        break;

                    case ShiftPotential.SHIFT_POTENTIAL_PERFECT:
                        FlasherManager.Get().EnqueueFlasher(new FlasherBase(2156820684u));
                        break;

                    case ShiftPotential.SHIFT_POTENTIAL_OVERREV:
                        FlasherManager.Get().EnqueueFlasher(new FlasherBase(3187619114u));
                        Audio.PlaySound("DRAGRACE_OVERREV");
                        Audio.SendMixTrigger("DRAGMODE_OVERREV", -1);
                        break;
                    }
                }
                if (message.ShiftStatus == ShiftPotential.SHIFT_POTENTIAL_PERFECT)
                {
                    entrantInfo.Opponent.Vehicle.PerfectShift(0.4f, 1f);
                }
            }
        }
コード例 #17
0
        // Token: 0x06001322 RID: 4898 RVA: 0x0001B710 File Offset: 0x0001A710
        public Countdown(InstancedEvent evnt, EntrantInfo entrant)
        {
            LocalHumanOpponent localHumanOpponent = entrant.Opponent as LocalHumanOpponent;

            if (localHumanOpponent != null)
            {
                FlasherBase flasher  = new FlasherBase(1031321970u);
                FlasherBase flasher2 = new FlasherBase(2997328623u);
                FlasherBase flasher3 = new FlasherBase(3512998001u);
                FlasherBase flasher4 = new FlasherBase(2140919479u);
                FlasherBase flasher5 = new FlasherBase(2926395083u);
                base.Activities.Add(new DisplayFlasher(evnt, entrant, flasher, false));
                if (evnt.ConnectionSupport == ConnectionSupport.kConnectionOnline)
                {
                    base.Activities.Add(new ReadySync(0.0166666675f));
                }
                else
                {
                    base.Activities.Add(new Timer(new InArgument <float>(() => 3f)));
                }
                base.Activities.Add(new RemoveFlasher(evnt, entrant, flasher));
                base.Activities.Add(new DisplayFlasher(evnt, entrant, flasher2, false));
                base.Activities.Add(new Timer(new InArgument <float>(() => 1f)));
                base.Activities.Add(new RemoveFlasher(evnt, entrant, flasher2));
                base.Activities.Add(new DisplayFlasher(evnt, entrant, flasher3, false));
                base.Activities.Add(new Timer(new InArgument <float>(() => 1f)));
                base.Activities.Add(new RemoveFlasher(evnt, entrant, flasher3));
                base.Activities.Add(new DisplayFlasher(evnt, entrant, flasher4, false));
                base.Activities.Add(new Timer(new InArgument <float>(() => 1f)));
                base.Activities.Add(new RemoveFlasher(evnt, entrant, flasher4));
                base.Activities.Add(new DisplayFlasher(evnt, entrant, flasher5, false));
            }
        }
コード例 #18
0
        // Token: 0x0600194E RID: 6478 RVA: 0x0002D6F0 File Offset: 0x0002C6F0
        protected virtual float GetFractionLapCompleted(RouteScoringState state, EntrantInfo entrant, InstancedEvent evnt)
        {
            float num       = evnt.TrackLayout.GetLapStartToVehicleDistance(entrant.Opponent.Vehicle);
            float lapLength = evnt.TrackLayout.GetLapLength(state.CurrentLap);

            num = Math.Max(num, 0f);
            return(Math.Min(num / lapLength, 1f));
        }
コード例 #19
0
 // Token: 0x0600194F RID: 6479 RVA: 0x0002D73F File Offset: 0x0002C73F
 public virtual void OnRoutingFinished(EntrantInfo entrant)
 {
     Console.WriteLine("CS: {0} has finished routing.", entrant.Opponent.OpponentName);
     if (entrant.Opponent is LocalOpponent)
     {
         entrant.ScoringState.FinishReason = FinishReason.CrossedFinish;
     }
 }
コード例 #20
0
        // Token: 0x06001385 RID: 4997 RVA: 0x0001C47C File Offset: 0x0001B47C
        public PostEventScreen(Event evnt, EntrantInfo entrant, uint port) : base(evnt, entrant, port)
        {
            LocalHumanOpponent localHumanOpponent = base.Entrant.Opponent as LocalHumanOpponent;

            if (localHumanOpponent != null)
            {
                base.Event.CreateArbitratedPacket();
            }
        }
コード例 #21
0
 // Token: 0x0600137B RID: 4987 RVA: 0x0001C27C File Offset: 0x0001B27C
 public NavigateToGPSUpdater(InstancedEvent @event, EntrantInfo entrant, uint port) : base(@event, entrant, port)
 {
     this.currentTrigger = 0;
     this.useGPS         = base.Event.EventDef.GPSArrow();
     if (this.useGPS)
     {
         NavigateTo.NavigatePlayerTo(base.InstancedEvent.Route[this.currentTrigger].Position, Vector3.kZero, 0f, true, false, true);
     }
 }
コード例 #22
0
        // Token: 0x06001471 RID: 5233 RVA: 0x00021D18 File Offset: 0x00020D18
        protected override void OnMessage(OnPerfectLaunchAchieved message)
        {
            EntrantInfo entrantInfo = base.Event.FindEntrant(message.PersonaId);

            if (entrantInfo != null)
            {
                entrantInfo.Opponent.Vehicle.PerfectLaunch(message.Duration, message.Torque);
            }
        }
コード例 #23
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);
                }
            }
        }
コード例 #24
0
        // Token: 0x06001319 RID: 4889 RVA: 0x0001B5DC File Offset: 0x0001A5DC
        protected internal override void Execute(ActivityExecutionContext context)
        {
            EntrantInfo entrantInfo = base.Event.Entrants.Find((EntrantInfo t) => t.PersonaId == this.personaId.Value);

            if (entrantInfo == null)
            {
                return;
            }
            entrantInfo.RoutingState.CopyTo(base.Entrant.RoutingState);
        }
コード例 #25
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;
            }
        }
コード例 #26
0
        // Token: 0x060018D4 RID: 6356 RVA: 0x0002C6FC File Offset: 0x0002B6FC
        public bool IsPowerupRestricted(Restriction restriction, EntrantInfo entrantInfo, Event evnt)
        {
            if (entrantInfo == null)
            {
                return(true);
            }
            LocalHumanOpponent localHumanOpponent = entrantInfo.Opponent as LocalHumanOpponent;
            DragScoringState   dragScoringState   = entrantInfo.ScoringState as DragScoringState;

            if (dragScoringState == null)
            {
                return(true);
            }
            if (dragScoringState.EventDurationInSeconds < evnt.EventDef.PowerupBlackoutAtEventStart() && localHumanOpponent != null && !this.IsJumpStartActive(entrantInfo, evnt))
            {
                return(true);
            }
            switch (restriction)
            {
            case Restriction.kPowerupRestriction_NobodyHasFinishedEvent:
                foreach (EntrantInfo entrantInfo2 in evnt.Entrants)
                {
                    DragScoringState dragScoringState2 = entrantInfo2.ScoringState as DragScoringState;
                    if (dragScoringState2 != null && dragScoringState2.FractionCompleted > 0.95f)
                    {
                        return(true);
                    }
                }
                break;

            case Restriction.kPowerupRestriction_IAmNotInFirstPlace:
            {
                if (dragScoringState.Rank == 1)
                {
                    return(true);
                }
                int num = 999;
                foreach (EntrantInfo entrantInfo3 in evnt.Entrants)
                {
                    bool flag = entrantInfo3.Opponent.IsStatus(OpponentStatus.kOpponent_Disconnected);
                    RouteScoringState routeScoringState = entrantInfo3.ScoringState as RouteScoringState;
                    if (routeScoringState != null && routeScoringState.FinishReason == FinishReason.Unknown && !flag && routeScoringState.Rank < num)
                    {
                        num = routeScoringState.Rank;
                    }
                }
                if (num == dragScoringState.Rank)
                {
                    return(true);
                }
                break;
            }
            }
            return(false);
        }
コード例 #27
0
 // Token: 0x060019C7 RID: 6599 RVA: 0x0002F06F File Offset: 0x0002E06F
 public void Execute(Event evnt, EntrantInfo entrant, Collection trigger)
 {
     if (entrant == null || !(entrant.Opponent is LocalHumanOpponent))
     {
         return;
     }
     if (trigger.IsDerivedFrom(450779598u))
     {
         Cops.CreateRhinos(trigger.Distance(), trigger.NumRhinos());
     }
 }
コード例 #28
0
        // Token: 0x06001994 RID: 6548 RVA: 0x0002E2F4 File Offset: 0x0002D2F4
        public virtual ScoringState Prepare(EntrantInfo entrant, Event evnt)
        {
            TeamEscapeScoringState teamEscapeScoringState = new TeamEscapeScoringState();

            if (!(entrant.Opponent is LocalHumanOpponent))
            {
                teamEscapeScoringState.TrackerEntity = TrackerManager.Get().CreateEntity(entrant.Opponent);
                TrackerManager.Get().AddEntity(teamEscapeScoringState.TrackerEntity);
            }
            return(teamEscapeScoringState);
        }
コード例 #29
0
        // Token: 0x060018CC RID: 6348 RVA: 0x0002C1E0 File Offset: 0x0002B1E0
        protected virtual float GetFractionCompleted(DragScoringState state, EntrantInfo entrant, InstancedEvent evnt)
        {
            float num = evnt.TrackLayout.GetLapStartToVehicleDistance(entrant.Opponent.Vehicle);
            float lapStartToCheckpointDistance = evnt.TrackLayout.GetLapStartToCheckpointDistance(entrant.RoutingState.NextIndex);

            if (num > lapStartToCheckpointDistance)
            {
                num -= evnt.TrackLayout.GetLapLength(0);
            }
            num = Math.Max(num, 0f);
            return(Math.Min(num / evnt.TrackLayout.GetLength(evnt.NumLaps), 0.99999f));
        }
コード例 #30
0
        // Token: 0x060018A6 RID: 6310 RVA: 0x0002BCD8 File Offset: 0x0002ACD8
        public RoutingState HitTrigger(InstancedEvent evnt, EntrantInfo entrant, RoutingState s)
        {
            P2PRoutingState p2PRoutingState = s as P2PRoutingState;

            if (p2PRoutingState != null && p2PRoutingState.NextIndex < evnt.Route.Count)
            {
                p2PRoutingState.CurrentTarget = evnt.Route[p2PRoutingState.NextIndex++];
                return(p2PRoutingState);
            }
            s.CurrentTarget     = null;
            s.IsRoutingFinished = true;
            return(s);
        }