Пример #1
0
        private void SetUnlocksForMission(int mission)
        {
            drawAliens.Clear();
            projImgs.Clear();
            projRects.Clear();
            otherUnlockImgs.Clear();
            otherUnlockRects.Clear();
            unlocks.Clear();
            unlockPositions.Clear();

            // Check and add any aliens for the level first
            if (GameInfo.AlienVisibilityLvls.ContainsKey(mission))
            {
                List <Aliens> aliens = GameInfo.AlienVisibilityLvls
                                       .Where(x => x.Key == mission)
                                       .Select(kvp => kvp.Value)
                                       .ToList();
                for (int i = 0; i < aliens.Count; i++)
                {
                    Alien newAlien = GameInfo.CreateAlien(aliens[i], false, 1000, 1000, ALIEN_WIDTH,
                                                          ALIEN_HEIGHT, null);
                    newAlien.ShowHealthbar = false;
                    drawAliens.Add(newAlien);
                    unlocks.Add(Language.Translate("New Alien") + ": " +
                                Language.Translate(GameInfo.ToText(aliens[i])));
                    unlockPositions.Add(new Vector2());
                }
            }
            // Now check and add projectiles
            if (GameInfo.ProjVisibilityLvls.ContainsValue(mission))
            {
                List <ProjectileType> projs = GameInfo.ProjVisibilityLvls
                                              .Where(x => x.Value == mission)
                                              .Select(kvp => kvp.Key)
                                              .ToList();
                for (int i = 0; i < projs.Count; i++)
                {
                    projImgs.Add(Utilities.GetIconOf(projs[i]));
                    projRects.Add(new Rectangle(0, 0, ITEM_SIZE, ITEM_SIZE));
                    unlocks.Add(Language.Translate("New Projectile") + ": " +
                                Language.Translate(projs[i].ToString().AddSpaces()));
                    unlockPositions.Add(new Vector2());
                }
            }
            // Finally, check for special features added in levels (such as shields or cannon upgrades)
            if (mission == GameInfo.SHIELD_LVL)
            {
                otherUnlockImgs.Add(Utilities.AlienShieldImg);
                otherUnlockRects.Add(new Rectangle(0, 0, ITEM_SIZE, ITEM_SIZE));
                unlocks.Add(Language.Translate("Alien Shields"));
                unlockPositions.Add(new Vector2());
            }
        }