//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(); }
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)); }