예제 #1
0
        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));
        }
예제 #2
0
        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;
        }
예제 #3
0
        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
                );
        }