示例#1
0
 public Skill(Skill skill)
 {
     this.skillName  = skill.skillName;
     this.skillImage = skill.skillImage;
     this.skillGrade = skill.skillGrade;
     this.weight     = skill.weight;
     this.Cool       = skill.Cool;
     this.isTrue     = skill.isTrue;
 }
示例#2
0
    public void InitSkillData(SkillData skillData, ActionController owner, PassiveSkillBase[] skillBaseHandles)
    {
        _owner     = owner;
        _skillData = skillData;
        if (_skillData != null && _skillData.CurrentLevelData != null)
        {
            SkillGrade skillGrade = _skillData.CurrentLevelData;

            if (null != skillGrade)
            {
                coolDownTimeMax = _skillData.CurrentLevelData.coolDownTime;

                FCPassiveSkillAttribute skillAttribute1 = skillAttributes.Find(delegate(FCPassiveSkillAttribute att1) { return(att1.skillType == (AIHitParams)skillGrade.passiveType1); });

                if (null != skillAttribute1)
                {
                    skillAttribute1.attributeValue = skillGrade.attribute1;
                }
                else
                {
                    skillAttribute1                = new FCPassiveSkillAttribute();
                    skillAttribute1.skillType      = (AIHitParams)skillGrade.passiveType1;
                    skillAttribute1.attributeValue = skillGrade.attribute1;
                    skillAttributes.Add(skillAttribute1);
                }

                FCPassiveSkillAttribute skillAttribute2 = skillAttributes.Find(delegate(FCPassiveSkillAttribute att2) { return(att2.skillType == (AIHitParams)skillGrade.passiveType2); });

                if (null != skillAttribute2)
                {
                    skillAttribute2.attributeValue = skillGrade.attribute2;
                    skillAttribute2.attributeValue = 0;
                }
                else
                {
                    skillAttribute2                = new FCPassiveSkillAttribute();
                    skillAttribute2.skillType      = (AIHitParams)skillGrade.passiveType2;
                    skillAttribute2.attributeValue = skillGrade.attribute2;
                    skillAttributes.Add(skillAttribute2);
                }
            }

            if (skillData.level == 0)
            {
                beActive = false;
            }
        }
        else if (_skillData != null)
        {
            beActive = false;
        }

        if (skillName != "" && null != skillBaseHandles)
        {
            foreach (PassiveSkillBase psb in skillBaseHandles)
            {
                if (psb._skillName == skillName)
                {
                    passiveSkillBase = psb;
                    break;
                }
            }
        }

        if (passiveSkillBase != null)
        {
            passiveSkillBase.Init(this);
        }
    }
    public SkillGrade GetSkillGradeByUnlockLevel(int unlocklevel)
    {
        SkillGrade skillGrade = upgradeDataList.Find(delegate(SkillGrade sg) { return(sg.unlockLevel == unlocklevel); });

        return(skillGrade);
    }
    public SkillGrade GetSkillGradeBySkillLevel(int level)
    {
        SkillGrade skillGrade = upgradeDataList.Find(delegate(SkillGrade sg) { return(sg.level == level); });

        return(skillGrade);
    }
示例#5
0
    void DisplaySkillInfo()
    {
        SkillData skillData = GetSelectedSkill();

        if (skillData != null)
        {
            string ids, name;

            // Skill name
            if (!skillData.isPassive)
            {
                ids  = Localization.instance.Get("IDS_MESSAGE_SKILLS_ACTIVESKILL");
                name = Localization.instance.Get(skillData.nameIDS);
            }
            else
            {
                ids  = Localization.instance.Get("IDS_MESSAGE_SKILLS_PASSIVESKILL");
                name = Localization.instance.Get(skillData.nameIDS);
            }

            int skillLevel = PlayerInfo.Instance.GetSkillLevel(skillData.skillID);
            labelSkillName.text = string.Format(ids, name);            //[1,5]

            // Skill description
            SkillUpgradeData ranksdata = DataManager.Instance.GetSkillUpgradeData(skillData.enemyID, skillData.skillID);
            int maxRanks = ranksdata.upgradeDataList.Count - 1;

            SkillGrade skillGrade = ranksdata.GetSkillGradeBySkillLevel(skillLevel);
            labelSkillDesc.text = Localization.instance.Get((null == skillGrade) ? "" : skillGrade.descIDS);

            ids = Localization.instance.Get("IDS_MESSAGE_GLOBAL_LEVEL");
            labelSkillLevel.text = string.Format("{0}: {1}/{2}", ids, skillLevel, maxRanks);

            // Conditions
            //skillRank=[1,5]
            int    nextRank             = Mathf.Min(skillLevel + 1, maxRanks);
            int    sc                   = ranksdata.upgradeDataList[nextRank].costSc;
            int    hc                   = ranksdata.upgradeDataList[nextRank].costHc;
            int    unLockLevel          = ranksdata.upgradeDataList[nextRank].unlockLevel;
            string preSkillId           = ranksdata.upgradeDataList[nextRank].preSkillId;
            int    preSkillLevelNeed    = ranksdata.upgradeDataList[nextRank].preSkillLevel;
            int    preSkillCurrentLevel = PlayerInfo.Instance.GetSkillLevel(preSkillId);

            labelSCCost.text = sc.ToString();
            labelHCCost.text = hc.ToString();

            labelConditionTip.text = string.Empty;

            // Require level XXX to learn.
            if (unLockLevel > PlayerInfo.Instance.CurrentLevel)              //level requirement not met, show hc
            {
                ids = Localization.instance.Get("IDS_MESSAGE_SKILLS_NEED_LEVEL");
                labelConditionTip.text = string.Format(ids, unLockLevel);

                upgradeWithSC.isEnabled = false;
            }
            else
            {
                upgradeWithSC.isEnabled = true;
            }
        }
    }
    public static void Read()
    {
        bool newFile = false;

        SkillUpgradeDataList dataList = null;

        UnityEngine.Object oldFile = AssetDatabase.LoadAssetAtPath(outFileName, typeof(SkillUpgradeDataList));
        if (oldFile == null)
        {
            newFile  = true;
            dataList = ScriptableObject.CreateInstance(typeof(SkillUpgradeDataList)) as SkillUpgradeDataList;
        }
        else
        {
            dataList = oldFile as SkillUpgradeDataList;
        }

        dataList.dataList.Clear();

        string curSkillName = "";

        SkillUpgradeData curSkillUpgradeData = null;

        string jsonStr = File.ReadAllText(fileName);

        JsonHashtable ht = FCJson.jsonDecode(jsonStr) as JsonHashtable;

        foreach (System.Object obj in ht.ValueList)
        {
            Hashtable data = obj as Hashtable;

            string enemyId = data["enemyId"] as string;

            string skillName = data["skill"] as string;

            curSkillUpgradeData = dataList.dataList.Find(
                delegate(SkillUpgradeData sud)
            {
                return(sud._enemyId == enemyId && sud._skillId == skillName);
            });

            if (curSkillUpgradeData == null)
            {
                curSkillName                 = skillName;
                curSkillUpgradeData          = new SkillUpgradeData();
                curSkillUpgradeData._skillId = curSkillName;
                curSkillUpgradeData._enemyId = enemyId;
                dataList.dataList.Add(curSkillUpgradeData);
                curSkillUpgradeData.upgradeDataList.Clear();
            }

            SkillGrade newData = new SkillGrade();

            newData.level        = (int)data["level"];
            newData.cost         = (int)data["cost"];
            newData.coolDownTime = (float)(data["coolDownTime"]);
            newData.chargeTime   = (float)(data["chargeTime"]);
            newData.skillTime    = (float)(data["skillTime"]);
            newData.damageScale  = (float)(data["damageScale"]);
            newData.effect       = (int)(data["effect"]);

            newData.specialAttackType = (int)(data["specialAttackType"]);
            newData.attackRange       = (float)(data["attackRange"]);
            newData.attackNumber      = (int)(data["attackNumber"]);
            newData.bulletCount       = (int)(data["bulletCount"]);
            newData.dotDamageTime     = (float)(data["dotDamageTime"]);
            newData.attackEffectTime  = (float)(data["attackEffectTime"]);
            newData.speed             = (float)(data["speed"]);
            newData.godTime           = (float)(data["godTime"]);

            newData.attribute1   = (float)(data["att1"]);
            newData.attribute2   = (float)(data["att2"]);
            newData.passiveType1 = (AIHitParams)(int)(data["passiveType1"]);
            newData.passiveType2 = (AIHitParams)(int)(data["passiveType2"]);

            newData.costSc        = (int)(data["costSc"]);
            newData.costHc        = (int)(data["costHc"]);
            newData.unlockLevel   = (int)(data["unlockLevel"]);
            newData.preSkillId    = data["preSkillId"] as string;
            newData.preSkillLevel = (int)(data["preSkillLevel"]);
            newData.descIDS       = data["descIDS"] as string;
            newData.eotId         = data["eotId"] as string;

            curSkillUpgradeData.upgradeDataList.Add(newData);
        }

        foreach (SkillUpgradeData sud in dataList.dataList)
        {
            sud.upgradeDataList.Sort(new SUDComparer());
        }

        if (newFile)
        {
            AssetDatabase.CreateAsset(dataList, outFileName);
        }
        else
        {
            EditorUtility.SetDirty(dataList);
        }
        Debug.Log(string.Format("Skill upgrade data imported OK. {0} records.", dataList.dataList.Count));
    }