//---------------------------------------------------------------------------------------------------------------------------------------------------
//
// Copyright (C)2007 DarkWynter Studios. All rights reserved.
//
//---------------------------------------------------------------------------------------------------------------------------------------------------
// {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;
///
/// Player customization screen
///
public class PlayerSetup : GameScreen
{
GameMenu diagnosisMenu;
///
/// Currently selected character.
///
public int playerNumber = 0;
///
/// Player Setup Menu constructor
///
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);
}
///
/// Get the Player Selection scroller.
///
/// Player Selection scroller.
public GameMenuImageScroller GetPlayerSelection()
{
return ((GameMenuImageScroller)menu.GetMenuElement(0));
}
///
/// Get the character information display element.
///
/// Information display element.
public GameMenuRandomImageDisplay GetDiagnosisDisplay()
{
return ((GameMenuRandomImageDisplay)diagnosisMenu.GetMenuElement(0));
}
///
/// Draw the player demo menu.
///
/// SpriteBatch used to draw used to draw.
public new void Draw(SpriteBatch spriteBatch)
{
base.Draw(spriteBatch);
diagnosisMenu.Draw(spriteBatch);
}
///
/// Commit changes to Player Setup Menu
///
/// Object Library that player belongs to.
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");
}
}
}
}