From 2350374bd55865a827bf40c4c5e72a771a2ac7d1 Mon Sep 17 00:00:00 2001 From: MGZero Date: Thu, 28 May 2015 22:48:31 -0400 Subject: [PATCH] killable npcs Signed-off-by: MGZero --- King of Thieves/Actors/CActor.cs | 7 +++++-- King of Thieves/Actors/NPC/Enemies/Rope/CBaseRope.cs | 11 ++++++++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/King of Thieves/Actors/CActor.cs b/King of Thieves/Actors/CActor.cs index 05df4d8..2f2266a 100644 --- a/King of Thieves/Actors/CActor.cs +++ b/King of Thieves/Actors/CActor.cs @@ -183,8 +183,11 @@ protected virtual void cleanUp() { foreach (KeyValuePair kvp in _imageIndex) { - Graphics.CTextures.textures[kvp.Value.atlasName].Dispose(); - Graphics.CTextures.textures.Remove(kvp.Value.atlasName); + if (Graphics.CTextures.textures.ContainsKey(kvp.Value.atlasName)) + { + Graphics.CTextures.textures[kvp.Value.atlasName].Dispose(); + Graphics.CTextures.textures.Remove(kvp.Value.atlasName); + } kvp.Value.clean(); } } diff --git a/King of Thieves/Actors/NPC/Enemies/Rope/CBaseRope.cs b/King of Thieves/Actors/NPC/Enemies/Rope/CBaseRope.cs index 945954a..83cff9a 100644 --- a/King of Thieves/Actors/NPC/Enemies/Rope/CBaseRope.cs +++ b/King of Thieves/Actors/NPC/Enemies/Rope/CBaseRope.cs @@ -64,7 +64,7 @@ public CBaseRope() _imageIndex.Add(_FAST_SLITHER_RIGHT, new Graphics.CSprite(_FAST_SLITHER_LEFT,true)); _ropeCount += 1; - + _hitBox = new Collision.CHitBox(this, 10, 10, 10, 15); } @@ -97,6 +97,13 @@ public override void destroy(object sender) base.destroy(sender); } + public override void collide(object sender, CActor collider) + { + base.collide(sender, collider); + if (collider is Items.Swords.CSword || collider is Projectiles.CArrow || collider is Projectiles.CBomb) + _killMe = true; + } + public override void update(GameTime gameTime) { base.update(gameTime); @@ -194,6 +201,8 @@ protected override void _addCollidables() base._addCollidables(); _collidables.Add(typeof(Items.Swords.CSword)); _collidables.Add(typeof(Projectiles.CArrow)); + _collidables.Add(typeof(Projectiles.CBomb)); + _collidables.Add(typeof(Projectiles.CBoomerang)); } } } \ No newline at end of file