Start() public méthode

public Start ( ) : void
Résultat void
Exemple #1
0
        private async Task OnNextStep(
            string roomId,
            int currentRoundNumber,
            string currentHiddenWord,
            GameDto gameDto,
            GameEntity gameEntity)
        {
            if (currentRoundNumber < gameEntity.RoundNumber)
            {
                await SendNotificationAfterEndOfRound(roomId, currentHiddenWord, currentRoundNumber + 1);
            }

            if (gameEntity.GameState == GameState.Finished)
            {
                var pointsWinner = gameEntity.Players.Max(p => p.Score);
                var winner       = gameEntity.Players.First(p => p.Score == pointsWinner);
                userRepository.IncreaseWinsCount(winner);
                foreach (var player in gameEntity.Players)
                {
                    userRepository.UpdateStatistics(player);
                }

                gameEntity.Start();
                gameDto = mapper.Map <GameDto>(gameEntity);
                roomRepository.UpdateGame(int.Parse(roomId), gameDto);
                var victoryNotification = MessageFactory.CreateVictoryNotification(winner.Name);
                await Clients.Group(roomId).SendAsync(RoomHubEvents.GameOver, victoryNotification);
            }
            else
            {
                await Clients.Group(roomId).SendAsync(RoomHubEvents.RoundInfo,
                                                      gameEntity.ExplainingPlayerName, gameEntity.GetSecondsLeft());
            }
        }
Exemple #2
0
        public GameEntity Spawn(World world, Vector3 pos)
        {
            Utils.Log("Spawning template: " + tagsAsText);
            GameEntity     result  = Activator.CreateInstance(entityToSpawn) as GameEntity;
            PhysicalEntity physEnt = result as PhysicalEntity;

            if (physEnt != null)
            {
                world.AddEntity(physEnt);
                physEnt.PlaceNear(pos);
            }

            ApplyValues(result);

            foreach (Property subComp in subComponents)
            {
                int qtdToSpawn = subComp.CalcQtyToSpawn();
                for (int i = 0; i < qtdToSpawn; i++)
                {
                    SpawnSubComponent(world, pos, result, subComp);
                }
            }
            result.Start();
            return(result);
        }
Exemple #3
0
        private static GameEntity CreateGame(IEnumerable <DominoTileEntity> firstPlayedTiles, IEnumerable <DominoTileEntity> secondPlayedTiles)
        {
            var gameId       = Guid.NewGuid();
            var mexicanTrain = MexicanTrain.Create();
            var engine       = new DominoTileEntity(12, 12, true);
            var firstPlayer  = PlayerEntity.Create(gameId, Guid.NewGuid(), engine, firstPlayedTiles.ToHashSet(), "playerOne");
            var secondPlayer = PlayerEntity.Create(gameId, Guid.NewGuid(), engine, secondPlayedTiles.ToHashSet(), "playerTwo");

            firstPlayer.GiveTurn();
            var sut = new GameEntity(
                gameId,
                new[] { firstPlayer, secondPlayer },
                mexicanTrain,
                engine,
                new Stack <DominoTileEntity>(new[] { new DominoTileEntity(9, 8), new DominoTileEntity(9, 9) }));

            Games.Add(sut.Id, sut);
            sut.Start();
            return(sut);
        }
        private void PlaceEntity(int index, GameEntity entity)
        {
            EntityPlacement info = _info.Entities[index];

            // can't respawn until the spawn point goes off screen
            _spawnable[index] = false;

            _respawnTracker.Track(info, entity);

            entity.Direction = info.direction;

            entity.Start(_stage);

            entity.GetComponent<PositionComponent>().SetPosition(new PointF(info.screenX, info.screenY));
            if (info.state != "Start")
            {
                StateMessage msg = new StateMessage(null, info.state);
                entity.SendMessage(msg);
            }

            _entities[index] = entity;
            Action remove = () => { };
            remove += () => {
                _entities[index] = null;
                entity.Removed -= remove;
            };
            entity.Removed += remove;
        }
        public override void Start(ScreenHandler screen)
        {
            base.Start(screen);

            doorOne = _entityPool.CreateEntity(JoinInfo.bossEntityName);
            doorTwo = _entityPool.CreateEntity(JoinInfo.bossEntityName);

            doorOne.GetComponent<PositionComponent>().SetPosition(new PointF(doorOneX, doorOneY));
            doorTwo.GetComponent<PositionComponent>().SetPosition(new PointF(doorTwoX, doorTwoY));

            doorOne.Start(container);
            doorTwo.Start(container);

            doorOne.GetComponent<StateComponent>().StateChanged += s =>
            {
                if (s == "Open") open = true;
            };
        }