-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathCharacterSelect.cs
73 lines (63 loc) · 1.6 KB
/
CharacterSelect.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MowChat.Data;
using MetroFramework.Controls;
using MetroFramework.Forms;
namespace MowChat
{
public partial class CharacterSelect : MetroForm
{
private readonly List<Character> _characters;
private readonly Action<Character> _onSelected;
private static readonly String[] FactionSuffix =
{
" (EA)", // 1 = Alliance
" (LJ)", // 2 = Junta
" (SE)", // 3 = Empire
" (UR)", // 4 = Republic
" (SU)", // 5 = Union
" (AW)" // 6 = Warlords
};
public CharacterSelect(List<Character> characters, Action<Character> onSelected)
{
InitializeComponent();
_characters = characters;
_onSelected = onSelected;
}
private void CharacterSelect_Load(object sender, EventArgs e)
{
var paddingTop = characterButton.Top;
var y = paddingTop;
var height = characterButton.Height;
foreach (var c in _characters)
{
AddButton(c, y);
y += height + paddingTop;
}
characterButton.Hide();
}
private void AddButton(Character character, int y)
{
var button = new MetroButton
{
Height = characterButton.Height,
Text = character.Name + FactionSuffix[character.FactionId-1],
Top = y,
Left = characterButton.Left,
Width = characterButton.Width
};
button.Click += delegate {
_onSelected(character);
Invoke((MethodInvoker) Close);
};
scrollPanel.Controls.Add(button);
}
}
}