示例#1
0
        //parse level data from file
        static LevelManager()
        {
            Levels = new Level[TOTAL_LEVELS];

            FileStream input = new FileStream(
                LEVEL_DATA,
                FileMode.Open,
                FileAccess.Read);

            StreamReader reader = new StreamReader(input);

            for (int i = 0; i < TOTAL_LEVELS; i++)
            {
                string line = reader.ReadLine();
                if (line == null)
                    break;

                string[] values = line.Split(','); //split into component values

                Levels[i] = new Level(
                    int.Parse(values[0]),
                    int.Parse(values[1]),
                    int.Parse(values[2]),
                    int.Parse(values[3]),
                    int.Parse(values[4]),
                    int.Parse(values[5]),
                    int.Parse(values[6]),
                    int.Parse(values[7]),
                    int.Parse(values[8]),
                    int.Parse(values[9]));
            }

            reader.Close();
        }
示例#2
0
        public static void Generate(Level level)
        {
            NPCs = new List<NPC>();
            Effects = new List<ParticleEmitter>();

            //TODO: CHANGE
            EquipmentData temp = NPCEquipment[DRONE_KEY];

            for (int i = 0; i < level.Mines; i++)
                NPCs.Add(new NPC(
                    MINE_KEY,
                    MINE_KEY + DAMAGE_POSTFIX,
                    DEATH_SFX,
                    AIState.Mine,
                    getOffscreenPos(ContentHandler.Textures[MINE_KEY].Width, ContentHandler.Textures[MINE_KEY].Height),
                    Vector2.Zero,
                    Vector2.Zero,
                    Color.White,
                    50,
                    null,
                    ContentHandler.Textures[MINE_KEY].GetMeanRadius(3, 1),
                    200,
                    0, //TODO: Add attributes for all.
                    0,
                    100,
                    0.5f,
                    10,
                    0f,
                    0f,
                    3,
                    1,
                    3));

            for (int i = 0; i < level.Drones; i++)
                NPCs.Add(new NPC(
                    DRONE_KEY,
                    DRONE_KEY + DAMAGE_POSTFIX,
                    DEATH_SFX,
                    AIState.Attack,
                    getOffscreenPos(ContentHandler.Textures[DRONE_KEY].Width, ContentHandler.Textures[DRONE_KEY].Height),
                    Vector2.Zero,
                    Vector2.Zero,
                    Color.White,
                    50,
                    temp,
                    ContentHandler.Textures[DRONE_KEY].GetMeanRadius(),
                    500,
                    0,
                    0,
                    100,
                    5,
                    40));

            for (int i = 0; i < level.Fighters; i++)
                NPCs.Add(new NPC(
                    FIGHTER_KEY,
                    FIGHTER_KEY + DAMAGE_POSTFIX,
                    DEATH_SFX,
                    AIState.Random,
                    getOffscreenPos(ContentHandler.Textures[FIGHTER_KEY].Width, ContentHandler.Textures[FIGHTER_KEY].Height),
                    Vector2.Zero,
                    Vector2.Zero,
                    Color.White,
                    100,
                    NPCEquipment[FIGHTER_KEY],
                    ContentHandler.Textures[FIGHTER_KEY].GetMeanRadius(),
                    1000,
                    0,
                    0,
                    0,
                    8,
                    0,
                    0));

            for (int i = 0; i < level.Bombers; i++)
                NPCs.Add(new NPC(
                    BOMBER_KEY,
                    BOMBER_KEY + DAMAGE_POSTFIX,
                    DEATH_SFX,
                    AIState.Random,
                    getOffscreenPos(ContentHandler.Textures[BOMBER_KEY].Width, ContentHandler.Textures[BOMBER_KEY].Height),
                    Vector2.Zero,
                    Vector2.Zero,
                    Color.White,
                    500,
                    NPCEquipment[BOMBER_KEY],
                    ContentHandler.Textures[BOMBER_KEY].GetMeanRadius(),
                    1000,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0));
        }