// Start is called before the first frame update void Start() { mStagePath = "standard"; Subject.addObserver(new Observer("gameConfigMain", (a) => { if (a.name == "start") { GameInitData tData = getGameData(); MySceneManager.changeScene("game", new Arg(new Dictionary <string, object> { { "data", tData } })); } else if (a.name == "back") { MySceneManager.changeScene("title"); } else if (a.name == "selectStage") { MySceneManager.openScene("selectStage", new Arg(new Dictionary <string, object> { { "path", mStagePath } }), null, (aArg) => { TextMesh tText = GameObject.Find("stageName").GetComponent <TextMesh>(); tText.text = aArg.get <string>("stageName"); mStagePath = aArg.get <string>("stageFilePath"); }); } })); }
private void ExecuteStartSinglePlayerGameCommand(object parameter) { if (Interlocked.CompareExchange(ref _gameController, null, null) != null) { return; } LoadDefaultTheme(); var startScreen = new SinglePlayerStartScreen(_soundPlayer); // deactivate following completely for switching to using MP-Screen as well for SP var dialogResult = startScreen.ShowDialog(); if (!dialogResult.HasValue || !dialogResult.Value) { return; } var initData = GameInitData.CreateSinglePlayerGame(startScreen.Options, startScreen.EmpireID); //if (startScreen.EmpireID = 5) // var initData = GameInitData.CreateSinglePlayerGame(startScreen.Options, themeID); RunGameController(gameController => gameController.RunLocal(initData), false); // activate following for switching to using MP-Screen as well for SP //var initData = GameInitData.CreateMultiplayerGame(GameOptionsManager.LoadDefaults(), "LOCAL PLAYER"); //RunGameController(gameController => gameController.RunLocal(initData), true); }
static void Postfix(ref GameInitData __instance) { foreach (Pawn startingPawn in __instance.startingAndOptionalPawns) { MoreThanCapableMod.ResetHatedWorkTypes(startingPawn); } }
/// <summary> /// 执行数据加载进程 /// </summary> /// <param name="datas"></param> /// <param name="startCallBack"></param> /// <param name="completeCallback"></param> private void DoDataInitProccess(List <GameInitData> datas , Action <GameInitData> startCallBack , Action <GameInitData, float> completeCallback) { if (null != datas && datas.Count > 0) { GameInitData initData = datas[0]; Action <GameInitData, float> onComplete = (data, progress) => { if (null != completeCallback) { completeCallback.Invoke(data, progress); } if (1 - progress <= Mathf.Epsilon) { datas.RemoveAt(0); CoroutineMgr.Instance.DelayInvokeMethod(0.1f, () => { DoDataInitProccess(datas, startCallBack, completeCallback); }); } }; //开启数据配置协成 CoroutineMgr.Instance.StartCorountine(InitGameDataCor(initData, startCallBack, onComplete)); } }
private void ExecuteLoadGameCommand(SavedGameHeader header) { var initData = GameInitData.CreateFromSavedGame(header); GameLog.Client.General.Debug("doing ExecuteLoadGameCommand ..."); RunGameController(gameController => gameController.RunLocal(initData), initData.IsMultiplayerGame); GameLog.Client.General.Debug("doing gameController.RunLocal(initData) ..."); }
public bool TryGetCachedValue(GameInitData initData, out int ticksAbs) { if (initData.startingTile == this.cachedForStartingTile && initData.startingSeason == this.cachedForStartingSeason) { ticksAbs = this.cachedTicks; return(true); } ticksAbs = -1; return(false); }
public static GameInitData Create(GameInitDataType initType, string des , Action <Action <GameInitData, float>, GameInitData> callmethod, int costTimeCount = 7) { GameInitData data = new GameInitData() { InitDataType = initType, Des = des, CallMethod = callmethod, CostTimeCount = costTimeCount, }; return(data); }
public HostGameResult HostGame(GameInitData initData, out Player localPlayer, out LobbyData lobbyData) { try { return(Channel.HostGame(initData, out localPlayer, out lobbyData)); } catch (FaultException) { localPlayer = null; lobbyData = null; return(HostGameResult.ChannelFaultFailure); } }
public bool TryGetCachedValue(GameInitData initData, out int ticksAbs) { bool result; if (initData.startingTile == this.cachedForStartingTile && initData.startingSeason == this.cachedForStartingSeason) { ticksAbs = this.cachedTicks; result = true; } else { ticksAbs = -1; result = false; } return(result); }
private GameInitData getGameData() { GameInitData tData = new GameInitData(); tData.mPlayerDataList = new GameInitData.PlayerData[4]; for (int i = 0; i < 4; i++) { GameInitData.PlayerData tPlayer = new GameInitData.PlayerData(); tPlayer.mAnimalName = mPlayers[i].GetComponentInChildren <FaceButton>().getAnimalName(); tPlayer.mIsPlayer = mPlayers[i].findChild <MeetCheck>("playerCheck").mIsChecked; tData.mPlayerDataList[i] = tPlayer; } tData.mInitialFood = int.Parse(mMeetList.mSelected.Substring(0, mMeetList.mSelected.Length - 1)); tData.mLooting = int.Parse(mLootingList.mSelected.Substring(0, mLootingList.mSelected.Length - 1)); tData.mAcquisition = mAcquisitionCheck; tData.mStagePath = mStagePath; return(tData); }
/// <summary> /// 执行配置数据协成 /// </summary> /// <param name="initData"></param> /// <param name="complte"></param> /// <returns></returns> private System.Collections.IEnumerator InitGameDataCor(GameInitData initData, Action <GameInitData> startCallBack, Action <GameInitData, float> complte) { yield return(new WaitForEndOfFrame()); if (null != startCallBack) { startCallBack.Invoke(initData); } if (null != initData.CallMethod) { initData.CallMethod.Invoke(complte, initData); } else { complte.Invoke(initData, 1f); } yield break; }
/*private void Start() * { * PlayButtonPressed(); * }*/ public void PlayButtonPressed() { Debug.Log("Play pressed !!!"); // Fill data in GameInitData TeamDescriptor descPlayer = new TeamDescriptor(); descPlayer.type = Team.Type.PLAYER; descPlayer.species = species[0]; TeamDescriptor descAI = new TeamDescriptor(); descAI.type = Team.Type.AI; descAI.species = species[1]; GameInitData.Reset(); GameInitData.teamsDescriptions.Add(descPlayer); GameInitData.teamsDescriptions.Add(descAI); SceneManager.LoadScene(1); }
public CustomStartingSite() { OneWayToShow = true; WorldEditor.InitEditor(); absorbInputAroundWindow = false; shadowAlpha = 0f; preventCameraMotion = false; var init = new GameInitData { playerFaction = Find.FactionManager.OfPlayer }; Current.Game.InitData = init; Current.Game.Scenario.PreConfigure(); ScenPart scenPart = Current.Game.Scenario.AllParts.Where(p => p is ScenPart_ConfigPage_ConfigureStartingPawns).FirstOrDefault(); Current.Game.InitData.startingPawnCount = (scenPart as ScenPart_ConfigPage_ConfigureStartingPawns).pawnCount; Current.Game.InitData.startingAndOptionalPawns = WorldEditor.LoadedTemplate.StartPawns; }
public void Initialize(GameInitData data) { throw new System.NotImplementedException(); }
/// <summary> /// 构建游戏初始化数据 /// </summary> private void StructGameInitData(GameObject root) { if (null == m_lstGameInitDatas) { m_lstGameInitDatas = new List <GameInitData>(); } m_lstGameInitDatas.Clear(); //1、网络初始化 GameInitData gameInitData = GameInitData.Create(GameInitDataType.Net, "网络初始化", (progressCallback, data) => { //网络初始化 NetService.Instance.Init(); progressCallback.Invoke(data, 1); }); m_lstGameInitDatas.Add(gameInitData); //2、品质设置 gameInitData = GameInitData.Create(GameInitDataType.Quality, "品质设置", (progressCallback, data) => { //品质设置 QualitySettings.pixelLightCount = 3; QualitySettings.SetQualityLevel((int)QualityLevel.Good); progressCallback.Invoke(data, 1f); if (SystemInfo.systemMemorySize < 1024) { QualitySettings.shadows = ShadowQuality.Disable; } }, 30); m_lstGameInitDatas.Add(gameInitData); //3、配置表设置 gameInitData = GameInitData.Create(GameInitDataType.Table, "配置表设置", (progressCallback, data) => { // 配置表路径设置 Table.SetDataPath("common/tab/"); float totalSubProgress = 0; Action <float> subAction = (subProgress) => { totalSubProgress = 0.8f * subProgress; progressCallback.Invoke(data, totalSubProgress); }; // 加载配置表 GameTableManager.Instance.LoadTable(subAction); GameTableManager.Instance.LoadGloabalConst(); progressCallback.Invoke(data, 1); }, 50); m_lstGameInitDatas.Add(gameInitData); //5、游戏环境初始化 gameInitData = GameInitData.Create(GameInitDataType.GameEnvironment, "游戏环境初始化", (progressCallback, data) => { // 设置特效加载回调 EffectLoad effectLoad = new EffectLoad(); Engine.RareEngine.Instance().SetEffectLoad(effectLoad); // 镜头bloom效果 CameraBloomEffect cameraBloom = new CameraBloomEffect(); Engine.RareEngine.Instance().SetCameraBloom(cameraBloom); progressCallback.Invoke(data, 0.2f); //剧情 SequencerManager.Instance().Init(); AppleSceneMaterial.Instance(); progressCallback.Invoke(data, 0.4f); // 实体消息缓存 EntityCreator.Instance().Init(); progressCallback.Invoke(data, 0.6f); // 游戏逻辑初始化 ClientGlobal.Instance().Init(); progressCallback.Invoke(data, 0.8f); ////生成数据管理器 //DataManager.Instance.Create(); //TipsManager.Instance.Initialize(); progressCallback.Invoke(data, 1); }, 20); m_lstGameInitDatas.Add(gameInitData); //6、本地数据初始化 gameInitData = GameInitData.Create(GameInitDataType.DataManager, "本地数据初始化", (progressCallback, data) => { //本地数据初始化 float totalSubProgress = 0; Action <float> subAction = (subProgress) => { totalSubProgress = 0.99f * subProgress; progressCallback.Invoke(data, totalSubProgress); }; DataManager.Instance.Create(subAction); TipsManager.Instance.Initialize(); progressCallback.Invoke(data, 1); }, 30); m_lstGameInitDatas.Add(gameInitData); //4、GVoice初始化 gameInitData = GameInitData.Create(GameInitDataType.GVoice, "GVoice初始化", (progressCallback, data) => { //GVoice初始化 GVoiceManger.Instance.InitGvoice(); progressCallback.Invoke(data, 1); }); m_lstGameInitDatas.Add(gameInitData); }
public void Cache(int ticksAbs, GameInitData initData) { this.cachedTicks = ticksAbs; this.cachedForStartingTile = initData.startingTile; this.cachedForStartingSeason = initData.startingSeason; }
public void Initialize(GameInitData gameInitData) { _gameInitData = gameInitData; }
/// <summary> /// Generates a valid first state for the game. /// </summary> /// <param name="gameInitData">A <see cref="GameInitData"/> object containing the initialization parameters for this board.</param> /// <returns></returns> public abstract TGameState CreateFirstState(GameInitData gameInitData);
private void ExecuteHostMultiplayerGameCommand(string playerName) { var initData = GameInitData.CreateMultiplayerGame(GameOptionsManager.LoadDefaults(), playerName); RunGameController(gameController => gameController.RunLocal(initData), true); }
protected virtual void InitSmth(GameInitData data) { _data = data; }
public void HostAndConnect(GameInitData initData, IPAddress remoteServerAddress) { if (initData == null) { throw new ArgumentNullException("initData"); } if (remoteServerAddress == null) { throw new ArgumentNullException("remoteServerAddress"); } CheckDisposed(); try { _serviceClient = new ServiceClient( new InstanceContext(_clientCallback), LocalEndpointConfigurationName); _serviceClient.InnerChannel.Closed += OnChannelClosed; _serviceClient.InnerDuplexChannel.Closed += OnChannelClosed; _serviceClient.InnerChannel.Faulted += OnChannelFaulted; _serviceClient.InnerDuplexChannel.Faulted += OnChannelFaulted; lock (_clientLock) { _connectionEstablished = true; _isConnected = true; } OnConnected(); bool operationFailed = false; var hostGameResult = _serviceClient.HostGame(initData, out Player localPlayer, out LobbyData lobbyData); switch (hostGameResult) { case HostGameResult.Success: _saveGameCommand.IsActive = true; Observable.ToAsync( () => ClientEvents.LobbyUpdated.Publish(new ClientDataEventArgs <ILobbyData>(lobbyData)), _scheduler)(); break; case HostGameResult.LoadGameFailure: _disconnectReason = ClientDisconnectReason.LoadGameFailure; operationFailed = true; break; case HostGameResult.ChannelFaultFailure: _disconnectReason = ClientDisconnectReason.LocalServiceFailure; operationFailed = true; break; default: case HostGameResult.ServiceAlreadyRunning: case HostGameResult.UnknownFailure: _disconnectReason = ClientDisconnectReason.UnknownFailure; operationFailed = true; break; } if (operationFailed) { Disconnect(); } } catch { Dispose(); throw; } }
protected override void InitSmth(GameInitData data) { Debug.Log("init data" + data); base.InitSmth(data); }