示例#1
0
    bool NeedUseHC(out int sc, out int hc)
    {
        SkillData skilldata = GetSelectedSkill();

        SkillUpgradeData ranksdata = DataManager.Instance.GetSkillUpgradeData(skilldata.enemyID, skilldata.skillID);
        int skillRank = PlayerInfo.Instance.GetSkillLevel(skilldata.skillID);
        int maxRanks  = ranksdata.upgradeDataList.Count - 1;
        int nextRank  = Mathf.Min(skillRank + 1, maxRanks);

        sc = ranksdata.upgradeDataList[nextRank].costSc;
        hc = ranksdata.upgradeDataList[nextRank].costHc;
        int unLockLevel = ranksdata.upgradeDataList[nextRank].unlockLevel;

        return(sc > PlayerInfo.Instance.SoftCurrency ||
               unLockLevel > PlayerInfo.Instance.CurrentLevel);
    }
示例#2
0
    public static bool IsNewSkill(SkillData skilldata)
    {
        int skillRank = PlayerInfo.Instance.GetSkillLevel(skilldata.skillID);
        SkillUpgradeData ranksdata = DataManager.Instance.GetSkillUpgradeData(skilldata.enemyID, skilldata.skillID);
        int nextRank = skillRank + 1;

        if (nextRank >= ranksdata.upgradeDataList.Count)
        {
            return(false);
        }

        int    unLockLevel          = ranksdata.upgradeDataList[nextRank].unlockLevel;
        string preSkillId           = ranksdata.upgradeDataList[nextRank].preSkillId;
        int    preSkillLevelNeed    = ranksdata.upgradeDataList[nextRank].preSkillLevel;
        int    preSkillCurrentLevel = PlayerInfo.Instance.GetSkillLevel(preSkillId);

        if ((preSkillCurrentLevel >= preSkillLevelNeed) &&
            (PlayerInfo.Instance.CurrentLevel >= unLockLevel))
        {
            return(true);
        }

        return(false);
    }
示例#3
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));
    }