public void Test_Build_CompleteConstruction() { Console.WriteLine (""); Console.WriteLine ("Preparing test"); Console.WriteLine (""); var settings = EngineSettings.DefaultVerbose; settings.ConstructionRate = 10; var person = new Person (settings); person.Home = new Building (BuildingType.Shelter, settings); person.Home.Inventory.Items [ItemType.Timber] = settings.ShelterTimberCost; person.Home.PercentComplete = 99; var needEntry = new NeedEntry (ActivityVerb.Build, ItemType.Shelter, PersonVitalType.NotSet, 1, 100); person.AddNeed (needEntry); var activity = new BuildShelterActivity (person, needEntry, settings, new ConsoleHelper(settings)); activity.Shelter = person.Home; activity.Act (person); Assert.AreEqual (100, person.Home.PercentComplete); Assert.IsTrue (person.Home.IsCompleted); Assert.AreEqual (0, person.Needs.Count); }
public void Test_Build_ContinueConstruction() { var settings = EngineSettings.DefaultVerbose; settings.ConstructionRate = 1; var person = new Person (settings); person.Home = new Building (BuildingType.House, settings); person.Home.Inventory.Items[ItemType.Timber] = 50; // TODO: Get the 50 value from somewhere easier to configures var needEntry = new NeedEntry (ActivityVerb.Build, ItemType.Shelter, PersonVitalType.NotSet, 1, 100); var activity = new BuildShelterActivity (person, needEntry, settings, new ConsoleHelper(settings)); activity.Act (person); Assert.AreEqual (1, person.Home.PercentComplete); }
public void Test_Build_NotEnoughTimber() { var settings = EngineSettings.DefaultVerbose; var person = new Person (settings); var needEntry = new NeedEntry (ActivityVerb.Build, ItemType.Shelter, PersonVitalType.NotSet, 1, 100); var activity = new BuildShelterActivity (person, needEntry, settings, new ConsoleHelper(settings)); activity.Act (person); Assert.AreEqual (1, person.Needs.Count); var foundNeedEntry = person.Needs [0]; Assert.AreEqual (ItemType.Timber, foundNeedEntry.ItemType); Assert.AreEqual (50, foundNeedEntry.Quantity); Assert.AreEqual (101, foundNeedEntry.Priority); }
public void Test_Build_StartConstruction() { Console.WriteLine (""); Console.WriteLine ("Preparing test"); Console.WriteLine (""); var settings = EngineSettings.DefaultVerbose; var person = new Person (settings); person.Inventory.AddItem (ItemType.Timber, 50); // TODO: Get the 50 value from somewhere easier to configures var needEntry = new NeedEntry (ActivityVerb.Build, ItemType.Shelter, PersonVitalType.NotSet, 1, 100); var activity = new BuildShelterActivity (person, needEntry, settings, new ConsoleHelper(settings)); Console.WriteLine (""); Console.WriteLine ("Executing test"); Console.WriteLine (""); activity.Act (person); Console.WriteLine (""); Console.WriteLine ("Analysing test"); Console.WriteLine (""); Assert.IsNotNull (person.Home); Assert.AreEqual (50, person.Home.Inventory.Items[ItemType.Timber]); // TODO: Should all the timber necessarily be provided as soon as construction starts? }