private void InitContext(Action _action) { PoolObjHandle <ActorRoot> actorHandle = _action.GetActorHandle(1); PoolObjHandle <ActorRoot> handle2 = _action.GetActorHandle(0); if ((actorHandle != 0) && (handle2 != 0)) { SkillUseContext refParamObject = _action.refParams.GetRefParamObject <SkillUseContext>("SkillContext"); BuffSkill skill = _action.refParams.GetRefParamObject <BuffSkill>("SkillObj"); ResDT_SkillFunc outSkillFunc = null; if ((skill != null) && skill.FindSkillFunc((int)this.SkillFuncType, out outSkillFunc)) { this.m_context.inTargetObj = actorHandle; this.m_context.inOriginator = handle2; this.m_context.inUseContext = refParamObject; this.m_context.inSkillFunc = outSkillFunc; this.m_context.LocalParams = new ResDT_IntParamArrayNode[6]; for (int i = 0; i < 6; i++) { this.m_context.LocalParams[i] = new ResDT_IntParamArrayNode(); this.m_context.LocalParams[i].iParam = 0; } this.m_context.inAction = _action; this.m_context.inBuffSkill = new PoolObjHandle <BuffSkill>(skill); this.m_context.inDoCount = 0; this.m_context.inOverlayCount = skill.GetOverlayCount(); this.m_context.inLastEffect = true; this.m_context.InitSkillFuncContext(); this.bInit = true; } } }
public override void Process(AGE.Action _action, Track _track) { PoolObjHandle <ActorRoot> actorHandle = _action.GetActorHandle(1); PoolObjHandle <ActorRoot> handle2 = _action.GetActorHandle(0); SkillUseContext refParamObject = _action.refParams.GetRefParamObject <SkillUseContext>("SkillContext"); BuffSkill skill = _action.refParams.GetRefParamObject <BuffSkill>("SkillObj"); ResDT_SkillFunc outSkillFunc = null; if ((skill != null) && skill.FindSkillFunc((int)this.SkillFuncType, out outSkillFunc)) { SSkillFuncContext inContext = new SSkillFuncContext { inTargetObj = actorHandle, inOriginator = handle2, inUseContext = refParamObject, inSkillFunc = outSkillFunc, inStage = ESkillFuncStage.Enter, inAction = new PoolObjHandle <AGE.Action>(_action), inBuffSkill = new PoolObjHandle <BuffSkill>(skill), inOverlayCount = skill.GetOverlayCount(), inLastEffect = false }; if (refParamObject != null) { inContext.inEffectCount = refParamObject.EffectCount; inContext.inMarkCount = refParamObject.MarkCount; } inContext.InitSkillFuncContext(); skill.SetBuffLevel(inContext.iSkillLevel); inContext.LocalParams = new SSkillFuncIntParam[6]; for (int i = 0; i < 6; i++) { inContext.LocalParams[i] = new SSkillFuncIntParam(); inContext.LocalParams[i].iParam = 0; } if (!Singleton <BattleLogic> .GetInstance().isRuning || Singleton <BattleLogic> .GetInstance().isGameOver) { return; } this.m_bSucceeded = Singleton <SkillFuncDelegator> .GetInstance().DoSkillFunc((int)this.SkillFuncType, ref inContext); } base.Process(_action, _track); }
public override void Process(Action _action, Track _track) { PoolObjHandle <ActorRoot> actorHandle = _action.GetActorHandle(1); PoolObjHandle <ActorRoot> actorHandle2 = _action.GetActorHandle(0); SkillUseContext refParamObject = _action.refParams.GetRefParamObject <SkillUseContext>("SkillContext"); BuffSkill refParamObject2 = _action.refParams.GetRefParamObject <BuffSkill>("SkillObj"); ResDT_SkillFunc inSkillFunc = null; if (refParamObject2 != null && refParamObject2.FindSkillFunc((int)this.SkillFuncType, out inSkillFunc)) { SSkillFuncContext sSkillFuncContext = default(SSkillFuncContext); sSkillFuncContext.inTargetObj = actorHandle; sSkillFuncContext.inOriginator = actorHandle2; sSkillFuncContext.inUseContext = refParamObject; sSkillFuncContext.inSkillFunc = inSkillFunc; sSkillFuncContext.inStage = ESkillFuncStage.Enter; sSkillFuncContext.inAction = new PoolObjHandle <Action>(_action); sSkillFuncContext.inBuffSkill = new PoolObjHandle <BuffSkill>(refParamObject2); sSkillFuncContext.inOverlayCount = refParamObject2.GetOverlayCount(); sSkillFuncContext.inLastEffect = false; if (refParamObject != null) { sSkillFuncContext.inEffectCount = refParamObject.EffectCount; sSkillFuncContext.inEffectCountInSingleTrigger = refParamObject.EffectCountInSingleTrigger; sSkillFuncContext.inMarkCount = refParamObject.MarkCount; } sSkillFuncContext.InitSkillFuncContext(); refParamObject2.SetBuffLevel(sSkillFuncContext.iSkillLevel); sSkillFuncContext.LocalParams = new SSkillFuncIntParam[8]; for (int i = 0; i < 8; i++) { sSkillFuncContext.LocalParams[i] = default(SSkillFuncIntParam); sSkillFuncContext.LocalParams[i].iParam = 0; } if (!Singleton <BattleLogic> .GetInstance().isRuning || Singleton <BattleLogic> .GetInstance().isGameOver) { return; } this.m_bSucceeded = Singleton <SkillFuncDelegator> .GetInstance().DoSkillFunc((int)this.SkillFuncType, ref sSkillFuncContext); } base.Process(_action, _track); }
private void InitContext(Action _action) { PoolObjHandle <ActorRoot> actorHandle = _action.GetActorHandle(1); PoolObjHandle <ActorRoot> actorHandle2 = _action.GetActorHandle(0); if (!actorHandle || !actorHandle2) { return; } SkillUseContext refParamObject = _action.refParams.GetRefParamObject <SkillUseContext>("SkillContext"); BuffSkill refParamObject2 = _action.refParams.GetRefParamObject <BuffSkill>("SkillObj"); ResDT_SkillFunc inSkillFunc = null; if (refParamObject2 != null && refParamObject2.FindSkillFunc(this.SkillFuncType, out inSkillFunc)) { this.m_context.inTargetObj = actorHandle; this.m_context.inOriginator = actorHandle2; this.m_context.inUseContext = refParamObject; this.m_context.inSkillFunc = inSkillFunc; this.m_context.LocalParams = new SSkillFuncIntParam[8]; for (int i = 0; i < 8; i++) { this.m_context.LocalParams[i] = default(SSkillFuncIntParam); this.m_context.LocalParams[i].iParam = 0; } this.m_context.inAction = new PoolObjHandle <Action>(_action); this.m_context.inBuffSkill = new PoolObjHandle <BuffSkill>(refParamObject2); this.m_context.inDoCount = 0; this.m_context.inOverlayCount = refParamObject2.GetOverlayCount(); this.m_context.inLastEffect = true; if (refParamObject != null) { this.m_context.inEffectCount = refParamObject.EffectCount; this.m_context.inEffectCountInSingleTrigger = refParamObject.EffectCountInSingleTrigger; this.m_context.inMarkCount = refParamObject.MarkCount; } this.m_context.InitSkillFuncContext(); refParamObject2.SetBuffLevel(this.m_context.iSkillLevel); this.bInit = true; } }