/// <summary> /// 初始化剧情命令 /// </summary> /// <param name="config"></param> public void Init(ScriptableData.ISyntaxComponent config) { ScriptableData.CallData callData = config as ScriptableData.CallData; if (callData != null) { Load(callData); } else { ScriptableData.FunctionData funcData = config as ScriptableData.FunctionData; if (funcData != null) { Load(funcData); } else { ScriptableData.StatementData stateData = config as ScriptableData.StatementData; if (stateData != null) { Load(stateData); } else { Debug.LogError("剧情命令不能解析"); } } } }
protected override void Load(ScriptableData.FunctionData functionData) { ScriptableData.CallData callData = functionData.Call; if (null != callData) { if (callData.GetParamNum() > 0) { ScriptableData.ISyntaxComponent param = callData.GetParam(0); m_Condition.InitFromDsl(param); } for (int i = 0; i < functionData.Statements.Count; i++) { ICommand cmd = CommandManager.Instance.CreateCommand(functionData.Statements[i]); if (null != cmd) { m_LoadedIfCommands.Add(cmd); } } /* * foreach (ScriptableData.ISyntaxComponent statement in functionData.Statements) { * ICommand cmd = StoryCommandManager.Instance.CreateCommand(statement); * if (null != cmd) * m_LoadedIfCommands.Add(cmd); * }*/ } }
public IStoryValue <object> CalcValue(ScriptableData.ISyntaxComponent param) { if (param.IsValid() && param.GetId().Length == 0) { //处理括弧 ScriptableData.CallData callData = param as ScriptableData.CallData; if (null != callData && callData.GetParamNum() > 0) { int ct = callData.GetParamNum(); return(CalcValue(callData.GetParam(ct - 1))); } else { //不支持的语法 return(null); } } else { IStoryValue <object> ret = null; string id = param.GetId(); if (m_dicValueHandlers.ContainsKey(id)) { ret = m_dicValueHandlers[id].Build(param); } return(ret); } }
public ISkillTriger Create(ScriptableData.ISyntaxComponent trigerConfig) { T t = new T(); t.Init(trigerConfig); return(t); }
public ICommand Create(ScriptableData.ISyntaxComponent commandConfig) { T t = new T(); t.Init(commandConfig); return(t); }
public void InitFromDsl(ScriptableData.ISyntaxComponent param) { string id = param.GetId(); int idType = param.GetIdType(); if (idType == ScriptableData.ValueData.ID_TOKEN && id.StartsWith("$")) { if (0 == id.CompareTo("$$")) { SetArgument(c_Iterator); } else { SetArgument(int.Parse(id.Substring(1))); } } else if (idType == ScriptableData.ValueData.ID_TOKEN && id.StartsWith("@")) { if (id.StartsWith("@@")) { SetGlobal(id); } else { SetLocal(id); } } else { CalcInitValue(param); } }
public void InitFromDsl(ScriptableData.ISyntaxComponent param) { ScriptableData.CallData callData = param as ScriptableData.CallData; if (null != callData && callData.GetId() == "rndfloat") { } }
public IValue <object> Build(ScriptableData.ISyntaxComponent param) { C c = new C(); c.InitFromDsl(param); return(c); }
public IValue <object> CalcValue(ScriptableData.ISyntaxComponent param) { if (param.IsValid() && param.GetId().Length == 0) { //处理括弧 ScriptableData.CallData callData = param as ScriptableData.CallData; if (null != callData && callData.GetParamNum() > 0) { int ct = callData.GetParamNum(); return(CalcValue(callData.GetParam(ct - 1))); } else { //不支持的语法 return(null); } } else { IValue <object> ret = null; string id = param.GetId(); IValueFactory factory; if (m_ValueHandlers.TryGetValue(id, out factory)) { ret = factory.Build(param); } return(ret); } }
public void Init(ScriptableData.ISyntaxComponent config) { ScriptableData.CallData callData = config as ScriptableData.CallData; if (null != callData) { Load(callData); } else { ScriptableData.FunctionData funcData = config as ScriptableData.FunctionData; if (null != funcData) { Load(funcData); } else { ScriptableData.StatementData statementData = config as ScriptableData.StatementData; if (null != statementData) { Load(statementData); } else { //error } } } }
protected override void Load(ScriptableData.FunctionData functionData) { ScriptableData.CallData callData = functionData.Call; if (null != callData) { for (int i = 0; i < callData.GetParamNum(); ++i) { ScriptableData.ISyntaxComponent param = callData.GetParam(i); SkillValue val = new SkillValue(); val.InitFromDsl(param); m_LoadedIterators.Add(val); m_Iterators.Enqueue(val); } for (int i = 0; i < functionData.Statements.Count; i++) { ICommand cmd = CommandManager.Instance.CreateCommand(functionData.Statements[i]); if (null != cmd) { m_LoadedCommands.Add(cmd); } } /* * foreach (ScriptableData.ISyntaxComponent statement in functionData.Statements) { * ICommand cmd = StoryCommandManager.Instance.CreateCommand(statement); * if(null!=cmd) * m_LoadedCommands.Add(cmd); * }*/ } }
public void InitFromDsl(ScriptableData.ISyntaxComponent param) { ScriptableData.CallData callData = param as ScriptableData.CallData; if (null != callData && callData.GetId() == "iscombatnpc" && 1 == callData.GetParamNum()) { m_ObjId.InitFromDsl(callData.GetParam(0)); } }
public void InitFromDsl(ScriptableData.ISyntaxComponent param) { ScriptableData.CallData callData = param as ScriptableData.CallData; if (null != callData && callData.GetId() == "objid2unitid" && callData.GetParamNum() == 1) { m_ObjId.InitFromDsl(callData.GetParam(0)); } }
public void InitFromDsl(ScriptableData.ISyntaxComponent param) { ScriptableData.CallData callData = param as ScriptableData.CallData; if (null != callData && callData.GetId() == "calcdir" && callData.GetParamNum() == 2) { m_ObjId.InitFromDsl(callData.GetParam(0)); m_TargetId.InitFromDsl(callData.GetParam(1)); } }
public void InitFromDsl(ScriptableData.ISyntaxComponent param) { if (param is ScriptableData.CallData callData && callData.GetId() == "vector2" && callData.GetParamNum() == 2) { m_X.InitFromDsl(callData.GetParam(0)); m_Y.InitFromDsl(callData.GetParam(1)); TryUpdateValue(); } }
public void InitFromDsl(ScriptableData.ISyntaxComponent param) { ScriptableData.CallData callData = param as ScriptableData.CallData; if (null != callData && callData.GetId() == "rndint" && callData.GetParamNum() == 2) { m_Min.InitFromDsl(callData.GetParam(0)); m_Max.InitFromDsl(callData.GetParam(1)); } }
public void InitFromDsl(ScriptableData.ISyntaxComponent param) { ScriptableData.CallData callData = param as ScriptableData.CallData; if (null != callData && callData.GetId() == "isfriend" && callData.GetParamNum() == 2) { m_Camp1.InitFromDsl(callData.GetParam(0)); m_Camp2.InitFromDsl(callData.GetParam(1)); } }
public void InitFromDsl(ScriptableData.ISyntaxComponent param) { ScriptableData.CallData callData = param as ScriptableData.CallData; if (null != callData && callData.GetId() == "cosh" && callData.GetParamNum() == 1) { m_X.InitFromDsl(callData.GetParam(0)); TryUpdateValue(); } }
public void InitFromDsl(ScriptableData.ISyntaxComponent param) { ScriptableData.CallData callData = param as ScriptableData.CallData; if (null != callData && callData.GetId() == "vector3dist" && callData.GetParamNum() == 2) { m_Pt1.InitFromDsl(callData.GetParam(0)); m_Pt2.InitFromDsl(callData.GetParam(1)); TryUpdateValue(); } }
public void InitFromDsl(ScriptableData.ISyntaxComponent param) { ScriptableData.CallData callData = param as ScriptableData.CallData; if (null != callData && callData.GetId() == "quaternion" && callData.GetParamNum() == 4) { m_X.InitFromDsl(callData.GetParam(0)); m_Y.InitFromDsl(callData.GetParam(1)); m_Z.InitFromDsl(callData.GetParam(2)); m_W.InitFromDsl(callData.GetParam(3)); TryUpdateValue(); } }
public void InitFromDsl(ScriptableData.ISyntaxComponent param) { ScriptableData.CallData callData = param as ScriptableData.CallData; if (null != callData && callData.GetId() == "max") { for (int i = 0; i < callData.GetParamNum(); ++i) { ScriptableData.ISyntaxComponent arg = callData.GetParam(i); SkillValue val = new SkillValue(); val.InitFromDsl(arg); m_List.Add(val); } TryUpdateValue(); } }
/// <summary> /// 创建一个命令 /// </summary> /// <param name="commandConfig"></param> /// <returns></returns> public IStoryCommand CreateCommand(ScriptableData.ISyntaxComponent commandConfig) { IStoryCommand command = null; string type = commandConfig.GetId(); IStoryCommandFactory factory = GetFactory(type); if (factory != null) { command = factory.Create(commandConfig); } else { m_log.Error("创建命令失败,命令类型:" + type); } return(command); }
public void InitFromDsl(ScriptableData.ISyntaxComponent param) { ScriptableData.CallData callData = param as ScriptableData.CallData; if (null != callData && callData.GetId() == "rndfromlist") { m_ParamNum = callData.GetParamNum(); if (m_ParamNum > 0) { m_ListValue.InitFromDsl(callData.GetParam(0)); } if (m_ParamNum > 1) { m_DefaultValue.InitFromDsl(callData.GetParam(1)); } } }
public ICommand CreateCommand(ScriptableData.ISyntaxComponent commandConfig) { ICommand command = null; string type = commandConfig.GetId(); ICommandFactory factory = GetFactory(type); if (null != factory) { command = factory.Create(commandConfig); } else { LogUtil.Debug("CreateCommand failed, unknown type:{0}.", type); } return(command); }
public void InitFromDsl(ScriptableData.ISyntaxComponent param) { ScriptableData.CallData callData = param as ScriptableData.CallData; if (null != callData && callData.GetId() == "objget") { m_ParamNum = callData.GetParamNum(); if (m_ParamNum > 1) { m_ObjId.InitFromDsl(callData.GetParam(0)); m_LocalName.InitFromDsl(callData.GetParam(1)); } if (m_ParamNum > 2) { m_DefaultValue.InitFromDsl(callData.GetParam(2)); } } }
public void InitFromDsl(ScriptableData.ISyntaxComponent param) { ScriptableData.CallData callData = param as ScriptableData.CallData; if (null != callData && callData.GetId() == "substring" && callData.GetParamNum() > 0) { m_ParamNum = callData.GetParamNum(); m_Start.InitFromDsl(callData.GetParam(0)); if (m_ParamNum > 1) { m_Start.InitFromDsl(callData.GetParam(1)); } if (m_ParamNum > 2) { m_Length.InitFromDsl(callData.GetParam(2)); } TryUpdateValue(); } }
public void InitFromDsl(ScriptableData.ISyntaxComponent param) { ScriptableData.CallData callData = param as ScriptableData.CallData; if (null != callData && callData.GetId() == "listget") { m_ParamNum = callData.GetParamNum(); if (m_ParamNum > 1) { m_ListValue.InitFromDsl(callData.GetParam(0)); m_IndexValue.InitFromDsl(callData.GetParam(1)); if (m_ParamNum > 2) { m_DefaultValue.InitFromDsl(callData.GetParam(2)); } TryUpdateValue(); } } }
public void InitFromDsl(ScriptableData.ISyntaxComponent param) { ScriptableData.CallData callData = param as ScriptableData.CallData; if (null != callData && callData.GetId() == "log") { m_ParamNum = callData.GetParamNum(); if (1 == m_ParamNum) { m_X.InitFromDsl(callData.GetParam(0)); } else if (2 == m_ParamNum) { m_X.InitFromDsl(callData.GetParam(0)); m_Y.InitFromDsl(callData.GetParam(1)); } TryUpdateValue(); } }
public void InitFromDsl(ScriptableData.ISyntaxComponent param) { ScriptableData.CallData callData = param as ScriptableData.CallData; if (null != callData && callData.GetId() == "+") { if (callData.GetParamNum() == 1) { m_X.InitFromDsl(new ScriptableData.ValueData("0")); m_Y.InitFromDsl(callData.GetParam(0)); } else if (callData.GetParamNum() == 2) { m_X.InitFromDsl(callData.GetParam(0)); m_Y.InitFromDsl(callData.GetParam(1)); } TryUpdateValue(); } }
public void InitFromDsl(ScriptableData.ISyntaxComponent param) { ScriptableData.CallData callData = param as ScriptableData.CallData; if (null != callData && callData.GetId() == "format") { int num = callData.GetParamNum(); if (num > 0) { m_Format.InitFromDsl(callData.GetParam(0)); } for (int i = 1; i < callData.GetParamNum(); ++i) { SkillValue val = new SkillValue(); val.InitFromDsl(callData.GetParam(i)); m_FormatArgs.Add(val); } TryUpdateValue(); } }