Ejemplo n.º 1
0
 protected override void DumpMembers(LuaTextWriter output)
 {
     output.WriteKeyValue("Kind", Kind.ToString());
     output.WriteKeyValue("Name", Name);
     output.WriteList("Levels", Levels);
     base.DumpMembers(output);
 }
Ejemplo n.º 2
0
 protected override void DumpMembers(LuaTextWriter output)
 {
     output.WriteList("Definitions", Definitions);
     output.WriteList("Bonuses", Bonuses);
     output.WriteList("ProhibitedSpells", ProhibitedSpells);
     output.WriteList("Domains", Domains);
     output.WriteList("Abilities", Abilities);
     output.WriteList("ClassSkills", ClassSkills);
     output.WriteList("AddedSpellCasterLevels", AddedSpellCasterLevels);
     output.WriteList("SpellLists", SpellLists);
     if (WeaponBonusProficiencySelections.Any())
     {
         output.WriteObjectValue("WeaponBonusProficiencySelections", () =>
         {
             foreach (var selection in WeaponBonusProficiencySelections)
             {
                 output.WriteStartObject();
                 foreach (var option in selection)
                 {
                     output.WriteValue(option);
                     output.Write(", ");
                 }
                 output.WriteLine();
                 output.WriteEndObject();
             }
         });
     }
     base.DumpMembers(output);
 }
Ejemplo n.º 3
0
 protected override void DumpMembers(LuaTextWriter output)
 {
     output.WriteProperty("Name", Name);
     output.WriteProperty("FormatString", FormatString);
     output.WriteProperty("Arguments", Arguments);
     base.DumpMembers(output);
 }
Ejemplo n.º 4
0
        protected override void DumpMembers(LuaTextWriter output)
        {
            if (Alignment != null)
            {
                output.WriteKeyValue("Alignment", Alignment);
            }

            if (Descriptor != null)
            {
                output.WriteKeyValue("Descriptor", Descriptor);
            }

            if (School != null)
            {
                output.WriteKeyValue("School", School);
            }

            if (SubSchool != null)
            {
                output.WriteKeyValue("SubSchool", SubSchool);
            }

            if (Names.Any())
            {
                output.WriteObjectValue("Names", () =>
                {
                    foreach (var name in Names)
                    {
                        output.WriteValue(name);
                        output.Write(",\n");
                    }
                });
            }
            base.DumpMembers(output);
        }
Ejemplo n.º 5
0
        protected virtual void DumpMembers(LuaTextWriter output)
        {
            var props = new Dictionary <string, object?>(_properties);

            foreach (var key in PropertyOrder)
            {
                if (props.Remove(key, out var value))
                {
                    output.WriteProperty(key, value);
                }
            }

            foreach (var(key, value) in props.OrderBy(GetOrder).ThenBy(p => p.Key))
            {
                output.WriteProperty(key, value);
            }

            if (Clear.Any())
            {
                output.WriteObjectValue("Clear", () =>
                {
                    foreach (var(k, v) in Clear)
                    {
                        output.WriteKey(k);
                        output.Write("=");
                        output.WriteValue((object?)v);
                        output.Write(",\n");
                    }
                });
Ejemplo n.º 6
0
 protected override void DumpMembers(LuaTextWriter output)
 {
     output.WriteKeyValue("Level", Level);
     output.WriteList("SpellsPerDay", SpellsPerDay.Cast <object>());
     output.WriteList("SpellsKnown", SpellsKnown.Cast <object>());
     base.DumpMembers(output);
 }
Ejemplo n.º 7
0
 protected override void DumpMembers(LuaTextWriter output)
 {
     output.WriteProperty("Category", Category);
     output.WriteProperty("Nature", Nature);
     output.WriteProperty("Names", Names);
     output.WriteProperty("Types", Types);
     base.DumpMembers(output);
 }
 protected override void DumpMembers(LuaTextWriter output)
 {
     foreach (var(category, weapons) in Changes)
     {
         output.WriteProperty(category, weapons);
     }
     base.DumpMembers(output);
 }
Ejemplo n.º 9
0
 protected override void DumpMembers(LuaTextWriter output)
 {
     output.WriteProperty("SourceLong", SourceLong);
     output.WriteProperty("SourceShort", SourceShort);
     output.WriteProperty("SourceWeb", SourceWeb);
     output.WriteProperty("SourceDate", SourceDate);
     base.DumpMembers(output);
 }
Ejemplo n.º 10
0
 protected override void DumpMembers(LuaTextWriter output)
 {
     output.WriteProperty(nameof(CriticalHitMultiplier), CriticalHitMultiplier);
     output.WriteProperty(nameof(CriticalHitRange), CriticalHitRange);
     output.WriteProperty(nameof(Damage), Damage);
     output.WriteProperty(nameof(Types), Types);
     output.WriteProperty(nameof(EquipmentModifiers), EquipmentModifiers);
     base.DumpMembers(output);
 }
Ejemplo n.º 11
0
 protected override void DumpMembers(LuaTextWriter output)
 {
     output.WriteProperty(nameof(Alignments), Alignments);
     output.WriteProperty(nameof(Descriptors), Descriptors);
     output.WriteProperty(nameof(Schools), Schools);
     output.WriteProperty(nameof(SubSchools), SubSchools);
     output.WriteProperty(nameof(Names), Names);
     base.DumpMembers(output);
 }
Ejemplo n.º 12
0
 protected override void DumpMembers(LuaTextWriter output)
 {
     output.Write("Selector=");
     output.WriteStartFunction("language");
     output.Write($"return {string.Join(" or ", Selectors)}\n");
     output.WriteEndFunction();
     output.Write(",\n");
     base.DumpMembers(output);
 }
Ejemplo n.º 13
0
 protected override void DumpMembers(LuaTextWriter output)
 {
     output.WriteObjectValue("Choice", () =>
     {
         output.WriteProperty("Kind", ChoiceKind);
         output.WriteProperty("Value", ChoiceValue);
     });
     output.WriteProperty("Levels", Levels);
     base.DumpMembers(output);
 }
Ejemplo n.º 14
0
 protected override void DumpMembers(LuaTextWriter output)
 {
     output.WriteProperty("Type", Type);
     output.Write("IsValidFollower=");
     output.WriteStartFunction("follower");
     output.Write($"return {string.Join(" or ", FollowerConditions)}\n");
     output.WriteEndFunction();
     output.Write(",\n");
     output.WriteProperty("FollowerLevelAdjustment", FollowerLevelAdjustment);
     base.DumpMembers(output);
 }
Ejemplo n.º 15
0
 protected override void DumpMembers(LuaTextWriter output)
 {
     output.WriteProperty("Name", Name);
     output.WriteProperty("Types", Types);
     output.WriteProperty("Count", Count);
     output.WriteProperty("Damage", Damage);
     if (SpecialDescription != null)
     {
         output.WriteProperty("SpecialDescription", SpecialDescription);
     }
     base.DumpMembers(output);
 }
Ejemplo n.º 16
0
 protected override void DumpMembers(LuaTextWriter output)
 {
     output.WriteKeyValue("Category", Category);
     output.WriteList("Variables", Variables);
     output.WriteKeyValue("Formula", Formula);
     if (Type != null)
     {
         output.Write("Type=");
         Type.Dump(output);
         output.Write(",\n");
     }
     base.DumpMembers(output);
 }
Ejemplo n.º 17
0
        public void Dump(LuaTextWriter output)
        {
            output.Write("SetSource(");
            output.WriteStartObject();

            output.WriteKeyValue("SourceLong", SourceLong);
            output.WriteKeyValue("SourceShort", SourceShort);
            output.WriteKeyValue("SourceWeb", SourceWeb);
            output.WriteKeyValue("SourceDate", SourceDate);

            output.WriteEndObject();
            output.Write(")\n");
        }
Ejemplo n.º 18
0
 protected override void DumpMembers(LuaTextWriter output)
 {
     output.WriteKeyValue("Category", Category);
     output.WriteKeyValue("Nature", Nature);
     if (Name != null)
     {
         output.WriteKeyValue("Name", Name);
     }
     else if (Type != null)
     {
         output.WriteKeyValue("Type", Type);
     }
     base.DumpMembers(output);
 }
Ejemplo n.º 19
0
 protected override void DumpMembers(LuaTextWriter output)
 {
     output.WriteProperty("Level", Level);
     if (DoNotAddHitDie)
     {
         output.WriteProperty("DoNotAddHitDie", DoNotAddHitDie);
     }
     if (DoNotAddSkillPoints)
     {
         output.WriteProperty("DoNotAddSkillPoints", DoNotAddSkillPoints);
     }
     output.WriteProperty("SpellsPerDay", SpellsPerDay);
     output.WriteProperty("SpellsKnown", SpellsKnown);
     base.DumpMembers(output);
 }
Ejemplo n.º 20
0
        protected override void DumpMembers(LuaTextWriter output)
        {
            output.WriteKeyValue("Name", Name);
            if (SpellStat != null)
            {
                output.WriteKeyValue("SpellStat", SpellStat);
            }

            if (SpellListChoiceCount.HasValue)
            {
                Debug.Assert(SpellListChoices != null);
                output.WriteKeyValue("SpellListChoiceCount", SpellListChoiceCount.Value.ToString());
                output.WriteList("SpellListChoices", SpellListChoices);
            }
            base.DumpMembers(output);
        }
 protected override void DumpMembers(LuaTextWriter output)
 {
     if (Any)
     {
         output.WriteProperty("Any", Any);
     }
     if (CasterType != null)
     {
         output.WriteProperty("Type", CasterType);
     }
     if (ClassNames != null)
     {
         output.WriteProperty("ClassNames", ClassNames);
     }
     base.DumpMembers(output);
 }
Ejemplo n.º 22
0
        protected override void DumpMembers(LuaTextWriter output)
        {
            output.WriteProperty("Name", Name);
            output.WriteProperty("SpellBookName", SpellBookName);
            output.WriteProperty("Times", Times);
            output.WriteProperty("TimeUnit", TimeUnit);
            if (DC != null)
            {
                output.WriteProperty("DC", DC);
            }

            if (CasterLevel != null)
            {
                output.WriteProperty("CasterLevel", CasterLevel);
            }
            base.DumpMembers(output);
        }
Ejemplo n.º 23
0
 protected override void DumpMembers(LuaTextWriter output)
 {
     if (Name != null)
     {
         output.WriteKeyValue("Name", Name);
     }
     else if (Type != null)
     {
         output.WriteKeyValue("Type", Type);
         if (Invert)
         {
             output.WriteKeyValue("Invert", Invert);
         }
     }
     else if (All)
     {
         output.WriteKeyValue("All", All);
     }
     base.DumpMembers(output);
 }
Ejemplo n.º 24
0
 protected override void DumpMembers(LuaTextWriter output)
 {
     if (Ability != null)
     {
         output.WriteProperty("Ability", Ability);
     }
     else if (Class)
     {
         output.WriteProperty("Class", true);
     }
     else if (Race)
     {
         output.WriteProperty("Race", true);
     }
     else if (Skill)
     {
         output.WriteProperty("Skill", true);
     }
     output.WriteProperty("Names", Names);
     base.DumpMembers(output);
 }
Ejemplo n.º 25
0
 public void Dump(LuaTextWriter output)
 {
     output.Write("Formula(");
     output.WriteValue(Value.AsSpan());
     output.Write(")");
 }
Ejemplo n.º 26
0
 protected override void DumpMembers(LuaTextWriter output)
 {
     output.WriteList("Names", Names);
     base.DumpMembers(output);
 }
Ejemplo n.º 27
0
 protected override void DumpMembers(LuaTextWriter output)
 {
     base.DumpMembers(output);
     output.WriteList("Conditions", Conditions);
 }
 protected override void DumpMembers(LuaTextWriter output)
 {
     output.WriteProperty(nameof(Key), Key);
     output.WriteProperty(nameof(Parameters), Parameters);
     base.DumpMembers(output);
 }
Ejemplo n.º 29
0
        static void Main(string[] args)
        {
            var lstFile = args[0];
            var luaFile = args[1];

            var lines = ReadTsv(lstFile).ToList();

            Console.WriteLine($"Converting File {lstFile} -> {luaFile}");
            var dir = Path.GetDirectoryName(luaFile);

            Directory.CreateDirectory(dir);
            using (var outputStream = new FileStream(luaFile, FileMode.Create, FileAccess.Write))
                using (var output = new StreamWriter(outputStream))
                {
                    var repoDir = Repository.Discover(lstFile);
                    if (string.IsNullOrEmpty(repoDir))
                    {
                        throw new ArgumentException("LST file must be in a git repo.");
                    }
                    var repo         = new Repository(repoDir);
                    var repoUrl      = repo.Network.Remotes["upstream"]?.Url ?? repo.Network.Remotes["origin"]?.Url;
                    var sha          = repo.Head.Tip.Sha;
                    var relativePath = Path.GetRelativePath(repo.Info.WorkingDirectory, lstFile);
                    output.WriteLine($"-- Converted From LST file {relativePath}");
                    output.WriteLine($"-- From repository {repoUrl} at commit {sha}");
                    var             luaWriter       = new LuaTextWriter(output);
                    string?         state           = null;
                    ClassDefinition?classDefinition = null;
                    foreach (var line in lines)
                    {
                        var firstField = line.Fields.First();
                        switch (state)
                        {
                        case "classStart":
                            Debug.Assert(classDefinition != null);

                            if (!firstField.StartsWith("CLASS:"))
                            {
                                state = "class";
                                goto case "class";
                            }
                            classDefinition.AddLine(line);

                            break;

                        case "class":
                            Debug.Assert(classDefinition != null);

                            if (firstField.StartsWith("CLASS:"))
                            {
                                classDefinition.Dump(luaWriter);
                                classDefinition = null;
                                state           = null;
                                goto default;
                            }

                            classDefinition.AddLine(line);

                            break;

                        default:
                            var firstValue = line.Fields.First();
                            if (firstValue.StartsWith("CLASS:"))
                            {
                                var name = firstValue.SplitTuple(':').right;
                                state           = "classStart";
                                classDefinition = new ClassDefinition(name.Value);
                                classDefinition.AddLine(line);
                                break;
                            }

                            if (firstValue.StartsWith("SOURCE"))
                            {
                                SourceDefinition.Parse(line.Fields).Dump(luaWriter);
                                break;
                            }

                            throw new NotSupportedException($"State: {state}, First Field: {line.Fields.First().Value}");
                        }
                    }
                }

            Console.WriteLine("Done.");
        }
Ejemplo n.º 30
0
 protected override void DumpMembers(LuaTextWriter output)
 {
     output.WriteProperty(nameof(Names), Names);
     base.DumpMembers(output);
 }