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); }
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(); }