private static CompletedTransfer CompleteCraftTransfer(Base @base, TransferItem<Craft> transferredCraft)
 {
     @base.TransferredCrafts.Remove(transferredCraft);
     @base.Crafts.Add(transferredCraft.Item);
     var completedTransfer = new CompletedTransfer
     {
         Name = transferredCraft.Item.Name,
         Quantity = 1,
         Destination = @base.Name
     };
     return completedTransfer;
 }
 private static CompletedTransfer CompleteStoreTransfer(Base @base, TransferItem<StoreItem> transferredStore)
 {
     @base.TransferredStores.Remove(transferredStore);
     switch (transferredStore.Item.ItemType)
     {
     case ItemType.Engineer:
         @base.EngineerCount += transferredStore.Item.Count;
         break;
     case ItemType.Scientist:
         @base.ScientistCount += transferredStore.Item.Count;
         break;
     default:
         @base.Stores.Add(transferredStore.Item.ItemType, transferredStore.Item.Count);
         break;
     }
     var completedTransfer = new CompletedTransfer
     {
         Name = transferredStore.Item.ItemType.Metadata().Name,
         Quantity = transferredStore.Item.Count,
         Destination = @base.Name
     };
     return completedTransfer;
 }
 private static CompletedTransfer CompleteSoldierTransfer(Base @base, TransferItem<Soldier> transferredSoldier)
 {
     @base.TransferredSoldiers.Remove(transferredSoldier);
     @base.Soldiers.Add(transferredSoldier.Item);
     var completedTransfer = new CompletedTransfer
     {
         Name = transferredSoldier.Item.Name,
         Quantity = 1,
         Destination = @base.Name
     };
     return completedTransfer;
 }