Beispiel #1
0
    public void LoadCallData(Dsl.CallData callData)
    {
        var err = LuaFunctionHelper.BeginCall(m_Cs2Lua_LoadCallData);

        LuaFunctionHelper.PushValue(Self);
        LuaFunctionHelper.PushValue(callData);
        var end_call_res = LuaFunctionHelper.EndCall(err);

        if (end_call_res)
        {
            LuaFunctionHelper.BeginGetResult(err);
            LuaFunctionHelper.EndGetResult();
        }
        else
        {
        }
    }
 public void InitFromDsl(Dsl.ISyntaxComponent param)
 {
     m_LoadedArgs = new List <IStoryValue>();
     Dsl.CallData callData = param as Dsl.CallData;
     if (null != callData)
     {
         Load(callData);
     }
     else
     {
         Dsl.FunctionData funcData = param as Dsl.FunctionData;
         if (null != funcData)
         {
             Load(funcData);
         }
     }
 }
        protected override void Load(Dsl.CallData callData, SkillInstance instance)
        {
            int num = callData.GetParamNum();

            if (num >= 3)
            {
                StartTime = long.Parse(callData.GetParamId(0));
                var param = callData.GetParam(1);
                m_ObjPath = param.GetId();
                var cd = param as Dsl.CallData;
                if (null != cd && m_ObjPath == "vector3")
                {
                    m_RelativeOffset = DslUtility.CalcVector3(cd);
                }
                m_DurationTime = long.Parse(callData.GetParamId(2));
            }
        }
Beispiel #4
0
        protected override void Load(Dsl.CallData callData, SkillInstance instance)
        {
            int num = callData.GetParamNum();

            if (num > 0)
            {
                m_Type = callData.GetParamId(0);
            }
            if (num > 1)
            {
                StartTime = long.Parse(callData.GetParamId(1));
            }
            else
            {
                StartTime = 0;
            }
        }
        protected override void Load(Dsl.StatementData statementData)
        {
            if (statementData.Functions.Count >= 3)
            {
                Dsl.CallData first  = statementData.Functions[0].Call;
                Dsl.CallData second = statementData.Functions[1].Call;
                Dsl.CallData third  = statementData.Functions[2].Call;
                if (null != first && null != second && null != third)
                {
                    m_HaveSet = true;

                    Load(first);
                    LoadSet(second);
                    LoadTimeoutSet(third);
                }
            }
        }
        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 #7
0
 public bool Load(Dsl.ISyntaxComponent dsl, DslCalculator calculator)
 {
     m_Calculator = calculator;
     Dsl.ValueData valueData = dsl as Dsl.ValueData;
     if (null != valueData)
     {
         return(Load(valueData));
     }
     else
     {
         Dsl.CallData callData = dsl as Dsl.CallData;
         if (null != callData)
         {
             bool ret = Load(callData);
             if (!ret)
             {
                 int num = callData.GetParamNum();
                 List <IExpression> args = new List <IExpression>();
                 for (int ix = 0; ix < num; ++ix)
                 {
                     Dsl.ISyntaxComponent param = callData.GetParam(ix);
                     args.Add(calculator.Load(param));
                 }
                 return(Load(args));
             }
             return(ret);
         }
         else
         {
             Dsl.FunctionData funcData = dsl as Dsl.FunctionData;
             if (null != funcData)
             {
                 return(Load(funcData));
             }
             else
             {
                 Dsl.StatementData statementData = dsl as Dsl.StatementData;
                 if (null != statementData)
                 {
                     return(Load(statementData));
                 }
             }
         }
     }
     return(false);
 }
Beispiel #8
0
        protected override void Load(Dsl.CallData callData, SkillInstance instance)
        {
            int num = callData.GetParamNum();

            if (num >= 5)
            {
                StartTime     = long.Parse(callData.GetParamId(0));
                m_RemainTime  = long.Parse(callData.GetParamId(1));
                m_ShaderName  = callData.GetParamId(2);
                m_StartColor  = DslUtility.CalcColor(callData.GetParam(3) as Dsl.CallData);
                m_ChangeColor = DslUtility.CalcColor(callData.GetParam(4) as Dsl.CallData);
            }
            if (num >= 6)
            {
                m_ChangeTime = long.Parse(callData.GetParamId(5));
            }
        }
        protected override void Load(Dsl.CallData callData, SkillInstance instance)
        {
            int num = callData.GetParamNum();

            if (num > 0)
            {
                m_Impact = int.Parse(callData.GetParamId(0));
            }
            if (num > 1)
            {
                StartTime = long.Parse(callData.GetParamId(1));
            }
            if (num > 2)
            {
                m_IsExternalImpact = callData.GetParamId(2) == "true";
            }
        }
Beispiel #10
0
        protected override void Load(Dsl.CallData callData, SkillInstance instance)
        {
            int num = callData.GetParamNum();

            if (num > 0)
            {
                m_HitEffect = callData.GetParamId(0);
            }
            if (num > 1)
            {
                m_HitEffectBone = callData.GetParamId(1);
            }
            if (num > 2)
            {
                m_HitEffectStartTime = int.Parse(callData.GetParamId(2));
            }
            if (num > 3)
            {
                m_HitEffectDeleteTime = int.Parse(callData.GetParamId(3));
            }
            if (num > 4)
            {
                m_HitAnim = callData.GetParamId(4);
            }
            if (num > 5)
            {
                m_HitAnimTime = int.Parse(callData.GetParamId(5));
            }
            if (num > 6)
            {
                m_HitDelayTime = int.Parse(callData.GetParamId(6));
            }
            else
            {
                m_HitDelayTime = 0;
            }
            if (num > 7)
            {
                StartTime = long.Parse(callData.GetParamId(7));
            }
            else
            {
                StartTime = 0;
            }
        }
Beispiel #11
0
 public void InitFromDsl(Dsl.ISyntaxComponent param)
 {
     Dsl.CallData callData = param as Dsl.CallData;
     if (null != callData)
     {
         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();
     }
 }
Beispiel #12
0
 public void InitFromDsl(Dsl.ISyntaxComponent param)
 {
     Dsl.CallData callData = param as Dsl.CallData;
     if (null != callData && (callData.GetParamNum() == 2 || callData.GetParamNum() == 3))
     {
         m_ParamNum = callData.GetParamNum();
         m_Pt.InitFromDsl(callData.GetParam(0));
         if (m_ParamNum == 3)
         {
             m_Pt2.InitFromDsl(callData.GetParam(1));
             m_Offset.InitFromDsl(callData.GetParam(2));
         }
         else
         {
             m_Offset.InitFromDsl(callData.GetParam(1));
         }
     }
 }
Beispiel #13
0
 public void InitFromDsl(Dsl.ISyntaxComponent param)
 {
     Dsl.CallData callData = param as Dsl.CallData;
     if (null != callData && callData.GetId() == "substring" && callData.GetParamNum() > 0)
     {
         m_ParamNum = callData.GetParamNum();
         m_String.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(Dsl.ISyntaxComponent param)
 {
     Dsl.CallData callData = param as Dsl.CallData;
     if (null != callData)
     {
         m_ParamNum = callData.GetParamNum();
         if (m_ParamNum > 1)
         {
             m_Var.InitFromDsl(callData.GetParam(0));
             m_Key.InitFromDsl(callData.GetParam(1));
             if (m_ParamNum > 2)
             {
                 m_DefValue.InitFromDsl(callData.GetParam(2));
             }
             TryUpdateValue();
         }
     }
 }
 public void InitFromDsl(Dsl.ISyntaxComponent param)
 {
     Dsl.CallData callData = param as Dsl.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();
         }
     }
 }
Beispiel #16
0
        private void Load(Dsl.CallData 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 #17
0
 public void InitFromDsl(Dsl.ISyntaxComponent param)
 {
     Dsl.CallData callData = param as Dsl.CallData;
     if (null != callData)
     {
         if (callData.GetParamNum() == 1)
         {
             m_X.InitFromDsl(new Dsl.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();
     }
 }
Beispiel #18
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 #19
0
        protected override bool Load(Dsl.FunctionData funcData)
        {
            Dsl.CallData callData = funcData.Call;
            int          num      = callData.GetParamNum();

            for (int ix = 0; ix < num; ++ix)
            {
                Dsl.ISyntaxComponent cond = funcData.Call.GetParam(ix);
                m_Elements.Add(Calculator.Load(cond));
            }
            int fnum = funcData.GetStatementNum();

            for (int ix = 0; ix < fnum; ++ix)
            {
                IExpression subExp = Calculator.Load(funcData.GetStatement(ix));
                m_Expressions.Add(subExp);
            }
            return(true);
        }
Beispiel #20
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_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 #21
0
        public static Vector2 CalcVector2(Dsl.CallData callData)
        {
            if (null == callData || callData.GetId() != "vector2")
            {
                return(Vector2.zero);
            }
            int num = callData.GetParamNum();

            if (2 == num)
            {
                float x = float.Parse(callData.GetParamId(0));
                float y = float.Parse(callData.GetParamId(1));
                return(new Vector2(x, y));
            }
            else
            {
                return(Vector2.zero);
            }
        }
Beispiel #22
0
 public void InitFromDsl(Dsl.ISyntaxComponent param)
 {
     Dsl.CallData callData = param as Dsl.CallData;
     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);
         }
     }
 }
        protected override void Load(Dsl.CallData callData, SkillInstance instance)
        {
            int num = callData.GetParamNum();

            if (num >= 11)
            {
                StartTime           = long.Parse(callData.GetParamId(0));
                m_CurveTime         = float.Parse(callData.GetParamId(1));
                m_CurveHeight       = float.Parse(callData.GetParamId(2));
                m_QteStartTime      = float.Parse(callData.GetParamId(3));
                m_QteDuration       = float.Parse(callData.GetParamId(4));
                m_QteHeight         = float.Parse(callData.GetParamId(5));
                m_QteButtonDuration = float.Parse(callData.GetParamId(6));
                m_UpAnim            = callData.GetParamId(7);
                m_DownAnim          = callData.GetParamId(8);
                m_FalldownAnim      = callData.GetParamId(9);
                m_AnimFadeTime      = float.Parse(callData.GetParamId(10));
            }
        }
        internal static Quaternion CalcEularRotation(Dsl.CallData callData)
        {
            if (null == callData || callData.GetId() != "eular")
            {
                return(Quaternion.Identity);
            }
            int num = callData.GetParamNum();

            if (3 == num)
            {
                float x = float.Parse(callData.GetParamId(0));
                float y = float.Parse(callData.GetParamId(1));
                float z = float.Parse(callData.GetParamId(2));
                return(Quaternion.CreateFromYawPitchRoll(x, y, z));
            }
            else
            {
                return(Quaternion.Identity);
            }
        }
Beispiel #25
0
 protected override void Load(Dsl.FunctionData functionData)
 {
     Dsl.CallData callData = functionData.Call;
     if (null != callData)
     {
         if (callData.GetParamNum() > 0)
         {
             m_LoadedList.InitFromDsl(callData.GetParam(0));
         }
         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;
 }
 private void LoadKeyFrames(List <Dsl.ISyntaxComponent> statements)
 {
     m_Curve = new AnimationCurve();
     for (int i = 0; i < statements.Count; i++)
     {
         Dsl.CallData stCall = statements[i] as Dsl.CallData;
         if (stCall.GetId() == "keyframe")
         {
             if (stCall.GetParamNum() >= 4)
             {
                 float    time       = float.Parse(stCall.GetParamId(0));
                 float    value      = float.Parse(stCall.GetParamId(1));
                 float    inTangent  = float.Parse(stCall.GetParamId(2));
                 float    outTangent = float.Parse(stCall.GetParamId(3));
                 Keyframe keyframe   = new Keyframe(time, value, inTangent, outTangent);
                 m_Curve.AddKey(keyframe);
             }
         }
     }
 }
Beispiel #27
0
        public static Vector3 CalcVector3(Dsl.CallData callData)
        {
            if (null == callData || callData.GetId() != "vector3")
            {
                return(Vector3.zero);
            }
            int num = callData.GetParamNum();

            if (3 == num)
            {
                float x = float.Parse(callData.GetParamId(0));
                float y = float.Parse(callData.GetParamId(1));
                float z = float.Parse(callData.GetParamId(2));
                return(new Vector3(x, y, z));
            }
            else
            {
                return(Vector3.zero);
            }
        }
        public static Vector3 CalcEularAngles(Dsl.CallData callData)
        {
            if (null == callData || callData.GetId() != "eular")
            {
                return(Vector3.Zero);
            }
            int num = callData.GetParamNum();

            if (3 == num)
            {
                float x = float.Parse(callData.GetParamId(0));
                float y = float.Parse(callData.GetParamId(1));
                float z = float.Parse(callData.GetParamId(2));
                return(new Vector3(x, y, z) * 59.29578f);
            }
            else
            {
                return(Vector3.Zero);
            }
        }
Beispiel #29
0
        protected override void Load(Dsl.CallData callData, SkillInstance instance)
        {
            int num = callData.GetParamNum();

            if (num >= 1)
            {
                StartTime = long.Parse(callData.GetParamId(0));
            }
            if (num >= 9)
            {
                m_RelativeCenter.x = float.Parse(callData.GetParamId(1));
                m_RelativeCenter.y = float.Parse(callData.GetParamId(2));
                m_RelativeCenter.z = float.Parse(callData.GetParamId(3));
                m_Radius           = float.Parse(callData.GetParamId(4));
                m_AngleOrLength    = float.Parse(callData.GetParamId(5));
                m_AoeType          = int.Parse(callData.GetParamId(6));
                m_MaxCount         = int.Parse(callData.GetParamId(7));
                m_RelativeToTarget = callData.GetParamId(8) == "true";
            }
        }
        protected override void Load(Dsl.FunctionData funcData, SkillInstance instance)
        {
            Dsl.CallData callData = funcData.Call;
            if (null != callData)
            {
                Load(callData, instance);

                for (int i = 0; i < funcData.Statements.Count; ++i)
                {
                    Dsl.ISyntaxComponent statement = funcData.Statements[i];
                    Dsl.CallData         stCall    = statement as Dsl.CallData;
                    if (null != stCall)
                    {
                        string id  = stCall.GetId();
                        string key = stCall.GetParamId(0);
                        object val = string.Empty;
                        if (id == "int")
                        {
                            val = int.Parse(stCall.GetParamId(1));
                        }
                        else if (id == "long")
                        {
                            val = long.Parse(stCall.GetParamId(1));
                        }
                        else if (id == "float")
                        {
                            val = float.Parse(stCall.GetParamId(1));
                        }
                        else if (id == "double")
                        {
                            val = double.Parse(stCall.GetParamId(1));
                        }
                        else if (id == "string")
                        {
                            val = stCall.GetParamId(1);
                        }
                        m_Params.Add(key, val);
                    }
                }
            }
        }
 public IStoryCommand CreateCommand(Dsl.ISyntaxComponent commandConfig)
 {
     lock (m_Lock) {
         Dsl.CallData callData = commandConfig as Dsl.CallData;
         if (null != callData) {
             if (callData.IsHighOrder) {
                 Dsl.CallData innerCall = callData.Call;
                 if (innerCall.GetParamClass() == (int)Dsl.CallData.ParamClassEnum.PARAM_CLASS_PERIOD ||
                   innerCall.GetParamClass() == (int)Dsl.CallData.ParamClassEnum.PARAM_CLASS_BRACKET ||
                   innerCall.GetParamClass() == (int)Dsl.CallData.ParamClassEnum.PARAM_CLASS_PERIOD_BRACE ||
                   innerCall.GetParamClass() == (int)Dsl.CallData.ParamClassEnum.PARAM_CLASS_PERIOD_BRACKET ||
                   innerCall.GetParamClass() == (int)Dsl.CallData.ParamClassEnum.PARAM_CLASS_PERIOD_PARENTHESIS) {
                     if (callData.GetParamClass() == (int)Dsl.CallData.ParamClassEnum.PARAM_CLASS_PARENTHESIS) {
                         //obj.member(a,b,...) or obj[member](a,b,...) or obj.(member)(a,b,...) or obj.[member](a,b,...) or obj.{member}(a,b,...) -> execinstance(obj,member,a,b,...)
                         Dsl.CallData newCall = new Dsl.CallData();
                         newCall.Name = new Dsl.ValueData("dotnetexec", Dsl.ValueData.ID_TOKEN);
                         newCall.SetParamClass((int)Dsl.CallData.ParamClassEnum.PARAM_CLASS_PARENTHESIS);
                         if (innerCall.IsHighOrder) {
                             newCall.Params.Add(innerCall.Call);
                             newCall.Params.Add(innerCall.GetParam(0));
                             for (int i = 0; i < callData.GetParamNum(); ++i) {
                                 Dsl.ISyntaxComponent p = callData.Params[i];
                                 newCall.Params.Add(p);
                             }
                         } else {
                             newCall.Params.Add(innerCall.Name);
                             newCall.Params.Add(innerCall.GetParam(0));
                             for (int i = 0; i < callData.GetParamNum(); ++i) {
                                 Dsl.ISyntaxComponent p = callData.Params[i];
                                 newCall.Params.Add(p);
                             }
                         }
                         return CreateCommand(newCall);
                     }
                 }
             } else if (callData.GetParamClass() == (int)Dsl.CallData.ParamClassEnum.PARAM_CLASS_OPERATOR && callData.GetId() == "=") {
                 Dsl.CallData innerCall = callData.GetParam(0) as Dsl.CallData;
                 if (null != innerCall) {
                     //obj.property = val -> setinstance(obj,property,val)
                     Dsl.CallData newCall = new Dsl.CallData();
                     newCall.Name = new Dsl.ValueData("dotnetset", Dsl.ValueData.ID_TOKEN);
                     newCall.SetParamClass((int)Dsl.CallData.ParamClassEnum.PARAM_CLASS_PARENTHESIS);
                     if (innerCall.IsHighOrder) {
                         newCall.Params.Add(innerCall.Call);
                         newCall.Params.Add(innerCall.GetParam(0));
                         newCall.Params.Add(callData.GetParam(1));
                     } else {
                         newCall.Params.Add(innerCall.Name);
                         newCall.Params.Add(innerCall.GetParam(0));
                         newCall.Params.Add(callData.GetParam(1));
                     }
                     return CreateCommand(newCall);
                 }
             }
         }
         IStoryCommand command = null;
         string type = commandConfig.GetId();
         IStoryCommandFactory factory = GetFactory(type);
         if (null != factory) {
             try {
                 command = factory.Create();
                 command.Init(commandConfig);
             } catch (Exception ex) {
                 GameFramework.LogSystem.Error("command:{0} line:{1} failed.", commandConfig.ToScriptString(), commandConfig.GetLine());
                 throw ex;
             }
         } else {
     #if DEBUG
             string err = string.Format("CreateCommand failed, line:{0} command:{1}", commandConfig.GetLine(), commandConfig.ToScriptString());
             throw new Exception(err);
     #else
         GameFramework.LogSystem.Error("CreateCommand failed, type:{0} line:{1}", type, commandConfig.GetLine());
     #endif
         }
         if (null != command) {
             GameFramework.LogSystem.Debug("CreateCommand, type:{0} command:{1}", type, command.GetType().Name);
         } else {
     #if DEBUG
             string err = string.Format("CreateCommand failed, line:{0} command:{1}", commandConfig.GetLine(), commandConfig.ToScriptString());
             throw new Exception(err);
     #else
         GameFramework.LogSystem.Error("CreateCommand failed, type:{0} line:{1}", type, commandConfig.GetLine());
     #endif
         }
         return command;
     }
 }