From 450ffdb68cc9bc73adf2089536e3982bd97f0751 Mon Sep 17 00:00:00 2001 From: Niklas Ulf Anders Cullberg Date: Wed, 31 Oct 2012 00:19:07 +0100 Subject: [PATCH] BossPreperation --- DepthsBelow/DepthsBelow/Component/SpriteRenderer.cs | 10 +++++++++- DepthsBelow/DepthsBelow/Map.cs | 10 +++++++++- DepthsBelow/DepthsBelow/MonsterSpawn.cs | 9 ++++++++- DepthsBelow/DepthsBelow/SmallEnemy.cs | 13 +++++++++++++ 4 files changed, 39 insertions(+), 3 deletions(-) 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);