public Engine(IReader reader, IWritter writter)
 {
     this.gold = new Resource(ResourceType.Gold);
     this.steel = new Resource(ResourceType.Steel);
     this.Reader = reader;
     this.Writter = writter;
 }
 public override Resource ProduceResource()
 {
     if (this.Turns % ResourceTurns == 0)
     {
         Resource producedResource = new Resource(ResourceType.Gold);
         producedResource.Quantity = ResourceQuantity;
         return producedResource;
     }
     else
     {
         throw new ArgumentOutOfRangeException("Not enough turns to produce a resource");
     }
 }