eva_bead_1/view/MapChooser.cs
2024-10-23 22:11:14 +02:00

78 lines
2.1 KiB
C#

using Snake.Persistance;
namespace view
{
public partial class MapChooser : Form
{
#region Fields
private SnakeLevelLoader _level_loader;
#endregion
#region Properties
public StoredSnakeLevel? SelectedLevel { get; private set; }
#endregion
#region Constructor
public MapChooser(SnakeLevelLoader level_loader)
{
this._level_loader = level_loader;
InitializeComponent();
foreach (var level in _level_loader.StoredLevels)
{
lstLevels.Items.Add(level.LevelName);
}
}
#endregion
#region Methods
void ChooseLevel()
{
if (lstLevels.SelectedIndex == -1)
{
SelectedLevel = null;
}
else
{
SelectedLevel = _level_loader.StoredLevels[lstLevels.SelectedIndex];
Close();
}
}
#endregion
#region Event handlers
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (lstLevels.SelectedIndex == -1)
{
txtEggRounds.Text = "";
txtObstacleCount.Text = "";
txtSize.Text = "";
txtSnakeLength.Text = "";
}
else
{
var level = _level_loader.StoredLevels[lstLevels.SelectedIndex];
txtEggRounds.Text = level.NewEggRound.ToString();
txtObstacleCount.Text = level.Obstacles.Length.ToString();
txtSize.Text = $"{level.Size}x{level.Size}";
txtSnakeLength.Text = level.SnakeStartLength.ToString();
}
}
private void button1_Click(object sender, EventArgs e)
{
ChooseLevel();
}
private void lstLevels_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
ChooseLevel();
}
}
#endregion
}
}