2 using System.Collections.Generic;
5 using Microsoft.Xna.Framework;
6 using Microsoft.Xna.Framework.Content;
7 using Microsoft.Xna.Framework.Graphics;
8 using Microsoft.Xna.Framework.Input;
15 public GameLogic(Game game)
19 public void Update(TimeSpan timespan, int thisPlayer)
21 //Handle projectiles - update and check for wall collisions
22 for (int i = 0; i < mGame.State.mProjectiles.Count; i++)
25 if (!mGame.State.Map.IsCellOpen(new Point(mGame.State.mProjectiles[i].Coordinates.X, mGame.State.mProjectiles[i].Coordinates.Y)))
28 mGame.State.mProjectiles.RemoveAt(i);
33 mGame.State.mProjectiles[i].Update(timespan);
37 for (int j = 0; j < mGame.State.mCharacters.Length; j++)
40 if (mGame.State.mCharacters[j] != null)
41 for (int i = 0; i < mGame.State.mProjectiles.Count; i++)
43 if (mGame.State.mProjectiles[i].Coordinates.X == mGame.State.mCharacters[j].Coordinates.X && mGame.State.mProjectiles[i].Coordinates.Y == mGame.State.mCharacters[j].Coordinates.Y)
45 mGame.State.mCharacters[j].causeDamageTo(mGame.State.mProjectiles[i].Damage);
46 Console.WriteLine(mGame.State.mCharacters[j].Health);
47 mGame.State.mProjectiles.RemoveAt(i);
52 //Update input for each player
53 for (int i = 0; i < mGame.State.NumberOfPlayers; i++)
55 //If player has not selected a player yet let them select one.
56 if (mGame.State.mCharacters[i] == null)
58 if (mGame.State.GetKeysDown(i).Contains(Keys.Enter))
60 //mCharacters[i] = new Human(mGame, "", everything, projectile1, this, mGame.State.Map.GetStartingPositionForPlayer(i + 1));
63 //Regular player input updates
67 mGame.State.mCharacters[i].UpdateInput(timespan, mGame.State.GetKeysDown(i));
71 if (mGame.State.mCharacters[thisPlayer] != null)
73 mGame.State.Map.CenterCell = mGame.State.mCharacters[thisPlayer].Position;
75 //Handle wall collisions of projectiles again...
76 for (int i = 0; i < mGame.State.mProjectiles.Count; i++)
78 if (!mGame.State.Map.IsCellOpen(new Point(mGame.State.mProjectiles[i].Coordinates.X, mGame.State.mProjectiles[i].Coordinates.Y)))
80 mGame.State.mProjectiles.RemoveAt(i);