136 lines
4.5 KiB
C#
136 lines
4.5 KiB
C#
|
|
using Newtonsoft.Json;
|
||
|
|
using System;
|
||
|
|
using System.Collections.Generic;
|
||
|
|
|
||
|
|
public enum eBattleType
|
||
|
|
{
|
||
|
|
All, Shield, OneHand, Bow, Staff, TwoHand, DualWeapon,
|
||
|
|
}
|
||
|
|
|
||
|
|
[Serializable]
|
||
|
|
public class ClassConfigTableData : TableDataBase
|
||
|
|
{
|
||
|
|
public int n_ClassID; // 영웅의 직업을 분류하기 위한 고유 ID
|
||
|
|
public int n_Tier; //
|
||
|
|
public string s_AnimationController;
|
||
|
|
public string s_JobIcon;
|
||
|
|
public string s_WeaponLHPrefab, s_WeaponRHPrefab;
|
||
|
|
public eBattleType e_BattleType;
|
||
|
|
public float f_Scale;
|
||
|
|
public float f_AttackRange;
|
||
|
|
public eMainStatType e_MainStatType; // 플레이어의 주스텟 타입을 구분하기 위한 분류 값
|
||
|
|
public int n_DefaultStr; // 기본 보유 힘 수치
|
||
|
|
public int n_DefaultDex; // 기본 보유 민첩 수치
|
||
|
|
public int n_DefaultInt; // 기본 보유 지능 수치
|
||
|
|
public int n_DefaultLuk; // 기본 보유 행운 수치
|
||
|
|
public int n_DefaultHP; // 기본 보유 HP 수치
|
||
|
|
public int n_DefaultMP; // 기본 보유 MP 수치
|
||
|
|
public int n_ExtraSkill; // 고유 패시브 스킬ID
|
||
|
|
public int n_AcquiredSkill1; // 개방 될 때 얻게 될 스킬의 ID1
|
||
|
|
public int n_AcquiredSkill2; // 개방 될 때 얻게 될 스킬의 ID2
|
||
|
|
public int n_AcquiredSkill3; // 개방 될 때 얻게 될 스킬의 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<ClassConfigTableData> tableDatas;
|
||
|
|
Dictionary<int, ClassConfigTableData> dic_Data = new Dictionary<int, ClassConfigTableData>();
|
||
|
|
|
||
|
|
protected override void Awake()
|
||
|
|
{
|
||
|
|
base.Awake();
|
||
|
|
Ins = this;
|
||
|
|
}
|
||
|
|
|
||
|
|
protected override void Start()
|
||
|
|
{
|
||
|
|
tableDatas = JsonConvert.DeserializeObject<List<ClassConfigTableData>>(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<ClassConfigTableData> 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);
|
||
|
|
}
|
||
|
|
}
|