internal AbstractCondition LoadConditions(XmlNode xmlNode) { AbstractCondition condition; switch (xmlNode.Name) { case "HealthPowerCondition": condition = new HealthPowerCondition(); condition.LoadData(xmlNode); return(condition); case "BuffCondition": condition = new BuffCondition(); condition.LoadData(xmlNode); return(condition); case "CombatCountCondition": condition = new CombatCountCondition(); condition.LoadData(xmlNode); return(condition); case "DistanceToTargetCondition": condition = new DistanceToTarget(); condition.LoadData(xmlNode); return(condition); case "SoulShardCountCondition": condition = new SoulShardCountCondition(); condition.LoadData(xmlNode); return(condition); case "HealthStoneCountCondition": condition = new HealthStoneCount(); condition.LoadData(xmlNode); return(condition); case "ComboPointsCondition": condition = new ComboPointsCondition(); condition.LoadData(xmlNode); return(condition); case "MageWaterCondition": condition = new MageWaterCondition(); condition.LoadData(xmlNode); return(condition); case "MageFoodCondition": condition = new MageFoodCondition(); condition.LoadData(xmlNode); return(condition); case "TempEnchantCondition": condition = new TempEnchantCondition(); condition.LoadData(xmlNode); return(condition); case "RuneCondition": condition = new RuneCondition(); condition.LoadData(xmlNode); return(condition); case "PotentialAddsCondition": condition = new PotentialAddsCondition(); condition.LoadData(xmlNode); return(condition); case "FunctionCondition": condition = new FunctionsCondition(); condition.LoadData(xmlNode); return(condition); case "TickerCondition": condition = new TickerCondition(); condition.LoadData(xmlNode); return(condition); case "PetCondition": condition = new PetCondition(); condition.LoadData(xmlNode); return(condition); case "SpellCondition": condition = new SpellCondition(); condition.LoadData(xmlNode); return(condition); } return(null); }
public override void Fire2(Skill skill) { //释放特效 //CastCondition cc = new CastCondition(skill,skill.Attribute.m_DelayTime); //Task.Task emitTask = new Task.Task("释放", cc); //tm.AddTask(emitTask); //TimeCondition singCond = new TimeCondition(skill.Attribute.m_DelayTime); //Task.Task singTask = new Task.Task("吟唱任务", singCond); //tm.AddTask(singTask); //WsTaskManager tm1 = new WsTaskManager(); //Buff b = skill.Attribute.m_BuffList[0]; //BuffCondition bc = new BuffCondition(b, b.m_BuffTime); //string tn = b.m_BuffName; ////Debug.Log(tn); //Task.Task tbc = new Task.Task(tn, bc); //tm1.AddTask(tbc); //tm1.Start(tn, delegate () //{ // b.RemoveBuff(); //}); //Buff b2 = skill.Attribute.m_BuffList[1]; //BuffCondition bc2 = new BuffCondition(b2, b2.m_BuffTime); //string tn2 = b2.m_BuffName; //Debug.Log(tn2); //Task.Task tbc2 = new Task.Task(tn2, bc); //tm.AddTask(tbc2); //tm.Start(tn2, delegate () //{ // b2.RemoveBuff(); //}); for (int i = 0; i < skill.Attribute.m_BuffList.Count; i++) { Buff b = skill.Attribute.m_BuffList[i]; b.InitBuff(skill.Caster); WsTaskManager wtm2 = new WsTaskManager(); string tn = "B buff生效任务:" + b.m_BuffName; BuffCondition bc = new BuffCondition(b, b.m_BuffTime); TaskSystem.Task tbc = new TaskSystem.Task(tn, bc); wtm2.AddTask(tbc); wtm2.Start("000 buff队列>" + (i + 1), delegate() { b.RemoveBuff(); Debug.Log("3.*****************Fight:" + obj_entity.Fight); }); } //TimeCondition singCond2 = new TimeCondition(skill.Attribute.m_DelayTime); //Task.Task singTask2 = new Task.Task("吟唱任务2", singCond2); //tm.AddTask(singTask2); //tm.Start("队列02", delegate () //{ // Debug.Log("队列02结束------------------------------------------"); //}); //BuffCondition bc = new BuffCondition(skill.Attribute.m_BuffList[0],5); //Task.Task tbc = new Task.Task("bc任务", bc); //tm.AddTask(tbc); //tm.Start("bc任务" + attribute.Name, delegate () //{ // skill.Attribute.m_BuffList[0].RemoveBuff(); //}); ////启动任务队列 //tm.Start("吟唱任务" + attribute.Name, delegate () //{ // Debug.Log("Hp:---------" + obj_entity.Hp); // skill.End(); //}); }