public void checkObjectCollision(LLESprite playerCharacter, LLEPlayerData playerData, KeyboardState keyboardState, KeyboardState prevKeyboardState)
        {
            mPlayerCharacter = playerCharacter;

            for (int i = 0; i < mapObjects.Count; i++)
            {
                if (mapObjects[i] != null && mapObjects[i].getSprite() != null && mapObjects[i].getSprite().isVisible())
                {
                    LLESprite target = mapObjects[i].getSprite();

                    if (mapObjects[i].isColliding() == true && playerCharacter.isCollidingMap(new Vector4(target.getX(), target.getY(), target.getHeight(), target.getWidth()), new Vector2(cameraX, cameraY), true, true, 4) == true)
                    {
                        if ((playerCharacter.getDirection() == LLESprite.DIRECTION_UP || playerCharacter.getDirection() == LLESprite.DIRECTION_LEFT_UP || playerCharacter.getDirection() == LLESprite.DIRECTION_RIGHT_UP)

                            && keyboardState.IsKeyDown(Keys.Z) == true && prevKeyboardState.IsKeyDown(Keys.Z) == false)
                        {
                            if (mapObjects[i].getScriptName().Replace("NONE", "" ).Replace(" ", "") != "")
                            {
                                playerCharacter.setAttacking(false);

                                scriptProcessor.extractObjectVariables(mapObjects[i]);

                                scriptProcessor.executeScript(msgManager, playerData);
                            }

                            break;
                        }
                    }
                }
            }
        }
        public void executeScript(LLEMessageManager msgManager, LLEPlayerData playerData)
        {
            XmlTextReader xmlParser = new XmlTextReader("LemonPlatformEditor/ContentDatabase/Scripts/" + targetObject.getScriptName() + ".xml");

            while (xmlParser.Read())
            {
                if (xmlParser.NodeType == XmlNodeType.Element)
                {
                    tagName = xmlParser.Name;

                    switch (tagName)
                    {
                        case "ScriptScope":
                        case "SetSprite":
                        case "VerifyVariable":
                        case "SetVariable":
                        case "MessageBalloon":
                        case "SetTargetVariable":
                        case "SetTargetSprite":
                        case "SetScriptVisibility":
                        case "GiveItem":
                        case "HasItem":
                        case "RemoveItem":
                        case "PlayerData.HasWeapon":
                        {
                            command = tagName;

                            break;
                        }
                    }
                }

                else if (xmlParser.NodeType == XmlNodeType.EndElement)
                {
                    if (xmlParser.Name == "ScriptScope")
                    {
                        ignoreTags = false;
                    }
                }

                else if (xmlParser.NodeType == XmlNodeType.Text)
                {
                    if (!ignoreTags)
                    {
                        switch (tagName)
                        {
                            case "ObjectName":
                            {
                                externObjectName = xmlParser.Value;

                                break;
                            }

                            case "ObjectVisible":
                            {
                                objectVisible = xmlParser.Value;

                                setObjectVisibility();

                                break;
                            }

                            case "VariableName":
                            {
                                variableName = xmlParser.Value;

                                break;
                            }

                            case "VariableValue":
                            {
                                variableValue = xmlParser.Value;

                                if (command == "SetVariable")
                                {
                                    setScriptVariable();
                                }

                                else if (command == "SetTargetVariable")
                                {
                                    setExternalVariable();
                                }

                                break;
                            }

                            case "TargetSprite":
                            {
                                externSprite = xmlParser.Value;

                                if (command == "SetTargetSprite")
                                {
                                    setExternalSprite();
                                }

                                break;
                            }

                            case "ItemName":
                            {
                                itemName = xmlParser.Value;

                                break;
                            }

                            case "IsTrue":
                                {
                                    trueConditionScope = xmlParser.Value;

                                    break;
                                }

                            case "IsFalse":
                                {
                                    falseConditionScope = xmlParser.Value;

                                    if (command == "VerifyVariable")
                                    {
                                        if (verifyVariableValue())
                                        {
                                            scriptScopeName = trueConditionScope;
                                        }

                                        else
                                        {
                                            scriptScopeName = falseConditionScope;
                                        }
                                    }

                                    else if (command == "HasItem")
                                    {
                                        if(hasItem(itemName))
                                        {
                                            scriptScopeName = trueConditionScope;
                                        }

                                        else
                                        {
                                            scriptScopeName = falseConditionScope;
                                        }
                                    }

                                    break;
                                }

                            case "ScopeName":
                                {
                                    if (command == "ScriptScope")
                                    {
                                        if (scriptScopeName != xmlParser.Value)
                                        {
                                            ignoreTags = true;
                                        }
                                    }

                                    break;
                                }

                            case "SetSprite":
                                {
                                    objectSprite = xmlParser.Value;

                                    setObjectSprite();

                                    break;
                                }

                            case "PlayerData.HasWeapon":
                                {
                                    playerData.mHasWeapon = Convert.ToBoolean(xmlParser.Value);

                                    break;
                                }

                            case "GiveItem":
                                {
                                    addItemToInventory(xmlParser.Value);

                                    break;
                                }

                            case "RemoveItem":
                                {
                                    removeItemFromInventory(xmlParser.Value);

                                    break;
                                }

                            case "Target":
                                {
                                    if (command == "MessageBalloon")
                                    {
                                        mMessageTarget = xmlParser.Value;
                                    }

                                    break;
                                }

                            case "EventMsgIcon":
                                {
                                    eventMsg = true;

                                    eventMsgIcon = xmlParser.Value;

                                    break;
                                }

                            case "Text":
                                {
                                    if (command == "MessageBalloon")
                                    {
                                        msgManager.setFocusEntity(mMessageTarget);

                                        msgManager.addMessage(xmlParser.Value, eventMsg, eventMsgIcon);

                                        eventMsgIcon = "";

                                        eventMsg = false;
                                    }

                                    break;
                                }
                        }
                    }
                }
            }

            xmlParser.Close();
        }