예제 #1
0
        private bool checkToNextOrOver()   //下一波?
        {
            bool next = false;

            fightDiff = 0;

            //---- 加入杀人统计---
            if (!_curDefer.alive)
            {
                _curAtter.addKillCount(_curDefer);
                //记录下当前敌人在第几波
                statictis.enemyIndex = _curDefer.pveId;
            }

            if (!_curAtter.alive)
            {
                _curDefer.addKillCount(_curAtter);
            }

            if (_attTeam.over || _defTeam.over)
            {
                _battleStatus = CMsgHeader.STATUS_WAR_END;


                CMsgWarEnd msg = null;
                if (_attTeam.over)
                {
                    msg = new CMsgWarEnd("Def");
                }
                else
                {
                    msg = new CMsgWarEnd("Att");
                }

                addMsgToRecorder(msg);
                ConsoleEx.DebugLog("CheckToNextOrOver: Game Over!");
            }
            else   //下一回合开始.
            {
                _curLun++;
                _curAtter.enterNextLun();
                _curDefer.enterNextLun();

                //可以进入下个回合
                next = true;
            }

            return(next);
        }
예제 #2
0
        public void addMsgToRecorder(CMsgHeader msg)
        {
            //可能要加入分步列表里
            addMsgToStepRecorder(msg);

            if (msg is CMsgSkillCast)
            {
                CMsgSkillCast  cast = msg as CMsgSkillCast;
                BT_MonsterTeam team = teamFromPveId(cast.caster);
                cast.curAngry = team.curAngry;
            }

            _warRecorder.Add(msg);

            if (msg is CMsgWarEnd)
            {
                CMsgWarEnd end = msg as CMsgWarEnd;
                WarIsOver = end.winner == "Att" ? 1 : 0;
            }
        }