protected override void Load(Dsl.CallData callData)
 {
     int num = callData.GetParamNum();
     for (int i = 0; i < num; ++i) {
         IStoryValue<string> val = new StoryValue<string>();
         val.InitFromDsl(callData.GetParam(i));
         m_MsgIds.Add(val);
     }
 }
        protected override void Load(Dsl.FunctionData callData)
        {
            int num = callData.GetParamNum();

            for (int i = 0; i < num; ++i)
            {
                IStoryValue <int> val = new StoryValue <int>();
                val.InitFromDsl(callData.GetParam(i));
                m_UnitIds.Add(val);
            }
        }
        private static void LoadPaths(List <IStoryValue <string> > List, Dsl.CallData callData)
        {
            int num = callData.GetParamNum();

            for (int i = 0; i < num; ++i)
            {
                IStoryValue <string> path = new StoryValue <string>();
                path.InitFromDsl(callData.GetParam(i));
                List.Add(path);
            }
        }
Beispiel #4
0
        protected override void Load(Dsl.CallData callData)
        {
            int num = callData.GetParamNum();

            for (int i = 0; i < num; ++i)
            {
                IStoryValue <string> val = new StoryValue <string>();
                val.InitFromDsl(callData.GetParam(i));
                m_MsgIds.Add(val);
            }
        }
Beispiel #5
0
 protected override void Load(Dsl.CallData callData)
 {
     int num = callData.GetParamNum();
     if (num > 0) {
         m_Format.InitFromDsl(callData.GetParam(0));
     }
     for (int i = 1; i < callData.GetParamNum(); ++i) {
         StoryValue val = new StoryValue();
         val.InitFromDsl(callData.GetParam(i));
         m_FormatArgs.Add(val);
     }
 }
 protected override void Load(Dsl.CallData callData)
 {
     int num = callData.GetParamNum();
     if (num > 1) {
         m_Object.InitFromDsl(callData.GetParam(0));
         m_Method.InitFromDsl(callData.GetParam(1));
     }
     for (int i = 2; i < callData.GetParamNum(); ++i) {
         StoryValue val = new StoryValue();
         val.InitFromDsl(callData.GetParam(i));
         m_Args.Add(val);
     }
 }
Beispiel #7
0
        protected override void Load(Dsl.FunctionData callData)
        {
            int num = callData.GetParamNum();

            if (num > 0)
            {
                m_Format.InitFromDsl(callData.GetParam(0));
            }
            for (int i = 1; i < callData.GetParamNum(); ++i)
            {
                StoryValue val = new StoryValue();
                val.InitFromDsl(callData.GetParam(i));
                m_FormatArgs.Add(val);
            }
        }
Beispiel #8
0
        protected override void Load(Dsl.CallData callData)
        {
            int num = callData.GetParamNum();

            if (num > 0)
            {
                m_MsgId.InitFromDsl(callData.GetParam(0));
            }
            for (int i = 1; i < num; ++i)
            {
                StoryValue val = new StoryValue();
                val.InitFromDsl(callData.GetParam(i));
                m_MsgArgs.Add(val);
            }
        }
Beispiel #9
0
 public void InitFromDsl(Dsl.ISyntaxComponent param)
 {
     Dsl.CallData callData = param as Dsl.CallData;
     if (null != callData)
     {
         for (int i = 0; i < callData.GetParamNum(); ++i)
         {
             Dsl.ISyntaxComponent arg = callData.GetParam(i);
             StoryValue           val = new StoryValue();
             val.InitFromDsl(arg);
             m_List.Add(val);
         }
         TryUpdateValue();
     }
 }
Beispiel #10
0
    public IStoryValue <object> Clone()
    {
        StoryValue obj = new StoryValue();

        obj.m_ArgIndex   = m_ArgIndex;
        obj.m_LocalName  = m_LocalName;
        obj.m_GlobalName = m_GlobalName;
        if (null != m_Proxy)
        {
            obj.m_Proxy = m_Proxy.Clone();
        }
        obj.m_HaveValue = m_HaveValue;
        obj.m_Value     = m_Value;
        return(obj);
    }
Beispiel #11
0
 public void InitFromDsl(Dsl.ISyntaxComponent param)
 {
     Dsl.CallData callData = param as Dsl.CallData;
     if (null != callData)
     {
         int num = callData.GetParamNum();
         for (int i = 0; i < callData.GetParamNum(); ++i)
         {
             StoryValue val = new StoryValue();
             val.InitFromDsl(callData.GetParam(i));
             m_Args.Add(val);
         }
         TryUpdateValue();
     }
 }
 public void InitFromDsl(Dsl.ISyntaxComponent param)
 {
     m_LoadedArgs = new List <IStoryValue <object> >();
     Dsl.CallData callData = param as Dsl.CallData;
     if (null != callData)
     {
         int num = callData.GetParamNum();
         for (int i = 0; i < num; ++i)
         {
             StoryValue val = new StoryValue();
             val.InitFromDsl(callData.GetParam(i));
             m_LoadedArgs.Add(val);
         }
     }
 }
        protected override void Load(Dsl.FunctionData callData)
        {
            int num = callData.GetParamNum();

            if (num > 1)
            {
                m_Object.InitFromDsl(callData.GetParam(0));
                m_Method.InitFromDsl(callData.GetParam(1));
            }
            for (int i = 2; i < callData.GetParamNum(); ++i)
            {
                StoryValue val = new StoryValue();
                val.InitFromDsl(callData.GetParam(i));
                m_Args.Add(val);
            }
        }
        protected override void Load(Dsl.CallData callData)
        {
            int num = callData.GetParamNum();

            if (num > 1)
            {
                m_EventName.InitFromDsl(callData.GetParam(0));
                m_Group.InitFromDsl(callData.GetParam(1));
            }
            for (int i = 2; i < callData.GetParamNum(); ++i)
            {
                StoryValue val = new StoryValue();
                val.InitFromDsl(callData.GetParam(i));
                m_Args.Add(val);
            }
        }
Beispiel #15
0
        protected override void Load(ScriptableData.CallData callData)
        {
            int num = callData.GetParamNum();

            if (num > 1)
            {
                m_ObjId.InitFromDsl(callData.GetParam(0));
                m_DictId.InitFromDsl(callData.GetParam(1));
            }
            for (int i = 2; i < callData.GetParamNum(); ++i)
            {
                StoryValue val = new StoryValue();
                val.InitFromDsl(callData.GetParam(i));
                m_DictArgs.Add(val);
            }
        }
Beispiel #16
0
        protected override void Load(Dsl.CallData callData)
        {
            m_LoadedArgs = new List <IStoryValue <object> >();
            int num = callData.GetParamNum();

            for (int i = 0; i < num; ++i)
            {
                StoryValue val = new StoryValue();
                val.InitFromDsl(callData.GetParam(i));
                m_LoadedArgs.Add(val);
            }
            IsCompositeCommand = true;
            if (null == m_LeadCommand)
            {
                m_LeadCommand = new CompositeCommandHelper(this);
            }
        }
Beispiel #17
0
        protected override void Load(FunctionData funcData)
        {
            var cd = funcData.Call;

            Load(cd);
            foreach (var comp in funcData.Statements)
            {
                var fcd = comp as Dsl.CallData;
                if (null != fcd)
                {
                    var        key = fcd.GetId();
                    StoryValue val = new StoryValue();
                    val.InitFromDsl(fcd.GetParam(0));
                    m_LoadedOptArgs[key] = val;
                }
            }
        }
Beispiel #18
0
    protected override void Load(CallData callData)
    {
        int num = callData.GetParamNum();

        //第一个参数是GameObject的名字,第二个是GameObject对应的脚本的方法名字
        if (num > 1)
        {
            m_sObjNames.InitFromDsl(callData.GetParam(0));
            m_sMsg.InitFromDsl(callData.GetParam(1));
        }
        for (int i = 2; i < callData.GetParamNum(); i++)
        {
            StoryValue value = new StoryValue();
            value.InitFromDsl(callData.GetParam(i));
            m_oArgs.Add(value);
        }
    }
Beispiel #19
0
 public void InitFromDsl(Dsl.ISyntaxComponent param)
 {
     Dsl.CallData callData = param as Dsl.CallData;
     if (null != callData)
     {
         int num = callData.GetParamNum();
         if (num > 0)
         {
             m_DictId.InitFromDsl(callData.GetParam(0));
         }
         for (int i = 1; i < num; ++i)
         {
             StoryValue val = new StoryValue();
             val.InitFromDsl(callData.GetParam(i));
             m_FormatArgs.Add(val);
         }
     }
 }
Beispiel #20
0
        private void LoadCall(Dsl.FunctionData callData)
        {
            m_LoadedOptArgs = new Dictionary <string, IStoryValue>();
            foreach (var pair in m_OptArgs)
            {
                StoryValue val = new StoryValue();
                val.InitFromDsl(pair.Value);
                m_LoadedOptArgs.Add(pair.Key, val);
            }
            int num = callData.GetParamNum();

            for (int i = 0; i < num; ++i)
            {
                StoryValue val = new StoryValue();
                val.InitFromDsl(callData.GetParam(i));
                m_LoadedArgs.Add(val);
            }
        }
Beispiel #21
0
 public void InitFromDsl(Dsl.ISyntaxComponent param)
 {
     Dsl.FunctionData callData = param as Dsl.FunctionData;
     if (null != callData)
     {
         int num = callData.GetParamNum();
         if (num > 1)
         {
             m_Object.InitFromDsl(callData.GetParam(0));
             m_Method.InitFromDsl(callData.GetParam(1));
         }
         for (int i = 2; i < callData.GetParamNum(); ++i)
         {
             StoryValue val = new StoryValue();
             val.InitFromDsl(callData.GetParam(i));
             m_Args.Add(val);
         }
     }
 }
Beispiel #22
0
 public void InitFromDsl(Dsl.ISyntaxComponent param)
 {
     Dsl.FunctionData callData = param as Dsl.FunctionData;
     if (null != callData)
     {
         int num = callData.GetParamNum();
         if (num > 0)
         {
             m_String.InitFromDsl(callData.GetParam(0));
         }
         for (int i = 1; i < callData.GetParamNum(); ++i)
         {
             StoryValue <string> val = new StoryValue <string>();
             val.InitFromDsl(callData.GetParam(i));
             m_KeyArgs.Add(val);
         }
         TryUpdateValue();
     }
 }
Beispiel #23
0
        protected override void Load(Dsl.FunctionData callData)
        {
            int num = callData.GetParamNum();

            if (num > 7)
            {
                m_Receiver.InitFromDsl(callData.GetParam(0));
                m_Title.InitFromDsl(callData.GetParam(1));
                m_Content.InitFromDsl(callData.GetParam(2));
                m_Sender.InitFromDsl(callData.GetParam(3));
                m_LevelDemand.InitFromDsl(callData.GetParam(4));
                m_ValidPeriod.InitFromDsl(callData.GetParam(5));
                m_Money.InitFromDsl(callData.GetParam(6));
                m_Gold.InitFromDsl(callData.GetParam(7));
            }
            for (int i = 8; i < callData.GetParamNum(); ++i)
            {
                StoryValue <int> val = new StoryValue <int>();
                val.InitFromDsl(callData.GetParam(i));
                m_MailItems.Add(val);
            }
        }
Beispiel #24
0
 protected override void Load(Dsl.FunctionData functionData)
 {
     Dsl.CallData callData = functionData.Call;
     if (null != callData)
     {
         for (int i = 0; i < callData.GetParamNum(); ++i)
         {
             Dsl.ISyntaxComponent param = callData.GetParam(i);
             StoryValue           val   = new StoryValue();
             val.InitFromDsl(param);
             m_LoadedIterators.Add(val);
         }
         for (int i = 0; i < functionData.Statements.Count; i++)
         {
             IStoryCommand cmd = StoryCommandManager.Instance.CreateCommand(functionData.Statements[i]);
             if (null != cmd)
             {
                 m_LoadedCommands.Add(cmd);
             }
         }
     }
     IsCompositeCommand = true;
 }
Beispiel #25
0
    public void LoadCallData(Dsl.CallData callData)
    {
        string id = callData.GetId();

        if (id == "select")
        {
            m_Select = new StoryValue();
            m_Select.InitFromDsl(callData.GetParam(0));
        }
        else if (id == "from")
        {
            m_From = new StoryValue();
            m_From.InitFromDsl(callData.GetParam(0));
        }
        else if (id == "where")
        {
            m_Where = new StoryValue();
            m_Where.InitFromDsl(callData.GetParam(0));
        }
        else if (id == "orderby")
        {
            for (int i = 0; i < callData.GetParamNum(); ++i)
            {
                StoryValue v = new StoryValue();
                v.InitFromDsl(callData.GetParam(i));
                m_OrderBy.Add(v);
            }
        }
        else if (id == "asc")
        {
            m_Desc = false;
        }
        else if (id == "desc")
        {
            m_Desc = true;
        }
    }
 protected override bool Load(Dsl.FunctionData functionData)
 {
     if (functionData.IsHighOrder)
     {
         m_LocalInfoIndex = StoryCommandManager.Instance.AllocLocalInfoIndex();
         Dsl.FunctionData callData = functionData.LowerOrderFunction;
         for (int i = 0; i < callData.GetParamNum(); ++i)
         {
             Dsl.ISyntaxComponent param = callData.GetParam(i);
             StoryValue           val   = new StoryValue();
             val.InitFromDsl(param);
             m_LoadedIterators.Add(val);
         }
         for (int i = 0; i < functionData.GetParamNum(); i++)
         {
             IStoryCommand cmd = StoryCommandManager.Instance.CreateCommand(functionData.GetParam(i));
             if (null != cmd)
             {
                 m_LoadedCommands.Add(cmd);
             }
         }
     }
     return(true);
 }
 protected override void Load(Dsl.CallData callData)
 {
     int num = callData.GetParamNum();
     if (num > 3) {
         m_ActorId.InitFromDsl(callData.GetParam(0));
         m_SkillId.InitFromDsl(callData.GetParam(1));
         m_Seq.InitFromDsl(callData.GetParam(2));
         m_Msg.InitFromDsl(callData.GetParam(3));
     }
     for (int i = 4; i < callData.GetParamNum(); ++i) {
         StoryValue val = new StoryValue();
         val.InitFromDsl(callData.GetParam(i));
         m_Args.Add(val);
     }
 }
Beispiel #28
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);
    }
 protected override void Load(Dsl.FunctionData functionData)
 {
     Dsl.CallData callData = functionData.Call;
     if (null != callData) {
         if (callData.GetParamNum() > 0) {
             Dsl.ISyntaxComponent param = callData.GetParam(0);
             StoryValue<int> cond = new StoryValue<int>();
             cond.InitFromDsl(param);
             m_Conditions.Add(cond);
         }
         List<IStoryCommand> cmds = new List<IStoryCommand>();
         for (int i = 0; i < functionData.Statements.Count; i++) {
             IStoryCommand cmd = StoryCommandManager.Instance.CreateCommand(functionData.Statements[i]);
             if (null != cmd)
                 cmds.Add(cmd);
         }
         m_LoadedIfCommands.Add(cmds);
     }
     IsCompositeCommand = true;
 }
 private static void LoadPaths(List<IStoryValue<string>> List, Dsl.CallData callData)
 {
     int num = callData.GetParamNum();
     for (int i = 0; i < num; ++i) {
         IStoryValue<string> path = new StoryValue<string>();
         path.InitFromDsl(callData.GetParam(i));
         List.Add(path);
     }
 }
 protected override void Load(Dsl.FunctionData functionData)
 {
     Dsl.CallData callData = functionData.Call;
     if (null != callData) {
         for (int i = 0; i < callData.GetParamNum(); ++i) {
             Dsl.ISyntaxComponent param = callData.GetParam(i);
             StoryValue val = new StoryValue();
             val.InitFromDsl(param);
             m_LoadedIterators.Add(val);
         }
         for (int i = 0; i < functionData.Statements.Count; i++) {
             IStoryCommand cmd = StoryCommandManager.Instance.CreateCommand(functionData.Statements[i]);
             if (null != cmd)
                 m_LoadedCommands.Add(cmd);
         }
     }
     IsCompositeCommand = true;
 }
 public bool Init(Dsl.DslInfo config)
 {
     bool ret = false;
     Dsl.FunctionData story = config.First;
     if (null != story && (story.GetId() == "story" || story.GetId() == "script")) {
         ret = true;
         Dsl.CallData callData = story.Call;
         if (null != callData && callData.HaveParam()) {
             m_StoryId = callData.GetParamId(0);
         }
         for (int i = 0; i < story.Statements.Count; i++) {
             if (story.Statements[i].GetId() == "local") {
                 Dsl.FunctionData sectionData = story.Statements[i] as Dsl.FunctionData;
                 if (null != sectionData) {
                     for (int j = 0; j < sectionData.Statements.Count; j++) {
                         Dsl.CallData defData = sectionData.Statements[j] as Dsl.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_PreInitedLocalVariables.ContainsKey(id)) {
                                     m_PreInitedLocalVariables.Add(id, val.Value);
                                 } else {
                                     m_PreInitedLocalVariables[id] = val.Value;
                                 }
                             }
                         }
                     }
                 } else {
     #if DEBUG
                     string err = string.Format("Story {0} DSL, local must be a function ! line:{1} local:{2}", m_StoryId, story.Statements[i].GetLine(), story.Statements[i].ToScriptString());
                     throw new Exception(err);
     #else
                     LogSystem.Error("Story {0} DSL, local must be a function !", m_StoryId);
     #endif
                 }
             } else if (story.Statements[i].GetId() == "onmessage" || story.Statements[i].GetId() == "onnamespacedmessage") {
                 StoryMessageHandler handler = null;
                 Dsl.StatementData msgData = story.Statements[i] as Dsl.StatementData;
                 if (null != msgData) {
                     handler = new StoryMessageHandler();
                     handler.Load(msgData);
                 } else {
                     Dsl.FunctionData sectionData = story.Statements[i] as Dsl.FunctionData;
                     if (null != sectionData) {
                         handler = new StoryMessageHandler();
                         handler.Load(sectionData);
                     }
                 }
                 if (null != handler) {
                     string msgId;
                     if (!string.IsNullOrEmpty(m_Namespace) && story.Statements[i].GetId() == "onnamespacedmessage") {
                         msgId = string.Format("{0}:{1}", m_Namespace, handler.MessageId);
                         handler.MessageId = msgId;
                     } else {
                         msgId = handler.MessageId;
                     }
                     if (!m_MessageQueues.ContainsKey(msgId)) {
                         m_MessageHandlers.Add(handler);
                         m_MessageQueues.Add(msgId, new Queue<MessageInfo>());
                     } else {
     #if DEBUG
                         string err = string.Format("Story {0} DSL, onmessage or onnamespacedmessage {1} duplicate, discard it ! line:{2}", m_StoryId, msgId, story.Statements[i].GetLine());
                         throw new Exception(err);
     #else
                         LogSystem.Error("Story {0} DSL, onmessage {1} duplicate, discard it !", m_StoryId, msgId);
     #endif
                     }
                 } else {
     #if DEBUG
                     string err = string.Format("Story {0} DSL, onmessage must be a function or statement ! line:{1} onmessage:{2}", m_StoryId, story.Statements[i].GetLine(), story.Statements[i].ToScriptString());
                     throw new Exception(err);
     #else
                     LogSystem.Error("Story {0} DSL, onmessage must be a function !", m_StoryId);
     #endif
                 }
             } else {
     #if DEBUG
                 string err = string.Format("StoryInstance::Init, Story {0} unknown part {1}, line:{2} section:{3}", m_StoryId, story.Statements[i].GetId(), story.Statements[i].GetLine(), story.Statements[i].ToScriptString());
                 throw new Exception(err);
     #else
                 LogSystem.Error("StoryInstance::Init, Story {0} unknown part {1}", m_StoryId, story.Statements[i].GetId());
     #endif
             }
         }
     } else {
     #if DEBUG
         string err = string.Format("StoryInstance::Init, isn't story DSL, line:{0} story:{1}", story.GetLine(), story.ToScriptString());
         throw new Exception(err);
     #else
         LogSystem.Error("StoryInstance::Init, isn't story DSL");
     #endif
     }
     LogSystem.Debug("StoryInstance.Init message handler num:{0} {1}", m_MessageHandlers.Count, ret);
     return ret;
 }
 protected override void Load(Dsl.CallData callData)
 {
     m_LoadedArgs = new List<IStoryValue<object>>();
     int num = callData.GetParamNum();
     for (int i = 0; i < num; ++i) {
         StoryValue val = new StoryValue();
         val.InitFromDsl(callData.GetParam(i));
         m_LoadedArgs.Add(val);
     }
     IsCompositeCommand = true;
     if (null == m_LeadCommand) {
         m_LeadCommand = new CompositeCommandHelper(this);
     }
 }
 protected override void Load(Dsl.CallData callData)
 {
     int num = callData.GetParamNum();
     if (num > 7) {
         m_Receiver.InitFromDsl(callData.GetParam(0));
         m_Title.InitFromDsl(callData.GetParam(1));
         m_Content.InitFromDsl(callData.GetParam(2));
         m_Sender.InitFromDsl(callData.GetParam(3));
         m_LevelDemand.InitFromDsl(callData.GetParam(4));
         m_ValidPeriod.InitFromDsl(callData.GetParam(5));
         m_Money.InitFromDsl(callData.GetParam(6));
         m_Gold.InitFromDsl(callData.GetParam(7));
     }
     for (int i = 8; i < callData.GetParamNum(); ++i) {
         StoryValue<int> val = new StoryValue<int>();
         val.InitFromDsl(callData.GetParam(i));
         m_MailItems.Add(val);
     }
 }