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("");
        }
Exemple #2
0
        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("");
        }