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); }
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); }
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)); }