Magic and Mythies fixes:

- add fake missions for unlock fishing and mythie grow up
- add games to store
This commit is contained in:
Robert Paciorek 2023-12-09 21:23:45 +00:00 committed by Spirtix
parent 47e1bfb065
commit e5570f7c91
7 changed files with 225 additions and 3 deletions

View File

@ -0,0 +1,12 @@
<?xml version='1.0' encoding='utf-8'?>
<DefaultMissions>
<!-- list of default mission for most versions (2.9, 3.12, 3.31) -->
<Active>
<id>1750</id>
<id>2298</id>
<id>1044</id>
<id>1074</id>
</Active>
<Upcoming>
</Upcoming>
</DefaultMissions>

View File

@ -2,7 +2,7 @@
<Missions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Mission xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<I>1000</I> <!-- fake, completed mission for unlock fishing in old SoD clients -->
<N>Quest 1</N>
<N>Unlock Fishing</N>
<G>3</G>
<S></S>
<A>false</A>
@ -27,7 +27,7 @@
<Repeat>0</Repeat>
<RuleItems>
<Type>1</Type>
<MissionID>999</MissionID>
<MissionID>1000</MissionID>
<ID>1000</ID>
<Complete>1</Complete>
</RuleItems>
@ -125774,4 +125774,186 @@
</AR>
<RPT>false</RPT>
</Mission>
<Mission xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<I>1750</I> <!-- fake, completed mission for unlock fishing in Magic and Mythies -->
<N>Unlock Fishing</N>
<G>3</G>
<S></S>
<A>false</A>
<C>1</C>
<MR>
<Prerequisites>
<Type>2</Type>
<Value>False</Value>
<Quantity>0</Quantity>
<ClientRule>false</ClientRule>
</Prerequisites>
<Prerequisites>
<Type>1</Type>
<Value>False</Value>
<Quantity>0</Quantity>
<ClientRule>false</ClientRule>
</Prerequisites>
<Criteria>
<Type>all</Type>
<Ordered>true</Ordered>
<Min>1</Min>
<Repeat>0</Repeat>
<RuleItems>
<Type>1</Type>
<MissionID>1750</MissionID>
<ID>1000</ID>
<Complete>1</Complete>
</RuleItems>
</Criteria>
</MR>
<V>1</V>
<AID>0</AID>
<AAID>0</AAID>
<Task>
<I>1000</I>
<N>Unlock Fishing</N>
<S></S>
<C>1</C>
<F>false</F>
</Task>
<RPT>false</RPT>
</Mission>
<Mission xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<I>2298</I> <!-- fake, completed mission for unlock manna fishing in Magic and Mythies -->
<N>Unlock Fishing</N>
<G>3</G>
<S></S>
<A>false</A>
<C>1</C>
<MR>
<Prerequisites>
<Type>2</Type>
<Value>False</Value>
<Quantity>0</Quantity>
<ClientRule>false</ClientRule>
</Prerequisites>
<Prerequisites>
<Type>1</Type>
<Value>False</Value>
<Quantity>0</Quantity>
<ClientRule>false</ClientRule>
</Prerequisites>
<Criteria>
<Type>all</Type>
<Ordered>true</Ordered>
<Min>1</Min>
<Repeat>0</Repeat>
<RuleItems>
<Type>1</Type>
<MissionID>2298</MissionID>
<ID>1000</ID>
<Complete>1</Complete>
</RuleItems>
</Criteria>
</MR>
<V>1</V>
<AID>0</AID>
<AAID>0</AAID>
<Task>
<I>1000</I>
<N>Unlock Fishing</N>
<S></S>
<C>1</C>
<F>false</F>
</Task>
<RPT>false</RPT>
</Mission>
<Mission xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<I>11044</I> <!-- fake, not-completed mission for unlock mythie grow up (baby -> teen) in Magic and Mythies -->
<!-- must be send to client as 1044, due to entry in MissionManagerDO -> _PetStageQuestData required "baby" state for dragon doing this mission -->
<N>Unlock Grow Up</N>
<G>3</G>
<S></S>
<A>false</A>
<C>0</C>
<MR>
<Prerequisites>
<Type>1</Type>
<Value>False</Value>
<Quantity>0</Quantity>
<ClientRule>false</ClientRule>
</Prerequisites>
<Prerequisites>
<Type>4</Type>
<Value>8,5</Value>
<Quantity>0</Quantity>
<ClientRule>true</ClientRule>
</Prerequisites>
<Criteria>
<Type>all</Type>
<Ordered>true</Ordered>
<Min>1</Min>
<Repeat>1</Repeat>
<RuleItems>
<Type>1</Type>
<MissionID>1044</MissionID>
<ID>11044</ID>
<Complete>0</Complete>
</RuleItems>
</Criteria>
</MR>
<V>1</V>
<AID>0</AID>
<AAID>0</AAID>
<Task>
<I>11044</I>
<N>Unlock Grow Up</N>
<S>&lt;Data>&lt;Objective>&lt;Pair>&lt;Key>Name&lt;/Key>&lt;Value>GrowDragon&lt;/Value>&lt;/Pair>&lt;/Objective>&lt;Type>Action&lt;/Type>&lt;/Data></S>
<C>0</C>
<F>false</F>
</Task>
<RPT>true</RPT>
</Mission>
<Mission xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<I>11074</I> <!-- fake, not-completed mission for unlock mythie grow up (teen -> adult) in Magic and Mythies -->
<!-- must be send to client as 1044, due to entry in MissionManagerDO -> _PetStageQuestData required "teen" state for dragon doing this mission -->
<N>Unlock Grow Up</N>
<G>3</G>
<S></S>
<A>false</A>
<C>0</C>
<MR>
<Prerequisites>
<Type>1</Type>
<Value>False</Value>
<Quantity>0</Quantity>
<ClientRule>false</ClientRule>
</Prerequisites>
<Prerequisites>
<Type>4</Type>
<Value>8,10</Value>
<Quantity>0</Quantity>
<ClientRule>true</ClientRule>
</Prerequisites>
<Criteria>
<Type>all</Type>
<Ordered>true</Ordered>
<Min>1</Min>
<Repeat>1</Repeat>
<RuleItems>
<Type>1</Type>
<MissionID>1074</MissionID>
<ID>11074</ID>
<Complete>0</Complete>
</RuleItems>
</Criteria>
</MR>
<V>1</V>
<AID>0</AID>
<AAID>0</AAID>
<Task>
<I>11074</I>
<N>Unlock Grow Up</N>
<S>&lt;Data>&lt;Objective>&lt;Pair>&lt;Key>Name&lt;/Key>&lt;Value>GrowDragon&lt;/Value>&lt;/Pair>&lt;/Objective>&lt;Type>Action&lt;/Type>&lt;/Data></S>
<C>0</C>
<F>false</F>
</Task>
<RPT>true</RPT>
</Mission>
</Missions>

View File

@ -17100,6 +17100,8 @@ SoD 3.31 main store section and subsection filtering:
<sd>2013-01-01T00:00:00</sd>
<ed>2030-12-31T00:00:00</ed>
</ss>
<ii>12732</ii>
<ii>12721</ii>
<ii>12238</ii>
<ii>12239</ii>
<ii>12016</ii>

View File

@ -29,6 +29,12 @@ public class MissionService {
mission = missionStore.GetMission(10999);
}
mission.MissionID = 999;
} else if (missionId == 1044 && ClientVersion.IsMaM(apiKey)) {
mission = missionStore.GetMission(11044);
mission.MissionID = 1044;
} else if (missionId == 1074 && ClientVersion.IsMaM(apiKey)) {
mission = missionStore.GetMission(11074);
mission.MissionID = 1074;
}
if (mission is null) {

View File

@ -10,6 +10,8 @@ public class MissionStoreSingleton {
private int[] upcomingMissions;
private int[] activeMissionsV1;
private int[] upcomingMissionsV1;
private int[] activeMissionsMaM;
private int[] upcomingMissionsMaM;
public MissionStoreSingleton() {
ServerMissionArray missionArray = XmlUtil.DeserializeXml<ServerMissionArray>(XmlUtil.ReadResourceXmlString("missions"));
@ -19,10 +21,14 @@ public class MissionStoreSingleton {
}
activeMissions = defaultMissions.Active;
upcomingMissions = defaultMissions.Upcoming;
defaultMissions = XmlUtil.DeserializeXml<DefaultMissions>(XmlUtil.ReadResourceXmlString("defaultmissionlistv1"));
activeMissionsV1 = defaultMissions.Active;
upcomingMissionsV1 = defaultMissions.Upcoming;
defaultMissions = XmlUtil.DeserializeXml<DefaultMissions>(XmlUtil.ReadResourceXmlString("defaultmissionlistmam"));
activeMissionsMaM = defaultMissions.Active;
upcomingMissionsMaM = defaultMissions.Upcoming;
}
public Mission GetMission(int missionID) {
@ -33,6 +39,9 @@ public class MissionStoreSingleton {
if (ClientVersion.Use2013SoDTutorial(apiKey)) {
return activeMissionsV1;
}
if (ClientVersion.IsMaM(apiKey)) {
return activeMissionsMaM;
}
return activeMissions;
}
@ -40,6 +49,9 @@ public class MissionStoreSingleton {
if (ClientVersion.Use2013SoDTutorial(apiKey)) {
return upcomingMissionsV1;
}
if (ClientVersion.IsMaM(apiKey)) {
return upcomingMissionsMaM;
}
return upcomingMissions;
}

View File

@ -27,4 +27,8 @@ public class ClientVersion {
public static bool Use2021SoDTutorial(string apiKey) {
return !IsOldSoD(apiKey);
}
public static bool IsMaM(string apiKey) {
return apiKey == "e20150cc-ff70-435c-90fd-341dc9161cc3";
}
}

View File

@ -25,6 +25,7 @@
<None Remove="Resources\achievementstasks.xml" />
<None Remove="Resources\defaultmissionlist.xml" />
<None Remove="Resources\defaultmissionlistv1.xml" />
<None Remove="Resources\defaultmissionlistmam.xml" />
</ItemGroup>
<ItemGroup>
<None Update="Resources\childlist.xml">
@ -89,5 +90,8 @@
<EmbeddedResource Include="Resources\defaultmissionlistv1.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</EmbeddedResource>
<EmbeddedResource Include="Resources\defaultmissionlistmam.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</EmbeddedResource>
</ItemGroup>
</Project>