public override EFuncRet FuncExecHandler(HandleTarget Target, FuncData funcdata, FuncContext context) { try { int id = funcdata.ParamIntList[0]; ThriftVector3 pos = new ThriftVector3(); pos.X = funcdata.ParamIntList[1]; pos.Y = funcdata.ParamIntList[2]; pos.Z = funcdata.ParamIntList[3]; ThriftVector3 rot = new ThriftVector3(); rot.X = 0; rot.Y = funcdata.ParamIntList[4]; rot.Z = 0; ThriftVector3 scal = new ThriftVector3(); scal.X = funcdata.ParamIntList[5]; scal.Y = funcdata.ParamIntList[5]; scal.Z = funcdata.ParamIntList[5]; TerrainManager.Instance.CreateNpcById(id, pos, rot, scal); } catch (Exception) { Debuger.LogWarning("error on create npc by function "); } return(EFuncRet.Continue); }
public override EFuncRet FuncExecHandler(HandleTarget Target, FuncData funcdata, FuncContext context) { try { ThriftVector3 pos = new ThriftVector3(); pos.X = funcdata.ParamIntList[0]; pos.Y = funcdata.ParamIntList[1]; pos.Z = funcdata.ParamIntList[2]; ThriftVector3 rot = new ThriftVector3(); rot.X = 0; rot.Y = funcdata.ParamIntList[3]; rot.Z = 0; ThriftVector3 scal = new ThriftVector3(); scal.X = funcdata.ParamIntList[4]; scal.Y = funcdata.ParamIntList[4]; scal.Z = funcdata.ParamIntList[4]; GameObject elem = EffectContainer.EffectFactory(funcdata.ParamStringList[0]); elem.transform.position = pos.GetVector3(); elem.transform.eulerAngles = rot.GetVector3(); elem.transform.localScale = scal.GetVector3(); } catch { } return(EFuncRet.Continue); }
public override EFuncRet FuncExecHandler(HandleTarget Target, FuncData funcdata, FuncContext context) { int missionId = funcdata.ParamIntList[0]; MessageDispatcher.Instance.BroadcastMessage(new MessageObject(ClientCustomMessageDefine.C_ACCEPT_MISSION, missionId)); return(EFuncRet.Continue); }
public void ApplyFuncPrase() { for (int i = keys.Count - 1; i >= 0; --i) { var key = keys[i]; if (key.StartsWith("(F)")) { var data = new FuncData(); var arr = key.Substring(3).Split('('); data.funcName = arr[0]; data.funcTypeParam = arr[1].Substring(0, arr[1].Length - 1); // 删除形式参数 var par = new List <string>(data.funcTypeParam.Split(new char[] { ',', ' ' }, StringSplitOptions.RemoveEmptyEntries)); for (int j = par.Count - 1; j > 0; j -= 2) { par.RemoveAt(j); } data.funcType = string.Join(", ", par); List <string> content = new List <string>(); data.data = content; foreach (var c in dataContent) { content.Add((string)c[i]); c.RemoveAt(i); } funcDatas.Add(key, data); cols.RemoveAt(i); keys.RemoveAt(i); keyNames.RemoveAt(i); types.RemoveAt(i); } } }
void CheckDataType(string Name) { if (tdc.CheckName(Name)) //简单输出显示 变量的值 { CalData datatemp; try { datatemp = tdc.GetData(Name).GetCalData(); } catch (AssignedError e) { PushToShow(e.Message); return; } switch (datatemp.CalType) { case DataType.BLOCK: { BlockData bd = (BlockData)datatemp; PushToShow(bd.ToString()); } break; case DataType.EXP: { ExpData ed = (ExpData)datatemp; try { PushToShow(ed.ToString()); } catch (ExpError e) { PushToShow(e.Message); } break; } case DataType.MATRIX: { Matrix matrix = (Matrix)datatemp; PushToShow(matrix.ToString()); } break; case DataType.FUNC: { FuncData fd = (FuncData)datatemp; PushToShow(fd.ToString()); } break; } } else { var str = SimpleCal(InputData); if (str == null) { PushToShow("No result"); } else { PushToShow(str.ToString()); } } }
public int Accept(DataFunction func) { FuncData.Clear(); FuncData.AddRange(func.Data); return(ErrorCode); }
public override EFuncRet FuncExecHandler(HandleTarget Target, FuncData funcdata, FuncContext context) { int missionStep = MissionManager.Instance.GetMissionStepCounter(funcdata.ParamIntList[0]); OperationFunc.FuncOperatorValue((EFuncOperator)funcdata.Oper, ref missionStep, funcdata.ParamIntList[1]); MissionManager.Instance.SetMissionStepCounter(funcdata.ParamIntList[0], missionStep); return(EFuncRet.Continue); }
private FuncData FInit(FuncData data) { SetHp(GetMaxHp()); SetEnergy(GetMaxEnergy()); P = data.PlayerValue; M = data.MapValue; S = data.ShopValue; return(data); }
private FuncData DoWithPerks(Actions act, FuncData data) { switch (act) { case Actions.GetDamage: Func <FuncData, FuncData> getDamage = FGetDamage; foreach (var perk in Perks) { getDamage = perk.GetDamage(getDamage); } return(getDamage(data)); case Actions.GetHeal: Func <FuncData, FuncData> getHeal = FGetHeal; foreach (var perk in Perks) { getHeal = perk.GetHeal(getHeal); } return(getHeal(data)); case Actions.StartTurn: Func <FuncData, FuncData> startTurn = FStartTurn; foreach (var perk in Perks) { startTurn = perk.StartTurn(startTurn); } return(startTurn(data)); case Actions.EndTurn: Func <FuncData, FuncData> endTurn = FEndTurn; foreach (var perk in Perks) { endTurn = perk.EndTurn(endTurn); } return(endTurn(data)); case Actions.Init: Func <FuncData, FuncData> init = FInit; foreach (var perk in Perks) { init = perk.Init(init); } return(init(data)); case Actions.LevelUp: Func <FuncData, FuncData> levelUp = FLevelUp; foreach (var perk in Perks) { levelUp = perk.LevelUp(levelUp); } return(levelUp(data)); default: return(new FuncData(this)); } }
private FuncData FStartTurn(FuncData data) { Chosen = true; RefreshAttacks(); RefreshMovement(); foreach (var skill in Skills) { skill.Tick(1); } return(data); }
public void EndPCall() { if (oldTop != -1) { luaState.EndPCall(oldTop); argCount = 0; FuncData data = stack.Pop(); oldTop = data.oldTop; stackPos = data.stackPos; } }
private void OnItemChoosed(object data) { FuncData funcData = data as FuncData; if (funcData == null) { return; } funcData.Property.stringValue = funcData.Value; funcData.Property.serializedObject.ApplyModifiedProperties(); }
static public int HandleFuncExec(HandleTarget Target, int iFuncGroupId, FuncContext context) { if (null == Target || 0 == iFuncGroupId) { return(0); } FuncGroup funcdataGroup = ConfigManager.Instance.GetFuncGroup(iFuncGroupId); if (null == funcdataGroup || null == funcdataGroup.FuncDataList) { return(0); } //Exec Func FuncData ExecData = null; int iLoop = 0; for ( ; iLoop < funcdataGroup.FuncDataList.Count; ++iLoop) { ExecData = funcdataGroup.FuncDataList[iLoop]; if (null == ExecData) { continue; } FuncMethodsBase func = null; FuncExec.TryGetValue(ExecData.Id, out func); // if (null == func) { continue; } EFuncRet eRet = func.FuncExecHandler(Target, ExecData, context); if (EFuncRet.Break == eRet) { break; } else if (EFuncRet.Error == eRet) { UnityEngine.Debug.LogWarning("HandleFuncExec is error, id : " + ExecData.Id.ToString()); } } if (iLoop == funcdataGroup.FuncDataList.Count) { return(-1); } return(iLoop); }
private FuncData FGetDamage(FuncData damage) { var arm = GetArmor(); var res = GetResist(); var resDamage = new Damage(this, damage.PlayerValue, damage.DamageValue.Phys > arm ? damage.DamageValue.Phys - arm : 0, damage.DamageValue.Magic > res ? damage.DamageValue.Magic - res : 0, damage.DamageValue.Pure); AddHp(-resDamage.Sum()); resDamage.NotifyPlayer(); return(new FuncData(this, dmgV: resDamage)); }
public override EFuncRet FuncExecHandler(HandleTarget Target, FuncData funcdata, FuncContext context) { try { bool newValue = funcdata.ParamIntList[0] != 0; GestureManager.Instance.SetDictation(newValue); } catch (Exception) { Debuger.LogWarning("error on Change Dictate Game Status by function "); } return(EFuncRet.Continue); }
public override EFuncRet FuncExecHandler(HandleTarget Target, FuncData funcdata, FuncContext context) { try { int id = funcdata.ParamIntList[0]; MessageDispatcher.Instance.BroadcastMessage(new MessageObject(ClientCustomMessageDefine.C_CHANGE_TO_WORLD_GAME, id)); } catch (Exception) { Debuger.LogWarning("error on Change To WorldGame by function "); } return(EFuncRet.Continue); }
public override EFuncRet FuncExecHandler(HandleTarget Target, FuncData funcdata, FuncContext context) { try { int id = funcdata.ParamIntList[0]; TerrainManager.Instance.DestroyNpcById(id); } catch (Exception) { Debuger.LogWarning("error on create npc by function "); } return(EFuncRet.Continue); }
public override EFuncRet FuncExecHandler(HandleTarget Target, FuncData funcdata, FuncContext context) { List<Ilife> target = Target.GetTarget((EFuncTarget) (funcdata.Target)); for (int i = 0; i < target.Count; ++i) { Ilife elem = target[i]; if (!(elem is PlayerCharacter)) { continue; } bool newValue = funcdata.ParamIntList[1] != 0; PlayerManager.Instance.GetCharCounterData().SetFlag(funcdata.ParamIntList[0], newValue); } return EFuncRet.Continue; }
private static void ProcessOperator(FuncData op, Expression e, Stack <FuncData> tmpStack) { while (tmpStack.Count > 0) //while operators with higher or equal precedence { FuncData fd = tmpStack.Peek(); if (fd.SpecialKind == SpecialOperandKind.NotSpecial && !fd.IsFunctionOrUnary && fd.Precedence >= op.Precedence) { e.Append(tmpStack.Pop().Func); } else { break; } } tmpStack.Push(op); }
public override EFuncRet FuncExecHandler(HandleTarget Target, FuncData funcdata, FuncContext context) { List <Ilife> target = Target.GetTarget((EFuncTarget)(funcdata.Target)); for (int i = 0; i < target.Count; ++i) { Ilife elem = target[i]; if (!(elem is PlayerCharacter)) { continue; } sbyte newValue = 0; OperationFunc.FuncOperatorValue((EFuncOperator)(funcdata.Oper), ref newValue, (sbyte)(funcdata.ParamIntList[1])); PlayerManager.Instance.GetCharCounterData().SetBit8Count(funcdata.ParamIntList[0], newValue); } return(EFuncRet.Continue); }
/// <summary> /// 给定函数的名字 返回修改Funcexpresstemp后的FuncString对象 连同变量一同替换 一步到位 /// </summary> /// <param name="funname">函数名</param> /// <returns>FuncString 或者 null</returns> public FuncString FindFuncInTDC(string funname) { FuncString fs = null; if (tdc.CheckName(funname)) { FuncData fd = (FuncData)tdc.GetData(funname).GetCalData(); FuncString funs = new FuncString(funname, fd.GetExpValue(), fd.GetParamers()); string funcexpress = ReplaceParamers(funs.GetFuncExpress(), funs.GetParamers()); if (funcexpress != null) { funs.SetFuncExpress(funcexpress); } fs = funs; } return(fs); }
public double FuncResult(string fs, TempDataCollection tdcl, params string[] nums) { double result = 0; if (fs != null) { PushToShow("有括号求值"); FuncCal fc = new FuncCal(); FuncData fd = (FuncData)tdc.GetData(fs).GetCalData(); FuncString funs = new FuncString(fs, fd.GetExpValue(), fd.GetParamers()); fc.SetFuncString(funs); fc.DealFuncstring(nums); result = fc.GetResult(); PushToShow("结果:" + fc.GetResult()); if (fc.IsWrong()) { PushToShow("出错了!" + fc.ErrorMessage()); } } return(result); }
public override EFuncRet FuncExecHandler(HandleTarget Target, FuncData funcdata, FuncContext context) { try { int id = funcdata.ParamIntList[0]; if (id > 9 && id < 15) { PlayerManager.Instance.GetCharCounterData().SetFlag(id, true); } else { Debuger.LogWarning("error on unlock stage"); } } catch (Exception) { Debuger.LogWarning("error on unlock stage "); } return(EFuncRet.Continue); }
public override EFuncRet FuncExecHandler(HandleTarget Target, FuncData funcdata, FuncContext context) { try { int id = funcdata.ParamIntList[0]; MessageDispatcher.Instance.BroadcastMessage(new MessageObject(ClientCustomMessageDefine.C_CHANGE_TO_NODE_GAME, id)); if (funcdata.ParamIntList.Count > 2) { WorldSceneDispatchController.Instance.SetExitFunId(funcdata.ParamIntList[1], funcdata.ParamIntList[2]); } else if (funcdata.ParamIntList.Count > 1) { WorldSceneDispatchController.Instance.SetExitFunId(funcdata.ParamIntList[1], 0); } } catch (Exception) { Debuger.LogWarning("error on Change To NodeGame by function "); } return(EFuncRet.Continue); }
private FuncData FEndTurn(FuncData data) { Regenerate(); Chosen = false; return(data); }
private FuncData FGetHeal(FuncData heal) { AddHp(heal.DoubleValue); return(heal); }
private FuncData FLevelUp(FuncData data) { Level++; return(data); }
private static void ProcessOperator(FuncData op, Expression e, Stack<FuncData> tmpStack) { while (tmpStack.Count>0) //while operators with higher or equal precedence { FuncData fd = tmpStack.Peek(); if (fd.SpecialKind == SpecialOperandKind.NotSpecial && !fd.IsFunctionOrUnary && fd.Precedence >= op.Precedence) e.Append(tmpStack.Pop().Func); else break; } tmpStack.Push(op); }
public abstract EFuncRet FuncExecHandler(HandleTarget Target, FuncData funcdata, FuncContext context);
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) { if (popupStyle == null) { popupStyle = new GUIStyle(GUI.skin.GetStyle("PaneOptions")); popupStyle.imagePosition = ImagePosition.ImageOnly; } label = EditorGUI.BeginProperty(position, label, property); position = EditorGUI.PrefixLabel(position, label); EditorGUI.BeginChangeCheck(); //property.serializedObject.Update(); SerializedProperty spIdentifier = property.FindPropertyRelative("m_Identifier"); // Calculate rect for configuration button Rect buttonRect = new Rect(position); buttonRect.yMin += popupStyle.margin.top; buttonRect.width = popupStyle.fixedHeight + popupStyle.margin.right; position.xMin = buttonRect.xMax + popupStyle.margin.right; property.serializedObject.ApplyModifiedProperties(); object obj = ObjectFinder.FindObject(this.fieldInfo, property); IEnumerable enumerable = obj as IEnumerable; ObjectIdentifier objectIdentifier = obj as ObjectIdentifier; if (enumerable != null) { int index = 0; int.TryParse(property.propertyPath.Last((c) => c != ']').ToString(), out index); foreach (var enumObj in enumerable) { if (index == 0) { objectIdentifier = enumObj as ObjectIdentifier; break; } index--; } } //ObjectIdentifier objectIdentifier = GetValue(GetParent(property), property.name) as ObjectIdentifier; // Store old indent level and set it to 0, the PrefixLabel takes care of it int indent = EditorGUI.indentLevel; EditorGUI.indentLevel = 0; //if (Event.current.commandName.Equals("ObjectSelectorUpdated")) //{ // UnityEngine.Object g = EditorGUIUtility.GetObjectPickerObject(); // Debug.Log(g); //} if (objectIdentifier != null) { List <CoreObject> coreObjects = new List <CoreObject>(); Type[] types = objectIdentifier.GetSupportedTypes(); if (types != null) { foreach (Type type in types) { UnityEngine.Object[] foundObjects = Resources.FindObjectsOfTypeAll(type); foreach (UnityEngine.Object foundObject in foundObjects) { CoreObject foundCoreObject = foundObject as CoreObject; if (foundCoreObject) { coreObjects.Add(foundCoreObject); } } } } coreObjects.Sort((first, second) => { return(first.Identifier.CompareTo(second.Identifier)); }); string[] names = new string[coreObjects.Count]; GenericMenu gm = new GenericMenu(); for (int i = 0; i < coreObjects.Count; i++) { names[i] = coreObjects[i].Identifier; FuncData funcData = new FuncData(); funcData.Property = spIdentifier; funcData.Value = names[i]; gm.AddItem(new GUIContent(names[i].Replace('.', '/')), false, OnItemChoosed, funcData); } if (GUI.Button(buttonRect, GUIContent.none, popupStyle)) { gm.DropDown(buttonRect); //EditorGUIUtility.ShowObjectPicker<CoreObject>(null, false, "", 0); } //spIdentifier.stringValue = EditorGUI.TextField(position, spIdentifier.stringValue); Event evt = Event.current; switch (evt.type) { case EventType.DragUpdated: case EventType.DragPerform: if (!position.Contains(evt.mousePosition)) { return; } if (DragAndDrop.objectReferences.Length != 1) { return; } CoreObject coreObject = DragAndDrop.objectReferences[0] as CoreObject; if (!coreObject) { return; } DragAndDrop.visualMode = DragAndDropVisualMode.Copy; if (evt.type == EventType.DragPerform) { DragAndDrop.AcceptDrag(); spIdentifier.stringValue = coreObject.Identifier; spIdentifier.serializedObject.ApplyModifiedProperties(); property.serializedObject.ApplyModifiedProperties(); } break; } EditorGUI.PropertyField(position, spIdentifier, GUIContent.none); } if (EditorGUI.EndChangeCheck()) { property.serializedObject.ApplyModifiedProperties(); } EditorGUI.indentLevel = indent; EditorGUI.EndProperty(); }
public override EFuncRet FuncExecHandler(HandleTarget Target, FuncData funcdata, FuncContext context) { AudioPlayer.Instance.PlayAudio(funcdata.ParamStringList[0], Vector3.zero, false); return(EFuncRet.Continue); }