public void ChangeAlternative(Level level) { int counter = 0; foreach (BaseLevelObject lo in level.LevelObjects) { _loViews[counter].ChangeModel(lo); counter++; } foreach (InteractiveLevelObject lo in level.InteractiveLevelObjects) { _loViews[counter].ChangeModel(lo); counter++; } }
public LevelView(Level level) { _loViews = new List<View>(); foreach(BaseLevelObject lo in level.LevelObjects) { View view = new View(lo); _loViews.Add(view); } foreach(InteractiveLevelObject lo in level.InteractiveLevelObjects) { View view = new InteractiveLevelObjectView(lo); _loViews.Add(view); } }
public object Clone() { List<BaseLevelObject> lObjects = new List<BaseLevelObject>(); foreach(BaseLevelObject lo in LevelObjects) { lObjects.Add(lo.Clone() as BaseLevelObject); } List<InteractiveLevelObject> ilObjets = new List<InteractiveLevelObject>(); foreach(InteractiveLevelObject lo in InteractiveLevelObjects) { ilObjets.Add(lo.Clone() as InteractiveLevelObject); } ilObjets[0].AddLevelObject(lObjects[2]); ilObjets[0].AddLevelObject(lObjects[3]); Level clone = new Level(lObjects, ilObjets); return clone; }
private void OnAlternativeChange(Level level) { _levelView.ChangeAlternative(level); _player.ActivateGravity = true; if(_alterverse.CurrentAlternative > _alterIcons.Count-1) { AlternativeIcon newAltIcon = new AlternativeIcon(_alterIcons[_alterIcons.Count - 1].Position + new Vector2(100, 0), (_alterverse.CurrentAlternative+1).ToString()); newAltIcon.LoadContent(); _alterIcons.Add(newAltIcon); } foreach(AlternativeIcon alterIcon in _alterIcons) { alterIcon.IsActive = false; } _alterIcons[_alterverse.CurrentAlternative].IsActive = true; }