using CodeStage.AntiCheat.ObscuredTypes; using Newtonsoft.Json; using System; using System.Collections.Generic; public enum eBattleType { All, Shield, OneHand, Bow, Staff, TwoHand, DualWeapon, } [Serializable] public class ClassConfigTableData : TableDataBase { // ObscuredInt 적용 ObscuredInt _ClassID; public int n_ClassID { get { return _ClassID; } set { _ClassID = value; _ClassID.RandomizeCryptoKey(); } } // 영웅의 직업을 분류하기 위한 고유 ID ObscuredInt _Tier; public int n_Tier { get { return _Tier; } set { _Tier = value; _Tier.RandomizeCryptoKey(); } } // Tier public string s_AnimationController { get; set; } public string s_JobIcon { get; set; } public string s_WeaponLHPrefab { get; set; } public string s_WeaponRHPrefab { get; set; } public eBattleType e_BattleType { get; set; } public float f_Scale; ObscuredFloat _AttackRange; public float f_AttackRange { get { return _AttackRange; } set { _AttackRange = value; _AttackRange.RandomizeCryptoKey(); } } // 공격 범위 public eMainStatType e_MainStatType { get; set; } // 주스텟 타입 // ObscuredInt 적용 ObscuredInt _DefaultStr; public int n_DefaultStr { get { return _DefaultStr; } set { _DefaultStr = value; _DefaultStr.RandomizeCryptoKey(); } } // 기본 보유 힘 수치 ObscuredInt _DefaultDex; public int n_DefaultDex { get { return _DefaultDex; } set { _DefaultDex = value; _DefaultDex.RandomizeCryptoKey(); } } // 기본 보유 민첩 수치 ObscuredInt _DefaultInt; public int n_DefaultInt { get { return _DefaultInt; } set { _DefaultInt = value; _DefaultInt.RandomizeCryptoKey(); } } // 기본 보유 지능 수치 ObscuredInt _DefaultLuk; public int n_DefaultLuk { get { return _DefaultLuk; } set { _DefaultLuk = value; _DefaultLuk.RandomizeCryptoKey(); } } // 기본 보유 행운 수치 ObscuredInt _DefaultHP; public int n_DefaultHP { get { return _DefaultHP; } set { _DefaultHP = value; _DefaultHP.RandomizeCryptoKey(); } } // 기본 보유 HP 수치 ObscuredInt _DefaultMP; public int n_DefaultMP { get { return _DefaultMP; } set { _DefaultMP = value; _DefaultMP.RandomizeCryptoKey(); } } // 기본 보유 MP 수치 ObscuredInt _ExtraSkill; public int n_ExtraSkill { get { return _ExtraSkill; } set { _ExtraSkill = value; _ExtraSkill.RandomizeCryptoKey(); } } // 고유 패시브 스킬 ID ObscuredInt _AcquiredSkill1; public int n_AcquiredSkill1 { get { return _AcquiredSkill1; } set { _AcquiredSkill1 = value; _AcquiredSkill1.RandomizeCryptoKey(); } } // 개방 시 얻게 될 스킬 ID1 ObscuredInt _AcquiredSkill2; public int n_AcquiredSkill2 { get { return _AcquiredSkill2; } set { _AcquiredSkill2 = value; _AcquiredSkill2.RandomizeCryptoKey(); } } // 개방 시 얻게 될 스킬 ID2 ObscuredInt _AcquiredSkill3; public int n_AcquiredSkill3 { get { return _AcquiredSkill3; } set { _AcquiredSkill3 = value; _AcquiredSkill3.RandomizeCryptoKey(); } } // 개방 시 얻게 될 스킬 ID3 public string Get_JobName() { return table_localtext.Ins.Get_Text(n_ClassID); } public eMainStatType Get_MainStat() { switch (e_MainStatType) { case eMainStatType.STR: case eMainStatType.STR_DEX: case eMainStatType.STR_INT: return eMainStatType.STR; case eMainStatType.DEX: case eMainStatType.DEX_STR: case eMainStatType.DEX_INT: return eMainStatType.DEX; case eMainStatType.INT: case eMainStatType.INT_STR: case eMainStatType.INT_DEX: return eMainStatType.INT; default: return eMainStatType.LUCK; } } public eStat Get_MainStatToStat() { switch (e_MainStatType) { case eMainStatType.STR: case eMainStatType.STR_DEX: case eMainStatType.STR_INT: return eStat.STR; case eMainStatType.DEX: case eMainStatType.DEX_STR: case eMainStatType.DEX_INT: return eStat.DEX; case eMainStatType.INT: case eMainStatType.INT_STR: case eMainStatType.INT_DEX: return eStat.INT; default: return eStat.LUK; } } public int Get_DefaultMainStatValue() { switch (Get_MainStatToStat()) { case eStat.STR: return n_DefaultStr; case eStat.DEX: return n_DefaultDex; case eStat.INT: return n_DefaultInt; case eStat.LUK: return n_DefaultLuk; } return 0; } } public class table_classconfig : table_missionbase { public static table_classconfig Ins; List tableDatas; Dictionary dic_Data = new Dictionary(); protected override void Awake() { base.Awake(); Ins = this; } protected override void Start() { tableDatas = JsonConvert.DeserializeObject>(json_last); for (int i = 0; i < Get_DataList().Count; i++) { var temp = Get_DataList()[i]; dic_Data.Add(temp.n_ClassID, temp); } base.Start(); } public ClassConfigTableData Get_Data_orNull(int id) { return dic_Data[id]; } public List Get_DataList() { return tableDatas; } public int Get_PureStat(eStat stat, ServerData sdata) { var rtnVale = 0; for (int i = 0; i < sdata.PC.Obtain.Count; i++) { var classData = Get_Data_orNull(sdata.PC.Obtain[i]); switch (stat) { case eStat.STR: rtnVale += classData.n_DefaultStr; break; case eStat.DEX: rtnVale += classData.n_DefaultDex; break; case eStat.INT: rtnVale += classData.n_DefaultInt; break; case eStat.LUK: rtnVale += classData.n_DefaultLuk; break; } } rtnVale += sdata.PC.Get_Stat(stat); return rtnVale; } public int Get_TotalPureStat(ServerData sdata) { return Get_PureStat(eStat.STR, sdata) + Get_PureStat(eStat.DEX, sdata) + Get_PureStat(eStat.INT, sdata) + Get_PureStat(eStat.LUK, sdata); } }