Beispiel #1
0
 //[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();
 }
Beispiel #2
0
    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里面转向并攻击,抖动
    }