Пример #1
0
    /// <summary>
    /// Actives the cast skill. after success cast time
    /// </summary>
    /// <returns>The cast skill.</returns>
    /// <param name="skill">Skill.</param>
    IEnumerator activeCastSkill(SkillS skill)
    {
        //Debug.Log ("activeCast");
        yield return(new WaitForSeconds(skill.getCastTime()));

        skillList.activeSkill(skill, this);
    }
Пример #2
0
    //read xml
    public void getSkillList()
    {
        createSkillDic(skillDic);
        XmlDocument doc = new XmlDocument();

        doc.Load("player/player.xml");
        XmlNodeList skillListD = doc.GetElementsByTagName("skill");

        foreach (XmlNode skillXml in  skillListD)
        {
            string id    = skillXml ["id"].InnerText;
            int    level = int.Parse(skillXml ["level"].InnerText);
            //Skill tempSkill = new Skill(id,int.Parse(skillXml["level"].InnerText));
            SkillS tempSkill = new SkillS(id, level);
            skillDic [id].skillCreate(tempSkill);

            if (tempSkill.active)
            {
                activeSkillList.Add(tempSkill);
            }
            else
            {
                //Debug.Assert (!(tempSkill.getActive()));
                passiveSkillList.Add(tempSkill);
            }
        }
    }
Пример #3
0
 /// <summary>
 /// start cast time
 /// </summary>
 /// <param name="skill">Skill.</param>
 public void setCastStill(SkillS skill)
 {
     this.castSkill = skill;
     skillCoroutine = activeCastSkill(skill);
     StartCoroutine(skillCoroutine);
     //StopCoroutine (skillCoroutine);
 }
Пример #4
0
 public void activeSkill(SkillS skill, Creature creature)
 {
     foreach (SkillS i in activeSkillList)
     {
         if (i.id == skill.id)
         {
             skillDic [skill.id].activeSkill(i, creature);
         }
     }
 }
Пример #5
0
    IEnumerator targetingEnemy(SkillS skill)
    {
        state.Action = State.Actions.TargetEnemy;
        targetEnemy  = null;
        Debug.Log("targetEnemy");
        yield return(new WaitUntil(() => getTarget()));

        Debug.Log("targetEnemy yield");
        state.Action = State.Actions.Null;
        skillList.activeSkill(skill, this);
    }
Пример #6
0
 public void skillCreate(SkillS skill)
 {
     skill.maxLevel      = 1;
     skill.name          = "释放";
     skill.domain        = SkillS.Domain.Elemental;
     skill.treeName      = "Incantation";
     skill.shortDescribe = "释放符咒";
     skill.FullDescribe  = "释放符咒";
     skill.active        = true;
     skill.moveCast      = false;
     skill.setCastTime(0f);
     skill.cooldown = 0f;
     //Debug.Log ("I11101 create success");
 }
Пример #7
0
 public bool checkValid(SkillS s, Creature creature)
 {
     if (s.treeName.Equals("Incantation") && !s.id.Equals("I11101"))
     {
         if (creature.incantation.active == false)
         {
             return(false);
         }
         if (creature.incantation.maxIncan - s.rumExpand < 0)
         {
             return(false);
         }
     }
     return(true);
 }
Пример #8
0
 public void castSkill(SkillS skill, Creature creature)
 {
     if (skill.getCastTime() != 0)
     {
         if (skill.moveCast == false)
         {
             creature.setState(State.Actions.Casting);
         }
         else
         {
             creature.setState(State.Actions.MoveCast);
         }
         creature.setCastStill(skill);
     }
 }
Пример #9
0
 public void skillCreate(SkillS skill)
 {
     skill.maxLevel      = 3;
     skill.name          = "生成";
     skill.domain        = SkillS.Domain.Elemental;
     skill.treeName      = "Incantation";
     skill.shortDescribe = "制造符咒";
     skill.FullDescribe  = "制造符咒";
     skill.active        = true;
     skill.moveCast      = false;
     skill.setCastTime(1f);
     skill.cooldown    = 0f;
     skill.RequiredInt = 10;
     skill.rumValInt   = 30;         //rum base damage
     skill.rumValFloat = 8;          //cast Range
     //Debug.Log ("I11101 create success");
 }
Пример #10
0
 public void skillCreate(SkillS skill)
 {
     skill.maxLevel      = 10;
     skill.name          = "充能";
     skill.domain        = SkillS.Domain.Elemental;
     skill.treeName      = "Incantation";
     skill.shortDescribe = "向符咒内灌输元素,提高元素伤害";
     skill.FullDescribe  = "向符咒内灌输元素,提高元素伤害";
     skill.active        = true;
     skill.moveCast      = false;
     skill.setCastTime(1f);
     skill.cooldown    = 0f;
     skill.rumExpand   = 3;
     skill.RequiredInt = 12;
     skill.rumValInt   = 40;         //rum base damage
     //Debug.Log ("I11201 create success");
 }
Пример #11
0
 public void skillCreate(SkillS skill)
 {
     skill.maxLevel      = 10;
     skill.name          = "强击";
     skill.domain        = SkillS.Domain.Elemental;
     skill.treeName      = "Incantation";
     skill.shortDescribe = "符咒造成的所有元素伤害提高*x倍";
     skill.FullDescribe  = "符咒造成的所有元素伤害提高*x倍";
     skill.active        = true;
     skill.moveCast      = false;
     skill.setCastTime(1f);
     skill.cooldown    = 0f;
     skill.rumExpand   = 5;
     skill.RequiredInt = 20;
     skill.rumValFloat = 0.5f;               //rum base damage
     //Debug.Log ("I11201 create success");
 }
Пример #12
0
 public void castSkill(SkillS skill, Creature creature)
 {
     //Debug.Log ("casting"+skill.name+" "+ skill.getCastTime());
     if (skill.getCastTime() != 0)
     {
         if (skill.moveCast == false)
         {
             creature.setState(State.Actions.Casting);
         }
         else
         {
             creature.setState(State.Actions.MoveCast);
         }
         Debug.Log("setC");
         creature.setCastStill(skill);
     }
 }
Пример #13
0
 public void skillCreate(SkillS skill)
 {
     skill.maxLevel      = 5;
     skill.name          = "扇域";
     skill.domain        = SkillS.Domain.Elemental;
     skill.treeName      = "Incantation";
     skill.shortDescribe = "符咒命中目标后会对以目标身后90度距离3内的敌人造成伤害\n";
     skill.FullDescribe  = "符咒命中目标后会对以目标身后90度距离3内的敌人造成伤害\n";
     skill.active        = true;
     skill.moveCast      = false;
     skill.setCastTime(1f);
     skill.cooldown    = 0f;
     skill.rumExpand   = 3;
     skill.RequiredDex = 12;
     skill.RequiredInt = 14;
     skill.rumValInt   = 3;       //fan arc radius
     //Debug.Log ("I11201 create success");
 }
Пример #14
0
 public void skillCreate(SkillS skill)
 {
     skill.maxLevel      = 5;
     skill.name          = "贯穿";
     skill.domain        = SkillS.Domain.Elemental;
     skill.treeName      = "Incantation";
     skill.shortDescribe = "符咒在击中一定数量的敌人后消失";
     skill.FullDescribe  = "符咒在击中一定数量的敌人后消失";
     skill.active        = true;
     skill.moveCast      = false;
     skill.setCastTime(2f);
     skill.cooldown    = 0f;
     skill.rumExpand   = 3;
     skill.RequiredStr = 15;
     skill.RequiredInt = 15;
     skill.rumValInt   = 1;      // rum penetration number
     //Debug.Log ("I11201 create success");
 }
Пример #15
0
 public bool newLevelValid(SkillS skill, Creature creature)
 {
     if (skill.currentLevel == 0)
     {
         if (creature.getAttribute().getIntelligence() >= 20)
         {
             return(true);
         }
     }
     else
     {
         if (creature.getAttribute().getIntelligence() >= 20 + skill.currentLevel * 9)
         {
             return(true);
         }
     }
     return(false);
 }
Пример #16
0
 public bool newLevelValid(SkillS skill, Creature creature)
 {
     if (skill.currentLevel == 0)
     {
         if (creature.getAttribute().getIntelligence() >= 14 &&
             creature.getAttribute().getDexterity() >= 12)
         {
             return(true);
         }
     }
     else
     {
         if (creature.getAttribute().getIntelligence() >= 14 + skill.currentLevel * 4 &&
             creature.getAttribute().getDexterity() >= 12 + skill.currentLevel * 5)
         {
             return(true);
         }
     }
     return(false);
 }
Пример #17
0
 public void levelUpSkill(SkillS skill)
 {
     skill.currentLevel++;
     skill.rumValFloat += 0.5f;
 }
Пример #18
0
 public void activeSkill(SkillS skill, Creature creature)
 {
     creature.initIncantation();
     creature.incantation.elementDamage += skill.rumValInt;
     creature.incantation.castRange     += skill.rumValFloat;
 }
Пример #19
0
 public void activeSkill(SkillS skill, Creature creature)
 {
     creature.incantation.damageMultiply += skill.rumValFloat;
 }
Пример #20
0
 public void levelUpSkill(SkillS skill)
 {
     skill.currentLevel++;
     skill.increaseDecreasedCastTimePercent(0.5f);
 }
Пример #21
0
 public void levelUpSkill(SkillS skill)
 {
     skill.currentLevel++;
     skill.rumValInt += 30;
 }
Пример #22
0
 public void castSkill(SkillS skill, Creature creature)
 {
     creature.locateEnemyTarget(skill);
 }
Пример #23
0
 public void activeSkill(SkillS skill, Creature creature)
 {
     creature.incantation.elementDamage += skill.rumValInt;
     creature.incantation.maxIncan      -= skill.rumExpand;
 }
Пример #24
0
 public void activeSkill(SkillS skill, Creature creature)
 {
     creature.incantation.penetration += skill.rumValInt;
 }
Пример #25
0
 public void activeSkill(SkillS skill, Creature creature)
 {
     creature.incantation.cast(creature.targetEnemy);
     creature.incantation = null;
 }
Пример #26
0
 public bool newLevelValid(SkillS skill, Creature creature)
 {
     return(false);
 }
Пример #27
0
 public void levelUpSkill(SkillS skill)
 {
 }
Пример #28
0
    /*public void castIncantation(Creature creature){
     *      //draw arrow or target
     *      //wait till cancel or active
     *      //active
     *      //state change to Target
     *      getEnemyTarget()
     *      incantation.cast();
     *
     * }*/

    public void locateEnemyTarget(SkillS skill)
    {
        this.castSkill = skill;
        skillCoroutine = targetingEnemy(skill);
        StartCoroutine(skillCoroutine);
    }
Пример #29
0
 public void activeSkill(SkillS skill, Creature creature)
 {
     creature.incantation.fanRadius += skill.rumValInt;
 }