]> git.r.bdr.sh - rbdr/super-polarity/blobdiff - SuperPolarity/Actors/GameActor.cs
Moves some files around!
[rbdr/super-polarity] / SuperPolarity / Actors / GameActor.cs
diff --git a/SuperPolarity/Actors/GameActor.cs b/SuperPolarity/Actors/GameActor.cs
new file mode 100644 (file)
index 0000000..8015ffa
--- /dev/null
@@ -0,0 +1,80 @@
+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();
+                               }
+                       }
+               }
+    }
+}