Exemplo n.º 1
0
        /// <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());
        }