X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fcarfire;a=blobdiff_plain;f=CarFire%2FCarFire%2FCarFire%2FGame.cs;h=9a44ff37f16629945ff18469cf4e862935903167;hp=56507110fac10ba1c10502be051f1cf11545dc1f;hb=f4202b11a1891486216aab3c6b1370fc9a3eb89a;hpb=122c062297acac44673e947b666c1d72cd23fb1b diff --git a/CarFire/CarFire/CarFire/Game.cs b/CarFire/CarFire/CarFire/Game.cs index 5650711..9a44ff3 100644 --- a/CarFire/CarFire/CarFire/Game.cs +++ b/CarFire/CarFire/CarFire/Game.cs @@ -15,8 +15,7 @@ namespace CarFire public class GameState { #region Public Properties - private const int hitMonsterScore = 20; - private const int killMonsterScore = 100; + public int HitMonsterScore { get { return hitMonsterScore; } } public int KillMonsterScore { get { return killMonsterScore; } } @@ -31,7 +30,6 @@ namespace CarFire public List mProjectiles = new List(); public Player[] mCharacters; public Display mDisplay; - public AI AIData; #endregion @@ -161,7 +159,8 @@ namespace CarFire #region Private Variables - + private const int hitMonsterScore = 20; + private const int killMonsterScore = 100; int mNumberOfPlayers; public Point[] mMouseLocation; public bool[] mMouseButton; @@ -309,6 +308,15 @@ namespace CarFire public void AdvanceLevel() { // TODO: Load the next map, etc... + //TODO somehow get next map + State.Entities.Clear(); + String nextMap = State.Map.Next; + State.Map = mContentManager.Load("Maps/"+nextMap); + for (int i = 0; i < State.mCharacters.Length; i++) + { + State.mCharacters[i].Coordinates = State.Map.GetStartingPositionForPlayer(i + 1); + } + State.Entities = State.Map.GetAllEntities(this); } /// @@ -324,21 +332,6 @@ namespace CarFire public Game() { - } - /// - /// This method should be called whenever the players want to move to a new map. - /// Not implemented yet. Need some way to get next map. - /// - public void startNewMap() - { - //TODO somehow get next map - State.Entities.Clear(); - //State.Map = State.Map.getNextMap(); - for (int i = 0; i < State.mCharacters.Length; i++) - { - State.mCharacters[i].Coordinates = State.Map.GetStartingPositionForPlayer(i + 1); - } - State.Entities = State.Map.GetAllEntities(this); } public void LoadContent(ContentManager contentManager) { @@ -428,10 +421,10 @@ namespace CarFire Map.Tilemap = tilemap; // Load the first map. - State.Map = mContentManager.Load("Maps/colosseum"); + State.Map = mContentManager.Load("Maps/colosseumClosed"); State.Entities = State.Map.GetAllEntities(this); - //State.AIData = new AI(this); + mAIData = new AI(this); /* mPlayers.Clear(); @@ -499,7 +492,23 @@ namespace CarFire { State.AdvanceFrame(mInputs, elapsedTime.Milliseconds); // Apply the inputs, advance game state. State.mDisplay.Update(elapsedTime, mThisPlayerID); - State.Entities.ForEach(delegate(IEntity e) { e.Update(elapsedTime); }); + State.Entities.ForEach(delegate(IEntity e) + { + IMonster m = e as IMonster; + if (m != null) + { + if (State.mCharacters[0] != null && mAIData.spaceVisible(e.Coordinates, State.mCharacters[0].Coordinates)) + { + m.Chasing(State.mCharacters[0].Coordinates); + } + else + { + m.DefaultAction(); + } + } + e.Update(elapsedTime); + }); + //State.Entities.ForEach(delegate(IEntity e) { e.Update(elapsedTime); }); mInputs = new NextInputs(State.NumberOfPlayers); // Start with inputs cleared on the next frame. //mDisplay.Update(elapsedTime); return State.FrameNumber; @@ -546,7 +555,7 @@ namespace CarFire #region Private Variables SpriteFont menu; - + AI mAIData; ContentManager mContentManager; NextInputs mInputs;