示例#1
0
        public override bool Parse()
        {
            mRefVar = Util.GetBool(mInfo, "value");

            mVarRef = Util.GetVarRef(mInfo, "switch", mTrigger);

            return(true);
        }
示例#2
0
        public override bool Parse()
        {
            mCompare = mFactory.GetCompare(mInfo, "compare");

            mRefVar = Util.GetVarRefOrValue(mInfo, "ref", VarValue.EType.Var, mTrigger);

            mVarRef = Util.GetVarRef(mInfo, "name", mTrigger);

            return(true);
        }
示例#3
0
        public override bool Parse()
        {
            if (false == base.Parse())
            {
                return(false);
            }

            mScriptIdRef = Util.GetVarRefOrValue(mInfo, "mission", VarValue.EType.Int, mTrigger);

            return(true);
        }
示例#4
0
        protected override bool Exec()
        {
            VarRef scriptId = PatheaScript.Util.GetVarRefOrValue(mInfo, "mission", VarValue.EType.Int, mTrigger);

            if (((int)scriptId.Value) < 0)
            {
                Debug.LogError("error script id:" + scriptId);
                return(false);
            }

            mTrigger.Parent.Parent.AddToLoadList((int)scriptId.Value);

            return(true);
        }
示例#5
0
        protected override bool Exec()
        {
            VarRef scriptIdRef = PatheaScript.Util.GetVarRefOrValue(mInfo, "mission", VarValue.EType.Int, mTrigger);
            int    scriptId    = (int)scriptIdRef.Value;

            PatheaScript.PsScript.EResult result = PatheaScript.Util.GetScriptResult(mInfo);

            if (scriptId >= 0)
            {
                PsScript script = null;

                if (0 == scriptId)
                {
                    script = mTrigger.Parent;
                }
                else
                {
                    script = mTrigger.Parent.Parent.FindScriptById(scriptId);
                }

                if (null != script)
                {
                    script.RequireStop(result);
                    return(true);
                }
            }
            else
            {
                List <PsScript> curScript = new List <PsScript>(mTrigger.Parent.Parent.CurScript);

                if (-2 == scriptId)
                {
                    curScript.Remove(mTrigger.Parent);
                }

                if (curScript.Count > 0)
                {
                    foreach (PsScript q in curScript)
                    {
                        q.RequireStop(result);
                    }
                }
            }

            return(false);
        }
示例#6
0
        public static bool Serialize(Stream stream, VarRef varRef)
        {
            using (BinaryWriter w = new BinaryWriter(stream))
            {
                if (string.IsNullOrEmpty(varRef.Name))
                {
                    w.Write(true);

                    BinaryFormatter b = new BinaryFormatter();
                    b.Serialize(stream, varRef.Value);
                }
                else
                {
                    w.Write(false);
                    w.Write(varRef.Name);
                }
                return(true);
            }
        }
示例#7
0
        protected override bool Exec()
        {
            Functor functor = mFactory.GetFunctor(mInfo, "set");

            //Variable arg = new Variable((VarValue)Util.GetInt(mInfo, "value"));
            VarRef arg = Util.GetVarRefOrValue(mInfo, "value", VarValue.EType.Var, mTrigger);

            Variable.EScope eScope  = Util.GetVarScope(mInfo);
            string          varName = Util.GetString(mInfo, "name");

            Variable variable = mTrigger.AddVar(varName, eScope);

            functor.Set(variable, arg.Var);

            functor.Do();

            Debug.Log("execute result:" + functor);
            return(true);
        }
示例#8
0
        //if is variable name, it must be bracketed in %
        public static VarRef GetVarRefOrValue(XmlNode xmlNode, string name, VarValue.EType eType, Trigger trigger)
        {
            VarRef varRef = null;

            string text = Util.GetString(xmlNode, name);

            if (IsVarName(text))
            {
                string varName = GetVarName(text);
                varRef = new VarRef(varName, trigger);
            }
            else
            {
                VarValue varValue = GetVarValue(text, eType);
                varRef = new VarRef(varValue);
            }

            return(varRef);
        }