public void OnDead(PoolObjHandle <ActorRoot> _attack) { if (this.clearRule != null) { this.clearRule.CheckBuffNoClear(RES_SKILLFUNC_CLEAR_RULE.RES_SKILLFUNC_CLEAR_DEAD); } BuffSkill inBuff = null; ResDT_SkillFunc outSkillFunc = null; for (int i = 0; i < this.SpawnedBuffList.Count; i++) { inBuff = this.SpawnedBuffList[i]; if ((inBuff != null) && inBuff.FindSkillFunc(0x20, out outSkillFunc)) { int reviveTime = inBuff.CustomParams[0]; int reviveLife = inBuff.CustomParams[1]; bool autoReset = inBuff.CustomParams[2] == 1; bool bBaseRevive = inBuff.CustomParams[3] == 0; bool bCDReset = inBuff.CustomParams[4] == 1; base.actor.ActorControl.SetReviveContext(reviveTime, reviveLife, autoReset, bBaseRevive, bCDReset); this.RemoveBuff(inBuff); } if ((((base.actor.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Hero) && (_attack != 0)) && ((_attack.handle.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Hero) && (inBuff != null))) && ((inBuff.cfgData != null) && (inBuff.cfgData.bIsInheritByKiller == 1))) { this.RemoveBuff(inBuff); SkillUseContext inContext = new SkillUseContext(); inContext.SetOriginator(_attack); _attack.handle.SkillControl.SpawnBuff(_attack, inContext, inBuff.SkillID, true); } } this.OnDeadExtraEffect(_attack); }
private void OnDeadExtraEffect(PoolObjHandle <ActorRoot> _attack) { BuffSkill skill = null; ResDT_SkillFunc outSkillFunc = null; if (_attack != 0) { for (int i = 0; i < _attack.handle.BuffHolderComp.SpawnedBuffList.Count; i++) { skill = _attack.handle.BuffHolderComp.SpawnedBuffList[i]; if ((skill != null) && skill.FindSkillFunc(0x21, out outSkillFunc)) { int inSkillCombineId = skill.CustomParams[0]; int num3 = skill.CustomParams[1]; int num4 = skill.CustomParams[2]; int typeMask = skill.CustomParams[3]; int typeSubMask = skill.CustomParams[4]; if ((num4 != 0) && this.CheckTargetSubType(typeMask, typeSubMask)) { SkillUseContext inContext = new SkillUseContext(); inContext.SetOriginator(_attack); _attack.handle.SkillControl.SpawnBuff(_attack, inContext, inSkillCombineId, true); } } } } }
private void TriggerAction(PoolObjHandle <ActorRoot> _originator) { SkillUseContext context = new SkillUseContext(); context.SetOriginator(_originator); context.TargetActor = this.sourceActor; this.Use(_originator, context); }
private void OnDamageExtraEffect(PoolObjHandle <ActorRoot> _attack, SkillSlotType _slotType) { BuffSkill inBuff = null; ResDT_SkillFunc outSkillFunc = null; if (_attack != 0) { for (int i = 0; i < _attack.handle.BuffHolderComp.SpawnedBuffList.Count; i++) { inBuff = _attack.handle.BuffHolderComp.SpawnedBuffList[i]; if ((inBuff != null) && inBuff.FindSkillFunc(0x21, out outSkillFunc)) { bool flag = false; bool flag2 = true; int inSkillCombineId = inBuff.CustomParams[0]; int num3 = inBuff.CustomParams[1]; int num4 = inBuff.CustomParams[2]; int typeMask = inBuff.CustomParams[3]; int typeSubMask = inBuff.CustomParams[4]; int num7 = inBuff.CustomParams[5]; if ((num4 == 0) && this.CheckTargetSubType(typeMask, typeSubMask)) { if (num3 == 0) { flag = true; } else if ((num3 & (((int)1) << _slotType)) > 0) { flag = true; } if (num7 > 0) { if ((Singleton <FrameSynchr> .GetInstance().LogicFrameTick - inBuff.controlTime) >= num7) { flag2 = true; } else { flag2 = false; } } if (flag && flag2) { SkillUseContext inContext = new SkillUseContext(); inContext.SetOriginator(_attack); _attack.handle.SkillControl.SpawnBuff(base.actorPtr, inContext, inSkillCombineId, true); inBuff.controlTime = Singleton <FrameSynchr> .GetInstance().LogicFrameTick; if (num7 == -1) { _attack.handle.BuffHolderComp.RemoveBuff(inBuff); } } } } } } }
private int ResistDeadDamage(ref HurtDataInfo _hurt, int _hurtValue) { BuffSkill inBuff = null; ResDT_SkillFunc outSkillFunc = null; if ((this.buffHolder != null) && (this.buffHolder.actor != null)) { ActorRoot actor = this.buffHolder.actor; for (int i = 0; i < actor.BuffHolderComp.SpawnedBuffList.Count; i++) { inBuff = actor.BuffHolderComp.SpawnedBuffList[i]; if ((inBuff != null) && inBuff.FindSkillFunc(0x36, out outSkillFunc)) { int inSkillCombineId = inBuff.CustomParams[0]; if (inBuff.CustomParams[1] == 0) { if (actor.ValueComponent.actorHp <= _hurtValue) { SkillUseContext inContext = new SkillUseContext(); inContext.SetOriginator(_hurt.atker); actor.SkillControl.SpawnBuff(actor.SelfPtr, inContext, inSkillCombineId, true); this.buffHolder.RemoveBuff(inBuff); DefaultGameEventParam prm = new DefaultGameEventParam(this.buffHolder.actorPtr, _hurt.atker); Singleton <GameEventSys> .instance.SendEvent <DefaultGameEventParam>(GameEventDef.Event_ActorImmuneDeadHurt, ref prm); _hurtValue = 0; } } else { SkillUseContext context2 = new SkillUseContext(); context2.SetOriginator(_hurt.atker); actor.SkillControl.SpawnBuff(actor.SelfPtr, context2, inSkillCombineId, true); this.buffHolder.RemoveBuff(inBuff); _hurtValue = 0; } } if (((_hurt.atkSlot == SkillSlotType.SLOT_SKILL_0) && (inBuff != null)) && inBuff.FindSkillFunc(0x43, out outSkillFunc)) { int num4 = inBuff.CustomParams[0]; int num5 = inBuff.CustomParams[4]; switch (num4) { case 1: _hurtValue = (_hurtValue * (0x2710 - num5)) / 0x2710; break; case 0: _hurtValue -= num5; break; } } } } return(_hurtValue); }
private void EnableEquipBuff(CEquipBuffInfo equipBuffInfo) { if (!equipBuffInfo.m_isEnabled) { SkillUseContext inContext = new SkillUseContext(); inContext.SetOriginator(base.actorPtr); base.actor.SkillControl.SpawnBuff(base.actorPtr, inContext, (int)equipBuffInfo.m_buffID, false); equipBuffInfo.m_isEnabled = true; } }
public void RecoverClearBuff() { int inSkillCombineId = 0; for (int i = 0; i < this.CacheBufferList.Count; i++) { inSkillCombineId = this.CacheBufferList[i]; SkillUseContext inContext = new SkillUseContext(); inContext.SetOriginator(this.buffHolder.actorPtr); this.buffHolder.actor.SkillControl.SpawnBuff(this.buffHolder.actorPtr, inContext, inSkillCombineId, false); } this.CacheBufferList.Clear(); }
protected void Trigger() { SkillUseContext context = new SkillUseContext(this.passiveSkill.SlotType); context.SetOriginator(this.sourceActor); if (this.triggerActor == 0) { context.TargetActor = this.sourceActor; } else { context.TargetActor = this.triggerActor; } this.passiveSkill.Use(this.sourceActor, context); this.deltaTime = this.cfgData.iCoolDown; }
public override bool Use(PoolObjHandle <ActorRoot> user, SkillUseContext context) { if (context != null) { context.SetOriginator(user); context.Instigator = user; } if (!base.Use(user, context)) { return(false); } this.skillAbort.InitAbort(false); this.bDelayAbortSkill = false; this.bProtectAbortSkill = false; if ((context != null) && (context.SlotType == SkillSlotType.SLOT_SKILL_0)) { this.SetSkillSpeed(user); } return(true); }
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); }