Esempio n. 1
0
        public void LoadFromDatabase()
        {
            PlayerConfiguration configuration = new PlayerConfiguration();

            colorState = configuration.ColorID;
            buttons[0].SetFontColor(TileGrid.ColorComparer(configuration.ColorID));
        }
Esempio n. 2
0
 public void SavePlayerInfo()
 {
     configuration.Name       = banners[0].PlayerAvatarName;
     configuration.LoadAvatar = banners[0].ShowAvatar;
     configuration.ColorID    = TileGrid.ColorComparer(banners[0].Color);
     configuration.SaveToXML();
 }
Esempio n. 3
0
        private void SwitchColor()
        {
            bannerManager.SetColor(TileGrid.ColorComparer((int)activeMenu.GetInformation()));

            if (activeMenu is CreateLobby || activeMenu is JoinLobby)
            {
                bannerManager.OnColorSwitch(TileGrid.Player, (int)activeMenu.GetInformation(), TileGrid.ColorComparer(TileGrid.activeColor), bannerManager.LobbyBannerPos);
            }
        }
Esempio n. 4
0
 private void AddTile()
 {
     if (IsTileSpawnerFree() && deckManager.CountAll>0)
     {
         int tileID = deckManager.GetNextTile();
         entities.Add(new Tile(++counter, deckManager.GetTileTexture(tileID), TileFrameTexture, TextBackground, EntityFont, Color.Black, spawner.ButtonLocation - new Vector2(100, 0), 0.6f));// - counter * layerStep));
         OnRequestTile(tileID, TileGrid.ColorComparer(TileGrid.activeColor),counter);
     }
 }
Esempio n. 5
0
        private void HandleColorSwitchMessage(NetIncomingMessage im)
        {
            var message = new ColorSwitchMessage(im);

            bannerManager.SetColor(TileGrid.ColorComparer(message.Color), message.Pos);

            if (this.IsHost)
            {
                bannerManager.OnColorSwitch(message.Name, message.Color, message.OldColor, message.Pos);
            }
        }
Esempio n. 6
0
 public void Update(GameTime gameTime)
 {
     for (int i = 0; i < banners.Count; i++)
     {
         banners[i].Update(gameTime);
         if (banners[i] is GameBanner && banners[i].Signal)
         {
             OnUpdateScore(i, banners[i].Score, TileGrid.ColorComparer(TileGrid.activeColor));
         }
     }
 }
Esempio n. 7
0
        private void HandleUpdateScoreMessage(NetIncomingMessage im)
        {
            var message = new UpdateScoreMessage(im);

            if (message.Color != TileGrid.ColorComparer(TileGrid.activeColor))
            {
                bannerManager.UpdateScore(message.BannerID, message.Score);
            }

            if (this.IsHost)
            {
                bannerManager.OnUpdateScore(message.BannerID, message.Score, message.Color);
            }
        }
Esempio n. 8
0
        public void Disconnect()
        {
            OnPlayerDisconnect(TileGrid.Player, TileGrid.ColorComparer(TileGrid.activeColor), bannerManager.LobbyBannerPos);

            bannerManager.RemoveLobbyBanners();

            if (TileGrid.GameState == GameStates.QuitGame)
            {
                bannerManager.RemoveGameBanners();
            }

            networkManager.Disconnect();
            IsDisconnected = true;
        }
Esempio n. 9
0
        private void HandleRequestBannerMessage(NetIncomingMessage im)
        {
            var message = new RequestBannerMessage(im);

            if (!(TileGrid.GameState == GameStates.Playing))
            {
                bannerManager.AddLobbyBanner(message.Name, TileGrid.ColorComparer(message.Color), message.IsUsingAvatar);
                bannerManager.OnPlayerBanner();
                if (this.IsHost)
                {
                    bannerManager.OnSendAllBanners();
                }
            }
        }
Esempio n. 10
0
        private void HandleRequestTileMessage(NetIncomingMessage im)
        {
            var message = new RequestTileMessage(im);

            if (message.Color != TileGrid.ColorComparer(TileGrid.activeColor))
            {
                tileManager.AddTile(message.TileID, message.Counter);
            }

            if (this.IsHost)
            {
                tileManager.OnRequestTile(message.TileID, message.Color, message.Counter);
            }
        }
Esempio n. 11
0
        private void HandleSnapTileMessage(NetIncomingMessage im)
        {
            var message = new SnapTileMessage(im);

            if (message.Color != TileGrid.ColorComparer(TileGrid.activeColor))
            {
                tileManager.SnapEntity(message.ID);
            }

            if (this.IsHost)
            {
                tileManager.OnSnapTile(message.ID, message.Name, message.Color);
            }
        }
Esempio n. 12
0
        private void HandleRemoveEntityMessage(NetIncomingMessage im)
        {
            var message = new RemoveEntityMessage(im);

            if (message.SenderColor != TileGrid.ColorComparer(TileGrid.activeColor))
            {
                tileManager.RemoveEntity(message.EntityID, message.InfoID);
            }

            if (this.IsHost)
            {
                tileManager.OnRemoveEntity(message.EntityID, message.InfoID, message.SenderColor);
            }
        }
Esempio n. 13
0
        private void HandleReleaseTileMessage(NetIncomingMessage im)
        {
            var message = new ReleaseTileMessage(im);

            if (message.Color != TileGrid.ColorComparer(TileGrid.activeColor))
            {
                tileManager.ReleaseEntity(message.ID, message.Name, TileGrid.ColorComparer(message.Color), message.Location, message.Scale);
            }

            if (this.IsHost)
            {
                tileManager.OnReleaseTile(message.ID, message.Name, message.Color, message.Location, message.Scale);
            }
        }
Esempio n. 14
0
        private void HandleRotateEntityMessage(NetIncomingMessage im)
        {
            var message = new RotateEntityMessage(im);

            if (message.Color != TileGrid.ColorComparer(TileGrid.activeColor))
            {
                tileManager.RotateEntities(message.ID, message.Clockwise, message.Name, TileGrid.ColorComparer(message.Color));
            }

            if (this.IsHost)
            {
                tileManager.OnRotateEntity(message.ID, message.Clockwise, message.Name, message.Color);
            }
        }
Esempio n. 15
0
        private void HandleAddPointingAnimationMessage(NetIncomingMessage im)
        {
            var message = new AddPointingAnimationMessage(im);

            if (message.Color != TileGrid.ColorComparer(TileGrid.activeColor))
            {
                animationManager.AddPointingAnimation(message.Location * (Camera.Scale / message.Scale), TileGrid.ColorComparer(message.Color));
            }

            if (this.IsHost)
            {
                animationManager.OnAddPointingAnimation(message.Location, message.Color, message.Scale);
            }
        }
Esempio n. 16
0
        public MenuStates Update(GameTime gameTime)
        {
            foreach (IButton button in buttons)
            {
                button.Update(gameTime);
            }

            if (buttons[0].IsClicked())
            {
                int colorID = NextColorState;
                information = (object)colorID;
                buttons[0].SetFontColor(TileGrid.ColorComparer(colorID));
                return(MenuStates.Color);
            }

            return(MenuStates.IDLE);
        }
Esempio n. 17
0
        private void CheckSelectedEntity()
        {
            int id = (int)GetSelectedEntityListID();

            OnReleaseTile(entities[id].ID, TileGrid.Player, TileGrid.ColorComparer(TileGrid.activeColor),entities[id].ForcedLocation,Camera.Scale);

            for (int i = 0; i < entityInfo.Count; i++)
            {
                if (entityInfo[i].Equals(entities[id])
                    && !entities[id].HasBeenSelected
                    && entityInfo[i].DestructionBoundaries.Intersects(entities[id].CollisionRectangle))
                {
                    OnGetEntity(id, i, TileGrid.ColorComparer(TileGrid.activeColor));
                    entityInfo[i].AliveEntities--;
                    break;
                }
            }
        }
Esempio n. 18
0
        private void CheckEntityForRemoval()
        {
            int id = (int)GetSelectedEntityListID();

            OnSnapTile(entities[id].ID, TileGrid.Player, TileGrid.ColorComparer(TileGrid.activeColor));

            for (int i = 0; i < entityInfo.Count; i++)
            {

                if (entityInfo[i].Equals(entities[id])
                    && entityInfo[i].DestructionBoundaries.Intersects(entities[id].CollisionRectangle))
                {
                    entityInfo[i].AliveEntities++;
                    ResetBannerEntity(entities[id], i);
                    OnRemoveEntity((int)selectedEntityID, i, TileGrid.ColorComparer(TileGrid.activeColor));
                    selectedEntityID = activeEntity = null;
                    break;
                }
            }
        }
Esempio n. 19
0
        public void Update(GameTime gameTime)
        {
            if (InputManager.IsKeyReleased(Microsoft.Xna.Framework.Input.Keys.LeftControl) && InputManager.MouseInBounds)
            {
                AddPointingAnimation(InputManager.MousePosition + Camera.Position, TileGrid.activeColor);
                OnAddPointingAnimation(InputManager.MousePosition + Camera.Position, TileGrid.ColorComparer(TileGrid.activeColor), Camera.Scale);
            }

            for (int i = 0; i < animations.Count; i++)
            {
                if (animations[i].Alive)
                {
                    animations[i].Update(gameTime);
                }
                else
                {
                    animations.RemoveAt(i);
                }
            }
        }
Esempio n. 20
0
        private void CheckEntityForForcedRemoval()
        {
            if ((InputManager.IsKeyReleased(Microsoft.Xna.Framework.Input.Keys.Delete) || InputManager.MouseMiddleButtonClicked()) && selectedEntityID != null)
            {
                for (int i = 0; i < entityInfo.Count; i++)
                {
                    int id = (int)GetSelectedEntityListID();

                    if (entityInfo[i].Equals(entities[id]))
                    {
                        {
                            entityInfo[i].AliveEntities++;
                            ResetBannerEntity(entities[id],i);
                            OnRemoveEntity((int)selectedEntityID, i, TileGrid.ColorComparer(TileGrid.activeColor));
                            selectedEntityID = null;
                            tileState = TileState.Free;
                            break;
                        }
                    }
                }
            }
        }
Esempio n. 21
0
        public BannerManager(ContentManager Content, GraphicsDevice graphicsDevice)
        {
            this.graphicsDevice = graphicsDevice;
            configuration       = new PlayerConfiguration();

            banners   = new List <IBanner>();
            bannerIDs = new List <int>();

            GameBannerTexture  = Content.Load <Texture2D>(@"Textures\Banners\GameBanner");
            BannerTexture      = Content.Load <Texture2D>(@"Textures\Banners\Banner");
            LobbyBannerTexture = Content.Load <Texture2D>(@"Textures\Banners\LobbyBanner");
            ButtonTexture      = Content.Load <Texture2D>(@"Textures\Buttons\ScoreButton");
            Font      = Content.Load <SpriteFont>(@"Fonts\font");
            SmallFont = Content.Load <SpriteFont>(@"Fonts\smallFont");
            ScoreFont = Content.Load <SpriteFont>(@"Fonts\ScoreFont");

            try
            {
                banners.Add(new MenuBanner(BannerTexture, Font, SmallFont, Vector2.Zero, configuration.Name, TileGrid.ColorComparer(configuration.ColorID)));
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                configuration.CreateDefaultXML();
                configuration.LoadFromXML();
                banners.Add(new MenuBanner(BannerTexture, Font, SmallFont, Vector2.Zero, configuration.Name, TileGrid.ColorComparer(configuration.ColorID)));
            }

            TileGrid.Player      = configuration.Name;
            TileGrid.activeColor = TileGrid.ColorComparer(configuration.ColorID);
            bannerIDs.Add(0);
            if (configuration.LoadAvatar)
            {
                LoadGameAvatar();
            }
        }
Esempio n. 22
0
 private void AddSoldier(Vector2 location, Color color)
 {
     int x = TileGrid.ColorComparer(color);
     x -= 1;
     entities.Add(new Soldier(++counter, entityTextures[x].Texture, entityTextures[x].Frame, TextBackground, EntityFont, color, location, 0.4f));// - counter * layerStep));
 }
Esempio n. 23
0
        private void HandleAddBannerMessage(NetIncomingMessage im)
        {
            var message = new AddBannerMessage(im);

            bannerManager.AddLobbyBanner(message.Name, TileGrid.ColorComparer(message.Color), message.IsUsingAvatar, message.Pos);
        }
Esempio n. 24
0
        private void ProcessNetworkMessages()
        {
            NetIncomingMessage im;

            while ((im = this.networkManager.ReadMessage()) != null)
            {
                switch (im.MessageType)
                {
                case NetIncomingMessageType.VerboseDebugMessage:
                case NetIncomingMessageType.DebugMessage:
                case NetIncomingMessageType.WarningMessage:
                case NetIncomingMessageType.ErrorMessage:
                    Console.WriteLine(im.ReadString());
                    break;

                case NetIncomingMessageType.StatusChanged:
                    switch ((NetConnectionStatus)im.ReadByte())
                    {
                    case NetConnectionStatus.Connected:
                        SetTitle(" ");
                        if (!this.IsHost)
                        {
                            Console.WriteLine("Connected to {0}");
                            bannerManager.SavePlayerInfo();
                            bannerManager.OnRequestBanner(bannerManager.PlayerAvatarName, TileGrid.ColorComparer(TileGrid.activeColor), bannerManager.IsUsingAvatar);
                        }
                        else
                        {
                            if (!(TileGrid.GameState == GameStates.Playing))
                            {
                                OnInitiateTitle(TileGrid.Expansions, true);
                            }
                            else
                            {
                                OnInitiateTitle("Disconnected: Game already in progress", true);
                                tileManager.OnPlayGame(false);
                            }
                            Console.WriteLine("{0} Connected");
                        }
                        break;

                    case NetConnectionStatus.Disconnected:
                        if (!this.IsHost)
                        {
                            bannerManager.RemoveLobbyBanners();
                        }
                        Console.WriteLine(
                            this.IsHost ? "{0} Disconnected" : "Disconnected from {0}");
                        break;

                    case NetConnectionStatus.RespondedAwaitingApproval:
                        NetOutgoingMessage hailMessage = this.networkManager.CreateMessage();
                        im.SenderConnection.Approve(hailMessage);
                        break;
                    }

                    break;

                case NetIncomingMessageType.Data:
                    var gameMessageType = (GameMessageTypes)im.ReadByte();
                    switch (gameMessageType)
                    {
                    case GameMessageTypes.RequestBannerState:
                        this.HandleRequestBannerMessage(im);
                        break;

                    case GameMessageTypes.AddBannerState:
                        this.HandleAddBannerMessage(im);
                        break;

                    case GameMessageTypes.ColorSwitchState:
                        this.HandleColorSwitchMessage(im);
                        break;

                    case GameMessageTypes.PlayerBannerState:
                        this.HandlePlayerBannerMessage(im);
                        break;

                    case GameMessageTypes.PlayerDisconnectedState:
                        this.HandlePlayerDisconnectedMessage(im);
                        break;

                    case GameMessageTypes.SetTitleState:
                        this.HandleTitleMessage(im);
                        break;

                    case GameMessageTypes.InGameState:
                        this.HandlePlayGameMessage(im);
                        break;

                    case GameMessageTypes.UpdateEntityState:
                        this.HandleUpdateEntityMessage(im);
                        break;

                    case GameMessageTypes.RequestTileState:
                        this.HandleRequestTileMessage(im);
                        break;

                    case GameMessageTypes.SnapTileState:
                        this.HandleSnapTileMessage(im);
                        break;

                    case GameMessageTypes.ReleaseTileState:
                        this.HandleReleaseTileMessage(im);
                        break;

                    case GameMessageTypes.GetEntityState:
                        this.HandleGetEntityMessage(im);
                        break;

                    case GameMessageTypes.RemoveEntityState:
                        this.HandleRemoveEntityMessage(im);
                        break;

                    case GameMessageTypes.RotateEntityState:
                        this.HandleRotateEntityMessage(im);
                        break;

                    case GameMessageTypes.UpdateScoreState:
                        this.HandleUpdateScoreMessage(im);
                        break;

                    case GameMessageTypes.AddPointingAnimationState:
                        this.HandleAddPointingAnimationMessage(im);
                        break;
                    }
                    break;
                }
                this.networkManager.Recycle(im);
            }
        }
Esempio n. 25
0
        public void OnSendAllBanners()
        {
            EventHandler <BannerArgs> addBanner = AddBanner;

            for (int i = 0; i < banners.Count; i++)
            {
                if (addBanner != null)
                {
                    if (banners[i] is LobbyBanner)
                    {
                        addBanner(addBanner, new BannerArgs(banners[i].PlayerAvatarName, TileGrid.ColorComparer(banners[i].Color), (banners[i].ShowAvatar || banners[i].AwaitAvatar), i));
                    }
                }
            }
        }
Esempio n. 26
0
        public void OnUpdateEntity()
        {
            EventHandler<UpdateEntityArgs> updateEntity = UpdateEntity;

            int? x = GetSelectedEntityListID();
            if (updateEntity != null && x!=null)
                updateEntity(updateEntity, new UpdateEntityArgs(entities[(int)x].ID,bannerManager.PlayerName,TileGrid.ColorComparer(TileGrid.activeColor),entities[(int)x].ForcedLocation,Camera.Scale));
        }
Esempio n. 27
0
 private void HandleSelection()
 {
     if (selectedEntityID != null)
     {
         foreach (MovingEntity entity in entities)
             if (entity.ID == selectedEntityID)
             {
                 entity.IsSelected = true;
                 entity.HandleEntityFeatures();
                 if (entity.RotateTo != null)
                     OnRotateEntity(entity.ID, (bool)entity.RotateTo, bannerManager.PlayerName, TileGrid.ColorComparer(TileGrid.activeColor));
                 break;
             }
         if (InputManager.LeftButtonIsClicked() && tileState == TileState.Free)
         {
             selectedEntityID = null;
         }
     }
 }