protected override void Load(ScriptableData.FunctionData funcData) { ScriptableData.CallData callData = funcData.Call; if (null != callData) { foreach (ScriptableData.ISyntaxComponent statement in funcData.Statements) { ScriptableData.CallData stCall = statement as ScriptableData.CallData; if (null != stCall) { string id = stCall.GetId(); if (id == "stateimpact") { if (stCall.GetParamNum() > 1) { m_Impacts.Add(int.Parse(stCall.GetParamId(1))); } } } } } }
protected override void Load(ScriptableData.FunctionData funcData) { ScriptableData.CallData callData = funcData.Call; if (null != callData) { Load(callData); foreach (ScriptableData.ISyntaxComponent statement in funcData.Statements) { ScriptableData.CallData stCall = statement as ScriptableData.CallData; if (null == stCall || stCall.GetParamNum() <= 0) { continue; } string id = stCall.GetId(); if (id == "stateimpact") { LoadStateImpactConfig(stCall); } } } }
private void RefreshTrigers(ScriptableData.FunctionData sectionData, int skillId) { m_LoadedTrigers.Clear(); for (int i = 0; i < sectionData.Statements.Count; i++) { ISkillTriger triger = SkillTrigerManager.Instance.CreateTriger(sectionData.Statements[i]); if (null != triger) { m_LoadedTrigers.Add(triger); } } /* * foreach (ScriptableData.ISyntaxComponent data in sectionData.Statements) { * ISkillTriger triger = SkillTrigerManager.Instance.CreateTriger(data); * if (null != triger) { * m_LoadedTrigers.Add(triger); * * //LogSystem.Debug("AddTriger:{0}", triger.GetType().Name); * } * }*/ }
protected override void Load(ScriptableData.FunctionData funcData) { ScriptableData.CallData callData = funcData.Call; if (null == callData) { return; } int num = callData.GetParamNum(); if (num >= 6) { m_StartTime = long.Parse(callData.GetParamId(0)); m_RemainTime = long.Parse(callData.GetParamId(1)); m_IsClearWhenFinish = bool.Parse(callData.GetParamId(2)); m_IsAlwaysEnterDamage = bool.Parse(callData.GetParamId(3)); m_DamageInterval = long.Parse(callData.GetParamId(4)); m_MaxDamageTimes = int.Parse(callData.GetParamId(5)); } //碰撞体数据 m_ColliderInfo = new ColliderTriggerInfo(); m_ColliderInfo.Load(funcData.Statements); }
protected override void Load(ScriptableData.StatementData statementData) { Load(statementData.First); ScriptableData.FunctionData functionData = statementData.Second; if (null != functionData && functionData.GetId() == "else") { for (int i = 0; i < functionData.Statements.Count; i++) { ICommand cmd = CommandManager.Instance.CreateCommand(functionData.Statements[i]); if (null != cmd) { m_LoadedElseCommands.Add(cmd); } } /* * foreach (ScriptableData.ISyntaxComponent statement in functionData.Statements) { * ICommand cmd = StoryCommandManager.Instance.CreateCommand(statement); * if (null != cmd) * m_LoadedElseCommands.Add(cmd); * }*/ } }
protected override void Load(ScriptableData.FunctionData funcData) { ScriptableData.CallData callData = funcData.Call; if (callData != null) { Load(callData); for (int i = 0; i < funcData.Statements.Count; i++) { ScriptableData.CallData stCall = funcData.Statements[i] as ScriptableData.CallData; if (stCall == null) { continue; } if (stCall.GetId() == "ownerlasttouchpos") { LoadOwnerLastTouchPosConfig(stCall); } else if (stCall.GetId() == "ownerrandompos") { LoadOwnerRandomPosConfig(stCall); } } /* * foreach (ScriptableData.ISyntaxComponent statement in funcData.Statements) { * ScriptableData.CallData stCall = statement as ScriptableData.CallData; * if (stCall == null) { * continue; * } * if (stCall.GetId() == "ownerlasttouchpos") { * LoadOwnerLastTouchPosConfig(stCall); * } else if (stCall.GetId() == "ownerrandompos") { * LoadOwnerRandomPosConfig(stCall); * } * }*/ } }
protected override void Load(ScriptableData.FunctionData funcData) { ScriptableData.CallData callData = funcData.Call; if (null == callData) { return; } Load(callData); for (int i = 0; i < funcData.Statements.Count; i++) { ScriptableData.CallData stCall = funcData.Statements[i] as ScriptableData.CallData; if (null == stCall) { continue; } if (stCall.GetId() == "sendmessage") { if (stCall.GetParamNum() >= 1) { m_SkillGoOnMessage = stCall.GetParamId(0); } } } }
public bool Init(ScriptableData.ScriptableDataInfo config) { bool ret = false; ScriptableData.FunctionData story = config.First; if (story != null && (story.GetId() == "story" || story.GetId() == "script")) { ret = true; //参数 ScriptableData.CallData callData = story.Call; if (callData != null && callData.HaveParam()) { //第一个参数是剧情的id m_iStoryId = int.Parse(callData.GetParamId(0)); } foreach (var info in story.Statements) { if (info.GetId() == "local") { ScriptableData.FunctionData sectionData = info as ScriptableData.FunctionData; if (null != sectionData) { foreach (ScriptableData.ISyntaxComponent def in sectionData.Statements) { ScriptableData.CallData defData = def as ScriptableData.CallData; if (null != defData && defData.HaveId() && defData.HaveParam()) { string id = defData.GetId(); if (id.StartsWith("@") && !id.StartsWith("@@")) { StoryValue val = new StoryValue(); val.InitFromDsl(defData.GetParam(0)); if (!m_dicLocalVariables.ContainsKey(id)) { m_dicLocalVariables.Add(id, val.Value); } else { m_dicLocalVariables[id] = val.Value; } } } } } else { Debug.LogError("剧情" + m_iStoryId + "DSL语法,必须是个函数"); } } else if (info.GetId() == "onmessage") { ScriptableData.FunctionData sectionData = info as ScriptableData.FunctionData; if (null != sectionData) { StoryMessageHandler handler = new StoryMessageHandler(); handler.Load(sectionData); m_listMessageHandlers.Add(handler); } else { Debug.LogError("剧情" + m_iStoryId + "DSL语法,必须是个函数"); } } else { Debug.LogError("StoryInstance::Init,不知道DSL语法部分:" + info.GetId()); } } } else { Debug.LogError("StoryInstance::Init,不是一个DSL语法"); } return ret; }
private void Load(ScriptableData.ScriptableDataFile dataFile, int sceneId) { lock (m_Lock) { #if false for (int i = 0; i < dataFile.ScriptableDatas.Count; i++) { if (dataFile.ScriptableDatas[i].GetId() == "story" || dataFile.ScriptableDatas[i].GetId() == "script") { ScriptableData.FunctionData funcData = dataFile.ScriptableDatas[i].First; if (null != funcData) { ScriptableData.CallData callData = funcData.Call; if (null != callData && callData.HaveParam()) { int storyId = int.Parse(callData.GetParamId(0)); int id = GenId(storyId, sceneId); if (!m_StoryInstances.ContainsKey(id)) { StoryInstance instance = new StoryInstance(); instance.Init(dataFile.ScriptableDatas[i]); m_StoryInstances.Add(id, instance); LogSystem.Debug("ParseStory {0}", id); } else { //repeated story config. } } } } } #else int id = GenId(1, sceneId); if (!m_StoryInstances.ContainsKey(id)) { StoryInstance instance = new StoryInstance(); instance.Init(dataFile); m_StoryInstances.Add(id, instance); } #endif /* * foreach (ScriptableData.ScriptableDataInfo info in dataFile.ScriptableDatas) { * if (info.GetId() == "story" || info.GetId() == "script") { * ScriptableData.FunctionData funcData = info.First; * if (null != funcData) { * ScriptableData.CallData callData = funcData.Call; * if (null != callData && callData.HaveParam()) { * int storyId = int.Parse(callData.GetParamId(0)); * int id = GenId(storyId, sceneId); * if (!m_StoryInstances.ContainsKey(id)) { * StoryInstance instance = new StoryInstance(); * instance.Init(info); * m_StoryInstances.Add(id, instance); * * LogSystem.Debug("ParseStory {0}", id); * } else { * //repeated story config. * } * } * } * } * }*/ } }
public bool Init(ScriptableData.ScriptableDataInfo config) { bool ret = false; ScriptableData.FunctionData skill = config.First; if (null != skill && (skill.GetId() == "skill" || skill.GetId() == "script")) { ret = true; ScriptableData.CallData callData = skill.Call; if (null != callData && callData.HaveParam()) { m_Id = int.Parse(callData.GetParamId(0)); } for (int i = 0; i < skill.Statements.Count; i++) { if (skill.Statements[i].GetId() == "local") { ScriptableData.FunctionData sectionData = skill.Statements[i] as ScriptableData.FunctionData; if (null != sectionData) { for (int j = 0; j < sectionData.Statements.Count; j++) { ScriptableData.CallData defData = sectionData.Statements[j] as ScriptableData.CallData; if (null != defData && defData.HaveId() && defData.HaveParam()) { string id = defData.GetId(); if (id.StartsWith("@") && !id.StartsWith("@@")) { SkillValue val = new SkillValue(); val.InitFromDsl(defData.GetParam(0)); if (!m_PreInitedLocalVariables.ContainsKey(id)) { m_PreInitedLocalVariables.Add(id, val.Value); } else { m_PreInitedLocalVariables[id] = val.Value; } } } } } else { LogUtil.Error("Story {0} DSL, local must be a function !", m_Id); } } else if (skill.Statements[i].GetId() == "onmessage") { ScriptableData.FunctionData sectionData = skill.Statements[i] as ScriptableData.FunctionData; if (null != sectionData) { MessageHandler handler = new MessageHandler(); handler.Load(sectionData); string msgId = handler.MessageId; if (!m_MessageQueues.ContainsKey(msgId)) { m_MessageHandlers.Add(handler); m_MessageQueues.Add(msgId, new Queue<MessageInfo>()); } else { LogUtil.Error("Story {0} DSL, onmessage {1} duplicate, discard it !", m_Id, msgId); } } else { LogUtil.Error("Story {0} DSL, onmessage must be a function !", m_Id); } } else { LogUtil.Error("Instance::Init, unknown part {0}", skill.Statements[i].GetId()); } } } else { LogUtil.Error("Instance::Init, isn't story DSL"); } //LogSystem.Debug("Instance.Init message handler num:{0} {1}", m_MessageHandlers.Count, ret); return ret; }
protected virtual void Load(ScriptableData.FunctionData funcData) { }
protected override void Load(ScriptableData.FunctionData funcData) { ScriptableData.CallData callData = funcData.Call; if (null != callData) { Load(callData); for (int i = 0; i < funcData.Statements.Count; i++) { ScriptableData.CallData stCall = funcData.Statements[i] as ScriptableData.CallData; if (null == stCall) { continue; } string id = stCall.GetId(); Condition condition = null; if (id == "targetcondition") { condition = new TargetCondition(); } else if (id == "statecondition") { condition = new StateCondition(); } else if (id == "flycondition") { condition = new HeightCondition(true); } else if (id == "groundcondition") { condition = new HeightCondition(false); } if (condition != null) { m_IsHaveCondition = true; condition.Load(stCall); m_Conditions.Add(condition); } } /* * foreach (ScriptableData.ISyntaxComponent statement in funcData.Statements) { * ScriptableData.CallData stCall = statement as ScriptableData.CallData; * if (null == stCall) { * continue; * } * string id = stCall.GetId(); * Condition condition = null; * if (id == "targetcondition") { * condition = new TargetCondition(); * } else if (id == "statecondition") { * condition = new StateCondition(); * } else if (id == "flycondition") { * condition = new HeightCondition(true); * } else if (id == "groundcondition") { * condition = new HeightCondition(false); * } * if (condition != null) { * m_IsHaveCondition = true; * condition.Load(stCall); * m_Conditions.Add(condition); * } * }*/ } }
public bool Init(ScriptableData.ScriptableDataInfo config) { bool ret = false; ScriptableData.FunctionData skill = config.First; if (null != skill && skill.GetId() == "skill") { ret = true; ScriptableData.CallData callData = skill.Call; if (null != callData && callData.HaveParam()) { m_SkillId = int.Parse(callData.GetParamId(0)); } for (int i = 0; i < skill.Statements.Count; i++) { if (skill.Statements[i].GetId() == "section") { ScriptableData.FunctionData sectionData = skill.Statements[i] as ScriptableData.FunctionData; if (null != sectionData) { SkillSection section = new SkillSection(); section.Load(sectionData, m_SkillId); m_Sections.Add(section); } else { LogSystem.Error("Skill {0} DSL, section must be a function !", m_SkillId); } } else if (skill.Statements[i].GetId() == "onmessage") { ScriptableData.FunctionData sectionData = skill.Statements[i] as ScriptableData.FunctionData; if (null != sectionData) { SkillMessageHandler handler = new SkillMessageHandler(); handler.Load(sectionData, m_SkillId); m_MessageHandlers.Add(handler); } else { LogSystem.Error("Skill {0} DSL, onmessage must be a function !", m_SkillId); } } else if (skill.Statements[i].GetId() == "onstop") { ScriptableData.FunctionData sectionData = skill.Statements[i] as ScriptableData.FunctionData; if (null != sectionData) { m_StopSection = new SkillMessageHandler(); m_StopSection.Load(sectionData, m_SkillId); } else { LogSystem.Error("Skill {0} DSL, onstop must be a function !", m_SkillId); } } else if (skill.Statements[i].GetId() == "oninterrupt") { ScriptableData.FunctionData sectionData = skill.Statements[i] as ScriptableData.FunctionData; if (null != sectionData) { m_InterruptSection = new SkillMessageHandler(); m_InterruptSection.Load(sectionData, m_SkillId); } else { LogSystem.Error("Skill {0} DSL, oninterrupt must be a function !", m_SkillId); } } else { LogSystem.Error("SkillInstance::Init, unknown part {0}", skill.Statements[i].GetId()); } } /* * foreach (ScriptableData.ISyntaxComponent info in skill.Statements) { * if (info.GetId() == "section") { * ScriptableData.FunctionData sectionData = info as ScriptableData.FunctionData; * if (null != sectionData) { * SkillSection section = new SkillSection(); * section.Load(sectionData, m_SkillId); * m_Sections.Add(section); * } else { * LogSystem.Error("Skill {0} DSL, section must be a function !", m_SkillId); * } * } else if (info.GetId() == "onmessage") { * ScriptableData.FunctionData sectionData = info as ScriptableData.FunctionData; * if (null != sectionData) { * SkillMessageHandler handler = new SkillMessageHandler(); * handler.Load(sectionData, m_SkillId); * m_MessageHandlers.Add(handler); * } else { * LogSystem.Error("Skill {0} DSL, onmessage must be a function !", m_SkillId); * } * } else if (info.GetId() == "onstop") { * ScriptableData.FunctionData sectionData = info as ScriptableData.FunctionData; * if (null != sectionData) { * m_StopSection = new SkillMessageHandler(); * m_StopSection.Load(sectionData, m_SkillId); * } else { * LogSystem.Error("Skill {0} DSL, onstop must be a function !", m_SkillId); * } * } else if (info.GetId() == "oninterrupt") { * ScriptableData.FunctionData sectionData = info as ScriptableData.FunctionData; * if (null != sectionData) { * m_InterruptSection = new SkillMessageHandler(); * m_InterruptSection.Load(sectionData, m_SkillId); * } else { * LogSystem.Error("Skill {0} DSL, oninterrupt must be a function !", m_SkillId); * } * } else { * LogSystem.Error("SkillInstance::Init, unknown part {0}", info.GetId()); * } * }*/ } else { LogSystem.Error("SkillInstance::Init, isn't skill DSL"); } //LogSystem.Debug("SkillInstance.Init section num:{0} {1}", m_Sections.Count, ret); return(ret); }