// 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(); } }
// 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); }
// 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(); } }
// Token: 0x06001487 RID: 5255 RVA: 0x00022254 File Offset: 0x00021254 public virtual void ActivateReferencedVehicles() { InternalInstance referrer = InstanceCatalog.Get().Find(base.Event.EventKey); this.ActivateReferenced(referrer); }