public ItemManager(ref LevelSlider refSlider) { slider = refSlider; //Init data lists weapons = new List <WeaponType>(); }
//############################################################################################ //############################################################################################ public static Item CreateItem(ItemType type, GameObject item, ref LevelSlider refSlider) { Item i = new Item(type, item); i.LoadContent(); i.slider = refSlider; return(i); }
//Unload the level //clear all data for memory management reasons public virtual void Unload() { state = GameState.Unloaded; slider = null; SUI = null; if (loaded) { enemyShips.Clear(); enemyBullets.Clear(); } foreach (Player p in PROP.players) { p.bullets.Clear(); } }
//The main loading of the level //Child classes (the actuall level objects) //should call this base method first to Init the basic stuff public virtual void Load(Textures.TextureName levelBackground) { loaded = true; border = new GameObject(Textures.TextureName.LevelBorder); border.LoadContent(); border.CenterIn(bounds); slider = new LevelSlider(levelBackground, bounds); slider.Load(); //Items itemMan = new ItemManager(ref slider); //Init data structures enemyShips = new List <Ship>(); enemyBullets = new List <Bullet>(); items = new List <Item>(); //Link the UpdateInfo to appropriate data SUI = new ShipUpdateInfo(); SUI.viewport = bounds; SUI.npcs = enemyShips; SUI.slider = this.slider; //Position the player ships foreach (Player p in PROP.players) { if (p.ControllerIndex == PlayerIndex.Two) { p.ship.MoveTo(GetPlayerInitPos()); p.ship.position.X += 60; } else { p.ship.MoveTo(GetPlayerInitPos()); } } }