예제 #1
0
        public void SetupStartingPlayer(Player p)
        {
            playerProfile.LastPlayername = playerProfile.Player.Name;

            currPlayer        = playerProfile.Player;
            currPlayerMovePwr = playerProfile.Player.MovePower;
            invenPopUp        = new InventoryPopupMenu(assetHandler, currPlayer, menuBrush, iconBackgroundBrush, pbSizeX, pbSizeY, gesamtGraphics, debugForm);
            charPopup         = new CharacterInformationPopupMenu(currPlayer, assetHandler, menuBrush, iconBackgroundBrush, pbSizeX, pbSizeY, gesamtGraphics, debugForm);
        }
예제 #2
0
        public void DrawGame()
        {
            //gesamtGraphics = Graphics.FromImage(gesamt);
            if (!inOptions && !inBattle)
            {
                //Hintergrund zeichnen
                gesamtGraphics.DrawImage(background, 0, 0, pbSizeX, pbSizeY);

                //Charaktere zeichnen
                DrawPlayer(playerProfile.Player);
                DrawPlayer(player2);


                //Click-Marker zeichnen
                gesamtGraphics.DrawRectangle(Pens.White, new Rectangle(lastClickedPos.X * tileSize, lastClickedPos.Y * tileSize, tileSize, tileSize));



                //Aktuelle Tile
                Tile tempTile = GameMap.Tiles[currPlayer.XPos, currPlayer.YPos];

                //Indikator für Interaktion, überprüfen ob Interagierbar + Interaktion nicht leer
                if (tempTile.IsInteractable && tempTile.GetInteraction() != null)
                {
                    Brush tempBrush;
                    //Farbe je nach Interaktionsstatus
                    if (!tempTile.GetInteraction().Interacted)
                    {
                        tempBrush = Brushes.MediumVioletRed;
                    }
                    else
                    {
                        tempBrush = Brushes.Gray;
                    }

                    gesamtGraphics.FillEllipse(tempBrush, currPlayer.XPos * tileSize, currPlayer.YPos * tileSize, tileSize / 4, tileSize / 4);
                }

                //Debug-Menü mit Tile-Informationen
                if (debug)
                {
                    gesamtGraphics.FillRectangle(menuBrush, new Rectangle(0, pbSizeY - tileSize * 4, tileSize * 8, tileSize * 4));
                    gesamtGraphics.DrawString(GetSubMenuString(tempTile), SystemFonts.DefaultFont, Brushes.White, 0, pbSizeY - tileSize * 4);
                }
                tempTile = null;
            }
            //Stop Hintergrund
            if (inBattle)
            {
                battle.DrawBattleScreen();
                gesamtGraphics.DrawImage(battle.GetGesamtBitmap(), pbSizeX / 4, pbSizeY / 8, battle.GetGesamtBitmap().Width, battle.GetGesamtBitmap().Height);
            }
            //Wenn mit etwas interagiert wird (Dorf-Dialog geöffnet etc)
            if (isInteracting || enemyIsInteracting)
            {
                Tile tempTile = GameMap.Tiles[currPlayer.XPos, currPlayer.YPos];

                //Erneute Überprüfung auf Vorhandensein des Events zur sicherheit
                if (tempTile.GetInteraction() != null)
                {
                    //Überprüfung auf Art der Interaktion
                    if (tempTile.GetInteraction().GetType() == typeof(GetItemInteraction))
                    {
                        //Temporäres Pop-Up zur Darstellung
                        GetItemPopupMenu itemPopup = new GetItemPopupMenu(assetHandler, (GetItemInteraction)tempTile.GetInteraction(), menuBrush, iconBackgroundBrush, pbSizeX, pbSizeY, gesamtGraphics, debugForm);

                        //Anzeige des Pop-Ups
                        itemPopup.DrawPopup();
                    }
                }
            }
            //Abfrage, ob Spieler das Inventar offen hat
            if (inInventory)
            {
                //Festlegene des Inventar-Pop-Ups des Spielers, welcher am Zug ist
                //
                //Anzeigen des Pop-Ups
                if (currPlayer != invenPopUp.P)
                {
                    invenPopUp = new InventoryPopupMenu(assetHandler, currPlayer, menuBrush, iconBackgroundBrush, pbSizeX, pbSizeY, gesamtGraphics, debugForm);
                }
                invenPopUp.DrawPopup();
            }
            if (inCharacterMenu)
            {
                if (currPlayer != charPopup.CurrPlayer)
                {
                    charPopup = new CharacterInformationPopupMenu(currPlayer, assetHandler, menuBrush, iconBackgroundBrush, pbSizeX, pbSizeY, gesamtGraphics, debugForm);
                }
                charPopup.DrawPopup();
            }

            //gesamtGraphics.Dispose();
        }