public MainMenuScreen(OnScreenChanged screenChanged) : base(screenChanged)
        {
            UserInterfaceLoader uiLoader   = UserInterfaceLoader.GetInstance();
            TileLoader          tileLoader = TileLoader.GetInstance();

            tileBrick1Sprite = tileLoader.Get("brick1");
            titleSprite      = uiLoader.Get("title");
            newGameSprite    = uiLoader.Get("newGame");
            loadGameSprite   = uiLoader.Get("loadGame");
            sandboxSprite    = uiLoader.Get("sandbox");
            adventureSprite  = uiLoader.Get("adventure");

            title           = new StaticEntity("Title Card", new Vector2(GameConstants.WINDOW_WIDTH / 2, GameConstants.TILE_SIZE * 2), titleSprite);
            newGameButton   = new StaticEntity("New Game Button", new Vector2(GameConstants.WINDOW_WIDTH / 2, GameConstants.TILE_SIZE * 11 / 2), newGameSprite);
            loadGameButton  = new StaticEntity("Load Game Button", new Vector2(GameConstants.WINDOW_WIDTH / 2, GameConstants.TILE_SIZE * 8), loadGameSprite);
            sandboxButton   = new StaticEntity("Sandbox Button", new Vector2(GameConstants.WINDOW_WIDTH / 2, GameConstants.TILE_SIZE * 21 / 2), sandboxSprite);
            adventureButton = new StaticEntity("Achievements Button", new Vector2(GameConstants.WINDOW_WIDTH / 2, GameConstants.TILE_SIZE * 13), adventureSprite);

            for (int i = 0; i < GameConstants.TILES_WIDE; i++)
            {
                for (int j = 0; j < GameConstants.TILES_HIGH + 1; j++) //The +1 allows us to cover the action bar
                {
                    Vector2    tileLocation = new Vector2(i * GameConstants.TILE_SIZE + GameConstants.TILE_SIZE / 2, j * GameConstants.TILE_SIZE + GameConstants.TILE_SIZE / 2);
                    GridEntity newTile      = new GridEntity("Tile", i, j, 0, tileLocation, GameConstants.TILE_SIZE, tileBrick1Sprite);
                    menuBackground.Add(newTile);
                }
            }
        }
        public GameOverScreen(OnScreenChanged screenChanged) : base(screenChanged)
        {
            FontLoader          fontLoader = FontLoader.GetInstance();
            UserInterfaceLoader uiLoader   = UserInterfaceLoader.GetInstance();

            font20           = fontLoader.Get("font");
            playButtonSprite = uiLoader.Get("continue");
            gameOverButton   = new StaticEntity("BackToMainMenu", new Vector2(GameConstants.WINDOW_WIDTH / 2, GameConstants.WINDOW_HEIGHT / 2), playButtonSprite);
        }
 public static void InitializeAllContentLoaders(ContentManager content)
 {
     TextureLoader.Initialize(content);
     FontLoader.Initialize(content);
     CharmLoader.Initialize(content);
     CreatureLoader.Initialize(content);
     ProjectileLoader.Initialize(content);
     ShieldLoader.Initialize(content);
     TileLoader.Initialize(content);
     UserInterfaceLoader.Initialize(content);
     WeaponLoader.Initialize(content);
 }
        public LoadGameScreen(OnScreenChanged screenChanged) : base(screenChanged)
        {
            UserInterfaceLoader uiLoader   = UserInterfaceLoader.GetInstance();
            FontLoader          fontLoader = FontLoader.GetInstance();

            var TileSize = GameConstants.TILE_SIZE;

            fileSelected = -1;
            Texture2D blankButtonSprite   = uiLoader.Get("select");
            Texture2D confirmButtonSprite = uiLoader.Get("confirm");
            Texture2D backButtonSprite    = uiLoader.Get("back");

            backButton = new StaticEntity("Back Button", new Vector2(TileSize * 2, GameConstants.WINDOW_HEIGHT - TileSize), backButtonSprite);

            fileButtons      = new List <StaticEntity>();
            levelData        = new List <String>();
            weapon1ItemBoxes = new List <ItemBox>();
            weapon2ItemBoxes = new List <ItemBox>();
            shield1ItemBoxes = new List <ItemBox>();
            charm1ItemBoxes  = new List <ItemBox>();
            for (int i = 0; i < GameConstants.NUMBER_OF_SAVES; i++)
            {
                fileButtons.Add(new StaticEntity("Button " + i.ToString(), new Vector2(TileSize * 2, TileSize * 3 + i * TileSize * 2), blankButtonSprite));
                levelData.Add("");
                weapon1ItemBoxes.Add(new ItemBox("Weapon1 File " + i.ToString(), new Vector2(TileSize * 7, TileSize * 3 + i * TileSize * 2)));
                weapon2ItemBoxes.Add(new ItemBox("Weapon2 File " + i.ToString(), new Vector2(TileSize * 8, TileSize * 3 + i * TileSize * 2)));
                shield1ItemBoxes.Add(new ItemBox("Shield1 File " + i.ToString(), new Vector2(TileSize * 9, TileSize * 3 + i * TileSize * 2)));
                charm1ItemBoxes.Add(new ItemBox("Charm1 File " + i.ToString(), new Vector2(TileSize * 10, TileSize * 3 + i * TileSize * 2)));
            }
            confirmButton = new StaticEntity("Confirm Button", new Vector2(TileSize * 5, GameConstants.WINDOW_HEIGHT - TileSize), confirmButtonSprite);

            font   = fontLoader.Get("font");
            font20 = fontLoader.Get("font20");

            actionBarBackground = uiLoader.Get("blankBackground");
            background          = new StaticEntity("Background", new Vector2(GameConstants.WINDOW_WIDTH / 2, GameConstants.WINDOW_HEIGHT / 2), actionBarBackground);

            for (int i = 0; i < GameConstants.NUMBER_OF_SAVES; i++)
            {
                CheckGameData(i, levelData, weapon1ItemBoxes, weapon2ItemBoxes, shield1ItemBoxes, charm1ItemBoxes);
            }
        }
Example #5
0
        public TradeScreen(OnScreenChanged screenChanged, TradeScreenContents tradeContents) : base(screenChanged)
        {
            UserInterfaceLoader uiLoader       = UserInterfaceLoader.GetInstance();
            FontLoader          fontLoader     = FontLoader.GetInstance();
            CreatureLoader      creatureLoader = CreatureLoader.GetInstance();

            TradeContents           = tradeContents;
            saveGameOverrideEnabled = false;
            tradeItemBoxes          = new List <ItemBox>();
            tradeItemBoxBackgrounds = new List <StaticEntity>();

            level     = tradeContents.Level;
            Health    = tradeContents.Health;
            oldHealth = Health;
            weapon1   = tradeContents.Weapon1;
            weapon2   = tradeContents.Weapon2;
            shield1   = tradeContents.Shield1;
            charm1    = tradeContents.Charm1;

            oldWeapon1 = weapon1;
            oldWeapon2 = weapon2;
            oldShield1 = shield1;
            oldCharm1  = charm1;

            actionBarBackground = uiLoader.Get("blankBackground");
            background          = new StaticEntity("Background", new Vector2(GameConstants.WINDOW_WIDTH / 2, GameConstants.WINDOW_HEIGHT / 2), actionBarBackground);
            playButton          = new StaticEntity("Play Button", new Vector2(GameConstants.WINDOW_WIDTH - GameConstants.TILE_SIZE * 5 / 2, GameConstants.WINDOW_HEIGHT - GameConstants.TILE_SIZE), uiLoader.Get("continue"));

            //TODO: Remove

            font = fontLoader.Get("font");

            healthBarSprite       = creatureLoader.Get("healthBar1");
            playerTradeMenuHealth = new HealthBar("Trade Menu Health", new Vector2(GameConstants.TILE_SIZE, GameConstants.WINDOW_HEIGHT - (GameConstants.TILE_SIZE * 3 + 15)), healthBarSprite);

            Vector2 firstBoxLocation  = new Vector2(GameConstants.TILE_SIZE / 2 + GameConstants.TILE_SIZE * 1, GameConstants.TILE_SIZE * 3);
            Vector2 secondBoxLocation = new Vector2(GameConstants.TILE_SIZE / 2 + GameConstants.TILE_SIZE * 3, GameConstants.TILE_SIZE * 3);
            Vector2 thirdBoxLocation  = new Vector2(GameConstants.TILE_SIZE / 2 + GameConstants.TILE_SIZE * 5, GameConstants.TILE_SIZE * 3);
            Vector2 fourthBoxLocation = new Vector2(GameConstants.TILE_SIZE / 2 + GameConstants.TILE_SIZE * 7, GameConstants.TILE_SIZE * 3);
            Vector2 fifthBoxLocation  = new Vector2(GameConstants.TILE_SIZE / 2 + GameConstants.TILE_SIZE * 9, GameConstants.TILE_SIZE * 3);

            equippedItemBoxBackgrounds = new List <StaticEntity>();
            equippedItemBoxes          = new List <ItemBox>();

            int equipBoxX = (int)(GameConstants.TILE_SIZE * 1.5);
            int equipBoxY = (int)(GameConstants.WINDOW_HEIGHT - GameConstants.TILE_SIZE * 2.5);

            Vector2 box1Location = new Vector2(equipBoxX, equipBoxY);

            equippedItemBoxes.Add(new ItemBox("Weapon1", box1Location, weapon1.Sprite, weapon1));
            equippedItemBoxBackgrounds.Add(new StaticEntity("Weapon1", box1Location, actionBarBackground));

            Vector2 box2Location = new Vector2(equipBoxX + GameConstants.TILE_SIZE * 1, equipBoxY);

            equippedItemBoxes.Add(new ItemBox("Weapon2", box2Location, weapon2.Sprite, weapon2));
            equippedItemBoxBackgrounds.Add(new StaticEntity("Weapon2", box2Location, actionBarBackground));

            Vector2 box3Location = new Vector2(equipBoxX + GameConstants.TILE_SIZE * 2, equipBoxY);

            equippedItemBoxes.Add(new ItemBox("Shield1", box3Location, shield1.Sprite, shield1));
            equippedItemBoxBackgrounds.Add(new StaticEntity("Shield1", box3Location, actionBarBackground));

            Vector2 box4Location = new Vector2(equipBoxX + GameConstants.TILE_SIZE * 3, equipBoxY);

            equippedItemBoxes.Add(new ItemBox("Charm1", box4Location, charm1.Sprite, charm1));
            equippedItemBoxBackgrounds.Add(new StaticEntity("Charm1", box4Location, actionBarBackground));

            //TODO: Rewrite once items inheritance is sorted out
            List <Item> items = new List <Item>();

            items.Add(tradeContents.Item1);
            items.Add(tradeContents.Item2);
            items.Add(tradeContents.Item3);

            for (int i = 0; i < items.Count; i++)
            {
                Item    item = items.ElementAt(i);
                Vector2 location;
                switch (i)
                {
                //Default case or there will be warnings
                default:
                    location = firstBoxLocation;
                    break;

                case 1:
                    location = secondBoxLocation;
                    break;

                case 2:
                    location = thirdBoxLocation;
                    break;
                }
                //TODO: Fix this spaghetti
                //The constructor of ItemBox is misused, don't but actionBarBackground as the sprite.
                if (item is Weapon)
                {
                    tradeItemBoxes.Add(new ItemBox("item", location, ((Weapon)item).Sprite, (Weapon)item));
                }
                else if (item is Shield)
                {
                    tradeItemBoxes.Add(new ItemBox("item", location, ((Shield)item).Sprite, (Shield)item));
                }
                else if (item is Charm)
                {
                    tradeItemBoxes.Add(new ItemBox("item", location, ((Charm)item).Sprite, (Charm)item));
                }
            }

            //tradeItemBoxes.Add(new ItemBox("item1", firstBoxLocation, actionBarBackground, tradeContents.Item1));
            //tradeItemBoxes.Add(new ItemBox("item2", secondBoxLocation, actionBarBackground, tradeContents.Item2));
            //tradeItemBoxes.Add(new ItemBox("item3", thirdBoxLocation, actionBarBackground, tradeContents.Item3));
            healingButton = new StaticEntity("Healing", fourthBoxLocation, uiLoader.Get("potions"));
            resetButton   = new StaticEntity("Reset Button", fifthBoxLocation, uiLoader.Get("reset"));
            saveButton    = new StaticEntity("Save Button", new Vector2(GameConstants.WINDOW_WIDTH - GameConstants.TILE_SIZE * 3, GameConstants.TILE_SIZE * 2), uiLoader.Get("saveGame"));

            tradeItemBoxBackgrounds.Add(new StaticEntity("item1Background", firstBoxLocation, actionBarBackground));
            tradeItemBoxBackgrounds.Add(new StaticEntity("item2Background", secondBoxLocation, actionBarBackground));
            tradeItemBoxBackgrounds.Add(new StaticEntity("item3Background", thirdBoxLocation, actionBarBackground));
            tradeItemBoxBackgrounds.Add(new StaticEntity("item4Background", fourthBoxLocation, actionBarBackground));
            playerIsHealing = false;
        }
Example #6
0
        public SandboxScreen(OnScreenChanged screenChanged) : base(screenChanged)
        {
            UserInterfaceLoader uiLoader   = UserInterfaceLoader.GetInstance();
            FontLoader          fontLoader = FontLoader.GetInstance();

            actionBarBackground = uiLoader.Get("blankBackground");
            font = fontLoader.Get("font");

            background                 = new StaticEntity("Background", new Vector2(WindowWidth / 2, WindowHeight / 2), actionBarBackground);
            itemBoxes                  = new List <ItemBox>();
            itemBoxBackgrounds         = new List <StaticEntity>();
            equippedItemBoxes          = new List <ItemBox>();
            equippedItemBoxBackgrounds = new List <StaticEntity>();

            Texture2D playButtonSprite  = uiLoader.Get("continue");
            Texture2D startButtonSprite = uiLoader.Get("start");
            Texture2D backButtonSprite  = uiLoader.Get("back");

            playButton  = new StaticEntity("Play Button", new Vector2(WindowWidth - TileSize * 5 / 2, WindowHeight - TileSize), playButtonSprite);
            startButton = new StaticEntity("Start Button", new Vector2(WindowWidth / 2, WindowHeight / 2), startButtonSprite);
            backButton  = new StaticEntity("Back Button", new Vector2(TileSize * 2, WindowHeight - TileSize), backButtonSprite);

            weaponFactory = ItemFactoryContainer.Weapons;
            shieldFactory = ItemFactoryContainer.Shields;
            charmFactory  = ItemFactoryContainer.Charms;

            weapon1 = weaponFactory.CreateSword();
            weapon2 = weaponFactory.CreateBow();
            shield1 = shieldFactory.CreateBasicShield();
            charm1  = charmFactory.CreateEmptyCharm();

            #region Weapon Item Boxes
            int weaponBoxY = (int)(TileSize * 1.5);
            int weaponBoxX = (int)(TileSize * 1.5);

            Weapon  sword = weaponFactory.CreateSword();
            Vector2 itemBoxSwordLocation = new Vector2(weaponBoxX, weaponBoxY);
            itemBoxes.Add(new ItemBox("Sword", itemBoxSwordLocation, sword.Sprite, sword));
            itemBoxBackgrounds.Add(new StaticEntity("SwordBackground", itemBoxSwordLocation, actionBarBackground));

            Weapon  broadSword = weaponFactory.CreateBroadsword();
            Vector2 itemBoxBroadswordLocation = new Vector2(weaponBoxX + TileSize, weaponBoxY);
            itemBoxes.Add(new ItemBox("Broadsword", itemBoxBroadswordLocation, broadSword.Sprite, broadSword));
            itemBoxBackgrounds.Add(new StaticEntity("BroadswordBackground", itemBoxBroadswordLocation, actionBarBackground));

            Weapon  bow = weaponFactory.CreateBow();
            Vector2 itemBoxBowLocation = new Vector2(weaponBoxX + TileSize * 2, weaponBoxY);
            itemBoxes.Add(new ItemBox("Bow", itemBoxBowLocation, bow.Sprite, bow));
            itemBoxBackgrounds.Add(new StaticEntity("BowBackground", itemBoxBowLocation, actionBarBackground));

            Weapon  spear = weaponFactory.CreateSpear();
            Vector2 itemBoxSpearLocation = new Vector2(weaponBoxX + TileSize * 3, weaponBoxY);
            itemBoxes.Add(new ItemBox("Spear", itemBoxSpearLocation, spear.Sprite, spear));
            itemBoxBackgrounds.Add(new StaticEntity("SpearBackground", itemBoxSpearLocation, actionBarBackground));

            Weapon  throwingAxe = weaponFactory.CreateThrowingAxe();
            Vector2 itemBoxThrowingaxeLocation = new Vector2(weaponBoxX + TileSize * 4, weaponBoxY);
            itemBoxes.Add(new ItemBox("ThrowingAxe", itemBoxThrowingaxeLocation, throwingAxe.Sprite, throwingAxe));
            itemBoxBackgrounds.Add(new StaticEntity("ThrowingAxeBackground", itemBoxThrowingaxeLocation, actionBarBackground));

            Weapon  throwingDagger = weaponFactory.CreateThrowingDagger();
            Vector2 itemBoxThrowingDaggerLocation = new Vector2(weaponBoxX + TileSize * 5, weaponBoxY);
            itemBoxes.Add(new ItemBox("Throwing Dagger", itemBoxThrowingDaggerLocation, throwingDagger.Sprite, throwingDagger));
            itemBoxBackgrounds.Add(new StaticEntity("ThrowingDaggerBackground", itemBoxThrowingDaggerLocation, actionBarBackground));

            Weapon  iceBow = weaponFactory.CreateIceBow();
            Vector2 itemBoxIcebowLocation = new Vector2(weaponBoxX + TileSize * 6, weaponBoxY);
            itemBoxes.Add(new ItemBox("Icebow", itemBoxIcebowLocation, iceBow.Sprite, iceBow));
            itemBoxBackgrounds.Add(new StaticEntity("IcebowBackground", itemBoxIcebowLocation, actionBarBackground));

            Weapon  dwarvenAxe = weaponFactory.CreateDwarvenAxe();
            Vector2 itemBoxDwarvenAxeLocation = new Vector2(weaponBoxX + TileSize * 7, weaponBoxY);
            itemBoxes.Add(new ItemBox("DwarvenAxe", itemBoxDwarvenAxeLocation, dwarvenAxe.Sprite, dwarvenAxe));
            itemBoxBackgrounds.Add(new StaticEntity("DwarvenAxeBackground", itemBoxDwarvenAxeLocation, actionBarBackground));

            Weapon  maul = weaponFactory.CreateMaul();
            Vector2 itemBoxMaulLocation = new Vector2(weaponBoxX + TileSize * 8, weaponBoxY);
            itemBoxes.Add(new ItemBox("Maul", itemBoxMaulLocation, maul.Sprite, maul));
            itemBoxBackgrounds.Add(new StaticEntity("MaulBackground", itemBoxMaulLocation, actionBarBackground));

            Weapon  hammer = weaponFactory.CreateHammer();
            Vector2 itemBoxHammerLocation = new Vector2(weaponBoxX + TileSize * 9, weaponBoxY);
            itemBoxes.Add(new ItemBox("Maul", itemBoxHammerLocation, hammer.Sprite, hammer));
            itemBoxBackgrounds.Add(new StaticEntity("MaulBackground", itemBoxHammerLocation, actionBarBackground));

            Weapon  throwingSpear = weaponFactory.CreateThrowingSpear();
            Vector2 itemBoxThrowingSpearLocation = new Vector2(weaponBoxX + TileSize * 10, weaponBoxY);
            itemBoxes.Add(new ItemBox("ThrowingSpear", itemBoxThrowingSpearLocation, throwingSpear.Sprite, throwingSpear));
            itemBoxBackgrounds.Add(new StaticEntity("ThrowingSpearBackground", itemBoxThrowingSpearLocation, actionBarBackground));

            Weapon  jungleSpear = weaponFactory.CreateJungleSpear();
            Vector2 itemBoxJungleSpearLocation = new Vector2(weaponBoxX + TileSize * 11, weaponBoxY);
            itemBoxes.Add(new ItemBox("JungleSpear", itemBoxJungleSpearLocation, jungleSpear.Sprite, jungleSpear));
            itemBoxBackgrounds.Add(new StaticEntity("JungleSpearBackground", itemBoxJungleSpearLocation, actionBarBackground));

            Weapon  fireball = weaponFactory.CreateFireball();
            Vector2 itemBoxFireballLocation = new Vector2(weaponBoxX + TileSize * 12, weaponBoxY);
            itemBoxes.Add(new ItemBox("Fireball", itemBoxFireballLocation, fireball.Sprite, fireball));
            itemBoxBackgrounds.Add(new StaticEntity("FireballBackground", itemBoxFireballLocation, actionBarBackground));

            Weapon  superAxe = weaponFactory.CreateMaverick();
            Vector2 itemBoxSuperAxeLocation = new Vector2(weaponBoxX + TileSize * 13, weaponBoxY);
            itemBoxes.Add(new ItemBox("Superaxe", itemBoxSuperAxeLocation, superAxe.Sprite, superAxe));
            itemBoxBackgrounds.Add(new StaticEntity("SuperaxeBackground", itemBoxSuperAxeLocation, actionBarBackground));

            Weapon  firebolt = weaponFactory.CreateFirebolt();
            Vector2 itemBoxFireboltLocation = new Vector2(weaponBoxX + TileSize * 14, weaponBoxY);
            itemBoxes.Add(new ItemBox("Firebolt", itemBoxFireboltLocation, firebolt.Sprite, firebolt));
            itemBoxBackgrounds.Add(new StaticEntity("FireboltBackground", itemBoxFireboltLocation, actionBarBackground));

            Weapon  firework = weaponFactory.CreateFirework();
            Vector2 itemBoxFireworkLocation = new Vector2(weaponBoxX + TileSize * 15, weaponBoxY);
            itemBoxes.Add(new ItemBox("Firework", itemBoxFireworkLocation, firework.Sprite, firework));
            itemBoxBackgrounds.Add(new StaticEntity("FireworkBackground", itemBoxFireworkLocation, actionBarBackground));

            Weapon  shuriken1 = weaponFactory.CreateBoteng();
            Vector2 itemBoxShuriken1Location = new Vector2(weaponBoxX + TileSize * 16, weaponBoxY);
            itemBoxes.Add(new ItemBox("Shuriken1", itemBoxShuriken1Location, shuriken1.Sprite, shuriken1));
            itemBoxBackgrounds.Add(new StaticEntity("Shuriken1Background", itemBoxShuriken1Location, actionBarBackground));

            Weapon  shuriken2 = weaponFactory.CreateHira();
            Vector2 itemBoxShuriken2Location = new Vector2(weaponBoxX + TileSize * 17, weaponBoxY);
            itemBoxes.Add(new ItemBox("Shuriken2", itemBoxShuriken2Location, shuriken2.Sprite, shuriken2));
            itemBoxBackgrounds.Add(new StaticEntity("Shuriken2Background", itemBoxShuriken2Location, actionBarBackground));

            Weapon  shuriken3 = weaponFactory.CreateTaago();
            Vector2 itemBoxShuriken3Location = new Vector2(weaponBoxX + TileSize * 18, weaponBoxY);
            itemBoxes.Add(new ItemBox("Shuriken3", itemBoxShuriken3Location, shuriken3.Sprite, shuriken3));
            itemBoxBackgrounds.Add(new StaticEntity("Shuriken3Background", itemBoxShuriken3Location, actionBarBackground));

            Weapon  plasmaBolt = weaponFactory.CreatePlasmaBolt();
            Vector2 itemBoxPlasmaBoltLocation = new Vector2(weaponBoxX + TileSize * 15, weaponBoxY + TileSize);
            itemBoxes.Add(new ItemBox("plasmaBolt", itemBoxPlasmaBoltLocation, plasmaBolt.Sprite, plasmaBolt));
            itemBoxBackgrounds.Add(new StaticEntity("plasmaBoltBackground", itemBoxPlasmaBoltLocation, actionBarBackground));

            Weapon  grapple = weaponFactory.CreateGrapple();
            Vector2 itemBoxGrappleLocation = new Vector2(weaponBoxX + TileSize * 16, weaponBoxY + TileSize);
            itemBoxes.Add(new ItemBox("Grapple", itemBoxGrappleLocation, grapple.Sprite, grapple));
            itemBoxBackgrounds.Add(new StaticEntity("grappleBackground", itemBoxGrappleLocation, actionBarBackground));
            #endregion

            #region Shield Item Boxes
            int shieldBoxY = (int)(TileSize * 3.5);
            int shieldBoxX = (int)(TileSize * 1.5);

            Shield  basicShield = shieldFactory.CreateBasicShield();
            Vector2 itemBoxBasicShieldLocation = new Vector2(shieldBoxX, shieldBoxY);
            itemBoxes.Add(new ItemBox("BasicShield", itemBoxBasicShieldLocation, basicShield.Sprite, basicShield));
            itemBoxBackgrounds.Add(new StaticEntity("BasicShieldBackground", itemBoxBasicShieldLocation, actionBarBackground));

            Shield  speedBoost = shieldFactory.CreateSpeedboost();
            Vector2 itemBoxSpeedboostLocation = new Vector2(shieldBoxX + TileSize, shieldBoxY);
            itemBoxes.Add(new ItemBox("Speedboost", itemBoxSpeedboostLocation, speedBoost.Sprite, speedBoost));
            itemBoxBackgrounds.Add(new StaticEntity("BasicShieldBackground", itemBoxSpeedboostLocation, actionBarBackground));

            Shield  thunderStoneItem            = shieldFactory.CreateThunderStone();
            Vector2 itemBoxThunderStoneLocation = new Vector2(shieldBoxX + TileSize * 2, shieldBoxY);
            itemBoxes.Add(new ItemBox("ThunderStone", itemBoxThunderStoneLocation, thunderStoneItem.Sprite, thunderStoneItem));
            itemBoxBackgrounds.Add(new StaticEntity("ThunderStoneBackground", itemBoxThunderStoneLocation, actionBarBackground));

            Shield  towerShield = shieldFactory.CreateTowerShield();
            Vector2 itemBoxTowerShieldLocation = new Vector2(shieldBoxX + TileSize * 3, shieldBoxY);
            itemBoxes.Add(new ItemBox("TowerShield", itemBoxTowerShieldLocation, towerShield.Sprite, towerShield));
            itemBoxBackgrounds.Add(new StaticEntity("TowerShieldBackground", itemBoxTowerShieldLocation, actionBarBackground));

            Shield  elvenTrinketItem            = shieldFactory.CreateElvenTrinket();
            Vector2 itemBoxElvenTrinketLocation = new Vector2(shieldBoxX + TileSize * 4, shieldBoxY);
            itemBoxes.Add(new ItemBox("ElvenTrinket", itemBoxElvenTrinketLocation, elvenTrinketItem.Sprite, elvenTrinketItem));
            itemBoxBackgrounds.Add(new StaticEntity("ElvenTrinketBackground", itemBoxElvenTrinketLocation, actionBarBackground));

            Shield  bullrushItem            = shieldFactory.CreateBullrush();
            Vector2 itemBoxBullrushLocation = new Vector2(shieldBoxX + TileSize * 5, shieldBoxY);
            itemBoxes.Add(new ItemBox("Bullrush", itemBoxBullrushLocation, bullrushItem.Sprite, bullrushItem));
            itemBoxBackgrounds.Add(new StaticEntity("BullrushBackground", itemBoxBullrushLocation, actionBarBackground));
            #endregion

            #region Charm Item Boxes
            int charmBoxY = (int)(TileSize * 5.5);
            int charmBoxX = (int)(TileSize * 1.5);

            Charm   burstCharm = charmFactory.CreateBurstCharm();
            Vector2 itemBoxBurstCharmLocation = new Vector2(charmBoxX, charmBoxY);
            itemBoxes.Add(new ItemBox("Burst Charm", itemBoxBurstCharmLocation, burstCharm.Sprite, burstCharm));
            itemBoxBackgrounds.Add(new StaticEntity("Burst Charm Background", itemBoxBurstCharmLocation, actionBarBackground));

            Charm   cooldownCharm            = charmFactory.CreateLowerCooldown();
            Vector2 itemBoxCoolCharmLocation = new Vector2(charmBoxX + TileSize, charmBoxY);
            itemBoxes.Add(new ItemBox("Cool Charm", itemBoxCoolCharmLocation, cooldownCharm.Sprite, cooldownCharm));
            itemBoxBackgrounds.Add(new StaticEntity("Cool Charm Background", itemBoxCoolCharmLocation, actionBarBackground));

            Charm   damageCharm = charmFactory.CreateHigherCooldown();
            Vector2 itemBoxDamageCharmLocation = new Vector2(charmBoxX + TileSize * 2, charmBoxY);
            itemBoxes.Add(new ItemBox("Damage Charm", itemBoxDamageCharmLocation, damageCharm.Sprite, damageCharm));
            itemBoxBackgrounds.Add(new StaticEntity("Damage Charm Background", itemBoxDamageCharmLocation, actionBarBackground));

            Charm   speedCharm = charmFactory.CreateSpeedCharm();
            Vector2 itemBoxSpeedCharmLocation = new Vector2(charmBoxX + TileSize * 3, charmBoxY);
            itemBoxes.Add(new ItemBox("speedCharm", itemBoxSpeedCharmLocation, speedCharm.Sprite, speedCharm));
            itemBoxBackgrounds.Add(new StaticEntity("speedCharm Background", itemBoxSpeedCharmLocation, actionBarBackground));

            Charm   vampiricCharm = charmFactory.CreateLifestealCharm();
            Vector2 itemBoxVampiricCharmLocation = new Vector2(charmBoxX + TileSize * 4, charmBoxY);
            itemBoxes.Add(new ItemBox("vampiricCharm", itemBoxVampiricCharmLocation, vampiricCharm.Sprite, vampiricCharm));
            itemBoxBackgrounds.Add(new StaticEntity("vampiricCharm Background", itemBoxVampiricCharmLocation, actionBarBackground));
            #endregion

            #region Equipped Item Boxes
            int equipBoxX = (int)(TileSize * 1.5);
            int equipBoxY = (int)(WindowHeight - TileSize * 2.5);

            Vector2 box1Location = new Vector2(equipBoxX, equipBoxY);
            equippedItemBoxes.Add(new ItemBox("Weapon1", box1Location, weapon1.Sprite, weapon1));
            equippedItemBoxBackgrounds.Add(new StaticEntity("Weapon1", box1Location, actionBarBackground));

            Vector2 box2Location = new Vector2(equipBoxX + TileSize * 1, equipBoxY);
            equippedItemBoxes.Add(new ItemBox("Weapon2", box2Location, weapon2.Sprite, weapon2));
            equippedItemBoxBackgrounds.Add(new StaticEntity("Weapon2", box2Location, actionBarBackground));

            Vector2 box3Location = new Vector2(equipBoxX + TileSize * 2, equipBoxY);
            equippedItemBoxes.Add(new ItemBox("Shield1", box3Location, shield1.Sprite, shield1));
            equippedItemBoxBackgrounds.Add(new StaticEntity("Shield1", box3Location, actionBarBackground));

            Vector2 box4Location = new Vector2(equipBoxX + TileSize * 3, equipBoxY);
            equippedItemBoxes.Add(new ItemBox("Charm1", box4Location, charm1.Sprite, charm1));
            equippedItemBoxBackgrounds.Add(new StaticEntity("Charm1", box4Location, actionBarBackground));
            #endregion
        }