//--------------------------------------------------------------------------------------------------------------------------------------------------- // <copyright file="PlayerSetup.cs" company="DarkWynter Studios"> // Copyright (C)2007 DarkWynter Studios. All rights reserved. // </copyright> //--------------------------------------------------------------------------------------------------------------------------------------------------- // {Contact : darkwynter.com for licensing information //--------------------------------------------------------------------------------------------------------------------------------------------------- namespace ElementalGame.GraphicUserInterface { #region Using Statements using System; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; #endregion using DarkWynterEngine.Globals; using DarkWynterEngine.ObjectLib; using DarkWynterEngine.Menus; /// <summary> /// Player customization screen /// </summary> public class PlayerSetup : GameScreen { GameMenu diagnosisMenu; /// <summary> /// Currently selected character. /// </summary> public int playerNumber = 0; /// <summary> /// Player Setup Menu constructor /// </summary> public PlayerSetup() { float scaleX = (Statics.SystemSettings.GAME_WINDOW_WIDTH / 1280.0f); float scaleY = (Statics.SystemSettings.GAME_WINDOW_HEIGHT / 1024.0f); menu = new GameMenu("Player 1", 60 * scaleX, 48 * scaleY); menu.AddImageScroller("", 1); diagnosisMenu = new GameMenu("Diagnosis", 60 * scaleX, 500 * scaleY); diagnosisMenu.AddRandomImageDisplay(""); //scale up the images menu.GetMenuElement(0).SetScale(1.6f, 1.7f); diagnosisMenu.GetMenuElement(0).SetScale(1.6f, 1.7f); } /// <summary> /// Get the Player Selection scroller. /// </summary> /// <returns>Player Selection scroller.</returns> public GameMenuImageScroller GetPlayerSelection() { return ((GameMenuImageScroller)menu.GetMenuElement(0)); } /// <summary> /// Get the character information display element. /// </summary> /// <returns>Information display element.</returns> public GameMenuRandomImageDisplay GetDiagnosisDisplay() { return ((GameMenuRandomImageDisplay)diagnosisMenu.GetMenuElement(0)); } /// <summary> /// Draw the player demo menu. /// </summary> /// <param name="spriteBatch">SpriteBatch used to draw used to draw.</param> public new void Draw(SpriteBatch spriteBatch) { base.Draw(spriteBatch); diagnosisMenu.Draw(spriteBatch); } /// <summary> /// Commit changes to Player Setup Menu /// </summary> /// <param name="objectLibrary">Object Library that player belongs to.</param> public void Commit(ObjectLibrary objectLibrary) { switch (playerNumber) { case 0: { // Player 1 Color Select objectLibrary.humans[0].SetDiffuseRed(255); objectLibrary.humans[0].SetDiffuseGreen(255); objectLibrary.humans[0].SetDiffuseBlue(255); objectLibrary.humans[0].SetDiffuseAlpha(255); GetMenu().SetTitle("Player 2"); break; } case 1: { // Player 2 Color Select objectLibrary.humans[1].SetDiffuseRed(255); objectLibrary.humans[1].SetDiffuseGreen(255); objectLibrary.humans[1].SetDiffuseBlue(255); objectLibrary.humans[1].SetDiffuseAlpha(255); GetMenu().SetTitle("Player 3"); break; } case 2: { // Player 3 Color Select objectLibrary.humans[2].SetDiffuseRed(255); objectLibrary.humans[2].SetDiffuseGreen(255); objectLibrary.humans[2].SetDiffuseBlue(255); objectLibrary.humans[2].SetDiffuseAlpha(255); GetMenu().SetTitle("Player 4"); break; } case 3: { // Player 4 Color Select objectLibrary.humans[3].SetDiffuseRed(255); objectLibrary.humans[3].SetDiffuseGreen(255); objectLibrary.humans[3].SetDiffuseBlue(255); objectLibrary.humans[3].SetDiffuseAlpha(255); break; } } // Player Character Select if (playerNumber < Statics.SystemSettings.TOTAL_PLAYERS - 1) { playerNumber++; Statics.currentPlayerIndex = playerNumber; GetPlayerSelection().SetCurrentIndex(0); } else { playerNumber = 0; Statics.currentPlayerIndex = playerNumber; GetMenu().SetTitle("Player 1"); } } } }