Пример #1
0
 /// <summary>
 /// 战斗开始,战斗场景的入口
 /// </summary>
 /// <param name="id">战斗数据的键值</param>
 /// <param name="context">将GameManager作为上下文传入</param>
 public void BattleStart(int id, GameManager context)
 {
     //读取战斗数据
     BattleCharacterManager.Ins.GenerateEnemyGroup(information.enemyGroup, information.difficultLevel);
     //创建新的战斗结果数据
     resultInformation = new PassedResultInformation();
     if (information.option != null)
     {
         resultInformation.option = information.option;
     }
     resultInformation.cardSourceRward = new List <CardSource>();
 }
Пример #2
0
    /// <summary>
    /// 将战斗结果返回
    /// </summary>
    /// <param name="information"></param>
    //TODO
    public void DealWithBattleResult(PassedResultInformation information)
    {
        Enable();
        currentEvent.Finished();

        if (information.win)
        {
            CharacterInDungeon.Ins.currentHp = information.currentHp;
            //处理资源奖励信息
            foreach (ItemSourceAndCount reward in information.resourceReward)
            {
                switch (reward.item.id)
                {
                case 201:
                    DungeonManager.Ins.dataFrag.count += reward.count;
                    break;

                case 202:
                    CharacterInDungeon.Ins.GainExp(reward.count);
                    break;
                }
            }
            //处理卡牌信息
            foreach (CardSource cs in information.cardSourceRward)
            {
                CardContent cc = cs.GenerateCard();
                CharacterInDungeon.Ins.JoinCard(cc);
            }
            foreach (Talent t in CharacterInDungeon.Ins.activeTalents)
            {
                t.OnBattleEnd();
            }
            if (information.option != null)
            {
                information.option.AfterBattleEffect();
            }
            DungeonUI.RefreshUI();
        }
        else
        {
            LeaveDungeon();
        }
    }