예제 #1
0
 public GameDeadEventParam(PoolObjHandle <ActorRoot> _src, PoolObjHandle <ActorRoot> _atker, PoolObjHandle <ActorRoot> _orignalAtker, PoolObjHandle <ActorRoot> _logicAtker, bool bFlag, SpawnPoint _spawnPoint = null)
 {
     this.src              = _src;
     this.atker            = _atker;
     this.orignalAtker     = _orignalAtker;
     this.logicAtker       = _logicAtker;
     this.bImmediateRevive = bFlag;
     this.spawnPoint       = _spawnPoint;
 }
예제 #2
0
        public override RefParamOperator TriggerEnter(PoolObjHandle <ActorRoot> src, PoolObjHandle <ActorRoot> atker, ITrigger inTrigger, object prm)
        {
            List <PoolObjHandle <ActorRoot> > list = new List <PoolObjHandle <ActorRoot> >();

            if (base.bSrc && (src != 0))
            {
                list.Add(src);
            }
            if (base.bAtker && (atker != 0))
            {
                list.Add(atker);
            }
            if ((base.RefObjList != null) && (base.RefObjList.Length > 0))
            {
                foreach (GameObject obj2 in base.RefObjList)
                {
                    if (obj2 != null)
                    {
                        SpawnPoint componentInChildren = obj2.GetComponentInChildren <SpawnPoint>();
                        if (componentInChildren != null)
                        {
                            List <PoolObjHandle <ActorRoot> > .Enumerator enumerator = componentInChildren.GetSpawnedList().GetEnumerator();
                            while (enumerator.MoveNext())
                            {
                                PoolObjHandle <ActorRoot> current = enumerator.Current;
                                if (current != 0)
                                {
                                    list.Add(current);
                                }
                            }
                        }
                        else
                        {
                            PoolObjHandle <ActorRoot> actorRoot = ActorHelper.GetActorRoot(obj2);
                            if (actorRoot != 0)
                            {
                                list.Add(actorRoot);
                            }
                        }
                    }
                }
            }
            List <PoolObjHandle <ActorRoot> > .Enumerator enumerator2 = list.GetEnumerator();
            while (enumerator2.MoveNext())
            {
                if ((enumerator2.Current != 0) && !this.HasActor(enumerator2.Current))
                {
                    this.SetHudText(Utility.GetBubbleText((uint)base.EnterUniqueId), enumerator2.Current);
                    if (base.TotalTime > 0)
                    {
                        int num2 = Singleton <CTimerManager> .GetInstance().AddTimer(base.TotalTime, 1, new CTimer.OnTimeUpHandler(this.OnTimeUp), true);

                        ActorRootInfo item = new ActorRootInfo {
                            Actor = enumerator2.Current,
                            Id    = num2
                        };
                        this.m_actorTimerMap.Add(item);
                    }
                }
            }
            return(null);
        }