Exemplo n.º 1
0
 public void CreateSkillArea(Skill skill)
 {
     skillConf  = XMLData.SkillConfigs.Find(a => a.id == skill.id);
     skillLevel = XMLData.SkillLevelConfs.Find(a => a.id == skill.id && a.level == skill.level);
     if (gas < skillLevel.gas)
     {
         return;
     }
     SkillUse.GetSkillArea(skillConf, skillLevel);
 }
Exemplo n.º 2
0
    public void Init(Skill skill)
    {
        this.skill = skill;
        SkillConf      conf      = XMLData.SkillConfigs.Find(a => a.id == skill.id);
        SkillLevelConf levelConf = XMLData.SkillLevelConfs.Find(a => a.id == skill.id && a.level == skill.level);

        nameLabel.text = conf.skillName;
        item.Init(skill);
        level.text = "LV." + skill.level;
        string text = string.Format(conf.des, Mathf.Abs(levelConf.original).ToString(), levelConf.multiple.ToString());

        des.text = text;
    }
Exemplo n.º 3
0
 public void Create(int level, CharacterConf character)
 {
     IsNPC      = true;
     this.id    = character.id;
     this.level = level;
     speed      = character.speed + ((level - 1) * character.levelSpeed);
     strength   = character.strength + ((level - 1) * character.levelStrength);
     energy     = character.energy + ((level - 1) * character.levelEnergy);
     blood      = character.blood + ((level - 1) * character.levelBlood) + (strength * 20);
     totalBlood = blood;
     moves      = speed / 5;
     roundGas   = energy / 5;
     gas        = roundGas;
     totalGas   = roundGas * 2;
     skillConf  = XMLData.SkillConfigs.Find(a => a.id == character.skill);
     skillLevel = XMLData.SkillLevelConfs.Find(a => a.id == character.skill);
 }
Exemplo n.º 4
0
    public void GetSkillArea(SkillConf skill, SkillLevelConf skillLevel)
    {
        mapp = GameManage.Instance.mapPoints;
        rangeList.Clear();
        damageList.Clear();
        this.skill      = skill;
        this.skillLevel = skillLevel;
        switch (skill.skillAreaType)
        {
        case SkillAreaType.Line:
            GetArea();
            ShowRange();
            break;

        case SkillAreaType.Self:
            GetSelf();
            ShowSkill();
            break;

        case SkillAreaType.OuterCircle:
            GetArea();
            ShowRange();
            break;

        case SkillAreaType.Circle:
            GetArea();
            foreach (SkillPoint p in rangeList)
            {
                SkillPoint point = new SkillPoint(p.x, p.y, PointType.LEFT);
                damageList.Add(point);
            }
            ShowSkill();
            break;

        case SkillAreaType.Point:
            GetArea();
            ShowRange();
            break;
        }
    }
Exemplo n.º 5
0
    public static float CalculateDamage(Character character, SkillLevelConf skill, SkillConf skillConf)
    {
        int skillAddition = 0;

        switch (skillConf.skillAdditionType)
        {
        case SkillAdditionType.energy:
            skillAddition = character.energy;
            break;

        case SkillAdditionType.strength:
            skillAddition = character.strength;
            break;

        case SkillAdditionType.speed:
            skillAddition = character.speed;
            break;

        case SkillAdditionType.level:
            skillAddition = character.level;
            break;
        }
        return(skill.original + skill.multiple * skillAddition);
    }
Exemplo n.º 6
0
    public static void Damage(Character character, int damage, SkillEffectType skillEffect, SkillLevelConf skillLevel)
    {
        Debug.LogError("Damage   " + damage + "name  " + character.name);
        switch (skillEffect)
        {
        case SkillEffectType.blood:
            if (character.blood - damage <= 0)
            {
                character.Dead();
            }
            else if (character.blood - damage > character.totalBlood)
            {
                character.blood = character.totalBlood;
            }
            else
            {
                character.blood -= damage;
            }
            break;

        case SkillEffectType.gas:
            if (character.gas - damage < 0)
            {
                character.gas = 0;
            }
            else if (character.gas - damage > character.totalGas)
            {
                character.gas = character.totalGas;
            }
            else
            {
                character.gas -= damage;
            }
            break;
        }
        if (skillLevel.buffList != null)
        {
            List <Buff> buffs = GetBuff(skillLevel.buffList);
            if (buffs != null)
            {
                character.buffList.AddRange(buffs);
            }
        }
        if (character.IsNPC)
        {
            character.GetComponent <AIBase>().IsAttack = true;
        }
    }