示例#1
0
        public void SeekReplayHighlightsNormalized(float normalizedOffset)
        {
            if (isReplayingHighlights == true)
            {
                float totalDuration = 0;

                for (int i = 0; i < highlightsStorage.Count; i++)
                {
                    totalDuration += highlightsStorage[i].Duration;
                }

                float targetTime = Mathf.Lerp(0, totalDuration, Mathf.Clamp01(normalizedOffset));

                for (int i = 0; i < highlightsStorage.Count; i++)
                {
                    if (targetTime < highlightsStorage[i].Duration)
                    {
                        ReplayManager.StopPlayback(ref replayHighlightHandle);
                        replayHighlightHandle = ReplayManager.BeginPlayback(highlightsStorage[i]);
                        ReplayManager.SetPlaybackTime(replayHighlightHandle, targetTime);
                        break;
                    }

                    targetTime -= highlightsStorage[i].Duration;
                }
            }
        }
        // Methods
        public IEnumerator Start()
        {
            // Usually you should register replay prefabs in editor via the global settings but it can also be done via code if required
            UltimateReplay.Settings.prefabs.RegisterReplayablePrefab(instanitatePrefab);


            // Start recording - Note that we need to enable 'allowEmptyScene' if there are no replay objects in the scene initially
            ReplayHandle recordHandle = ReplayManager.BeginRecording(null, null, true, true);

            // Wait for some time to pass
            yield return(new WaitForSeconds(1f));

            // Spawn a dynamic replay object
            ReplayObject obj = Instantiate(instanitatePrefab);

            // Add the object to all recording scenes - This is a required step otherwise the object will not be recorded
            ReplayManager.AddReplayObjectToRecordScenes(obj);

            // Wait for some time to pass now that the object has been spawned
            yield return(new WaitForSeconds(1));

            // End recording
            // The resulting replay will have 1 second of nothing and then the dynamic object will be re-instantiated by the replay system
            ReplayManager.StopRecording(ref recordHandle);
        }
示例#3
0
        public static void Main()
        {
            //init instances:
            LogControl       logControl    = new LogControl();
            SystemControl    sysControl    = new SystemControl(logControl);
            ReplayManager    replayManager = new ReplayManager();
            SessionIdHandler sidHandler    = new SessionIdHandler();
            GameCenter       gameCenter    = new GameCenter(sysControl, logControl, replayManager, sidHandler);
            var commHandler = CommunicationHandler.GetInstance();
            MessageEventHandler eventHandler = new MessageEventHandler(gameCenter, sysControl,
                                                                       logControl, replayManager, sidHandler);

            gameCenter.SetMessageHandler(eventHandler);
            var webEventHandler = new WebEventHandler(new ServerEventHandler(sidHandler, null,
                                                                             gameCenter, sysControl, logControl, replayManager, null));
            WebCommHandler webCommHandler = new WebCommHandler(webEventHandler);
            Task           commTask       = Task.Factory.StartNew(commHandler.Start);
            Task           webCommTask    = Task.Factory.StartNew(webCommHandler.Start);

            Console.WriteLine("starting comm");
            Task eventTask = Task.Factory.StartNew(eventHandler.HandleIncomingMsgs);

            commTask.Wait();
            webCommTask.Wait();
        }
示例#4
0
 private void OnPressKeyZ()
 {
     if (_mode == eReplayViewMode.Save)
     {
         _viewState = eViewState.EditReplayName;
         _itemList[_selectIndex].EditReplayName(OnEditEndCallback);
     }
     else if (_mode == eReplayViewMode.Load)
     {
         ReplayInfo info = _infoList[_selectIndex];
         if (info.replayIndex != -1)
         {
             bool isSuccess = ReplayManager.GetInstance().LoadReplay(info.replayIndex);
             if (isSuccess)
             {
                 Logger.Log("Load replay" + info.replayIndex + " success!");
                 SoundManager.GetInstance().Play("se_selectok", Consts.DefaultUISEVolume, false, false);
             }
             else
             {
                 Logger.Log("Load replay" + info.replayIndex + " fail!");
             }
         }
     }
 }
示例#5
0
        private void StartReplay(string execName = "default")
        {
            LeagueExecutable exec = null;

            // Get default exec or specified exec
            if (execName.Equals("default"))
            {
                // Start update form with default
                var result = new UpdateSplashForm().ShowDialog();

                if (result == DialogResult.OK)
                {
                    exec = ExecsManager.GetExec(ExecsManager.GetDefaultExecName());
                }
                else
                {
                    // Failed to get exec, stop
                    this.GeneralPlayReplaySplitButton.Enabled = true;
                    return;
                }
            }
            else
            {
                // Start update form with target
                var result = new UpdateSplashForm(execName).ShowDialog();

                if (result == DialogResult.OK)
                {
                    exec = ExecsManager.GetExec(execName);
                }
                else
                {
                    // Failed to get exec, stop
                    this.GeneralPlayReplaySplitButton.Enabled = true;
                    return;
                }
            }

            // This really shouldn't happen, but just to be safe
            if (exec == null)
            {
                MessageBox.Show($"Could not find executable data {execName}\nPlease run ROFL Player and check the executables", "Failed to start replay", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            var playtask = Task.Run(() =>
            {
                ReplayManager.StartReplay(replaypath, exec.TargetPath);
            }).ContinueWith((t) =>
            {
                this.BeginInvoke((Action)(() =>
                {
                    if (t.IsFaulted)
                    {
                        MessageBox.Show("Failed to play replay: " + t.Exception.GetType().ToString() + "\n" + t.Exception.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    GeneralPlayReplaySplitButton.Enabled = true;
                }));
            });
        }
示例#6
0
        public UserBridge(GameCenter gc, SystemControl sys, LogControl log, ReplayManager replay)
        {
            var ses = new SessionIdHandler();

            _gameService = new GameServiceHandler(gc, sys, log, replay, ses);
            _userService = new UserServiceHandler(gc, sys);
        }
示例#7
0
 static void Main(string[] args)
 {
     Application.EnableVisualStyles();
     Application.SetCompatibleTextRenderingDefault(false);
     // StartupMode, 0  = show detailed information, 1 = launch replay immediately
     try
     {
         if (args.Length == 0)
         {
             Application.Run(new SettingsForm());
         }
         else
         {
             if (RoflSettings.Default.StartupMode == 0)
             {
                 ReplayManager.StartReplay(args[0]);
             }
             else
             {
                 Application.Run(new DetailForm(args[0]));
             }
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(@"ROFLPlayer encountered an unhandled exception, please record this message and report it here https://github.com/andrew1421lee/ROFL-Player/issues" + "\n\n" + ex.ToString() + "\n" + ex.Source, "Critical Exception", MessageBoxButtons.OK, MessageBoxIcon.Error);
         Application.Exit();
     }
 }
示例#8
0
        private void MainForm_Load(object sender, EventArgs e)
        {
            ConfigManager.Initialize();
            ReplayManager.Initialize();

            this.LoadReplays();
        }
        // Methods
        public IEnumerator Start()
        {
            // Create a record scene for the record object
            ReplayScene recordScene = new ReplayScene(recordObject);

            // Start recording the single object
            ReplayHandle recordHandle = ReplayManager.BeginRecording(null, recordScene);

            // Allow some data to be recorded for 1 second
            yield return(new WaitForSeconds(1f));

            // Stop recording
            ReplayManager.StopRecording(ref recordHandle);


            // Clone the identity which allows the replayObject to be replayed as the recordObject
            ReplayObject.CloneReplayObjectIdentity(recordObject, replayObject);


            // Create a playback scene for the replay object
            ReplayScene playbackScene = new ReplayScene(replayObject);

            // Start playback
            ReplayManager.BeginPlayback(null, playbackScene);
        }
示例#10
0
        private void Awake()
        {
            var enemyPlacer = GetComponent <RandomEnemyPlacer>();

            enemyPlacer.PlaceRandomEnemies();

            _tileLayer = LayerMask.GetMask("Tiles");

            ReplayManager replayManager = new ReplayManager();

            _stateMachine = new StateMachine <GameStateBase>();

            var moveManager = new MoveManager <Piece>(Board);

            var playGameState = new PlayGameState(Board, moveManager);

            _stateMachine.RegisterState(GameStates.EnemyPhase1, new EnemyPhase1GameState(Board));
            _stateMachine.RegisterState(GameStates.EnemyPhase2, new EnemyPhase2GameState(Board));
            _stateMachine.RegisterState(GameStates.Play, playGameState);


            moveManager.Register(PlayerMoveCommandProvider.Name, new PlayerMoveCommandProvider(playGameState, replayManager));

            ConnectMoveCommandProviderView(moveManager);
            ConnectPieceViews(moveManager);
            ConnectTileViews(Board);
            ConnectBoardView(Board);

            _stateMachine.MoveTo(GameStates.EnemyPhase1);
        }
示例#11
0
 /// <summary>
 /// Constructeur <see cref="ReplayModel" /> class.
 /// </summary>
 /// <param name="mI">Accès à la fenetre principale</param>
 /// <param name="replayM">Modele du replay</param>
 public ReplayModel(MainInterface mI, Diaballik.Replay.ReplayManager replayM)
 {
     this.mI      = mI;
     this.replayM = replayM;
     AccessStop   = Visibility.Collapsed;
     AccessStart  = Visibility.Visible;
 }
        private int CalculateMemoryBufferSize()
        {
            int requiredBytes = 0;

            // Create a temp storage container
            ReplayState state = new ReplayState();

            // Get all active components
            foreach (ReplayBehaviour replay in Component.FindObjectsOfType <ReplayBehaviour>())
            {
                // Calculate the required size
                replay.OnReplaySerialize(state);
            }

            // Multiply by record fps
            ReplayManager manager = Component.FindObjectOfType <ReplayManager>();

            // Default to 24 fps
            requiredBytes = (manager != null) ? state.Size * manager.recordFPS : state.Size * 24;

            // Take into account the number of seconds in the memory buffer
            requiredBytes = (int)(requiredBytes * Replay.recordSeconds);

            return(requiredBytes);
        }
示例#13
0
        public ActionResult AJ(int webId = 33)
        {
            ReplayManager dal4  = new ReplayManager();
            var           list5 = dal4.Where(x => x.webId == webId).Select(x => new { x.webId, x.ReplayTime, x.User.UserName, x.ReplayResult, x.ReplayId, x.User.Userimg }).ToList();

            return(Json(list5, JsonRequestBehavior.AllowGet));
        }
示例#14
0
 /// <summary>
 /// 更新STG主线程
 /// </summary>
 private void OnSTGMainUpdate()
 {
     // 录像状态中,检测是否进行到了录像的最后一帧
     if (Global.IsInReplayMode)
     {
         if (_isReplayFinish)
         {
             return;
         }
         int curFrame = STGStageManager.GetInstance().GetFrameSinceStageStart();
         if (curFrame >= ReplayManager.GetInstance().GetReplayLastFrame())
         {
             _isReplayFinish = true;
             PauseGame(ePauseViewState.PauseAfterReplayFinished);
             return;
         }
         // 检测是否在游戏进行中按下Esc进行暂停
         if (!Global.IsPause && Input.GetKeyDown(KeyCode.Escape))
         {
             PauseGame(ePauseViewState.PauseInReplay);
         }
         else if (!Global.IsPause && !Global.IsApplicationFocus)
         {
             PauseGame(ePauseViewState.PauseInReplay);
         }
     }
     else
     {
         if (_isGameOver)
         {
             if (!Global.IsPause)
             {
                 _gameOverTimeCounter++;
                 if (_gameOverTimeCounter >= 30)
                 {
                     PauseGame(ePauseViewState.PauseAfterGameOver);
                     return;
                 }
             }
         }
         // 检测是否在游戏进行中按下Esc进行暂停
         if (!Global.IsPause && Input.GetKeyDown(KeyCode.Escape))
         {
             PauseGame(ePauseViewState.PauseInGame);
         }
         else if (!Global.IsPause && !Global.IsApplicationFocus)
         {
             PauseGame(ePauseViewState.PauseInGame);
         }
     }
     if (_resumeSTGSE)
     {
         _resumeSTGSE = false;
         SoundManager.GetInstance().ResumeAllSTGSound();
     }
     if (!Global.IsPause)
     {
         _stgMain.Update();
     }
 }
示例#15
0
    private void InitReplayItemInfo()
    {
        // 初始化
        _infoList = new List <ReplayInfo>();
        ReplayInfo info;

        for (int i = 0; i < MaxInfoCount; i++)
        {
            info = new ReplayInfo
            {
                replayIndex = -1,
            };
            _infoList.Add(info);
        }
        // 读取replay的信息
        List <ReplayInfo> infos = ReplayManager.GetInstance().GetReplayInfoList();

        _infoCount = infos.Count;
        for (int i = 0; i < _infoCount; i++)
        {
            info = infos[i];
            _infoList[info.replayIndex] = info;
        }
        // 更新ReplayItem的显示
        for (int i = 0; i < MaxInfoCount; i++)
        {
            ReplayItem item = _itemList[i];
            item.SetInfo(_infoList[i]);
        }
    }
示例#16
0
    public int WinAreaNumber = 1;                                                           // 中獎區編號

    private void Start()
    {
        // 初始給值
        BallFirstPos = Ball.transform.position;
        PinFirstPos  = Pin.transform.position;
        BallList.Add(Ball);
        ReplayM = this.GetComponent <ReplayManager>();

        // 上方設定
        TopCapsule.SetActive(false);
        int            horizontalOffset = int.Parse(HorizontalField.text);
        int            verticalOffset   = int.Parse(VerticalField.text);
        TopCapsuleInfo tempInfo         = new TopCapsuleInfo();

        tempInfo.capsule          = GameObject.Instantiate <GameObject>(TopCapsule);
        tempInfo.HorizontalOffset = horizontalOffset;
        tempInfo.VerticalOffset   = verticalOffset;
        tempInfo.capsule.SetActive(true);
        tempInfo.capsule.transform.SetParent(TopCapsule.GetComponentInParent <Transform>());
        tempInfo.NameID = 0;
        TopCapsuleList.Add(tempInfo);

        MoveTopCapsule();
        ResetPhysicMaterial();
    }
示例#17
0
        private void ManageReplaysDeleteButton_Click(object sender, EventArgs e)
        {
            ReplayData replayData = (ReplayData)ManageReplaysList.SelectedItems[0].Tag;

            ReplayManager.DeleteReplay(replayData.Filename);

            this.LoadReplays();
        }
示例#18
0
 public static ReplayManager GetInstance()
 {
     if (_instance == null)
     {
         _instance = new ReplayManager();
     }
     return(_instance);
 }
示例#19
0
        private int CalculateFrameSize()
        {
            // Get the replay manager
            ReplayManager manager = (target as ReplayManager);

            // Take record fps into account
            return(CalculateSampleSize() * manager.recordFPS);
        }
        // Methods
        public void Start()
        {
            // Load an existing replay file from the specified file path
            ReplayFileTarget replayFile = ReplayFileTarget.ReadReplayFile("C:/ReplayFiles/Example.replay");

            // Start replaying
            ReplayManager.BeginPlayback(replayFile);
        }
示例#21
0
 private void Awake()
 {
     courtManager    = GetComponent <CourtManager>();
     pointManager    = GetComponent <PointManager>();
     soundManager    = GetComponent <SoundManager>();
     replayManager   = GetComponent <ReplayManager>();
     tennisVariables = GetComponent <TennisVariables>();
 }
示例#22
0
        public GameBridge(GameCenter gc, SystemControl sys, LogControl log, ReplayManager replay)
        {
            _gameCenter = gc;
            var ses = new SessionIdHandler();

            _gameService  = new GameServiceHandler(gc, sys, log, replay, ses);
            _userService  = new UserServiceHandler(gc, sys);
            _logDbHandler = new LogsOnlyForTest();
        }
        private IEnumerator RestartKillcamRecording()
        {
            // Wait a frame
            yield return(null);

            // Start recording again
            killcamStorage.Clear();

            killcamHandle = ReplayManager.BeginRecording(killcamStorage);
        }
        // Methods
        public void Start()
        {
            // Create a memory storage target to store the replay
            ReplayStorageTarget storage = new ReplayMemoryTarget();

            // Begin recording to the specified storage target.
            // We should store the returned replay handle as all other replay operations will expect this value as a parameter to identify the recording
            // By default, all replay objects in the active scene will be recorded.
            recordHandle = ReplayManager.BeginRecording(storage);
        }
示例#25
0
 /// <summary>
 /// 疮痍之后继续游戏
 /// </summary>
 private void OnContinueAfterGameOver()
 {
     ReplayManager.GetInstance().SetReplayEnable(false);
     Global.IsPause = false;
     _isGameOver    = false;
     _resumeSTGSE   = true;
     // 设置初始残机数和符卡数目
     PlayerInterface.GetInstance().SetLifeCounter(Consts.STGInitLifeCount, 0);
     PlayerInterface.GetInstance().SetSpellCardCounter(Consts.STGInitSpellCardCount, 0);
 }
        // Methods
        public override void Awake()
        {
            base.Awake();

            // Create a rolling memory buffer of 10 seconds
            killcamStorage = ReplayMemoryTarget.CreateTimeLimitedRolling(recordKillcamSeconds);

            // Start recording
            killcamHandle = ReplayManager.BeginRecording(killcamStorage);
        }
示例#27
0
 public GameServiceHandler(GameCenter gc, SystemControl sys, LogControl log,
                           ReplayManager replay, SessionIdHandler sidHandler)
 {
     _gameCenter    = gc;
     _systemControl = sys;
     _logControl    = log;
     _replayManager = replay;
     //new MessageEventHandler(gc, sys, log, replay, sidHandler);
     _proxyDb = new GameDataProxy(_gameCenter);
 }
示例#28
0
    private void Awake()
    {
        _replayBuffers = new List <ReplayBuffer>();
        if (_instance != null && _instance != this)
        {
            Destroy(this.gameObject);
        }

        _instance = this;
    }
示例#29
0
        private void LoadReplays()
        {
            List <ReplayData> replayDataList = ReplayManager.LoadReplays();

            this.ClearManageReplaysList();

            foreach (ReplayData replayData in replayDataList)
            {
                this.AddReplayToReplaysList(replayData);
            }
        }
    public void Init(ReplayManager rm, float m_framesToRecord)
    {
        m_State     = State.Recording;
        m_maxFrames = m_framesToRecord;

        m_replayManager = rm;
        m_replayManager.OnStopRecordingAction += StopRecording;
        m_replayManager.OnReplayAction        += StartReplayFromBeginning;
        m_replayManager.OnStopReplayAction    += StopReplay;
        m_replayManager.OnRewindAction        += RewindToPoint;
    }
示例#31
0
    //EMode Mode
    //{
    //    get { return m_eMode; }
    //    set
    //    {
    //        m_eMode = value;
    //        if (value == EMode.Replay)
    //            m_ReplayManager.StartReplay();
    //    }
    //
    //}
    void Start()
    {
        m_tPlayers = GameObject.FindGameObjectsWithTag("Player");
        m_tBall = GameObject.FindGameObjectWithTag("Ball");
        m_tTerrain = GameObject.Find("Stade");
        m_tGoals = GameObject.FindGameObjectsWithTag("Goal");
        pUiTransition = GameObject.FindGameObjectsWithTag("Transition");
        m_ReplayManager = transform.GetComponentInChildren<ReplayManager>();

        m_eMode = EMode.Gameplay;
        TimerBeforeStart = MaxTimer;
    }