public void ClearBuff()
 {
     this.bRemoveList = false;
     for (int i = 0; i < this.SpawnedBuffList.get_Count(); i++)
     {
         BuffSkill buffSkill = this.SpawnedBuffList.get_Item(i);
         if (buffSkill != null)
         {
             buffSkill.Stop();
         }
     }
     if (this.protectRule != null)
     {
         this.protectRule.ClearBuff();
     }
     if (this.logicEffect != null)
     {
         this.logicEffect.ClearBuff();
     }
     for (int j = 0; j < this.SpawnedBuffList.get_Count(); j++)
     {
         BuffSkill buffSkill = this.SpawnedBuffList.get_Item(j);
         if (buffSkill != null)
         {
             buffSkill.Release();
         }
     }
     this.SpawnedBuffList.Clear();
     this.delBuffList.Clear();
     this.bRemoveList = true;
 }
Beispiel #2
0
        public bool Use()
        {
            BuffSkill inBuff = ClassObjPool <BuffSkill> .Get();

            inBuff.Init(this.BuffID);
            if (inBuff.cfgData == null)
            {
                inBuff.Release();
                return(false);
            }
            SkillUseContext context = new SkillUseContext(SkillSlotType.SLOT_SKILL_VALID, this.TargetActor.handle.ObjID);

            context.SetOriginator(this.SrcActor);
            if (!inBuff.Use(this.SrcActor, context))
            {
                inBuff.Release();
                return(false);
            }
            this.buffSkill = new BuffFense(inBuff);
            return(true);
        }
        public void ActionRemoveBuff(BuffSkill inBuff)
        {
            if (this.SpawnedBuffList.Remove(inBuff))
            {
                PoolObjHandle <BuffSkill> poolObjHandle = new PoolObjHandle <BuffSkill>(inBuff);
                this.protectRule.RemoveBuff(ref poolObjHandle);
                this.logicEffect.RemoveBuff(ref poolObjHandle);
                BuffChangeEventParam buffChangeEventParam = new BuffChangeEventParam(false, this.actorPtr, inBuff);
                Singleton <GameSkillEventSys> .GetInstance().SendEvent <BuffChangeEventParam>(GameSkillEventDef.AllEvent_BuffChange, this.actorPtr, ref buffChangeEventParam, GameSkillEventChannel.Channel_AllActor);

                inBuff.Release();
            }
        }
Beispiel #4
0
        public bool Use()
        {
            BuffSkill buffSkill = ClassObjPool <BuffSkill> .Get();

            buffSkill.Init(this.BuffID);
            if (buffSkill.cfgData == null)
            {
                buffSkill.Release();
                return(false);
            }
            SkillUseParam skillUseParam = default(SkillUseParam);

            skillUseParam.Init(SkillSlotType.SLOT_SKILL_VALID, this.TargetActor.get_handle().ObjID);
            skillUseParam.SetOriginator(this.SrcActor);
            if (!buffSkill.Use(this.SrcActor, ref skillUseParam))
            {
                buffSkill.Release();
                return(false);
            }
            this.buffSkill = new BuffFense(buffSkill);
            return(true);
        }
Beispiel #5
0
        public bool Use()
        {
            BuffSkill buffSkill = ClassObjPool <BuffSkill> .Get();

            buffSkill.Init(this.BuffID);
            if (buffSkill.cfgData == null)
            {
                buffSkill.Release();
                return(false);
            }
            SkillUseParam skillUseParam = default(SkillUseParam);

            skillUseParam.Init(SkillSlotType.SLOT_SKILL_VALID, this.TargetActor.handle.ObjID);
            skillUseParam.SetOriginator(this.SrcActor);
            skillUseParam.skillUseFrom = SKILL_USE_FROM_TYPE.SKILL_USE_FROM_TYPE_AREATRIGGER;
            skillUseParam.uiFromId     = (uint)this.BuffID;
            if (!buffSkill.Use(this.SrcActor, ref skillUseParam))
            {
                buffSkill.Release();
                return(false);
            }
            this.buffSkill = new BuffFense(buffSkill);
            return(true);
        }
        public void ActionRemoveBuff(BuffSkill inBuff)
        {
            if (this.SpawnedBuffList.Remove(inBuff))
            {
                PoolObjHandle <BuffSkill> handle = new PoolObjHandle <BuffSkill>(inBuff);
                this.protectRule.RemoveBuff(ref handle);
                BuffChangeEventParam param = new BuffChangeEventParam(false, base.actorPtr, inBuff);
                Singleton <GameSkillEventSys> .GetInstance().SendEvent <BuffChangeEventParam>(GameSkillEventDef.Event_BuffChange, base.actorPtr, ref param, GameSkillEventChannel.Channel_HostCtrlActor);

                if (((inBuff.cfgData.dwEffectType == 2) && (inBuff.cfgData.dwShowType != 2)) && (base.actorPtr != 0))
                {
                    LimitMoveEventParam param2 = new LimitMoveEventParam(0, inBuff.SkillID, base.actorPtr);
                    Singleton <GameSkillEventSys> .GetInstance().SendEvent <LimitMoveEventParam>(GameSkillEventDef.Event_CancelLimitMove, base.actorPtr, ref param2, GameSkillEventChannel.Channel_AllActor);
                }
                inBuff.Release();
            }
        }
Beispiel #7
0
        public bool SpawnBuff(PoolObjHandle <ActorRoot> inTargetActor, ref SkillUseParam inParam, int inSkillCombineId, bool bExtraBuff = false)
        {
            if ((inTargetActor == 0) || (inSkillCombineId <= 0))
            {
                return(false);
            }
            BuffSkill skill = ClassObjPool <BuffSkill> .Get();

            skill.Init(inSkillCombineId);
            skill.bExtraBuff    = bExtraBuff;
            inParam.TargetActor = inTargetActor;
            inParam.Instigator  = base.actor;
            bool flag = skill.Use(base.actorPtr, ref inParam);

            if (!flag)
            {
                skill.Release();
            }
            return(flag);
        }
Beispiel #8
0
        public bool SpawnBuff(PoolObjHandle <ActorRoot> inTargetActor, SkillUseContext inContext, int inSkillCombineId, bool bExtraBuff = false)
        {
            if (((inTargetActor == 0) || (inContext == null)) || (inSkillCombineId <= 0))
            {
                return(false);
            }
            BuffSkill skill = ClassObjPool <BuffSkill> .Get();

            skill.Init(inSkillCombineId);
            skill.bExtraBuff = bExtraBuff;
            skill.skillContext.Copy(inContext);
            skill.skillContext.TargetActor = inTargetActor;
            skill.skillContext.Instigator  = base.actor;
            bool flag = skill.Use(base.actorPtr);

            if (!flag)
            {
                skill.Release();
            }
            return(flag);
        }
        public bool SpawnBuff(PoolObjHandle <ActorRoot> inTargetActor, SkillUseContext inContext, int inSkillCombineId, ref BuffSkill newSkill, bool bExtraBuff = false)
        {
            if (!inTargetActor || inContext == null || inSkillCombineId <= 0)
            {
                newSkill = null;
                return(false);
            }
            BuffSkill buffSkill = ClassObjPool <BuffSkill> .Get();

            buffSkill.Init(inSkillCombineId);
            buffSkill.bExtraBuff = bExtraBuff;
            buffSkill.skillContext.Copy(inContext);
            buffSkill.skillContext.TargetActor = inTargetActor;
            buffSkill.skillContext.Instigator  = this.actor;
            newSkill = buffSkill;
            bool flag = buffSkill.Use(this.actorPtr);

            if (!flag)
            {
                buffSkill.Release();
                newSkill = null;
            }
            return(flag);
        }