mirror of
https://github.com/OpenDiablo2/OpenDiablo2
synced 2025-02-08 17:46:24 -05:00
Character selection scene skeleton (#27)
* Fix issue with typing char name with no hero selected * Character Selection begin... * Add buttons and wire up Character selection scene
This commit is contained in:
parent
4021fc9793
commit
403864fdd1
@ -6,6 +6,7 @@
|
|||||||
Medium,
|
Medium,
|
||||||
Narrow,
|
Narrow,
|
||||||
Cancel,
|
Cancel,
|
||||||
|
Tall,
|
||||||
// Game UI
|
// Game UI
|
||||||
Run,
|
Run,
|
||||||
Menu,
|
Menu,
|
||||||
|
@ -20,6 +20,7 @@ namespace OpenDiablo2.Common.Models
|
|||||||
{eButtonType.Wide, new ButtonLayout { XSegments = 2, ResourceName = ResourcePaths.WideButtonBlank, PaletteName = Palettes.Units } },
|
{eButtonType.Wide, new ButtonLayout { XSegments = 2, ResourceName = ResourcePaths.WideButtonBlank, PaletteName = Palettes.Units } },
|
||||||
{eButtonType.Medium, new ButtonLayout{ XSegments = 1, ResourceName=ResourcePaths.MediumButtonBlank, PaletteName = Palettes.Units } },
|
{eButtonType.Medium, new ButtonLayout{ XSegments = 1, ResourceName=ResourcePaths.MediumButtonBlank, PaletteName = Palettes.Units } },
|
||||||
{eButtonType.Narrow, new ButtonLayout {XSegments = 1, ResourceName = ResourcePaths.NarrowButtonBlank,PaletteName = Palettes.Units } },
|
{eButtonType.Narrow, new ButtonLayout {XSegments = 1, ResourceName = ResourcePaths.NarrowButtonBlank,PaletteName = Palettes.Units } },
|
||||||
|
{eButtonType.Tall, new ButtonLayout {XSegments = 1, ResourceName = ResourcePaths.TallButtonBlank, PaletteName = Palettes.Units } },
|
||||||
{eButtonType.Cancel, new ButtonLayout {XSegments = 1, ResourceName = ResourcePaths.CancelButton,PaletteName = Palettes.Units } },
|
{eButtonType.Cancel, new ButtonLayout {XSegments = 1, ResourceName = ResourcePaths.CancelButton,PaletteName = Palettes.Units } },
|
||||||
// Minipanel
|
// Minipanel
|
||||||
{eButtonType.MinipanelCharacter, new ButtonLayout {XSegments = 1, ResourceName = ResourcePaths.MinipanelButton,PaletteName = Palettes.Units, BaseFrame = 0 } },
|
{eButtonType.MinipanelCharacter, new ButtonLayout {XSegments = 1, ResourceName = ResourcePaths.MinipanelButton,PaletteName = Palettes.Units, BaseFrame = 0 } },
|
||||||
|
@ -74,6 +74,9 @@ namespace OpenDiablo2.Common
|
|||||||
public static string CharacterSelectDruidForwardWalk = "data\\global\\ui\\FrontEnd\\druid\\DZFW.DC6";
|
public static string CharacterSelectDruidForwardWalk = "data\\global\\ui\\FrontEnd\\druid\\DZFW.DC6";
|
||||||
public static string CharacterSelectDruidBackWalk = "data\\global\\ui\\FrontEnd\\druid\\DZBW.DC6";
|
public static string CharacterSelectDruidBackWalk = "data\\global\\ui\\FrontEnd\\druid\\DZBW.DC6";
|
||||||
|
|
||||||
|
// -- Character Selection
|
||||||
|
public static string CharacterSelectionBackground = "data\\global\\ui\\CharSelect\\characterselectscreenEXP.dc6";
|
||||||
|
|
||||||
// --- Game ---
|
// --- Game ---
|
||||||
public static string GamePanels = "data\\global\\ui\\PANEL\\800ctrlpnl7.dc6";
|
public static string GamePanels = "data\\global\\ui\\PANEL\\800ctrlpnl7.dc6";
|
||||||
public static string GameGlobeOverlap = "data\\global\\ui\\PANEL\\overlap.DC6";
|
public static string GameGlobeOverlap = "data\\global\\ui\\PANEL\\overlap.DC6";
|
||||||
@ -102,6 +105,7 @@ namespace OpenDiablo2.Common
|
|||||||
public static string CancelButton = "data\\global\\ui\\FrontEnd\\CancelButtonBlank.dc6";
|
public static string CancelButton = "data\\global\\ui\\FrontEnd\\CancelButtonBlank.dc6";
|
||||||
public static string NarrowButtonBlank = "data\\global\\ui\\FrontEnd\\NarrowButtonBlank.dc6";
|
public static string NarrowButtonBlank = "data\\global\\ui\\FrontEnd\\NarrowButtonBlank.dc6";
|
||||||
public static string TextBox2 = "data\\global\\ui\\FrontEnd\\textbox2.dc6";
|
public static string TextBox2 = "data\\global\\ui\\FrontEnd\\textbox2.dc6";
|
||||||
|
public static string TallButtonBlank = "data\\global\\ui\\CharSelect\\TallButtonBlank.dc6";
|
||||||
|
|
||||||
// --- GAME UI ---
|
// --- GAME UI ---
|
||||||
public static string MinipanelSmall = "data\\global\\ui\\PANEL\\minipanel_s.dc6";
|
public static string MinipanelSmall = "data\\global\\ui\\PANEL\\minipanel_s.dc6";
|
||||||
|
75
OpenDiablo2.Scenes/CharacterSelection.cs
Normal file
75
OpenDiablo2.Scenes/CharacterSelection.cs
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
using System;
|
||||||
|
using System.Drawing;
|
||||||
|
using OpenDiablo2.Common;
|
||||||
|
using OpenDiablo2.Common.Attributes;
|
||||||
|
using OpenDiablo2.Common.Enums;
|
||||||
|
using OpenDiablo2.Common.Interfaces;
|
||||||
|
|
||||||
|
namespace OpenDiablo2.Scenes
|
||||||
|
{
|
||||||
|
[Scene("Select Character")]
|
||||||
|
public sealed class CharacterSelection : IScene
|
||||||
|
{
|
||||||
|
static readonly log4net.ILog log =
|
||||||
|
log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
||||||
|
|
||||||
|
private readonly IRenderWindow renderWindow;
|
||||||
|
|
||||||
|
private readonly ISprite backgroundSprite;
|
||||||
|
private readonly IButton createNewCharacterButton, deleteCharacterButton, exitButton, okButton;
|
||||||
|
|
||||||
|
public CharacterSelection(IRenderWindow renderWindow,
|
||||||
|
ISceneManager sceneManager, ITextDictionary textDictionary, Func<eButtonType, IButton> createButton)
|
||||||
|
{
|
||||||
|
this.renderWindow = renderWindow;
|
||||||
|
|
||||||
|
backgroundSprite = renderWindow.LoadSprite(ResourcePaths.CharacterSelectionBackground, Palettes.Sky);
|
||||||
|
createNewCharacterButton = createButton(eButtonType.Tall);
|
||||||
|
// TODO: use strCreateNewCharacter -- need to get the text to split after 10 chars though.
|
||||||
|
createNewCharacterButton.Text = "Create New".ToUpper();
|
||||||
|
createNewCharacterButton.Location = new Point(33, 467);
|
||||||
|
createNewCharacterButton.OnActivate = () => sceneManager.ChangeScene("Select Hero Class");
|
||||||
|
|
||||||
|
deleteCharacterButton = createButton(eButtonType.Tall);
|
||||||
|
deleteCharacterButton.Text = textDictionary.Translate("strDelete");
|
||||||
|
deleteCharacterButton.Location = new Point(433, 467);
|
||||||
|
|
||||||
|
exitButton = createButton(eButtonType.Medium);
|
||||||
|
exitButton.Text = textDictionary.Translate("strExit");
|
||||||
|
exitButton.Location = new Point(33, 540);
|
||||||
|
exitButton.OnActivate = () => sceneManager.ChangeScene("Main Menu");
|
||||||
|
|
||||||
|
okButton = createButton(eButtonType.Medium);
|
||||||
|
okButton.Text = textDictionary.Translate("strOk");
|
||||||
|
okButton.Location = new Point(630, 540);
|
||||||
|
okButton.Enabled = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Update(long ms)
|
||||||
|
{
|
||||||
|
createNewCharacterButton.Update();
|
||||||
|
deleteCharacterButton.Update();
|
||||||
|
exitButton.Update();
|
||||||
|
okButton.Update();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Render()
|
||||||
|
{
|
||||||
|
renderWindow.Draw(backgroundSprite, 4, 3, 0);
|
||||||
|
|
||||||
|
createNewCharacterButton.Render();
|
||||||
|
deleteCharacterButton.Render();
|
||||||
|
exitButton.Render();
|
||||||
|
okButton.Render();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Dispose()
|
||||||
|
{
|
||||||
|
backgroundSprite.Dispose();
|
||||||
|
createNewCharacterButton.Dispose();
|
||||||
|
deleteCharacterButton.Dispose();
|
||||||
|
exitButton.Dispose();
|
||||||
|
okButton.Dispose();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -53,6 +53,7 @@
|
|||||||
<Compile Include="Game.cs" />
|
<Compile Include="Game.cs" />
|
||||||
<Compile Include="MainMenu.cs" />
|
<Compile Include="MainMenu.cs" />
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
<Compile Include="CharacterSelection.cs" />
|
||||||
<Compile Include="SelectHeroClass.cs" />
|
<Compile Include="SelectHeroClass.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@ -211,7 +211,7 @@ namespace OpenDiablo2.Scenes
|
|||||||
|
|
||||||
exitButton = createButton(eButtonType.Medium);
|
exitButton = createButton(eButtonType.Medium);
|
||||||
exitButton.Text = textDictionary.Translate("strExit");
|
exitButton.Text = textDictionary.Translate("strExit");
|
||||||
exitButton.Location = new Point(30, 540);
|
exitButton.Location = new Point(33, 540);
|
||||||
exitButton.OnActivate = OnExitClicked;
|
exitButton.OnActivate = OnExitClicked;
|
||||||
|
|
||||||
okButton = createButton(eButtonType.Medium);
|
okButton = createButton(eButtonType.Medium);
|
||||||
@ -245,7 +245,7 @@ namespace OpenDiablo2.Scenes
|
|||||||
okButton.Enabled = false;
|
okButton.Enabled = false;
|
||||||
selectedHero = null;
|
selectedHero = null;
|
||||||
|
|
||||||
sceneManager.ChangeScene("Main Menu");
|
sceneManager.ChangeScene("Select Character");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Render()
|
public void Render()
|
||||||
|
Loading…
Reference in New Issue
Block a user