-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathProgram.cs
More file actions
91 lines (75 loc) · 4.04 KB
/
Copy pathProgram.cs
File metadata and controls
91 lines (75 loc) · 4.04 KB
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
internal class Program
{
public static Action<BattleState> LevelHasFinished;
private static async Task Main()
{
try
{
WindowSettings.Initialize();
Logger.enabled = true;
//var goldenSword = new Sword("Golden sword", 0, 10, 200);
//var commonSword = new Sword("Common sword", 0, 5, 100);
//var glove = new Glove("Glove", 10, 0);
//var greave = new Greave("Greave", 20, 5);
//var helmet = new Helmet("Helmet", 0, 10);
//var vest = new Vest("Vest", 100, 0);
//SaveLoad<IWeapon>.Save(goldenSword, goldenSword.Name);
//SaveLoad<IWeapon>.Save(commonSword, commonSword.Name);
//SaveLoad<IArmor>.Save(glove, glove.Name);
//SaveLoad<IArmor>.Save(greave, greave.Name);
//SaveLoad<IArmor>.Save(helmet, helmet.Name);
//SaveLoad<IArmor>.Save(vest, vest.Name);
//var unit1 = new Unit(SaveLoad<UnitModel>.Load("Timur"));
//EquipUtility.EquipUnit(unit1, goldenSword, BodyPartName.RightArm);
//EquipUtility.EquipUnit(unit1, vest, BodyPartName.Body);
//EquipUtility.EquipUnit(unit1, helmet, BodyPartName.Head);
//EquipUtility.EquipUnit(unit1, glove, BodyPartName.RightArm);
//var unitSave1 = new UnitSave(unit1);
//SaveLoad<UnitSave>.Save(unitSave1, "Player");
//var unit2 = new Unit(SaveLoad<UnitModel>.Load("Gregory"));
//EquipUtility.EquipUnit(unit2, commonSword, BodyPartName.RightArm);
//EquipUtility.EquipUnit(unit2, commonSword, BodyPartName.LeftArm);
//var unitSave2 = new UnitSave(unit2);
//SaveLoad<UnitSave>.Save(unitSave2, "Gregory");
//var unit3 = new Unit(SaveLoad<UnitModel>.Load("Michael"));
//EquipUtility.EquipUnit(unit3, commonSword, BodyPartName.RightArm);
//EquipUtility.EquipUnit(unit3, commonSword, BodyPartName.LeftArm);
//var unitSave3 = new UnitSave(unit3);
//SaveLoad<UnitSave>.Save(unitSave3, "Michael");
//var playerUnits = new List<Unit>();
//var enemyUnits = new List<Unit>();
//playerUnits.Add(UnitUtility.CreateUnit(SaveLoad<UnitSave>.Load("Player")));
//enemyUnits.Add(UnitUtility.CreateUnit(SaveLoad<UnitSave>.Load("Gregory")));
//enemyUnits.Add(UnitUtility.CreateUnit(SaveLoad<UnitSave>.Load("Michael")));
//ArenaModel model = new ArenaModel(playerUnits.Select(x => x.Model.Name).ToList(), enemyUnits.Select(x => x.Model.Name).ToList());
//SaveLoad<ArenaModel>.Save(model, "Title");
//Arena arena = new Arena(SaveLoad<ArenaModel>.Load("Title"));
//arena.Start();
//IConsoleRenderer renderer = new BufferedConsoleRenderer();
//renderer.SetSize(160, 100);
//DrawUtils draw = new DrawUtils(renderer.Buffer);
//draw.ResetColor();
GameplayLogPrinter gameplayLogPrinter = new GameplayLogPrinter();
UnitsPrinter unitsPrinter = new UnitsPrinter();
StatsPrinter statsPrinter = new StatsPrinter();
VitalsPrinter vitalsPrinter = new VitalsPrinter();
SkillsPrinter skillsPrinter = new SkillsPrinter();
TurnPrinter turnPrinter = new TurnPrinter();
SkillMenu skillMenu = new SkillMenu();
Task.Run(() =>
{
Thread.Sleep(1500);
Arena arena = new Arena(gameplayLogPrinter, unitsPrinter, statsPrinter, vitalsPrinter, turnPrinter, skillsPrinter, SaveLoad<ArenaModel>.Load("Title"), skillMenu);
arena.Start();
LevelHasFinished?.Invoke(arena.State);
});
GameRender render = new GameRender(gameplayLogPrinter, unitsPrinter, statsPrinter, vitalsPrinter, skillsPrinter, turnPrinter, skillMenu);
Console.WriteLine("Loading...");
}
catch (Exception ex)
{
Logger.LogError(ex.ToString());
return;
}
}
}