diff --git a/DepthsBelow/DepthsBelow/Component/SpriteRenderer.cs b/DepthsBelow/DepthsBelow/Component/SpriteRenderer.cs
index 2609172..7611f31 100755
--- a/DepthsBelow/DepthsBelow/Component/SpriteRenderer.cs
+++ b/DepthsBelow/DepthsBelow/Component/SpriteRenderer.cs
@@ -17,6 +17,7 @@ namespace DepthsBelow.Component
/// The texture to be rendered.
///
public Texture2D Texture;
+ public Texture2D AlternativeTexture;
///
/// Color modifier.
///
@@ -38,7 +39,14 @@ namespace DepthsBelow.Component
public void Draw(SpriteBatch spriteBatch)
{
var transform = this.Parent.GetComponent();
- spriteBatch.Draw(Texture, transform.World.Position + transform.World.Origin, null, Color, transform.World.Rotation, transform.World.Origin, Scale, SpriteEffects, 0);
+ if (AlternativeTexture == null)
+ {
+ spriteBatch.Draw(Texture, transform.World.Position + transform.World.Origin, null, Color, transform.World.Rotation, transform.World.Origin, Scale, SpriteEffects, 0);
+ }
+ else
+ {
+ spriteBatch.Draw(AlternativeTexture, transform.World.Position + transform.World.Origin - new Vector2(Grid.TileSize, Grid.TileSize), null, Color, transform.World.Rotation, transform.World.Origin, Scale, SpriteEffects, 0);
+ }
}
}
}
diff --git a/DepthsBelow/DepthsBelow/Map.cs b/DepthsBelow/DepthsBelow/Map.cs
index c6519b6..efa74c5 100755
--- a/DepthsBelow/DepthsBelow/Map.cs
+++ b/DepthsBelow/DepthsBelow/Map.cs
@@ -84,7 +84,15 @@ namespace DepthsBelow
}
if (mapObject.Type == "MonsterSpawn")
{
- var enemy = new MonsterSpawn(ref core.Swarm);
+ var enemy = new MonsterSpawn("Monster", ref core.Swarm);
+ var mapObjectPos = new Vector2(mapObject.Bounds.X, mapObject.Bounds.Y - Grid.TileSize);
+ var mapObjectGridPos = Grid.WorldToGrid(mapObjectPos);
+ enemy.X = mapObjectGridPos.X;
+ enemy.Y = mapObjectGridPos.Y;
+ }
+ if (mapObject.Type == "BossSpawn")
+ {
+ var enemy = new MonsterSpawn("BUB", ref core.Swarm);
var mapObjectPos = new Vector2(mapObject.Bounds.X, mapObject.Bounds.Y - Grid.TileSize);
var mapObjectGridPos = Grid.WorldToGrid(mapObjectPos);
enemy.X = mapObjectGridPos.X;
diff --git a/DepthsBelow/DepthsBelow/MonsterSpawn.cs b/DepthsBelow/DepthsBelow/MonsterSpawn.cs
index fc366c2..a60b25f 100755
--- a/DepthsBelow/DepthsBelow/MonsterSpawn.cs
+++ b/DepthsBelow/DepthsBelow/MonsterSpawn.cs
@@ -14,12 +14,15 @@ namespace DepthsBelow
int wakingDistance = 7;
int sleepingDistance = 6;
+ string type;
+
List swarm;
- public MonsterSpawn(ref List Swarm)
+ public MonsterSpawn(string _type, ref List Swarm)
: base()
{
//this.entityManager = entityManager;
+ type = _type;
swarm = Swarm;
}
@@ -37,6 +40,10 @@ namespace DepthsBelow
if (Vector2.Distance(distance1, distance2) < wakingDistance/* && Vector2.Distance(distance1, distance2) > sleepingDistance*/)
{
var enemy = new SmallEnemy(ref swarm);
+ if (type == "BUB")
+ {
+ enemy.LoadBoss();
+ }
enemy.X = this.X;
enemy.Y = this.Y;
swarm.Add(enemy);
diff --git a/DepthsBelow/DepthsBelow/SmallEnemy.cs b/DepthsBelow/DepthsBelow/SmallEnemy.cs
index b1025de..d310679 100755
--- a/DepthsBelow/DepthsBelow/SmallEnemy.cs
+++ b/DepthsBelow/DepthsBelow/SmallEnemy.cs
@@ -86,6 +86,19 @@ namespace DepthsBelow
Texture = GameServices.GetService().Load("images/Monster");
}
+ public void LoadBoss()
+ {
+ GetComponent().AlternativeTexture = GameServices.GetService().Load("images/Pineapple");
+ var stat = new Component.Stat(this)
+ {
+ Life = 500,
+ Defence = 15,
+ Strength = 70,
+ GetAim = 80,
+ GetDodge = 5
+ };
+ }
+
public override void Update(GameTime gameTime)
{
base.Update(gameTime);