Beispiel #1
0
        // public bool IsTrue (GameObject subject, GameObject target) {
        public bool IsTrue(Dictionary <string, object> checkObjects)
        {
            object[] suppliedParameters;


            // GameObject obj;
            // if (!Messaging.PrepareForMessageSend(callMethod, runTarget, subject, target, referenceTarget, parameters, out obj, out suppliedParameters))
            object obj;

            if (!Messaging.PrepareForMessageSend(callMethod, runTarget, checkObjects, runtimeSubjectName, referenceTarget, parameters, out obj, out suppliedParameters))
            {
                return(trueIfSubjectNull);
            }
            // return false;

            float returnValue;

            if (runTarget == RunTarget.Static)
            {
                if (!Messaging.CallStaticMethod(callMethod, suppliedParameters, out returnValue))
                {
                    return(trueIfSubjectNull);
                }
                // return false;
            }
            else
            {
                if (!obj.CallMethod(callMethod, suppliedParameters, out returnValue))
                {
                    return(trueIfSubjectNull);
                }
                // return false;
            }

            float checkThreshold = threshold;

            if (useGlobalValueThreshold)
            {
                checkThreshold = GlobalGameValues.GetGlobalValue(globalValueThresholdName);
            }

            return(CheckValue(returnValue, threshold));
        }
        public bool IsTrue(GameObject subject, GameObject target)
        {
            object[]   suppliedParameters;
            GameObject obj;

            if (!Messaging.PrepareForMessageSend(callMethod, runTarget, subject, target, referenceTarget, parameters, out obj, out suppliedParameters))
            {
                return(false);
            }

            float returnValue;

            if (runTarget == RunTarget.Static)
            {
                if (!Messaging.CallStaticMethod(callMethod, suppliedParameters, out returnValue))
                {
                    return(false);
                }
            }
            else
            {
                if (!obj.CallMethod(callMethod, suppliedParameters, out returnValue))
                {
                    return(false);
                }
            }

            float checkThreshold = threshold;

            if (useGlobalValueThreshold)
            {
                checkThreshold = GlobalGameValues.GetGlobalValue(globalValueThresholdName);
            }

            return(CheckValue(returnValue, threshold));
        }
Beispiel #3
0
        public bool IsTrue(GameObject subject, GameObject target)
        {
            if (string.IsNullOrEmpty(callMethod) || string.IsNullOrWhiteSpace(callMethod))
            {
                Debug.LogWarning("Call Method is blank...");
                return(false);
            }

            GameObject obj = subject;

            switch (runTarget)
            {
            case RunTarget.Subject: obj = subject; break;

            case RunTarget.Target: obj = target; break;

            case RunTarget.Reference: obj = referenceTarget; break;

            case RunTarget.Static: obj = null; break;
            }

            if (obj == null && runTarget != RunTarget.Static)
            {
                Debug.LogWarning("RunTarget: " + runTarget.ToString() + " is null, can't call condition method: " + callMethod);
                return(false);
            }

            object[] suppliedParameters = new object[0];

            if (parameters.Length > 0)
            {
                List <object> parametersList = new List <object>();
                for (int i = 0; i < parameters.Length; i++)
                {
                    if (parameters[i] != null)
                    {
                        parametersList.Add(parameters[i].GetParamObject());
                    }
                }
                suppliedParameters = parametersList.ToArray();
            }

            float returnValue;

            if (runTarget == RunTarget.Static)
            {
                if (!SystemTools.CallStaticMethod(callMethod, suppliedParameters, out returnValue))
                {
                    return(false);
                }
            }
            else
            {
                if (!obj.CallMethod(callMethod, suppliedParameters, out returnValue))
                {
                    return(false);
                }
            }

            float checkThreshold = threshold;

            if (useGlobalValueThreshold)
            {
                checkThreshold = GlobalGameValues.GetGlobalValue(globalValueThresholdName);
            }

            return(CheckValue(returnValue, threshold));
        }