ro-webgl/Assets/Src/GameLogic/Actor/ProfessionData.cs
2021-12-21 09:40:39 +08:00

173 lines
5.9 KiB
C#

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class ProfessionData
{
#region properties
private int mID;
private string mName;
private string mDesc;
private int mPosition;
private int mProfessionType;
private int mProfessionBranch;
private int mStep;
private int mMaxProfessionLv;
private int mLastProfessionId;
private bool mIsReincarnation;
private int mUpgradeBaseLv;
private int mUpgradeJobLv;
private SInt mHpRate;
private SInt mSpRate;
private SInt mAtkRate;
private SInt mMagicAtkRate;
private SInt mDefRate;
private SInt mMagicDefRate;
private SInt mHitRate;
private SInt mDodgeRate;
private SInt mCritRate;
private SInt mTenacityRate;
private SInt mAttackSpeed;
private string[] mNormalSkillIds;
private string[] mSkillIds;
private string[] mAlternativeSkills;
private int mWeaponType;
private int mNatureId;
private string mIcon;
#endregion
#region fileds
public int ID { get { return mID; } }
public string Name { get { return mName; } }
public string Desc { get { return mDesc; } }
public int Position { get { return mPosition; } set { mPosition = value; } }
public int ProfessionType { get { return mProfessionType; } }
public int ProfessionBranch { get { return mProfessionBranch; } }
public int Step { get { return mStep; } }
public int MaxProfessionLv { get { return mMaxProfessionLv; } }
public int LastProfessionId { get { return mLastProfessionId; } }
public bool IsReincarnation { get { return mIsReincarnation; } }
public int UpgradeBaseLv { get { return mUpgradeBaseLv; } }
public int UpgradeJobLv { get { return mUpgradeJobLv; } }
public SFloat HpRate { get { return mHpRate * 0.0001f; } }
public SFloat SpRate { get { return mSpRate * 0.0001f; } }
public SFloat AtkRate { get { return mAtkRate * 0.0001f; } }
public SFloat MagicAtkRate { get { return mMagicAtkRate * 0.0001f; } }
public SFloat DefRate { get { return mDefRate * 0.0001f; } }
public SFloat MagicDefRate { get { return mMagicDefRate * 0.0001f; } }
public SFloat HitRate { get { return mHitRate * 0.0001f; } }
public SFloat DodgeRate { get { return mDodgeRate * 0.0001f; } }
public SFloat CritRate { get { return mCritRate * 0.0001f; } }
public SFloat TenacityRate { get { return mTenacityRate * 0.0001f; } }
public SFloat AttackSpeed { get { return mAttackSpeed; } }
public int WeaponType { get { return mWeaponType; } }
public string[] NormalSkillIds { get { return mNormalSkillIds; } }
public string[] SkillIds { get { return mSkillIds; } }
public string[] AlternativeSkills { get { return mAlternativeSkills; } }
public int NatureId { get { return mNatureId; } }
public string Icon
{
get { return mIcon; }
}
private bool isValid = false;
public bool valid
{
get { return isValid; }
}
#endregion
public ProfessionData(int id)
{
//DebugHelper.Log("profession Id:" + id);
Dictionary<string, string> dic = ConfigMgr.Instance.getLine(id, Config.JobCfgName);
if(dic!=null)
{
this.mID = id;
this.mName = dic["JobName"];
this.mDesc = dic["Desc"];
this.mIcon = dic["JobIcon"];
int.TryParse(dic["Position"], out this.mPosition);
int.TryParse(dic["JobType"], out this.mProfessionType);
int.TryParse(dic["JobBranch"], out this.mProfessionBranch);
int.TryParse(dic["JobStage"], out this.mStep);
int.TryParse(dic["MaxJobLv"], out this.mMaxProfessionLv);
int.TryParse(dic["BeforeJobId"], out this.mLastProfessionId);
int temp = 0;
int.TryParse(dic["Again"], out temp);
this.mIsReincarnation = temp > 0;
int.TryParse(dic["UpBaseLV"], out this.mUpgradeBaseLv);
int.TryParse(dic["UpJobLv"], out this.mUpgradeJobLv);
int.TryParse(dic["HpRate"], out temp);
this.mHpRate = temp;
int.TryParse(dic["SpRate"], out temp);
this.mSpRate = temp;
int.TryParse(dic["AtkRate"], out temp);
this.mAtkRate = temp;
int.TryParse(dic["MatkRate"], out temp);
this.mMagicAtkRate = temp;
int.TryParse(dic["DefRate"], out temp);
this.mDefRate = temp;
int.TryParse(dic["MdefRate"], out temp);
this.mMagicDefRate = temp;
int.TryParse(dic["HitRate"], out temp);
this.mHitRate = temp;
int.TryParse(dic["DodgeRate"], out temp);
this.mDodgeRate = temp;
int.TryParse(dic["CritRate"], out temp);
this.mCritRate = temp;
int.TryParse(dic["TenRate"], out temp);
this.mTenacityRate = temp;
int.TryParse(dic["Aspd"], out temp);
this.mAttackSpeed = temp;
// int.TryParse(dic["ArmsType"], out this.mWeaponType);
if (dic.ContainsKey("NormalSkillIds"))
{
mNormalSkillIds = StringUtil.split(dic["NormalSkillIds"], ';');
}
if(dic.ContainsKey("SkillIds"))
{
mSkillIds = StringUtil.split(dic["SkillIds"], ';');
}
if(dic.ContainsKey("AlternativeSkills"))
{
mAlternativeSkills = StringUtil.split(dic["AlternativeSkills"], ';');
}
if(dic.ContainsKey("NatureId"))
{
int.TryParse(dic["NatureId"], out mNatureId);
}
isValid = true;
}
}
public void Dispose()
{
isValid = false;
mNormalSkillIds = null;
mSkillIds = null;
}
}