From 2a12df147bdb17c60e0381173e8bec8f666d3298 Mon Sep 17 00:00:00 2001 From: Niklas Ulf Anders Cullberg Date: Wed, 17 Oct 2012 11:26:59 +0200 Subject: [PATCH] Cannot Walk Through Monsters --- DepthsBelow/DepthsBelow/Core.cs | 2 ++ DepthsBelow/DepthsBelow/Soldier.cs | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/DepthsBelow/DepthsBelow/Core.cs b/DepthsBelow/DepthsBelow/Core.cs index 7cea473..c4bffdd 100755 --- a/DepthsBelow/DepthsBelow/Core.cs +++ b/DepthsBelow/DepthsBelow/Core.cs @@ -100,6 +100,8 @@ namespace DepthsBelow MouseInput.LoadContent(); KeyboardInput = new KeyboardInput(this); + Swarm.Add(TestMonster); + TestMonster.X = 12; TestMonster.Y = 4; diff --git a/DepthsBelow/DepthsBelow/Soldier.cs b/DepthsBelow/DepthsBelow/Soldier.cs index 857cc82..6987727 100644 --- a/DepthsBelow/DepthsBelow/Soldier.cs +++ b/DepthsBelow/DepthsBelow/Soldier.cs @@ -104,6 +104,13 @@ namespace DepthsBelow soldierCollisions.Add(soldier.Transform.Grid); } } + foreach (var enemy in core.Swarm) + { + if (!enemy.GetComponent().IsMoving) + { + soldierCollisions.Add(enemy.Transform.Grid); + } + } foreach (var soldier in Squad) { @@ -120,6 +127,18 @@ namespace DepthsBelow } } } + foreach (var enemy in core.Swarm) + { + var pathFinder = enemy.GetComponent(); + var position = nextNode.Position; + if (enemy.Transform.Grid == position) + { + soldierCollisions.Add(enemy.Transform.Grid); + GetComponent().RecreatePath(soldierCollisions); + nextNode = GetComponent().Next(); + break; + } + } if (nextNode != null) {