public static void GoToBattlePlaybackState(ReplayMapDataLoader mapDataLoader) { BattlePlaybackState battlePlaybackState = new BattlePlaybackState(); battlePlaybackState.Setup(null, null, mapDataLoader); Service.Get <EventManager>().RegisterObserver(battlePlaybackState, EventId.BattleRecordRetrieved, EventPriority.Default); }
private void ReplayLastBattleOrReplay() { CurrentBattle currentBattle = Service.Get <BattleController>().GetCurrentBattle(); ReplayMapDataLoader replayMapDataLoader = Service.Get <ReplayMapDataLoader>(); BattleRecord battleRecord = Service.Get <BattleRecordController>().BattleRecord; BattleEntry battleEntry = currentBattle.Clone(); replayMapDataLoader.InitializeFromData(battleEntry, battleRecord); BattlePlaybackState.GoToBattlePlaybackState(battleRecord, battleEntry, replayMapDataLoader); this.LogReplayViewed(battleEntry.RecordID, battleEntry.Defender.PlayerId, battleEntry.SharerPlayerId); }
public void ReplayBattle(string battleId, BattleParticipant defender, string sharerPlayerId) { ProcessingScreen.Show(); ReplayMapDataLoader replayMapDataLoader = Service.Get <ReplayMapDataLoader>(); replayMapDataLoader.Initialize(defender, sharerPlayerId); GetReplayCommand getReplayCommand = new GetReplayCommand(Service.Get <CurrentPlayer>().PlayerId, battleId, defender.PlayerId); getReplayCommand.AddSuccessCallback(new AbstractCommand <GetReplayRequest, GetReplayResponse> .OnSuccessCallback(replayMapDataLoader.OnReplayLoaded)); getReplayCommand.AddFailureCallback(new AbstractCommand <GetReplayRequest, GetReplayResponse> .OnFailureCallback(replayMapDataLoader.OnReplayLoadFailed)); Service.Get <ServerAPI>().Sync(getReplayCommand); Service.Get <BattlePlaybackController>().LogReplayViewed(battleId, defender.PlayerId, sharerPlayerId); }