public static object getProp(string objectIdentifier, string propertyName)
        {
            if (string.IsNullOrEmpty(objectIdentifier) || string.IsNullOrEmpty(propertyName))
            {
                return(string.Empty);
            }
            if (objectIdentifier.StartsWith("Dialog[") && DialogueManager.isConversationActive)
            {
                // Handle Dialog[#] specially:
                var entryID        = Tools.StringToInt(objectIdentifier.Substring(7, objectIdentifier.Length - 8));
                var conversationID = DialogueManager.currentConversationState.subtitle.dialogueEntry.conversationID;
                if (string.Equals("SimStatus", propertyName))
                {
                    return(DialogueLua.GetSimStatus(conversationID, entryID));
                }
                var entry = DialogueManager.masterDatabase.GetDialogueEntry(conversationID, entryID);
                if (entry == null)
                {
                    return(string.Empty);
                }
                var field = Field.Lookup(entry.fields, propertyName);
                if (field == null)
                {
                    return(string.Empty);
                }
                if (field.type == FieldType.Number)
                {
                    return(Tools.StringToFloat(field.value));
                }
                else if (field.type == FieldType.Boolean)
                {
                    return(Tools.StringToBool(field.value));
                }
                else
                {
                    return(field.value);
                }
            }
            var result = Lua.Run("return " + objectIdentifier + "." + DialogueLua.StringToTableIndex(GetShortPropertyName(propertyName)), DialogueDebug.logInfo);

            if (result.isBool)
            {
                return(result.asBool);
            }
            else if (result.isNumber)
            {
                return(result.asInt);
            }
            else
            {
                return(result.asString);
            }
        }