using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.Graphics; namespace SuperPolarity { public class GameActor : Actor { // Graphics / In-Game protected Texture2D Texture; protected Vector2 Origin; // Constraints / Behavior public int HP; protected bool Immortal; public int Value; public override int Width { get { return Texture.Width; } } public override int Height { get { return Texture.Height; } } public GameActor(SuperPolarity newGame) : base(newGame) { } public virtual void Initialize(Texture2D texture, Vector2 position) { base.Initialize (position); Texture = texture; Collides = true; Origin = new Vector2(Texture.Width / 2, Texture.Height / 2); HP = 1; Immortal = false; Value = 1; InitBox (); } public override void Draw(SpriteBatch spriteBatch) { base.Draw(spriteBatch); spriteBatch.Draw(Texture, Position, null, Color, Angle, Origin, 1f, SpriteEffects.None, 0f); } public override void CleanUp() { base.CleanUp (); Texture = null; } public void TakeDamage(int amount) { if (!Immortal) { HP = HP - amount; if (HP < 0) { Die(); } } } } }