Skip to content

Maid Tables#73

Merged
Zintixx merged 1 commit into
MS2Community:masterfrom
Zintixx:maid
May 29, 2026
Merged

Maid Tables#73
Zintixx merged 1 commit into
MS2Community:masterfrom
Zintixx:maid

Conversation

@Zintixx

@Zintixx Zintixx commented May 29, 2026

Copy link
Copy Markdown

Summary by CodeRabbit

  • New Features

    • Added support for parsing maid-related data including grades, recipes, salary, properties, and experience information.
  • Chores

    • Bumped package version to 2.4.16.
  • Tests

    • Added test coverage for new maid data parsing functionality.

Review Change Stack

@coderabbitai

coderabbitai Bot commented May 29, 2026

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

This 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 TableParser and ServerTableParser, and validating with enumeration tests. Package version increments to 2.4.16.

Changes

Maid Table Parsing Support

Layer / File(s) Summary
Client-side maid XML data contracts
Maple2.File.Parser/Xml/Table/MaidExp.cs, Maple2.File.Parser/Xml/Table/MaidProperty.cs, Maple2.File.Parser/Xml/Table/MaidRecipe.cs, Maple2.File.Parser/Xml/Table/MaidRecipeGroup.cs, Maple2.File.Parser/Xml/Table/MaidSalary.cs
Five new XML root and entry type pairs (MaidExpRoot/MaidExp, MaidPropertyRoot/MaidProperty, MaidRecipeRoot/MaidRecipe, MaidRecipeGroupRoot/MaidRecipeGroup, MaidSalaryRoot/MaidSalary) with [XmlElement] and [XmlAttribute] mappings for table deserialization.
Server-side maid XML data contracts
Maple2.File.Parser/Xml/Table/Server/MaidGradeInfo.cs, Maple2.File.Parser/Xml/Table/Server/MaidRecipeSvr.cs
Two new XML root and entry type pairs (MaidGradeInfoRoot/MaidGradeInfo, MaidRecipeRoot/MaidRecipe) with rate/statistic fields and [XmlAttribute] mappings for server table deserialization.
TableParser maid table integration
Maple2.File.Parser/TableParser.cs
Adds five XmlSerializer fields initialized in the constructor and five public ParseMaid*() enumerable methods that load localized XML, sanitize, deserialize into root types, and yield (key, entry) tuples by identifier.
ServerTableParser maid table integration
Maple2.File.Parser/ServerTableParser.cs
Adds using aliases, two XmlSerializer fields initialized in the constructor, and two public parsing methods (ParseMaidGradeInfo(), ParseMaidRecipe()) that deserialize server-side XML and yield (grade/id, entry) tuples.
Maid parser test coverage
Maple2.File.Tests/ServerTableParserTest.cs, Maple2.File.Tests/TableParserTest.cs
Adds TestMaidGradeInfo(), TestMaidRecipe() to ServerTableParserTest and TestMaid() to TableParserTest, each enumerating parser results to verify XML deserialization succeeds.
Package version update
Maple2.File.Parser/Maple2.File.Parser.csproj
Increments PackageVersion from 2.4.15 to 2.4.16.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes


Suggested reviewers

  • AngeloTadeucci

Poem

🐰 Maids now parsed with careful grace,
Tables organized in their place,
XML schemas bloom so bright,
Parsers weave them tight—
Version bumps at perfect pace!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Maid Tables' directly corresponds to the main change: adding comprehensive support for maid-related XML table parsing across multiple files.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

📥 Commits

Reviewing files that changed from the base of the PR and between 3d068a8 and b2883fd.

📒 Files selected for processing (12)
  • Maple2.File.Parser/Maple2.File.Parser.csproj
  • Maple2.File.Parser/ServerTableParser.cs
  • Maple2.File.Parser/TableParser.cs
  • Maple2.File.Parser/Xml/Table/MaidExp.cs
  • Maple2.File.Parser/Xml/Table/MaidProperty.cs
  • Maple2.File.Parser/Xml/Table/MaidRecipe.cs
  • Maple2.File.Parser/Xml/Table/MaidRecipeGroup.cs
  • Maple2.File.Parser/Xml/Table/MaidSalary.cs
  • Maple2.File.Parser/Xml/Table/Server/MaidGradeInfo.cs
  • Maple2.File.Parser/Xml/Table/Server/MaidRecipeSvr.cs
  • Maple2.File.Tests/ServerTableParserTest.cs
  • Maple2.File.Tests/TableParserTest.cs

Comment thread Maple2.File.Parser/Xml/Table/MaidRecipeGroup.cs
Comment thread Maple2.File.Parser/Xml/Table/MaidSalary.cs
Comment thread Maple2.File.Parser/Xml/Table/MaidSalary.cs
@Zintixx Zintixx merged commit d97ec03 into MS2Community:master May 29, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant