//[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 void AttackUnit(CharacterLogic attacker, CharacterLogic defender, UnityAction onComplete) { //以Sequence的形式呈现战斗过程, gameMode.BeforePlaySequence(); gameMode.ResetSequence("Attack"); List <BattleAttackInfo> atkInfo = AssembleAttackSequenceEvent(gameMode.AddSequenceEvent <Sequence.AttackAnimation>, attacker, defender); var getExp = gameMode.AddSequenceEvent <Sequence.GetExp>(); int damageCount = 0; foreach (var v in atkInfo) { damageCount += v.damageToDefender; } bool enemyDead = damageCount >= defender.GetCurrentHP(); bool critical = false; getExp.Info = BattleLogic.GetAttackExp(attacker, defender.GetCareer(), defender.GetLevel(), enemyDead, damageCount, critical); gameMode.PlaySequence(onComplete); //计算处方向 然后在Unitshower里面转向并攻击,抖动 }