89 lines
2.7 KiB
C#
89 lines
2.7 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UniRx;
|
|
|
|
|
|
public partial class CharacterModel : BaseModel
|
|
{
|
|
|
|
ReactiveCollection<Data> mDatas = new ReactiveCollection<Data>(new List<Data>(10));
|
|
public IReadOnlyCollection<Data> Datas => mDatas;
|
|
|
|
|
|
public class Data
|
|
{
|
|
public enum eSTAT
|
|
{
|
|
_START_,
|
|
_BASE_START_,
|
|
ATK, //공격력
|
|
DEF, //방어력
|
|
HP, //체력
|
|
CRI_RATE, //치명타 확률
|
|
CRI, //치명타 피해량
|
|
SPD, //속도
|
|
_BASE_END_,
|
|
|
|
_SUPPROT_START_,
|
|
SKILL_DMG, //스킬 피해량
|
|
CC_REGIST, //상태이상 저항
|
|
CC_HIT, //상태이상 적중
|
|
FINAL_DMG_UP, //최종 피해량 증가
|
|
FINAL_DMG_DOWN, //받는 피해 경감
|
|
FIX_DMG_UP, //고정 피해 추가
|
|
FIX_DMG_DOWN, //고정 피해 방어
|
|
CRI_REGIST, //치명타 저항
|
|
HP_RECOVERY, //생명력 재생량
|
|
HP_RECOVERY_UP, //회복 효과 증가
|
|
_SUPPORT_END_,
|
|
|
|
_SPECIAL_START_,
|
|
ATTRIBUTE, //속성
|
|
JOB, //직업
|
|
SEX, //성별
|
|
AGGRO, //어그로
|
|
_SPECIAL_END_,
|
|
_END_,
|
|
}
|
|
|
|
public int Level { get; set; } = 1;
|
|
public string Name { get; set; } = string.Empty;
|
|
|
|
public int SkillID { get; set; } = 0;
|
|
|
|
Dictionary<eSTAT, int> mDicStat = null;
|
|
|
|
public Data()
|
|
{
|
|
mDicStat = new Dictionary<eSTAT, int>((int)eSTAT._END_);
|
|
}
|
|
|
|
public void Initialize()
|
|
{
|
|
#region [TEST]
|
|
for (var e = eSTAT._START_; e <= eSTAT._END_; ++ e)
|
|
{
|
|
if(e <= eSTAT._BASE_END_)
|
|
{
|
|
mDicStat.TryAdd(e, Random.Range(100, 150));
|
|
}
|
|
else if(e <= eSTAT._SUPPORT_END_)
|
|
{
|
|
mDicStat.TryAdd(e, Random.Range(1, 10));
|
|
}
|
|
else if(e <= eSTAT._SPECIAL_END_)
|
|
{
|
|
mDicStat.TryAdd(e, Random.Range(1, 5));
|
|
}
|
|
}
|
|
#endregion[TEST]
|
|
}
|
|
|
|
public int GetStat(eSTAT e)
|
|
{
|
|
mDicStat.TryGetValue(e, out var stat);
|
|
return stat;
|
|
}
|
|
}
|
|
} |