public class GameState\r
{\r
#region Public Properties\r
- private const int hitMonsterScore = 20;\r
- private const int killMonsterScore = 100;\r
+ \r
public int HitMonsterScore { get { return hitMonsterScore; } }\r
public int KillMonsterScore { get { return killMonsterScore; } }\r
\r
public List<Projectile> mProjectiles = new List<Projectile>();\r
public Player[] mCharacters;\r
public Display mDisplay;\r
- public AI AIData;\r
#endregion\r
\r
\r
\r
\r
#region Private Variables\r
-\r
+ private const int hitMonsterScore = 20;\r
+ private const int killMonsterScore = 100;\r
int mNumberOfPlayers;\r
public Point[] mMouseLocation;\r
public bool[] mMouseButton;\r
public void AdvanceLevel()\r
{\r
// TODO: Load the next map, etc...\r
+ //TODO somehow get next map\r
+ State.Entities.Clear();\r
+ String nextMap = State.Map.Next;\r
+ State.Map = mContentManager.Load<Map>("Maps/"+nextMap);\r
+ for (int i = 0; i < State.mCharacters.Length; i++)\r
+ {\r
+ State.mCharacters[i].Coordinates = State.Map.GetStartingPositionForPlayer(i + 1);\r
+ }\r
+ State.Entities = State.Map.GetAllEntities(this);\r
}\r
\r
/// <summary>\r
public Game()\r
{\r
\r
- }\r
- /// <summary>\r
- /// This method should be called whenever the players want to move to a new map.\r
- /// Not implemented yet. Need some way to get next map.\r
- /// </summary>\r
- public void startNewMap()\r
- {\r
- //TODO somehow get next map\r
- State.Entities.Clear();\r
- //State.Map = State.Map.getNextMap();\r
- for (int i = 0; i < State.mCharacters.Length; i++)\r
- {\r
- State.mCharacters[i].Coordinates = State.Map.GetStartingPositionForPlayer(i + 1);\r
- }\r
- State.Entities = State.Map.GetAllEntities(this);\r
}\r
public void LoadContent(ContentManager contentManager)\r
{\r
Map.Tilemap = tilemap;\r
\r
// Load the first map.\r
- State.Map = mContentManager.Load<Map>("Maps/colosseum");\r
+ State.Map = mContentManager.Load<Map>("Maps/colosseumClosed");\r
State.Entities = State.Map.GetAllEntities(this);\r
\r
- //State.AIData = new AI(this);\r
+ mAIData = new AI(this);\r
\r
/*\r
mPlayers.Clear();\r
*/\r
}\r
\r
+ public AI AIData { get { return mAIData; } }\r
+\r
public long CurrentFrameNumber\r
{\r
get { return State.FrameNumber; }\r
{\r
State.AdvanceFrame(mInputs, elapsedTime.Milliseconds); // Apply the inputs, advance game state.\r
State.mDisplay.Update(elapsedTime, mThisPlayerID);\r
+ /*\r
+ State.Entities.ForEach(delegate(IEntity e) \r
+ {\r
+ IMonster m = e as IMonster;\r
+ if (m != null)\r
+ {\r
+ if (State.mCharacters[0] != null && mAIData.spaceVisible(e.Coordinates, State.mCharacters[0].Coordinates))\r
+ {\r
+ m.Chasing(State.mCharacters[0].Coordinates);\r
+ }\r
+ else\r
+ {\r
+ m.DefaultAction();\r
+ }\r
+ }\r
+ e.Update(elapsedTime); \r
+ });\r
+ */\r
State.Entities.ForEach(delegate(IEntity e) { e.Update(elapsedTime); });\r
mInputs = new NextInputs(State.NumberOfPlayers); // Start with inputs cleared on the next frame.\r
//mDisplay.Update(elapsedTime);\r
#region Private Variables\r
\r
SpriteFont menu;\r
-\r
+ AI mAIData;\r
ContentManager mContentManager;\r
NextInputs mInputs;\r
\r