//[RuntimeInitializeOnLoadMethod] //public static void LoadFromRecord() { // CharacterInfo info = new CharacterInfo(); // info= info.Load<CharacterInfo>(); // Debug.Log(info.Items.Weapons.Count); //} public CharacterInfo(CharacterLogic Logic) { ID = Logic.GetID(); Level = Logic.GetLevel(); Exp = Logic.GetExp(); Career = Logic.GetCareer(); Attribute = Logic.GetAttribute(); CurrentHP = Logic.GetCurrentHP(); MaxHP = Logic.GetMaxHP(); Items = new ItemGroup(); Skills = new SkillGroup(); }
public static LevelUPInfo GetAttackExp(CharacterLogic logic, int defenderCareerRank, int defenderLevel, bool isEnemyDead, int damage, bool isCritical) { int attackerLevel = logic.GetLevel(); int attackerExp = logic.GetExp(); int careerRankDiff = 0; LevelUPInfo r = new LevelUPInfo(); int levelDiff = attackerLevel - defenderLevel; int exp = careerRankDiff * 20 + levelDiff + 10; exp = Mathf.Max(exp, 2); if (isEnemyDead) { exp *= 3; } else { if (isCritical) { exp *= 2; } } exp = Mathf.Min(100, exp); r.startExp = attackerExp; int finalExp = r.startExp + exp; r.endExp = finalExp % 100; r.startLevel = attackerLevel; r.endLevel = attackerLevel + finalExp / 100; if (r.endLevel > r.startExp) { CharacterAttribute add = GetGrow(logic.GetAttributeGrow()); r.abilityData = new List <LevelUPInfo.AbilityData>(); LevelUPInfo.AbilityData d = new LevelUPInfo.AbilityData(logic.GetAttribute().Array, add.Array); r.abilityData.Add(d); } return(r); }