public void SaveReplay(int index, string name, STGData data) { if (Global.IsInReplayMode) { return; } ReplayInfo info = new ReplayInfo { replayIndex = index, name = name, dateTick = System.DateTime.Now.Ticks, lastFrame = STGStageManager.GetInstance().GetFrameSinceStageStart(), stageName = data.stageName, characterIndex = data.characterIndex, }; ReplayData repData = new ReplayData(); repData.info = info; repData.keyList = OperationController.GetInstance().GetOperationKeyList(); repData.lastFrame = STGStageManager.GetInstance().GetFrameSinceStageStart(); repData.seed = data.seed; // 写入info文件 WriteRepInfoFile(info); WriteRepDataFile(repData); }
private void OnCharacterSelected(int characterIndex) { _selCharacterIndex = characterIndex; STGData data = new STGData(); data.stageName = "Stage1"; data.characterIndex = _selCharacterIndex; data.isReplay = false; _fsm.SetNextStateId((int)eGameState.STG, data); }
private void OnLoadReplaySuccess(ReplayData repData) { STGData data = new STGData(); data.stageName = repData.info.stageName; data.characterIndex = repData.info.characterIndex; data.isReplay = true; data.seed = repData.seed; _fsm.SetNextStateId((int)eGameState.STG, data); }
public void OnStateEnter(object data = null) { // 打开loadingView List <object> commandList = new List <object>(); commandList.Add(CommandConsts.STGInitComplete); commandList.Add(CommandConsts.STGLoadStageLuaComplete); commandList.Add(CommandConsts.STGLoadStageDefaultBgComplete); object[] commandArr = commandList.ToArray(); UIManager.GetInstance().ShowView(WindowName.GameLoadingView, commandArr); // STGCamera启用 UIManager.GetInstance().GetSTGCamera().cullingMask = (1 << Consts.STGLayerIndex); // 添加监听 CommandManager.GetInstance().Register(CommandConsts.RetryGame, this); CommandManager.GetInstance().Register(CommandConsts.RetryStage, this); CommandManager.GetInstance().Register(CommandConsts.ContinueGame, this); CommandManager.GetInstance().Register(CommandConsts.StageClear, this); CommandManager.GetInstance().Register(CommandConsts.SaveReplay, this); CommandManager.GetInstance().Register(CommandConsts.BackToTitle, this); _stgData = (STGData)data; // 设置需要载入的stage _nextStageName = _stgData.stageName; // 打开界面 UIManager.GetInstance().ShowView(WindowName.GameInfoView, null); UIManager.GetInstance().ShowView(WindowName.STGBottomView, null); UIManager.GetInstance().ShowView(WindowName.GameMainView); UIManager.GetInstance().ShowView(WindowName.STGDialogView); // 实例化STGMain if (_stgMain == null) { _curState = eSTGMainState.StateInitSTGMain; } else { _curState = eSTGMainState.StateInitSTGData; } }
private void OnPreloadFinishUpdate() { CommandManager.GetInstance().RunCommand(CommandConsts.PreloadComplete); #if StartFromGame #if StartWithReimu STGData data = new STGData() { stageName = "Stage1", characterIndex = 0, isReplay = false, }; #elif StartWithMarisa STGData data = new STGData() { stageName = "Stage1", characterIndex = 1, isReplay = false, }; #endif _fsm.SetNextStateId((int)eGameState.STG, data); #else _fsm.SetNextStateId((int)eGameState.Title); #endif }