示例#1
0
    void OnBattleBeginMsg(IReadableBuffer data)
    {
        frameNoRecieved = 0;
        msgQ.Clear();

        inReplay = replayer.InReplaying;
        if (!inReplay)
        {
            replayer.Clear();
            replayer.Record("BattleBegin", data);
        }

        Clear();

        var randomSeed = data.ReadInt();
        var lvID       = data.ReadString();

        WinnerAward      = data.ReadInt();
        LoserAward       = data.ReadInt();
        WinnerAwardUnits = data.ReadStringArr();
        var roomID   = data.ReadString();
        var usrs     = data.ReadStringArr();
        var usrsInfo = data.ReadArr <UserInfo>();
        var sz       = data.ReadVec2();

        IsPVP = data.ReadBool();

        // 设置当前用户信息
        var gc = GameCore.Instance;

        gc.CurrentRoom = this;
        var meID = gc.MeID;

        if (usrs[1] == meID)
        {
            gc.MePlayer = 1;
        }
        else
        {
            gc.MePlayer = 2; // 观战者也用 2 视角
        }
        // 初始化房间信息
        var usr1 = usrs[1];
        var usr2 = usrs[2];

        OnBeforeBattleBegin.SC(usr1, usr2, sz, inReplay);
        Init(roomID, sz, lvID, usr1, usr2, usrsInfo[1], usrsInfo[2]);
        base.BattleBegin(randomSeed);

        OnBattleBegin.SC(this, inReplay);
    }
示例#2
0
 /// <summary>
 /// Starts the battle.
 /// </summary>
 public void StartBattle()
 {
     //TurnManager.Start();
     OnBattleBegin?.Invoke(this);
 }