Exemplo n.º 1
0
        // Token: 0x06001261 RID: 4705 RVA: 0x0001A78C File Offset: 0x0001978C
        protected override void OnMessage(OnTriggerExit message)
        {
            InternalInstance internalInstance = InstanceCatalog.Get().Find(message.TriggerKey);
            uint             flag             = 64u;

            if (internalInstance != null)
            {
                Opponent opponent = this.manager.OpponentManager.FindByPersonaId(message.PersonaId);
                if (opponent != null)
                {
                    LocalHumanOpponent localHumanOpponent = opponent as LocalHumanOpponent;
                    if (localHumanOpponent != null)
                    {
                        uint num = 0u;
                        if (internalInstance.IsTypeOf(ObjType.kObjType_Trigger) && internalInstance.IsFlagSet(flag))
                        {
                            Collection collection = new Collection(internalInstance);
                            num = collection.TargetActivity().GetCollectionKey();
                        }
                        else if (internalInstance.IsTypeOf(ObjType.kObjType_Event))
                        {
                            num = internalInstance.GetCollection();
                        }
                        if (num != 0u)
                        {
                            EventDefinition eventDefinition = Engine.Get().EventRepository().FindByEventKey(num);
                            localHumanOpponent.Hud.OnExitEngagable(eventDefinition.EventId);
                        }
                    }
                }
            }
        }
        // Token: 0x06001329 RID: 4905 RVA: 0x0001B934 File Offset: 0x0001A934
        protected override void OnMessage(OnTriggerEnter message)
        {
            InternalInstance internalInstance = InstanceCatalog.Get().Find(message.TriggerKey);

            if (internalInstance != null && message.PersonaId == base.Event.Entrants[0].PersonaId && internalInstance.IsTypeOf(ObjType.kObjType_Trigger))
            {
                TreasureHuntScoringState treasureHuntScoringState = base.Event.Entrants[0].ScoringState as TreasureHuntScoringState;
                if (treasureHuntScoringState != null)
                {
                    for (uint num = 0u; num < base.Event.EventDef.Num_Coins(); num += 1u)
                    {
                        if (base.Event.EventDef.Coins(num).GetCollectionKey() == message.TriggerKey)
                        {
                            treasureHuntScoringState.CoinsCollected |= 1u << (int)num;
                            InternalEvent.UpdateCoinsCollected(treasureHuntScoringState.CoinsCollected);
                            break;
                        }
                    }
                }
                PointOfInterest pointOfInterest = base.Event.PointsOfInterest.Find((PointOfInterest p) => p.Key == message.TriggerKey);
                if (pointOfInterest != null)
                {
                    pointOfInterest.Disable();
                    pointOfInterest.Hide();
                    base.Event.Manager.PointsOfInterest.Dispose(pointOfInterest);
                }
                this.Close();
            }
        }
Exemplo n.º 3
0
        // Token: 0x060014F7 RID: 5367 RVA: 0x00025360 File Offset: 0x00024360
        private static InternalCollection Find(uint collectionKey)
        {
            InternalCollection internalCollection = InstanceCatalog.Get().Find(collectionKey);

            if (null == internalCollection)
            {
                internalCollection = new InternalCollection(1558879558u, collectionKey);
                internalCollection.Load();
                return(internalCollection);
            }
            return(internalCollection);
        }
Exemplo n.º 4
0
        // Token: 0x06001434 RID: 5172 RVA: 0x00020F1C File Offset: 0x0001FF1C
        protected override void OnMessage(OnCoinsRefreshed message)
        {
            int num = 0;

            for (int i = 0; i < 32; i++)
            {
                if (((ulong)message.CoinsCollected & (ulong)(1L << (i & 31))) != 0UL)
                {
                    num++;
                }
            }
            if ((ulong)message.NumCoins > (ulong)((long)num))
            {
                Random      random     = new Random(message.Seed);
                Collection  collection = new Collection(206219054u);
                List <uint> list       = new List <uint>();
                for (uint num2 = 0u; num2 < collection.Num_Children(); num2 += 1u)
                {
                    Collection collection2 = new Collection(collection.Children(num2).GetCollectionKey());
                    if (collection2.IsDerivedFrom(737698526u))
                    {
                        list.Add(collection2.GetCollection());
                    }
                }
                Collection collection3 = new Collection(list[random.Next(list.Count)]);
                if (message.ForcedBucket >= 0)
                {
                    collection3 = new Collection(list[message.ForcedBucket]);
                }
                for (uint num3 = 0u; num3 < collection3.Num_Children(); num3 += 1u)
                {
                    Collection collection4 = new Collection(collection3.Children(num3).GetCollectionKey());
                    if (collection4.IsDerivedFrom(2297065609u))
                    {
                        base.Event.EventDef.CoinRegion(new GCollectionKey(collection4.GetCollection()));
                    }
                }
                List <uint> list2 = new List <uint>();
                for (uint num4 = 0u; num4 < collection3.Num_Children(); num4 += 1u)
                {
                    Collection collection5 = new Collection(collection3.Children(num4).GetCollectionKey());
                    if (collection5.IsDerivedFrom(3452982098u))
                    {
                        list2.Add(collection5.GetCollection());
                    }
                }
                Attribute orClone = base.Event.EventDef.GetOrClone(479779663u);
                orClone.SetLength(Math.Min(message.NumCoins, (uint)list2.Count));
                int num5 = 0;
                while ((long)num5 < (long)((ulong)message.NumCoins) && list2.Count > 0)
                {
                    int index = random.Next(list2.Count);
                    if (((ulong)message.CoinsCollected & (ulong)(1L << (num5 & 31))) == 0UL)
                    {
                        base.Event.EventDef.Coins(new GCollectionKey(list2[index]), (uint)num5);
                    }
                    else
                    {
                        base.Event.EventDef.Coins(new GCollectionKey(0u), (uint)num5);
                    }
                    list2.RemoveAt(index);
                    num5++;
                }
                InstanceCatalog.Get().ReconnectInstances();
                this.Close();
            }
        }
Exemplo n.º 5
0
        // Token: 0x06001487 RID: 5255 RVA: 0x00022254 File Offset: 0x00021254
        public virtual void ActivateReferencedVehicles()
        {
            InternalInstance referrer = InstanceCatalog.Get().Find(base.Event.EventKey);

            this.ActivateReferenced(referrer);
        }