//---------------------------------------------------------------------------------------------------------------------------------------------------
//
// Copyright (C)2007 DarkWynter Studios. All rights reserved.
//
//---------------------------------------------------------------------------------------------------------------------------------------------------
// {Contact : darkwynter.com for licensing information
//---------------------------------------------------------------------------------------------------------------------------------------------------
namespace DarkWynter.Engine.EventControl.EventTypes
{
using System;
using System.Collections.Generic;
using System.Diagnostics;
using DarkWynter.Engine.Init;
using DarkWynter.Engine.Utilities;
using DarkWynter.Engine.Globals;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using System.Text;
using System.Xml;
///
/// Instance of the LevelChangeEvent
/// Extends GameEvent
/// Used to signal that a change in the level is needed
///
public class LevelChangeEvent : GameEvent
{
public int nextLevel { get { return _nextLevel; } set { _nextLevel = value; } }
public int _nextLevel;
public LevelChangeEvent(XmlNode node)
:base(node)
{
if (node.Attributes["nextLevel"] != null)
{
this.nextLevel = int.Parse(node.Attributes["nextLevel"].Value);
}
else
{
this.nextLevel = 0;
}
}
///
/// Changes the level the game is on
///
public override void FireEvent()
{
//if (MajikWand.activeRequestCount == 0)
//{
Statics_Engine.levelIndex = this.nextLevel;
Statics_Engine.GameSettings.LoadLevel = true;
if (Statics_Engine.levelIndex != -1)
{
Statics_Engine.SystemSettings.gameState = Enums_Engine.EngineState.INSTRUCTION_SCREEN;
}
else if (Statics_Engine.levelIndex == -1)
{
DarkWynterEngine.launchPostTest = true;
Statics_Engine.levelIndex = 0;
Statics_Engine.SystemSettings.gameState = Enums_Engine.EngineState.FINALIZE_G2LSTUFF;
}
this.isFinished = true;
//}
}
}
}