Esempio n. 1
0
        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);
        }
Esempio n. 2
0
    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();
        //});
    }