/// <summary> /// 测试事件 /// </summary> /// <param name="key"></param> public static void CallEvent(int key = 1) { EventHelper.CallEvent("Debug", key, 10003); }
/// <summary> /// 结束 /// </summary> /// <param name="EventID"></param> /// <param name="TargetActorID"></param> public void End(string EventID, int TargetActorID) { foreach (var i in Effects) { switch (i.Type) { case Effect.EffectTarget.Item: if (i.Reduce) { int itemKey = -1; foreach (var item in DateFile.instance.actorItemsDate[i.ValueB == 0 ? DateFile.instance.MianActorID() : TargetActorID]) { if (DateFile.instance.GetItemDate(item.Key, 999) == i.ValueA.ToString()) { itemKey = item.Key; break; } } if (itemKey != -1) { DateFile.instance.LoseItem(i.ValueB == 0 ? DateFile.instance.MianActorID() : TargetActorID, itemKey, 1, true, loseType: 0); } } else { DateFile.instance.GetItem(i.ValueB == 0 ? DateFile.instance.MianActorID() : TargetActorID, i.ValueA, 1, true, 0); } break; case Effect.EffectTarget.Time: UIDate.instance.ChangeTime(false, i.Reduce ? i.ValueA : -i.ValueA); break; case Effect.EffectTarget.MoveToAround: ActorMoveToAround(i.ValueA == 0 ? DateFile.instance.mianActorId : TargetActorID); break; case Effect.EffectTarget.Favor: DateFile.instance.ChangeFavor(TargetActorID, i.Reduce ? -i.ValueA : i.ValueA); break; case Effect.EffectTarget.TaiwuResource: case Effect.EffectTarget.TargetResource: var iActorID = i.Type == Effect.EffectTarget.TaiwuResource ? DateFile.instance.mianActorId : TargetActorID; UIDate.instance.ChangeResource(iActorID, i.ValueA, i.Reduce ? -i.ValueB : i.ValueB); break; default: break; } } int id = 0; var isNum = int.TryParse(ToID, out id); var result = CallEnd?.Call(EventID, TargetActorID); if (isNum && id >= 0) { if (id == 0) { ui_MessageWindow.Instance.Hide(); } else if (id > 0) { EventHelper.CallEvent(id, TargetActorID); } return; } else if (!isNum) { if (string.IsNullOrWhiteSpace(ToID)) { ui_MessageWindow.Instance.Hide(); } else { EventHelper.CallEvent(ToID, TargetActorID); } return; } var returnType = CallEnd?.GetMethod().ReturnType; if (returnType == null || returnType == typeof(void)) { ui_MessageWindow.Instance.Hide(); } else if (returnType == typeof(string) && !string.IsNullOrWhiteSpace((string)result)) { if (int.TryParse((string)result, out id)) { if (id > 0) { EventHelper.CallEvent(id, TargetActorID); } else if (id > -100) { ui_MessageWindow.Instance.Hide(); } } else { EventHelper.CallEvent((string)result, TargetActorID); } } else if (returnType == typeof(int)) { id = (int)result; if (id > 0) { EventHelper.CallEvent(id, TargetActorID); } else if (id > -100) { ui_MessageWindow.Instance.Hide(); } } }