public static IPlayGame CreateMultiPlayGame(PlayGameInitData playGameInitData) { var multiGameInfo = StartGameInfo.StartGameInfo.GetMultiGameInfo(); if (multiGameInfo.matchType == MatchType.Host) { return(new HostMultiPlayGame(playGameInitData, multiGameInfo)); } return(new ClientMultiPlayGame(playGameInitData, multiGameInfo)); }
public ClientMultiPlayGame(PlayGameInitData playGameInitData, MultiGameInfo multiGameInfo) { gameSignalingClient = new GameSignalingClient(multiGameInfo.myTcpClient); gameSignalingClient.ReceivedBattleResult += CheckDeath; var playerMeleeAttackEntity = Object.Instantiate(playGameInitData.meleeAttackPrefab); playerMeleeAttackEntity.gameObject.layer = LayerMask.NameToLayer("PlayerBullet"); var enemyMeleeAttackEntity = Object.Instantiate(playGameInitData.meleeAttackPrefab); enemyMeleeAttackEntity.gameObject.layer = LayerMask.NameToLayer("EnemyBullet"); playerBotController = new ClientBotController( playGameInitData.botEntityPrefab2P, playGameInitData.tileMapInfo, playGameInitData.bulletPrefab, playGameInitData.cameraFollower, playGameInitData.playerHpPresenter, playGameInitData.runButtonEvent, playGameInitData.scriptText, playGameInitData.errorMsg, playGameInitData.soundManager, gameSignalingClient, playerMeleeAttackEntity, playGameInitData.processScrollViewPresenter, playGameInitData.eventSystemWatcher ); enemyBotController = new RemoteHostBotController( playGameInitData.botEntityPrefab, playGameInitData.tileMapInfo, playGameInitData.bulletPrefab, playGameInitData.soundManager, gameSignalingClient, enemyMeleeAttackEntity, playGameInitData.eventSystemWatcher ); gameSignalingClient.ReceivedClientPos += playerBotController.SetPos; gameSignalingClient.ReceivedHostPos += enemyBotController.SetPos; }
public HostMultiPlayGame(PlayGameInitData playGameInitData, MultiGameInfo multiGameInfo) { gameSignalingHost = new GameSignalingHost(multiGameInfo.myTcpClient, SelectedStageData.GetSelectedStageKind()); var playerMeleeAttackEntity = Object.Instantiate(playGameInitData.meleeAttackPrefab); playerMeleeAttackEntity.gameObject.layer = LayerMask.NameToLayer("PlayerBullet"); var enemyMeleeAttackEntity = Object.Instantiate(playGameInitData.meleeAttackPrefab); enemyMeleeAttackEntity.gameObject.layer = LayerMask.NameToLayer("EnemyBullet"); playerBotController = new HostBotController( playGameInitData.botEntityPrefab, playGameInitData.tileMapInfo, playGameInitData.bulletPrefab, playGameInitData.cameraFollower, playGameInitData.playerHpPresenter, playGameInitData.runButtonEvent, playGameInitData.scriptText, playGameInitData.errorMsg, playGameInitData.soundManager, gameSignalingHost, playerMeleeAttackEntity, playGameInitData.processScrollViewPresenter, playGameInitData.eventSystemWatcher ); enemyBotController = new RemoteClientBotController( playGameInitData.botEntityPrefab2P, playGameInitData.tileMapInfo, playGameInitData.bulletPrefab, playGameInitData.soundManager, gameSignalingHost, enemyMeleeAttackEntity, playGameInitData.eventSystemWatcher ); }