2024-12-18 23:42:27 +00:00
|
|
|
using CodeStage.AntiCheat.ObscuredTypes;
|
2024-12-15 01:39:39 +00:00
|
|
|
using Newtonsoft.Json;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
2025-07-16 07:17:44 +00:00
|
|
|
using UnityEngine.WSA;
|
2024-12-15 01:39:39 +00:00
|
|
|
|
|
|
|
|
[Serializable]
|
|
|
|
|
public class ClassOpenConditionTableData : TableDataBase
|
|
|
|
|
{
|
2024-12-18 23:42:27 +00:00
|
|
|
ObscuredInt _ClassID;
|
|
|
|
|
public int n_ClassID
|
|
|
|
|
{
|
|
|
|
|
get { return _ClassID; }
|
|
|
|
|
set { _ClassID = value; _ClassID.RandomizeCryptoKey(); }
|
|
|
|
|
} // 클래스 ID
|
|
|
|
|
|
|
|
|
|
ObscuredInt _LinkedClass1;
|
|
|
|
|
public int n_linkedClass1
|
|
|
|
|
{
|
|
|
|
|
get { return _LinkedClass1; }
|
|
|
|
|
set { _LinkedClass1 = value; _LinkedClass1.RandomizeCryptoKey(); }
|
|
|
|
|
} // 연관된 클래스 1
|
|
|
|
|
|
|
|
|
|
ObscuredInt _LinkedClass2;
|
|
|
|
|
public int n_linkedClass2
|
|
|
|
|
{
|
|
|
|
|
get { return _LinkedClass2; }
|
|
|
|
|
set { _LinkedClass2 = value; _LinkedClass2.RandomizeCryptoKey(); }
|
|
|
|
|
} // 연관된 클래스 2
|
|
|
|
|
|
|
|
|
|
ObscuredInt _RequireAbility;
|
|
|
|
|
public int n_RequireAbility
|
|
|
|
|
{
|
|
|
|
|
get { return _RequireAbility; }
|
|
|
|
|
set { _RequireAbility = value; _RequireAbility.RandomizeCryptoKey(); }
|
|
|
|
|
} // 필요 능력치
|
|
|
|
|
|
|
|
|
|
public eStat e_RequireAwakenType1 { get; set; } // 첫 번째 각성 필요 유형
|
|
|
|
|
|
|
|
|
|
ObscuredInt _RequireAwakenStep1;
|
|
|
|
|
public int n_RequireAwakenStep1
|
|
|
|
|
{
|
|
|
|
|
get { return _RequireAwakenStep1; }
|
|
|
|
|
set { _RequireAwakenStep1 = value; _RequireAwakenStep1.RandomizeCryptoKey(); }
|
|
|
|
|
} // 첫 번째 각성 단계
|
|
|
|
|
|
|
|
|
|
public eStat e_RequireAwakenType2 { get; set; } // 두 번째 각성 필요 유형
|
|
|
|
|
|
|
|
|
|
ObscuredInt _RequireAwakenStep2;
|
|
|
|
|
public int n_RequireAwakenStep2
|
|
|
|
|
{
|
|
|
|
|
get { return _RequireAwakenStep2; }
|
|
|
|
|
set { _RequireAwakenStep2 = value; _RequireAwakenStep2.RandomizeCryptoKey(); }
|
|
|
|
|
} // 두 번째 각성 단계
|
|
|
|
|
|
|
|
|
|
ObscuredInt _NeedGoodsCount;
|
|
|
|
|
public int n_NeedGoodsCount
|
|
|
|
|
{
|
|
|
|
|
get { return _NeedGoodsCount; }
|
|
|
|
|
set { _NeedGoodsCount = value; _NeedGoodsCount.RandomizeCryptoKey(); }
|
|
|
|
|
} // 필요 아이템 수량
|
|
|
|
|
|
2025-03-19 06:32:57 +00:00
|
|
|
ObscuredInt _ClassOpenMission;
|
|
|
|
|
public int n_ClassOpenMission
|
|
|
|
|
{
|
|
|
|
|
get { return _ClassOpenMission; }
|
|
|
|
|
set { _ClassOpenMission = value; _ClassOpenMission.RandomizeCryptoKey(); }
|
|
|
|
|
} // 클래스 오픈 미션 ID
|
2024-12-15 01:39:39 +00:00
|
|
|
|
2024-12-22 01:07:25 +00:00
|
|
|
public override string Get_Name() { return table_itemlist.Ins.Get_ItemName(n_ClassID); }
|
2024-12-15 01:39:39 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public class table_classopencondition : table_missionbase
|
|
|
|
|
{
|
|
|
|
|
public static table_classopencondition Ins;
|
|
|
|
|
List<ClassOpenConditionTableData> tableDatas;
|
|
|
|
|
Dictionary<int, ClassOpenConditionTableData> dic_Data = new Dictionary<int, ClassOpenConditionTableData>();
|
2025-03-19 06:32:57 +00:00
|
|
|
Dictionary<int, ClassOpenConditionTableData> dic_MissionData = new Dictionary<int, ClassOpenConditionTableData>();
|
2024-12-15 01:39:39 +00:00
|
|
|
|
|
|
|
|
protected override void Awake()
|
|
|
|
|
{
|
|
|
|
|
base.Awake();
|
|
|
|
|
Ins = this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override void Start()
|
|
|
|
|
{
|
|
|
|
|
tableDatas = JsonConvert.DeserializeObject<List<ClassOpenConditionTableData>>(json_last);
|
|
|
|
|
for (int i = 0; i < Get_DataList().Count; i++)
|
|
|
|
|
{
|
|
|
|
|
var temp = Get_DataList()[i];
|
|
|
|
|
dic_Data.Add(temp.n_ClassID, temp);
|
2025-03-19 06:32:57 +00:00
|
|
|
dic_MissionData.Add(temp.n_ClassOpenMission, temp);
|
2024-12-15 01:39:39 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
base.Start();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public ClassOpenConditionTableData Get_Data_orNull(int id) { return dic_Data[id]; }
|
|
|
|
|
public List<ClassOpenConditionTableData> Get_DataList() { return tableDatas; }
|
2025-07-16 07:17:44 +00:00
|
|
|
public List<ClassOpenConditionTableData> Get_DataList(int index)
|
|
|
|
|
{
|
|
|
|
|
var lst = Get_DataList();
|
|
|
|
|
eStat stat = eStat.STR;
|
|
|
|
|
switch (index)
|
|
|
|
|
{
|
|
|
|
|
default: return lst;
|
|
|
|
|
case 1: stat = eStat.STR; break;
|
|
|
|
|
case 2: stat = eStat.DEX; break;
|
|
|
|
|
case 3: stat = eStat.INT; break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
List<ClassOpenConditionTableData> rtnlst = new List<ClassOpenConditionTableData>();
|
|
|
|
|
for (int i = 0; i < lst.Count; i++)
|
|
|
|
|
{
|
|
|
|
|
var job = table_classconfig.Ins.Get_Data_orNull(lst[i].n_ClassID);
|
|
|
|
|
switch (stat)
|
|
|
|
|
{
|
|
|
|
|
case eStat.STR:
|
|
|
|
|
if (job.e_MainStatType == eMainStatType.LUCK || job.e_MainStatType == eMainStatType.STR ||
|
|
|
|
|
job.e_MainStatType == eMainStatType.STR_DEX || job.e_MainStatType == eMainStatType.STR_INT)
|
|
|
|
|
rtnlst.Add(lst[i]);
|
|
|
|
|
break;
|
|
|
|
|
case eStat.DEX:
|
|
|
|
|
if (job.e_MainStatType == eMainStatType.LUCK || job.e_MainStatType == eMainStatType.DEX ||
|
|
|
|
|
job.e_MainStatType == eMainStatType.DEX_STR || job.e_MainStatType == eMainStatType.DEX_INT)
|
|
|
|
|
rtnlst.Add(lst[i]);
|
|
|
|
|
break;
|
|
|
|
|
case eStat.INT:
|
|
|
|
|
if (job.e_MainStatType == eMainStatType.LUCK || job.e_MainStatType == eMainStatType.INT ||
|
|
|
|
|
job.e_MainStatType == eMainStatType.INT_STR || job.e_MainStatType == eMainStatType.INT_DEX)
|
|
|
|
|
rtnlst.Add(lst[i]);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return rtnlst;
|
|
|
|
|
}
|
2024-12-15 01:39:39 +00:00
|
|
|
}
|