public static TriggerFuncEntry createString(Func <TriggerExecutor, TriggerFuncData, TriggerArg, string> func) { TriggerFuncEntry re = new TriggerFuncEntry(); re.stringFunc = func; re._type = STriggerObjectType.String; return(re); }
public static TriggerFuncEntry createObject(Func <TriggerExecutor, TriggerFuncData, TriggerArg, object> func) { TriggerFuncEntry re = new TriggerFuncEntry(); re.objectFunc = func; re._type = STriggerObjectType.Object; return(re); }
public static TriggerFuncEntry createBoolean(Func <TriggerExecutor, TriggerFuncData, TriggerArg, bool> func) { TriggerFuncEntry re = new TriggerFuncEntry(); re.boolFunc = func; re._type = STriggerObjectType.Boolean; return(re); }
public static TriggerFuncEntry createFloat(Func <TriggerExecutor, TriggerFuncData, TriggerArg, float> func) { TriggerFuncEntry re = new TriggerFuncEntry(); re.floatFunc = func; re._type = STriggerObjectType.Float; return(re); }
public static TriggerFuncEntry createVoid(Action <TriggerExecutor, TriggerFuncData, TriggerArg> func) { TriggerFuncEntry re = new TriggerFuncEntry(); re.voidFunc = func; re._type = STriggerObjectType.Void; return(re); }
/** 获取string值 */ protected virtual string toGetStringFuncValue(TriggerFuncData func, TriggerArg arg) { TriggerFuncEntry entry = _funcMaker.get(func.id); Func <TriggerExecutor, TriggerFuncData, TriggerArg, string> f; if (entry == null || (f = entry.stringFunc) == null) { throwError("未找到的方法类型,String", func.id); return(""); } return(f(this, func, arg)); }
/** 获取float值 */ protected virtual float toGetFloatFuncValue(TriggerFuncData func, TriggerArg arg) { TriggerFuncEntry entry = _funcMaker.get(func.id); Func <TriggerExecutor, TriggerFuncData, TriggerArg, float> f; if (entry == null || (f = entry.floatFunc) == null) { throwError("未找到的方法类型,Float", func.id); return(0); } return(f(this, func, arg)); }
/** 执行同步方法 */ protected virtual void toDoActionFunc(TriggerFuncData func, TriggerArg arg) { TriggerFuncEntry entry = _funcMaker.get(func.id); if (entry == null) { throwError("未找到的方法类型,void", func.id); return; } if (!entry.doEver(this, func, arg)) { throwError("未找到的方法类型,void", func.id); return; } }
public TriggerRegister() { offSet = TriggerFunctionType.off; list = new TriggerFuncEntry[TriggerFunctionType.count - offSet]; list[TriggerFunctionType.If - offSet] = TriggerFuncEntry.createVoid(delegate_If); list[TriggerFunctionType.While - offSet] = TriggerFuncEntry.createVoid(delegate_While); list[TriggerFunctionType.GetSVar - offSet] = TriggerFuncEntry.createObject(delegate_GetSVar); list[TriggerFunctionType.GetLocalVar - offSet] = TriggerFuncEntry.createObject(delegate_GetLocalVar); list[TriggerFunctionType.Not - offSet] = TriggerFuncEntry.createBoolean(delegate_Not); list[TriggerFunctionType.And - offSet] = TriggerFuncEntry.createBoolean(delegate_And); list[TriggerFunctionType.And2 - offSet] = TriggerFuncEntry.createBoolean(delegate_And2); list[TriggerFunctionType.Or - offSet] = TriggerFuncEntry.createBoolean(delegate_Or); list[TriggerFunctionType.Or2 - offSet] = TriggerFuncEntry.createBoolean(delegate_Or2); list[TriggerFunctionType.Equals - offSet] = TriggerFuncEntry.createBoolean(delegate_Equals); list[TriggerFunctionType.EqualsInt - offSet] = TriggerFuncEntry.createBoolean(delegate_EqualsInt); list[TriggerFunctionType.EqualsFloat - offSet] = TriggerFuncEntry.createBoolean(delegate_EqualsFloat); list[TriggerFunctionType.EqualsLong - offSet] = TriggerFuncEntry.createBoolean(delegate_EqualsLong); list[TriggerFunctionType.EqualsString - offSet] = TriggerFuncEntry.createBoolean(delegate_EqualsString); list[TriggerFunctionType.IsNull - offSet] = TriggerFuncEntry.createBoolean(delegate_IsNull); list[TriggerFunctionType.NotNull - offSet] = TriggerFuncEntry.createBoolean(delegate_NotNull); list[TriggerFunctionType.CompareInt - offSet] = TriggerFuncEntry.createBoolean(delegate_CompareInt); list[TriggerFunctionType.CompareFloat - offSet] = TriggerFuncEntry.createBoolean(delegate_CompareFloat); list[TriggerFunctionType.CompareLong - offSet] = TriggerFuncEntry.createBoolean(delegate_CompareLong); list[TriggerFunctionType.GreaterThanInt - offSet] = TriggerFuncEntry.createBoolean(delegate_GreaterThanInt); list[TriggerFunctionType.GreaterThanOrEqualInt - offSet] = TriggerFuncEntry.createBoolean(delegate_GreaterThanOrEqualInt); list[TriggerFunctionType.LessThanInt - offSet] = TriggerFuncEntry.createBoolean(delegate_LessThanInt); list[TriggerFunctionType.LessThanOrEqualInt - offSet] = TriggerFuncEntry.createBoolean(delegate_LessThanOrEqualInt); list[TriggerFunctionType.GreaterThanFloat - offSet] = TriggerFuncEntry.createBoolean(delegate_GreaterThanFloat); list[TriggerFunctionType.GreaterThanOrEqualFloat - offSet] = TriggerFuncEntry.createBoolean(delegate_GreaterThanOrEqualFloat); list[TriggerFunctionType.LessThanFloat - offSet] = TriggerFuncEntry.createBoolean(delegate_LessThanFloat); list[TriggerFunctionType.LessThanOrEqualFloat - offSet] = TriggerFuncEntry.createBoolean(delegate_LessThanOrEqualFloat); list[TriggerFunctionType.GreaterThanLong - offSet] = TriggerFuncEntry.createBoolean(delegate_GreaterThanLong); list[TriggerFunctionType.GreaterThanOrEqualLong - offSet] = TriggerFuncEntry.createBoolean(delegate_GreaterThanOrEqualLong); list[TriggerFunctionType.LessThanLong - offSet] = TriggerFuncEntry.createBoolean(delegate_LessThanLong); list[TriggerFunctionType.LessThanOrEqualLong - offSet] = TriggerFuncEntry.createBoolean(delegate_LessThanOrEqualLong); list[TriggerFunctionType.GetSBoolean - offSet] = TriggerFuncEntry.createBoolean(delegate_GetSBoolean); list[TriggerFunctionType.GetLocalBoolean - offSet] = TriggerFuncEntry.createBoolean(delegate_GetLocalBoolean); list[TriggerFunctionType.RandomBoolean - offSet] = TriggerFuncEntry.createBoolean(delegate_RandomBoolean); list[TriggerFunctionType.IsTimeMillisPass - offSet] = TriggerFuncEntry.createBoolean(delegate_IsTimeMillisPass); list[TriggerFunctionType.AddInt - offSet] = TriggerFuncEntry.createInt(delegate_AddInt); list[TriggerFunctionType.SubInt - offSet] = TriggerFuncEntry.createInt(delegate_SubInt); list[TriggerFunctionType.MulInt - offSet] = TriggerFuncEntry.createInt(delegate_MulInt); list[TriggerFunctionType.DivInt - offSet] = TriggerFuncEntry.createInt(delegate_DivInt); list[TriggerFunctionType.InvertInt - offSet] = TriggerFuncEntry.createInt(delegate_InvertInt); list[TriggerFunctionType.RestInt - offSet] = TriggerFuncEntry.createInt(delegate_RestInt); list[TriggerFunctionType.AbsInt - offSet] = TriggerFuncEntry.createInt(delegate_AbsInt); list[TriggerFunctionType.Add1Int - offSet] = TriggerFuncEntry.createInt(delegate_Add1Int); list[TriggerFunctionType.Sub1Int - offSet] = TriggerFuncEntry.createInt(delegate_Sub1Int); list[TriggerFunctionType.ConvertFloat2Int - offSet] = TriggerFuncEntry.createInt(delegate_ConvertFloat2Int); list[TriggerFunctionType.ConvertLong2Int - offSet] = TriggerFuncEntry.createInt(delegate_ConvertLong2Int); list[TriggerFunctionType.GetSInt - offSet] = TriggerFuncEntry.createInt(delegate_GetSInt); list[TriggerFunctionType.GetLocalInt - offSet] = TriggerFuncEntry.createInt(delegate_GetLocalInt); list[TriggerFunctionType.GetCurrentLoopIndex - offSet] = TriggerFuncEntry.createInt(delegate_GetCurrentLoopIndex); list[TriggerFunctionType.GetCurrentListElement - offSet] = TriggerFuncEntry.createObject(delegate_GetCurrentListElement); list[TriggerFunctionType.RandomInt - offSet] = TriggerFuncEntry.createInt(delegate_RandomInt); list[TriggerFunctionType.RandomRange - offSet] = TriggerFuncEntry.createInt(delegate_RandomRange); list[TriggerFunctionType.GetTriggerGMCommandIntArg - offSet] = TriggerFuncEntry.createInt(delegate_GetTriggerGMCommandIntArg); list[TriggerFunctionType.AddFloat - offSet] = TriggerFuncEntry.createFloat(delegate_AddFloat); list[TriggerFunctionType.SubFloat - offSet] = TriggerFuncEntry.createFloat(delegate_SubFloat); list[TriggerFunctionType.MulFloat - offSet] = TriggerFuncEntry.createFloat(delegate_MulFloat); list[TriggerFunctionType.DivFloat - offSet] = TriggerFuncEntry.createFloat(delegate_DivFloat); list[TriggerFunctionType.InvertFloat - offSet] = TriggerFuncEntry.createFloat(delegate_InvertFloat); list[TriggerFunctionType.AbsFloat - offSet] = TriggerFuncEntry.createFloat(delegate_AbsFloat); list[TriggerFunctionType.GetSFloat - offSet] = TriggerFuncEntry.createFloat(delegate_GetSFloat); list[TriggerFunctionType.GetLocalFloat - offSet] = TriggerFuncEntry.createFloat(delegate_GetLocalFloat); list[TriggerFunctionType.ConvertInt2Float - offSet] = TriggerFuncEntry.createFloat(delegate_ConvertInt2Float); list[TriggerFunctionType.ConvertLong2Float - offSet] = TriggerFuncEntry.createFloat(delegate_ConvertLong2Float); list[TriggerFunctionType.AddLong - offSet] = TriggerFuncEntry.createLong(delegate_AddLong); list[TriggerFunctionType.SubLong - offSet] = TriggerFuncEntry.createLong(delegate_SubLong); list[TriggerFunctionType.MulLong - offSet] = TriggerFuncEntry.createLong(delegate_MulLong); list[TriggerFunctionType.DivLong - offSet] = TriggerFuncEntry.createLong(delegate_DivLong); list[TriggerFunctionType.InvertLong - offSet] = TriggerFuncEntry.createLong(delegate_InvertLong); list[TriggerFunctionType.AbsLong - offSet] = TriggerFuncEntry.createLong(delegate_AbsLong); list[TriggerFunctionType.ConvertInt2Long - offSet] = TriggerFuncEntry.createLong(delegate_ConvertInt2Long); list[TriggerFunctionType.ConvertFloat2Long - offSet] = TriggerFuncEntry.createLong(delegate_ConvertFloat2Long); list[TriggerFunctionType.GetSLong - offSet] = TriggerFuncEntry.createLong(delegate_GetSLong); list[TriggerFunctionType.GetLocalLong - offSet] = TriggerFuncEntry.createLong(delegate_GetLocalLong); list[TriggerFunctionType.GetTimeMillis - offSet] = TriggerFuncEntry.createLong(delegate_GetTimeMillis); list[TriggerFunctionType.AddStr - offSet] = TriggerFuncEntry.createString(delegate_AddStr); list[TriggerFunctionType.ConvertInt2Str - offSet] = TriggerFuncEntry.createString(delegate_ConvertInt2Str); list[TriggerFunctionType.ConvertFloat2Str - offSet] = TriggerFuncEntry.createString(delegate_ConvertFloat2Str); list[TriggerFunctionType.ConvertLong2Str - offSet] = TriggerFuncEntry.createString(delegate_ConvertLong2Str); list[TriggerFunctionType.ConvertBool2Str - offSet] = TriggerFuncEntry.createString(delegate_ConvertBool2Str); list[TriggerFunctionType.GetSString - offSet] = TriggerFuncEntry.createString(delegate_GetSString); list[TriggerFunctionType.GetLocalString - offSet] = TriggerFuncEntry.createString(delegate_GetLocalString); list[TriggerFunctionType.AsList - offSet] = TriggerFuncEntry.createObject(delegate_AsList); list[TriggerFunctionType.CreateList - offSet] = TriggerFuncEntry.createObject(delegate_CreateList); list[TriggerFunctionType.GetListSize - offSet] = TriggerFuncEntry.createInt(delegate_GetListSize); list[TriggerFunctionType.ListAdd - offSet] = TriggerFuncEntry.createVoid(delegate_ListAdd); list[TriggerFunctionType.ListRemove - offSet] = TriggerFuncEntry.createVoid(delegate_ListRemove); list[TriggerFunctionType.ListRemoveObj - offSet] = TriggerFuncEntry.createBoolean(delegate_ListRemoveObj); list[TriggerFunctionType.ListClear - offSet] = TriggerFuncEntry.createVoid(delegate_ListClear); list[TriggerFunctionType.ListIndexOf - offSet] = TriggerFuncEntry.createInt(delegate_ListIndexOf); list[TriggerFunctionType.ListContains - offSet] = TriggerFuncEntry.createBoolean(delegate_ListContains); list[TriggerFunctionType.ForeachList - offSet] = TriggerFuncEntry.createVoid(delegate_ForeachList); list[TriggerFunctionType.ListIsEmpty - offSet] = TriggerFuncEntry.createBoolean(delegate_ListIsEmpty); list[TriggerFunctionType.AsMap - offSet] = TriggerFuncEntry.createObject(delegate_AsMap); list[TriggerFunctionType.CreateMap - offSet] = TriggerFuncEntry.createObject(delegate_CreateMap); list[TriggerFunctionType.GetMapSize - offSet] = TriggerFuncEntry.createInt(delegate_GetMapSize); list[TriggerFunctionType.MapPut - offSet] = TriggerFuncEntry.createVoid(delegate_MapPut); list[TriggerFunctionType.MapRemove - offSet] = TriggerFuncEntry.createBoolean(delegate_MapRemove); list[TriggerFunctionType.MapClear - offSet] = TriggerFuncEntry.createVoid(delegate_MapClear); list[TriggerFunctionType.MapContains - offSet] = TriggerFuncEntry.createBoolean(delegate_MapContains); list[TriggerFunctionType.MapIsEmpty - offSet] = TriggerFuncEntry.createBoolean(delegate_MapIsEmpty); list[TriggerFunctionType.AsSet - offSet] = TriggerFuncEntry.createObject(delegate_AsSet); list[TriggerFunctionType.CreateSet - offSet] = TriggerFuncEntry.createObject(delegate_CreateSet); list[TriggerFunctionType.GetSetSize - offSet] = TriggerFuncEntry.createInt(delegate_GetSetSize); list[TriggerFunctionType.SetAdd - offSet] = TriggerFuncEntry.createVoid(delegate_SetAdd); list[TriggerFunctionType.SetRemove - offSet] = TriggerFuncEntry.createBoolean(delegate_SetRemove); list[TriggerFunctionType.SetClear - offSet] = TriggerFuncEntry.createVoid(delegate_SetClear); list[TriggerFunctionType.SetContains - offSet] = TriggerFuncEntry.createBoolean(delegate_SetContains); list[TriggerFunctionType.SetIsEmpty - offSet] = TriggerFuncEntry.createBoolean(delegate_SetIsEmpty); list[TriggerFunctionType.OpenTrigger - offSet] = TriggerFuncEntry.createVoid(delegate_OpenTrigger); list[TriggerFunctionType.CloseTrigger - offSet] = TriggerFuncEntry.createVoid(delegate_CloseTrigger); list[TriggerFunctionType.RunTrigger - offSet] = TriggerFuncEntry.createVoid(delegate_RunTrigger); list[TriggerFunctionType.RunTriggerAbs - offSet] = TriggerFuncEntry.createVoid(delegate_RunTriggerAbs); list[TriggerFunctionType.Wait - offSet] = TriggerFuncEntry.createVoid(delegate_Wait); list[TriggerFunctionType.WaitUtil - offSet] = TriggerFuncEntry.createVoid(delegate_WaitUtil); list[TriggerFunctionType.Print - offSet] = TriggerFuncEntry.createVoid(delegate_Print); list[TriggerFunctionType.ForLoop - offSet] = TriggerFuncEntry.createVoid(delegate_ForLoop); list[TriggerFunctionType.BreakTrigger - offSet] = TriggerFuncEntry.createVoid(delegate_BreakTrigger); list[TriggerFunctionType.BreakLoop - offSet] = TriggerFuncEntry.createVoid(delegate_BreakLoop); list[TriggerFunctionType.ContinueLoop - offSet] = TriggerFuncEntry.createVoid(delegate_ContinueLoop); list[TriggerFunctionType.SetSVar - offSet] = TriggerFuncEntry.createVoid(delegate_SetSVar); list[TriggerFunctionType.RemoveSVar - offSet] = TriggerFuncEntry.createVoid(delegate_RemoveSVar); list[TriggerFunctionType.SetLocalVar - offSet] = TriggerFuncEntry.createVoid(delegate_SetLocalVar); list[TriggerFunctionType.GetEventIntArgs - offSet] = TriggerFuncEntry.createInt(delegate_GetEventIntArgs); list[TriggerFunctionType.GetEventBoolArgs - offSet] = TriggerFuncEntry.createBoolean(delegate_GetEventBoolArgs); list[TriggerFunctionType.GetEventStringArgs - offSet] = TriggerFuncEntry.createString(delegate_GetEventStringArgs); list[TriggerFunctionType.GetGuideMainStep - offSet] = TriggerFuncEntry.createInt(delegate_GetGuideMainStep); list[TriggerFunctionType.SetGuideMainStep - offSet] = TriggerFuncEntry.createVoid(delegate_SetGuideMainStep); list[TriggerFunctionType.ShowUI - offSet] = TriggerFuncEntry.createVoid(delegate_ShowUI); list[TriggerFunctionType.HideUI - offSet] = TriggerFuncEntry.createVoid(delegate_HideUI); list[TriggerFunctionType.UnitIsAlive - offSet] = TriggerFuncEntry.createBoolean(delegate_UnitIsAlive); list[TriggerFunctionType.IsPosEnabled - offSet] = TriggerFuncEntry.createBoolean(delegate_IsPosEnabled); list[TriggerFunctionType.TriggerUnit - offSet] = TriggerFuncEntry.createObject(delegate_TriggerUnit); list[TriggerFunctionType.PosDistance - offSet] = TriggerFuncEntry.createFloat(delegate_PosDistance); list[TriggerFunctionType.GetUnitFightUnitID - offSet] = TriggerFuncEntry.createInt(delegate_GetUnitFightUnitID); list[TriggerFunctionType.GetUnit - offSet] = TriggerFuncEntry.createObject(delegate_GetUnit); list[TriggerFunctionType.AsUnit - offSet] = TriggerFuncEntry.createObject(delegate_AsUnit); list[TriggerFunctionType.CreateAddPuppet - offSet] = TriggerFuncEntry.createObject(delegate_CreateAddPuppet); list[TriggerFunctionType.AsPos - offSet] = TriggerFuncEntry.createObject(delegate_AsPos); list[TriggerFunctionType.GetUnitPos - offSet] = TriggerFuncEntry.createObject(delegate_GetUnitPos); list[TriggerFunctionType.GetScenePlacePos - offSet] = TriggerFuncEntry.createObject(delegate_GetScenePlacePos); list[TriggerFunctionType.PosPolar - offSet] = TriggerFuncEntry.createObject(delegate_PosPolar); list[TriggerFunctionType.AddPos - offSet] = TriggerFuncEntry.createObject(delegate_AddPos); list[TriggerFunctionType.AsDir - offSet] = TriggerFuncEntry.createObject(delegate_AsDir); list[TriggerFunctionType.GetUnitDir - offSet] = TriggerFuncEntry.createObject(delegate_GetUnitDir); list[TriggerFunctionType.AddDir - offSet] = TriggerFuncEntry.createObject(delegate_AddDir); list[TriggerFunctionType.AddDirFloat - offSet] = TriggerFuncEntry.createObject(delegate_AddDirFloat); list[TriggerFunctionType.KillUnit - offSet] = TriggerFuncEntry.createVoid(delegate_KillUnit); list[TriggerFunctionType.RemoveUnit - offSet] = TriggerFuncEntry.createVoid(delegate_RemoveUnit); list[TriggerFunctionType.MoveToUnit - offSet] = TriggerFuncEntry.createVoid(delegate_MoveToUnit); list[TriggerFunctionType.UnitAddAttribute - offSet] = TriggerFuncEntry.createVoid(delegate_UnitAddAttribute); list[TriggerFunctionType.UnitAddHpPercent - offSet] = TriggerFuncEntry.createVoid(delegate_UnitAddHpPercent); }
/** 获取boolean方法返回值 */ protected virtual bool toGetBooleanFuncValue(TriggerFuncData func, TriggerArg arg) { switch (func.id) { case TriggerFunctionType.And: { if (!getBoolean(func.args[0], arg)) { return(false); } return(getBoolean(func.args[1], arg)); } case TriggerFunctionType.And2: { if (!getBoolean(func.args[0], arg)) { return(false); } if (!getBoolean(func.args[1], arg)) { return(false); } return(getBoolean(func.args[2], arg)); } case TriggerFunctionType.Or: { if (getBoolean(func.args[0], arg)) { return(true); } return(getBoolean(func.args[1], arg)); } case TriggerFunctionType.Or2: { if (getBoolean(func.args[0], arg)) { return(true); } if (getBoolean(func.args[1], arg)) { return(true); } return(getBoolean(func.args[2], arg)); } } TriggerFuncEntry entry = _funcMaker.get(func.id); Func <TriggerExecutor, TriggerFuncData, TriggerArg, bool> f; if (entry == null || (f = entry.boolFunc) == null) { throwError("未找到的方法类型,Boolean", func.id); return(false); } return(f(this, func, arg)); }