Skip to content

Commit 5bfaa51

Browse files
Parse Ugc Housing Point Reward (#44)
* Parse Ugc Housing Point Reward * Update UgcHousingPointReward.cs * Update Maple2.File.Parser/Xml/Table/UgcHousingPointReward.cs Co-authored-by: Zin <62830952+Zintixx@users.noreply.github.com> --------- Co-authored-by: Zin <62830952+Zintixx@users.noreply.github.com>
1 parent 5b94c22 commit 5bfaa51

File tree

4 files changed

+39
-1
lines changed

4 files changed

+39
-1
lines changed

Maple2.File.Parser/Maple2.File.Parser.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
<PackageTags>MapleStory2, File, Parser, m2d, xml</PackageTags>
1414
<!-- Use following lines to write the generated files to disk. -->
1515
<EmitCompilerGeneratedFiles Condition=" '$(Configuration)' == 'Debug' ">true</EmitCompilerGeneratedFiles>
16-
<PackageVersion>2.2.2</PackageVersion>
16+
<PackageVersion>2.2.3</PackageVersion>
1717
<TargetFramework>net8.0</TargetFramework>
1818
<PackageReadmeFile>README.md</PackageReadmeFile>
1919
<ImplicitUsings>enable</ImplicitUsings>

Maple2.File.Parser/TableParser.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ public class TableParser {
7171
private readonly XmlSerializer adventureLevelRewardSerializer;
7272
private readonly XmlSerializer ugcDesignSerializer;
7373
private readonly XmlSerializer masteryUgcHousingSerializer;
74+
private readonly XmlSerializer ugcHousingPointRewardSerializer;
7475
private readonly XmlSerializer bannerSerializer;
7576
private readonly XmlSerializer nameTagSymbolSerializer;
7677
private readonly XmlSerializer commonExpSerializer;
@@ -156,6 +157,7 @@ public TableParser(M2dReader xmlReader) {
156157
adventureLevelRewardSerializer = new XmlSerializer(typeof(AdventureLevelRewardRoot));
157158
ugcDesignSerializer = new XmlSerializer(typeof(UgcDesignRoot));
158159
masteryUgcHousingSerializer = new XmlSerializer(typeof(MasteryUgcHousingRoot));
160+
ugcHousingPointRewardSerializer = new XmlSerializer(typeof(UgcHousingPointRewardRoot));
159161
bannerSerializer = new XmlSerializer(typeof(BannerRoot));
160162
nameTagSymbolSerializer = new XmlSerializer(typeof(NameTagSymbolRoot));
161163
commonExpSerializer = new XmlSerializer(typeof(CommonExpRoot));
@@ -1019,6 +1021,17 @@ public IEnumerable<JobTable> ParseJobTable() {
10191021
}
10201022
}
10211023

1024+
public IEnumerable<(int Id, UgcHousingPointReward)> ParseUgcHousingPointReward() {
1025+
string xml = Sanitizer.RemoveEmpty(xmlReader.GetString(xmlReader.GetEntry("table/ugchousingpointreward.xml")));
1026+
var reader = XmlReader.Create(new StringReader(xml));
1027+
var data = ugcHousingPointRewardSerializer.Deserialize(reader) as UgcHousingPointRewardRoot;
1028+
Debug.Assert(data != null);
1029+
1030+
foreach (UgcHousingPointReward entry in data.Entries) {
1031+
yield return (entry.housingPoint, entry);
1032+
}
1033+
}
1034+
10221035
public IEnumerable<(int Id, Banner Banner)> ParseBanner() {
10231036
string xml = Sanitizer.RemoveEmpty(xmlReader.GetString(xmlReader.GetEntry("table/na/banner.xml")));
10241037
var reader = XmlReader.Create(new StringReader(xml));
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
using System.Xml.Serialization;
2+
3+
namespace Maple2.File.Parser.Xml.Table;
4+
5+
// ./data/xml/table/ugchousingpointreward.xml
6+
[XmlRoot("ms2")]
7+
public partial class UgcHousingPointRewardRoot {
8+
[XmlElement("v")] public List<UgcHousingPointReward> Entries;
9+
}
10+
11+
public partial class UgcHousingPointReward {
12+
[XmlAttribute] public int housingPoint;
13+
[XmlAttribute] public int individualDropBoxId;
14+
[XmlAttribute] public string icon = string.Empty;
15+
[XmlAttribute] public string stringKey = string.Empty;
16+
}

Maple2.File.Tests/TableParserTest.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -606,6 +606,15 @@ public void TestMasteryUgcHousing() {
606606
}
607607
}
608608

609+
[TestMethod]
610+
public void TestUgcHousingPointReward() {
611+
var parser = new TableParser(TestUtils.XmlReader);
612+
613+
foreach ((_, _) in parser.ParseUgcHousingPointReward()) {
614+
continue;
615+
}
616+
}
617+
609618
[TestMethod]
610619
public void TestBanner() {
611620
var parser = new TableParser(TestUtils.XmlReader);

0 commit comments

Comments
 (0)