public override void Respawn() { base.Respawn(); pbTemp = skillController.pBehaviours[0]; pBehaviourTemp = new ArrayList(); pControllerTemp = new ArrayList(); }
public override void Notify(NTGBattlePassive.Event e, object param) { base.Notify(e, param); if (e == NTGBattlePassive.Event.Shoot) { var p = (NTGBattlePassive.EventShootParam)param; if (p.shooter == owner && (p.controller.type == NTGBattleSkillType.FriendlyPassive || p.controller.type == NTGBattleSkillType.FriendlySkill || p.controller.type == NTGBattleSkillType.HostilePassive || p.controller.type == NTGBattleSkillType.HostileSkill) && skillController.inCd <= 0) { addMagicDamage = true; count = 4; StartCoroutine(doCount()); } } else if (e == NTGBattlePassive.Event.Hit) { var p = (NTGBattlePassive.EventHitParam)param; if (p.behaviour.type == NTGBattleSkillType.Attack && p.shooter == owner && addMagicDamage && p.target.alive) { addMagicDamage = false; StopAllCoroutines(); p.target.AddPassive(pbTemp.passiveName, owner, skillController); skillController.StartCD(); } } else if (e == NTGBattlePassive.Event.PassiveAdd) { var p = (NTGBattlePassiveSkillBehaviour)param; pBehaviourTemp.Add(p.skillController.pBehaviours[0]); pControllerTemp.Add(p.skillController); //Debug.Log("Length " + pBehaviourTemp.Count + " " + p.passiveName); } else if (e == NTGBattlePassive.Event.PassiveRemove) { if (pBehaviourTemp.Count != 0) { pbTemp = (NTGBattlePassiveSkillBehaviour)pBehaviourTemp[0]; pBehaviourTemp.Remove(pBehaviourTemp[0]); skillController = (NTGBattlePassiveSkillController)pControllerTemp[0]; pControllerTemp.Remove(pControllerTemp[0]); //Debug.Log("Remove " + pBehaviourTemp.Count); } else { pBehaviourTemp.Clear(); pControllerTemp.Clear(); Release(); } } }