X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fcarfire;a=blobdiff_plain;f=CarFire%2FCarFire%2FCarFire%2FPlayer.cs;h=b84b04846158bd63d4f04830a4759c6cd7bc61c2;hp=f1d121c1907a0395ddeb2cab037a5b202bf4ad3f;hb=08f41ef45f3c41ca6302150bc6d5270c8e7143db;hpb=0470a7b148c79aaacf0d8107b5bd40fa1e81ac0a diff --git a/CarFire/CarFire/CarFire/Player.cs b/CarFire/CarFire/CarFire/Player.cs index f1d121c..b84b048 100644 --- a/CarFire/CarFire/CarFire/Player.cs +++ b/CarFire/CarFire/CarFire/Player.cs @@ -10,10 +10,11 @@ using Microsoft.Xna.Framework.Input; namespace CarFire { - public class Player : ICharacter + public abstract class Player : ICharacter { #region Member variables //The number of frames between each projectile is spawned. + const float basePlayerSpeed = 4.0f; const int shootCoolDown = 18; String CharName; Game game; @@ -21,10 +22,31 @@ namespace CarFire int playerDamage; int score; MovementManager mMotion; + List mInventory = new List(4); int mPlayerIndex; #endregion + #region Public Properties + public int Health { get { return playerHealth; } set{playerHealth = value;} } + public int Score { get { return score; } set { score = value; } } + public bool alive { get { return playerHealth > 0; } } + public Game Game { get { return game; } } + public MovementManager Motion { get { return mMotion; } } + public int PlayerIndex { get { return mPlayerIndex; } } + public bool IsCollidable { get { return true; } } + public Vector2 Position { get { return mMotion.Position; } } + public Point Coordinates { get { return mMotion.Coordinates; } + set + { + Coordinates = value; + mMotion = new MovementManager(value, basePlayerSpeed); + } } + public char Identifier { get { return mPlayerIndex.ToString()[0]; } } + public int Damage { get { return playerDamage; } set { playerDamage = value; } } + public List Inventory { get { return mInventory; } } + #endregion + #region Public Methods public Player(Game theGame, String Name, Point position, int playerIndex, int health, int damage) { game = theGame; @@ -37,29 +59,6 @@ namespace CarFire // Speed is the number of grid cells you can move through per second. mMotion = new MovementManager(position, 4.0f); } - - public virtual void LoadContent(ContentManager contentManager) - { - - } - /// - /// This method will draw a character to the screen. - /// - /// - public virtual void Draw(SpriteBatch spriteBatch) - { - } - - public int Health { get { return playerHealth; } } - public int Score { get { return score; } } - public bool alive { get { return playerHealth > 0; } } - public Game Game { get { return game; } } - public MovementManager Motion { get { return mMotion; } } - public int PlayerIndex { get { return mPlayerIndex; } } - public Vector2 Position { get { return mMotion.Position; } } - public Point Coordinates { get { return mMotion.Coordinates; } } - public int Damage { get { return playerDamage; } } - public void causeDamageTo(int amount) { playerHealth -= amount; @@ -106,10 +105,7 @@ namespace CarFire mMotion.LockUpdate(timeSpan, moveLeft, moveRight, moveUp, moveDown); } } - public virtual void Attack(List keysPressed) - { - - } + public void powerUp(int amount) { playerHealth += amount; @@ -117,8 +113,29 @@ namespace CarFire public void Spawn(Vector2 spawn) { - + + } + public void AddHealth(int healthBoost) + { + Health += healthBoost; } + public void IncreaseDamage(int damageBoost) + { + Damage += damageBoost; + } + #endregion + + #region Abstract Methods + public abstract void PlayAttackSound(); + public abstract void PlayDieSound(); + public abstract void LoadContent(ContentManager contentManager); + /// + /// This method will draw a character to the screen. + /// + /// + public abstract void Draw(SpriteBatch spriteBatch); + public abstract void Attack(List keysPressed); + #endregion }