/// <inheritdoc />
 public void LoadAllItems(
     Dictionary <string, IItemLoader> itemLoaders,
     Add <Upgrade> upgradeAdder,
     IItemLoader.AddCommands commandAdder,
     count upgradeCount,
     count programmingCardCount)
 {
     foreach (KeyValuePair <string, IItemLoader> loader in itemLoaders)
     {
         int bevUpgrades = upgradeCount();
         int bevProgr    = programmingCardCount();
         loader.Value.AddUpgrades(upgradeAdder);
         loader.Value.AddProgrammingCards(commandAdder);
         bool upsChanged  = bevUpgrades < upgradeCount();
         bool progChanged = bevProgr < programmingCardCount();
         if (upsChanged && progChanged)
         {
             Console.Out.WriteLine($"Loaded Upgrades and Commands from \"{loader.Key}\"");
         }
         else if (upsChanged)
         {
             Console.Out.WriteLine($"Loaded Upgrades from \"{loader.Key}\"");
         }
         else if (progChanged)
         {
             Console.Out.WriteLine($"Loaded Commands from \"{loader.Key}\"");
         }
     }
 }
        public void AddProgrammingCards(IItemLoader.AddCommands add)
        {
            add(6, new MoveCommand(3)
            {
                Name = "Move 3"
            });

            add(12, new MoveCommand(2)
            {
                Name = "Move 2"
            });

            add(18, new MoveCommand(1)
            {
                Name = "Move 1"
            });

            add(6, new MoveCommand(1, RelativeDirection.Backwards)
            {
                Name = "Back Up"
            });

            add(9, new RotateCommand(Rotation.Left, 1)
            {
                Name = "Turn Left"
            });

            add(9, new RotateCommand(Rotation.Right, 1)
            {
                Name = "Turn Right"
            });

            add(6, new RotateCommand(Rotation.Right, 2)
            {
                Name = "U-Turn"
            });

            add(6, new RobotShootCommand()
            {
                Name = "Shoot"
            });

            add(6, new RepeatCommand()
            {
                Name = "Repeat"
            });

            add(6, new EnergyCommand(1)
            {
                Name = "Power Up"
            });

            add(2, new EnergyCommand(2)
            {
                Name = "Big Power Up"
            });
        }