Example #1
0
        public override void TriggerLeave(PoolObjHandle <ActorRoot> src, ITrigger inTrigger)
        {
            GameObject inSrc   = src ? src.handle.gameObject : null;
            GameObject inAtker = (inTrigger != null) ? inTrigger.GetTriggerObj() : null;

            this.PlayAgeActionPrivate(AreaEventTrigger.EActTiming.Leave, inSrc, inAtker);
            AreaEventTrigger areaEventTrigger = inTrigger as AreaEventTrigger;

            if (areaEventTrigger != null)
            {
                RefParamOperator refParamOperator = areaEventTrigger._inActors.get_Item(src.handle.ObjID).refParams[this];
                if (refParamOperator != null)
                {
                    ListView <Action> refParamObject = refParamOperator.GetRefParamObject <ListView <Action> >("TriggerActionAgeEnterDura");
                    if (refParamObject != null)
                    {
                        ListView <Action> .Enumerator enumerator = refParamObject.GetEnumerator();
                        while (enumerator.MoveNext())
                        {
                            enumerator.Current.Stop(false);
                        }
                    }
                }
            }
            int num = this.RefObjList.Length;

            if (num > 0)
            {
                for (int i = 0; i < num; i++)
                {
                    this.PlayAgeActionPrivate(AreaEventTrigger.EActTiming.Leave, this.RefObjList[i], this.RefObjList[i]);
                }
            }
        }
Example #2
0
        public override void TriggerLeave(PoolObjHandle <ActorRoot> src, ITrigger inTrigger)
        {
            GameObject inSrc   = (src == 0) ? null : src.handle.gameObject;
            GameObject inAtker = (inTrigger == null) ? null : inTrigger.GetTriggerObj();

            this.PlayAgeActionPrivate(AreaEventTrigger.EActTiming.Leave, inSrc, inAtker);
            AreaEventTrigger trigger = inTrigger as AreaEventTrigger;

            if (trigger != null)
            {
                AreaEventTrigger.STriggerContext context = trigger._inActors[src.handle.ObjID];
                RefParamOperator @operator = context.refParams[this];
                if (@operator != null)
                {
                    ListView <AGE.Action> refParamObject = @operator.GetRefParamObject <ListView <AGE.Action> >("TriggerActionAgeEnterDura");
                    if (refParamObject != null)
                    {
                        ListView <AGE.Action> .Enumerator enumerator = refParamObject.GetEnumerator();
                        while (enumerator.MoveNext())
                        {
                            enumerator.Current.Stop(false);
                        }
                    }
                }
            }
        }
Example #3
0
        public void SendEvent(TriggerEventDef eventDef, AreaEventTrigger sourceTrigger, object param)
        {
            switch (eventDef)
            {
            case TriggerEventDef.ActorInside:
                if (this.OnActorInside != null)
                {
                    this.OnActorInside(sourceTrigger, param);
                }
                break;

            case TriggerEventDef.ActorEnter:
                if (this.OnActorEnter != null)
                {
                    this.OnActorEnter(sourceTrigger, param);
                }
                break;

            case TriggerEventDef.ActorLeave:
                if (this.OnActorLeave != null)
                {
                    this.OnActorLeave(sourceTrigger, param);
                }
                break;
            }
        }
        public override void TriggerLeave(PoolObjHandle <ActorRoot> src, ITrigger inTrigger)
        {
            GameObject inSrc   = (!src) ? null : src.get_handle().gameObject;
            GameObject inAtker = (inTrigger == null) ? null : inTrigger.GetTriggerObj();

            this.PlayAgeActionPrivate(AreaEventTrigger.EActTiming.Leave, inSrc, inAtker);
            AreaEventTrigger areaEventTrigger = inTrigger as AreaEventTrigger;

            if (areaEventTrigger != null)
            {
                RefParamOperator refParamOperator = areaEventTrigger._inActors.get_Item(src.get_handle().ObjID).refParams.get_Item(this);
                if (refParamOperator != null)
                {
                    ListView <Action> refParamObject = refParamOperator.GetRefParamObject <ListView <Action> >("TriggerActionAgeEnterDura");
                    if (refParamObject != null)
                    {
                        ListView <Action> .Enumerator enumerator = refParamObject.GetEnumerator();
                        while (enumerator.MoveNext())
                        {
                            enumerator.get_Current().Stop(false);
                        }
                    }
                }
            }
        }
Example #5
0
        private void OnActorEnter(AreaEventTrigger sourceTrigger, object param)
        {
            ActorRoot actorRoot = param as ActorRoot;

            if (actorRoot != null && sourceTrigger != null && sourceTrigger.ID == this.targetTriggerID && actorRoot.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Monster && actorRoot.TheActorMeta.ConfigId == this.targetMonsterID)
            {
                this.TriggerCount++;
                this.CheckResult();
            }
        }
Example #6
0
        public override void TriggerLeave(PoolObjHandle <ActorRoot> src, ITrigger inTrigger)
        {
            int leaveUniqueId = base.LeaveUniqueId;

            if (leaveUniqueId > 0)
            {
                new BufConsumer(leaveUniqueId, src, new PoolObjHandle <ActorRoot>(null)).Use();
            }
            int enterUniqueId = base.EnterUniqueId;

            if ((base.bStopWhenLeaving && (enterUniqueId > 0)) && (inTrigger != null))
            {
                AreaEventTrigger trigger = inTrigger as AreaEventTrigger;
                if (trigger != null)
                {
                    AreaEventTrigger.STriggerContext context = trigger._inActors[src.handle.ObjID];
                    RefParamOperator @operator = context.refParams[this];
                    if (@operator != null)
                    {
                        ListView <string> view       = new ListView <string>();
                        GameObject[]      refObjList = base.RefObjList;
                        if (refObjList != null)
                        {
                            int length = refObjList.Length;
                            for (int i = 0; i < length; i++)
                            {
                                view.Add(string.Format("TriggerActionBuffTar_{0}", i));
                            }
                        }
                        if (base.bSrc)
                        {
                            view.Add("TriggerActionBuffSrc");
                        }
                        if (base.bAtker)
                        {
                            view.Add("TriggerActionBuffAtker");
                        }
                        ListView <string> .Enumerator enumerator = view.GetEnumerator();
                        while (enumerator.MoveNext())
                        {
                            string current = enumerator.Current;
                            if (!string.IsNullOrEmpty(current))
                            {
                                BuffFense refParamObject = @operator.GetRefParamObject <BuffFense>(current);
                                if (refParamObject != null)
                                {
                                    refParamObject.Stop();
                                }
                            }
                        }
                    }
                }
            }
        }
Example #7
0
        public override void TriggerLeave(PoolObjHandle <ActorRoot> src, ITrigger inTrigger)
        {
            int leaveUniqueId = this.LeaveUniqueId;

            if (leaveUniqueId > 0)
            {
                BufConsumer bufConsumer = new BufConsumer(leaveUniqueId, src, new PoolObjHandle <ActorRoot>(null));
                bufConsumer.Use();
            }
            int enterUniqueId = this.EnterUniqueId;

            if (this.bStopWhenLeaving && enterUniqueId > 0 && inTrigger != null)
            {
                AreaEventTrigger areaEventTrigger = inTrigger as AreaEventTrigger;
                if (areaEventTrigger != null)
                {
                    RefParamOperator refParamOperator = areaEventTrigger._inActors.get_Item(src.handle.ObjID).refParams[this];
                    if (refParamOperator != null)
                    {
                        ListView <string> listView   = new ListView <string>();
                        GameObject[]      refObjList = this.RefObjList;
                        if (refObjList != null)
                        {
                            int num = refObjList.Length;
                            for (int i = 0; i < num; i++)
                            {
                                listView.Add(string.Format("TriggerActionBuffTar_{0}", i));
                            }
                        }
                        if (this.bSrc)
                        {
                            listView.Add("TriggerActionBuffSrc");
                        }
                        if (this.bAtker)
                        {
                            listView.Add("TriggerActionBuffAtker");
                        }
                        ListView <string> .Enumerator enumerator = listView.GetEnumerator();
                        while (enumerator.MoveNext())
                        {
                            string current = enumerator.Current;
                            if (!string.IsNullOrEmpty(current))
                            {
                                BuffFense refParamObject = refParamOperator.GetRefParamObject <BuffFense>(current);
                                if (refParamObject != null)
                                {
                                    refParamObject.Stop();
                                }
                            }
                        }
                    }
                }
            }
        }
Example #8
0
 private void onActorInside(AreaEventTrigger sourceTrigger, object param)
 {
     if (sourceTrigger.Mark == this.TargetArea)
     {
         if ((this.SubjectType == RES_BATTLE_TASK_SUBJECT.CAMP) && sourceTrigger.HasActorInside(new Func <PoolObjHandle <ActorRoot>, bool>(this, (IntPtr)this.< onActorInside > m__B)))
         {
             base.Current += (int)param;
         }
         else if ((this.SubjectType == RES_BATTLE_TASK_SUBJECT.ORGAN) && sourceTrigger.HasActorInside(new Func <PoolObjHandle <ActorRoot>, bool>(this, (IntPtr)this.< onActorInside > m__C)))
         {
             base.Current += (int)param;
         }
     }
 private void onActorInside(AreaEventTrigger sourceTrigger, object param)
 {
     if (sourceTrigger.Mark == this.TargetArea)
     {
         if (this.SubjectType == RES_BATTLE_TASK_SUBJECT.CAMP && sourceTrigger.HasActorInside((PoolObjHandle <ActorRoot> enr) => enr.handle.TheActorMeta.ActorCamp == (COM_PLAYERCAMP)this.SourceSubj))
         {
             base.Current += (int)param;
         }
         else if (this.SubjectType == RES_BATTLE_TASK_SUBJECT.ORGAN && sourceTrigger.HasActorInside((PoolObjHandle <ActorRoot> enr) => enr.handle.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Organ && enr.handle.TheActorMeta.ConfigId == this.SourceSubj))
         {
             base.Current += (int)param;
         }
     }
 }
Example #10
0
 private void onActorInside(AreaEventTrigger sourceTrigger, object param)
 {
     if (sourceTrigger.Mark == this.TargetArea)
     {
         if (this.SubjectType == null && sourceTrigger.HasActorInside((PoolObjHandle <ActorRoot> enr) => enr.get_handle().TheActorMeta.ActorCamp == this.SourceSubj))
         {
             base.Current += (int)param;
         }
         else if (this.SubjectType == 1 && sourceTrigger.HasActorInside((PoolObjHandle <ActorRoot> enr) => enr.get_handle().TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Organ && enr.get_handle().TheActorMeta.ConfigId == this.SourceSubj))
         {
             base.Current += (int)param;
         }
     }
 }
Example #11
0
 private void onActorInside(AreaEventTrigger sourceTrigger, object param)
 {
     if (sourceTrigger.Mark == this.TargetArea)
     {
         if ((this.SubjectType == RES_BATTLE_TASK_SUBJECT.CAMP) && sourceTrigger.HasActorInside((Func <PoolObjHandle <ActorRoot>, bool>)(enr => (enr.handle.TheActorMeta.ActorCamp == this.SourceSubj))))
         {
             base.Current += (int)param;
         }
         else if ((this.SubjectType == RES_BATTLE_TASK_SUBJECT.ORGAN) && sourceTrigger.HasActorInside((Func <PoolObjHandle <ActorRoot>, bool>)(enr => ((enr.handle.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Organ) && (enr.handle.TheActorMeta.ConfigId == this.SourceSubj)))))
         {
             base.Current += (int)param;
         }
     }
 }
Example #12
0
 public void BeginCollidedActorList(PoolObjHandle<ActorRoot> InActor, VCollisionShape collisionShape, bool bFilterEnemy, bool bFilterAlly, AreaEventTrigger InTriggerRef)
 {
     this.collidedActors.Clear();
     if (collisionShape != null)
     {
         this._coordActor = InActor;
         this._coordShape = collisionShape;
         this._coordFilterEnemy = bFilterEnemy;
         this._coordFilterAlly = bFilterAlly;
         this._coordTriggerRef = InTriggerRef;
         SceneManagement instance = Singleton<SceneManagement>.GetInstance();
         SceneManagement.Coordinate coord = new SceneManagement.Coordinate();
         instance.GetCoord(ref coord, collisionShape);
         instance.UpdateDirtyNodes();
         instance.ForeachActors(coord, this._coordHandler);
         this._coordShape = null;
         this._coordTriggerRef = null;
     }
 }
 private void BuildInternalWrappers()
 {
     if (this.PresetActWrapper != null)
     {
         this.m_internalActList = AreaEventTrigger.AddElement <TriggerActionWrapper>(this.m_internalActList, this.PresetActWrapper);
     }
     if (this.TriggerActions.Length > 0)
     {
         this.m_internalActList = AreaEventTrigger.AppendElements <TriggerActionWrapper>(this.m_internalActList, this.TriggerActions);
     }
     TriggerActionWrapper[] internalActList = this.m_internalActList;
     for (int i = 0; i < internalActList.Length; i++)
     {
         TriggerActionWrapper triggerActionWrapper = internalActList[i];
         if (triggerActionWrapper != null && triggerActionWrapper.GetActionInternal() == null)
         {
             triggerActionWrapper.Init(this.ID);
         }
     }
 }
Example #14
0
 private void ModifyHorizonMarks(PoolObjHandle <ActorRoot> src, ITrigger inTrigger, bool enterOrLeave)
 {
     if (src)
     {
         int num = enterOrLeave ? 1 : -1;
         AreaEventTrigger areaEventTrigger        = inTrigger as AreaEventTrigger;
         List <PoolObjHandle <ActorRoot> > actors = areaEventTrigger.GetActors((PoolObjHandle <ActorRoot> enr) => enr.handle.TheActorMeta.ActorCamp != src.handle.TheActorMeta.ActorCamp);
         for (int i = 0; i < actors.get_Count(); i++)
         {
             PoolObjHandle <ActorRoot> poolObjHandle = actors.get_Item(i);
             poolObjHandle.handle.HorizonMarker.AddShowMark(src.handle.TheActorMeta.ActorCamp, HorizonConfig.ShowMark.Jungle, num * 1);
             src.handle.HorizonMarker.AddShowMark(poolObjHandle.handle.TheActorMeta.ActorCamp, HorizonConfig.ShowMark.Jungle, num * 1);
         }
         COM_PLAYERCAMP[] othersCmp = BattleLogic.GetOthersCmp(src.handle.TheActorMeta.ActorCamp);
         for (int j = 0; j < othersCmp.Length; j++)
         {
             src.handle.HorizonMarker.AddHideMark(othersCmp[j], HorizonConfig.HideMark.Jungle, num * 1, false);
         }
     }
 }
Example #15
0
 private void OnActorLeave(AreaEventTrigger sourceTrigger, object param)
 {
 }
Example #16
0
 private void Start()
 {
     FuncRegion[] componentsInChildren = base.GetComponentsInChildren <FuncRegion>(true);
     for (int i = 0; i < componentsInChildren.Length; i++)
     {
         FuncRegion funcRegion = componentsInChildren[i];
         if (!(funcRegion == null))
         {
             if (funcRegion.enabled && funcRegion.gameObject.activeInHierarchy && funcRegion.gameObject.activeSelf)
             {
                 if (funcRegion is ReviveRegion)
                 {
                     this.reviveAreas.Add(funcRegion as ReviveRegion);
                 }
                 else if (funcRegion is SoldierRegion)
                 {
                     this.soldierAreas.Add(funcRegion as SoldierRegion);
                 }
                 else if (funcRegion is CommonSpawnGroup)
                 {
                     this.commonSpawnGroups.Add(funcRegion as CommonSpawnGroup);
                 }
                 else if (funcRegion is SpawnGroup)
                 {
                     this.spawnGroups.Add(funcRegion as SpawnGroup);
                 }
                 else if (funcRegion is WaypointsHolder)
                 {
                     this.waypointsList.Add(funcRegion as WaypointsHolder);
                 }
                 else if (funcRegion is AreaEventTrigger)
                 {
                     AreaEventTrigger areaEventTrigger = funcRegion as AreaEventTrigger;
                     this.triggerList.Add(areaEventTrigger);
                     GameObject gameObject = funcRegion.gameObject;
                     ListView <AreaEventTrigger> listView = null;
                     for (int j = this.objTriggerMultiMap.get_Count() - 1; j >= 0; j--)
                     {
                         MapWrapper.ObjTriggerKeyValuePair objTriggerKeyValuePair = this.objTriggerMultiMap.get_Item(j);
                         if (objTriggerKeyValuePair.obj == gameObject)
                         {
                             listView = objTriggerKeyValuePair.triggers;
                             break;
                         }
                     }
                     if (listView == null)
                     {
                         listView = new ListView <AreaEventTrigger>();
                         this.objTriggerMultiMap.Add(new MapWrapper.ObjTriggerKeyValuePair
                         {
                             obj      = gameObject,
                             triggers = listView
                         });
                     }
                     listView.Add(areaEventTrigger);
                 }
                 else if (funcRegion is DynamicChannel)
                 {
                     this.channelList.Add(funcRegion as DynamicChannel);
                 }
             }
         }
     }
     this.TrueMen = new List <PoolObjHandle <ActorRoot> >(Singleton <GameObjMgr> .GetInstance().SoldierActors);
 }
Example #17
0
        public void UpdateLogic(int delta)
        {
            Singleton <SceneManagement> .GetInstance().UpdateDirtyNodes();

            if (!this.m_bSoldierOverNum)
            {
                bool flag  = true;
                int  count = this.soldierAreas.get_Count();
                for (int i = 0; i < count; i++)
                {
                    SoldierRegion soldierRegion = this.soldierAreas.get_Item(i);
                    if (soldierRegion.isStartup)
                    {
                        SoldierSpawnResult soldierSpawnResult = soldierRegion.UpdateLogicSpec(delta);
                        flag &= (soldierSpawnResult != SoldierSpawnResult.ShouldWaitSoldierInterval);
                    }
                }
                if (flag)
                {
                    this.CheckSoldierOverNumUpper();
                }
            }
            else
            {
                this.CheckSoldierOverNumLower();
            }
            int count2 = this.commonSpawnGroups.get_Count();

            for (int j = 0; j < count2; j++)
            {
                CommonSpawnGroup commonSpawnGroup = this.commonSpawnGroups.get_Item(j);
                if (commonSpawnGroup.isStartup)
                {
                    commonSpawnGroup.UpdateLogic(delta);
                }
            }
            for (int k = 0; k < this.spawnGroups.get_Count(); k++)
            {
                SpawnGroup spawnGroup = this.spawnGroups.get_Item(k);
                if (spawnGroup.isStartup)
                {
                    spawnGroup.UpdateLogic(delta);
                }
            }
            int count3 = this.objTriggerMultiMap.get_Count();

            for (int l = 0; l < count3; l++)
            {
                MapWrapper.ObjTriggerKeyValuePair objTriggerKeyValuePair = this.objTriggerMultiMap.get_Item(l);
                GameObject obj = objTriggerKeyValuePair.obj;
                ListView <AreaEventTrigger> triggers = objTriggerKeyValuePair.triggers;
                if (obj != null && obj.activeSelf && (ulong)(Singleton <FrameSynchr> .get_instance().CurFrameNum % 4u) == (ulong)((long)(l % 4)))
                {
                    bool flag2  = false;
                    int  count4 = triggers.get_Count();
                    for (int m = 0; m < count4; m++)
                    {
                        AreaEventTrigger areaEventTrigger = triggers.get_Item(m);
                        if (areaEventTrigger != null && areaEventTrigger.isStartup)
                        {
                            areaEventTrigger.UpdateLogic(delta * 4);
                            flag2 |= areaEventTrigger.bDoDeactivating;
                        }
                    }
                    if (flag2)
                    {
                        for (int n = 0; n < count4; n++)
                        {
                            AreaEventTrigger areaEventTrigger2 = triggers.get_Item(n);
                            if (areaEventTrigger2 != null)
                            {
                                areaEventTrigger2.DoSelfDeactivating();
                            }
                        }
                    }
                }
            }
        }
Example #18
0
        public int GetActorsInCircle(VInt3 center, int radius, PoolObjHandle <ActorRoot>[] outResults, AreaEventTrigger InTriggerRef)
        {
            int   num  = 0;
            ulong num2 = (ulong)(radius * radius);
            List <PoolObjHandle <ActorRoot> > gameActors = Singleton <GameObjMgr> .GetInstance().GameActors;

            int count = gameActors.Count;

            for (int i = 0; i < count; i++)
            {
                if (num >= outResults.Length)
                {
                    return(num);
                }
                PoolObjHandle <ActorRoot> act = gameActors[i];
                VInt3 num6 = act.handle.location - center;
                if ((num6.sqrMagnitudeLong2D < num2) && ((null == InTriggerRef) || InTriggerRef.ActorFilter(ref act)))
                {
                    outResults[num++] = act;
                }
            }
            return(num);
        }
Example #19
0
        public List <PoolObjHandle <ActorRoot> > GetActorsInPolygon(GeoPolygon collisionPolygon, AreaEventTrigger InTriggerRef)
        {
            if (collisionPolygon == null)
            {
                return(null);
            }
            List <PoolObjHandle <ActorRoot> > list       = null;
            List <PoolObjHandle <ActorRoot> > gameActors = Singleton <GameObjMgr> .GetInstance().GameActors;

            int count = gameActors.Count;

            for (int i = 0; i < count; i++)
            {
                PoolObjHandle <ActorRoot> act = gameActors[i];
                if (((act != 0) && ((null == InTriggerRef) || InTriggerRef.ActorFilter(ref act))) && collisionPolygon.IsPointIn(act.handle.location))
                {
                    if (list == null)
                    {
                        list = new List <PoolObjHandle <ActorRoot> >();
                    }
                    list.Add(act);
                }
            }
            return(list);
        }
Example #20
0
        public void UpdateLogic(int delta)
        {
            Singleton <SceneManagement> .GetInstance().UpdateDirtyNodes();

            if (!this.m_bSoldierOverNum)
            {
                bool flag = true;
                for (int m = 0; m < this.soldierAreas.Count; m++)
                {
                    SoldierRegion region = this.soldierAreas[m];
                    if (region.isStartup)
                    {
                        SoldierSpawnResult result = region.UpdateLogicSpec(delta);
                        flag &= result != SoldierSpawnResult.ShouldWaitSoldierInterval;
                    }
                }
                if (flag)
                {
                    this.CheckSoldierOverNumUpper();
                }
            }
            else
            {
                this.CheckSoldierOverNumLower();
            }
            for (int i = 0; i < this.commonSpawnGroups.Count; i++)
            {
                CommonSpawnGroup group = this.commonSpawnGroups[i];
                if (group.isStartup)
                {
                    group.UpdateLogic(delta);
                }
            }
            for (int j = 0; j < this.spawnGroups.Count; j++)
            {
                SpawnGroup group2 = this.spawnGroups[j];
                if (group2.isStartup)
                {
                    group2.UpdateLogic(delta);
                }
            }
            int count = this.objTriggerMultiMap.Count;

            for (int k = 0; k < count; k++)
            {
                ObjTriggerKeyValuePair      pair     = this.objTriggerMultiMap[k];
                GameObject                  obj2     = pair.obj;
                ListView <AreaEventTrigger> triggers = pair.triggers;
                if (((obj2 != null) && obj2.activeSelf) && ((Singleton <FrameSynchr> .instance.CurFrameNum % 4) == (k % 4)))
                {
                    bool flag2 = false;
                    for (int n = 0; n < triggers.Count; n++)
                    {
                        AreaEventTrigger trigger = triggers[n];
                        if ((trigger != null) && trigger.isStartup)
                        {
                            trigger.UpdateLogic(delta * 4);
                            flag2 |= trigger.bDoDeactivating;
                        }
                    }
                    if (flag2)
                    {
                        for (int num7 = 0; num7 < triggers.Count; num7++)
                        {
                            AreaEventTrigger trigger2 = triggers[num7];
                            if (trigger2 != null)
                            {
                                trigger2.DoSelfDeactivating();
                            }
                        }
                    }
                }
            }
        }
Example #21
0
 private void Start()
 {
     foreach (FuncRegion region in base.GetComponentsInChildren <FuncRegion>(true))
     {
         if (((region == null) || (!region.enabled || !region.gameObject.activeInHierarchy)) || !region.gameObject.activeSelf)
         {
             continue;
         }
         if (region is ReviveRegion)
         {
             this.reviveAreas.Add(region as ReviveRegion);
             continue;
         }
         if (region is SoldierRegion)
         {
             this.soldierAreas.Add(region as SoldierRegion);
             continue;
         }
         if (region is CommonSpawnGroup)
         {
             this.commonSpawnGroups.Add(region as CommonSpawnGroup);
             continue;
         }
         if (region is SpawnGroup)
         {
             this.spawnGroups.Add(region as SpawnGroup);
             continue;
         }
         if (region is WaypointsHolder)
         {
             this.waypointsList.Add(region as WaypointsHolder);
             continue;
         }
         if (region is AreaEventTrigger)
         {
             AreaEventTrigger item = region as AreaEventTrigger;
             this.triggerList.Add(item);
             GameObject gameObject = region.gameObject;
             ListView <AreaEventTrigger> triggers = null;
             for (int i = this.objTriggerMultiMap.Count - 1; i >= 0; i--)
             {
                 ObjTriggerKeyValuePair pair = this.objTriggerMultiMap[i];
                 if (pair.obj == gameObject)
                 {
                     triggers = pair.triggers;
                     break;
                 }
             }
             if (triggers == null)
             {
                 triggers = new ListView <AreaEventTrigger>();
                 ObjTriggerKeyValuePair pair2 = new ObjTriggerKeyValuePair {
                     obj      = gameObject,
                     triggers = triggers
                 };
                 this.objTriggerMultiMap.Add(pair2);
             }
             triggers.Add(item);
             continue;
         }
         if (region is DynamicChannel)
         {
             this.channelList.Add(region as DynamicChannel);
         }
     }
     this.TrueMen = new List <PoolObjHandle <ActorRoot> >(Singleton <GameObjMgr> .GetInstance().SoldierActors);
 }