public void Test_RunWithSimpleCharacters() { List <Character> characters = new List <Character>(); characters.Add( builder.WithBasicStats("helga", 100, 7).Build() ); List <Character> enemies = new List <Character>(); enemies.Add( builder.WithBasicStats("hugo", 50, 20).Build() ); SimulationResult result = Engine.Simulate( characters, enemies, true, CombatBehavior.Default(), CombatBehavior.Random() ); Assert.False(result.PartyVictorious); Assert.True(someoneIsAlive(result.Enemies)); Assert.False(someoneIsAlive(result.Party)); }
public void Test_VeryLongRun() { List <Character> characters = new List <Character>(); characters.Add( builder.WithBasicStats("helga", (long)1.0E6, 1).Build() ); List <Character> enemies = new List <Character>(); enemies.Add( builder.WithBasicStats("hugo", (long)5.0E5, 4).Build() ); SimulationResult result = Engine.Simulate( characters, enemies, true, CombatBehavior.Default(), CombatBehavior.Random() ); Assert.False(result.PartyVictorious); Assert.True(someoneIsAlive(result.Enemies)); Assert.False(someoneIsAlive(result.Party)); }
public void Test_RunEmpty() { // Here, a rather worrying misfeature of C# is obvious. // In order to access the classes in a test project, they need to be public. So you'd need to nest // solutions and/or projects in order to a) stick to information hiding principle and b) have // testable classes. 😠 List <Character> characters = new List <Character>(); List <Character> enemies = new List <Character>(); SimulationResult result = Engine.Simulate( characters, enemies, true, CombatBehavior.Default(), CombatBehavior.Random() ); Assert.Equal(0, result.Rounds); Assert.Empty(result.EventLog); }
static void Main(string[] args) { Console.WriteLine("Hi there! Welcome to the dungeon explorer."); Console.WriteLine("Let's get to know our party!"); List <Character> characters = QueryPartyMembers(); Console.WriteLine("Now let's talk about the enemies our party faces."); List <Character> enemies = QueryEnemies(); Console.WriteLine("====== OVERVIEW ======"); Console.WriteLine("====== THE PARTY ======"); foreach (Character character in characters) { Console.WriteLine(character.ToString()); } Console.WriteLine("-----------------------"); Console.WriteLine("====== THE ENEMIES ======"); foreach (Character enemy in enemies) { Console.WriteLine(enemy.ToString()); } Console.WriteLine("-----------------------"); Console.WriteLine("Processing..."); SimulationResult result = Engine.Simulate( characters, enemies, true, CombatBehavior.Default(), CombatBehavior.Random() ); Console.WriteLine(""); Console.WriteLine("Simulation Complete!"); Console.WriteLine("====== RESULTS ======="); Console.WriteLine(result.ToString()); Console.WriteLine("kthxbye ^u^"); }