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