Ejemplo n.º 1
0
        private void OnDestroy()
        {
            if (Singleton <GameEventSys> .get_instance() != null)
            {
                Singleton <GameEventSys> .get_instance().RmvEventHandler <GameDeadEventParam>(GameEventDef.Event_ActorDead, new RefAction <GameDeadEventParam>(this.onActorDead));

                Singleton <GameEventSys> .get_instance().RmvEventHandler <SGroupDeadEventParam>(GameEventDef.Event_SpawnGroupDead, new RefAction <SGroupDeadEventParam>(this.onSpawnGroupDone));

                Singleton <GameEventSys> .get_instance().RmvEventHandler <DefaultGameEventParam>(GameEventDef.Event_FightPrepare, new RefAction <DefaultGameEventParam>(this.onFightPrepare));

                Singleton <GameEventSys> .get_instance().RmvEventHandler <HurtEventResultInfo>(GameEventDef.Event_ActorDamage, new RefAction <HurtEventResultInfo>(this.onActorDamage));

                Singleton <GameEventSys> .get_instance().RmvEventHandler <DefaultGameEventParam>(GameEventDef.Event_FightStart, new RefAction <DefaultGameEventParam>(this.onFightStart));

                Singleton <GameEventSys> .get_instance().RmvEventHandler <PoolObjHandle <ActorRoot> >(GameEventDef.Event_ActorInit, new RefAction <PoolObjHandle <ActorRoot> >(this.onActorInit));

                Singleton <GameEventSys> .get_instance().RmvEventHandler <DefaultGameEventParam>(GameEventDef.Event_ActorEnterCombat, new RefAction <DefaultGameEventParam>(this.onEnterCombat));

                Singleton <GameEventSys> .get_instance().RmvEventHandler <TalentLevelChangeParam>(GameEventDef.Event_TalentLevelChange, new RefAction <TalentLevelChangeParam>(this.onTalentLevelChange));
            }
            if (Singleton <GameSkillEventSys> .get_instance() != null)
            {
                Singleton <GameSkillEventSys> .get_instance().RmvEventHandler <ActorSkillEventParam>(GameSkillEventDef.AllEvent_UseSkill, new GameSkillEvent <ActorSkillEventParam>(this.onUseSkill));

                Singleton <GameSkillEventSys> .get_instance().RmvEventHandler <DefaultSkillEventParam>(GameSkillEventDef.Event_UseCanceled, new GameSkillEvent <DefaultSkillEventParam>(this.onUseSkillCanceled));
            }
            Singleton <EventRouter> .GetInstance().RemoveEventHandler <PoolObjHandle <ActorRoot>, int, bool, PoolObjHandle <ActorRoot> >("HeroGoldCoinInBattleChange", new Action <PoolObjHandle <ActorRoot>, int, bool, PoolObjHandle <ActorRoot> >(this.OnActorBattleCoinChanged));

            this.ClearDelayTimers();
            TriggerActionWrapper[] actionList = this.ActionList;
            for (int i = 0; i < actionList.Length; i++)
            {
                TriggerActionWrapper triggerActionWrapper = actionList[i];
                if (triggerActionWrapper != null)
                {
                    triggerActionWrapper.Destroy();
                }
            }
            CTriggerMatch[] triggerMatches = this.TriggerMatches;
            for (int j = 0; j < triggerMatches.Length; j++)
            {
                CTriggerMatch cTriggerMatch = triggerMatches[j];
                if (cTriggerMatch != null)
                {
                    TriggerActionWrapper[] actionList2 = cTriggerMatch.ActionList;
                    for (int k = 0; k < actionList2.Length; k++)
                    {
                        TriggerActionWrapper triggerActionWrapper2 = actionList2[k];
                        if (triggerActionWrapper2 != null)
                        {
                            triggerActionWrapper2.Destroy();
                        }
                    }
                }
            }
        }
        private void OnDestroy()
        {
            Singleton <GameEventSys> .instance.RmvEventHandler <DefaultGameEventParam>(GameEventDef.Event_ActorDestroy, new RefAction <DefaultGameEventParam>(this.onActorDestroy));

            this._inActorsCache = null;
            TriggerActionWrapper[] internalActList = this.m_internalActList;
            for (int i = 0; i < internalActList.Length; i++)
            {
                TriggerActionWrapper triggerActionWrapper = internalActList[i];
                if (triggerActionWrapper != null)
                {
                    triggerActionWrapper.Destroy();
                }
            }
        }