Maid Tables#73
Conversation
📝 WalkthroughWalkthroughThis PR adds maid table parsing support to the Maple2 file parser by introducing XML data contracts for five client-side tables and two server-side tables, integrating serializer instances into both ChangesMaid Table Parsing Support
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@Maple2.File.Parser/Xml/Table/MaidRecipeGroup.cs`:
- Line 9: Rename the public field in MaidRecipeGroup from `group` to `Group` to
follow PascalCase; keep the XmlElement attribute but specify the element name
explicitly (e.g., [XmlElement("group")]) so XML deserialization still maps
correctly. Update all usages and accessors that referenced `group` (including
the accessor in TableParser that currently reads `group`) to use `Group`
instead. Ensure any serialization/deserialization or reflection-based code is
updated to reference the new property name.
In `@Maple2.File.Parser/Xml/Table/MaidSalary.cs`:
- Line 12: Rename the public field `id` in class `MaidSalary` to `Id`
(PascalCase) and update the Xml attribute to explicitly map the lowercase XML
name (e.g., apply XmlAttribute("id")) so XML serialization keeps the same
element/attribute name; also update any accessors/usages in `TableParser` that
reference `MaidSalary.id` to use `MaidSalary.Id` (update the
accessor/property/method name accordingly).
- Line 8: The public field in MaidSalary is named `key` and should be
PascalCase; rename the field to `Key` and preserve XML deserialization by
keeping the XmlElement attribute as [XmlElement("key")] on the `Key` field; then
update all usages/accessors (e.g., in TableParser class where `MaidSalary.key`
is referenced) to use `MaidSalary.Key` to match the new name.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: da35b704-1158-43c2-87fc-1a806a75abfa
📒 Files selected for processing (12)
Maple2.File.Parser/Maple2.File.Parser.csprojMaple2.File.Parser/ServerTableParser.csMaple2.File.Parser/TableParser.csMaple2.File.Parser/Xml/Table/MaidExp.csMaple2.File.Parser/Xml/Table/MaidProperty.csMaple2.File.Parser/Xml/Table/MaidRecipe.csMaple2.File.Parser/Xml/Table/MaidRecipeGroup.csMaple2.File.Parser/Xml/Table/MaidSalary.csMaple2.File.Parser/Xml/Table/Server/MaidGradeInfo.csMaple2.File.Parser/Xml/Table/Server/MaidRecipeSvr.csMaple2.File.Tests/ServerTableParserTest.csMaple2.File.Tests/TableParserTest.cs
Summary by CodeRabbit
New Features
Chores
Tests