public override string Simulate(string inCommand, Game game) { DynamicObject insectInWeb = FindInsectStuckInWeb(game.mRoom); if (insectInWeb != null) { if (MathUtils.ArePointsAdjacent(insectInWeb.GetPosition(), mPosition)) { game.mRoom.MarkObjectForDeletion(insectInWeb); } else { MoveTowards(insectInWeb.GetPosition(), game.mRoom); } } else { DynamicObject playerCharacter = game.mRoom.FindFirstDynamicObject(Objects.ID.PlayerCharacter); Debug.Assert(playerCharacter != null); MoveVerticallyToBlock(playerCharacter, game.mRoom); } return(""); }
public override string Simulate(string inCommand, Game game) { if (game.mRoom.GetStaticObject(mPosition).GetTypeID() == Objects.ID.SpiderWeb) { return(""); } if (mIsMovingTowardsFlower) { DynamicObject flower = game.mRoom.FindFirstDynamicObject(Objects.ID.Rose); if (flower != null) { if (MathUtils.ArePointsAdjacent(flower.GetPosition(), mPosition)) { mIsMovingTowardsFlower = false; } else { MoveTowards(flower.GetPosition(), game.mRoom); } } } else { HoneyPot honeyPot = (HoneyPot)game.mRoom.GetFirstObject(Objects.ID.HoneyPot); Debug.Assert(honeyPot != null); if (MathUtils.ArePointsAdjacent(honeyPot.GetPosition(), mPosition)) { mIsMovingTowardsFlower = true; } else { MoveTowards(honeyPot.GetPosition(), game.mRoom); } } return(""); }