public void Initialize() { DataManager clientData = DataManager.GetInstance(); frames = clientData.GetSimulateBattleData(); battleId = clientData.GetBattleId(); // Init battle situation data. deltaTime = GameConstants.LOGIC_FRAME_TIME; deltaTimeMs = Mathf.RoundToInt(deltaTime * 1000); List <Battler> battler = clientData.GetBattlers(); sideBattleSituations = new Dictionary <MatchSide, List <BattleSituation> >(); sideBattleSituations.Add(MatchSide.Blue, new List <BattleSituation>()); sideBattleSituations.Add(MatchSide.Red, new List <BattleSituation>()); for (int i = 0; i < battler.Count; i++) { BattleSituation bs = new BattleSituation(); long battlerId = battler[i].playerId; bs.playerId = battlerId; if (battler[i].side == MatchSide.Blue) { sideBattleSituations[MatchSide.Blue].Add(bs); } else if (battler[i].side == MatchSide.Red) { sideBattleSituations[MatchSide.Red].Add(bs); } } status = SimulateBattleStatus.Playing; }
private void SetCurrentBattleResult(NoticeC2S noticeC2S = null) { NoticeS2C noticeS2C = new NoticeS2C(); NoticeType type = NoticeType.BattleResultBlueWin; if (noticeC2S != null) { type = noticeC2S.type; } else { type = NoticeType.BattleResultBlueWin; } DebugUtils.Log(DebugUtils.Type.SimulateBattleMessage, string.Format("Send {0} feed back succeed ", MsgCode.NoticeMessage)); // battle end need to stop send updateS2CS if (type == NoticeType.BattleResultBlueWin || type == NoticeType.BattleResultRedWin || type == NoticeType.BattleResultDraw) { DataManager clientData = DataManager.GetInstance(); NoticeS2C.BattleResult resultData = new NoticeS2C.BattleResult(); resultData.battleDuration = (int)(battleDurationTimer * 0.001f); FillSituantionData(MatchSide.Red, resultData.redBattleSituations); FillSituantionData(MatchSide.Blue, resultData.blueBattleSituations); resultData.gainGold = 0; resultData.gainExp = 0; resultData.currentExp = 0; resultData.upLevelExp = 0; resultData.playerLevel = 0; noticeS2C.battleResult = resultData; status = SimulateBattleStatus.End; DebugUtils.Log(DebugUtils.Type.SimulateBattleMessage, string.Format("Send battle result feed back succeed: {0}", type)); } noticeS2C.type = type; byte[] dataS2C = ProtobufUtils.Serialize(noticeS2C); simMessageHandlers[MsgCode.NoticeMessage](dataS2C); }
public static void SetBattleRecordPlayState(int state) { switch (state) { case 1: { // play status = SimulateBattleStatus.Playing; DebugUtils.Log(DebugUtils.Type.SimulateBattleMessage, string.Format("Set simulate battle state {0}", status)); break; } case 2: { // pause or continue if (status == SimulateBattleStatus.Pause) { status = SimulateBattleStatus.Playing; } else { status = SimulateBattleStatus.Pause; } DebugUtils.Log(DebugUtils.Type.SimulateBattleMessage, string.Format("Set simulate battle state {0}", status)); break; } case 3: { // quit DebugUtils.Log(DebugUtils.Type.SimulateBattleMessage, string.Format("Set simulate battle state {0}", status)); break; } } }