public override bool Parse() { mRefVar = Util.GetBool(mInfo, "value"); mVarRef = Util.GetVarRef(mInfo, "switch", mTrigger); return(true); }
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); }
public override bool Parse() { if (false == base.Parse()) { return(false); } mScriptIdRef = Util.GetVarRefOrValue(mInfo, "mission", VarValue.EType.Int, mTrigger); return(true); }
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); }
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); }
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); } }
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); }
//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); }