/// <summary> /// /// </summary> /// <returns></returns> public override string ToString() { var T = " "; var cancelChannel = CancelChannel.ToString().ToLower(); var cancelCasting = CancelCasting.ToString().ToLower(); var isUseIncombat = IsUseIncombat.ToString().ToLower(); var isUsableCheck = IsUsableCheck.ToString().ToLower(); var isMovingCheck = IsMovingCheck.ToString().ToLower(); var name = Name.Replace("\"", @"\"""); // targets var targetList = string.Join($",\n{T + T + T}", TargetList.OrderBy(n => n).Select(n => $"{{ Target = \"{n.ToString().ToLower()}\" }}")); // код var lua = string.IsNullOrWhiteSpace(Lua) ? "return false;" : Lua; var funcContent = string.Join($"\n{T + T + T}", lua.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries)); var builder = new StringBuilder(); builder.AppendLine($" {{ SpellId = {SpellID,6}, Name = \"{name}\","); builder.AppendLine($" IsMovingCheck = \"{isMovingCheck}\","); builder.AppendLine($" RecastDelay = {RecastDelay},"); builder.AppendLine($" DropChanel = {cancelChannel},"); builder.AppendLine($" CancelCasting = {cancelCasting},"); builder.AppendLine($" IsCheckInCombat = {isUseIncombat},"); builder.AppendLine($" IsUsableCheck = {isUsableCheck},"); builder.AppendLine($" TargetList = {{\n{T + T + T}{targetList}\n{T + T}}},"); builder.AppendLine($" Func = function(ability, targetInfo, target)\n{T + T + T}{funcContent}\n{T + T}end"); builder.Append(" }"); return(builder.ToString()); }